diff --git a/basics/account-data/anchor/package.json b/basics/account-data/anchor/package.json index cafc3a500..0b9590932 100644 --- a/basics/account-data/anchor/package.json +++ b/basics/account-data/anchor/package.json @@ -4,7 +4,6 @@ "@solana/web3.js": "^1.98.4" }, "devDependencies": { - "@types/bn.js": "^5.1.0", "@types/chai": "^5.2.3", "@types/mocha": "^10.0.10", "chai": "^6.2.2", diff --git a/basics/account-data/anchor/pnpm-lock.yaml b/basics/account-data/anchor/pnpm-lock.yaml index f8580db79..48c790104 100644 --- a/basics/account-data/anchor/pnpm-lock.yaml +++ b/basics/account-data/anchor/pnpm-lock.yaml @@ -15,9 +15,6 @@ importers: specifier: ^1.98.4 version: 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10) devDependencies: - '@types/bn.js': - specifier: ^5.1.0 - version: 5.1.5 '@types/chai': specifier: ^5.2.3 version: 5.2.3 @@ -267,9 +264,6 @@ packages: '@swc/helpers@0.5.12': resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==} - '@types/bn.js@5.1.5': - resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} - '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -1022,10 +1016,6 @@ snapshots: dependencies: tslib: 2.6.2 - '@types/bn.js@5.1.5': - dependencies: - '@types/node': 26.1.2 - '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 diff --git a/basics/account-data/native/package.json b/basics/account-data/native/package.json index 6154a1f6d..b2544926a 100644 --- a/basics/account-data/native/package.json +++ b/basics/account-data/native/package.json @@ -8,8 +8,7 @@ }, "dependencies": { "@solana/kit": "^7.0.0", - "@solana-program/system": "^0.13.0", - "borsh": "^2.0.0" + "@solana-program/system": "^0.13.0" }, "devDependencies": { "@types/chai": "^5.2.3", diff --git a/basics/account-data/native/pnpm-lock.yaml b/basics/account-data/native/pnpm-lock.yaml index 882d62a26..0fc905212 100644 --- a/basics/account-data/native/pnpm-lock.yaml +++ b/basics/account-data/native/pnpm-lock.yaml @@ -14,9 +14,6 @@ importers: '@solana/kit': specifier: ^7.0.0 version: 7.0.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) - borsh: - specifier: ^2.0.0 - version: 2.0.0 devDependencies: '@types/chai': specifier: ^5.2.3 @@ -1036,9 +1033,6 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - borsh@2.0.0: - resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==} - brace-expansion@2.1.3: resolution: {integrity: sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A==} @@ -2512,8 +2506,6 @@ snapshots: balanced-match@1.0.2: {} - borsh@2.0.0: {} - brace-expansion@2.1.3: dependencies: balanced-match: 1.0.2 diff --git a/basics/account-data/native/tests/test.ts b/basics/account-data/native/tests/test.ts index d721d3d66..d915c9ca5 100644 --- a/basics/account-data/native/tests/test.ts +++ b/basics/account-data/native/tests/test.ts @@ -1,6 +1,4 @@ -import { Buffer } from 'node:buffer'; import { - AccountRole, type Address, appendTransactionMessageInstruction, createTransactionMessage, @@ -11,33 +9,18 @@ import { setTransactionMessageFeePayerSigner, signTransactionMessageWithSigners, } from '@solana/kit'; -import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; -import * as borsh from 'borsh'; import { assert } from 'chai'; import { FailedTransactionMetadata, LiteSVM } from 'litesvm'; - -const AddressInfoSchema = { - struct: { - name: 'string', - house_number: 'u8', - street: 'string', - city: 'string', - }, -}; - -type AddressInfo = { - name: string; - house_number: number; - street: string; - city: string; -}; - -function borshSerialize(schema: borsh.Schema, data: object): Buffer { - return Buffer.from(borsh.serialize(schema, data)); -} +import { type AddressInfo, addressInfoDecoder, createCreateAddressInfoInstruction } from '../ts'; describe('Account Data!', () => { const svm = new LiteSVM(); + const addressInfo: AddressInfo = { + name: 'Joe C', + houseNumber: 136, + street: 'Mile High Dr.', + city: 'Solana Beach', + }; let programId: Address; let payer: KeyPairSigner; let addressInfoAccount: KeyPairSigner; @@ -51,30 +34,7 @@ describe('Account Data!', () => { }); it('Create the address info account', async () => { - console.log(`Program Address : ${programId}`); - console.log(`Payer Address : ${payer.address}`); - console.log(`Address Info Acct : ${addressInfoAccount.address}`); - - const ix = { - programAddress: programId, - accounts: [ - { - address: addressInfoAccount.address, - role: AccountRole.WRITABLE_SIGNER, - signer: addressInfoAccount, - }, - { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, - ], - data: new Uint8Array( - borshSerialize(AddressInfoSchema, { - name: 'Joe C', - house_number: 136, - street: 'Mile High Dr.', - city: 'Solana Beach', - }), - ), - }; + const ix = createCreateAddressInfoInstruction(addressInfoAccount, payer, programId, addressInfo); const transactionMessage = pipe( createTransactionMessage({ version: 0 }), @@ -92,10 +52,6 @@ describe('Account Data!', () => { const accountInfo = svm.getAccount(addressInfoAccount.address); assert(accountInfo.exists, 'address info account not found'); - const readAddressInfo = borsh.deserialize(AddressInfoSchema, Buffer.from(accountInfo.data)) as AddressInfo; - console.log(`Name : ${readAddressInfo.name}`); - console.log(`House Num: ${readAddressInfo.house_number}`); - console.log(`Street : ${readAddressInfo.street}`); - console.log(`City : ${readAddressInfo.city}`); + assert.deepEqual(addressInfoDecoder.decode(accountInfo.data), addressInfo); }); }); diff --git a/basics/account-data/native/ts/index.ts b/basics/account-data/native/ts/index.ts new file mode 100644 index 000000000..898deed08 --- /dev/null +++ b/basics/account-data/native/ts/index.ts @@ -0,0 +1,2 @@ +export * from './instructions'; +export * from './state'; diff --git a/basics/account-data/native/ts/instructions/create.ts b/basics/account-data/native/ts/instructions/create.ts new file mode 100644 index 000000000..536307c37 --- /dev/null +++ b/basics/account-data/native/ts/instructions/create.ts @@ -0,0 +1,41 @@ +import { + AccountRole, + addEncoderSizePrefix, + type Address, + getStructEncoder, + getU8Encoder, + getU32Encoder, + getUtf8Encoder, + type TransactionSigner, +} from '@solana/kit'; +import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; +import type { AddressInfo } from '../state'; + +// Instruction data layout: the program deserializes the whole payload as an `AddressInfo`. +export const createAddressInfoEncoder = getStructEncoder([ + ['name', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], + ['houseNumber', getU8Encoder()], + ['street', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], + ['city', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], +]); + +export function createCreateAddressInfoInstruction( + addressInfoAccount: TransactionSigner, + payer: TransactionSigner, + programId: Address, + addressInfo: AddressInfo, +) { + return { + programAddress: programId, + accounts: [ + { + address: addressInfoAccount.address, + role: AccountRole.WRITABLE_SIGNER, + signer: addressInfoAccount, + }, + { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, + { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + ], + data: createAddressInfoEncoder.encode(addressInfo), + }; +} diff --git a/basics/account-data/native/ts/instructions/index.ts b/basics/account-data/native/ts/instructions/index.ts new file mode 100644 index 000000000..1e03cceb8 --- /dev/null +++ b/basics/account-data/native/ts/instructions/index.ts @@ -0,0 +1 @@ +export * from './create'; diff --git a/basics/account-data/native/ts/state/index.ts b/basics/account-data/native/ts/state/index.ts new file mode 100644 index 000000000..9ef894faf --- /dev/null +++ b/basics/account-data/native/ts/state/index.ts @@ -0,0 +1,16 @@ +import { addDecoderSizePrefix, getStructDecoder, getU8Decoder, getU32Decoder, getUtf8Decoder } from '@solana/kit'; + +export type AddressInfo = { + name: string; + houseNumber: number; + street: string; + city: string; +}; + +// Account data layout, matching the program's `AddressInfo` struct. +export const addressInfoDecoder = getStructDecoder([ + ['name', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())], + ['houseNumber', getU8Decoder()], + ['street', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())], + ['city', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())], +]); diff --git a/basics/checking-accounts/anchor/package.json b/basics/checking-accounts/anchor/package.json index d32dce8d4..3206e744b 100644 --- a/basics/checking-accounts/anchor/package.json +++ b/basics/checking-accounts/anchor/package.json @@ -10,7 +10,6 @@ "@solana/web3.js": "^1.98.4" }, "devDependencies": { - "@types/bn.js": "^5.1.0", "@types/chai": "^5.2.3", "@types/mocha": "^10.0.10", "anchor-litesvm": "^0.2.1", diff --git a/basics/checking-accounts/anchor/pnpm-lock.yaml b/basics/checking-accounts/anchor/pnpm-lock.yaml index 97f69a705..09233d09a 100644 --- a/basics/checking-accounts/anchor/pnpm-lock.yaml +++ b/basics/checking-accounts/anchor/pnpm-lock.yaml @@ -18,9 +18,6 @@ importers: specifier: ^1.98.4 version: 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10) devDependencies: - '@types/bn.js': - specifier: ^5.1.0 - version: 5.1.5 '@types/chai': specifier: ^5.2.3 version: 5.2.3 @@ -290,9 +287,6 @@ packages: '@swc/helpers@0.5.12': resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==} - '@types/bn.js@5.1.5': - resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} - '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -1080,10 +1074,6 @@ snapshots: dependencies: tslib: 2.6.2 - '@types/bn.js@5.1.5': - dependencies: - '@types/node': 26.1.2 - '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 diff --git a/basics/close-account/anchor/package.json b/basics/close-account/anchor/package.json index 61dd5cf27..dd77656e1 100644 --- a/basics/close-account/anchor/package.json +++ b/basics/close-account/anchor/package.json @@ -9,7 +9,6 @@ "litesvm": "^0.8.0" }, "devDependencies": { - "@types/bn.js": "^5.1.0", "@types/chai": "^5.2.3", "@types/mocha": "^10.0.10", "chai": "^6.2.2", diff --git a/basics/close-account/anchor/pnpm-lock.yaml b/basics/close-account/anchor/pnpm-lock.yaml index 32bd703bd..1f49c0df6 100644 --- a/basics/close-account/anchor/pnpm-lock.yaml +++ b/basics/close-account/anchor/pnpm-lock.yaml @@ -18,9 +18,6 @@ importers: specifier: ^0.8.0 version: 0.8.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10) devDependencies: - '@types/bn.js': - specifier: ^5.1.0 - version: 5.1.5 '@types/chai': specifier: ^5.2.3 version: 5.2.3 @@ -267,9 +264,6 @@ packages: '@swc/helpers@0.5.12': resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==} - '@types/bn.js@5.1.5': - resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} - '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -1025,10 +1019,6 @@ snapshots: dependencies: tslib: 2.6.2 - '@types/bn.js@5.1.5': - dependencies: - '@types/node': 26.1.2 - '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 diff --git a/basics/cross-program-invocation/anchor/package.json b/basics/cross-program-invocation/anchor/package.json index e58ba0b2a..734bda4bd 100644 --- a/basics/cross-program-invocation/anchor/package.json +++ b/basics/cross-program-invocation/anchor/package.json @@ -10,7 +10,6 @@ "litesvm": "^0.8.0" }, "devDependencies": { - "@types/bn.js": "^5.1.0", "@types/chai": "^5.2.3", "@types/mocha": "^10.0.10", "chai": "^6.2.2", diff --git a/basics/cross-program-invocation/anchor/pnpm-lock.yaml b/basics/cross-program-invocation/anchor/pnpm-lock.yaml index d5fe3ec2c..6c9cc41e7 100644 --- a/basics/cross-program-invocation/anchor/pnpm-lock.yaml +++ b/basics/cross-program-invocation/anchor/pnpm-lock.yaml @@ -18,9 +18,6 @@ importers: specifier: ^0.8.0 version: 0.8.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10) devDependencies: - '@types/bn.js': - specifier: ^5.1.0 - version: 5.1.5 '@types/chai': specifier: ^5.2.3 version: 5.2.3 @@ -270,9 +267,6 @@ packages: '@swc/helpers@0.5.12': resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==} - '@types/bn.js@5.1.5': - resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} - '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -1033,10 +1027,6 @@ snapshots: dependencies: tslib: 2.6.2 - '@types/bn.js@5.1.5': - dependencies: - '@types/node': 26.1.2 - '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 diff --git a/basics/cross-program-invocation/native/package.json b/basics/cross-program-invocation/native/package.json index a265d993c..2ddeedd8d 100644 --- a/basics/cross-program-invocation/native/package.json +++ b/basics/cross-program-invocation/native/package.json @@ -9,7 +9,6 @@ "dependencies": { "@solana/kit": "^7.0.0", "@solana-program/system": "^0.13.0", - "borsh": "^2.0.0", "litesvm": "^1.3.0" }, "devDependencies": { diff --git a/basics/cross-program-invocation/native/pnpm-lock.yaml b/basics/cross-program-invocation/native/pnpm-lock.yaml index ecae779ae..ed1324526 100644 --- a/basics/cross-program-invocation/native/pnpm-lock.yaml +++ b/basics/cross-program-invocation/native/pnpm-lock.yaml @@ -14,9 +14,6 @@ importers: '@solana/kit': specifier: ^7.0.0 version: 7.0.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) - borsh: - specifier: ^2.0.0 - version: 2.0.0 litesvm: specifier: ^1.3.0 version: 1.3.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) @@ -1036,9 +1033,6 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - borsh@2.0.0: - resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==} - brace-expansion@2.1.3: resolution: {integrity: sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A==} @@ -2512,8 +2506,6 @@ snapshots: balanced-match@1.0.2: {} - borsh@2.0.0: {} - brace-expansion@2.1.3: dependencies: balanced-match: 1.0.2 diff --git a/basics/cross-program-invocation/native/tests/test.ts b/basics/cross-program-invocation/native/tests/test.ts index ca530e8fa..e95f6d76c 100644 --- a/basics/cross-program-invocation/native/tests/test.ts +++ b/basics/cross-program-invocation/native/tests/test.ts @@ -1,29 +1,20 @@ -import { Buffer } from 'node:buffer'; import * as fs from 'node:fs'; import * as path from 'node:path'; import { - AccountRole, type Address, appendTransactionMessageInstruction, createKeyPairSignerFromBytes, createTransactionMessage, generateKeyPairSigner, + type Instruction, type KeyPairSigner, lamports, pipe, setTransactionMessageFeePayerSigner, signTransactionMessageWithSigners, } from '@solana/kit'; -import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; -import * as borsh from 'borsh'; import { LiteSVM, TransactionMetadata } from 'litesvm'; - -const PowerStatusSchema = { struct: { is_on: 'u8' } }; -const SetPowerStatusSchema = { struct: { name: 'string' } }; - -function borshSerialize(schema: borsh.Schema, data: object): Buffer { - return Buffer.from(borsh.serialize(schema, data)); -} +import { createInitializeInstruction, createPullLeverInstruction } from '../ts'; async function programAddressFromKeypairFile(keypairPath: string): Promise
{ const bytes = Uint8Array.from(JSON.parse(fs.readFileSync(keypairPath, 'utf-8'))); @@ -59,17 +50,7 @@ describe('Native CPI Example', () => { powerAccount = await generateKeyPairSigner(); }); - it('Initialize the lever!', async () => { - const ix = { - programAddress: leverProgramId, - accounts: [ - { address: powerAccount.address, role: AccountRole.WRITABLE_SIGNER, signer: powerAccount }, - { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, - ], - data: new Uint8Array(borshSerialize(PowerStatusSchema, { is_on: 1 })), - }; - + async function sendTransaction(ix: Instruction) { const transactionMessage = pipe( createTransactionMessage({ version: 0 }), m => setTransactionMessageFeePayerSigner(payer, m), @@ -82,53 +63,19 @@ describe('Native CPI Example', () => { if (!(res instanceof TransactionMetadata)) { throw new Error(`Transaction failed: ${JSON.stringify(res)}`); } + } + + it('Initialize the lever!', async () => { + await sendTransaction(createInitializeInstruction(powerAccount, payer, leverProgramId, true)); }); it('Pull the lever!', async () => { - const ix = { - programAddress: handProgramId, - accounts: [ - { address: powerAccount.address, role: AccountRole.WRITABLE }, - { address: leverProgramId, role: AccountRole.READONLY }, - ], - data: new Uint8Array(borshSerialize(SetPowerStatusSchema, { name: 'Chris' })), - }; - - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - m => setTransactionMessageFeePayerSigner(payer, m), - m => svm.setTransactionMessageLifetimeUsingLatestBlockhash(m), - m => appendTransactionMessageInstruction(ix, m), - ); - const signedTx = await signTransactionMessageWithSigners(transactionMessage); - - const res = svm.sendTransaction(signedTx); - if (!(res instanceof TransactionMetadata)) { - throw new Error(`Transaction failed: ${JSON.stringify(res)}`); - } + await sendTransaction(createPullLeverInstruction(powerAccount.address, leverProgramId, handProgramId, 'Chris')); }); it('Pull it again!', async () => { - const ix = { - programAddress: handProgramId, - accounts: [ - { address: powerAccount.address, role: AccountRole.WRITABLE }, - { address: leverProgramId, role: AccountRole.READONLY }, - ], - data: new Uint8Array(borshSerialize(SetPowerStatusSchema, { name: 'Ashley' })), - }; - - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - m => setTransactionMessageFeePayerSigner(payer, m), - m => svm.setTransactionMessageLifetimeUsingLatestBlockhash(m), - m => appendTransactionMessageInstruction(ix, m), + await sendTransaction( + createPullLeverInstruction(powerAccount.address, leverProgramId, handProgramId, 'Ashley'), ); - const signedTx = await signTransactionMessageWithSigners(transactionMessage); - - const res = svm.sendTransaction(signedTx); - if (!(res instanceof TransactionMetadata)) { - throw new Error(`Transaction failed: ${JSON.stringify(res)}`); - } }); }); diff --git a/basics/cross-program-invocation/native/ts/index.ts b/basics/cross-program-invocation/native/ts/index.ts new file mode 100644 index 000000000..32b452fa4 --- /dev/null +++ b/basics/cross-program-invocation/native/ts/index.ts @@ -0,0 +1 @@ +export * from './instructions'; diff --git a/basics/cross-program-invocation/native/ts/instructions/index.ts b/basics/cross-program-invocation/native/ts/instructions/index.ts new file mode 100644 index 000000000..91d6063e5 --- /dev/null +++ b/basics/cross-program-invocation/native/ts/instructions/index.ts @@ -0,0 +1,2 @@ +export * from './initialize'; +export * from './pull-lever'; diff --git a/basics/cross-program-invocation/native/ts/instructions/initialize.ts b/basics/cross-program-invocation/native/ts/instructions/initialize.ts new file mode 100644 index 000000000..e1fea0994 --- /dev/null +++ b/basics/cross-program-invocation/native/ts/instructions/initialize.ts @@ -0,0 +1,23 @@ +import { AccountRole, type Address, getBooleanEncoder, getStructEncoder, type TransactionSigner } from '@solana/kit'; +import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; + +// Instruction data layout, matching the lever program's `PowerStatus` struct. The lever +// program tells its two instructions apart by which struct the data deserializes into. +export const initializeEncoder = getStructEncoder([['isOn', getBooleanEncoder()]]); + +export function createInitializeInstruction( + power: TransactionSigner, + payer: TransactionSigner, + leverProgramId: Address, + isOn: boolean, +) { + return { + programAddress: leverProgramId, + accounts: [ + { address: power.address, role: AccountRole.WRITABLE_SIGNER, signer: power }, + { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, + { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + ], + data: initializeEncoder.encode({ isOn }), + }; +} diff --git a/basics/cross-program-invocation/native/ts/instructions/pull-lever.ts b/basics/cross-program-invocation/native/ts/instructions/pull-lever.ts new file mode 100644 index 000000000..b8d42975b --- /dev/null +++ b/basics/cross-program-invocation/native/ts/instructions/pull-lever.ts @@ -0,0 +1,28 @@ +import { + AccountRole, + addEncoderSizePrefix, + type Address, + getStructEncoder, + getU32Encoder, + getUtf8Encoder, +} from '@solana/kit'; + +// Instruction data layout, matching the lever program's `SetPowerStatus` struct. The hand +// program deserializes this same struct and forwards it unchanged to the lever program. +export const pullLeverEncoder = getStructEncoder([['name', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())]]); + +export function createPullLeverInstruction( + power: Address, + leverProgramId: Address, + handProgramId: Address, + name: string, +) { + return { + programAddress: handProgramId, + accounts: [ + { address: power, role: AccountRole.WRITABLE }, + { address: leverProgramId, role: AccountRole.READONLY }, + ], + data: pullLeverEncoder.encode({ name }), + }; +} diff --git a/basics/favorites/anchor/tests/test.ts b/basics/favorites/anchor/tests/test.ts index b5d00a574..6c8fec4dc 100644 --- a/basics/favorites/anchor/tests/test.ts +++ b/basics/favorites/anchor/tests/test.ts @@ -1,6 +1,5 @@ import type { Program } from '@anchor-lang/core'; import * as anchor from '@anchor-lang/core'; -import { BN } from 'bn.js'; import { assert } from 'chai'; import type { Favorites } from '../target/types/favorites.ts'; @@ -15,7 +14,7 @@ describe('Anchor: Favorites', () => { const program = anchor.workspace.Favorites as Program; // Here's what we want to write to the blockchain - const favoriteNumber = new BN(23); + const favoriteNumber = new anchor.BN(23); const favoriteColor = 'purple'; const favoriteHobbies = ['skiing', 'skydiving', 'biking']; diff --git a/basics/favorites/native/package.json b/basics/favorites/native/package.json index 618b9cdd4..cc047755a 100644 --- a/basics/favorites/native/package.json +++ b/basics/favorites/native/package.json @@ -8,8 +8,7 @@ }, "dependencies": { "@solana/kit": "^7.0.0", - "@solana-program/system": "^0.13.0", - "borsh": "^2.0.0" + "@solana-program/system": "^0.13.0" }, "devDependencies": { "@types/chai": "^5.2.3", diff --git a/basics/favorites/native/pnpm-lock.yaml b/basics/favorites/native/pnpm-lock.yaml index 882d62a26..0fc905212 100644 --- a/basics/favorites/native/pnpm-lock.yaml +++ b/basics/favorites/native/pnpm-lock.yaml @@ -14,9 +14,6 @@ importers: '@solana/kit': specifier: ^7.0.0 version: 7.0.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) - borsh: - specifier: ^2.0.0 - version: 2.0.0 devDependencies: '@types/chai': specifier: ^5.2.3 @@ -1036,9 +1033,6 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - borsh@2.0.0: - resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==} - brace-expansion@2.1.3: resolution: {integrity: sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A==} @@ -2512,8 +2506,6 @@ snapshots: balanced-match@1.0.2: {} - borsh@2.0.0: {} - brace-expansion@2.1.3: dependencies: balanced-match: 1.0.2 diff --git a/basics/favorites/native/tests/test.ts b/basics/favorites/native/tests/test.ts index 901793186..3e594896a 100644 --- a/basics/favorites/native/tests/test.ts +++ b/basics/favorites/native/tests/test.ts @@ -1,6 +1,4 @@ -import { Buffer } from 'node:buffer'; import { - AccountRole, type Address, appendTransactionMessageInstruction, createTransactionMessage, @@ -14,49 +12,10 @@ import { setTransactionMessageFeePayerSigner, signTransactionMessageWithSigners, } from '@solana/kit'; -import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; -import * as borsh from 'borsh'; import { assert, expect } from 'chai'; import { FailedTransactionMetadata, LiteSVM } from 'litesvm'; import { describe, test } from 'mocha'; - -const MyInstruction = { - CreateFav: 0, - GetFav: 1, -} as const; - -const CreateFavSchema = { - struct: { - instruction: 'u8', - number: 'u64', - color: 'string', - hobbies: { array: { type: 'string' } }, - }, -}; - -const FavoritesDataSchema = { - struct: { - number: 'u64', - color: 'string', - hobbies: { array: { type: 'string' } }, - }, -}; - -const GetFavSchema = { - struct: { - instruction: 'u8', - }, -}; - -type FavoritesData = { - number: number | bigint; - color: string; - hobbies: string[]; -}; - -function borshSerialize(schema: borsh.Schema, data: object): Buffer { - return Buffer.from(borsh.serialize(schema, data)); -} +import { createCreatePdaInstruction, createGetPdaInstruction, type Favorites, favoritesDecoder } from '../ts'; const addressEncoder = getAddressEncoder(); @@ -90,108 +49,59 @@ describe('Favorites Solana Native', () => { return svm.sendTransaction(signedTx); } - test('Set the favorite pda and cross-check the updated data', async () => { - const [favoritesPda] = await getProgramDerivedAddress({ + function deriveFavoritesPda(seed: string) { + return getProgramDerivedAddress({ programAddress: programId, - seeds: ['favorite', addressEncoder.encode(payer.address)], + seeds: [seed, addressEncoder.encode(payer.address)], }); - const favData = { - instruction: MyInstruction.CreateFav, - number: 42, + } + + test('Set the favorite pda and cross-check the updated data', async () => { + const [favoritesPda] = await deriveFavoritesPda('favorite'); + const favData: Favorites = { + number: 42n, color: 'blue', hobbies: ['coding', 'reading', 'traveling'], }; - const ix = { - programAddress: programId, - accounts: [ - { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, - { address: favoritesPda, role: AccountRole.WRITABLE }, - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, - ], - data: new Uint8Array(borshSerialize(CreateFavSchema, favData)), - }; - - const result = await sendInstruction(ix); + const result = await sendInstruction(createCreatePdaInstruction(payer, favoritesPda, programId, favData)); assert(!(result instanceof FailedTransactionMetadata), `transaction failed: ${result.toString()}`); const account = svm.getAccount(favoritesPda); assert(account.exists, 'favorites account not found'); - const data = Buffer.from(account.data); - - const favoritesData = borsh.deserialize(FavoritesDataSchema, data) as FavoritesData; - console.log('Deserialized data:', favoritesData); - - expect(Number(favoritesData.number)).to.equal(favData.number); + const favoritesData = favoritesDecoder.decode(account.data); + expect(favoritesData.number).to.equal(favData.number); expect(favoritesData.color).to.equal(favData.color); expect(favoritesData.hobbies).to.deep.equal(favData.hobbies); }); test("Check if the test fails if the pda seeds aren't same", async () => { // Derive a PDA using WRONG seeds so the program's on-chain seed check rejects it - const [wrongPda] = await getProgramDerivedAddress({ - programAddress: programId, - seeds: ['wrong_seed', addressEncoder.encode(payer.address)], - }); - const favData = { - instruction: MyInstruction.CreateFav, - number: 42, + const [wrongPda] = await deriveFavoritesPda('wrong_seed'); + const favData: Favorites = { + number: 42n, color: 'blue', hobbies: ['coding', 'reading', 'traveling'], }; - const ix = { - programAddress: programId, - accounts: [ - { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, - { address: wrongPda, role: AccountRole.WRITABLE }, - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, - ], - data: new Uint8Array(borshSerialize(CreateFavSchema, favData)), - }; - - const result = await sendInstruction(ix); + const result = await sendInstruction(createCreatePdaInstruction(payer, wrongPda, programId, favData)); assert(result instanceof FailedTransactionMetadata, 'Expected transaction to fail with wrong PDA seeds'); }); test('Get the favorite pda and cross-check the data', async () => { - // Creating a new account with payer's pubkey - const [favoritesPda] = await getProgramDerivedAddress({ - programAddress: programId, - seeds: ['favorite', addressEncoder.encode(payer.address)], - }); - const favData = { - instruction: MyInstruction.CreateFav, - number: 42, + const [favoritesPda] = await deriveFavoritesPda('favorite'); + const favData: Favorites = { + number: 42n, color: 'hazel', hobbies: ['singing', 'dancing', 'skydiving'], }; - const ix = { - programAddress: programId, - accounts: [ - { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, - { address: favoritesPda, role: AccountRole.WRITABLE }, - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, - ], - data: new Uint8Array(borshSerialize(CreateFavSchema, favData)), - }; - - const result1 = await sendInstruction(ix); + const result1 = await sendInstruction(createCreatePdaInstruction(payer, favoritesPda, programId, favData)); assert(!(result1 instanceof FailedTransactionMetadata), `transaction failed: ${result1.toString()}`); // Getting the user's data through the get_pda instruction - const ix2 = { - programAddress: programId, - accounts: [ - { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, - { address: favoritesPda, role: AccountRole.READONLY }, - ], - data: new Uint8Array(borshSerialize(GetFavSchema, { instruction: MyInstruction.GetFav })), - }; - - const result = await sendInstruction(ix2); + const result = await sendInstruction(createGetPdaInstruction(payer, favoritesPda, programId)); assert(!(result instanceof FailedTransactionMetadata), `transaction failed: ${result.toString()}`); }); }); diff --git a/basics/favorites/native/ts/index.ts b/basics/favorites/native/ts/index.ts new file mode 100644 index 000000000..898deed08 --- /dev/null +++ b/basics/favorites/native/ts/index.ts @@ -0,0 +1,2 @@ +export * from './instructions'; +export * from './state'; diff --git a/basics/favorites/native/ts/instructions/create-pda.ts b/basics/favorites/native/ts/instructions/create-pda.ts new file mode 100644 index 000000000..50717c605 --- /dev/null +++ b/basics/favorites/native/ts/instructions/create-pda.ts @@ -0,0 +1,40 @@ +import { + AccountRole, + addEncoderSizePrefix, + type Address, + getArrayEncoder, + getStructEncoder, + getU8Encoder, + getU32Encoder, + getU64Encoder, + getUtf8Encoder, + type TransactionSigner, +} from '@solana/kit'; +import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; +import { FavoritesInstruction } from '.'; +import type { Favorites } from '../state'; + +// Instruction data layout, matching the program's `FavoritesInstruction::CreatePda(Favorites)` variant. +export const createPdaEncoder = getStructEncoder([ + ['instruction', getU8Encoder()], + ['number', getU64Encoder()], + ['color', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], + ['hobbies', getArrayEncoder(addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder()), { size: getU32Encoder() })], +]); + +export function createCreatePdaInstruction( + user: TransactionSigner, + favoritesPda: Address, + programId: Address, + favorites: Favorites, +) { + return { + programAddress: programId, + accounts: [ + { address: user.address, role: AccountRole.WRITABLE_SIGNER, signer: user }, + { address: favoritesPda, role: AccountRole.WRITABLE }, + { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + ], + data: createPdaEncoder.encode({ instruction: FavoritesInstruction.CreatePda, ...favorites }), + }; +} diff --git a/basics/favorites/native/ts/instructions/get-pda.ts b/basics/favorites/native/ts/instructions/get-pda.ts new file mode 100644 index 000000000..99eb20b0e --- /dev/null +++ b/basics/favorites/native/ts/instructions/get-pda.ts @@ -0,0 +1,16 @@ +import { AccountRole, type Address, getStructEncoder, getU8Encoder, type TransactionSigner } from '@solana/kit'; +import { FavoritesInstruction } from '.'; + +// Instruction data layout, matching the program's `FavoritesInstruction::GetPda` variant. +export const getPdaEncoder = getStructEncoder([['instruction', getU8Encoder()]]); + +export function createGetPdaInstruction(user: TransactionSigner, favoritesPda: Address, programId: Address) { + return { + programAddress: programId, + accounts: [ + { address: user.address, role: AccountRole.WRITABLE_SIGNER, signer: user }, + { address: favoritesPda, role: AccountRole.READONLY }, + ], + data: getPdaEncoder.encode({ instruction: FavoritesInstruction.GetPda }), + }; +} diff --git a/basics/favorites/native/ts/instructions/index.ts b/basics/favorites/native/ts/instructions/index.ts new file mode 100644 index 000000000..3068422f0 --- /dev/null +++ b/basics/favorites/native/ts/instructions/index.ts @@ -0,0 +1,9 @@ +export * from './create-pda'; +export * from './get-pda'; + +export const FavoritesInstruction = { + CreatePda: 0, + GetPda: 1, +} as const; + +export type FavoritesInstruction = (typeof FavoritesInstruction)[keyof typeof FavoritesInstruction]; diff --git a/basics/favorites/native/ts/state/index.ts b/basics/favorites/native/ts/state/index.ts new file mode 100644 index 000000000..480088a9d --- /dev/null +++ b/basics/favorites/native/ts/state/index.ts @@ -0,0 +1,21 @@ +import { + addDecoderSizePrefix, + getArrayDecoder, + getStructDecoder, + getU32Decoder, + getU64Decoder, + getUtf8Decoder, +} from '@solana/kit'; + +export type Favorites = { + number: bigint; + color: string; + hobbies: string[]; +}; + +// Account data layout, matching the program's `Favorites` struct. +export const favoritesDecoder = getStructDecoder([ + ['number', getU64Decoder()], + ['color', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())], + ['hobbies', getArrayDecoder(addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder()), { size: getU32Decoder() })], +]); diff --git a/basics/hello-solana/anchor/package.json b/basics/hello-solana/anchor/package.json index 2407e16f8..4a4db24a0 100644 --- a/basics/hello-solana/anchor/package.json +++ b/basics/hello-solana/anchor/package.json @@ -6,7 +6,6 @@ "litesvm": "^0.8.0" }, "devDependencies": { - "@types/bn.js": "^5.1.0", "@types/chai": "^5.2.3", "@types/mocha": "^10.0.10", "chai": "^6.2.2", diff --git a/basics/hello-solana/anchor/pnpm-lock.yaml b/basics/hello-solana/anchor/pnpm-lock.yaml index 32bd703bd..1f49c0df6 100644 --- a/basics/hello-solana/anchor/pnpm-lock.yaml +++ b/basics/hello-solana/anchor/pnpm-lock.yaml @@ -18,9 +18,6 @@ importers: specifier: ^0.8.0 version: 0.8.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10) devDependencies: - '@types/bn.js': - specifier: ^5.1.0 - version: 5.1.5 '@types/chai': specifier: ^5.2.3 version: 5.2.3 @@ -267,9 +264,6 @@ packages: '@swc/helpers@0.5.12': resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==} - '@types/bn.js@5.1.5': - resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} - '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -1025,10 +1019,6 @@ snapshots: dependencies: tslib: 2.6.2 - '@types/bn.js@5.1.5': - dependencies: - '@types/node': 26.1.2 - '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 diff --git a/basics/pda-rent-payer/anchor/tests/test.ts b/basics/pda-rent-payer/anchor/tests/test.ts index 09631f264..8bf16cbdf 100644 --- a/basics/pda-rent-payer/anchor/tests/test.ts +++ b/basics/pda-rent-payer/anchor/tests/test.ts @@ -1,6 +1,5 @@ import * as anchor from '@anchor-lang/core'; import { Keypair, LAMPORTS_PER_SOL, PublicKey } from '@solana/web3.js'; -import BN from 'bn.js'; import { assert } from 'chai'; import type { PdaRentPayer } from '../target/types/pda_rent_payer.ts'; @@ -16,7 +15,7 @@ describe('PDA Rent-Payer', () => { it('Initialize the Rent Vault', async () => { // 1 SOL - const fundAmount = new BN(LAMPORTS_PER_SOL); + const fundAmount = new anchor.BN(LAMPORTS_PER_SOL); await program.methods .initRentVault(fundAmount) diff --git a/basics/pda-rent-payer/native/package.json b/basics/pda-rent-payer/native/package.json index 6154a1f6d..b2544926a 100644 --- a/basics/pda-rent-payer/native/package.json +++ b/basics/pda-rent-payer/native/package.json @@ -8,8 +8,7 @@ }, "dependencies": { "@solana/kit": "^7.0.0", - "@solana-program/system": "^0.13.0", - "borsh": "^2.0.0" + "@solana-program/system": "^0.13.0" }, "devDependencies": { "@types/chai": "^5.2.3", diff --git a/basics/pda-rent-payer/native/pnpm-lock.yaml b/basics/pda-rent-payer/native/pnpm-lock.yaml index 882d62a26..0fc905212 100644 --- a/basics/pda-rent-payer/native/pnpm-lock.yaml +++ b/basics/pda-rent-payer/native/pnpm-lock.yaml @@ -14,9 +14,6 @@ importers: '@solana/kit': specifier: ^7.0.0 version: 7.0.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) - borsh: - specifier: ^2.0.0 - version: 2.0.0 devDependencies: '@types/chai': specifier: ^5.2.3 @@ -1036,9 +1033,6 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - borsh@2.0.0: - resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==} - brace-expansion@2.1.3: resolution: {integrity: sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A==} @@ -2512,8 +2506,6 @@ snapshots: balanced-match@1.0.2: {} - borsh@2.0.0: {} - brace-expansion@2.1.3: dependencies: balanced-match: 1.0.2 diff --git a/basics/pda-rent-payer/native/tests/test.ts b/basics/pda-rent-payer/native/tests/test.ts index d5ce91d19..42eaf6dfa 100644 --- a/basics/pda-rent-payer/native/tests/test.ts +++ b/basics/pda-rent-payer/native/tests/test.ts @@ -1,6 +1,4 @@ -import { Buffer } from 'node:buffer'; import { - AccountRole, type Address, appendTransactionMessageInstruction, createTransactionMessage, @@ -12,10 +10,9 @@ import { setTransactionMessageFeePayerSigner, signTransactionMessageWithSigners, } from '@solana/kit'; -import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; -import * as borsh from 'borsh'; import { assert } from 'chai'; import { FailedTransactionMetadata, LiteSVM } from 'litesvm'; +import { createCreateNewAccountInstruction, createInitRentVaultInstruction } from '../ts'; describe('PDA Rent-Payer', () => { const svm = new LiteSVM(); @@ -29,53 +26,17 @@ describe('PDA Rent-Payer', () => { svm.airdrop(payer.address, lamports(2_000_000_000n)); }); - const MyInstruction = { - InitRentVault: 0, - CreateNewAccount: 1, - } as const; - - const InitRentVaultSchema = { - struct: { - instruction: 'u8', - fund_lamports: 'u64', - }, - }; - - const CreateNewAccountSchema = { - struct: { - instruction: 'u8', - }, - }; - - function borshSerialize(schema: borsh.Schema, data: object): Buffer { - return Buffer.from(borsh.serialize(schema, data)); - } - async function deriveRentVaultPda() { - const pda = await getProgramDerivedAddress({ + const [pda] = await getProgramDerivedAddress({ programAddress: programId, seeds: ['rent_vault'], }); - console.log(`PDA: ${pda[0]}`); return pda; } it('Initialize the Rent Vault', async () => { - const [rentVaultPda, _] = await deriveRentVaultPda(); - const ix = { - programAddress: programId, - accounts: [ - { address: rentVaultPda, role: AccountRole.WRITABLE }, - { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, - ], - data: new Uint8Array( - borshSerialize(InitRentVaultSchema, { - instruction: MyInstruction.InitRentVault, - fund_lamports: 1000000000, - }), - ), - }; + const rentVaultPda = await deriveRentVaultPda(); + const ix = createInitRentVaultInstruction(rentVaultPda, payer, programId, 1_000_000_000n); const transactionMessage = pipe( createTransactionMessage({ version: 0 }), @@ -91,20 +52,8 @@ describe('PDA Rent-Payer', () => { it('Create a new account using the Rent Vault', async () => { const newAccount = await generateKeyPairSigner(); - const [rentVaultPda, _] = await deriveRentVaultPda(); - const ix = { - programAddress: programId, - accounts: [ - { address: newAccount.address, role: AccountRole.WRITABLE_SIGNER, signer: newAccount }, - { address: rentVaultPda, role: AccountRole.WRITABLE }, - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, - ], - data: new Uint8Array( - borshSerialize(CreateNewAccountSchema, { - instruction: MyInstruction.CreateNewAccount, - }), - ), - }; + const rentVaultPda = await deriveRentVaultPda(); + const ix = createCreateNewAccountInstruction(newAccount, rentVaultPda, programId); const transactionMessage = pipe( createTransactionMessage({ version: 0 }), @@ -114,7 +63,6 @@ describe('PDA Rent-Payer', () => { ); const signedTx = await signTransactionMessageWithSigners(transactionMessage); - // Now we process the transaction const result = svm.sendTransaction(signedTx); assert(!(result instanceof FailedTransactionMetadata), `transaction failed: ${result.toString()}`); }); diff --git a/basics/pda-rent-payer/native/ts/index.ts b/basics/pda-rent-payer/native/ts/index.ts new file mode 100644 index 000000000..32b452fa4 --- /dev/null +++ b/basics/pda-rent-payer/native/ts/index.ts @@ -0,0 +1 @@ +export * from './instructions'; diff --git a/basics/pda-rent-payer/native/ts/instructions/create-new-account.ts b/basics/pda-rent-payer/native/ts/instructions/create-new-account.ts new file mode 100644 index 000000000..27b7b2e50 --- /dev/null +++ b/basics/pda-rent-payer/native/ts/instructions/create-new-account.ts @@ -0,0 +1,22 @@ +import { AccountRole, type Address, getStructEncoder, getU8Encoder, type TransactionSigner } from '@solana/kit'; +import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; +import { MyInstruction } from '.'; + +// Instruction data layout, matching the program's `MyInstruction::CreateNewAccount` variant. +export const createNewAccountEncoder = getStructEncoder([['instruction', getU8Encoder()]]); + +export function createCreateNewAccountInstruction( + newAccount: TransactionSigner, + rentVault: Address, + programId: Address, +) { + return { + programAddress: programId, + accounts: [ + { address: newAccount.address, role: AccountRole.WRITABLE_SIGNER, signer: newAccount }, + { address: rentVault, role: AccountRole.WRITABLE }, + { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + ], + data: createNewAccountEncoder.encode({ instruction: MyInstruction.CreateNewAccount }), + }; +} diff --git a/basics/pda-rent-payer/native/ts/instructions/index.ts b/basics/pda-rent-payer/native/ts/instructions/index.ts new file mode 100644 index 000000000..7b7d015a7 --- /dev/null +++ b/basics/pda-rent-payer/native/ts/instructions/index.ts @@ -0,0 +1,9 @@ +export * from './create-new-account'; +export * from './init-rent-vault'; + +export const MyInstruction = { + InitRentVault: 0, + CreateNewAccount: 1, +} as const; + +export type MyInstruction = (typeof MyInstruction)[keyof typeof MyInstruction]; diff --git a/basics/pda-rent-payer/native/ts/instructions/init-rent-vault.ts b/basics/pda-rent-payer/native/ts/instructions/init-rent-vault.ts new file mode 100644 index 000000000..13957da80 --- /dev/null +++ b/basics/pda-rent-payer/native/ts/instructions/init-rent-vault.ts @@ -0,0 +1,33 @@ +import { + AccountRole, + type Address, + getStructEncoder, + getU8Encoder, + getU64Encoder, + type TransactionSigner, +} from '@solana/kit'; +import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; +import { MyInstruction } from '.'; + +// Instruction data layout, matching the program's `MyInstruction::InitRentVault(InitRentVaultArgs)` variant. +export const initRentVaultEncoder = getStructEncoder([ + ['instruction', getU8Encoder()], + ['fundLamports', getU64Encoder()], +]); + +export function createInitRentVaultInstruction( + rentVault: Address, + payer: TransactionSigner, + programId: Address, + fundLamports: bigint, +) { + return { + programAddress: programId, + accounts: [ + { address: rentVault, role: AccountRole.WRITABLE }, + { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, + { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + ], + data: initRentVaultEncoder.encode({ instruction: MyInstruction.InitRentVault, fundLamports }), + }; +} diff --git a/basics/processing-instructions/anchor/package.json b/basics/processing-instructions/anchor/package.json index 2407e16f8..4a4db24a0 100644 --- a/basics/processing-instructions/anchor/package.json +++ b/basics/processing-instructions/anchor/package.json @@ -6,7 +6,6 @@ "litesvm": "^0.8.0" }, "devDependencies": { - "@types/bn.js": "^5.1.0", "@types/chai": "^5.2.3", "@types/mocha": "^10.0.10", "chai": "^6.2.2", diff --git a/basics/processing-instructions/anchor/pnpm-lock.yaml b/basics/processing-instructions/anchor/pnpm-lock.yaml index 0d706c3ea..cc961e29f 100644 --- a/basics/processing-instructions/anchor/pnpm-lock.yaml +++ b/basics/processing-instructions/anchor/pnpm-lock.yaml @@ -18,9 +18,6 @@ importers: specifier: ^0.8.0 version: 0.8.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10) devDependencies: - '@types/bn.js': - specifier: ^5.1.0 - version: 5.1.5 '@types/chai': specifier: ^5.2.3 version: 5.2.3 @@ -267,9 +264,6 @@ packages: '@swc/helpers@0.5.12': resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==} - '@types/bn.js@5.1.5': - resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} - '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -1022,10 +1016,6 @@ snapshots: dependencies: tslib: 2.6.2 - '@types/bn.js@5.1.5': - dependencies: - '@types/node': 26.1.2 - '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 diff --git a/basics/processing-instructions/native/package.json b/basics/processing-instructions/native/package.json index eb551e615..4bf1e26e1 100644 --- a/basics/processing-instructions/native/package.json +++ b/basics/processing-instructions/native/package.json @@ -7,8 +7,7 @@ "deploy": "solana program deploy ./program/target/so/program.so" }, "dependencies": { - "@solana/kit": "^7.0.0", - "borsh": "^2.0.0" + "@solana/kit": "^7.0.0" }, "devDependencies": { "@types/chai": "^5.2.3", diff --git a/basics/processing-instructions/native/pnpm-lock.yaml b/basics/processing-instructions/native/pnpm-lock.yaml index 7d95a9c76..6832a2433 100644 --- a/basics/processing-instructions/native/pnpm-lock.yaml +++ b/basics/processing-instructions/native/pnpm-lock.yaml @@ -11,9 +11,6 @@ importers: '@solana/kit': specifier: ^7.0.0 version: 7.0.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) - borsh: - specifier: ^2.0.0 - version: 2.0.0 devDependencies: '@types/chai': specifier: ^5.2.3 @@ -1028,9 +1025,6 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - borsh@2.0.0: - resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==} - brace-expansion@2.1.3: resolution: {integrity: sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A==} @@ -2500,8 +2494,6 @@ snapshots: balanced-match@1.0.2: {} - borsh@2.0.0: {} - brace-expansion@2.1.3: dependencies: balanced-match: 1.0.2 diff --git a/basics/processing-instructions/native/tests/test.ts b/basics/processing-instructions/native/tests/test.ts index 9a95405bc..3dceeb32d 100644 --- a/basics/processing-instructions/native/tests/test.ts +++ b/basics/processing-instructions/native/tests/test.ts @@ -1,6 +1,4 @@ -import { Buffer } from 'node:buffer'; import { - AccountRole, type Address, appendTransactionMessageInstructions, createTransactionMessage, @@ -11,9 +9,9 @@ import { setTransactionMessageFeePayerSigner, signTransactionMessageWithSigners, } from '@solana/kit'; -import * as borsh from 'borsh'; import { assert } from 'chai'; import { FailedTransactionMetadata, LiteSVM } from 'litesvm'; +import { createVisitParkInstruction } from '../ts'; describe('custom-instruction-data', () => { const svm = new LiteSVM(); @@ -27,37 +25,9 @@ describe('custom-instruction-data', () => { svm.airdrop(payer.address, lamports(1_000_000_000n)); }); - const InstructionDataSchema = { - struct: { - name: 'string', - height: 'u32', - }, - }; - - function borshSerialize(schema: borsh.Schema, data: object): Buffer { - return Buffer.from(borsh.serialize(schema, data)); - } - it('Go to the park!', async () => { - const jimmy = borshSerialize(InstructionDataSchema, { - name: 'Jimmy', - height: 3, - }); - const mary = borshSerialize(InstructionDataSchema, { - name: 'Mary', - height: 10, - }); - - const ix1 = { - programAddress: programId, - accounts: [{ address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }], - data: new Uint8Array(jimmy), - }; - - const ix2 = { - ...ix1, - data: new Uint8Array(mary), - }; + const ix1 = createVisitParkInstruction(payer, programId, 'Jimmy', 3); + const ix2 = createVisitParkInstruction(payer, programId, 'Mary', 10); const transactionMessage = pipe( createTransactionMessage({ version: 0 }), diff --git a/basics/processing-instructions/native/ts/index.ts b/basics/processing-instructions/native/ts/index.ts new file mode 100644 index 000000000..32b452fa4 --- /dev/null +++ b/basics/processing-instructions/native/ts/index.ts @@ -0,0 +1 @@ +export * from './instructions'; diff --git a/basics/processing-instructions/native/ts/instructions/index.ts b/basics/processing-instructions/native/ts/instructions/index.ts new file mode 100644 index 000000000..1e4db9e77 --- /dev/null +++ b/basics/processing-instructions/native/ts/instructions/index.ts @@ -0,0 +1 @@ +export * from './visit-park'; diff --git a/basics/processing-instructions/native/ts/instructions/visit-park.ts b/basics/processing-instructions/native/ts/instructions/visit-park.ts new file mode 100644 index 000000000..a14ba2207 --- /dev/null +++ b/basics/processing-instructions/native/ts/instructions/visit-park.ts @@ -0,0 +1,23 @@ +import { + AccountRole, + addEncoderSizePrefix, + type Address, + getStructEncoder, + getU32Encoder, + getUtf8Encoder, + type TransactionSigner, +} from '@solana/kit'; + +// Instruction data layout, matching the program's `InstructionData` struct. +export const visitParkEncoder = getStructEncoder([ + ['name', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], + ['height', getU32Encoder()], +]); + +export function createVisitParkInstruction(payer: TransactionSigner, programId: Address, name: string, height: number) { + return { + programAddress: programId, + accounts: [{ address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }], + data: visitParkEncoder.encode({ name, height }), + }; +} diff --git a/basics/program-derived-addresses/anchor/package.json b/basics/program-derived-addresses/anchor/package.json index 2407e16f8..4a4db24a0 100644 --- a/basics/program-derived-addresses/anchor/package.json +++ b/basics/program-derived-addresses/anchor/package.json @@ -6,7 +6,6 @@ "litesvm": "^0.8.0" }, "devDependencies": { - "@types/bn.js": "^5.1.0", "@types/chai": "^5.2.3", "@types/mocha": "^10.0.10", "chai": "^6.2.2", diff --git a/basics/program-derived-addresses/anchor/pnpm-lock.yaml b/basics/program-derived-addresses/anchor/pnpm-lock.yaml index 32bd703bd..1f49c0df6 100644 --- a/basics/program-derived-addresses/anchor/pnpm-lock.yaml +++ b/basics/program-derived-addresses/anchor/pnpm-lock.yaml @@ -18,9 +18,6 @@ importers: specifier: ^0.8.0 version: 0.8.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10) devDependencies: - '@types/bn.js': - specifier: ^5.1.0 - version: 5.1.5 '@types/chai': specifier: ^5.2.3 version: 5.2.3 @@ -267,9 +264,6 @@ packages: '@swc/helpers@0.5.12': resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==} - '@types/bn.js@5.1.5': - resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} - '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -1025,10 +1019,6 @@ snapshots: dependencies: tslib: 2.6.2 - '@types/bn.js@5.1.5': - dependencies: - '@types/node': 26.1.2 - '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 diff --git a/basics/program-derived-addresses/native/package.json b/basics/program-derived-addresses/native/package.json index d0f11dcbf..9b5fb1a50 100644 --- a/basics/program-derived-addresses/native/package.json +++ b/basics/program-derived-addresses/native/package.json @@ -8,8 +8,7 @@ }, "dependencies": { "@solana/kit": "^7.0.0", - "@solana-program/system": "^0.13.0", - "borsh": "^2.0.0" + "@solana-program/system": "^0.13.0" }, "devDependencies": { "@types/chai": "^5.2.3", diff --git a/basics/program-derived-addresses/native/pnpm-lock.yaml b/basics/program-derived-addresses/native/pnpm-lock.yaml index 882d62a26..0fc905212 100644 --- a/basics/program-derived-addresses/native/pnpm-lock.yaml +++ b/basics/program-derived-addresses/native/pnpm-lock.yaml @@ -14,9 +14,6 @@ importers: '@solana/kit': specifier: ^7.0.0 version: 7.0.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) - borsh: - specifier: ^2.0.0 - version: 2.0.0 devDependencies: '@types/chai': specifier: ^5.2.3 @@ -1036,9 +1033,6 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - borsh@2.0.0: - resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==} - brace-expansion@2.1.3: resolution: {integrity: sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A==} @@ -2512,8 +2506,6 @@ snapshots: balanced-match@1.0.2: {} - borsh@2.0.0: {} - brace-expansion@2.1.3: dependencies: balanced-match: 1.0.2 diff --git a/basics/program-derived-addresses/native/tests/test.ts b/basics/program-derived-addresses/native/tests/test.ts index 903bfec73..e3d192f93 100644 --- a/basics/program-derived-addresses/native/tests/test.ts +++ b/basics/program-derived-addresses/native/tests/test.ts @@ -1,7 +1,5 @@ import assert from 'node:assert'; -import { Buffer } from 'node:buffer'; import { - AccountRole, type Address, appendTransactionMessageInstruction, createTransactionMessage, @@ -16,8 +14,8 @@ import { signTransactionMessageWithSigners, } from '@solana/kit'; import { getCreateAccountInstruction, SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; -import * as borsh from 'borsh'; import { FailedTransactionMetadata, LiteSVM } from 'litesvm'; +import { createCreatePageVisitsInstruction, createIncrementPageVisitsInstruction, pageVisitsDecoder } from '../ts'; describe('PDAs', () => { const svm = new LiteSVM(); @@ -33,20 +31,6 @@ describe('PDAs', () => { testUser = await generateKeyPairSigner(); }); - const PageVisitsSchema = { - struct: { - page_visits: 'u32', - bump: 'u8', - }, - }; - - // Empty struct — just needs to serialize to zero bytes - const IncrementPageVisitsSchema = { struct: {} }; - - function borshSerialize(schema: borsh.Schema, data: object): Buffer { - return Buffer.from(borsh.serialize(schema, data)); - } - async function sendTransaction(ix: Instruction) { const transactionMessage = pipe( createTransactionMessage({ version: 0 }), @@ -82,62 +66,31 @@ describe('PDAs', () => { it('Create the page visits tracking PDA', async () => { const [pageVisitsPda, pageVisitsBump] = await derivePageVisitsPda(testUser.address); - const ix = { - programAddress: programId, - accounts: [ - { address: pageVisitsPda, role: AccountRole.WRITABLE }, - { address: testUser.address, role: AccountRole.READONLY }, - { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, - ], - data: new Uint8Array( - borshSerialize(PageVisitsSchema, { - page_visits: 0, - bump: pageVisitsBump, - }), - ), - }; + const ix = createCreatePageVisitsInstruction(pageVisitsPda, testUser.address, payer, programId, pageVisitsBump); await sendTransaction(ix); }); it('Visit the page!', async () => { - const [pageVisitsPda, _] = await derivePageVisitsPda(testUser.address); - const ix = { - programAddress: programId, - accounts: [ - { address: pageVisitsPda, role: AccountRole.WRITABLE }, - { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, - ], - data: new Uint8Array(borshSerialize(IncrementPageVisitsSchema, {})), - }; + const [pageVisitsPda] = await derivePageVisitsPda(testUser.address); + const ix = createIncrementPageVisitsInstruction(pageVisitsPda, payer, programId); await sendTransaction(ix); }); it('Visit the page!', async () => { - const [pageVisitsPda, _] = await derivePageVisitsPda(testUser.address); - const ix = { - programAddress: programId, - accounts: [ - { address: pageVisitsPda, role: AccountRole.WRITABLE }, - { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, - ], - data: new Uint8Array(borshSerialize(IncrementPageVisitsSchema, {})), - }; + const [pageVisitsPda] = await derivePageVisitsPda(testUser.address); + const ix = createIncrementPageVisitsInstruction(pageVisitsPda, payer, programId); svm.expireBlockhash(); await sendTransaction(ix); }); it('Read page visits', async () => { - const [pageVisitsPda, _] = await derivePageVisitsPda(testUser.address); + const [pageVisitsPda] = await derivePageVisitsPda(testUser.address); const accountInfo = svm.getAccount(pageVisitsPda); assert(accountInfo.exists, 'page visits account not found'); - const readPageVisits = borsh.deserialize(PageVisitsSchema, Buffer.from(accountInfo.data)) as { - page_visits: number; - bump: number; - }; - console.log(`Number of page visits: ${readPageVisits.page_visits}`); + const readPageVisits = pageVisitsDecoder.decode(accountInfo.data); + console.log(`Number of page visits: ${readPageVisits.pageVisits}`); }); }); diff --git a/basics/program-derived-addresses/native/ts/index.ts b/basics/program-derived-addresses/native/ts/index.ts new file mode 100644 index 000000000..898deed08 --- /dev/null +++ b/basics/program-derived-addresses/native/ts/index.ts @@ -0,0 +1,2 @@ +export * from './instructions'; +export * from './state'; diff --git a/basics/program-derived-addresses/native/ts/instructions/create.ts b/basics/program-derived-addresses/native/ts/instructions/create.ts new file mode 100644 index 000000000..f19d51c1d --- /dev/null +++ b/basics/program-derived-addresses/native/ts/instructions/create.ts @@ -0,0 +1,36 @@ +import { + AccountRole, + type Address, + getStructEncoder, + getU32Encoder, + getU8Encoder, + type TransactionSigner, +} from '@solana/kit'; +import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; + +// Instruction data layout, matching the program's `PageVisits` struct. The program +// tells its two instructions apart by which struct the data deserializes into. +export const createPageVisitsEncoder = getStructEncoder([ + ['pageVisits', getU32Encoder()], + ['bump', getU8Encoder()], +]); + +export function createCreatePageVisitsInstruction( + pageVisitsAddress: Address, + user: Address, + payer: TransactionSigner, + programId: Address, + bump: number, +) { + return { + programAddress: programId, + accounts: [ + { address: pageVisitsAddress, role: AccountRole.WRITABLE }, + { address: user, role: AccountRole.READONLY }, + { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, + { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + ], + // A freshly created tracker starts with no visits recorded. + data: createPageVisitsEncoder.encode({ pageVisits: 0, bump }), + }; +} diff --git a/basics/program-derived-addresses/native/ts/instructions/increment.ts b/basics/program-derived-addresses/native/ts/instructions/increment.ts new file mode 100644 index 000000000..341ae37fd --- /dev/null +++ b/basics/program-derived-addresses/native/ts/instructions/increment.ts @@ -0,0 +1,20 @@ +import { AccountRole, type Address, getStructEncoder, type TransactionSigner } from '@solana/kit'; + +// Instruction data layout, matching the program's `IncrementPageVisits` struct, +// which has no fields and therefore encodes to zero bytes. +export const incrementPageVisitsEncoder = getStructEncoder([]); + +export function createIncrementPageVisitsInstruction( + pageVisitsAddress: Address, + payer: TransactionSigner, + programId: Address, +) { + return { + programAddress: programId, + accounts: [ + { address: pageVisitsAddress, role: AccountRole.WRITABLE }, + { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, + ], + data: incrementPageVisitsEncoder.encode({}), + }; +} diff --git a/basics/program-derived-addresses/native/ts/instructions/index.ts b/basics/program-derived-addresses/native/ts/instructions/index.ts new file mode 100644 index 000000000..6d5115a1b --- /dev/null +++ b/basics/program-derived-addresses/native/ts/instructions/index.ts @@ -0,0 +1,2 @@ +export * from './create'; +export * from './increment'; diff --git a/basics/program-derived-addresses/native/ts/state/index.ts b/basics/program-derived-addresses/native/ts/state/index.ts new file mode 100644 index 000000000..b942ef89e --- /dev/null +++ b/basics/program-derived-addresses/native/ts/state/index.ts @@ -0,0 +1,7 @@ +import { getStructDecoder, getU32Decoder, getU8Decoder } from '@solana/kit'; + +// Account data layout, matching the program's `PageVisits` struct. +export const pageVisitsDecoder = getStructDecoder([ + ['pageVisits', getU32Decoder()], + ['bump', getU8Decoder()], +]); diff --git a/basics/realloc/anchor/package.json b/basics/realloc/anchor/package.json index e58ba0b2a..734bda4bd 100644 --- a/basics/realloc/anchor/package.json +++ b/basics/realloc/anchor/package.json @@ -10,7 +10,6 @@ "litesvm": "^0.8.0" }, "devDependencies": { - "@types/bn.js": "^5.1.0", "@types/chai": "^5.2.3", "@types/mocha": "^10.0.10", "chai": "^6.2.2", diff --git a/basics/realloc/anchor/pnpm-lock.yaml b/basics/realloc/anchor/pnpm-lock.yaml index d5fe3ec2c..6c9cc41e7 100644 --- a/basics/realloc/anchor/pnpm-lock.yaml +++ b/basics/realloc/anchor/pnpm-lock.yaml @@ -18,9 +18,6 @@ importers: specifier: ^0.8.0 version: 0.8.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10) devDependencies: - '@types/bn.js': - specifier: ^5.1.0 - version: 5.1.5 '@types/chai': specifier: ^5.2.3 version: 5.2.3 @@ -270,9 +267,6 @@ packages: '@swc/helpers@0.5.12': resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==} - '@types/bn.js@5.1.5': - resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} - '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -1033,10 +1027,6 @@ snapshots: dependencies: tslib: 2.6.2 - '@types/bn.js@5.1.5': - dependencies: - '@types/node': 26.1.2 - '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 diff --git a/basics/realloc/native/package.json b/basics/realloc/native/package.json index 381bc6de7..05b455fc7 100644 --- a/basics/realloc/native/package.json +++ b/basics/realloc/native/package.json @@ -8,8 +8,7 @@ }, "dependencies": { "@solana/kit": "^7.0.0", - "@solana-program/system": "^0.13.0", - "borsh": "^2.0.0" + "@solana-program/system": "^0.13.0" }, "devDependencies": { "@types/chai": "^5.2.3", diff --git a/basics/realloc/native/pnpm-lock.yaml b/basics/realloc/native/pnpm-lock.yaml index 882d62a26..0fc905212 100644 --- a/basics/realloc/native/pnpm-lock.yaml +++ b/basics/realloc/native/pnpm-lock.yaml @@ -14,9 +14,6 @@ importers: '@solana/kit': specifier: ^7.0.0 version: 7.0.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) - borsh: - specifier: ^2.0.0 - version: 2.0.0 devDependencies: '@types/chai': specifier: ^5.2.3 @@ -1036,9 +1033,6 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - borsh@2.0.0: - resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==} - brace-expansion@2.1.3: resolution: {integrity: sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A==} @@ -2512,8 +2506,6 @@ snapshots: balanced-match@1.0.2: {} - borsh@2.0.0: {} - brace-expansion@2.1.3: dependencies: balanced-match: 1.0.2 diff --git a/basics/realloc/native/tests/realloc.test.ts b/basics/realloc/native/tests/realloc.test.ts index 05b062847..4f73711fe 100644 --- a/basics/realloc/native/tests/realloc.test.ts +++ b/basics/realloc/native/tests/realloc.test.ts @@ -1,4 +1,3 @@ -import { Buffer } from 'node:buffer'; import { type Address, appendTransactionMessageInstruction, @@ -14,12 +13,12 @@ import { import { assert } from 'chai'; import { FailedTransactionMetadata, LiteSVM } from 'litesvm'; import { - AddressInfo, + addressInfoDecoder, createCreateInstruction, createReallocateWithoutZeroInitInstruction, createReallocateZeroInitInstruction, - EnhancedAddressInfo, - WorkInfo, + enhancedAddressInfoDecoder, + workInfoDecoder, } from '../ts'; describe('Realloc!', () => { @@ -84,7 +83,7 @@ describe('Realloc!', () => { function printAddressInfo(address: Address): void { const account = svm.getAccount(address); if (account.exists) { - const addressInfo = AddressInfo.fromBuffer(Buffer.from(account.data)); + const addressInfo = addressInfoDecoder.decode(account.data); console.log('Address info:'); console.log(` Name: ${addressInfo.name}`); console.log(` House Num: ${addressInfo.house_number}`); @@ -96,7 +95,7 @@ describe('Realloc!', () => { function printEnhancedAddressInfo(address: Address): void { const account = svm.getAccount(address); if (account.exists) { - const enhancedAddressInfo = EnhancedAddressInfo.fromBuffer(Buffer.from(account.data)); + const enhancedAddressInfo = enhancedAddressInfoDecoder.decode(account.data); console.log('Enhanced Address info:'); console.log(` Name: ${enhancedAddressInfo.name}`); console.log(` House Num: ${enhancedAddressInfo.house_number}`); @@ -110,7 +109,7 @@ describe('Realloc!', () => { function printWorkInfo(address: Address): void { const account = svm.getAccount(address); if (account.exists) { - const workInfo = WorkInfo.fromBuffer(Buffer.from(account.data)); + const workInfo = workInfoDecoder.decode(account.data); console.log('Work info:'); console.log(` Name: ${workInfo.name}`); console.log(` Position: ${workInfo.position}`); diff --git a/basics/realloc/native/ts/index.ts b/basics/realloc/native/ts/index.ts index 70c7f3510..9a5cbc81d 100644 --- a/basics/realloc/native/ts/index.ts +++ b/basics/realloc/native/ts/index.ts @@ -1,7 +1,3 @@ -export * from './instructions/create'; -export * from './instructions/instruction'; -export * from './instructions/reallocate'; -export * from './state/address-info'; -export * from './state/enhanced-address-info'; -export * from './state/work-info'; -export * from './util/util'; +export * from './instructions'; +export * from './state'; +export * from './util'; diff --git a/basics/realloc/native/ts/instructions/create.ts b/basics/realloc/native/ts/instructions/create.ts index 2d4647aba..c54cca377 100644 --- a/basics/realloc/native/ts/instructions/create.ts +++ b/basics/realloc/native/ts/instructions/create.ts @@ -1,18 +1,24 @@ -import { Buffer } from 'node:buffer'; -import { AccountRole, type Address, type TransactionSigner } from '@solana/kit'; +import { + AccountRole, + addEncoderSizePrefix, + type Address, + getStructEncoder, + getU8Encoder, + getU32Encoder, + getUtf8Encoder, + type TransactionSigner, +} from '@solana/kit'; import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; -import * as borsh from 'borsh'; -import { ReallocInstruction } from './instruction'; +import { ReallocInstruction } from '.'; -const CreateSchema = { - struct: { - instruction: 'u8', - name: 'string', - house_number: 'u8', - street: 'string', - city: 'string', - }, -} as const; +// Instruction data layout, matching the program's `ReallocInstruction::Create(AddressInfo)` variant. +export const createEncoder = getStructEncoder([ + ['instruction', getU8Encoder()], + ['name', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], + ['house_number', getU8Encoder()], + ['street', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], + ['city', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], +]); export function createCreateInstruction( target: TransactionSigner, @@ -23,16 +29,6 @@ export function createCreateInstruction( street: string, city: string, ) { - const data = Buffer.from( - borsh.serialize(CreateSchema, { - instruction: ReallocInstruction.Create, - name, - house_number, - street, - city, - }), - ); - return { programAddress: programId, accounts: [ @@ -40,6 +36,12 @@ export function createCreateInstruction( { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, ], - data: new Uint8Array(data), + data: createEncoder.encode({ + instruction: ReallocInstruction.Create, + name, + house_number, + street, + city, + }), }; } diff --git a/basics/realloc/native/ts/instructions/index.ts b/basics/realloc/native/ts/instructions/index.ts index a0876a284..4b879c800 100644 --- a/basics/realloc/native/ts/instructions/index.ts +++ b/basics/realloc/native/ts/instructions/index.ts @@ -1,3 +1,10 @@ export * from './create'; -export * from './instruction'; export * from './reallocate'; + +export const ReallocInstruction = { + Create: 0, + ReallocateWithoutZeroInit: 1, + ReallocateZeroInit: 2, +} as const; + +export type ReallocInstruction = (typeof ReallocInstruction)[keyof typeof ReallocInstruction]; diff --git a/basics/realloc/native/ts/instructions/instruction.ts b/basics/realloc/native/ts/instructions/instruction.ts deleted file mode 100644 index cbb264c96..000000000 --- a/basics/realloc/native/ts/instructions/instruction.ts +++ /dev/null @@ -1,5 +0,0 @@ -export enum ReallocInstruction { - Create = 0, - ReallocateWithoutZeroInit = 1, - ReallocateZeroInit = 2, -} diff --git a/basics/realloc/native/ts/instructions/reallocate.ts b/basics/realloc/native/ts/instructions/reallocate.ts index cb1ad805f..6cd83bfd6 100644 --- a/basics/realloc/native/ts/instructions/reallocate.ts +++ b/basics/realloc/native/ts/instructions/reallocate.ts @@ -1,16 +1,23 @@ -import { Buffer } from 'node:buffer'; -import { AccountRole, type Address, type TransactionSigner } from '@solana/kit'; +import { + AccountRole, + addEncoderSizePrefix, + type Address, + getStructEncoder, + getU8Encoder, + getU32Encoder, + getUtf8Encoder, + type TransactionSigner, +} from '@solana/kit'; import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; -import * as borsh from 'borsh'; -import { ReallocInstruction } from './instruction'; +import { ReallocInstruction } from '.'; -const ReallocateWithoutZeroInitSchema = { - struct: { - instruction: 'u8', - state: 'string', - zip: 'u32', - }, -} as const; +// Instruction data layout, matching the program's +// `ReallocInstruction::ReallocateWithoutZeroInit(EnhancedAddressInfoExtender)` variant. +export const reallocateWithoutZeroInitEncoder = getStructEncoder([ + ['instruction', getU8Encoder()], + ['state', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], + ['zip', getU32Encoder()], +]); export function createReallocateWithoutZeroInitInstruction( target: Address, @@ -19,14 +26,6 @@ export function createReallocateWithoutZeroInitInstruction( state: string, zip: number, ) { - const data = Buffer.from( - borsh.serialize(ReallocateWithoutZeroInitSchema, { - instruction: ReallocInstruction.ReallocateWithoutZeroInit, - state, - zip, - }), - ); - return { programAddress: programId, accounts: [ @@ -34,19 +33,23 @@ export function createReallocateWithoutZeroInitInstruction( { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, ], - data: new Uint8Array(data), + data: reallocateWithoutZeroInitEncoder.encode({ + instruction: ReallocInstruction.ReallocateWithoutZeroInit, + state, + zip, + }), }; } -const ReallocateZeroInitSchema = { - struct: { - instruction: 'u8', - name: 'string', - position: 'string', - company: 'string', - years_employed: 'u8', - }, -} as const; +// Instruction data layout, matching the program's +// `ReallocInstruction::ReallocateZeroInit(WorkInfo)` variant. +export const reallocateZeroInitEncoder = getStructEncoder([ + ['instruction', getU8Encoder()], + ['name', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], + ['position', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], + ['company', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], + ['years_employed', getU8Encoder()], +]); export function createReallocateZeroInitInstruction( target: Address, @@ -57,19 +60,15 @@ export function createReallocateZeroInitInstruction( company: string, years_employed: number, ) { - const data = Buffer.from( - borsh.serialize(ReallocateZeroInitSchema, { + return { + programAddress: programId, + accounts: [{ address: target, role: AccountRole.WRITABLE }], + data: reallocateZeroInitEncoder.encode({ instruction: ReallocInstruction.ReallocateZeroInit, name, position, company, years_employed, }), - ); - - return { - programAddress: programId, - accounts: [{ address: target, role: AccountRole.WRITABLE }], - data: new Uint8Array(data), }; } diff --git a/basics/realloc/native/ts/state/address-info.ts b/basics/realloc/native/ts/state/address-info.ts index 2eb14431c..e90b1138b 100644 --- a/basics/realloc/native/ts/state/address-info.ts +++ b/basics/realloc/native/ts/state/address-info.ts @@ -1,33 +1,9 @@ -import { Buffer } from 'node:buffer'; -import * as borsh from 'borsh'; - -export const AddressInfoSchema = { - struct: { - name: 'string', - house_number: 'u8', - street: 'string', - city: 'string', - }, -} as const; - -export class AddressInfo { - name: string; - house_number: number; - street: string; - city: string; - - constructor(props: { name: string; house_number: number; street: string; city: string }) { - this.name = props.name; - this.house_number = props.house_number; - this.street = props.street; - this.city = props.city; - } - - toBuffer() { - return Buffer.from(borsh.serialize(AddressInfoSchema, this)); - } - - static fromBuffer(buffer: Buffer): AddressInfo { - return borsh.deserialize(AddressInfoSchema, buffer) as AddressInfo; - } -} +import { addDecoderSizePrefix, getStructDecoder, getU8Decoder, getU32Decoder, getUtf8Decoder } from '@solana/kit'; + +// Account data layout, matching the program's `AddressInfo` struct. +export const addressInfoDecoder = getStructDecoder([ + ['name', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())], + ['house_number', getU8Decoder()], + ['street', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())], + ['city', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())], +]); diff --git a/basics/realloc/native/ts/state/enhanced-address-info.ts b/basics/realloc/native/ts/state/enhanced-address-info.ts index de11d1687..1c1636e4b 100644 --- a/basics/realloc/native/ts/state/enhanced-address-info.ts +++ b/basics/realloc/native/ts/state/enhanced-address-info.ts @@ -1,46 +1,11 @@ -import { Buffer } from 'node:buffer'; -import * as borsh from 'borsh'; - -export const EnhancedAddressInfoSchema = { - struct: { - name: 'string', - house_number: 'u8', - street: 'string', - city: 'string', - state: 'string', - zip: 'u32', - }, -} as const; - -export class EnhancedAddressInfo { - name: string; - house_number: number; - street: string; - city: string; - state: string; - zip: number; - - constructor(props: { - name: string; - house_number: number; - street: string; - city: string; - state: string; - zip: number; - }) { - this.name = props.name; - this.house_number = props.house_number; - this.street = props.street; - this.city = props.city; - this.state = props.state; - this.zip = props.zip; - } - - toBuffer() { - return Buffer.from(borsh.serialize(EnhancedAddressInfoSchema, this)); - } - - static fromBuffer(buffer: Buffer): EnhancedAddressInfo { - return borsh.deserialize(EnhancedAddressInfoSchema, buffer) as EnhancedAddressInfo; - } -} +import { addDecoderSizePrefix, getStructDecoder, getU8Decoder, getU32Decoder, getUtf8Decoder } from '@solana/kit'; + +// Account data layout, matching the program's `EnhancedAddressInfo` struct. +export const enhancedAddressInfoDecoder = getStructDecoder([ + ['name', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())], + ['house_number', getU8Decoder()], + ['street', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())], + ['city', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())], + ['state', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())], + ['zip', getU32Decoder()], +]); diff --git a/basics/realloc/native/ts/state/work-info.ts b/basics/realloc/native/ts/state/work-info.ts index 638537883..3b1bf2f38 100644 --- a/basics/realloc/native/ts/state/work-info.ts +++ b/basics/realloc/native/ts/state/work-info.ts @@ -1,33 +1,9 @@ -import { Buffer } from 'node:buffer'; -import * as borsh from 'borsh'; - -export const WorkInfoSchema = { - struct: { - name: 'string', - position: 'string', - company: 'string', - years_employed: 'u8', - }, -} as const; - -export class WorkInfo { - name: string; - position: string; - company: string; - years_employed: number; - - constructor(props: { name: string; position: string; company: string; years_employed: number }) { - this.name = props.name; - this.position = props.position; - this.company = props.company; - this.years_employed = props.years_employed; - } - - toBuffer() { - return Buffer.from(borsh.serialize(WorkInfoSchema, this)); - } - - static fromBuffer(buffer: Buffer): WorkInfo { - return borsh.deserialize(WorkInfoSchema, buffer) as WorkInfo; - } -} +import { addDecoderSizePrefix, getStructDecoder, getU8Decoder, getU32Decoder, getUtf8Decoder } from '@solana/kit'; + +// Account data layout, matching the program's `WorkInfo` struct. +export const workInfoDecoder = getStructDecoder([ + ['name', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())], + ['position', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())], + ['company', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())], + ['years_employed', getU8Decoder()], +]); diff --git a/basics/repository-layout/anchor/package.json b/basics/repository-layout/anchor/package.json index 2407e16f8..4a4db24a0 100644 --- a/basics/repository-layout/anchor/package.json +++ b/basics/repository-layout/anchor/package.json @@ -6,7 +6,6 @@ "litesvm": "^0.8.0" }, "devDependencies": { - "@types/bn.js": "^5.1.0", "@types/chai": "^5.2.3", "@types/mocha": "^10.0.10", "chai": "^6.2.2", diff --git a/basics/repository-layout/anchor/pnpm-lock.yaml b/basics/repository-layout/anchor/pnpm-lock.yaml index 688918273..7994511fe 100644 --- a/basics/repository-layout/anchor/pnpm-lock.yaml +++ b/basics/repository-layout/anchor/pnpm-lock.yaml @@ -18,9 +18,6 @@ importers: specifier: ^0.8.0 version: 0.8.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10) devDependencies: - '@types/bn.js': - specifier: ^5.1.0 - version: 5.1.5 '@types/chai': specifier: ^5.2.3 version: 5.2.3 @@ -267,9 +264,6 @@ packages: '@swc/helpers@0.5.12': resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==} - '@types/bn.js@5.1.5': - resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} - '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -1022,10 +1016,6 @@ snapshots: dependencies: tslib: 2.6.2 - '@types/bn.js@5.1.5': - dependencies: - '@types/node': 26.1.2 - '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 diff --git a/basics/repository-layout/native/package.json b/basics/repository-layout/native/package.json index eb551e615..4bf1e26e1 100644 --- a/basics/repository-layout/native/package.json +++ b/basics/repository-layout/native/package.json @@ -7,8 +7,7 @@ "deploy": "solana program deploy ./program/target/so/program.so" }, "dependencies": { - "@solana/kit": "^7.0.0", - "borsh": "^2.0.0" + "@solana/kit": "^7.0.0" }, "devDependencies": { "@types/chai": "^5.2.3", diff --git a/basics/repository-layout/native/pnpm-lock.yaml b/basics/repository-layout/native/pnpm-lock.yaml index 7d95a9c76..6832a2433 100644 --- a/basics/repository-layout/native/pnpm-lock.yaml +++ b/basics/repository-layout/native/pnpm-lock.yaml @@ -11,9 +11,6 @@ importers: '@solana/kit': specifier: ^7.0.0 version: 7.0.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) - borsh: - specifier: ^2.0.0 - version: 2.0.0 devDependencies: '@types/chai': specifier: ^5.2.3 @@ -1028,9 +1025,6 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - borsh@2.0.0: - resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==} - brace-expansion@2.1.3: resolution: {integrity: sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A==} @@ -2500,8 +2494,6 @@ snapshots: balanced-match@1.0.2: {} - borsh@2.0.0: {} - brace-expansion@2.1.3: dependencies: balanced-match: 1.0.2 diff --git a/basics/repository-layout/native/tests/test.ts b/basics/repository-layout/native/tests/test.ts index 61b181721..e0be27f61 100644 --- a/basics/repository-layout/native/tests/test.ts +++ b/basics/repository-layout/native/tests/test.ts @@ -1,6 +1,4 @@ -import { Buffer } from 'node:buffer'; import { - AccountRole, type Address, appendTransactionMessageInstructions, createTransactionMessage, @@ -11,9 +9,9 @@ import { setTransactionMessageFeePayerSigner, signTransactionMessageWithSigners, } from '@solana/kit'; -import * as borsh from 'borsh'; import { assert } from 'chai'; import { FailedTransactionMetadata, LiteSVM } from 'litesvm'; +import { type CarnivalInstructionData, createCarnivalInstruction } from '../ts'; describe('Carnival', () => { const svm = new LiteSVM(); @@ -27,34 +25,8 @@ describe('Carnival', () => { svm.airdrop(payer.address, lamports(1_000_000_000n)); }); - const CarnivalInstructionSchema = { - struct: { - name: 'string', - height: 'u32', - ticket_count: 'u32', - attraction: 'string', - attraction_name: 'string', - }, - }; - - type CarnivalInstruction = { - name: string; - height: number; - ticket_count: number; - attraction: string; - attraction_name: string; - }; - - function borshSerialize(schema: borsh.Schema, data: object): Buffer { - return Buffer.from(borsh.serialize(schema, data)); - } - - async function sendCarnivalInstructions(instructionsList: CarnivalInstruction[]) { - const instructions = instructionsList.map(ix => ({ - programAddress: programId, - accounts: [{ address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }], - data: new Uint8Array(borshSerialize(CarnivalInstructionSchema, ix)), - })); + async function sendCarnivalInstructions(instructionsList: CarnivalInstructionData[]) { + const instructions = instructionsList.map(data => createCarnivalInstruction(payer, programId, data)); const transactionMessage = pipe( createTransactionMessage({ version: 0 }), @@ -73,30 +45,30 @@ describe('Carnival', () => { { name: 'Jimmy', height: 36, - ticket_count: 15, + ticketCount: 15, attraction: 'ride', - attraction_name: 'Scrambler', + attractionName: 'Scrambler', }, { name: 'Mary', height: 52, - ticket_count: 1, + ticketCount: 1, attraction: 'ride', - attraction_name: 'Ferris Wheel', + attractionName: 'Ferris Wheel', }, { name: 'Alice', height: 56, - ticket_count: 15, + ticketCount: 15, attraction: 'ride', - attraction_name: 'Scrambler', + attractionName: 'Scrambler', }, { name: 'Bob', height: 49, - ticket_count: 6, + ticketCount: 6, attraction: 'ride', - attraction_name: 'Tilt-a-Whirl', + attractionName: 'Tilt-a-Whirl', }, ]); }); @@ -106,30 +78,30 @@ describe('Carnival', () => { { name: 'Jimmy', height: 36, - ticket_count: 15, + ticketCount: 15, attraction: 'game', - attraction_name: 'I Got It!', + attractionName: 'I Got It!', }, { name: 'Mary', height: 52, - ticket_count: 1, + ticketCount: 1, attraction: 'game', - attraction_name: 'Ring Toss', + attractionName: 'Ring Toss', }, { name: 'Alice', height: 56, - ticket_count: 15, + ticketCount: 15, attraction: 'game', - attraction_name: 'Ladder Climb', + attractionName: 'Ladder Climb', }, { name: 'Bob', height: 49, - ticket_count: 6, + ticketCount: 6, attraction: 'game', - attraction_name: 'Ring Toss', + attractionName: 'Ring Toss', }, ]); }); @@ -139,30 +111,30 @@ describe('Carnival', () => { { name: 'Jimmy', height: 36, - ticket_count: 15, + ticketCount: 15, attraction: 'food', - attraction_name: 'Taco Shack', + attractionName: 'Taco Shack', }, { name: 'Mary', height: 52, - ticket_count: 1, + ticketCount: 1, attraction: 'food', - attraction_name: "Larry's Pizza", + attractionName: "Larry's Pizza", }, { name: 'Alice', height: 56, - ticket_count: 15, + ticketCount: 15, attraction: 'food', - attraction_name: "Dough Boy's", + attractionName: "Dough Boy's", }, { name: 'Bob', height: 49, - ticket_count: 6, + ticketCount: 6, attraction: 'food', - attraction_name: "Dough Boy's", + attractionName: "Dough Boy's", }, ]); }); diff --git a/basics/repository-layout/native/ts/index.ts b/basics/repository-layout/native/ts/index.ts new file mode 100644 index 000000000..32b452fa4 --- /dev/null +++ b/basics/repository-layout/native/ts/index.ts @@ -0,0 +1 @@ +export * from './instructions'; diff --git a/basics/repository-layout/native/ts/instructions/carnival.ts b/basics/repository-layout/native/ts/instructions/carnival.ts new file mode 100644 index 000000000..1a099ea5c --- /dev/null +++ b/basics/repository-layout/native/ts/instructions/carnival.ts @@ -0,0 +1,37 @@ +import { + AccountRole, + addEncoderSizePrefix, + type Address, + getStructEncoder, + getU32Encoder, + getUtf8Encoder, + type TransactionSigner, +} from '@solana/kit'; + +// Instruction data layout, matching the program's `CarnivalInstructionData` struct. +export const carnivalEncoder = getStructEncoder([ + ['name', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], + ['height', getU32Encoder()], + ['ticketCount', getU32Encoder()], + ['attraction', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], + ['attractionName', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], +]); + +// The attraction the visitor is headed to, which selects the instruction handler. +export type Attraction = 'food' | 'game' | 'ride'; + +export type CarnivalInstructionData = { + name: string; + height: number; + ticketCount: number; + attraction: Attraction; + attractionName: string; +}; + +export function createCarnivalInstruction(payer: TransactionSigner, programId: Address, data: CarnivalInstructionData) { + return { + programAddress: programId, + accounts: [{ address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }], + data: carnivalEncoder.encode(data), + }; +} diff --git a/basics/repository-layout/native/ts/instructions/index.ts b/basics/repository-layout/native/ts/instructions/index.ts new file mode 100644 index 000000000..c2ae68813 --- /dev/null +++ b/basics/repository-layout/native/ts/instructions/index.ts @@ -0,0 +1 @@ +export * from './carnival'; diff --git a/basics/repository-layout/pinocchio/package.json b/basics/repository-layout/pinocchio/package.json index eb551e615..4bf1e26e1 100644 --- a/basics/repository-layout/pinocchio/package.json +++ b/basics/repository-layout/pinocchio/package.json @@ -7,8 +7,7 @@ "deploy": "solana program deploy ./program/target/so/program.so" }, "dependencies": { - "@solana/kit": "^7.0.0", - "borsh": "^2.0.0" + "@solana/kit": "^7.0.0" }, "devDependencies": { "@types/chai": "^5.2.3", diff --git a/basics/repository-layout/pinocchio/pnpm-lock.yaml b/basics/repository-layout/pinocchio/pnpm-lock.yaml index 811d2aab0..57b1f98ea 100644 --- a/basics/repository-layout/pinocchio/pnpm-lock.yaml +++ b/basics/repository-layout/pinocchio/pnpm-lock.yaml @@ -11,9 +11,6 @@ importers: '@solana/kit': specifier: ^7.0.0 version: 7.0.0(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6) - borsh: - specifier: ^2.0.0 - version: 2.0.0 devDependencies: '@types/chai': specifier: ^5.2.3 @@ -1028,9 +1025,6 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - borsh@2.0.0: - resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==} - brace-expansion@2.1.3: resolution: {integrity: sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A==} @@ -2500,8 +2494,6 @@ snapshots: balanced-match@1.0.2: {} - borsh@2.0.0: {} - brace-expansion@2.1.3: dependencies: balanced-match: 1.0.2 diff --git a/basics/repository-layout/pinocchio/tests/test.ts b/basics/repository-layout/pinocchio/tests/test.ts index 298df684e..53352cd81 100644 --- a/basics/repository-layout/pinocchio/tests/test.ts +++ b/basics/repository-layout/pinocchio/tests/test.ts @@ -1,6 +1,4 @@ -import { Buffer } from 'node:buffer'; import { - AccountRole, type Address, appendTransactionMessageInstructions, createTransactionMessage, @@ -11,9 +9,9 @@ import { setTransactionMessageFeePayerSigner, signTransactionMessageWithSigners, } from '@solana/kit'; -import * as borsh from 'borsh'; import { assert } from 'chai'; import { FailedTransactionMetadata, LiteSVM } from 'litesvm'; +import { type CarnivalInstructionData, createCarnivalInstruction } from '../ts'; describe('Carnival (Pinocchio)', () => { const svm = new LiteSVM(); @@ -23,39 +21,12 @@ describe('Carnival (Pinocchio)', () => { before(async () => { programId = (await generateKeyPairSigner()).address; svm.addProgramFromFile(programId, 'tests/fixtures/repository_layout_pinocchio_program.so'); - payer = await generateKeyPairSigner(); svm.airdrop(payer.address, lamports(1_000_000_000n)); }); - const CarnivalInstructionSchema = { - struct: { - name: 'string', - height: 'u32', - ticket_count: 'u32', - attraction: 'string', - attraction_name: 'string', - }, - }; - - type CarnivalInstruction = { - name: string; - height: number; - ticket_count: number; - attraction: string; - attraction_name: string; - }; - - function borshSerialize(schema: borsh.Schema, data: object): Buffer { - return Buffer.from(borsh.serialize(schema, data)); - } - - async function sendCarnivalInstructions(instructionsList: CarnivalInstruction[]) { - const instructions = instructionsList.map(ix => ({ - programAddress: programId, - accounts: [{ address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }], - data: new Uint8Array(borshSerialize(CarnivalInstructionSchema, ix)), - })); + async function sendCarnivalInstructions(instructionsList: CarnivalInstructionData[]) { + const instructions = instructionsList.map(data => createCarnivalInstruction(payer, programId, data)); const transactionMessage = pipe( createTransactionMessage({ version: 0 }), @@ -74,30 +45,30 @@ describe('Carnival (Pinocchio)', () => { { name: 'Jimmy', height: 36, - ticket_count: 15, + ticketCount: 15, attraction: 'ride', - attraction_name: 'Scrambler', + attractionName: 'Scrambler', }, { name: 'Mary', height: 52, - ticket_count: 1, + ticketCount: 1, attraction: 'ride', - attraction_name: 'Ferris Wheel', + attractionName: 'Ferris Wheel', }, { name: 'Alice', height: 56, - ticket_count: 15, + ticketCount: 15, attraction: 'ride', - attraction_name: 'Scrambler', + attractionName: 'Scrambler', }, { name: 'Bob', height: 49, - ticket_count: 6, + ticketCount: 6, attraction: 'ride', - attraction_name: 'Tilt-a-Whirl', + attractionName: 'Tilt-a-Whirl', }, ]); }); @@ -107,30 +78,30 @@ describe('Carnival (Pinocchio)', () => { { name: 'Jimmy', height: 36, - ticket_count: 15, + ticketCount: 15, attraction: 'game', - attraction_name: 'I Got It!', + attractionName: 'I Got It!', }, { name: 'Mary', height: 52, - ticket_count: 1, + ticketCount: 1, attraction: 'game', - attraction_name: 'Ring Toss', + attractionName: 'Ring Toss', }, { name: 'Alice', height: 56, - ticket_count: 15, + ticketCount: 15, attraction: 'game', - attraction_name: 'Ladder Climb', + attractionName: 'Ladder Climb', }, { name: 'Bob', height: 49, - ticket_count: 6, + ticketCount: 6, attraction: 'game', - attraction_name: 'Ring Toss', + attractionName: 'Ring Toss', }, ]); }); @@ -140,30 +111,30 @@ describe('Carnival (Pinocchio)', () => { { name: 'Jimmy', height: 36, - ticket_count: 15, + ticketCount: 15, attraction: 'food', - attraction_name: 'Taco Shack', + attractionName: 'Taco Shack', }, { name: 'Mary', height: 52, - ticket_count: 1, + ticketCount: 1, attraction: 'food', - attraction_name: "Larry's Pizza", + attractionName: "Larry's Pizza", }, { name: 'Alice', height: 56, - ticket_count: 15, + ticketCount: 15, attraction: 'food', - attraction_name: "Dough Boy's", + attractionName: "Dough Boy's", }, { name: 'Bob', height: 49, - ticket_count: 6, + ticketCount: 6, attraction: 'food', - attraction_name: "Dough Boy's", + attractionName: "Dough Boy's", }, ]); }); diff --git a/basics/repository-layout/pinocchio/ts/index.ts b/basics/repository-layout/pinocchio/ts/index.ts new file mode 100644 index 000000000..32b452fa4 --- /dev/null +++ b/basics/repository-layout/pinocchio/ts/index.ts @@ -0,0 +1 @@ +export * from './instructions'; diff --git a/basics/repository-layout/pinocchio/ts/instructions/carnival.ts b/basics/repository-layout/pinocchio/ts/instructions/carnival.ts new file mode 100644 index 000000000..92e789a63 --- /dev/null +++ b/basics/repository-layout/pinocchio/ts/instructions/carnival.ts @@ -0,0 +1,37 @@ +import { + AccountRole, + addEncoderSizePrefix, + type Address, + getStructEncoder, + getU32Encoder, + getUtf8Encoder, + type TransactionSigner, +} from '@solana/kit'; + +// Instruction data layout, matching the field order the program's `process_instruction` reads. +export const carnivalEncoder = getStructEncoder([ + ['name', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], + ['height', getU32Encoder()], + ['ticketCount', getU32Encoder()], + ['attraction', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], + ['attractionName', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], +]); + +// The attraction the visitor is headed to, which selects the instruction handler. +export type Attraction = 'food' | 'game' | 'ride'; + +export type CarnivalInstructionData = { + name: string; + height: number; + ticketCount: number; + attraction: Attraction; + attractionName: string; +}; + +export function createCarnivalInstruction(payer: TransactionSigner, programId: Address, data: CarnivalInstructionData) { + return { + programAddress: programId, + accounts: [{ address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }], + data: carnivalEncoder.encode(data), + }; +} diff --git a/basics/repository-layout/pinocchio/ts/instructions/index.ts b/basics/repository-layout/pinocchio/ts/instructions/index.ts new file mode 100644 index 000000000..c2ae68813 --- /dev/null +++ b/basics/repository-layout/pinocchio/ts/instructions/index.ts @@ -0,0 +1 @@ +export * from './carnival'; diff --git a/basics/transfer-sol/anchor/tests/test.ts b/basics/transfer-sol/anchor/tests/test.ts index f6073f3c9..62039457b 100644 --- a/basics/transfer-sol/anchor/tests/test.ts +++ b/basics/transfer-sol/anchor/tests/test.ts @@ -1,6 +1,5 @@ import * as anchor from '@anchor-lang/core'; import { Keypair, LAMPORTS_PER_SOL, SystemProgram, sendAndConfirmTransaction, Transaction } from '@solana/web3.js'; -import { BN } from 'bn.js'; import { assert } from 'chai'; import type { TransferSol } from '../target/types/transfer_sol.ts'; @@ -14,7 +13,7 @@ describe('Anchor: Transfer SOL', () => { const recipient = Keypair.generate(); await program.methods - .transferSolWithCpi(new BN(LAMPORTS_PER_SOL)) + .transferSolWithCpi(new anchor.BN(LAMPORTS_PER_SOL)) .accounts({ payer: payer.publicKey, recipient: recipient.publicKey, @@ -41,7 +40,7 @@ describe('Anchor: Transfer SOL', () => { const recipientAccount = Keypair.generate(); await program.methods - .transferSolWithProgram(new BN(LAMPORTS_PER_SOL)) + .transferSolWithProgram(new anchor.BN(LAMPORTS_PER_SOL)) .accounts({ payer: payerAccount.publicKey, recipient: recipientAccount.publicKey, diff --git a/basics/transfer-sol/native/package.json b/basics/transfer-sol/native/package.json index c95dfa050..dfa896bb6 100644 --- a/basics/transfer-sol/native/package.json +++ b/basics/transfer-sol/native/package.json @@ -8,8 +8,7 @@ }, "dependencies": { "@solana/kit": "^7.0.0", - "@solana-program/system": "^0.13.0", - "borsh": "^2.0.0" + "@solana-program/system": "^0.13.0" }, "devDependencies": { "@types/chai": "^5.2.3", diff --git a/basics/transfer-sol/native/pnpm-lock.yaml b/basics/transfer-sol/native/pnpm-lock.yaml index 882d62a26..0fc905212 100644 --- a/basics/transfer-sol/native/pnpm-lock.yaml +++ b/basics/transfer-sol/native/pnpm-lock.yaml @@ -14,9 +14,6 @@ importers: '@solana/kit': specifier: ^7.0.0 version: 7.0.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) - borsh: - specifier: ^2.0.0 - version: 2.0.0 devDependencies: '@types/chai': specifier: ^5.2.3 @@ -1036,9 +1033,6 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - borsh@2.0.0: - resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==} - brace-expansion@2.1.3: resolution: {integrity: sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A==} @@ -2512,8 +2506,6 @@ snapshots: balanced-match@1.0.2: {} - borsh@2.0.0: {} - brace-expansion@2.1.3: dependencies: balanced-match: 1.0.2 diff --git a/basics/transfer-sol/native/tests/instruction.ts b/basics/transfer-sol/native/tests/instruction.ts deleted file mode 100644 index 4ca4458a3..000000000 --- a/basics/transfer-sol/native/tests/instruction.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Buffer } from 'node:buffer'; -import { AccountRole, type Address, type TransactionSigner } from '@solana/kit'; -import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; -import * as borsh from 'borsh'; - -export enum InstructionType { - CpiTransfer = 0, - ProgramTransfer = 1, -} - -const TransferInstructionSchema = { - struct: { - instruction: 'u8', - amount: 'u64', - }, -}; - -export function createTransferInstruction( - payer: TransactionSigner, - recipientAddress: Address, - programId: Address, - instruction: InstructionType, - amount: number, -) { - const data = Buffer.from( - borsh.serialize(TransferInstructionSchema, { - instruction, - amount, - }), - ); - - return { - programAddress: programId, - accounts: [ - { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, - { address: recipientAddress, role: AccountRole.WRITABLE }, - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, - ], - data: new Uint8Array(data), - }; -} diff --git a/basics/transfer-sol/native/tests/test.ts b/basics/transfer-sol/native/tests/test.ts index 3f5459432..35a90bfa1 100644 --- a/basics/transfer-sol/native/tests/test.ts +++ b/basics/transfer-sol/native/tests/test.ts @@ -14,7 +14,7 @@ import { import { getCreateAccountInstruction } from '@solana-program/system'; import { assert } from 'chai'; import { FailedTransactionMetadata, LiteSVM } from 'litesvm'; -import { createTransferInstruction, InstructionType } from './instruction'; +import { createCpiTransferInstruction, createProgramTransferInstruction } from '../ts'; const LAMPORTS_PER_SOL = 1_000_000_000; @@ -53,13 +53,7 @@ describe('transfer-sol', () => { it('Transfer between accounts using the system program', async () => { getBalances(payer.address, test1Recipient.address, 'Beginning'); - const ix = createTransferInstruction( - payer, - test1Recipient.address, - programId, - InstructionType.CpiTransfer, - transferAmount, - ); + const ix = createCpiTransferInstruction(payer, test1Recipient.address, programId, transferAmount); await sendTransaction([ix]); @@ -83,11 +77,10 @@ describe('transfer-sol', () => { it('Transfer between accounts using our program', async () => { getBalances(test2Recipient1.address, test2Recipient2.address, 'Beginning'); - const ix = createTransferInstruction( + const ix = createProgramTransferInstruction( test2Recipient1, test2Recipient2.address, programId, - InstructionType.ProgramTransfer, transferAmount, ); @@ -112,11 +105,10 @@ describe('transfer-sol', () => { // The attacker never has victimAccount's private key. They build the // instruction with victimAccount marked as a non-signer and only // sign with their own (unrelated) fee-payer key. - const legitIx = createTransferInstruction( + const legitIx = createProgramTransferInstruction( victimAccount, attackerRecipient.address, programId, - InstructionType.ProgramTransfer, transferAmount, ); const attackIx = { diff --git a/basics/transfer-sol/native/ts/index.ts b/basics/transfer-sol/native/ts/index.ts new file mode 100644 index 000000000..32b452fa4 --- /dev/null +++ b/basics/transfer-sol/native/ts/index.ts @@ -0,0 +1 @@ +export * from './instructions'; diff --git a/basics/transfer-sol/native/ts/instructions/index.ts b/basics/transfer-sol/native/ts/instructions/index.ts new file mode 100644 index 000000000..dd1295acb --- /dev/null +++ b/basics/transfer-sol/native/ts/instructions/index.ts @@ -0,0 +1,8 @@ +export * from './transfer'; + +export const TransferInstruction = { + CpiTransfer: 0, + ProgramTransfer: 1, +} as const; + +export type TransferInstruction = (typeof TransferInstruction)[keyof typeof TransferInstruction]; diff --git a/basics/transfer-sol/native/ts/instructions/transfer.ts b/basics/transfer-sol/native/ts/instructions/transfer.ts new file mode 100644 index 000000000..acdecaf66 --- /dev/null +++ b/basics/transfer-sol/native/ts/instructions/transfer.ts @@ -0,0 +1,53 @@ +import { + AccountRole, + type Address, + getStructEncoder, + getU8Encoder, + getU64Encoder, + type TransactionSigner, +} from '@solana/kit'; +import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; +import { TransferInstruction } from '.'; + +// Instruction data layout, shared by the program's `TransferInstruction::CpiTransfer(u64)` +// and `TransferInstruction::ProgramTransfer(u64)` variants. +export const transferEncoder = getStructEncoder([ + ['instruction', getU8Encoder()], + ['amount', getU64Encoder()], +]); + +// Moves lamports from the payer to the recipient by way of a System Program CPI. +export function createCpiTransferInstruction( + payer: TransactionSigner, + recipientAddress: Address, + programId: Address, + amount: bigint | number, +) { + return { + programAddress: programId, + accounts: [ + { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, + { address: recipientAddress, role: AccountRole.WRITABLE }, + { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + ], + data: transferEncoder.encode({ instruction: TransferInstruction.CpiTransfer, amount }), + }; +} + +// Moves lamports by directly editing the balances of two accounts the program owns. +export function createProgramTransferInstruction( + payer: TransactionSigner, + recipientAddress: Address, + programId: Address, + amount: bigint | number, +) { + return { + programAddress: programId, + accounts: [ + { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, + { address: recipientAddress, role: AccountRole.WRITABLE }, + { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + ], + data: transferEncoder.encode({ instruction: TransferInstruction.ProgramTransfer, amount }), + }; +} diff --git a/compression/cnft-burn/anchor/package.json b/compression/cnft-burn/anchor/package.json index b3d09fe32..57c8a6b0d 100644 --- a/compression/cnft-burn/anchor/package.json +++ b/compression/cnft-burn/anchor/package.json @@ -9,7 +9,7 @@ "@metaplex-foundation/js": "^0.19.4", "@metaplex-foundation/mpl-bubblegum": "^0.7.0", "@metaplex-foundation/mpl-token-metadata": "^2.12.0", - "@metaplex-foundation/umi": "^0.9.0", + "@solana/kit": "^7.0.0", "@solana/spl-account-compression": "^0.2.0", "@solana/web3.js": "^1.98.4", "axios": "^1.6.5" diff --git a/compression/cnft-burn/anchor/pnpm-lock.yaml b/compression/cnft-burn/anchor/pnpm-lock.yaml index 92f5c2f9b..4a1938b94 100644 --- a/compression/cnft-burn/anchor/pnpm-lock.yaml +++ b/compression/cnft-burn/anchor/pnpm-lock.yaml @@ -20,9 +20,9 @@ importers: '@metaplex-foundation/mpl-token-metadata': specifier: ^2.12.0 version: 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@metaplex-foundation/umi': - specifier: ^0.9.0 - version: 0.9.1 + '@solana/kit': + specifier: ^7.0.0 + version: 7.1.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6) '@solana/spl-account-compression': specifier: ^0.2.0 version: 0.2.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6) @@ -375,6 +375,7 @@ packages: '@metaplex-foundation/js@0.19.5': resolution: {integrity: sha512-OXGX0zr4rpr4vpFt6+tO+bEQ7yN5fqyKpAWYzxPb0yGM0Rj6JKlvj0Eaiymvwmm5XtLPK+98M8y9jxZiQEtsEA==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@metaplex-foundation/mpl-auction-house@2.5.1': resolution: {integrity: sha512-O+IAdYVaoOvgACB8pm+1lF5BNEjl0COkqny2Ho8KQZwka6aC/vHbZ239yRwAMtJhf5992BPFdT4oifjyE0O+Mw==} @@ -397,27 +398,6 @@ packages: '@metaplex-foundation/mpl-token-metadata@2.13.0': resolution: {integrity: sha512-Fl/8I0L9rv4bKTV/RAl5YIbJe9SnQPInKvLz+xR1fEc4/VQkuCn3RPgypfUMEKWmCznzaw4sApDxy6CFS4qmJw==} - '@metaplex-foundation/umi-options@0.8.9': - resolution: {integrity: sha512-jSQ61sZMPSAk/TXn8v8fPqtz3x8d0/blVZXLLbpVbo2/T5XobiI6/MfmlUosAjAUaQl6bHRF8aIIqZEFkJiy4A==} - - '@metaplex-foundation/umi-public-keys@0.8.9': - resolution: {integrity: sha512-CxMzN7dgVGOq9OcNCJe2casKUpJ3RmTVoOvDFyeoTQuK+vkZ1YSSahbqC1iGuHEtKTLSjtWjKvUU6O7zWFTw3Q==} - - '@metaplex-foundation/umi-serializers-core@0.8.9': - resolution: {integrity: sha512-WT82tkiYJ0Qmscp7uTj1Hz6aWQPETwaKLAENAUN5DeWghkuBKtuxyBKVvEOuoXerJSdhiAk0e8DWA4cxcTTQ/w==} - - '@metaplex-foundation/umi-serializers-encodings@0.8.9': - resolution: {integrity: sha512-N3VWLDTJ0bzzMKcJDL08U3FaqRmwlN79FyE4BHj6bbAaJ9LEHjDQ9RJijZyWqTm0jE7I750fU7Ow5EZL38Xi6Q==} - - '@metaplex-foundation/umi-serializers-numbers@0.8.9': - resolution: {integrity: sha512-NtBf1fnVNQJHFQjLFzRu2i9GGnigb9hOm/Gfrk628d0q0tRJB7BOM3bs5C61VAs7kJs4yd+pDNVAERJkknQ7Lg==} - - '@metaplex-foundation/umi-serializers@0.9.0': - resolution: {integrity: sha512-hAOW9Djl4w4ioKeR4erDZl5IG4iJdP0xA19ZomdaCbMhYAAmG/FEs5khh0uT2mq53/MnzWcXSUPoO8WBN4Q+Vg==} - - '@metaplex-foundation/umi@0.9.1': - resolution: {integrity: sha512-IhHoOvp4vfO/++YL+78+iVuLM53+FDwUOZDYgH6lx0jYXyQ27BeaieeR5i+q3A9dz4KxQo5Nzc5aCA1109QGCQ==} - '@noble/curves@1.3.0': resolution: {integrity: sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==} @@ -459,6 +439,33 @@ packages: '@scure/bip39@1.2.2': resolution: {integrity: sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA==} + '@solana/accounts@7.1.0': + resolution: {integrity: sha512-0Vp2advYsTb7eb0jZveXZJaux6OSYcI3nitwoXOTZzCuzjbIjiHI/bpn3CcqfKBPW/1dnCIWAW7VW1otqH0a1w==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/addresses@7.1.0': + resolution: {integrity: sha512-kA/aav0TdyhrXCG6VCGG/fTuGu4ix5UW2PxtsbpBdZcyi+3TznLS1xKzIZBzqn0DL0q6HKdud6Ene7DWZDH1lw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/assertions@7.1.0': + resolution: {integrity: sha512-LD9+fhZb/xBECl27gfxDEX+qyj4PRV6700RJuprJWNMvGd8v0eoO0N+0QwnopK7o7O4w3DaW9/a3jH+iiwEqzw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/buffer-layout-utils@0.2.0': resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==} engines: {node: '>= 10'} @@ -476,9 +483,27 @@ packages: peerDependencies: typescript: '>=5.3.3' + '@solana/codecs-core@7.1.0': + resolution: {integrity: sha512-pl1gCCvviKekrijEDieZ1ps3LjC6ova2pZ/ZBXEJJa46nF7M0hwdZe/KzbMxKQ8WtT/WqW8Uyh6JQt8IJcMgRw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/codecs-data-structures@2.0.0-preview.2': resolution: {integrity: sha512-Xf5vIfromOZo94Q8HbR04TbgTwzigqrKII0GjYr21K7rb3nba4hUW2ir8kguY7HWFBcjHGlU5x3MevKBOLp3Zg==} + '@solana/codecs-data-structures@7.1.0': + resolution: {integrity: sha512-yCwyXCD1qtj0qJwCLQVS9aojKDio7t8kqXQVhLfasYFsckvecK+OObkoILkBXBJVmpOXI8nRYwNAb63+CvJo/g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/codecs-numbers@2.0.0-preview.2': resolution: {integrity: sha512-aLZnDTf43z4qOnpTcDsUVy1Ci9im1Md8thWipSWbE+WM9ojZAx528oAql+Cv8M8N+6ALKwgVRhPZkto6E59ARw==} @@ -488,14 +513,44 @@ packages: peerDependencies: typescript: '>=5.3.3' + '@solana/codecs-numbers@7.1.0': + resolution: {integrity: sha512-Hfw5OXx7tbSJ4iQ0r1ar6D+7XixkX8K36ni9cHDrunpiTo9SLIE0Lzj9/889aPNv4J4JggW1bpqzcrz3RI/o5g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/codecs-strings@2.0.0-preview.2': resolution: {integrity: sha512-EgBwY+lIaHHgMJIqVOGHfIfpdmmUDNoNO/GAUGeFPf+q0dF+DtwhJPEMShhzh64X2MeCZcmSO6Kinx0Bvmmz2g==} peerDependencies: fastestsmallesttextencoderdecoder: ^1.0.22 + '@solana/codecs-strings@7.1.0': + resolution: {integrity: sha512-YIv/XVDYTzkYiFRdbjK6tI1BUKNlV1ta5hl9oK6+CoCDZn7nECfAN96KPYs94jzbN5VgMgbEqi6tlQcdy5KuCg==} + engines: {node: '>=20.18.0'} + peerDependencies: + fastestsmallesttextencoderdecoder: ^1.0.22 + typescript: '>=5.4.0' + peerDependenciesMeta: + fastestsmallesttextencoderdecoder: + optional: true + typescript: + optional: true + '@solana/codecs@2.0.0-preview.2': resolution: {integrity: sha512-4HHzCD5+pOSmSB71X6w9ptweV48Zj1Vqhe732+pcAQ2cMNnN0gMPMdDq7j3YwaZDZ7yrILVV/3+HTnfT77t2yA==} + '@solana/codecs@7.1.0': + resolution: {integrity: sha512-4M1MgIiRX46qMUnrUjVnRnTxETmCZ7VLWddMdf+t6y3aVsMzz8kd9ngH7NloFhHtnAO0n3qJjs2rdgx/Dxd3Zg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/errors@2.0.0-preview.2': resolution: {integrity: sha512-H2DZ1l3iYF5Rp5pPbJpmmtCauWeQXRJapkDg8epQ8BJ7cA2Ut/QEtC3CMmw/iMTcuS6uemFNLcWvlOfoQhvQuA==} hasBin: true @@ -507,9 +562,271 @@ packages: peerDependencies: typescript: '>=5.3.3' + '@solana/errors@7.1.0': + resolution: {integrity: sha512-sJ0mM6SHN7fa6auHARRAGjjDpkFzhx6jmgHZAjliC/xADMfI2IYrTnAwguRV9dVBOsEHicylIXszvsyRb6BmEw==} + engines: {node: '>=20.18.0'} + hasBin: true + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/fast-stable-stringify@7.1.0': + resolution: {integrity: sha512-DV35b2DoqFwQlO7acwi0WG47oLSORGep7/lTkd/VrCB/MdM0J5TggQ0gRqc9v3ORBDQHcOYmMx6ym4Obqd1EFg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/fixed-points@7.1.0': + resolution: {integrity: sha512-xyVO7h8woz53L5dz9pV5akdf/EcluEvtV85cYtca1pp0ZpdcdnGQ2yve3mN/GuOEb+Ixzthrew2p0c5h9w4Bhg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/functional@7.1.0': + resolution: {integrity: sha512-1yfUFHkeMvrD/6yTDu3op3CgWIfr1KAvHo3XQL6yBvz0miEbiQ6tAEZbrwHpudES43sG8ZvlgrkL0Oiu5KwC9g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/instruction-plans@7.1.0': + resolution: {integrity: sha512-Ug7YSchE8Oq8PsaKYlr8IH0woYjmAgi7JdVwd1wtE1pReHvufH63WUsE6B6guqIkQPxiLZL/tmODzKas2zlVtA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/instructions@7.1.0': + resolution: {integrity: sha512-KnXUtSIbKCUjlposzfikAO3qSVliOSoMBzglQYSn3e0x0PpJ2MsVH6tzzI6v124YVhs0OSs5wFwYjENTedPgcg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/keys@7.1.0': + resolution: {integrity: sha512-BGRkTPeBIKPojwVEdYaBXtLMQ0fp8xtQiRxDhOSyYpd1bz52K4bmvrugVtSqfjWLVO+I8SRZGpSZq2G5+DgR1Q==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/kit@7.1.0': + resolution: {integrity: sha512-UvzQhbn7ITjoBIinGz7rrdPSfkE8/bl+c6TISTLOXiW5hZw16mKOAkK28duP6bJutgQ57L0oJ4HYu5BTzAznOg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/nominal-types@7.1.0': + resolution: {integrity: sha512-oN+gGAqBnGc/iGIq5i4Q/+VFyTqbh0wpLnWTtMbFpXmevrdX3IPPBW5Z76ysZtTtv+M4Ha64kqc2upLJBUGM0A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/offchain-messages@7.1.0': + resolution: {integrity: sha512-nQBqXNLjDvUybc6oRS936gHLGzKwKy9fSlUV4OPo1mLG5V8TcW+jhCc1UOJdmfj0FYDDq5rzqmFTVK4yEu7brw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/options@2.0.0-preview.2': resolution: {integrity: sha512-FAHqEeH0cVsUOTzjl5OfUBw2cyT8d5Oekx4xcn5hn+NyPAfQJgM3CEThzgRD6Q/4mM5pVUnND3oK/Mt1RzSE/w==} + '@solana/options@7.1.0': + resolution: {integrity: sha512-6Z6NYrnDB7qQXE7liHVpf0+5ytJogNw6QGsO8On/csX4f5WGBLxeP0JJQNnkOvuTrBkUMEq6YtTFxp4/Plqx9A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/plugin-core@7.1.0': + resolution: {integrity: sha512-2UhReZOhFoUMcYz+72EDM3UIrrONZBpP8uhofPKNDmKPslDuJHc8q4RRlO1llGgrfV6dMIsk9j8uV4q3DjWu5g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/plugin-interfaces@7.1.0': + resolution: {integrity: sha512-5QXBy1RnbWmHRCIDZRZ0W2lMnWEw65lw9X+geJmiEfbLnTPKZdpYe+5YSClz26RMcp8X2ETovkgp0E8y0Zz0yg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/program-client-core@7.1.0': + resolution: {integrity: sha512-81CmiYVovOElru2E7ZpBg3aAaCOdgEB4FqRatxr3EUKcP8xzsM/gti7sZxmZCd6wyLLAQQokNxpLYBjspC4ZEw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/programs@7.1.0': + resolution: {integrity: sha512-SiHIxX4lbHD36tOFNWyE9T984+yq9X+EOhxg3P2LKDg7nZep9F6L7Qhgw4R+aXF/Zqpy2q8XzO7NYLeT6piQ3g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/promises@7.1.0': + resolution: {integrity: sha512-4I0tTa0Peh9U6cEJUR3Y0VyQneFGA2C8dL+sw00Dtfr/4hVGr03wmjHUq6CcCiH6e7WqNuznNKsqahe3BgrOMg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-api@7.1.0': + resolution: {integrity: sha512-mluuAalyk5mfdi2lnPLDCPj6RElgZ0DCaNZmQZhnVM0SabvWxpBIzvTYqmy56Z/b9yiycfkVG3h6ISMZMddNuA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-parsed-types@7.1.0': + resolution: {integrity: sha512-WVHfz/VmqZpPbpyTgqz6W4Yk1rKa7tfjSqa77KbWi+yXDzZ+Oha+bAscXxY/yg/w6auu7/JY5+t7Qd0qIjrGmQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-spec-types@7.1.0': + resolution: {integrity: sha512-nEKJARQq8x9YQB/TBptw99bNU9KsmsObu51VleXwTi+PCowHbU7yaNad1lxg81iiX9Z4Lwvvo4c5UdVA4xkYFQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-spec@7.1.0': + resolution: {integrity: sha512-vmFN/HNK0bUV+sDPqs7+NV/orY23PByWN82J1Q4PFZKCOCnyFO/A06pd/MCVuPjmcaJ62xFhTcORrit6dTQL3A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-subscriptions-api@7.1.0': + resolution: {integrity: sha512-lzi8sPWuMyT89/L1ebY+MTzOma/6vsRdFTFcY5pe4pO4Sfi59j4p+HeYUu/NS0E6+/7Ng3BHFeTtuKD6QkhPDg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-subscriptions-channel-websocket@7.1.0': + resolution: {integrity: sha512-eW0JCgwSM7YV1YKkZN4rtfIGhh5WSJkCf2+JV1wscF6Zn4hK/9kr8MJ0Y0LWtoDMIuX0W3RCJnYG4T/Pcm1v6w==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-subscriptions-spec@7.1.0': + resolution: {integrity: sha512-f+s6qIzUHxUTyoZoOvz2uw8Y6tYyUefLxxJtavMZEDXEjsAQ0Zv+yhmPZ5tQCo1JyHGS6EKvaw9AjxVC68NHDA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-subscriptions@7.1.0': + resolution: {integrity: sha512-Vjs6d1AagH9r52smhX9zxSwprPKvqsWw8XFmvtGbUNI5lxtX1W4TIukscpXiau7dqe6zH6q6cfs9UtuOgY5sXA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-transformers@7.1.0': + resolution: {integrity: sha512-3sSO13m25IkkS1mXnWFZYwgSOSturEGFQMIs37vdqgiJFAYJjmossOozE+fqOY0CI1oebyURhm5gM86ATuHDYw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-transport-http@7.1.0': + resolution: {integrity: sha512-9zT58Ahfhd/sdYNMKvVOmPLpIMsdrZOrJlnuK0nmB+D8KWbqswDUV46H2HGxRFjvGgKep/CtOSx4RM+kt14ezQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-types@7.1.0': + resolution: {integrity: sha512-pZO8+EroeRv7kb/d42qQeKHvUmm5tBvH0tXe8Kl2QkqG9+BCZ8NXXd+K7GbYWfVz3XtYmV3W/1B67s1DnzRldQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc@7.1.0': + resolution: {integrity: sha512-K9PvA39IQ+Z5/GYuDv4xXDPwk1KAPegnMu97b999yH09lBfsWpkHTGCCmNNy7bJAD346IQ/90/KgIbB/YnMEkw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/signers@7.1.0': + resolution: {integrity: sha512-sGGEOhPQLn+M9Y5QF3BgzAh9ECoq+XxIOUhyEpCSoUB725oMerir7lgsuyHvSkANhnoGnVxMhy/3b9wzVIazig==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/spl-account-compression@0.1.10': resolution: {integrity: sha512-IQAOJrVOUo6LCgeWW9lHuXo6JDbi4g3/RkQtvY0SyalvSWk9BIkHHe4IkAzaQw8q/BxEVBIjz8e9bNYWIAESNw==} engines: {node: '>=16'} @@ -538,9 +855,63 @@ packages: peerDependencies: '@solana/web3.js': ^1.88.0 - '@solana/spl-type-length-value@0.1.0': - resolution: {integrity: sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA==} - engines: {node: '>=16'} + '@solana/spl-type-length-value@0.1.0': + resolution: {integrity: sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA==} + engines: {node: '>=16'} + + '@solana/subscribable@7.1.0': + resolution: {integrity: sha512-8YnZV34WRN/AHP1B2XUlLIkINI9AYGcv1lqc2pFswS4VEL0c4iXyCfCXg9D1FM/obEhlU73h+ZJK4deg8yasgA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/sysvars@7.1.0': + resolution: {integrity: sha512-8UZsIsHS0JcYTy41QK9eewWj34mSkahsgD5TQPk/M69W34ElQOLKLkooj4iwXdnV2tMlNniKMIDoIQUhGCfhZw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/transaction-confirmation@7.1.0': + resolution: {integrity: sha512-IZd2eEvhIdIaIkZAd6ugeTLB1f8pB5iwu+NmSk2vH0FUGVf3wJui8NzZyj/8+5a6Ps2WUa79JIIizVdvIOzV8A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/transaction-introspection@7.1.0': + resolution: {integrity: sha512-AKev/afwQpkTjjNPUsYrZ7lwI76wNiZGy5T5m9FBhVrncg8evMjUHhVrnTvLTLkqMGuVgteR2BH9e2S+igwxPg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/transaction-messages@7.1.0': + resolution: {integrity: sha512-5JKj7mCppHBzJQF67n5YVaPR3nLNe5+sbgJcSbD2woyR7pdUhjNYyzG2HFeWDghbROpQzy9Dy7Km9iTjw3ry5A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/transactions@7.1.0': + resolution: {integrity: sha512-J/31jUwrbmJkk4vHnyenbF8iz2dHnhTW0HEzOp86YzVHbm171g5ujL1mmOP4nh8r/UA6xH4QbEJ4kTrID6cN5w==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true '@solana/wallet-adapter-base@0.9.23': resolution: {integrity: sha512-apqMuYwFp1jFi55NxDfvXUX2x1T0Zh07MxhZ/nCCTGys5raSfYUh82zen2BLv8BSDj/JxZ2P/s7jrQZGrX8uAw==} @@ -803,10 +1174,6 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - chalk@5.6.2: resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} @@ -860,6 +1227,10 @@ packages: resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} engines: {node: '>=20'} + commander@15.0.0: + resolution: {integrity: sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==} + engines: {node: '>=22.12.0'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -1004,6 +1375,7 @@ packages: ethereum-bloom-filters@1.1.0: resolution: {integrity: sha512-J1gDRkLpuGNvWYzWslBQR9cDV4nd4kfvVTE/Wy4Kkm4yb3EYRSlyi0eB/inTsSTTVyA0+HyzHgbr95Fn/Z1fSw==} + deprecated: do not use this package use package versions above as this can miss some topics ethereum-cryptography@2.1.3: resolution: {integrity: sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==} @@ -1012,7 +1384,7 @@ packages: resolution: {integrity: sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==} ethjs-unit@0.1.6: - resolution: {integrity: sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=} + resolution: {integrity: sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==} engines: {node: '>=6.5.0', npm: '>=3'} eventemitter3@4.0.7: @@ -1175,7 +1547,7 @@ packages: engines: {node: '>= 0.4'} is-hex-prefixed@1.0.0: - resolution: {integrity: sha1-fY035q135dEnFIkTxXPggtd39VQ=} + resolution: {integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==} engines: {node: '>=6.5.0', npm: '>=3'} is-interactive@1.0.0: @@ -1352,7 +1724,7 @@ packages: hasBin: true number-to-bn@1.7.0: - resolution: {integrity: sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=} + resolution: {integrity: sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==} engines: {node: '>=6.5.0', npm: '>=3'} o3@1.0.3: @@ -1548,7 +1920,7 @@ packages: engines: {node: '>=12'} strip-hex-prefix@1.0.0: - resolution: {integrity: sha1-DF8VX+8RUTczd96du1iNoFUA428=} + resolution: {integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==} engines: {node: '>=6.5.0', npm: '>=3'} strip-json-comments@3.1.1: @@ -1630,6 +2002,9 @@ packages: u3@0.1.1: resolution: {integrity: sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w==} + undici-types@8.10.0: + resolution: {integrity: sha512-ibvdovq3nCFs8Msrd95BW+zUOq+aOVbT+wpHUoPWhztbHEoPc6oof51iFDB6Es8lTKvNvVW9jNSAB8dwrKTMGg==} + undici-types@8.3.0: resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} @@ -1733,6 +2108,18 @@ packages: utf-8-validate: optional: true + ws@8.21.3: + resolution: {integrity: sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -2389,36 +2776,6 @@ snapshots: - typescript - utf-8-validate - '@metaplex-foundation/umi-options@0.8.9': {} - - '@metaplex-foundation/umi-public-keys@0.8.9': - dependencies: - '@metaplex-foundation/umi-serializers-encodings': 0.8.9 - - '@metaplex-foundation/umi-serializers-core@0.8.9': {} - - '@metaplex-foundation/umi-serializers-encodings@0.8.9': - dependencies: - '@metaplex-foundation/umi-serializers-core': 0.8.9 - - '@metaplex-foundation/umi-serializers-numbers@0.8.9': - dependencies: - '@metaplex-foundation/umi-serializers-core': 0.8.9 - - '@metaplex-foundation/umi-serializers@0.9.0': - dependencies: - '@metaplex-foundation/umi-options': 0.8.9 - '@metaplex-foundation/umi-public-keys': 0.8.9 - '@metaplex-foundation/umi-serializers-core': 0.8.9 - '@metaplex-foundation/umi-serializers-encodings': 0.8.9 - '@metaplex-foundation/umi-serializers-numbers': 0.8.9 - - '@metaplex-foundation/umi@0.9.1': - dependencies: - '@metaplex-foundation/umi-options': 0.8.9 - '@metaplex-foundation/umi-public-keys': 0.8.9 - '@metaplex-foundation/umi-serializers': 0.9.0 - '@noble/curves@1.3.0': dependencies: '@noble/hashes': 1.3.3 @@ -2457,6 +2814,37 @@ snapshots: '@noble/hashes': 1.3.3 '@scure/base': 1.1.6 + '@solana/accounts@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/addresses@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/assertions': 7.1.0(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/assertions@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)': dependencies: '@solana/buffer-layout': 4.0.1 @@ -2482,12 +2870,26 @@ snapshots: '@solana/errors': 2.3.0(typescript@5.9.3) typescript: 5.9.3 + '@solana/codecs-core@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + '@solana/codecs-data-structures@2.0.0-preview.2': 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-data-structures@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + '@solana/codecs-numbers@2.0.0-preview.2': dependencies: '@solana/codecs-core': 2.0.0-preview.2 @@ -2499,6 +2901,13 @@ snapshots: '@solana/errors': 2.3.0(typescript@5.9.3) typescript: 5.9.3 + '@solana/codecs-numbers@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + '@solana/codecs-strings@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)': dependencies: '@solana/codecs-core': 2.0.0-preview.2 @@ -2506,6 +2915,15 @@ snapshots: '@solana/errors': 2.0.0-preview.2 fastestsmallesttextencoderdecoder: 1.0.22 + '@solana/codecs-strings@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + fastestsmallesttextencoderdecoder: 1.0.22 + typescript: 5.9.3 + '@solana/codecs@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)': dependencies: '@solana/codecs-core': 2.0.0-preview.2 @@ -2516,9 +2934,22 @@ snapshots: transitivePeerDependencies: - fastestsmallesttextencoderdecoder + '@solana/codecs@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/fixed-points': 7.1.0(typescript@5.9.3) + '@solana/options': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + '@solana/errors@2.0.0-preview.2': dependencies: - chalk: 5.3.0 + chalk: 5.6.2 commander: 12.1.0 '@solana/errors@2.3.0(typescript@5.9.3)': @@ -2527,11 +2958,340 @@ snapshots: commander: 14.0.3 typescript: 5.9.3 + '@solana/errors@7.1.0(typescript@5.9.3)': + dependencies: + chalk: 5.6.2 + commander: 15.0.0 + optionalDependencies: + typescript: 5.9.3 + + '@solana/fast-stable-stringify@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/fixed-points@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/functional@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/instruction-plans@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/instructions@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/keys@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/assertions': 7.1.0(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/kit@7.1.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)': + dependencies: + '@solana/accounts': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/instruction-plans': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/offchain-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/plugin-core': 7.1.0(typescript@5.9.3) + '@solana/plugin-interfaces': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/program-client-core': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/programs': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + '@solana/rpc': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-api': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-parsed-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-subscriptions': 7.1.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/signers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/subscribable': 7.1.0(typescript@5.9.3) + '@solana/sysvars': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-confirmation': 7.1.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@solana/transaction-introspection': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - bufferutil + - fastestsmallesttextencoderdecoder + - utf-8-validate + + '@solana/nominal-types@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/offchain-messages@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + '@solana/options@2.0.0-preview.2': dependencies: '@solana/codecs-core': 2.0.0-preview.2 '@solana/codecs-numbers': 2.0.0-preview.2 + '@solana/options@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/plugin-core@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/plugin-interfaces@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/accounts': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/instruction-plans': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-subscriptions-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/signers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/program-client-core@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/accounts': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/instruction-plans': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/plugin-interfaces': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-api': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/signers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/programs@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/promises@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-api@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-parsed-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-transformers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc-parsed-types@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-spec-types@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-spec@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/subscribable': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-subscriptions-api@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-subscriptions-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-transformers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc-subscriptions-channel-websocket@7.1.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/rpc-subscriptions-spec': 7.1.0(typescript@5.9.3) + '@solana/subscribable': 7.1.0(typescript@5.9.3) + ws: 8.21.3(bufferutil@4.0.8)(utf-8-validate@6.0.6) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@solana/rpc-subscriptions-spec@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/subscribable': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-subscriptions@7.1.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/fast-stable-stringify': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-subscriptions-api': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-subscriptions-channel-websocket': 7.1.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@solana/rpc-subscriptions-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-transformers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/subscribable': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - bufferutil + - fastestsmallesttextencoderdecoder + - utf-8-validate + + '@solana/rpc-transformers@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc-transport-http@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + undici-types: 8.10.0 + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-types@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/fixed-points': 7.1.0(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/fast-stable-stringify': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/rpc-api': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-transformers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-transport-http': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/signers@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + '@solana/offchain-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + '@solana/spl-account-compression@0.1.10(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)': dependencies: '@metaplex-foundation/beet': 0.7.1 @@ -2603,6 +3363,95 @@ snapshots: dependencies: buffer: 6.0.3 + '@solana/subscribable@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/sysvars@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/accounts': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/transaction-confirmation@7.1.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + '@solana/rpc': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-subscriptions': 7.1.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - bufferutil + - fastestsmallesttextencoderdecoder + - utf-8-validate + + '@solana/transaction-introspection@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/transaction-messages@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/transactions@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + '@solana/wallet-adapter-base@0.9.23(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))': dependencies: '@solana/wallet-standard-features': 1.2.0 @@ -2935,8 +3784,6 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.3.0: {} - chalk@5.6.2: {} chardet@0.7.0: {} @@ -2980,6 +3827,8 @@ snapshots: commander@14.0.3: {} + commander@15.0.0: {} + commander@2.20.3: {} commander@8.3.0: {} @@ -3834,6 +4683,8 @@ snapshots: u3@0.1.1: {} + undici-types@8.10.0: {} + undici-types@8.3.0: {} utf-8-validate@6.0.6: @@ -3930,6 +4781,11 @@ snapshots: bufferutil: 4.0.8 utf-8-validate: 6.0.6 + ws@8.21.3(bufferutil@4.0.8)(utf-8-validate@6.0.6): + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 6.0.6 + y18n@5.0.8: {} yargs-parser@21.1.1: {} diff --git a/compression/cnft-burn/anchor/tests/ReadApi/WrapperConnection.ts b/compression/cnft-burn/anchor/tests/ReadApi/WrapperConnection.ts index f490a5779..00710c698 100644 --- a/compression/cnft-burn/anchor/tests/ReadApi/WrapperConnection.ts +++ b/compression/cnft-burn/anchor/tests/ReadApi/WrapperConnection.ts @@ -5,8 +5,8 @@ import type { Metadata, Mint, NftOriginalEdition, SplTokenCurrency } from '@meta import { amount, MetaplexError, Pda, toBigNumber } from '@metaplex-foundation/js'; import { PROGRAM_ID as BUBBLEGUM_PROGRAM_ID } from '@metaplex-foundation/mpl-bubblegum'; import { TokenStandard } from '@metaplex-foundation/mpl-token-metadata'; +import { getU64Encoder } from '@solana/kit'; import { Connection, PublicKey } from '@solana/web3.js'; -import BN from 'bn.js'; import type { GetAssetProofRpcInput, GetAssetProofRpcResponse, @@ -87,7 +87,7 @@ export const toMetadataFromReadApiAsset = (input: ReadApiAsset): Metadata => { address: Pda.find(BUBBLEGUM_PROGRAM_ID, [ Buffer.from('asset', 'utf-8'), new PublicKey(input.compression.tree).toBuffer(), - Uint8Array.from(new BN(input.compression.leaf_id).toArray('le', 8)), + Uint8Array.from(getU64Encoder().encode(BigInt(input.compression.leaf_id))), ]), mintAddress: new PublicKey(input.id), updateAuthorityAddress: new PublicKey(updateAuthority?.address), diff --git a/compression/cutils/anchor/package.json b/compression/cutils/anchor/package.json index f486215c4..6e83b4a94 100644 --- a/compression/cutils/anchor/package.json +++ b/compression/cutils/anchor/package.json @@ -6,7 +6,6 @@ }, "dependencies": { "@anchor-lang/core": "1.0.0-rc.5", - "@metaplex-foundation/js": "^0.19.4", "@metaplex-foundation/mpl-bubblegum": "^0.7.0", "@solana/spl-account-compression": "^0.1.8", "@solana/spl-token": "^0.3.8", diff --git a/compression/cutils/anchor/pnpm-lock.yaml b/compression/cutils/anchor/pnpm-lock.yaml index e67c1a6df..8ebe23111 100644 --- a/compression/cutils/anchor/pnpm-lock.yaml +++ b/compression/cutils/anchor/pnpm-lock.yaml @@ -11,9 +11,6 @@ importers: '@anchor-lang/core': specifier: 1.0.0-rc.5 version: 1.0.0-rc.5(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@metaplex-foundation/js': - specifier: ^0.19.4 - version: 0.19.5(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6) '@metaplex-foundation/mpl-bubblegum': specifier: ^0.7.0 version: 0.7.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6) @@ -82,11 +79,6 @@ packages: resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} engines: {node: '>=6.9.0'} - '@bundlr-network/client@0.8.9': - resolution: {integrity: sha512-SJ7BAt/KhONeFQ0+nbqrw2DUWrsev6y6cmlXt+3x7fPCkw7OJwudtxV/h2nBteZd65NXjqw8yzkmLiLfZ7CCRA==} - deprecated: Bundlr is now Irys - please switch to @irys/sdk - this package will remain compatible with Irys for the foreseeable future. - hasBin: true - '@esbuild/aix-ppc64@0.28.1': resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==} engines: {node: '>=18'} @@ -243,124 +235,16 @@ packages: cpu: [x64] os: [win32] - '@ethereumjs/rlp@4.0.1': - resolution: {integrity: sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==} - engines: {node: '>=14'} - hasBin: true - - '@ethereumjs/util@8.1.0': - resolution: {integrity: sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==} - engines: {node: '>=14'} - - '@ethersproject/abi@5.7.0': - resolution: {integrity: sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==} - - '@ethersproject/abstract-provider@5.7.0': - resolution: {integrity: sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==} - - '@ethersproject/abstract-signer@5.7.0': - resolution: {integrity: sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==} - - '@ethersproject/address@5.7.0': - resolution: {integrity: sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==} - - '@ethersproject/base64@5.7.0': - resolution: {integrity: sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==} - - '@ethersproject/basex@5.7.0': - resolution: {integrity: sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==} - - '@ethersproject/bignumber@5.7.0': - resolution: {integrity: sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==} - - '@ethersproject/bytes@5.7.0': - resolution: {integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==} - - '@ethersproject/constants@5.7.0': - resolution: {integrity: sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==} - - '@ethersproject/contracts@5.7.0': - resolution: {integrity: sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==} - - '@ethersproject/hash@5.7.0': - resolution: {integrity: sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==} - - '@ethersproject/hdnode@5.7.0': - resolution: {integrity: sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==} - - '@ethersproject/json-wallets@5.7.0': - resolution: {integrity: sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==} - - '@ethersproject/keccak256@5.7.0': - resolution: {integrity: sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==} - - '@ethersproject/logger@5.7.0': - resolution: {integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==} - - '@ethersproject/networks@5.7.1': - resolution: {integrity: sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==} - - '@ethersproject/pbkdf2@5.7.0': - resolution: {integrity: sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==} - - '@ethersproject/properties@5.7.0': - resolution: {integrity: sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==} - - '@ethersproject/providers@5.7.2': - resolution: {integrity: sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==} - - '@ethersproject/random@5.7.0': - resolution: {integrity: sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==} - - '@ethersproject/rlp@5.7.0': - resolution: {integrity: sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==} - - '@ethersproject/sha2@5.7.0': - resolution: {integrity: sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==} - - '@ethersproject/signing-key@5.7.0': - resolution: {integrity: sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==} - - '@ethersproject/solidity@5.7.0': - resolution: {integrity: sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==} - - '@ethersproject/strings@5.7.0': - resolution: {integrity: sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==} - - '@ethersproject/transactions@5.7.0': - resolution: {integrity: sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==} - - '@ethersproject/units@5.7.0': - resolution: {integrity: sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==} - - '@ethersproject/wallet@5.7.0': - resolution: {integrity: sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==} - - '@ethersproject/web@5.7.1': - resolution: {integrity: sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==} - - '@ethersproject/wordlists@5.7.0': - resolution: {integrity: sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==} - '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - '@metaplex-foundation/beet-solana@0.3.1': - resolution: {integrity: sha512-tgyEl6dvtLln8XX81JyBvWjIiEcjTkUwZbrM5dIobTmoqMuGewSyk9CClno8qsMsFdB5T3jC91Rjeqmu/6xk2g==} - '@metaplex-foundation/beet-solana@0.4.0': resolution: {integrity: sha512-B1L94N3ZGMo53b0uOSoznbuM5GBNJ8LwSeznxBxJ+OThvfHQ4B5oMUqb+0zdLRfkKGS7Q6tpHK9P+QK0j3w2cQ==} '@metaplex-foundation/beet-solana@0.4.1': resolution: {integrity: sha512-/6o32FNUtwK8tjhotrvU/vorP7umBuRFvBZrC6XCk51aKidBHe5LPVPA5AjGPbV3oftMfRuXPNd9yAGeEqeCDQ==} - '@metaplex-foundation/beet@0.4.0': - resolution: {integrity: sha512-2OAKJnLatCc3mBXNL0QmWVQKAWK2C7XDfepgL0p/9+8oSx4bmRAFHFqptl1A/C0U5O3dxGwKfmKluW161OVGcA==} - - '@metaplex-foundation/beet@0.6.1': - resolution: {integrity: sha512-OYgnijLFzw0cdUlRKH5POp0unQECPOW9muJ2X3QIVyak5G6I6l/rKo72sICgPLIFKdmsi2jmnkuLY7wp14iXdw==} - '@metaplex-foundation/beet@0.7.1': resolution: {integrity: sha512-hNCEnS2WyCiYyko82rwuISsBY3KYpe828ubsd2ckeqZr7tl0WVLivGkoyA/qdiaaHEBGdGl71OpfWa2rqL3DiA==} @@ -370,48 +254,16 @@ packages: '@metaplex-foundation/cusper@0.0.2': resolution: {integrity: sha512-S9RulC2fFCFOQraz61bij+5YCHhSO9llJegK8c8Y6731fSi6snUSQJdCUqYS8AIgR0TKbQvdvgSyIIdbDFZbBA==} - '@metaplex-foundation/js@0.19.5': - resolution: {integrity: sha512-OXGX0zr4rpr4vpFt6+tO+bEQ7yN5fqyKpAWYzxPb0yGM0Rj6JKlvj0Eaiymvwmm5XtLPK+98M8y9jxZiQEtsEA==} - - '@metaplex-foundation/mpl-auction-house@2.5.1': - resolution: {integrity: sha512-O+IAdYVaoOvgACB8pm+1lF5BNEjl0COkqny2Ho8KQZwka6aC/vHbZ239yRwAMtJhf5992BPFdT4oifjyE0O+Mw==} - - '@metaplex-foundation/mpl-bubblegum@0.6.2': - resolution: {integrity: sha512-4tF7/FFSNtpozuIGD7gMKcqK2D49eVXZ144xiowC5H1iBeu009/oj2m8Tj6n4DpYFKWJ2JQhhhk0a2q7x0Begw==} - '@metaplex-foundation/mpl-bubblegum@0.7.0': resolution: {integrity: sha512-HCo6q+nh8M3KRv9/aUaZcJo5/vPJEeZwPGRDWkqN7lUXoMIvhd83fZi7MB1rIg1gwpVHfHqim0A02LCYKisWFg==} - '@metaplex-foundation/mpl-candy-guard@0.3.2': - resolution: {integrity: sha512-QWXzPDz+6OR3957LtfW6/rcGvFWS/0AeHJa/BUO2VEVQxN769dupsKGtrsS8o5RzXCeap3wrCtDSNxN3dnWu4Q==} - - '@metaplex-foundation/mpl-candy-machine-core@0.1.2': - resolution: {integrity: sha512-jjDkRvMR+iykt7guQ7qVnOHTZedql0lq3xqWDMaenAUCH3Xrf2zKATThhJppIVNX1/YtgBOO3lGqhaFbaI4pCw==} - - '@metaplex-foundation/mpl-candy-machine@5.1.0': - resolution: {integrity: sha512-pjHpUpWVOCDxK3l6dXxfmJKNQmbjBqnm5ElOl1mJAygnzO8NIPQvrP89y6xSNyo8qZsJyt4ZMYUyD0TdbtKZXQ==} - '@metaplex-foundation/mpl-token-metadata@2.13.0': resolution: {integrity: sha512-Fl/8I0L9rv4bKTV/RAl5YIbJe9SnQPInKvLz+xR1fEc4/VQkuCn3RPgypfUMEKWmCznzaw4sApDxy6CFS4qmJw==} - '@noble/curves@1.3.0': - resolution: {integrity: sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==} - '@noble/curves@1.9.7': resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==} engines: {node: ^14.21.3 || >=16} - '@noble/ed25519@1.7.3': - resolution: {integrity: sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==} - - '@noble/hashes@1.3.3': - resolution: {integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==} - engines: {node: '>= 16'} - - '@noble/hashes@1.4.0': - resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} - engines: {node: '>= 16'} - '@noble/hashes@1.8.0': resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} engines: {node: ^14.21.3 || >=16} @@ -420,21 +272,6 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@randlabs/communication-bridge@1.0.1': - resolution: {integrity: sha512-CzS0U8IFfXNK7QaJFE4pjbxDGfPjbXBEsEaCn9FN15F+ouSAEUQkva3Gl66hrkBZOGexKFEWMwUHIDKpZ2hfVg==} - - '@randlabs/myalgo-connect@1.4.2': - resolution: {integrity: sha512-K9hEyUi7G8tqOp7kWIALJLVbGCByhilcy6123WfcorxWwiE1sbQupPyIU5f3YdQK6wMjBsyTWiLW52ZBMp7sXA==} - - '@scure/base@1.1.6': - resolution: {integrity: sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==} - - '@scure/bip32@1.3.3': - resolution: {integrity: sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ==} - - '@scure/bip39@1.2.2': - resolution: {integrity: sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA==} - '@solana/buffer-layout-utils@0.2.0': resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==} engines: {node: '>= 10'} @@ -512,23 +349,9 @@ packages: resolution: {integrity: sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA==} engines: {node: '>=16'} - '@solana/wallet-adapter-base@0.9.23': - resolution: {integrity: sha512-apqMuYwFp1jFi55NxDfvXUX2x1T0Zh07MxhZ/nCCTGys5raSfYUh82zen2BLv8BSDj/JxZ2P/s7jrQZGrX8uAw==} - engines: {node: '>=16'} - peerDependencies: - '@solana/web3.js': ^1.77.3 - - '@solana/wallet-standard-features@1.2.0': - resolution: {integrity: sha512-tUd9srDLkRpe1BYg7we+c4UhRQkq+XQWswsr/L1xfGmoRDF47BPSXf4zE7ZU2GRBGvxtGt7lwJVAufQyQYhxTQ==} - engines: {node: '>=16'} - '@solana/web3.js@1.98.4': resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==} - '@supercharge/promise-pool@2.4.0': - resolution: {integrity: sha512-O9CMipBlq5OObdt1uKJGIzm9cdjpPWfj+a+Zw9EgWKxaMNHKC7EU7X9taj3H0EGQNLOSq2jAcOa3EzxlfHsD6w==} - engines: {node: '>=8'} - '@swc/helpers@0.5.19': resolution: {integrity: sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==} @@ -547,9 +370,6 @@ packages: '@types/mocha@10.0.10': resolution: {integrity: sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==} - '@types/node@11.11.6': - resolution: {integrity: sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==} - '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} @@ -565,33 +385,10 @@ packages: '@types/ws@8.18.1': resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} - '@wallet-standard/base@1.0.1': - resolution: {integrity: sha512-1To3ekMfzhYxe0Yhkpri+Fedq0SYcfrOfJi3vbLjMwF2qiKPjTGLwZkf2C9ftdQmxES+hmxhBzTwF4KgcOwf8w==} - engines: {node: '>=16'} - - '@wallet-standard/features@1.0.3': - resolution: {integrity: sha512-m8475I6W5LTatTZuUz5JJNK42wFRgkJTB0I9tkruMwfqBF2UN2eomkYNVf9RbrsROelCRzSFmugqjKZBFaubsA==} - engines: {node: '>=16'} - - aes-js@3.0.0: - resolution: {integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==} - agentkeepalive@4.5.0: resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} engines: {node: '>= 8.0.0'} - algo-msgpack-with-bigint@2.1.1: - resolution: {integrity: sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==} - engines: {node: '>= 10'} - - algosdk@1.24.1: - resolution: {integrity: sha512-9moZxdqeJ6GdE4N6fA/GlUP4LrbLZMYcYkt141J4Ss68OfEgH9qW0wBuZ3ZOKEx/xjc5bg7mLP2Gjg7nwrkmww==} - engines: {node: '>=14.0.0'} - - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -611,27 +408,9 @@ packages: ansicolors@0.3.2: resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==} - arbundles@0.6.23: - resolution: {integrity: sha512-+gr93F3fivN+6dhiImT6BQNaXz4oECPn2GYjCZjS2yEoq7hM78FRvVp6kQyjEdhnuBFQr/q4oS/nkjnQlHdj9Q==} - - arconnect@0.4.2: - resolution: {integrity: sha512-Jkpd4QL3TVqnd3U683gzXmZUVqBUy17DdJDuL/3D9rkysLgX6ymJ2e+sR+xyZF5Rh42CBqDXWNMmCjBXeP7Gbw==} - argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - arweave-stream-tx@1.2.2: - resolution: {integrity: sha512-bNt9rj0hbAEzoUZEF2s6WJbIz8nasZlZpxIw03Xm8fzb9gRiiZlZGW3lxQLjfc9Z0VRUWDzwtqoYeEoB/JDToQ==} - peerDependencies: - arweave: ^1.10.0 - - arweave@1.15.1: - resolution: {integrity: sha512-rT7FOwqdudd5npqp4xOYdDT2035LtpcqePjwirh4wjRiEtVsz1FZkRiM2Yj+fOAwYzOm/hNG0GDOipDSaiEGGQ==} - engines: {node: '>=18'} - - asn1.js@5.4.1: - resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} - assert@2.1.0: resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} @@ -639,9 +418,6 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} - async-retry@1.3.3: - resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} - asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -649,17 +425,6 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - avsc@https://codeload.github.com/Irys-xyz/avsc/tar.gz/a730cc8018b79e114b6a3381bbb57760a24c6cef: - resolution: {tarball: https://codeload.github.com/Irys-xyz/avsc/tar.gz/a730cc8018b79e114b6a3381bbb57760a24c6cef} - version: 5.4.7 - engines: {node: '>=0.11'} - - axios@0.21.4: - resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} - - axios@0.25.0: - resolution: {integrity: sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==} - axios@1.7.2: resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} @@ -675,13 +440,6 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - base64url@3.0.1: - resolution: {integrity: sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==} - engines: {node: '>=6.0.0'} - - bech32@1.1.4: - resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==} - bigint-buffer@1.1.5: resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==} engines: {node: '>= 10.0.0'} @@ -692,42 +450,18 @@ packages: bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - bip39-light@1.0.7: - resolution: {integrity: sha512-WDTmLRQUsiioBdTs9BmSEmkJza+8xfJmptsNJjxnoq3EydSa/ZBXT6rm66KoT3PJIRYMnhSKNR7S9YL1l7R40Q==} - - bip39@3.0.2: - resolution: {integrity: sha512-J4E1r2N0tUylTKt07ibXvhpT2c5pyAFgvuA5q1H9uDy6dEGpjV8jmymh3MTYJDLCNbIVClSB9FbND49I6N24MQ==} - - bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - - bn.js@4.11.6: - resolution: {integrity: sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==} - - bn.js@4.12.2: - resolution: {integrity: sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==} - - bn.js@5.2.0: - resolution: {integrity: sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==} - bn.js@5.2.1: resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} bn.js@5.2.2: resolution: {integrity: sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==} - borsh@0.6.0: - resolution: {integrity: sha512-sl5k89ViqsThXQpYa9XDtz1sBl3l1lI313cFUY1HKr+wvMILnb+58xpkqTNrYbelh99dY7K8usxoCusQmqix9Q==} - borsh@0.7.0: resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==} brace-expansion@2.1.3: resolution: {integrity: sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A==} - brorand@1.1.0: - resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} - browser-stdout@1.3.1: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} @@ -741,12 +475,6 @@ packages: resolution: {integrity: sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==} engines: {node: '>=4.5'} - buffer-reverse@1.0.1: - resolution: {integrity: sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg==} - - buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} @@ -762,9 +490,6 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - capability@0.2.5: - resolution: {integrity: sha512-rsJZYVCgXd08sPqwmaIqjAd5SUTfonV0z/gDJ8D6cN8wQphky1kkAYEqQ+hmDxTw7UihvBfjUVUSY+DBEe44jg==} - chai@6.2.2: resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} engines: {node: '>=18'} @@ -781,36 +506,14 @@ packages: resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - chokidar@4.0.3: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} - cipher-base@1.0.4: - resolution: {integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==} - - cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - - cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} - cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} - clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -833,16 +536,6 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - - create-hash@1.2.0: - resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} - - create-hmac@1.1.7: - resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} - cross-fetch@3.2.0: resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} @@ -850,22 +543,6 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - crypto-js@3.3.0: - resolution: {integrity: sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q==} - - csv-generate@4.4.1: - resolution: {integrity: sha512-O/einO0v4zPmXaOV+sYqGa02VkST4GP5GLpWBNHEouIU7pF3kpGf3D0kCCvX82ydIY4EKkOK+R8b1BYsRXravg==} - - csv-parse@5.5.6: - resolution: {integrity: sha512-uNpm30m/AGSkLxxy7d9yRXpJQFrZzVWLFBkS+6ngPcZkw/5k3L/jjFuj7tVnEpRn+QgmiXr21nDlhCiUK4ij2A==} - - csv-stringify@6.5.0: - resolution: {integrity: sha512-edlXFVKcUx7r8Vx5zQucsuMg4wb/xT6qyz+Sr1vnLrdXqlLD1+UKyWNyZ9zn6mUW1ewmGxrpVwAcChGF0HQ/2Q==} - - csv@6.3.9: - resolution: {integrity: sha512-eiN+Qu8NwSLxZYia6WzB8xlX/rAQ/8EgK5A4dIF7Bz96mzcr5dW1jlcNmjG0QWySWKfPdCerH3RQ96ZqqsE8cA==} - engines: {node: '>= 0.1.90'} - debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -888,9 +565,6 @@ packages: resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} engines: {node: '>=10'} - defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -907,14 +581,6 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} - - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - diff@7.0.0: resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} engines: {node: '>=0.3.1'} @@ -926,21 +592,12 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - elliptic@6.5.4: - resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} - - elliptic@6.5.5: - resolution: {integrity: sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==} - emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - error-polyfill@0.1.3: - resolution: {integrity: sha512-XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg==} - es-define-property@1.0.0: resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} @@ -964,40 +621,16 @@ packages: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - ethereum-bloom-filters@1.1.0: - resolution: {integrity: sha512-J1gDRkLpuGNvWYzWslBQR9cDV4nd4kfvVTE/Wy4Kkm4yb3EYRSlyi0eB/inTsSTTVyA0+HyzHgbr95Fn/Z1fSw==} - - ethereum-cryptography@2.1.3: - resolution: {integrity: sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==} - - ethers@5.7.2: - resolution: {integrity: sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==} - - ethjs-unit@0.1.6: - resolution: {integrity: sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=} - engines: {node: '>=6.5.0', npm: '>=3'} - eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} eventemitter3@5.0.4: resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} - exponential-backoff@3.1.1: - resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} - - external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - eyes@0.1.8: resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} engines: {node: '> 0.1.90'} @@ -1008,10 +641,6 @@ packages: fastestsmallesttextencoderdecoder@1.0.22: resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==} - figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} @@ -1086,13 +715,6 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - hash-base@3.1.0: - resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} - engines: {node: '>=4'} - - hash.js@1.1.7: - resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} - hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -1101,33 +723,15 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true - hi-base32@0.5.1: - resolution: {integrity: sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==} - - hmac-drbg@1.0.1: - resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} - - http-errors@1.8.1: - resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} - engines: {node: '>= 0.6'} - humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - inquirer@8.2.6: - resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} - engines: {node: '>=12.0.0'} - is-arguments@1.1.1: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} @@ -1144,14 +748,6 @@ packages: resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} engines: {node: '>= 0.4'} - is-hex-prefixed@1.0.0: - resolution: {integrity: sha1-fY035q135dEnFIkTxXPggtd39VQ=} - engines: {node: '>=6.5.0', npm: '>=3'} - - is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - is-nan@1.3.2: resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} engines: {node: '>= 0.4'} @@ -1188,42 +784,20 @@ packages: engines: {node: '>=8'} hasBin: true - js-sha256@0.9.0: - resolution: {integrity: sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==} - js-sha3@0.8.0: resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} - js-sha512@0.8.0: - resolution: {integrity: sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==} - js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - json-bigint@1.0.0: - resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} - json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - keccak@3.0.4: - resolution: {integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==} - engines: {node: '>=10.0.0'} - locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} - lodash.clonedeep@4.5.0: - resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} - - lodash.isequal@4.5.0: - resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - log-symbols@4.1.0: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} @@ -1231,16 +805,6 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - md5.js@1.3.5: - resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} - - merkletreejs@0.2.32: - resolution: {integrity: sha512-TostQBiwYRIwSE5++jGmacu3ODcKAgqb0Y/pnIohXS7sWxh1gCkSptbmF1a43faehRDpcHf7J/kv0Ml2D/zblQ==} - engines: {node: '>= 7.6.0'} - - micro-ftch@0.3.1: - resolution: {integrity: sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==} - mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -1249,21 +813,6 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} - mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} - hasBin: true - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - - minimalistic-crypto-utils@1.0.1: - resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} - minimatch@9.0.9: resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} engines: {node: '>=16 || 14 >=14.17'} @@ -1283,28 +832,6 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - multistream@4.1.0: - resolution: {integrity: sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw==} - - mustache@4.2.0: - resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} - hasBin: true - - mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - - near-api-js@0.44.2: - resolution: {integrity: sha512-eMnc4V+geggapEUa3nU2p8HSHn/njtloI4P2mceHQWO8vDE1NGpnAw8FuTBrLmXSgIv9m6oocgFc9t3VNf5zwg==} - - near-hd-key@1.2.1: - resolution: {integrity: sha512-SIrthcL5Wc0sps+2e1xGj3zceEa68TgNZDLuCx0daxmfTP7sFTB3/mtE2pYhlFsCxWoMn+JfID5E1NlzvvbRJg==} - - near-seed-phrase@0.2.0: - resolution: {integrity: sha512-NpmrnejpY1AdlRpDZ0schJQJtfBaoUheRfiYtQpcq9TkwPgqKZCRULV5L3hHmLc0ep7KRtikbPQ9R2ztN/3cyQ==} - - node-addon-api@2.0.2: - resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} - node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} @@ -1318,13 +845,6 @@ packages: resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==} hasBin: true - number-to-bn@1.7.0: - resolution: {integrity: sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=} - engines: {node: '>=6.5.0', npm: '>=3'} - - o3@1.0.3: - resolution: {integrity: sha512-f+4n+vC6s4ysy7YO7O2gslWZBUu8Qj2i2OUJOvjRxQva7jVjYjB29jrr9NCjmxZQR0gzrOcv1RnqoYOeMs5VRQ==} - object-is@1.1.6: resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} engines: {node: '>= 0.4'} @@ -1337,21 +857,6 @@ packages: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - - os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} @@ -1378,10 +883,6 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - pbkdf2@3.1.2: - resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} - engines: {node: '>=0.12'} - picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -1394,20 +895,12 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - readdirp@4.1.2: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} @@ -1419,40 +912,12 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - - retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - - ripemd160@2.0.2: - resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} - rpc-websockets@9.3.5: resolution: {integrity: sha512-4mAmr+AEhPYJ9TmDtxF3r3ZcbWy7W8kvZ4PoZYw/Xgp2J7WixjwTgiQZsoTDvch5nimmg3Ay6/0Kuh9oIvVs9A==} - run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - - rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - scrypt-js@3.0.1: - resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==} - - secp256k1@4.0.3: - resolution: {integrity: sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==} - engines: {node: '>=10.0.0'} - serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} @@ -1460,13 +925,6 @@ packages: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - - sha.js@2.4.11: - resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} - hasBin: true - shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -1475,26 +933,16 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} - stream-chain@2.2.5: resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==} stream-json@1.9.1: resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==} - stream-transform@3.3.2: - resolution: {integrity: sha512-v64PUnPy9Qw94NGuaEMo+9RHQe4jTBYf+NkTtqkCgeuiNo8NlL0LtLR7fkKWNVFtp3RhIm5Dlxkgm5uz7TDimQ==} - string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -1503,9 +951,6 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -1514,10 +959,6 @@ packages: resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} engines: {node: '>=12'} - strip-hex-prefix@1.0.0: - resolution: {integrity: sha1-DF8VX+8RUTczd96du1iNoFUA428=} - engines: {node: '>=6.5.0', npm: '>=3'} - strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -1540,37 +981,12 @@ packages: text-encoding-utf-8@1.0.2: resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==} - through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - - tmp-promise@3.0.3: - resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} - - tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - - tmp@0.2.3: - resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} - engines: {node: '>=14.14'} - - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - toml@3.0.0: resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - treeify@1.1.0: - resolution: {integrity: sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==} - engines: {node: '>=0.6'} - - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -1579,13 +995,6 @@ packages: engines: {node: '>=18.0.0'} hasBin: true - tweetnacl@1.0.3: - resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} - - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - typescript-collections@1.3.3: resolution: {integrity: sha512-7sI4e/bZijOzyURng88oOFZCISQPTHozfE2sUu5AviFYk5QV7fYGb6YiDl+vKjF/pICA354JImBImL9XJWUvdQ==} @@ -1594,9 +1003,6 @@ packages: engines: {node: '>=14.17'} hasBin: true - u3@0.1.1: - resolution: {integrity: sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w==} - undici-types@8.3.0: resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} @@ -1604,12 +1010,6 @@ packages: resolution: {integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==} engines: {node: '>=6.14.2'} - utf8@3.0.0: - resolution: {integrity: sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==} - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - util@0.12.5: resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} @@ -1621,16 +1021,6 @@ packages: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true - vlq@2.0.4: - resolution: {integrity: sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==} - - wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - - web3-utils@1.10.4: - resolution: {integrity: sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==} - engines: {node: '>=8.0.0'} - webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -1649,10 +1039,6 @@ packages: workerpool@9.3.4: resolution: {integrity: sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==} - wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -1661,21 +1047,6 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - ws@7.4.6: - resolution: {integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - ws@7.5.10: resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} engines: {node: '>=8.3.0'} @@ -1757,34 +1128,6 @@ snapshots: '@babel/runtime@7.29.2': {} - '@bundlr-network/client@0.8.9(bufferutil@4.0.8)(debug@4.3.4)(typescript@5.9.3)(utf-8-validate@6.0.6)': - dependencies: - '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)) - '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@supercharge/promise-pool': 2.4.0 - algosdk: 1.24.1 - arbundles: 0.6.23(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(debug@4.3.4)(utf-8-validate@6.0.6) - arweave: 1.15.1 - async-retry: 1.3.3 - axios: 0.25.0(debug@4.3.4) - base64url: 3.0.1 - bignumber.js: 9.1.2 - bs58: 4.0.1 - commander: 8.3.0 - csv: 6.3.9 - ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.6) - inquirer: 8.2.6 - js-sha256: 0.9.0 - mime-types: 2.1.35 - near-api-js: 0.44.2 - near-seed-phrase: 0.2.0 - transitivePeerDependencies: - - bufferutil - - debug - - encoding - - typescript - - utf-8-validate - '@esbuild/aix-ppc64@0.28.1': optional: true @@ -1863,292 +1206,16 @@ snapshots: '@esbuild/win32-x64@0.28.1': optional: true - '@ethereumjs/rlp@4.0.1': {} - - '@ethereumjs/util@8.1.0': - dependencies: - '@ethereumjs/rlp': 4.0.1 - ethereum-cryptography: 2.1.3 - micro-ftch: 0.3.1 - - '@ethersproject/abi@5.7.0': - dependencies: - '@ethersproject/address': 5.7.0 - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/constants': 5.7.0 - '@ethersproject/hash': 5.7.0 - '@ethersproject/keccak256': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/properties': 5.7.0 - '@ethersproject/strings': 5.7.0 - - '@ethersproject/abstract-provider@5.7.0': + '@isaacs/cliui@8.0.2': dependencies: - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/networks': 5.7.1 - '@ethersproject/properties': 5.7.0 - '@ethersproject/transactions': 5.7.0 - '@ethersproject/web': 5.7.1 + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.2.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 - '@ethersproject/abstract-signer@5.7.0': - dependencies: - '@ethersproject/abstract-provider': 5.7.0 - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/properties': 5.7.0 - - '@ethersproject/address@5.7.0': - dependencies: - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/keccak256': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/rlp': 5.7.0 - - '@ethersproject/base64@5.7.0': - dependencies: - '@ethersproject/bytes': 5.7.0 - - '@ethersproject/basex@5.7.0': - dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/properties': 5.7.0 - - '@ethersproject/bignumber@5.7.0': - dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 - bn.js: 5.2.2 - - '@ethersproject/bytes@5.7.0': - dependencies: - '@ethersproject/logger': 5.7.0 - - '@ethersproject/constants@5.7.0': - dependencies: - '@ethersproject/bignumber': 5.7.0 - - '@ethersproject/contracts@5.7.0': - dependencies: - '@ethersproject/abi': 5.7.0 - '@ethersproject/abstract-provider': 5.7.0 - '@ethersproject/abstract-signer': 5.7.0 - '@ethersproject/address': 5.7.0 - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/constants': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/properties': 5.7.0 - '@ethersproject/transactions': 5.7.0 - - '@ethersproject/hash@5.7.0': - dependencies: - '@ethersproject/abstract-signer': 5.7.0 - '@ethersproject/address': 5.7.0 - '@ethersproject/base64': 5.7.0 - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/keccak256': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/properties': 5.7.0 - '@ethersproject/strings': 5.7.0 - - '@ethersproject/hdnode@5.7.0': - dependencies: - '@ethersproject/abstract-signer': 5.7.0 - '@ethersproject/basex': 5.7.0 - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/pbkdf2': 5.7.0 - '@ethersproject/properties': 5.7.0 - '@ethersproject/sha2': 5.7.0 - '@ethersproject/signing-key': 5.7.0 - '@ethersproject/strings': 5.7.0 - '@ethersproject/transactions': 5.7.0 - '@ethersproject/wordlists': 5.7.0 - - '@ethersproject/json-wallets@5.7.0': - dependencies: - '@ethersproject/abstract-signer': 5.7.0 - '@ethersproject/address': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/hdnode': 5.7.0 - '@ethersproject/keccak256': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/pbkdf2': 5.7.0 - '@ethersproject/properties': 5.7.0 - '@ethersproject/random': 5.7.0 - '@ethersproject/strings': 5.7.0 - '@ethersproject/transactions': 5.7.0 - aes-js: 3.0.0 - scrypt-js: 3.0.1 - - '@ethersproject/keccak256@5.7.0': - dependencies: - '@ethersproject/bytes': 5.7.0 - js-sha3: 0.8.0 - - '@ethersproject/logger@5.7.0': {} - - '@ethersproject/networks@5.7.1': - dependencies: - '@ethersproject/logger': 5.7.0 - - '@ethersproject/pbkdf2@5.7.0': - dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/sha2': 5.7.0 - - '@ethersproject/properties@5.7.0': - dependencies: - '@ethersproject/logger': 5.7.0 - - '@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.6)': - dependencies: - '@ethersproject/abstract-provider': 5.7.0 - '@ethersproject/abstract-signer': 5.7.0 - '@ethersproject/address': 5.7.0 - '@ethersproject/base64': 5.7.0 - '@ethersproject/basex': 5.7.0 - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/constants': 5.7.0 - '@ethersproject/hash': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/networks': 5.7.1 - '@ethersproject/properties': 5.7.0 - '@ethersproject/random': 5.7.0 - '@ethersproject/rlp': 5.7.0 - '@ethersproject/sha2': 5.7.0 - '@ethersproject/strings': 5.7.0 - '@ethersproject/transactions': 5.7.0 - '@ethersproject/web': 5.7.1 - bech32: 1.1.4 - ws: 7.4.6(bufferutil@4.0.8)(utf-8-validate@6.0.6) - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - '@ethersproject/random@5.7.0': - dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 - - '@ethersproject/rlp@5.7.0': - dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 - - '@ethersproject/sha2@5.7.0': - dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 - hash.js: 1.1.7 - - '@ethersproject/signing-key@5.7.0': - dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/properties': 5.7.0 - bn.js: 5.2.2 - elliptic: 6.5.4 - hash.js: 1.1.7 - - '@ethersproject/solidity@5.7.0': - dependencies: - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/keccak256': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/sha2': 5.7.0 - '@ethersproject/strings': 5.7.0 - - '@ethersproject/strings@5.7.0': - dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/constants': 5.7.0 - '@ethersproject/logger': 5.7.0 - - '@ethersproject/transactions@5.7.0': - dependencies: - '@ethersproject/address': 5.7.0 - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/constants': 5.7.0 - '@ethersproject/keccak256': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/properties': 5.7.0 - '@ethersproject/rlp': 5.7.0 - '@ethersproject/signing-key': 5.7.0 - - '@ethersproject/units@5.7.0': - dependencies: - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/constants': 5.7.0 - '@ethersproject/logger': 5.7.0 - - '@ethersproject/wallet@5.7.0': - dependencies: - '@ethersproject/abstract-provider': 5.7.0 - '@ethersproject/abstract-signer': 5.7.0 - '@ethersproject/address': 5.7.0 - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/hash': 5.7.0 - '@ethersproject/hdnode': 5.7.0 - '@ethersproject/json-wallets': 5.7.0 - '@ethersproject/keccak256': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/properties': 5.7.0 - '@ethersproject/random': 5.7.0 - '@ethersproject/signing-key': 5.7.0 - '@ethersproject/transactions': 5.7.0 - '@ethersproject/wordlists': 5.7.0 - - '@ethersproject/web@5.7.1': - dependencies: - '@ethersproject/base64': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/properties': 5.7.0 - '@ethersproject/strings': 5.7.0 - - '@ethersproject/wordlists@5.7.0': - dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/hash': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/properties': 5.7.0 - '@ethersproject/strings': 5.7.0 - - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.2.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - - '@metaplex-foundation/beet-solana@0.3.1(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)': - dependencies: - '@metaplex-foundation/beet': 0.7.1 - '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6) - bs58: 5.0.0 - debug: 4.3.4 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - typescript - - utf-8-validate - - '@metaplex-foundation/beet-solana@0.4.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)': + '@metaplex-foundation/beet-solana@0.4.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)': dependencies: '@metaplex-foundation/beet': 0.7.1 '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6) @@ -2174,22 +1241,6 @@ snapshots: - typescript - utf-8-validate - '@metaplex-foundation/beet@0.4.0': - dependencies: - ansicolors: 0.3.2 - bn.js: 5.2.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - - '@metaplex-foundation/beet@0.6.1': - dependencies: - ansicolors: 0.3.2 - bn.js: 5.2.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - '@metaplex-foundation/beet@0.7.1': dependencies: ansicolors: 0.3.2 @@ -2209,75 +1260,6 @@ snapshots: '@metaplex-foundation/cusper@0.0.2': {} - '@metaplex-foundation/js@0.19.5(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)': - dependencies: - '@bundlr-network/client': 0.8.9(bufferutil@4.0.8)(debug@4.3.4)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@metaplex-foundation/beet': 0.7.1 - '@metaplex-foundation/mpl-auction-house': 2.5.1(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@metaplex-foundation/mpl-bubblegum': 0.6.2(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@metaplex-foundation/mpl-candy-guard': 0.3.2(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@metaplex-foundation/mpl-candy-machine': 5.1.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@metaplex-foundation/mpl-candy-machine-core': 0.1.2(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@metaplex-foundation/mpl-token-metadata': 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@noble/ed25519': 1.7.3 - '@noble/hashes': 1.4.0 - '@solana/spl-account-compression': 0.1.10(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6) - bignumber.js: 9.1.2 - bn.js: 5.2.1 - bs58: 5.0.0 - buffer: 6.0.3 - debug: 4.3.4 - eventemitter3: 4.0.7 - lodash.clonedeep: 4.5.0 - lodash.isequal: 4.5.0 - merkletreejs: 0.2.32 - mime: 3.0.0 - node-fetch: 2.7.0 - transitivePeerDependencies: - - bufferutil - - encoding - - fastestsmallesttextencoderdecoder - - supports-color - - typescript - - utf-8-validate - - '@metaplex-foundation/mpl-auction-house@2.5.1(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)': - dependencies: - '@metaplex-foundation/beet': 0.6.1 - '@metaplex-foundation/beet-solana': 0.3.1(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@metaplex-foundation/cusper': 0.0.2 - '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6) - bn.js: 5.2.1 - transitivePeerDependencies: - - bufferutil - - encoding - - fastestsmallesttextencoderdecoder - - supports-color - - typescript - - utf-8-validate - - '@metaplex-foundation/mpl-bubblegum@0.6.2(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)': - dependencies: - '@metaplex-foundation/beet': 0.7.1 - '@metaplex-foundation/beet-solana': 0.4.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@metaplex-foundation/cusper': 0.0.2 - '@metaplex-foundation/mpl-token-metadata': 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@solana/spl-account-compression': 0.1.10(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@solana/spl-token': 0.1.8(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6) - bn.js: 5.2.1 - js-sha3: 0.8.0 - transitivePeerDependencies: - - bufferutil - - encoding - - fastestsmallesttextencoderdecoder - - supports-color - - typescript - - utf-8-validate - '@metaplex-foundation/mpl-bubblegum@0.7.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)': dependencies: '@metaplex-foundation/beet': 0.7.1 @@ -2296,49 +1278,6 @@ snapshots: - typescript - utf-8-validate - '@metaplex-foundation/mpl-candy-guard@0.3.2(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)': - dependencies: - '@metaplex-foundation/beet': 0.4.0 - '@metaplex-foundation/beet-solana': 0.3.1(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@metaplex-foundation/cusper': 0.0.2 - '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6) - bn.js: 5.2.1 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - typescript - - utf-8-validate - - '@metaplex-foundation/mpl-candy-machine-core@0.1.2(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)': - dependencies: - '@metaplex-foundation/beet': 0.4.0 - '@metaplex-foundation/beet-solana': 0.3.1(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@metaplex-foundation/cusper': 0.0.2 - '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6) - bn.js: 5.2.1 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - typescript - - utf-8-validate - - '@metaplex-foundation/mpl-candy-machine@5.1.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)': - dependencies: - '@metaplex-foundation/beet': 0.7.1 - '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@metaplex-foundation/cusper': 0.0.2 - '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6) - transitivePeerDependencies: - - bufferutil - - encoding - - fastestsmallesttextencoderdecoder - - supports-color - - typescript - - utf-8-validate - '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)': dependencies: '@metaplex-foundation/beet': 0.7.1 @@ -2356,44 +1295,15 @@ snapshots: - typescript - utf-8-validate - '@noble/curves@1.3.0': - dependencies: - '@noble/hashes': 1.3.3 - '@noble/curves@1.9.7': dependencies: '@noble/hashes': 1.8.0 - '@noble/ed25519@1.7.3': {} - - '@noble/hashes@1.3.3': {} - - '@noble/hashes@1.4.0': {} - '@noble/hashes@1.8.0': {} '@pkgjs/parseargs@0.11.0': optional: true - '@randlabs/communication-bridge@1.0.1': {} - - '@randlabs/myalgo-connect@1.4.2': - dependencies: - '@randlabs/communication-bridge': 1.0.1 - - '@scure/base@1.1.6': {} - - '@scure/bip32@1.3.3': - dependencies: - '@noble/curves': 1.3.0 - '@noble/hashes': 1.3.3 - '@scure/base': 1.1.6 - - '@scure/bip39@1.2.2': - dependencies: - '@noble/hashes': 1.3.3 - '@scure/base': 1.1.6 - '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)': dependencies: '@solana/buffer-layout': 4.0.1 @@ -2525,19 +1435,6 @@ snapshots: dependencies: buffer: 6.0.3 - '@solana/wallet-adapter-base@0.9.23(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))': - dependencies: - '@solana/wallet-standard-features': 1.2.0 - '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@wallet-standard/base': 1.0.1 - '@wallet-standard/features': 1.0.3 - eventemitter3: 4.0.7 - - '@solana/wallet-standard-features@1.2.0': - dependencies: - '@wallet-standard/base': 1.0.1 - '@wallet-standard/features': 1.0.3 - '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)': dependencies: '@babel/runtime': 7.29.2 @@ -2561,8 +1458,6 @@ snapshots: - typescript - utf-8-validate - '@supercharge/promise-pool@2.4.0': {} - '@swc/helpers@0.5.19': dependencies: tslib: 2.8.1 @@ -2584,8 +1479,6 @@ snapshots: '@types/mocha@10.0.10': {} - '@types/node@11.11.6': {} - '@types/node@12.20.55': {} '@types/node@26.1.2': @@ -2602,39 +1495,10 @@ snapshots: dependencies: '@types/node': 26.1.2 - '@wallet-standard/base@1.0.1': {} - - '@wallet-standard/features@1.0.3': - dependencies: - '@wallet-standard/base': 1.0.1 - - aes-js@3.0.0: {} - agentkeepalive@4.5.0: dependencies: humanize-ms: 1.2.1 - algo-msgpack-with-bigint@2.1.1: {} - - algosdk@1.24.1: - dependencies: - algo-msgpack-with-bigint: 2.1.1 - buffer: 6.0.3 - cross-fetch: 3.2.0 - hi-base32: 0.5.1 - js-sha256: 0.9.0 - js-sha3: 0.8.0 - js-sha512: 0.8.0 - json-bigint: 1.0.0 - tweetnacl: 1.0.3 - vlq: 2.0.4 - transitivePeerDependencies: - - encoding - - ansi-escapes@4.3.2: - dependencies: - type-fest: 0.21.3 - ansi-regex@5.0.1: {} ansi-regex@6.2.2: {} @@ -2647,56 +1511,8 @@ snapshots: ansicolors@0.3.2: {} - arbundles@0.6.23(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(debug@4.3.4)(utf-8-validate@6.0.6): - dependencies: - '@noble/ed25519': 1.7.3 - '@randlabs/myalgo-connect': 1.4.2 - '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)) - algosdk: 1.24.1 - arweave: 1.15.1 - arweave-stream-tx: 1.2.2(arweave@1.15.1) - avsc: https://codeload.github.com/Irys-xyz/avsc/tar.gz/a730cc8018b79e114b6a3381bbb57760a24c6cef - axios: 0.21.4(debug@4.3.4) - base64url: 3.0.1 - bs58: 4.0.1 - ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.6) - keccak: 3.0.4 - multistream: 4.1.0 - process: 0.11.10 - secp256k1: 4.0.3 - tmp-promise: 3.0.3 - transitivePeerDependencies: - - '@solana/web3.js' - - bufferutil - - debug - - encoding - - utf-8-validate - - arconnect@0.4.2: - dependencies: - arweave: 1.15.1 - argparse@2.0.1: {} - arweave-stream-tx@1.2.2(arweave@1.15.1): - dependencies: - arweave: 1.15.1 - exponential-backoff: 3.1.1 - - arweave@1.15.1: - dependencies: - arconnect: 0.4.2 - asn1.js: 5.4.1 - base64-js: 1.5.1 - bignumber.js: 9.1.2 - - asn1.js@5.4.1: - dependencies: - bn.js: 4.12.2 - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - safer-buffer: 2.1.2 - assert@2.1.0: dependencies: call-bind: 1.0.7 @@ -2707,33 +1523,15 @@ snapshots: assertion-error@2.0.1: {} - async-retry@1.3.3: - dependencies: - retry: 0.13.1 - asynckit@0.4.0: {} available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.0.0 - avsc@https://codeload.github.com/Irys-xyz/avsc/tar.gz/a730cc8018b79e114b6a3381bbb57760a24c6cef: {} - - axios@0.21.4(debug@4.3.4): - dependencies: - follow-redirects: 1.15.6(debug@4.3.4) - transitivePeerDependencies: - - debug - - axios@0.25.0(debug@4.3.4): - dependencies: - follow-redirects: 1.15.6(debug@4.3.4) - transitivePeerDependencies: - - debug - axios@1.7.2: dependencies: - follow-redirects: 1.15.6(debug@4.3.4) + follow-redirects: 1.15.6 form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -2749,10 +1547,6 @@ snapshots: base64-js@1.5.1: {} - base64url@3.0.1: {} - - bech32@1.1.4: {} - bigint-buffer@1.1.5: dependencies: bindings: 1.5.0 @@ -2763,40 +1557,10 @@ snapshots: dependencies: file-uri-to-path: 1.0.0 - bip39-light@1.0.7: - dependencies: - create-hash: 1.2.0 - pbkdf2: 3.1.2 - - bip39@3.0.2: - dependencies: - '@types/node': 11.11.6 - create-hash: 1.2.0 - pbkdf2: 3.1.2 - randombytes: 2.1.0 - - bl@4.1.0: - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - - bn.js@4.11.6: {} - - bn.js@4.12.2: {} - - bn.js@5.2.0: {} - bn.js@5.2.1: {} bn.js@5.2.2: {} - borsh@0.6.0: - dependencies: - bn.js: 5.2.2 - bs58: 4.0.1 - text-encoding-utf-8: 1.0.2 - borsh@0.7.0: dependencies: bn.js: 5.2.2 @@ -2807,8 +1571,6 @@ snapshots: dependencies: balanced-match: 1.0.2 - brorand@1.1.0: {} - browser-stdout@1.3.1: {} bs58@4.0.1: @@ -2821,13 +1583,6 @@ snapshots: buffer-layout@1.2.2: {} - buffer-reverse@1.0.1: {} - - buffer@5.7.1: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - buffer@6.0.3: dependencies: base64-js: 1.5.1 @@ -2848,8 +1603,6 @@ snapshots: camelcase@6.3.0: {} - capability@0.2.5: {} - chai@6.2.2: {} chalk@4.1.2: @@ -2861,33 +1614,16 @@ snapshots: chalk@5.6.2: {} - chardet@0.7.0: {} - chokidar@4.0.3: dependencies: readdirp: 4.1.2 - cipher-base@1.0.4: - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - - cli-cursor@3.1.0: - dependencies: - restore-cursor: 3.1.0 - - cli-spinners@2.9.2: {} - - cli-width@3.0.0: {} - cliui@8.0.1: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - clone@1.0.4: {} - color-convert@2.0.1: dependencies: color-name: 1.1.4 @@ -2904,25 +1640,6 @@ snapshots: commander@2.20.3: {} - commander@8.3.0: {} - - create-hash@1.2.0: - dependencies: - cipher-base: 1.0.4 - inherits: 2.0.4 - md5.js: 1.3.5 - ripemd160: 2.0.2 - sha.js: 2.4.11 - - create-hmac@1.1.7: - dependencies: - cipher-base: 1.0.4 - create-hash: 1.2.0 - inherits: 2.0.4 - ripemd160: 2.0.2 - safe-buffer: 5.2.1 - sha.js: 2.4.11 - cross-fetch@3.2.0: dependencies: node-fetch: 2.7.0 @@ -2935,21 +1652,6 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - crypto-js@3.3.0: {} - - csv-generate@4.4.1: {} - - csv-parse@5.5.6: {} - - csv-stringify@6.5.0: {} - - csv@6.3.9: - dependencies: - csv-generate: 4.4.1 - csv-parse: 5.5.6 - csv-stringify: 6.5.0 - stream-transform: 3.3.2 - debug@4.3.4: dependencies: ms: 2.1.2 @@ -2962,10 +1664,6 @@ snapshots: decamelize@4.0.0: {} - defaults@1.0.4: - dependencies: - clone: 1.0.4 - define-data-property@1.1.4: dependencies: es-define-property: 1.0.0 @@ -2982,46 +1680,16 @@ snapshots: delayed-stream@1.0.0: {} - depd@1.1.2: {} - - depd@2.0.0: {} - diff@7.0.0: {} dotenv@10.0.0: {} eastasianwidth@0.2.0: {} - elliptic@6.5.4: - dependencies: - bn.js: 4.12.2 - brorand: 1.1.0 - hash.js: 1.1.7 - hmac-drbg: 1.0.1 - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - minimalistic-crypto-utils: 1.0.1 - - elliptic@6.5.5: - dependencies: - bn.js: 4.12.2 - brorand: 1.1.0 - hash.js: 1.1.7 - hmac-drbg: 1.0.1 - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - minimalistic-crypto-utils: 1.0.1 - emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} - error-polyfill@0.1.3: - dependencies: - capability: 0.2.5 - o3: 1.0.3 - u3: 0.1.1 - es-define-property@1.0.0: dependencies: get-intrinsic: 1.2.4 @@ -3065,84 +1733,18 @@ snapshots: escalade@3.1.2: {} - escape-string-regexp@1.0.5: {} - escape-string-regexp@4.0.0: {} - ethereum-bloom-filters@1.1.0: - dependencies: - '@noble/hashes': 1.8.0 - - ethereum-cryptography@2.1.3: - dependencies: - '@noble/curves': 1.3.0 - '@noble/hashes': 1.3.3 - '@scure/bip32': 1.3.3 - '@scure/bip39': 1.2.2 - - ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.6): - dependencies: - '@ethersproject/abi': 5.7.0 - '@ethersproject/abstract-provider': 5.7.0 - '@ethersproject/abstract-signer': 5.7.0 - '@ethersproject/address': 5.7.0 - '@ethersproject/base64': 5.7.0 - '@ethersproject/basex': 5.7.0 - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/constants': 5.7.0 - '@ethersproject/contracts': 5.7.0 - '@ethersproject/hash': 5.7.0 - '@ethersproject/hdnode': 5.7.0 - '@ethersproject/json-wallets': 5.7.0 - '@ethersproject/keccak256': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/networks': 5.7.1 - '@ethersproject/pbkdf2': 5.7.0 - '@ethersproject/properties': 5.7.0 - '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.6) - '@ethersproject/random': 5.7.0 - '@ethersproject/rlp': 5.7.0 - '@ethersproject/sha2': 5.7.0 - '@ethersproject/signing-key': 5.7.0 - '@ethersproject/solidity': 5.7.0 - '@ethersproject/strings': 5.7.0 - '@ethersproject/transactions': 5.7.0 - '@ethersproject/units': 5.7.0 - '@ethersproject/wallet': 5.7.0 - '@ethersproject/web': 5.7.1 - '@ethersproject/wordlists': 5.7.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - ethjs-unit@0.1.6: - dependencies: - bn.js: 4.11.6 - number-to-bn: 1.7.0 - eventemitter3@4.0.7: {} eventemitter3@5.0.4: {} - exponential-backoff@3.1.1: {} - - external-editor@3.1.0: - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - eyes@0.1.8: {} fast-stable-stringify@1.0.0: {} fastestsmallesttextencoderdecoder@1.0.22: {} - figures@3.2.0: - dependencies: - escape-string-regexp: 1.0.5 - file-uri-to-path@1.0.0: {} find-up@5.0.0: @@ -3152,9 +1754,7 @@ snapshots: flat@5.0.2: {} - follow-redirects@1.15.6(debug@4.3.4): - optionalDependencies: - debug: 4.3.4 + follow-redirects@1.15.6: {} for-each@0.3.3: dependencies: @@ -3213,69 +1813,20 @@ snapshots: dependencies: has-symbols: 1.0.3 - hash-base@3.1.0: - dependencies: - inherits: 2.0.4 - readable-stream: 3.6.2 - safe-buffer: 5.2.1 - - hash.js@1.1.7: - dependencies: - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - hasown@2.0.2: dependencies: function-bind: 1.1.2 he@1.2.0: {} - hi-base32@0.5.1: {} - - hmac-drbg@1.0.1: - dependencies: - hash.js: 1.1.7 - minimalistic-assert: 1.0.1 - minimalistic-crypto-utils: 1.0.1 - - http-errors@1.8.1: - dependencies: - depd: 1.1.2 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 1.5.0 - toidentifier: 1.0.1 - humanize-ms@1.2.1: dependencies: ms: 2.1.3 - iconv-lite@0.4.24: - dependencies: - safer-buffer: 2.1.2 - ieee754@1.2.1: {} inherits@2.0.4: {} - inquirer@8.2.6: - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - ora: 5.4.1 - run-async: 2.4.1 - rxjs: 7.8.1 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - wrap-ansi: 6.2.0 - is-arguments@1.1.1: dependencies: call-bind: 1.0.7 @@ -3289,10 +1840,6 @@ snapshots: dependencies: has-tostringtag: 1.0.2 - is-hex-prefixed@1.0.0: {} - - is-interactive@1.0.0: {} - is-nan@1.3.2: dependencies: call-bind: 1.0.7 @@ -3338,38 +1885,18 @@ snapshots: - bufferutil - utf-8-validate - js-sha256@0.9.0: {} - js-sha3@0.8.0: {} - js-sha512@0.8.0: {} - js-yaml@4.1.0: dependencies: argparse: 2.0.1 - json-bigint@1.0.0: - dependencies: - bignumber.js: 9.1.2 - json-stringify-safe@5.0.1: {} - keccak@3.0.4: - dependencies: - node-addon-api: 2.0.2 - node-gyp-build: 4.8.1 - readable-stream: 3.6.2 - locate-path@6.0.0: dependencies: p-locate: 5.0.0 - lodash.clonedeep@4.5.0: {} - - lodash.isequal@4.5.0: {} - - lodash@4.17.21: {} - log-symbols@4.1.0: dependencies: chalk: 4.1.2 @@ -3377,36 +1904,12 @@ snapshots: lru-cache@10.4.3: {} - md5.js@1.3.5: - dependencies: - hash-base: 3.1.0 - inherits: 2.0.4 - safe-buffer: 5.2.1 - - merkletreejs@0.2.32: - dependencies: - bignumber.js: 9.1.2 - buffer-reverse: 1.0.1 - crypto-js: 3.3.0 - treeify: 1.1.0 - web3-utils: 1.10.4 - - micro-ftch@0.3.1: {} - mime-db@1.52.0: {} mime-types@2.1.35: dependencies: mime-db: 1.52.0 - mime@3.0.0: {} - - mimic-fn@2.1.0: {} - - minimalistic-assert@1.0.1: {} - - minimalistic-crypto-utils@1.0.1: {} - minimatch@9.0.9: dependencies: brace-expansion: 2.1.3 @@ -3441,60 +1944,12 @@ snapshots: ms@2.1.3: {} - multistream@4.1.0: - dependencies: - once: 1.4.0 - readable-stream: 3.6.2 - - mustache@4.2.0: {} - - mute-stream@0.0.8: {} - - near-api-js@0.44.2: - dependencies: - bn.js: 5.2.0 - borsh: 0.6.0 - bs58: 4.0.1 - depd: 2.0.0 - error-polyfill: 0.1.3 - http-errors: 1.8.1 - js-sha256: 0.9.0 - mustache: 4.2.0 - node-fetch: 2.7.0 - text-encoding-utf-8: 1.0.2 - tweetnacl: 1.0.3 - transitivePeerDependencies: - - encoding - - near-hd-key@1.2.1: - dependencies: - bip39: 3.0.2 - create-hmac: 1.1.7 - tweetnacl: 1.0.3 - - near-seed-phrase@0.2.0: - dependencies: - bip39-light: 1.0.7 - bs58: 4.0.1 - near-hd-key: 1.2.1 - tweetnacl: 1.0.3 - - node-addon-api@2.0.2: {} - node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 - node-gyp-build@4.8.1: {} - - number-to-bn@1.7.0: - dependencies: - bn.js: 4.11.6 - strip-hex-prefix: 1.0.0 - - o3@1.0.3: - dependencies: - capability: 0.2.5 + node-gyp-build@4.8.1: + optional: true object-is@1.1.6: dependencies: @@ -3510,28 +1965,6 @@ snapshots: has-symbols: 1.0.3 object-keys: 1.1.1 - once@1.4.0: - dependencies: - wrappy: 1.0.2 - - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - - ora@5.4.1: - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - - os-tmpdir@1.0.2: {} - p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 @@ -3553,52 +1986,24 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.3 - pbkdf2@3.1.2: - dependencies: - create-hash: 1.2.0 - create-hmac: 1.1.7 - ripemd160: 2.0.2 - safe-buffer: 5.2.1 - sha.js: 2.4.11 - picocolors@1.1.1: {} possible-typed-array-names@1.0.0: {} prettier@2.8.8: {} - process@0.11.10: {} - proxy-from-env@1.1.0: {} randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 - readable-stream@3.6.2: - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - readdirp@4.1.2: {} regenerator-runtime@0.14.1: {} require-directory@2.1.1: {} - restore-cursor@3.1.0: - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - - retry@0.13.1: {} - - ripemd160@2.0.2: - dependencies: - hash-base: 3.1.0 - inherits: 2.0.4 - rpc-websockets@9.3.5: dependencies: '@swc/helpers': 0.5.19 @@ -3612,24 +2017,8 @@ snapshots: bufferutil: 4.0.8 utf-8-validate: 6.0.6 - run-async@2.4.1: {} - - rxjs@7.8.1: - dependencies: - tslib: 2.6.2 - safe-buffer@5.2.1: {} - safer-buffer@2.1.2: {} - - scrypt-js@3.0.1: {} - - secp256k1@4.0.3: - dependencies: - elliptic: 6.5.5 - node-addon-api: 2.0.2 - node-gyp-build: 4.8.1 - serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 @@ -3643,33 +2032,20 @@ snapshots: gopd: 1.0.1 has-property-descriptors: 1.0.2 - setprototypeof@1.2.0: {} - - sha.js@2.4.11: - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 shebang-regex@3.0.0: {} - signal-exit@3.0.7: {} - signal-exit@4.1.0: {} - statuses@1.5.0: {} - stream-chain@2.2.5: {} stream-json@1.9.1: dependencies: stream-chain: 2.2.5 - stream-transform@3.3.2: {} - string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -3682,10 +2058,6 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.2.0 - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 - strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -3694,10 +2066,6 @@ snapshots: dependencies: ansi-regex: 6.2.2 - strip-hex-prefix@1.0.0: - dependencies: - is-hex-prefixed: 1.0.0 - strip-json-comments@3.1.1: {} superstruct@0.15.5: {} @@ -3714,28 +2082,10 @@ snapshots: text-encoding-utf-8@1.0.2: {} - through@2.3.8: {} - - tmp-promise@3.0.3: - dependencies: - tmp: 0.2.3 - - tmp@0.0.33: - dependencies: - os-tmpdir: 1.0.2 - - tmp@0.2.3: {} - - toidentifier@1.0.1: {} - toml@3.0.0: {} tr46@0.0.3: {} - treeify@1.1.0: {} - - tslib@2.6.2: {} - tslib@2.8.1: {} tsx@4.23.1: @@ -3744,16 +2094,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - tweetnacl@1.0.3: {} - - type-fest@0.21.3: {} - typescript-collections@1.3.3: {} typescript@5.9.3: {} - u3@0.1.1: {} - undici-types@8.3.0: {} utf-8-validate@6.0.6: @@ -3761,10 +2105,6 @@ snapshots: node-gyp-build: 4.8.1 optional: true - utf8@3.0.0: {} - - util-deprecate@1.0.2: {} - util@0.12.5: dependencies: inherits: 2.0.4 @@ -3777,23 +2117,6 @@ snapshots: uuid@8.3.2: {} - vlq@2.0.4: {} - - wcwidth@1.0.1: - dependencies: - defaults: 1.0.4 - - web3-utils@1.10.4: - dependencies: - '@ethereumjs/util': 8.1.0 - bn.js: 5.2.2 - ethereum-bloom-filters: 1.1.0 - ethereum-cryptography: 2.1.3 - ethjs-unit: 0.1.6 - number-to-bn: 1.7.0 - randombytes: 2.1.0 - utf8: 3.0.0 - webidl-conversions@3.0.1: {} whatwg-url@5.0.0: @@ -3815,12 +2138,6 @@ snapshots: workerpool@9.3.4: {} - wrap-ansi@6.2.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -3833,13 +2150,6 @@ snapshots: string-width: 5.1.2 strip-ansi: 7.2.0 - wrappy@1.0.2: {} - - ws@7.4.6(bufferutil@4.0.8)(utf-8-validate@6.0.6): - optionalDependencies: - bufferutil: 4.0.8 - utf-8-validate: 6.0.6 - ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6): optionalDependencies: bufferutil: 4.0.8 diff --git a/tokens/create-token/anchor/package.json b/tokens/create-token/anchor/package.json index 53a30a96b..14012eec6 100644 --- a/tokens/create-token/anchor/package.json +++ b/tokens/create-token/anchor/package.json @@ -13,7 +13,6 @@ "postinstall": "zx prepare.mjs" }, "devDependencies": { - "@types/bn.js": "^5.1.0", "@types/chai": "^5.2.3", "@types/mocha": "^10.0.10", "@types/node": "^26.1.0", diff --git a/tokens/create-token/anchor/pnpm-lock.yaml b/tokens/create-token/anchor/pnpm-lock.yaml index 184558ed4..32f99dbca 100644 --- a/tokens/create-token/anchor/pnpm-lock.yaml +++ b/tokens/create-token/anchor/pnpm-lock.yaml @@ -18,9 +18,6 @@ importers: specifier: ^1.98.4 version: 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) devDependencies: - '@types/bn.js': - specifier: ^5.1.0 - version: 5.2.0 '@types/chai': specifier: ^5.2.3 version: 5.2.3 @@ -290,9 +287,6 @@ packages: '@swc/helpers@0.5.17': resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} - '@types/bn.js@5.2.0': - resolution: {integrity: sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q==} - '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -1074,10 +1068,6 @@ snapshots: dependencies: tslib: 2.8.1 - '@types/bn.js@5.2.0': - dependencies: - '@types/node': 26.1.2 - '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 diff --git a/tokens/escrow/native/package.json b/tokens/escrow/native/package.json index 07e96691c..887eefe3a 100644 --- a/tokens/escrow/native/package.json +++ b/tokens/escrow/native/package.json @@ -14,7 +14,6 @@ "@types/chai": "^5.2.3", "@types/mocha": "^10.0.10", "@types/node": "^26.1.0", - "borsh": "^2.0.0", "chai": "^6.2.2", "mocha": "^11.7.5", "litesvm": "^1.3.0", diff --git a/tokens/escrow/native/pnpm-lock.yaml b/tokens/escrow/native/pnpm-lock.yaml index 49079fec6..d90f44d38 100644 --- a/tokens/escrow/native/pnpm-lock.yaml +++ b/tokens/escrow/native/pnpm-lock.yaml @@ -27,9 +27,6 @@ importers: '@types/node': specifier: ^26.1.0 version: 26.1.2 - borsh: - specifier: ^2.0.0 - version: 2.0.0 chai: specifier: ^6.2.2 version: 6.2.2 @@ -1045,9 +1042,6 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - borsh@2.0.0: - resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==} - brace-expansion@2.1.3: resolution: {integrity: sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A==} @@ -2526,8 +2520,6 @@ snapshots: balanced-match@1.0.2: {} - borsh@2.0.0: {} - brace-expansion@2.1.3: dependencies: balanced-match: 1.0.2 diff --git a/tokens/escrow/native/tests/account.ts b/tokens/escrow/native/tests/account.ts index 6004d17fb..c7234ab99 100644 --- a/tokens/escrow/native/tests/account.ts +++ b/tokens/escrow/native/tests/account.ts @@ -1,25 +1,11 @@ -import * as borsh from 'borsh'; +import { getAddressDecoder, getStructDecoder, getU8Decoder, getU64Decoder } from '@solana/kit'; -export const OfferSchema = { - struct: { - id: 'u64', - maker: { array: { type: 'u8', len: 32 } }, - token_mint_a: { array: { type: 'u8', len: 32 } }, - token_mint_b: { array: { type: 'u8', len: 32 } }, - token_b_wanted_amount: 'u64', - bump: 'u8', - }, -}; - -export type OfferRaw = { - id: bigint; - maker: Uint8Array; - token_mint_a: Uint8Array; - token_mint_b: Uint8Array; - token_b_wanted_amount: bigint; - bump: number; -}; - -export function borshSerialize(schema: borsh.Schema, data: object): Buffer { - return Buffer.from(borsh.serialize(schema, data)); -} +// Account data layout, matching the program's `Offer` struct. +export const offerDecoder = getStructDecoder([ + ['id', getU64Decoder()], + ['maker', getAddressDecoder()], + ['token_mint_a', getAddressDecoder()], + ['token_mint_b', getAddressDecoder()], + ['token_b_wanted_amount', getU64Decoder()], + ['bump', getU8Decoder()], +]); diff --git a/tokens/escrow/native/tests/instruction.ts b/tokens/escrow/native/tests/instruction.ts index 61da1eda2..f08f0125f 100644 --- a/tokens/escrow/native/tests/instruction.ts +++ b/tokens/escrow/native/tests/instruction.ts @@ -1,7 +1,13 @@ -import { AccountRole, type Address, type TransactionSigner } from '@solana/kit'; +import { + AccountRole, + type Address, + getStructEncoder, + getU8Encoder, + getU64Encoder, + type TransactionSigner, +} from '@solana/kit'; import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; import { ASSOCIATED_TOKEN_PROGRAM_ADDRESS, TOKEN_PROGRAM_ADDRESS } from '@solana-program/token'; -import * as borsh from 'borsh'; enum EscrowInstruction { MakeOffer = 0, @@ -9,30 +15,19 @@ enum EscrowInstruction { RefundOffer = 2, } -const MakeOfferSchema = { - struct: { - instruction: 'u8', - id: 'u64', - token_a_offered_amount: 'u64', - token_b_wanted_amount: 'u64', - }, -}; +// Instruction data layout, matching the program's `EscrowInstruction::MakeOffer(MakeOffer)` variant. +const makeOfferEncoder = getStructEncoder([ + ['instruction', getU8Encoder()], + ['id', getU64Encoder()], + ['token_a_offered_amount', getU64Encoder()], + ['token_b_wanted_amount', getU64Encoder()], +]); -const TakeOfferSchema = { - struct: { - instruction: 'u8', - }, -}; +// Instruction data layout, matching the program's `EscrowInstruction::TakeOffer` variant. +const takeOfferEncoder = getStructEncoder([['instruction', getU8Encoder()]]); -const RefundOfferSchema = { - struct: { - instruction: 'u8', - }, -}; - -function borshSerialize(schema: borsh.Schema, data: object): Uint8Array { - return borsh.serialize(schema, data); -} +// Instruction data layout, matching the program's `EscrowInstruction::RefundOffer` variant. +const refundOfferEncoder = getStructEncoder([['instruction', getU8Encoder()]]); export function buildMakeOffer(props: { id: bigint; @@ -47,7 +42,7 @@ export function buildMakeOffer(props: { payer: TransactionSigner; programId: Address; }) { - const data = borshSerialize(MakeOfferSchema, { + const data = makeOfferEncoder.encode({ instruction: EscrowInstruction.MakeOffer, id: props.id, token_a_offered_amount: props.token_a_offered_amount, @@ -85,7 +80,7 @@ export function buildTakeOffer(props: { payer: TransactionSigner; programId: Address; }) { - const data = borshSerialize(TakeOfferSchema, { + const data = takeOfferEncoder.encode({ instruction: EscrowInstruction.TakeOffer, }); @@ -118,7 +113,7 @@ export function buildRefundOffer(props: { maker: TransactionSigner; programId: Address; }) { - const data = borshSerialize(RefundOfferSchema, { + const data = refundOfferEncoder.encode({ instruction: EscrowInstruction.RefundOffer, }); diff --git a/tokens/escrow/native/tests/test.ts b/tokens/escrow/native/tests/test.ts index c7767713b..4d773581b 100644 --- a/tokens/escrow/native/tests/test.ts +++ b/tokens/escrow/native/tests/test.ts @@ -1,9 +1,7 @@ -import { Buffer } from 'node:buffer'; import { appendTransactionMessageInstruction, createTransactionMessage, generateKeyPairSigner, - getAddressDecoder, type Instruction, type KeyPairSigner, lamports, @@ -20,17 +18,14 @@ import { TOKEN_PROGRAM_ADDRESS, } from '@solana-program/token'; import { getCreateAccountInstruction } from '@solana-program/system'; -import * as borsh from 'borsh'; import { assert } from 'chai'; import { FailedTransactionMetadata, LiteSVM } from 'litesvm'; -import { type OfferRaw, OfferSchema } from './account'; +import { offerDecoder } from './account'; import { buildMakeOffer, buildRefundOffer, buildTakeOffer } from './instruction'; import { createValues, type TestValues, mintingTokens } from './utils'; const LAMPORTS_PER_SOL = 1_000_000_000n; -const addressDecoder = getAddressDecoder(); - describe('Escrow!', () => { const svm = new LiteSVM(); let values: TestValues; @@ -97,17 +92,16 @@ describe('Escrow!', () => { const offerInfo = svm.getAccount(values.offer); assert(offerInfo.exists, 'offer account not created'); - const offer = borsh.deserialize(OfferSchema, Buffer.from(offerInfo.data)) as OfferRaw; + const offer = offerDecoder.decode(offerInfo.data); const vaultInfo = svm.getAccount(values.vault); assert(vaultInfo.exists, 'vault account not created'); const vaultTokenAccount = getTokenDecoder().decode(vaultInfo.data); assert(offer.id.toString() === values.id.toString(), 'wrong id'); - // borsh deserializes pubkeys as raw byte arrays, decode them into addresses for comparison - assert(addressDecoder.decode(offer.maker) === values.maker.address, 'maker key does not match'); - assert(addressDecoder.decode(offer.token_mint_a) === values.mintAKeypair.address, 'wrong mint A'); - assert(addressDecoder.decode(offer.token_mint_b) === values.mintBKeypair.address, 'wrong mint B'); + assert(offer.maker === values.maker.address, 'maker key does not match'); + assert(offer.token_mint_a === values.mintAKeypair.address, 'wrong mint A'); + assert(offer.token_mint_b === values.mintBKeypair.address, 'wrong mint B'); assert(offer.token_b_wanted_amount.toString() === values.amountB.toString(), 'unexpected amount B'); assert(vaultTokenAccount.amount.toString() === values.amountA.toString(), 'unexpected amount A'); }); diff --git a/tokens/escrow/pinocchio/package.json b/tokens/escrow/pinocchio/package.json index 6e76f757f..8bf88a02a 100644 --- a/tokens/escrow/pinocchio/package.json +++ b/tokens/escrow/pinocchio/package.json @@ -14,7 +14,6 @@ "@types/chai": "^5.2.3", "@types/mocha": "^10.0.10", "@types/node": "^26.1.0", - "borsh": "^2.0.0", "chai": "^6.2.2", "mocha": "^11.7.5", "litesvm": "^1.3.0", diff --git a/tokens/escrow/pinocchio/pnpm-lock.yaml b/tokens/escrow/pinocchio/pnpm-lock.yaml index 57b74f496..07f8de9c8 100644 --- a/tokens/escrow/pinocchio/pnpm-lock.yaml +++ b/tokens/escrow/pinocchio/pnpm-lock.yaml @@ -27,9 +27,6 @@ importers: '@types/node': specifier: ^26.1.0 version: 26.1.2 - borsh: - specifier: ^2.0.0 - version: 2.0.0 chai: specifier: ^6.2.2 version: 6.2.2 @@ -1034,9 +1031,6 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - borsh@2.0.0: - resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==} - brace-expansion@2.1.3: resolution: {integrity: sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A==} @@ -2515,8 +2509,6 @@ snapshots: balanced-match@1.0.2: {} - borsh@2.0.0: {} - brace-expansion@2.1.3: dependencies: balanced-match: 1.0.2 diff --git a/tokens/escrow/pinocchio/tests/account.ts b/tokens/escrow/pinocchio/tests/account.ts index 6004d17fb..c7234ab99 100644 --- a/tokens/escrow/pinocchio/tests/account.ts +++ b/tokens/escrow/pinocchio/tests/account.ts @@ -1,25 +1,11 @@ -import * as borsh from 'borsh'; +import { getAddressDecoder, getStructDecoder, getU8Decoder, getU64Decoder } from '@solana/kit'; -export const OfferSchema = { - struct: { - id: 'u64', - maker: { array: { type: 'u8', len: 32 } }, - token_mint_a: { array: { type: 'u8', len: 32 } }, - token_mint_b: { array: { type: 'u8', len: 32 } }, - token_b_wanted_amount: 'u64', - bump: 'u8', - }, -}; - -export type OfferRaw = { - id: bigint; - maker: Uint8Array; - token_mint_a: Uint8Array; - token_mint_b: Uint8Array; - token_b_wanted_amount: bigint; - bump: number; -}; - -export function borshSerialize(schema: borsh.Schema, data: object): Buffer { - return Buffer.from(borsh.serialize(schema, data)); -} +// Account data layout, matching the program's `Offer` struct. +export const offerDecoder = getStructDecoder([ + ['id', getU64Decoder()], + ['maker', getAddressDecoder()], + ['token_mint_a', getAddressDecoder()], + ['token_mint_b', getAddressDecoder()], + ['token_b_wanted_amount', getU64Decoder()], + ['bump', getU8Decoder()], +]); diff --git a/tokens/escrow/pinocchio/tests/instruction.ts b/tokens/escrow/pinocchio/tests/instruction.ts index 50bfd64ce..79d4a3f06 100644 --- a/tokens/escrow/pinocchio/tests/instruction.ts +++ b/tokens/escrow/pinocchio/tests/instruction.ts @@ -1,7 +1,13 @@ -import { AccountRole, type Address, type KeyPairSigner } from '@solana/kit'; +import { + AccountRole, + type Address, + getStructEncoder, + getU8Encoder, + getU64Encoder, + type KeyPairSigner, +} from '@solana/kit'; import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; import { ASSOCIATED_TOKEN_PROGRAM_ADDRESS, TOKEN_PROGRAM_ADDRESS } from '@solana-program/token'; -import * as borsh from 'borsh'; enum EscrowInstruction { MakeOffer = 0, @@ -9,29 +15,22 @@ enum EscrowInstruction { RefundOffer = 2, } -// Unlike the native example, the Pinocchio program receives the offer PDA bump -// in the instruction data (and stores it) instead of deriving it on-chain. -const MakeOfferSchema = { - struct: { - instruction: 'u8', - id: 'u64', - token_a_offered_amount: 'u64', - token_b_wanted_amount: 'u64', - bump: 'u8', - }, -}; +// Instruction data layout for the MakeOffer discriminator. Unlike the native +// example, the Pinocchio program receives the offer PDA bump in the instruction +// data (and stores it) instead of deriving it on-chain. +const makeOfferEncoder = getStructEncoder([ + ['instruction', getU8Encoder()], + ['id', getU64Encoder()], + ['token_a_offered_amount', getU64Encoder()], + ['token_b_wanted_amount', getU64Encoder()], + ['bump', getU8Encoder()], +]); -const TakeOfferSchema = { - struct: { - instruction: 'u8', - }, -}; +// Instruction data layout for the TakeOffer discriminator, which takes no args. +const takeOfferEncoder = getStructEncoder([['instruction', getU8Encoder()]]); -const RefundOfferSchema = { - struct: { - instruction: 'u8', - }, -}; +// Instruction data layout for the RefundOffer discriminator, which takes no args. +const refundOfferEncoder = getStructEncoder([['instruction', getU8Encoder()]]); export function buildMakeOffer(props: { id: bigint; @@ -47,7 +46,7 @@ export function buildMakeOffer(props: { payer: KeyPairSigner; programId: Address; }) { - const data = borsh.serialize(MakeOfferSchema, { + const data = makeOfferEncoder.encode({ instruction: EscrowInstruction.MakeOffer, id: props.id, token_a_offered_amount: props.token_a_offered_amount, @@ -86,7 +85,7 @@ export function buildTakeOffer(props: { payer: KeyPairSigner; programId: Address; }) { - const data = borsh.serialize(TakeOfferSchema, { + const data = takeOfferEncoder.encode({ instruction: EscrowInstruction.TakeOffer, }); @@ -119,7 +118,7 @@ export function buildRefundOffer(props: { maker: KeyPairSigner; programId: Address; }) { - const data = borsh.serialize(RefundOfferSchema, { + const data = refundOfferEncoder.encode({ instruction: EscrowInstruction.RefundOffer, }); diff --git a/tokens/escrow/pinocchio/tests/test.ts b/tokens/escrow/pinocchio/tests/test.ts index a79f785d3..e8549fa59 100644 --- a/tokens/escrow/pinocchio/tests/test.ts +++ b/tokens/escrow/pinocchio/tests/test.ts @@ -1,4 +1,4 @@ -import { generateKeyPairSigner, getAddressDecoder, type KeyPairSigner, lamports } from '@solana/kit'; +import { generateKeyPairSigner, type KeyPairSigner, lamports } from '@solana/kit'; import { getCreateAccountInstruction } from '@solana-program/system'; import { getInitializeAccount3Instruction, @@ -6,15 +6,12 @@ import { getTokenSize, TOKEN_PROGRAM_ADDRESS, } from '@solana-program/token'; -import * as borsh from 'borsh'; import { assert } from 'chai'; import { LiteSVM } from 'litesvm'; -import { type OfferRaw, OfferSchema } from './account'; +import { offerDecoder } from './account'; import { buildMakeOffer, buildRefundOffer, buildTakeOffer } from './instruction'; import { createValues, expectRevert, mintingTokens, sendInstructions, type TestValues } from './utils'; -const addressDecoder = getAddressDecoder(); - describe('Escrow (Pinocchio)', () => { let svm: LiteSVM; let payer: KeyPairSigner; @@ -54,26 +51,16 @@ describe('Escrow (Pinocchio)', () => { const offerInfo = svm.getAccount(values.offer); if (!offerInfo.exists) throw new Error('Offer account not found'); - const offer = borsh.deserialize(OfferSchema, new Uint8Array(offerInfo.data)) as OfferRaw; + const offer = offerDecoder.decode(offerInfo.data); const vaultInfo = svm.getAccount(values.vault); if (!vaultInfo.exists) throw new Error('Vault account not found'); const vaultTokenAccount = getTokenDecoder().decode(vaultInfo.data); assert(offer.id === values.id, 'wrong id'); - // borsh deserializes pubkeys as raw byte arrays, decode into addresses for comparison - assert( - addressDecoder.decode(Uint8Array.from(offer.maker)) === values.maker.address, - 'maker key does not match', - ); - assert( - addressDecoder.decode(Uint8Array.from(offer.token_mint_a)) === values.mintAKeypair.address, - 'wrong mint A', - ); - assert( - addressDecoder.decode(Uint8Array.from(offer.token_mint_b)) === values.mintBKeypair.address, - 'wrong mint B', - ); + assert(offer.maker === values.maker.address, 'maker key does not match'); + assert(offer.token_mint_a === values.mintAKeypair.address, 'wrong mint A'); + assert(offer.token_mint_b === values.mintBKeypair.address, 'wrong mint B'); assert(offer.token_b_wanted_amount === values.amountB, 'unexpected amount B'); assert(vaultTokenAccount.amount === values.amountA, 'unexpected amount A'); }); diff --git a/tokens/external-delegate-token-master/anchor/package.json b/tokens/external-delegate-token-master/anchor/package.json index de0f93127..b364ec843 100644 --- a/tokens/external-delegate-token-master/anchor/package.json +++ b/tokens/external-delegate-token-master/anchor/package.json @@ -11,10 +11,9 @@ }, "dependencies": { "@anchor-lang/core": "1.0.0-rc.5", + "@solana-program/token": "^0.15.0", "@solana/spl-token": "^0.3.9", - "@solana/web3.js": "^1.98.4", - "bn.js": "^5.2.1", - "ethers": "^5.7.2" + "@solana/web3.js": "^1.98.4" }, "devDependencies": { "@types/bn.js": "^5.1.0", diff --git a/tokens/external-delegate-token-master/anchor/pnpm-lock.yaml b/tokens/external-delegate-token-master/anchor/pnpm-lock.yaml index bd06d88b5..50bb02794 100644 --- a/tokens/external-delegate-token-master/anchor/pnpm-lock.yaml +++ b/tokens/external-delegate-token-master/anchor/pnpm-lock.yaml @@ -14,18 +14,15 @@ importers: '@anchor-lang/core': specifier: 1.0.0-rc.5 version: 1.0.0-rc.5(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) + '@solana-program/token': + specifier: ^0.15.0 + version: 0.15.0(@solana/kit@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)) '@solana/spl-token': specifier: ^0.3.9 version: 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) '@solana/web3.js': specifier: ^1.98.4 version: 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) - bn.js: - specifier: ^5.2.1 - version: 5.2.2 - ethers: - specifier: ^5.7.2 - version: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) devDependencies: '@types/bn.js': specifier: ^5.1.0 @@ -251,96 +248,6 @@ packages: cpu: [x64] os: [win32] - '@ethersproject/abi@5.8.0': - resolution: {integrity: sha512-b9YS/43ObplgyV6SlyQsG53/vkSal0MNA1fskSC4mbnCMi8R+NkcH8K9FPYNESf6jUefBUniE4SOKms0E/KK1Q==} - - '@ethersproject/abstract-provider@5.8.0': - resolution: {integrity: sha512-wC9SFcmh4UK0oKuLJQItoQdzS/qZ51EJegK6EmAWlh+OptpQ/npECOR3QqECd8iGHC0RJb4WKbVdSfif4ammrg==} - - '@ethersproject/abstract-signer@5.8.0': - resolution: {integrity: sha512-N0XhZTswXcmIZQdYtUnd79VJzvEwXQw6PK0dTl9VoYrEBxxCPXqS0Eod7q5TNKRxe1/5WUMuR0u0nqTF/avdCA==} - - '@ethersproject/address@5.8.0': - resolution: {integrity: sha512-GhH/abcC46LJwshoN+uBNoKVFPxUuZm6dA257z0vZkKmU1+t8xTn8oK7B9qrj8W2rFRMch4gbJl6PmVxjxBEBA==} - - '@ethersproject/base64@5.8.0': - resolution: {integrity: sha512-lN0oIwfkYj9LbPx4xEkie6rAMJtySbpOAFXSDVQaBnAzYfB4X2Qr+FXJGxMoc3Bxp2Sm8OwvzMrywxyw0gLjIQ==} - - '@ethersproject/basex@5.8.0': - resolution: {integrity: sha512-PIgTszMlDRmNwW9nhS6iqtVfdTAKosA7llYXNmGPw4YAI1PUyMv28988wAb41/gHF/WqGdoLv0erHaRcHRKW2Q==} - - '@ethersproject/bignumber@5.8.0': - resolution: {integrity: sha512-ZyaT24bHaSeJon2tGPKIiHszWjD/54Sz8t57Toch475lCLljC6MgPmxk7Gtzz+ddNN5LuHea9qhAe0x3D+uYPA==} - - '@ethersproject/bytes@5.8.0': - resolution: {integrity: sha512-vTkeohgJVCPVHu5c25XWaWQOZ4v+DkGoC42/TS2ond+PARCxTJvgTFUNDZovyQ/uAQ4EcpqqowKydcdmRKjg7A==} - - '@ethersproject/constants@5.8.0': - resolution: {integrity: sha512-wigX4lrf5Vu+axVTIvNsuL6YrV4O5AXl5ubcURKMEME5TnWBouUh0CDTWxZ2GpnRn1kcCgE7l8O5+VbV9QTTcg==} - - '@ethersproject/contracts@5.8.0': - resolution: {integrity: sha512-0eFjGz9GtuAi6MZwhb4uvUM216F38xiuR0yYCjKJpNfSEy4HUM8hvqqBj9Jmm0IUz8l0xKEhWwLIhPgxNY0yvQ==} - - '@ethersproject/hash@5.8.0': - resolution: {integrity: sha512-ac/lBcTbEWW/VGJij0CNSw/wPcw9bSRgCB0AIBz8CvED/jfvDoV9hsIIiWfvWmFEi8RcXtlNwp2jv6ozWOsooA==} - - '@ethersproject/hdnode@5.8.0': - resolution: {integrity: sha512-4bK1VF6E83/3/Im0ERnnUeWOY3P1BZml4ZD3wcH8Ys0/d1h1xaFt6Zc+Dh9zXf9TapGro0T4wvO71UTCp3/uoA==} - - '@ethersproject/json-wallets@5.8.0': - resolution: {integrity: sha512-HxblNck8FVUtNxS3VTEYJAcwiKYsBIF77W15HufqlBF9gGfhmYOJtYZp8fSDZtn9y5EaXTE87zDwzxRoTFk11w==} - - '@ethersproject/keccak256@5.8.0': - resolution: {integrity: sha512-A1pkKLZSz8pDaQ1ftutZoaN46I6+jvuqugx5KYNeQOPqq+JZ0Txm7dlWesCHB5cndJSu5vP2VKptKf7cksERng==} - - '@ethersproject/logger@5.8.0': - resolution: {integrity: sha512-Qe6knGmY+zPPWTC+wQrpitodgBfH7XoceCGL5bJVejmH+yCS3R8jJm8iiWuvWbG76RUmyEG53oqv6GMVWqunjA==} - - '@ethersproject/networks@5.8.0': - resolution: {integrity: sha512-egPJh3aPVAzbHwq8DD7Po53J4OUSsA1MjQp8Vf/OZPav5rlmWUaFLiq8cvQiGK0Z5K6LYzm29+VA/p4RL1FzNg==} - - '@ethersproject/pbkdf2@5.8.0': - resolution: {integrity: sha512-wuHiv97BrzCmfEaPbUFpMjlVg/IDkZThp9Ri88BpjRleg4iePJaj2SW8AIyE8cXn5V1tuAaMj6lzvsGJkGWskg==} - - '@ethersproject/properties@5.8.0': - resolution: {integrity: sha512-PYuiEoQ+FMaZZNGrStmN7+lWjlsoufGIHdww7454FIaGdbe/p5rnaCXTr5MtBYl3NkeoVhHZuyzChPeGeKIpQw==} - - '@ethersproject/providers@5.8.0': - resolution: {integrity: sha512-3Il3oTzEx3o6kzcg9ZzbE+oCZYyY+3Zh83sKkn4s1DZfTUjIegHnN2Cm0kbn9YFy45FDVcuCLLONhU7ny0SsCw==} - - '@ethersproject/random@5.8.0': - resolution: {integrity: sha512-E4I5TDl7SVqyg4/kkA/qTfuLWAQGXmSOgYyO01So8hLfwgKvYK5snIlzxJMk72IFdG/7oh8yuSqY2KX7MMwg+A==} - - '@ethersproject/rlp@5.8.0': - resolution: {integrity: sha512-LqZgAznqDbiEunaUvykH2JAoXTT9NV0Atqk8rQN9nx9SEgThA/WMx5DnW8a9FOufo//6FZOCHZ+XiClzgbqV9Q==} - - '@ethersproject/sha2@5.8.0': - resolution: {integrity: sha512-dDOUrXr9wF/YFltgTBYS0tKslPEKr6AekjqDW2dbn1L1xmjGR+9GiKu4ajxovnrDbwxAKdHjW8jNcwfz8PAz4A==} - - '@ethersproject/signing-key@5.8.0': - resolution: {integrity: sha512-LrPW2ZxoigFi6U6aVkFN/fa9Yx/+4AtIUe4/HACTvKJdhm0eeb107EVCIQcrLZkxaSIgc/eCrX8Q1GtbH+9n3w==} - - '@ethersproject/solidity@5.8.0': - resolution: {integrity: sha512-4CxFeCgmIWamOHwYN9d+QWGxye9qQLilpgTU0XhYs1OahkclF+ewO+3V1U0mvpiuQxm5EHHmv8f7ClVII8EHsA==} - - '@ethersproject/strings@5.8.0': - resolution: {integrity: sha512-qWEAk0MAvl0LszjdfnZ2uC8xbR2wdv4cDabyHiBh3Cldq/T8dPH3V4BbBsAYJUeonwD+8afVXld274Ls+Y1xXg==} - - '@ethersproject/transactions@5.8.0': - resolution: {integrity: sha512-UglxSDjByHG0TuU17bDfCemZ3AnKO2vYrL5/2n2oXvKzvb7Cz+W9gOWXKARjp2URVwcWlQlPOEQyAviKwT4AHg==} - - '@ethersproject/units@5.8.0': - resolution: {integrity: sha512-lxq0CAnc5kMGIiWW4Mr041VT8IhNM+Pn5T3haO74XZWFulk7wH1Gv64HqE96hT4a7iiNMdOCFEBgaxWuk8ETKQ==} - - '@ethersproject/wallet@5.8.0': - resolution: {integrity: sha512-G+jnzmgg6UxurVKRKvw27h0kvG75YKXZKdlLYmAHeF32TGUzHkOFd7Zn6QHOTYRFWnfjtSSFjBowKo7vfrXzPA==} - - '@ethersproject/web@5.8.0': - resolution: {integrity: sha512-j7+Ksi/9KfGviws6Qtf9Q7KCqRhpwrYKQPs+JBA/rKVFF/yaWLHJEH3zfVP2plVu+eys0d2DlFmhoQJayFewcw==} - - '@ethersproject/wordlists@5.8.0': - resolution: {integrity: sha512-2df9bbXicZws2Sb5S6ET493uJ0Z84Fjr3pC4tu/qlnZERibZCeUVuqdtt+7Tv9xxhUxHoIekIA7avrKUWHrezg==} - '@iarna/toml@2.2.5': resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} @@ -360,6 +267,44 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + '@solana-program/system@0.13.0': + resolution: {integrity: sha512-Id6QQxCG7ByImXPD5X/c3Ag2kySD+49aJ9waIkfxyUFyokhMQgxYQAx2rKuaygaBlaBQY6VVfBS46pqxZV+99A==} + peerDependencies: + '@solana/kit': ^7.0.0 + + '@solana-program/token@0.15.0': + resolution: {integrity: sha512-SeLm08EYIfT453I6lo7wTGgfMbz1s7bJ1jSHFHBFebSJHD3xF46zRgMxq3YKRlr/RM8jN0cG8SjZVu+IDvMxEA==} + engines: {node: '>=24.0.0'} + peerDependencies: + '@solana/kit': ^7.0.0 + + '@solana/accounts@7.1.0': + resolution: {integrity: sha512-0Vp2advYsTb7eb0jZveXZJaux6OSYcI3nitwoXOTZzCuzjbIjiHI/bpn3CcqfKBPW/1dnCIWAW7VW1otqH0a1w==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/addresses@7.1.0': + resolution: {integrity: sha512-kA/aav0TdyhrXCG6VCGG/fTuGu4ix5UW2PxtsbpBdZcyi+3TznLS1xKzIZBzqn0DL0q6HKdud6Ene7DWZDH1lw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/assertions@7.1.0': + resolution: {integrity: sha512-LD9+fhZb/xBECl27gfxDEX+qyj4PRV6700RJuprJWNMvGd8v0eoO0N+0QwnopK7o7O4w3DaW9/a3jH+iiwEqzw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/buffer-layout-utils@0.2.0': resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==} engines: {node: '>= 10'} @@ -379,11 +324,29 @@ packages: peerDependencies: typescript: '>=5.3.3' + '@solana/codecs-core@7.1.0': + resolution: {integrity: sha512-pl1gCCvviKekrijEDieZ1ps3LjC6ova2pZ/ZBXEJJa46nF7M0hwdZe/KzbMxKQ8WtT/WqW8Uyh6JQt8IJcMgRw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/codecs-data-structures@2.0.0-rc.1': resolution: {integrity: sha512-rinCv0RrAVJ9rE/rmaibWJQxMwC5lSaORSZuwjopSUE6T0nb/MVg6Z1siNCXhh/HFTOg0l8bNvZHgBcN/yvXog==} peerDependencies: typescript: '>=5' + '@solana/codecs-data-structures@7.1.0': + resolution: {integrity: sha512-yCwyXCD1qtj0qJwCLQVS9aojKDio7t8kqXQVhLfasYFsckvecK+OObkoILkBXBJVmpOXI8nRYwNAb63+CvJo/g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/codecs-numbers@2.0.0-rc.1': resolution: {integrity: sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ==} peerDependencies: @@ -395,17 +358,47 @@ packages: peerDependencies: typescript: '>=5.3.3' + '@solana/codecs-numbers@7.1.0': + resolution: {integrity: sha512-Hfw5OXx7tbSJ4iQ0r1ar6D+7XixkX8K36ni9cHDrunpiTo9SLIE0Lzj9/889aPNv4J4JggW1bpqzcrz3RI/o5g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/codecs-strings@2.0.0-rc.1': resolution: {integrity: sha512-9/wPhw8TbGRTt6mHC4Zz1RqOnuPTqq1Nb4EyuvpZ39GW6O2t2Q7Q0XxiB3+BdoEjwA2XgPw6e2iRfvYgqty44g==} peerDependencies: fastestsmallesttextencoderdecoder: ^1.0.22 typescript: '>=5' + '@solana/codecs-strings@7.1.0': + resolution: {integrity: sha512-YIv/XVDYTzkYiFRdbjK6tI1BUKNlV1ta5hl9oK6+CoCDZn7nECfAN96KPYs94jzbN5VgMgbEqi6tlQcdy5KuCg==} + engines: {node: '>=20.18.0'} + peerDependencies: + fastestsmallesttextencoderdecoder: ^1.0.22 + typescript: '>=5.4.0' + peerDependenciesMeta: + fastestsmallesttextencoderdecoder: + optional: true + typescript: + optional: true + '@solana/codecs@2.0.0-rc.1': resolution: {integrity: sha512-qxoR7VybNJixV51L0G1RD2boZTcxmwUWnKCaJJExQ5qNKwbpSyDdWfFJfM5JhGyKe9DnPVOZB+JHWXnpbZBqrQ==} peerDependencies: typescript: '>=5' + '@solana/codecs@7.1.0': + resolution: {integrity: sha512-4M1MgIiRX46qMUnrUjVnRnTxETmCZ7VLWddMdf+t6y3aVsMzz8kd9ngH7NloFhHtnAO0n3qJjs2rdgx/Dxd3Zg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/errors@2.0.0-rc.1': resolution: {integrity: sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ==} hasBin: true @@ -419,11 +412,273 @@ packages: peerDependencies: typescript: '>=5.3.3' + '@solana/errors@7.1.0': + resolution: {integrity: sha512-sJ0mM6SHN7fa6auHARRAGjjDpkFzhx6jmgHZAjliC/xADMfI2IYrTnAwguRV9dVBOsEHicylIXszvsyRb6BmEw==} + engines: {node: '>=20.18.0'} + hasBin: true + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/fast-stable-stringify@7.1.0': + resolution: {integrity: sha512-DV35b2DoqFwQlO7acwi0WG47oLSORGep7/lTkd/VrCB/MdM0J5TggQ0gRqc9v3ORBDQHcOYmMx6ym4Obqd1EFg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/fixed-points@7.1.0': + resolution: {integrity: sha512-xyVO7h8woz53L5dz9pV5akdf/EcluEvtV85cYtca1pp0ZpdcdnGQ2yve3mN/GuOEb+Ixzthrew2p0c5h9w4Bhg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/functional@7.1.0': + resolution: {integrity: sha512-1yfUFHkeMvrD/6yTDu3op3CgWIfr1KAvHo3XQL6yBvz0miEbiQ6tAEZbrwHpudES43sG8ZvlgrkL0Oiu5KwC9g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/instruction-plans@7.1.0': + resolution: {integrity: sha512-Ug7YSchE8Oq8PsaKYlr8IH0woYjmAgi7JdVwd1wtE1pReHvufH63WUsE6B6guqIkQPxiLZL/tmODzKas2zlVtA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/instructions@7.1.0': + resolution: {integrity: sha512-KnXUtSIbKCUjlposzfikAO3qSVliOSoMBzglQYSn3e0x0PpJ2MsVH6tzzI6v124YVhs0OSs5wFwYjENTedPgcg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/keys@7.1.0': + resolution: {integrity: sha512-BGRkTPeBIKPojwVEdYaBXtLMQ0fp8xtQiRxDhOSyYpd1bz52K4bmvrugVtSqfjWLVO+I8SRZGpSZq2G5+DgR1Q==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/kit@7.1.0': + resolution: {integrity: sha512-UvzQhbn7ITjoBIinGz7rrdPSfkE8/bl+c6TISTLOXiW5hZw16mKOAkK28duP6bJutgQ57L0oJ4HYu5BTzAznOg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/nominal-types@7.1.0': + resolution: {integrity: sha512-oN+gGAqBnGc/iGIq5i4Q/+VFyTqbh0wpLnWTtMbFpXmevrdX3IPPBW5Z76ysZtTtv+M4Ha64kqc2upLJBUGM0A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/offchain-messages@7.1.0': + resolution: {integrity: sha512-nQBqXNLjDvUybc6oRS936gHLGzKwKy9fSlUV4OPo1mLG5V8TcW+jhCc1UOJdmfj0FYDDq5rzqmFTVK4yEu7brw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/options@2.0.0-rc.1': resolution: {integrity: sha512-mLUcR9mZ3qfHlmMnREdIFPf9dpMc/Bl66tLSOOWxw4ml5xMT2ohFn7WGqoKcu/UHkT9CrC6+amEdqCNvUqI7AA==} peerDependencies: typescript: '>=5' + '@solana/options@7.1.0': + resolution: {integrity: sha512-6Z6NYrnDB7qQXE7liHVpf0+5ytJogNw6QGsO8On/csX4f5WGBLxeP0JJQNnkOvuTrBkUMEq6YtTFxp4/Plqx9A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/plugin-core@7.1.0': + resolution: {integrity: sha512-2UhReZOhFoUMcYz+72EDM3UIrrONZBpP8uhofPKNDmKPslDuJHc8q4RRlO1llGgrfV6dMIsk9j8uV4q3DjWu5g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/plugin-interfaces@7.1.0': + resolution: {integrity: sha512-5QXBy1RnbWmHRCIDZRZ0W2lMnWEw65lw9X+geJmiEfbLnTPKZdpYe+5YSClz26RMcp8X2ETovkgp0E8y0Zz0yg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/program-client-core@7.1.0': + resolution: {integrity: sha512-81CmiYVovOElru2E7ZpBg3aAaCOdgEB4FqRatxr3EUKcP8xzsM/gti7sZxmZCd6wyLLAQQokNxpLYBjspC4ZEw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/programs@7.1.0': + resolution: {integrity: sha512-SiHIxX4lbHD36tOFNWyE9T984+yq9X+EOhxg3P2LKDg7nZep9F6L7Qhgw4R+aXF/Zqpy2q8XzO7NYLeT6piQ3g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/promises@7.1.0': + resolution: {integrity: sha512-4I0tTa0Peh9U6cEJUR3Y0VyQneFGA2C8dL+sw00Dtfr/4hVGr03wmjHUq6CcCiH6e7WqNuznNKsqahe3BgrOMg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-api@7.1.0': + resolution: {integrity: sha512-mluuAalyk5mfdi2lnPLDCPj6RElgZ0DCaNZmQZhnVM0SabvWxpBIzvTYqmy56Z/b9yiycfkVG3h6ISMZMddNuA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-parsed-types@7.1.0': + resolution: {integrity: sha512-WVHfz/VmqZpPbpyTgqz6W4Yk1rKa7tfjSqa77KbWi+yXDzZ+Oha+bAscXxY/yg/w6auu7/JY5+t7Qd0qIjrGmQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-spec-types@7.1.0': + resolution: {integrity: sha512-nEKJARQq8x9YQB/TBptw99bNU9KsmsObu51VleXwTi+PCowHbU7yaNad1lxg81iiX9Z4Lwvvo4c5UdVA4xkYFQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-spec@7.1.0': + resolution: {integrity: sha512-vmFN/HNK0bUV+sDPqs7+NV/orY23PByWN82J1Q4PFZKCOCnyFO/A06pd/MCVuPjmcaJ62xFhTcORrit6dTQL3A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-subscriptions-api@7.1.0': + resolution: {integrity: sha512-lzi8sPWuMyT89/L1ebY+MTzOma/6vsRdFTFcY5pe4pO4Sfi59j4p+HeYUu/NS0E6+/7Ng3BHFeTtuKD6QkhPDg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-subscriptions-channel-websocket@7.1.0': + resolution: {integrity: sha512-eW0JCgwSM7YV1YKkZN4rtfIGhh5WSJkCf2+JV1wscF6Zn4hK/9kr8MJ0Y0LWtoDMIuX0W3RCJnYG4T/Pcm1v6w==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-subscriptions-spec@7.1.0': + resolution: {integrity: sha512-f+s6qIzUHxUTyoZoOvz2uw8Y6tYyUefLxxJtavMZEDXEjsAQ0Zv+yhmPZ5tQCo1JyHGS6EKvaw9AjxVC68NHDA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-subscriptions@7.1.0': + resolution: {integrity: sha512-Vjs6d1AagH9r52smhX9zxSwprPKvqsWw8XFmvtGbUNI5lxtX1W4TIukscpXiau7dqe6zH6q6cfs9UtuOgY5sXA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-transformers@7.1.0': + resolution: {integrity: sha512-3sSO13m25IkkS1mXnWFZYwgSOSturEGFQMIs37vdqgiJFAYJjmossOozE+fqOY0CI1oebyURhm5gM86ATuHDYw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-transport-http@7.1.0': + resolution: {integrity: sha512-9zT58Ahfhd/sdYNMKvVOmPLpIMsdrZOrJlnuK0nmB+D8KWbqswDUV46H2HGxRFjvGgKep/CtOSx4RM+kt14ezQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-types@7.1.0': + resolution: {integrity: sha512-pZO8+EroeRv7kb/d42qQeKHvUmm5tBvH0tXe8Kl2QkqG9+BCZ8NXXd+K7GbYWfVz3XtYmV3W/1B67s1DnzRldQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc@7.1.0': + resolution: {integrity: sha512-K9PvA39IQ+Z5/GYuDv4xXDPwk1KAPegnMu97b999yH09lBfsWpkHTGCCmNNy7bJAD346IQ/90/KgIbB/YnMEkw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/signers@7.1.0': + resolution: {integrity: sha512-sGGEOhPQLn+M9Y5QF3BgzAh9ECoq+XxIOUhyEpCSoUB725oMerir7lgsuyHvSkANhnoGnVxMhy/3b9wzVIazig==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/spl-token-metadata@0.1.6': resolution: {integrity: sha512-7sMt1rsm/zQOQcUWllQX9mD2O6KhSAtY1hFR2hfFwgqfFWzSY9E9GDvFVNYUI1F0iQKcm6HmePU9QbKRXTEBiA==} engines: {node: '>=16'} @@ -436,6 +691,60 @@ packages: peerDependencies: '@solana/web3.js': ^1.88.0 + '@solana/subscribable@7.1.0': + resolution: {integrity: sha512-8YnZV34WRN/AHP1B2XUlLIkINI9AYGcv1lqc2pFswS4VEL0c4iXyCfCXg9D1FM/obEhlU73h+ZJK4deg8yasgA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/sysvars@7.1.0': + resolution: {integrity: sha512-8UZsIsHS0JcYTy41QK9eewWj34mSkahsgD5TQPk/M69W34ElQOLKLkooj4iwXdnV2tMlNniKMIDoIQUhGCfhZw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/transaction-confirmation@7.1.0': + resolution: {integrity: sha512-IZd2eEvhIdIaIkZAd6ugeTLB1f8pB5iwu+NmSk2vH0FUGVf3wJui8NzZyj/8+5a6Ps2WUa79JIIizVdvIOzV8A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/transaction-introspection@7.1.0': + resolution: {integrity: sha512-AKev/afwQpkTjjNPUsYrZ7lwI76wNiZGy5T5m9FBhVrncg8evMjUHhVrnTvLTLkqMGuVgteR2BH9e2S+igwxPg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/transaction-messages@7.1.0': + resolution: {integrity: sha512-5JKj7mCppHBzJQF67n5YVaPR3nLNe5+sbgJcSbD2woyR7pdUhjNYyzG2HFeWDghbROpQzy9Dy7Km9iTjw3ry5A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/transactions@7.1.0': + resolution: {integrity: sha512-J/31jUwrbmJkk4vHnyenbF8iz2dHnhTW0HEzOp86YzVHbm171g5ujL1mmOP4nh8r/UA6xH4QbEJ4kTrID6cN5w==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/web3.js@1.98.4': resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==} @@ -472,9 +781,6 @@ packages: '@types/ws@8.18.1': resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} - aes-js@3.0.0: - resolution: {integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==} - agentkeepalive@4.6.0: resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} engines: {node: '>= 8.0.0'} @@ -515,9 +821,6 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - bech32@1.1.4: - resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==} - bigint-buffer@1.1.5: resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==} engines: {node: '>= 10.0.0'} @@ -528,9 +831,6 @@ packages: bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - bn.js@4.12.2: - resolution: {integrity: sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==} - bn.js@5.2.2: resolution: {integrity: sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==} @@ -540,9 +840,6 @@ packages: brace-expansion@2.1.3: resolution: {integrity: sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A==} - brorand@1.1.0: - resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} - browser-stdout@1.3.1: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} @@ -576,6 +873,10 @@ packages: resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + chalk@5.6.2: + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + chokidar@4.0.3: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} @@ -599,6 +900,10 @@ packages: resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} engines: {node: '>=18'} + commander@15.0.0: + resolution: {integrity: sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==} + engines: {node: '>=22.12.0'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -633,9 +938,6 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - elliptic@6.6.1: - resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} - emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -661,9 +963,6 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - ethers@5.8.0: - resolution: {integrity: sha512-DUq+7fHrCg1aPDFCHx6UIPb3nmt2XMpM7Y/g2gLhsl3lIBqeAfOJIl1qEvRf2uq3BiKxmh6Fh5pfp2ieyek7Kg==} - eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} @@ -713,25 +1012,16 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - hash.js@1.1.7: - resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} - he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true - hmac-drbg@1.0.1: - resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} - humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -764,9 +1054,6 @@ packages: engines: {node: '>=8'} hasBin: true - js-sha3@0.8.0: - resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} - js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -829,12 +1116,6 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - - minimalistic-crypto-utils@1.0.1: - resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} - minimatch@9.0.9: resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} engines: {node: '>=16 || 14 >=14.17'} @@ -915,9 +1196,6 @@ packages: safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - scrypt-js@3.0.1: - resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==} - serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} @@ -996,6 +1274,9 @@ packages: engines: {node: '>=14.17'} hasBin: true + undici-types@8.10.0: + resolution: {integrity: sha512-ibvdovq3nCFs8Msrd95BW+zUOq+aOVbT+wpHUoPWhztbHEoPc6oof51iFDB6Es8lTKvNvVW9jNSAB8dwrKTMGg==} + undici-types@8.3.0: resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} @@ -1041,8 +1322,8 @@ packages: utf-8-validate: optional: true - ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + ws@8.18.2: + resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -1053,8 +1334,8 @@ packages: utf-8-validate: optional: true - ws@8.18.2: - resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==} + ws@8.21.3: + resolution: {integrity: sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -1210,275 +1491,20 @@ snapshots: '@esbuild/openbsd-x64@0.28.1': optional: true - '@esbuild/openharmony-arm64@0.28.1': - optional: true - - '@esbuild/sunos-x64@0.28.1': - optional: true - - '@esbuild/win32-arm64@0.28.1': - optional: true - - '@esbuild/win32-ia32@0.28.1': - optional: true - - '@esbuild/win32-x64@0.28.1': - optional: true - - '@ethersproject/abi@5.8.0': - dependencies: - '@ethersproject/address': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/constants': 5.8.0 - '@ethersproject/hash': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/strings': 5.8.0 - - '@ethersproject/abstract-provider@5.8.0': - dependencies: - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/networks': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/transactions': 5.8.0 - '@ethersproject/web': 5.8.0 - - '@ethersproject/abstract-signer@5.8.0': - dependencies: - '@ethersproject/abstract-provider': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - - '@ethersproject/address@5.8.0': - dependencies: - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/rlp': 5.8.0 - - '@ethersproject/base64@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - - '@ethersproject/basex@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/properties': 5.8.0 - - '@ethersproject/bignumber@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 - bn.js: 5.2.2 - - '@ethersproject/bytes@5.8.0': - dependencies: - '@ethersproject/logger': 5.8.0 - - '@ethersproject/constants@5.8.0': - dependencies: - '@ethersproject/bignumber': 5.8.0 - - '@ethersproject/contracts@5.8.0': - dependencies: - '@ethersproject/abi': 5.8.0 - '@ethersproject/abstract-provider': 5.8.0 - '@ethersproject/abstract-signer': 5.8.0 - '@ethersproject/address': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/constants': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/transactions': 5.8.0 - - '@ethersproject/hash@5.8.0': - dependencies: - '@ethersproject/abstract-signer': 5.8.0 - '@ethersproject/address': 5.8.0 - '@ethersproject/base64': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/strings': 5.8.0 - - '@ethersproject/hdnode@5.8.0': - dependencies: - '@ethersproject/abstract-signer': 5.8.0 - '@ethersproject/basex': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/pbkdf2': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/sha2': 5.8.0 - '@ethersproject/signing-key': 5.8.0 - '@ethersproject/strings': 5.8.0 - '@ethersproject/transactions': 5.8.0 - '@ethersproject/wordlists': 5.8.0 - - '@ethersproject/json-wallets@5.8.0': - dependencies: - '@ethersproject/abstract-signer': 5.8.0 - '@ethersproject/address': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/hdnode': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/pbkdf2': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/random': 5.8.0 - '@ethersproject/strings': 5.8.0 - '@ethersproject/transactions': 5.8.0 - aes-js: 3.0.0 - scrypt-js: 3.0.1 - - '@ethersproject/keccak256@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - js-sha3: 0.8.0 - - '@ethersproject/logger@5.8.0': {} - - '@ethersproject/networks@5.8.0': - dependencies: - '@ethersproject/logger': 5.8.0 - - '@ethersproject/pbkdf2@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/sha2': 5.8.0 - - '@ethersproject/properties@5.8.0': - dependencies: - '@ethersproject/logger': 5.8.0 - - '@ethersproject/providers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)': - dependencies: - '@ethersproject/abstract-provider': 5.8.0 - '@ethersproject/abstract-signer': 5.8.0 - '@ethersproject/address': 5.8.0 - '@ethersproject/base64': 5.8.0 - '@ethersproject/basex': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/constants': 5.8.0 - '@ethersproject/hash': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/networks': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/random': 5.8.0 - '@ethersproject/rlp': 5.8.0 - '@ethersproject/sha2': 5.8.0 - '@ethersproject/strings': 5.8.0 - '@ethersproject/transactions': 5.8.0 - '@ethersproject/web': 5.8.0 - bech32: 1.1.4 - ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) - transitivePeerDependencies: - - bufferutil - - utf-8-validate + '@esbuild/openharmony-arm64@0.28.1': + optional: true - '@ethersproject/random@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 + '@esbuild/sunos-x64@0.28.1': + optional: true - '@ethersproject/rlp@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 + '@esbuild/win32-arm64@0.28.1': + optional: true - '@ethersproject/sha2@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 - hash.js: 1.1.7 + '@esbuild/win32-ia32@0.28.1': + optional: true - '@ethersproject/signing-key@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - bn.js: 5.2.2 - elliptic: 6.6.1 - hash.js: 1.1.7 - - '@ethersproject/solidity@5.8.0': - dependencies: - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/sha2': 5.8.0 - '@ethersproject/strings': 5.8.0 - - '@ethersproject/strings@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/constants': 5.8.0 - '@ethersproject/logger': 5.8.0 - - '@ethersproject/transactions@5.8.0': - dependencies: - '@ethersproject/address': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/constants': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/rlp': 5.8.0 - '@ethersproject/signing-key': 5.8.0 - - '@ethersproject/units@5.8.0': - dependencies: - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/constants': 5.8.0 - '@ethersproject/logger': 5.8.0 - - '@ethersproject/wallet@5.8.0': - dependencies: - '@ethersproject/abstract-provider': 5.8.0 - '@ethersproject/abstract-signer': 5.8.0 - '@ethersproject/address': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/hash': 5.8.0 - '@ethersproject/hdnode': 5.8.0 - '@ethersproject/json-wallets': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/random': 5.8.0 - '@ethersproject/signing-key': 5.8.0 - '@ethersproject/transactions': 5.8.0 - '@ethersproject/wordlists': 5.8.0 - - '@ethersproject/web@5.8.0': - dependencies: - '@ethersproject/base64': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/strings': 5.8.0 - - '@ethersproject/wordlists@5.8.0': - dependencies: - '@ethersproject/bytes': 5.8.0 - '@ethersproject/hash': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/strings': 5.8.0 + '@esbuild/win32-x64@0.28.1': + optional: true '@iarna/toml@2.2.5': {} @@ -1500,6 +1526,46 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true + '@solana-program/system@0.13.0(@solana/kit@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10))': + dependencies: + '@solana/kit': 7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) + + '@solana-program/token@0.15.0(@solana/kit@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10))': + dependencies: + '@solana-program/system': 0.13.0(@solana/kit@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)) + '@solana/kit': 7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) + + '@solana/accounts@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/addresses@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/assertions': 7.1.0(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/assertions@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)': dependencies: '@solana/buffer-layout': 4.0.1 @@ -1526,6 +1592,12 @@ snapshots: '@solana/errors': 2.1.1(typescript@5.9.3) typescript: 5.9.3 + '@solana/codecs-core@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + '@solana/codecs-data-structures@2.0.0-rc.1(typescript@5.9.3)': dependencies: '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3) @@ -1533,6 +1605,14 @@ snapshots: '@solana/errors': 2.0.0-rc.1(typescript@5.9.3) typescript: 5.9.3 + '@solana/codecs-data-structures@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + '@solana/codecs-numbers@2.0.0-rc.1(typescript@5.9.3)': dependencies: '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3) @@ -1545,6 +1625,13 @@ snapshots: '@solana/errors': 2.1.1(typescript@5.9.3) typescript: 5.9.3 + '@solana/codecs-numbers@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + '@solana/codecs-strings@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': dependencies: '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3) @@ -1553,6 +1640,15 @@ snapshots: fastestsmallesttextencoderdecoder: 1.0.22 typescript: 5.9.3 + '@solana/codecs-strings@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + fastestsmallesttextencoderdecoder: 1.0.22 + typescript: 5.9.3 + '@solana/codecs@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': dependencies: '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3) @@ -1564,6 +1660,19 @@ snapshots: transitivePeerDependencies: - fastestsmallesttextencoderdecoder + '@solana/codecs@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/fixed-points': 7.1.0(typescript@5.9.3) + '@solana/options': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + '@solana/errors@2.0.0-rc.1(typescript@5.9.3)': dependencies: chalk: 5.4.1 @@ -1576,6 +1685,116 @@ snapshots: commander: 13.1.0 typescript: 5.9.3 + '@solana/errors@7.1.0(typescript@5.9.3)': + dependencies: + chalk: 5.6.2 + commander: 15.0.0 + optionalDependencies: + typescript: 5.9.3 + + '@solana/fast-stable-stringify@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/fixed-points@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/functional@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/instruction-plans@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/instructions@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/keys@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/assertions': 7.1.0(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/kit@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)': + dependencies: + '@solana/accounts': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/instruction-plans': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/offchain-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/plugin-core': 7.1.0(typescript@5.9.3) + '@solana/plugin-interfaces': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/program-client-core': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/programs': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + '@solana/rpc': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-api': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-parsed-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-subscriptions': 7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/signers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/subscribable': 7.1.0(typescript@5.9.3) + '@solana/sysvars': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-confirmation': 7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) + '@solana/transaction-introspection': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - bufferutil + - fastestsmallesttextencoderdecoder + - utf-8-validate + + '@solana/nominal-types@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/offchain-messages@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + '@solana/options@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': dependencies: '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3) @@ -1587,6 +1806,225 @@ snapshots: transitivePeerDependencies: - fastestsmallesttextencoderdecoder + '@solana/options@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/plugin-core@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/plugin-interfaces@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/accounts': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/instruction-plans': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-subscriptions-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/signers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/program-client-core@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/accounts': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/instruction-plans': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/plugin-interfaces': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-api': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/signers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/programs@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/promises@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-api@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-parsed-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-transformers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc-parsed-types@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-spec-types@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-spec@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/subscribable': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-subscriptions-api@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-subscriptions-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-transformers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc-subscriptions-channel-websocket@7.1.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/rpc-subscriptions-spec': 7.1.0(typescript@5.9.3) + '@solana/subscribable': 7.1.0(typescript@5.9.3) + ws: 8.21.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@solana/rpc-subscriptions-spec@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/subscribable': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-subscriptions@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/fast-stable-stringify': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-subscriptions-api': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-subscriptions-channel-websocket': 7.1.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) + '@solana/rpc-subscriptions-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-transformers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/subscribable': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - bufferutil + - fastestsmallesttextencoderdecoder + - utf-8-validate + + '@solana/rpc-transformers@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc-transport-http@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + undici-types: 8.10.0 + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-types@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/fixed-points': 7.1.0(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/fast-stable-stringify': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/rpc-api': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-transformers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-transport-http': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/signers@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + '@solana/offchain-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': dependencies: '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) @@ -1609,6 +2047,95 @@ snapshots: - typescript - utf-8-validate + '@solana/subscribable@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/sysvars@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/accounts': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/transaction-confirmation@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + '@solana/rpc': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-subscriptions': 7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - bufferutil + - fastestsmallesttextencoderdecoder + - utf-8-validate + + '@solana/transaction-introspection@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/transaction-messages@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/transactions@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + '@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)': dependencies: '@babel/runtime': 7.27.1 @@ -1669,8 +2196,6 @@ snapshots: dependencies: '@types/node': 26.1.2 - aes-js@3.0.0: {} - agentkeepalive@4.6.0: dependencies: humanize-ms: 1.2.1 @@ -1709,8 +2234,6 @@ snapshots: base64-js@1.5.1: {} - bech32@1.1.4: {} - bigint-buffer@1.1.5: dependencies: bindings: 1.5.0 @@ -1721,8 +2244,6 @@ snapshots: dependencies: file-uri-to-path: 1.0.0 - bn.js@4.12.2: {} - bn.js@5.2.2: {} borsh@0.7.0: @@ -1735,8 +2256,6 @@ snapshots: dependencies: balanced-match: 1.0.2 - brorand@1.1.0: {} - browser-stdout@1.3.1: {} bs58@4.0.1: @@ -1766,6 +2285,8 @@ snapshots: chalk@5.4.1: {} + chalk@5.6.2: {} + chokidar@4.0.3: dependencies: readdirp: 4.1.2 @@ -1786,6 +2307,8 @@ snapshots: commander@13.1.0: {} + commander@15.0.0: {} + commander@2.20.3: {} cross-fetch@3.2.0: @@ -1814,16 +2337,6 @@ snapshots: eastasianwidth@0.2.0: {} - elliptic@6.6.1: - dependencies: - bn.js: 4.12.2 - brorand: 1.1.0 - hash.js: 1.1.7 - hmac-drbg: 1.0.1 - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - minimalistic-crypto-utils: 1.0.1 - emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -1867,42 +2380,6 @@ snapshots: escape-string-regexp@4.0.0: {} - ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10): - dependencies: - '@ethersproject/abi': 5.8.0 - '@ethersproject/abstract-provider': 5.8.0 - '@ethersproject/abstract-signer': 5.8.0 - '@ethersproject/address': 5.8.0 - '@ethersproject/base64': 5.8.0 - '@ethersproject/basex': 5.8.0 - '@ethersproject/bignumber': 5.8.0 - '@ethersproject/bytes': 5.8.0 - '@ethersproject/constants': 5.8.0 - '@ethersproject/contracts': 5.8.0 - '@ethersproject/hash': 5.8.0 - '@ethersproject/hdnode': 5.8.0 - '@ethersproject/json-wallets': 5.8.0 - '@ethersproject/keccak256': 5.8.0 - '@ethersproject/logger': 5.8.0 - '@ethersproject/networks': 5.8.0 - '@ethersproject/pbkdf2': 5.8.0 - '@ethersproject/properties': 5.8.0 - '@ethersproject/providers': 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) - '@ethersproject/random': 5.8.0 - '@ethersproject/rlp': 5.8.0 - '@ethersproject/sha2': 5.8.0 - '@ethersproject/signing-key': 5.8.0 - '@ethersproject/solidity': 5.8.0 - '@ethersproject/strings': 5.8.0 - '@ethersproject/transactions': 5.8.0 - '@ethersproject/units': 5.8.0 - '@ethersproject/wallet': 5.8.0 - '@ethersproject/web': 5.8.0 - '@ethersproject/wordlists': 5.8.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - eventemitter3@4.0.7: {} eventemitter3@5.0.1: {} @@ -1943,27 +2420,14 @@ snapshots: has-flag@4.0.0: {} - hash.js@1.1.7: - dependencies: - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - he@1.2.0: {} - hmac-drbg@1.0.1: - dependencies: - hash.js: 1.1.7 - minimalistic-assert: 1.0.1 - minimalistic-crypto-utils: 1.0.1 - humanize-ms@1.2.1: dependencies: ms: 2.1.3 ieee754@1.2.1: {} - inherits@2.0.4: {} - is-fullwidth-code-point@3.0.0: {} is-path-inside@3.0.3: {} @@ -2002,8 +2466,6 @@ snapshots: - bufferutil - utf-8-validate - js-sha3@0.8.0: {} - js-yaml@4.1.0: dependencies: argparse: 2.0.1 @@ -2056,10 +2518,6 @@ snapshots: lru-cache@10.4.3: {} - minimalistic-assert@1.0.1: {} - - minimalistic-crypto-utils@1.0.1: {} - minimatch@9.0.9: dependencies: brace-expansion: 2.1.3 @@ -2147,8 +2605,6 @@ snapshots: safe-buffer@5.2.1: {} - scrypt-js@3.0.1: {} - serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 @@ -2217,6 +2673,8 @@ snapshots: typescript@5.9.3: {} + undici-types@8.10.0: {} + undici-types@8.3.0: {} utf-8-validate@5.0.10: @@ -2256,12 +2714,12 @@ snapshots: bufferutil: 4.0.9 utf-8-validate: 5.0.10 - ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10): + ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10): optionalDependencies: bufferutil: 4.0.9 utf-8-validate: 5.0.10 - ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10): + ws@8.21.3(bufferutil@4.0.9)(utf-8-validate@5.0.10): optionalDependencies: bufferutil: 4.0.9 utf-8-validate: 5.0.10 diff --git a/tokens/external-delegate-token-master/anchor/tests/litesvm.test.ts b/tokens/external-delegate-token-master/anchor/tests/litesvm.test.ts index 8f4906ac2..3a85f7b13 100644 --- a/tokens/external-delegate-token-master/anchor/tests/litesvm.test.ts +++ b/tokens/external-delegate-token-master/anchor/tests/litesvm.test.ts @@ -1,6 +1,5 @@ import * as anchor from '@anchor-lang/core'; import { - AccountLayout, createAssociatedTokenAccountInstruction, createInitializeMint2Instruction, createMintToInstruction, @@ -9,8 +8,8 @@ import { TOKEN_PROGRAM_ID, } from '@solana/spl-token'; import { Keypair, LAMPORTS_PER_SOL, PublicKey, SystemProgram, Transaction } from '@solana/web3.js'; +import { getTokenDecoder } from '@solana-program/token'; import { LiteSVMProvider } from 'anchor-litesvm'; -import BN from 'bn.js'; import { expect } from 'chai'; import { LiteSVM } from 'litesvm'; import IDL from '../target/idl/external_delegate_token_master.json'; @@ -88,7 +87,7 @@ describe('External Delegate Token Master Tests', () => { await provider.sendAndConfirm!(setupTx, [mintKeypair, authority]); await program.methods - .authorityTransfer(new BN(250)) + .authorityTransfer(new anchor.BN(250)) .accountsPartial({ userAccount: userAccount.publicKey, authority: authority.publicKey, @@ -100,10 +99,10 @@ describe('External Delegate Token Master Tests', () => { .signers([authority]) .rpc(); - const recipientBalance = AccountLayout.decode(client.getAccount(recipientTokenAccount)!.data).amount; + const recipientBalance = getTokenDecoder().decode(client.getAccount(recipientTokenAccount)!.data).amount; expect(recipientBalance).to.equal(BigInt(250)); - const userBalance = AccountLayout.decode(client.getAccount(userTokenAccount)!.data).amount; + const userBalance = getTokenDecoder().decode(client.getAccount(userTokenAccount)!.data).amount; expect(userBalance).to.equal(BigInt(1_000_000_000 - 250)); }); }); diff --git a/tokens/nft-operations/anchor/package.json b/tokens/nft-operations/anchor/package.json index a23a3b02e..a5635ce2b 100644 --- a/tokens/nft-operations/anchor/package.json +++ b/tokens/nft-operations/anchor/package.json @@ -12,15 +12,10 @@ }, "dependencies": { "@anchor-lang/core": "1.0.0-rc.5", - "@metaplex-foundation/mpl-token-metadata": "^3.1.2", - "@metaplex-foundation/umi": "^0.9.0", "@solana/spl-token": "^0.4.6", - "axios": "^1.6.7", - "node-fetch": "^3.3.2", "@solana/web3.js": "^1.98.4" }, "devDependencies": { - "@types/bn.js": "^5.1.0", "@types/chai": "^5.2.3", "@types/mocha": "^10.0.10", "@types/node": "^26.1.0", diff --git a/tokens/nft-operations/anchor/pnpm-lock.yaml b/tokens/nft-operations/anchor/pnpm-lock.yaml index 5a581d4bf..c4eb4cbb7 100644 --- a/tokens/nft-operations/anchor/pnpm-lock.yaml +++ b/tokens/nft-operations/anchor/pnpm-lock.yaml @@ -14,28 +14,13 @@ importers: '@anchor-lang/core': specifier: 1.0.0-rc.5 version: 1.0.0-rc.5(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) - '@metaplex-foundation/mpl-token-metadata': - specifier: ^3.1.2 - version: 3.2.1(@metaplex-foundation/umi@0.9.2) - '@metaplex-foundation/umi': - specifier: ^0.9.0 - version: 0.9.2 '@solana/spl-token': specifier: ^0.4.6 version: 0.4.8(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) '@solana/web3.js': specifier: ^1.98.4 version: 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) - axios: - specifier: ^1.6.7 - version: 1.7.2 - node-fetch: - specifier: ^3.3.2 - version: 3.3.2 devDependencies: - '@types/bn.js': - specifier: ^5.1.0 - version: 5.1.5 '@types/chai': specifier: ^5.2.3 version: 5.2.3 @@ -267,37 +252,6 @@ packages: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - '@metaplex-foundation/mpl-token-metadata@3.2.1': - resolution: {integrity: sha512-26W1NhQwDWmLOg/pBRYut7x/vEs/5kFS2sWVEY5/X0f2jJOLhnd4NaZQcq+5u+XZsXvm1jq2AtrRGPNK43oqWQ==} - peerDependencies: - '@metaplex-foundation/umi': '>= 0.8.2 < 1' - - '@metaplex-foundation/mpl-toolbox@0.9.4': - resolution: {integrity: sha512-fd6JxfoLbj/MM8FG2x91KYVy1U6AjBQw4qjt7+Da3trzQaWnSaYHDcYRG/53xqfvZ9qofY1T2t53GXPlD87lnQ==} - peerDependencies: - '@metaplex-foundation/umi': '>= 0.8.2 < 1' - - '@metaplex-foundation/umi-options@0.8.9': - resolution: {integrity: sha512-jSQ61sZMPSAk/TXn8v8fPqtz3x8d0/blVZXLLbpVbo2/T5XobiI6/MfmlUosAjAUaQl6bHRF8aIIqZEFkJiy4A==} - - '@metaplex-foundation/umi-public-keys@0.8.9': - resolution: {integrity: sha512-CxMzN7dgVGOq9OcNCJe2casKUpJ3RmTVoOvDFyeoTQuK+vkZ1YSSahbqC1iGuHEtKTLSjtWjKvUU6O7zWFTw3Q==} - - '@metaplex-foundation/umi-serializers-core@0.8.9': - resolution: {integrity: sha512-WT82tkiYJ0Qmscp7uTj1Hz6aWQPETwaKLAENAUN5DeWghkuBKtuxyBKVvEOuoXerJSdhiAk0e8DWA4cxcTTQ/w==} - - '@metaplex-foundation/umi-serializers-encodings@0.8.9': - resolution: {integrity: sha512-N3VWLDTJ0bzzMKcJDL08U3FaqRmwlN79FyE4BHj6bbAaJ9LEHjDQ9RJijZyWqTm0jE7I750fU7Ow5EZL38Xi6Q==} - - '@metaplex-foundation/umi-serializers-numbers@0.8.9': - resolution: {integrity: sha512-NtBf1fnVNQJHFQjLFzRu2i9GGnigb9hOm/Gfrk628d0q0tRJB7BOM3bs5C61VAs7kJs4yd+pDNVAERJkknQ7Lg==} - - '@metaplex-foundation/umi-serializers@0.9.0': - resolution: {integrity: sha512-hAOW9Djl4w4ioKeR4erDZl5IG4iJdP0xA19ZomdaCbMhYAAmG/FEs5khh0uT2mq53/MnzWcXSUPoO8WBN4Q+Vg==} - - '@metaplex-foundation/umi@0.9.2': - resolution: {integrity: sha512-9i4Acm4pruQfJcpRrc2EauPBwkfDN0I9QTvJyZocIlKgoZwD6A6wH0PViH1AjOVG5CQCd1YI3tJd5XjYE1ElBw==} - '@noble/curves@1.9.7': resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==} engines: {node: ^14.21.3 || >=16} @@ -426,9 +380,6 @@ packages: '@swc/helpers@0.5.17': resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} - '@types/bn.js@5.1.5': - resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} - '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -493,12 +444,6 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - axios@1.7.2: - resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} - balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -579,10 +524,6 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - commander@12.1.0: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} @@ -601,10 +542,6 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - data-uri-to-buffer@4.0.1: - resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} - engines: {node: '>= 12'} - debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -622,10 +559,6 @@ packages: resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} engines: {node: '>=10'} - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - diff@7.0.0: resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} engines: {node: '>=0.3.1'} @@ -674,10 +607,6 @@ packages: fastestsmallesttextencoderdecoder@1.0.22: resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==} - fetch-blob@3.2.0: - resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} - engines: {node: ^12.20 || >= 14.13} - file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} @@ -689,27 +618,10 @@ packages: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true - follow-redirects@1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - foreground-child@3.3.1: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} - form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} - - formdata-polyfill@4.0.10: - resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} - engines: {node: '>=12.20.0'} - fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -832,14 +744,6 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - minimatch@9.0.9: resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} engines: {node: '>=16 || 14 >=14.17'} @@ -856,10 +760,6 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} @@ -869,10 +769,6 @@ packages: encoding: optional: true - node-fetch@3.3.2: - resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - node-gyp-build@4.8.4: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true @@ -911,9 +807,6 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -1021,10 +914,6 @@ packages: deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true - web-streams-polyfill@3.3.3: - resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} - engines: {node: '>= 8'} - webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -1247,45 +1136,6 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@metaplex-foundation/mpl-token-metadata@3.2.1(@metaplex-foundation/umi@0.9.2)': - dependencies: - '@metaplex-foundation/mpl-toolbox': 0.9.4(@metaplex-foundation/umi@0.9.2) - '@metaplex-foundation/umi': 0.9.2 - - '@metaplex-foundation/mpl-toolbox@0.9.4(@metaplex-foundation/umi@0.9.2)': - dependencies: - '@metaplex-foundation/umi': 0.9.2 - - '@metaplex-foundation/umi-options@0.8.9': {} - - '@metaplex-foundation/umi-public-keys@0.8.9': - dependencies: - '@metaplex-foundation/umi-serializers-encodings': 0.8.9 - - '@metaplex-foundation/umi-serializers-core@0.8.9': {} - - '@metaplex-foundation/umi-serializers-encodings@0.8.9': - dependencies: - '@metaplex-foundation/umi-serializers-core': 0.8.9 - - '@metaplex-foundation/umi-serializers-numbers@0.8.9': - dependencies: - '@metaplex-foundation/umi-serializers-core': 0.8.9 - - '@metaplex-foundation/umi-serializers@0.9.0': - dependencies: - '@metaplex-foundation/umi-options': 0.8.9 - '@metaplex-foundation/umi-public-keys': 0.8.9 - '@metaplex-foundation/umi-serializers-core': 0.8.9 - '@metaplex-foundation/umi-serializers-encodings': 0.8.9 - '@metaplex-foundation/umi-serializers-numbers': 0.8.9 - - '@metaplex-foundation/umi@0.9.2': - dependencies: - '@metaplex-foundation/umi-options': 0.8.9 - '@metaplex-foundation/umi-public-keys': 0.8.9 - '@metaplex-foundation/umi-serializers': 0.9.0 - '@noble/curves@1.9.7': dependencies: '@noble/hashes': 1.8.0 @@ -1487,10 +1337,6 @@ snapshots: dependencies: tslib: 2.8.1 - '@types/bn.js@5.1.5': - dependencies: - '@types/node': 26.1.2 - '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 @@ -1561,16 +1407,6 @@ snapshots: assertion-error@2.0.1: {} - asynckit@0.4.0: {} - - axios@1.7.2: - dependencies: - follow-redirects: 1.15.6 - form-data: 4.0.0 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - balanced-match@1.0.2: {} base-x@3.0.10: @@ -1648,10 +1484,6 @@ snapshots: color-name@1.1.4: {} - combined-stream@1.0.8: - dependencies: - delayed-stream: 1.0.0 - commander@12.1.0: {} commander@14.0.1: {} @@ -1670,8 +1502,6 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - data-uri-to-buffer@4.0.1: {} - debug@4.4.3(supports-color@8.1.1): dependencies: ms: 2.1.3 @@ -1682,8 +1512,6 @@ snapshots: delay@5.0.0: {} - delayed-stream@1.0.0: {} - diff@7.0.0: {} eastasianwidth@0.2.0: {} @@ -1741,11 +1569,6 @@ snapshots: fastestsmallesttextencoderdecoder@1.0.22: {} - fetch-blob@3.2.0: - dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 3.3.3 - file-uri-to-path@1.0.0: {} find-up@5.0.0: @@ -1755,23 +1578,11 @@ snapshots: flat@5.0.2: {} - follow-redirects@1.15.6: {} - foreground-child@3.3.1: dependencies: cross-spawn: 7.0.6 signal-exit: 4.1.0 - form-data@4.0.0: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - - formdata-polyfill@4.0.10: - dependencies: - fetch-blob: 3.2.0 - fsevents@2.3.3: optional: true @@ -1886,12 +1697,6 @@ snapshots: lru-cache@10.4.3: {} - mime-db@1.52.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - minimatch@9.0.9: dependencies: brace-expansion: 2.1.3 @@ -1924,18 +1729,10 @@ snapshots: ms@2.1.3: {} - node-domexception@1.0.0: {} - node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 - node-fetch@3.3.2: - dependencies: - data-uri-to-buffer: 4.0.1 - fetch-blob: 3.2.0 - formdata-polyfill: 4.0.10 - node-gyp-build@4.8.4: optional: true @@ -1964,8 +1761,6 @@ snapshots: prettier@2.8.8: {} - proxy-from-env@1.1.0: {} - randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 @@ -2066,8 +1861,6 @@ snapshots: uuid@8.3.2: {} - web-streams-polyfill@3.3.3: {} - webidl-conversions@3.0.1: {} whatwg-url@5.0.0: diff --git a/tokens/pda-mint-authority/anchor/tests/litesvm.test.ts b/tokens/pda-mint-authority/anchor/tests/litesvm.test.ts index c13015159..0896f726f 100644 --- a/tokens/pda-mint-authority/anchor/tests/litesvm.test.ts +++ b/tokens/pda-mint-authority/anchor/tests/litesvm.test.ts @@ -2,7 +2,6 @@ import * as anchor from '@anchor-lang/core'; import { getAssociatedTokenAddressSync } from '@solana/spl-token'; import { PublicKey } from '@solana/web3.js'; import { LiteSVMProvider } from 'anchor-litesvm'; -import { BN } from 'bn.js'; import { LiteSVM } from 'litesvm'; import IDL from '../target/idl/token_minter.json'; import type { TokenMinter } from '../target/types/token_minter'; @@ -47,7 +46,7 @@ describe('NFT Minter', () => { const associatedTokenAccountAddress = getAssociatedTokenAddressSync(mintPDA, payer.publicKey); // Amount of tokens to mint. - const amount = new BN(100); + const amount = new anchor.BN(100); const transactionSignature = await program.methods .mintToken(amount) diff --git a/tokens/pda-mint-authority/anchor/tests/test.ts b/tokens/pda-mint-authority/anchor/tests/test.ts index ae26e9096..141b79dae 100644 --- a/tokens/pda-mint-authority/anchor/tests/test.ts +++ b/tokens/pda-mint-authority/anchor/tests/test.ts @@ -1,7 +1,6 @@ import * as anchor from '@anchor-lang/core'; import { getAssociatedTokenAddressSync } from '@solana/spl-token'; import { PublicKey } from '@solana/web3.js'; -import { BN } from 'bn.js'; import type { TokenMinter } from '../target/types/token_minter'; describe('NFT Minter', () => { @@ -38,7 +37,7 @@ describe('NFT Minter', () => { const associatedTokenAccountAddress = getAssociatedTokenAddressSync(mintPDA, payer.publicKey); // Amount of tokens to mint. - const amount = new BN(100); + const amount = new anchor.BN(100); const transactionSignature = await program.methods .mintToken(amount) diff --git a/tokens/pda-mint-authority/native/package.json b/tokens/pda-mint-authority/native/package.json index 7816436f4..2fce1b1d7 100644 --- a/tokens/pda-mint-authority/native/package.json +++ b/tokens/pda-mint-authority/native/package.json @@ -9,8 +9,7 @@ "dependencies": { "@solana-program/system": "^0.13.0", "@solana-program/token": "^0.15.0", - "@solana/kit": "^7.0.0", - "borsh": "^2.0.0" + "@solana/kit": "^7.0.0" }, "devDependencies": { "@types/chai": "^5.2.3", diff --git a/tokens/pda-mint-authority/native/pnpm-lock.yaml b/tokens/pda-mint-authority/native/pnpm-lock.yaml index ae89b471b..32b2268cc 100644 --- a/tokens/pda-mint-authority/native/pnpm-lock.yaml +++ b/tokens/pda-mint-authority/native/pnpm-lock.yaml @@ -17,9 +17,6 @@ importers: '@solana/kit': specifier: ^7.0.0 version: 7.0.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6) - borsh: - specifier: ^2.0.0 - version: 2.0.0 devDependencies: '@types/chai': specifier: ^5.2.3 @@ -1048,9 +1045,6 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - borsh@2.0.0: - resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==} - brace-expansion@2.1.3: resolution: {integrity: sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A==} @@ -2534,8 +2528,6 @@ snapshots: balanced-match@1.0.2: {} - borsh@2.0.0: {} - brace-expansion@2.1.3: dependencies: balanced-match: 1.0.2 diff --git a/tokens/pda-mint-authority/native/tests/instructions.ts b/tokens/pda-mint-authority/native/tests/instructions.ts deleted file mode 100644 index 01f7889aa..000000000 --- a/tokens/pda-mint-authority/native/tests/instructions.ts +++ /dev/null @@ -1,24 +0,0 @@ -import * as borsh from 'borsh'; - -export enum NftMinterInstruction { - Init = 0, - Create = 1, - Mint = 2, -} - -export const InitArgsSchema = { struct: { instruction: 'u8' } }; - -export const CreateTokenArgsSchema = { - struct: { - instruction: 'u8', - nft_title: 'string', - nft_symbol: 'string', - nft_uri: 'string', - }, -}; - -export const MintToArgsSchema = { struct: { instruction: 'u8' } }; - -export function borshSerialize(schema: borsh.Schema, data: object): Buffer { - return Buffer.from(borsh.serialize(schema, data)); -} diff --git a/tokens/pda-mint-authority/native/tests/test.ts b/tokens/pda-mint-authority/native/tests/test.ts index 991c753a8..4a03a53a8 100644 --- a/tokens/pda-mint-authority/native/tests/test.ts +++ b/tokens/pda-mint-authority/native/tests/test.ts @@ -1,6 +1,4 @@ import { - AccountRole, - address, type Address, appendTransactionMessageInstruction, createTransactionMessage, @@ -15,26 +13,15 @@ import { signTransactionMessageWithSigners, unwrapOption, } from '@solana/kit'; -import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; -import { - ASSOCIATED_TOKEN_PROGRAM_ADDRESS, - findAssociatedTokenPda, - getMintDecoder, - getTokenDecoder, - TOKEN_PROGRAM_ADDRESS, -} from '@solana-program/token'; +import { findAssociatedTokenPda, getMintDecoder, getTokenDecoder, TOKEN_PROGRAM_ADDRESS } from '@solana-program/token'; import { assert } from 'chai'; import { FailedTransactionMetadata, LiteSVM } from 'litesvm'; import { - borshSerialize, - CreateTokenArgsSchema, - InitArgsSchema, - MintToArgsSchema, - NftMinterInstruction, -} from './instructions'; - -const TOKEN_METADATA_PROGRAM_ID = address('metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s'); -const SYSVAR_RENT_ADDRESS = address('SysvarRent111111111111111111111111111111111'); + createCreateInstruction, + createInitInstruction, + createMintInstruction, + TOKEN_METADATA_PROGRAM_ADDRESS, +} from '../ts'; const addressEncoder = getAddressEncoder(); @@ -51,7 +38,7 @@ describe('NFT Minter', () => { before(async () => { programId = (await generateKeyPairSigner()).address; svm.addProgramFromFile(programId, 'tests/fixtures/pda_mint_authority_native_program.so'); - svm.addProgramFromFile(TOKEN_METADATA_PROGRAM_ID, 'tests/fixtures/token_metadata.so'); + svm.addProgramFromFile(TOKEN_METADATA_PROGRAM_ADDRESS, 'tests/fixtures/token_metadata.so'); payer = await generateKeyPairSigner(); svm.airdrop(payer.address, lamports(10_000_000_000n)); @@ -64,19 +51,19 @@ describe('NFT Minter', () => { mintKeypair = await generateKeyPairSigner(); [metadataAddress] = await getProgramDerivedAddress({ - programAddress: TOKEN_METADATA_PROGRAM_ID, + programAddress: TOKEN_METADATA_PROGRAM_ADDRESS, seeds: [ 'metadata', - addressEncoder.encode(TOKEN_METADATA_PROGRAM_ID), + addressEncoder.encode(TOKEN_METADATA_PROGRAM_ADDRESS), addressEncoder.encode(mintKeypair.address), ], }); [editionAddress] = await getProgramDerivedAddress({ - programAddress: TOKEN_METADATA_PROGRAM_ID, + programAddress: TOKEN_METADATA_PROGRAM_ADDRESS, seeds: [ 'metadata', - addressEncoder.encode(TOKEN_METADATA_PROGRAM_ID), + addressEncoder.encode(TOKEN_METADATA_PROGRAM_ADDRESS), addressEncoder.encode(mintKeypair.address), 'edition', ], @@ -96,19 +83,7 @@ describe('NFT Minter', () => { } it('Init Mint Authority PDA', async () => { - const instructionData = borshSerialize(InitArgsSchema, { - instruction: NftMinterInstruction.Init, - }); - - const ix = { - programAddress: programId, - accounts: [ - { address: mintAuthorityAddress, role: AccountRole.WRITABLE }, - { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, - ], - data: new Uint8Array(instructionData), - }; + const ix = createInitInstruction(mintAuthorityAddress, payer, programId); await sendTransaction(ix); @@ -119,28 +94,16 @@ describe('NFT Minter', () => { }); it('Create an NFT!', async () => { - const instructionData = borshSerialize(CreateTokenArgsSchema, { - instruction: NftMinterInstruction.Create, - nft_title: 'Homer NFT', - nft_symbol: 'HOMR', - nft_uri: - 'https://raw.githubusercontent.com/solana-developers/program-examples/new-examples/tokens/tokens/.assets/nft.json', - }); - - const ix = { - programAddress: programId, - accounts: [ - { address: mintKeypair.address, role: AccountRole.WRITABLE_SIGNER, signer: mintKeypair }, // Mint account - { address: mintAuthorityAddress, role: AccountRole.WRITABLE }, // Mint authority account - { address: metadataAddress, role: AccountRole.WRITABLE }, // Metadata account - { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, // Payer - { address: SYSVAR_RENT_ADDRESS, role: AccountRole.READONLY }, // Rent account - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, // System program - { address: TOKEN_PROGRAM_ADDRESS, role: AccountRole.READONLY }, // Token program - { address: TOKEN_METADATA_PROGRAM_ID, role: AccountRole.READONLY }, // Token metadata program - ], - data: new Uint8Array(instructionData), - }; + const ix = createCreateInstruction( + mintKeypair, + mintAuthorityAddress, + metadataAddress, + payer, + programId, + 'Homer NFT', + 'HOMR', + 'https://raw.githubusercontent.com/solana-developers/program-examples/new-examples/tokens/tokens/.assets/nft.json', + ); await sendTransaction(ix); @@ -154,7 +117,7 @@ describe('NFT Minter', () => { const metadataInfo = svm.getAccount(metadataAddress); assert(metadataInfo.exists, 'metadata account not created'); - assert(metadataInfo.programAddress === TOKEN_METADATA_PROGRAM_ID, 'metadata account has wrong owner'); + assert(metadataInfo.programAddress === TOKEN_METADATA_PROGRAM_ADDRESS, 'metadata account has wrong owner'); }); it('Mint the NFT to your wallet!', async () => { @@ -164,27 +127,15 @@ describe('NFT Minter', () => { tokenProgram: TOKEN_PROGRAM_ADDRESS, }); - const instructionData = borshSerialize(MintToArgsSchema, { - instruction: NftMinterInstruction.Mint, - }); - - const ix = { - programAddress: programId, - accounts: [ - { address: mintKeypair.address, role: AccountRole.WRITABLE }, // Mint account - { address: metadataAddress, role: AccountRole.WRITABLE }, // Metadata account - { address: editionAddress, role: AccountRole.WRITABLE }, // Edition account - { address: mintAuthorityAddress, role: AccountRole.WRITABLE }, // Mint authority account - { address: associatedTokenAccountAddress, role: AccountRole.WRITABLE }, // ATA - { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, // Payer - { address: SYSVAR_RENT_ADDRESS, role: AccountRole.READONLY }, // Rent account - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, // System program - { address: TOKEN_PROGRAM_ADDRESS, role: AccountRole.READONLY }, // Token program - { address: ASSOCIATED_TOKEN_PROGRAM_ADDRESS, role: AccountRole.READONLY }, // Associated token program - { address: TOKEN_METADATA_PROGRAM_ID, role: AccountRole.READONLY }, // Token metadata program - ], - data: new Uint8Array(instructionData), - }; + const ix = createMintInstruction( + mintKeypair.address, + metadataAddress, + editionAddress, + mintAuthorityAddress, + associatedTokenAccountAddress, + payer, + programId, + ); await sendTransaction(ix); @@ -195,6 +146,6 @@ describe('NFT Minter', () => { const editionInfo = svm.getAccount(editionAddress); assert(editionInfo.exists, 'edition account not created'); - assert(editionInfo.programAddress === TOKEN_METADATA_PROGRAM_ID, 'edition account has wrong owner'); + assert(editionInfo.programAddress === TOKEN_METADATA_PROGRAM_ADDRESS, 'edition account has wrong owner'); }); }); diff --git a/tokens/pda-mint-authority/native/ts/constants.ts b/tokens/pda-mint-authority/native/ts/constants.ts new file mode 100644 index 000000000..fc2601414 --- /dev/null +++ b/tokens/pda-mint-authority/native/ts/constants.ts @@ -0,0 +1,4 @@ +import { address } from '@solana/kit'; + +export const TOKEN_METADATA_PROGRAM_ADDRESS = address('metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s'); +export const SYSVAR_RENT_ADDRESS = address('SysvarRent111111111111111111111111111111111'); diff --git a/tokens/pda-mint-authority/native/ts/index.ts b/tokens/pda-mint-authority/native/ts/index.ts new file mode 100644 index 000000000..b4b5e9f91 --- /dev/null +++ b/tokens/pda-mint-authority/native/ts/index.ts @@ -0,0 +1,2 @@ +export * from './constants'; +export * from './instructions'; diff --git a/tokens/pda-mint-authority/native/ts/instructions/create.ts b/tokens/pda-mint-authority/native/ts/instructions/create.ts new file mode 100644 index 000000000..dfc5b6c11 --- /dev/null +++ b/tokens/pda-mint-authority/native/ts/instructions/create.ts @@ -0,0 +1,53 @@ +import { + AccountRole, + addEncoderSizePrefix, + type Address, + getStructEncoder, + getU8Encoder, + getU32Encoder, + getUtf8Encoder, + type TransactionSigner, +} from '@solana/kit'; +import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; +import { TOKEN_PROGRAM_ADDRESS } from '@solana-program/token'; +import { MyInstruction } from '.'; +import { SYSVAR_RENT_ADDRESS, TOKEN_METADATA_PROGRAM_ADDRESS } from '../constants'; + +// Instruction data layout, matching the program's `MyInstruction::Create(CreateTokenArgs)` variant. +export const createEncoder = getStructEncoder([ + ['instruction', getU8Encoder()], + ['nft_title', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], + ['nft_symbol', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], + ['nft_uri', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], +]); + +export function createCreateInstruction( + mint: TransactionSigner, + mintAuthority: Address, + metadata: Address, + payer: TransactionSigner, + programId: Address, + nftTitle: string, + nftSymbol: string, + nftUri: string, +) { + return { + programAddress: programId, + accounts: [ + { address: mint.address, role: AccountRole.WRITABLE_SIGNER, signer: mint }, + { address: mintAuthority, role: AccountRole.WRITABLE }, + { address: metadata, role: AccountRole.WRITABLE }, + { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, + { address: SYSVAR_RENT_ADDRESS, role: AccountRole.READONLY }, + { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + { address: TOKEN_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + { address: TOKEN_METADATA_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + ], + data: createEncoder.encode({ + instruction: MyInstruction.Create, + nft_title: nftTitle, + nft_symbol: nftSymbol, + nft_uri: nftUri, + }), + }; +} diff --git a/tokens/pda-mint-authority/native/ts/instructions/index.ts b/tokens/pda-mint-authority/native/ts/instructions/index.ts new file mode 100644 index 000000000..18fcfc6f3 --- /dev/null +++ b/tokens/pda-mint-authority/native/ts/instructions/index.ts @@ -0,0 +1,11 @@ +export * from './create'; +export * from './init'; +export * from './mint'; + +export const MyInstruction = { + Init: 0, + Create: 1, + Mint: 2, +} as const; + +export type MyInstruction = (typeof MyInstruction)[keyof typeof MyInstruction]; diff --git a/tokens/pda-mint-authority/native/ts/instructions/init.ts b/tokens/pda-mint-authority/native/ts/instructions/init.ts new file mode 100644 index 000000000..b5fc5836e --- /dev/null +++ b/tokens/pda-mint-authority/native/ts/instructions/init.ts @@ -0,0 +1,18 @@ +import { AccountRole, type Address, getStructEncoder, getU8Encoder, type TransactionSigner } from '@solana/kit'; +import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; +import { MyInstruction } from '.'; + +// Instruction data layout, matching the program's `MyInstruction::Init` variant. +export const initEncoder = getStructEncoder([['instruction', getU8Encoder()]]); + +export function createInitInstruction(mintAuthority: Address, payer: TransactionSigner, programId: Address) { + return { + programAddress: programId, + accounts: [ + { address: mintAuthority, role: AccountRole.WRITABLE }, + { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, + { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + ], + data: initEncoder.encode({ instruction: MyInstruction.Init }), + }; +} diff --git a/tokens/pda-mint-authority/native/ts/instructions/mint.ts b/tokens/pda-mint-authority/native/ts/instructions/mint.ts new file mode 100644 index 000000000..b73361538 --- /dev/null +++ b/tokens/pda-mint-authority/native/ts/instructions/mint.ts @@ -0,0 +1,36 @@ +import { AccountRole, type Address, getStructEncoder, getU8Encoder, type TransactionSigner } from '@solana/kit'; +import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; +import { ASSOCIATED_TOKEN_PROGRAM_ADDRESS, TOKEN_PROGRAM_ADDRESS } from '@solana-program/token'; +import { MyInstruction } from '.'; +import { SYSVAR_RENT_ADDRESS, TOKEN_METADATA_PROGRAM_ADDRESS } from '../constants'; + +// Instruction data layout, matching the program's `MyInstruction::Mint` variant. +export const mintEncoder = getStructEncoder([['instruction', getU8Encoder()]]); + +export function createMintInstruction( + mint: Address, + metadata: Address, + edition: Address, + mintAuthority: Address, + associatedTokenAccount: Address, + payer: TransactionSigner, + programId: Address, +) { + return { + programAddress: programId, + accounts: [ + { address: mint, role: AccountRole.WRITABLE }, + { address: metadata, role: AccountRole.WRITABLE }, + { address: edition, role: AccountRole.WRITABLE }, + { address: mintAuthority, role: AccountRole.WRITABLE }, + { address: associatedTokenAccount, role: AccountRole.WRITABLE }, + { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, + { address: SYSVAR_RENT_ADDRESS, role: AccountRole.READONLY }, + { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + { address: TOKEN_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + { address: ASSOCIATED_TOKEN_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + { address: TOKEN_METADATA_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + ], + data: mintEncoder.encode({ instruction: MyInstruction.Mint }), + }; +} diff --git a/tokens/token-2022/basics/anchor/tests/anchor.ts b/tokens/token-2022/basics/anchor/tests/anchor.ts index cee9fb29b..e37d86dc2 100644 --- a/tokens/token-2022/basics/anchor/tests/anchor.ts +++ b/tokens/token-2022/basics/anchor/tests/anchor.ts @@ -1,7 +1,6 @@ import type { Program } from '@anchor-lang/core'; import * as anchor from '@anchor-lang/core'; import { sendAndConfirmTransaction } from '@solana/web3.js'; -import BN from 'bn.js'; import type { Anchor } from '../target/types/anchor.ts'; describe('anchor', () => { @@ -99,7 +98,7 @@ describe('anchor', () => { const tx = new anchor.web3.Transaction(); const ix = await program.methods - .mintToken(new BN(200000000)) + .mintToken(new anchor.BN(200000000)) .accountsPartial({ mint: mint, signer: wallet.publicKey, @@ -119,7 +118,7 @@ describe('anchor', () => { const tx = new anchor.web3.Transaction(); const ix = await program.methods - .transferToken(new BN(100)) + .transferToken(new anchor.BN(100)) .accountsPartial({ mint: mint, signer: wallet.publicKey, diff --git a/tokens/token-2022/basics/anchor/tests/litesvm.test.ts b/tokens/token-2022/basics/anchor/tests/litesvm.test.ts index cd1c1a2f1..6b07983f0 100644 --- a/tokens/token-2022/basics/anchor/tests/litesvm.test.ts +++ b/tokens/token-2022/basics/anchor/tests/litesvm.test.ts @@ -1,7 +1,6 @@ import * as anchor from '@anchor-lang/core'; import { PublicKey } from '@solana/web3.js'; import { LiteSVMProvider } from 'anchor-litesvm'; -import BN from 'bn.js'; import { LiteSVM } from 'litesvm'; import IDL from '../target/idl/anchor.json' with { type: 'json' }; import type { Anchor } from '../target/types/anchor.ts'; @@ -98,7 +97,7 @@ describe('anchor', () => { const tx = new anchor.web3.Transaction(); const ix = await program.methods - .mintToken(new BN(200000000)) + .mintToken(new anchor.BN(200000000)) .accountsPartial({ mint: mint, signer: wallet.publicKey, @@ -117,7 +116,7 @@ describe('anchor', () => { const tx = new anchor.web3.Transaction(); const ix = await program.methods - .transferToken(new BN(100)) + .transferToken(new anchor.BN(100)) .accountsPartial({ mint: mint, signer: wallet.publicKey, diff --git a/tokens/token-2022/cpi-guard/anchor/package.json b/tokens/token-2022/cpi-guard/anchor/package.json index 2bf532b3d..31cf18fc5 100644 --- a/tokens/token-2022/cpi-guard/anchor/package.json +++ b/tokens/token-2022/cpi-guard/anchor/package.json @@ -10,7 +10,6 @@ "@solana/web3.js": "^1.98.4" }, "devDependencies": { - "@types/bn.js": "^5.1.0", "@types/chai": "^5.2.3", "@types/mocha": "^10.0.10", "chai": "^6.2.2", diff --git a/tokens/token-2022/cpi-guard/anchor/pnpm-lock.yaml b/tokens/token-2022/cpi-guard/anchor/pnpm-lock.yaml index 2534def6e..24d1ab764 100644 --- a/tokens/token-2022/cpi-guard/anchor/pnpm-lock.yaml +++ b/tokens/token-2022/cpi-guard/anchor/pnpm-lock.yaml @@ -18,9 +18,6 @@ importers: specifier: ^1.98.4 version: 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) devDependencies: - '@types/bn.js': - specifier: ^5.1.0 - version: 5.2.0 '@types/chai': specifier: ^5.2.3 version: 5.2.3 @@ -326,9 +323,6 @@ packages: '@swc/helpers@0.5.17': resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} - '@types/bn.js@5.2.0': - resolution: {integrity: sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q==} - '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -1145,10 +1139,6 @@ snapshots: dependencies: tslib: 2.8.1 - '@types/bn.js@5.2.0': - dependencies: - '@types/node': 26.1.2 - '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 diff --git a/tokens/token-2022/group/anchor/package.json b/tokens/token-2022/group/anchor/package.json index 1876ee677..dad1b80cd 100644 --- a/tokens/token-2022/group/anchor/package.json +++ b/tokens/token-2022/group/anchor/package.json @@ -8,7 +8,6 @@ "@anchor-lang/core": "1.0.0-rc.5" }, "devDependencies": { - "@types/bn.js": "^5.1.0", "@types/chai": "^5.2.3", "@types/mocha": "^10.0.10", "chai": "^6.2.2", diff --git a/tokens/token-2022/group/anchor/pnpm-lock.yaml b/tokens/token-2022/group/anchor/pnpm-lock.yaml index b0669e040..4442025d9 100644 --- a/tokens/token-2022/group/anchor/pnpm-lock.yaml +++ b/tokens/token-2022/group/anchor/pnpm-lock.yaml @@ -12,9 +12,6 @@ importers: specifier: 1.0.0-rc.5 version: 1.0.0-rc.5(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) devDependencies: - '@types/bn.js': - specifier: ^5.1.0 - version: 5.1.5 '@types/chai': specifier: ^5.2.3 version: 5.2.3 @@ -261,9 +258,6 @@ packages: '@swc/helpers@0.5.17': resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} - '@types/bn.js@5.1.5': - resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} - '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -962,10 +956,6 @@ snapshots: dependencies: tslib: 2.8.1 - '@types/bn.js@5.1.5': - dependencies: - '@types/node': 26.1.2 - '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 diff --git a/tokens/token-2022/metadata/anchor/package.json b/tokens/token-2022/metadata/anchor/package.json index 7ba8c39ea..3088d0a10 100644 --- a/tokens/token-2022/metadata/anchor/package.json +++ b/tokens/token-2022/metadata/anchor/package.json @@ -9,7 +9,6 @@ "@solana/spl-token-metadata": "^0.1.6" }, "devDependencies": { - "@types/bn.js": "^5.1.0", "@types/chai": "^5.2.3", "@types/mocha": "^10.0.10", "chai": "^6.2.2", diff --git a/tokens/token-2022/metadata/anchor/pnpm-lock.yaml b/tokens/token-2022/metadata/anchor/pnpm-lock.yaml index 59e93d519..583797356 100644 --- a/tokens/token-2022/metadata/anchor/pnpm-lock.yaml +++ b/tokens/token-2022/metadata/anchor/pnpm-lock.yaml @@ -15,9 +15,6 @@ importers: specifier: ^0.1.6 version: 0.1.6(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) devDependencies: - '@types/bn.js': - specifier: ^5.1.0 - version: 5.1.5 '@types/chai': specifier: ^5.2.3 version: 5.2.3 @@ -307,9 +304,6 @@ packages: '@swc/helpers@0.5.17': resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} - '@types/bn.js@5.1.5': - resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} - '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -1077,10 +1071,6 @@ snapshots: dependencies: tslib: 2.8.1 - '@types/bn.js@5.1.5': - dependencies: - '@types/node': 26.1.2 - '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 diff --git a/tokens/token-2022/mint-close-authority/anchor/package.json b/tokens/token-2022/mint-close-authority/anchor/package.json index 51e8c8892..37cc6ff87 100644 --- a/tokens/token-2022/mint-close-authority/anchor/package.json +++ b/tokens/token-2022/mint-close-authority/anchor/package.json @@ -9,7 +9,6 @@ "@solana/spl-token": "^0.4.6" }, "devDependencies": { - "@types/bn.js": "^5.1.0", "@types/chai": "^5.2.3", "@types/mocha": "^10.0.10", "chai": "^6.2.2", diff --git a/tokens/token-2022/mint-close-authority/anchor/pnpm-lock.yaml b/tokens/token-2022/mint-close-authority/anchor/pnpm-lock.yaml index 9994dc9d6..07e64e626 100644 --- a/tokens/token-2022/mint-close-authority/anchor/pnpm-lock.yaml +++ b/tokens/token-2022/mint-close-authority/anchor/pnpm-lock.yaml @@ -15,9 +15,6 @@ importers: specifier: ^0.4.6 version: 0.4.6(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10) devDependencies: - '@types/bn.js': - specifier: ^5.1.0 - version: 5.1.5 '@types/chai': specifier: ^5.2.3 version: 5.2.3 @@ -328,9 +325,6 @@ packages: '@swc/helpers@0.5.17': resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} - '@types/bn.js@5.1.5': - resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} - '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -748,6 +742,7 @@ packages: rpc-websockets@7.11.0: resolution: {integrity: sha512-IkLYjayPv6Io8C/TdCL5gwgzd1hFz2vmBZrjMw/SPEXo51ETOhnzgS4Qy5GWi2JQN7HKHa66J3+2mv0fgNh/7w==} + deprecated: deprecate 7.11.0 rpc-websockets@9.2.0: resolution: {integrity: sha512-DS/XHdPxplQTtNRKiBCRWGBJfjOk56W7fyFUpiYi9fSTWTzoEMbUkn3J4gB0IMniIEVeAGR1/rzFQogzD5MxvQ==} @@ -1236,10 +1231,6 @@ snapshots: dependencies: tslib: 2.8.1 - '@types/bn.js@5.1.5': - dependencies: - '@types/node': 26.1.2 - '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 diff --git a/tokens/token-2022/nft-meta-data-pointer/anchor/package.json b/tokens/token-2022/nft-meta-data-pointer/anchor/package.json index 43ab369cb..77685e2ec 100644 --- a/tokens/token-2022/nft-meta-data-pointer/anchor/package.json +++ b/tokens/token-2022/nft-meta-data-pointer/anchor/package.json @@ -6,7 +6,6 @@ }, "dependencies": { "@anchor-lang/core": "1.0.0-rc.5", - "@coral-xyz/spl-token": "0.30.0", "@solana/spl-token": "^0.4.14", "@solana/web3.js": "^1.98.4" }, @@ -14,9 +13,7 @@ "@types/bn.js": "^5.1.0", "@types/chai": "^5.2.3", "@types/mocha": "^10.0.10", - "browserify-sign": ">=4.2.2", "chai": "^6.2.2", - "crypto-js": ">=4.2.0", "mocha": "^11.7.5", "prettier": "^2.6.2", "typescript": "^5.9.3", diff --git a/tokens/token-2022/nft-meta-data-pointer/anchor/pnpm-lock.yaml b/tokens/token-2022/nft-meta-data-pointer/anchor/pnpm-lock.yaml index a99018323..e474f5071 100644 --- a/tokens/token-2022/nft-meta-data-pointer/anchor/pnpm-lock.yaml +++ b/tokens/token-2022/nft-meta-data-pointer/anchor/pnpm-lock.yaml @@ -11,9 +11,6 @@ importers: '@anchor-lang/core': specifier: 1.0.0-rc.5 version: 1.0.0-rc.5(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) - '@coral-xyz/spl-token': - specifier: 0.30.0 - version: 0.30.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) '@solana/spl-token': specifier: ^0.4.14 version: 0.4.15(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) @@ -33,15 +30,9 @@ importers: '@types/node': specifier: ^26.1.0 version: 26.1.2 - browserify-sign: - specifier: '>=4.2.2' - version: 4.2.3 chai: specifier: ^6.2.2 version: 6.2.2 - crypto-js: - specifier: '>=4.2.0' - version: 4.2.0 mocha: specifier: ^11.7.5 version: 11.7.6 @@ -75,19 +66,6 @@ packages: resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} engines: {node: '>=6.9.0'} - '@coral-xyz/anchor@0.30.0': - resolution: {integrity: sha512-qreDh5ztiRHVnCbJ+RS70NJ6aSTPBYDAgFeQ7Z5QvaT5DcDIhNyt4onOciVz2ieIE1XWePOJDDu9SbNvPGBkvQ==} - engines: {node: '>=11'} - - '@coral-xyz/borsh@0.30.1': - resolution: {integrity: sha512-aaxswpPrCFKl8vZTbxLssA2RvwX2zmKLlRCIktJOwW+VpVwYtXRtlWiIP+c2pPRKneiTiWCN2GEMSH9j1zTlWQ==} - engines: {node: '>=10'} - peerDependencies: - '@solana/web3.js': ^1.68.0 - - '@coral-xyz/spl-token@0.30.0': - resolution: {integrity: sha512-NIGhvqeImeLT4Y30ZymU066dKL95/ssa3hs0hCwBBumhIdH77P6ESXjuhoBuU89EYrARXHlWscq8+wEIEItggw==} - '@esbuild/aix-ppc64@0.28.1': resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==} engines: {node: '>=18'} @@ -248,9 +226,6 @@ packages: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - '@native-to-anchor/buffer-layout@0.1.0': - resolution: {integrity: sha512-7Ykz9KRAm53XqHj5blDUKPX+OXAPO4GZBW4zJhfHGIAbzmqsUFh9kMqR66Bak3mp6wyv1OVTwSr8ZGHKswPxDg==} - '@noble/curves@1.9.7': resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==} engines: {node: ^14.21.3 || >=16} @@ -263,18 +238,10 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@solana/buffer-layout-utils@0.2.0': - resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==} - engines: {node: '>= 10'} - '@solana/buffer-layout-utils@0.3.0': resolution: {integrity: sha512-MuQOCC1j0np1xH9yAv0ZWWfwvr7Bt7Sz4LId11Wi4wDdAmJ+lobE+vHg/mZmGcihF0BIkqVBNxGmlv8QE5DrtA==} engines: {node: '>= 10'} - '@solana/buffer-layout@4.0.0': - resolution: {integrity: sha512-lR0EMP2HC3+Mxwd4YcnZb0smnaDw7Bl2IQWZiTevRH5ZZBZn6VRWn3/92E3qdU4SSImJkA6IDHawOHAnx/qUvQ==} - engines: {node: '>=5.10'} - '@solana/buffer-layout@4.0.1': resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==} engines: {node: '>=5.10'} @@ -412,9 +379,6 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - asn1.js@4.10.1: - resolution: {integrity: sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==} - assertion-error@2.0.1: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} @@ -438,12 +402,6 @@ packages: bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - bn.js@4.12.0: - resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} - - bn.js@5.2.1: - resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} - bn.js@5.2.2: resolution: {integrity: sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==} @@ -453,22 +411,9 @@ packages: brace-expansion@2.1.3: resolution: {integrity: sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A==} - brorand@1.1.0: - resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} - browser-stdout@1.3.1: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - browserify-aes@1.2.0: - resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} - - browserify-rsa@4.1.0: - resolution: {integrity: sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==} - - browserify-sign@4.2.3: - resolution: {integrity: sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==} - engines: {node: '>= 0.12'} - bs58@4.0.1: resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} @@ -476,9 +421,6 @@ packages: resolution: {integrity: sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==} engines: {node: '>=4.5'} - buffer-xor@1.0.3: - resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} - buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} @@ -506,9 +448,6 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} - cipher-base@1.0.4: - resolution: {integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==} - cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -531,15 +470,6 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - - create-hash@1.2.0: - resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} - - create-hmac@1.1.7: - resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} - cross-fetch@3.2.0: resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} @@ -547,13 +477,6 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - crypto-hash@1.3.0: - resolution: {integrity: sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==} - engines: {node: '>=8'} - - crypto-js@4.2.0: - resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} - debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -575,15 +498,9 @@ packages: resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} engines: {node: '>=0.3.1'} - dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - elliptic@6.5.5: - resolution: {integrity: sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==} - emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -615,9 +532,6 @@ packages: eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - evp_bytestokey@1.0.3: - resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} - eyes@0.1.8: resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} engines: {node: '> 0.1.90'} @@ -661,29 +575,16 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - hash-base@3.0.4: - resolution: {integrity: sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==} - engines: {node: '>=4'} - - hash.js@1.1.7: - resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} - he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true - hmac-drbg@1.0.1: - resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} - humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -700,9 +601,6 @@ packages: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -734,21 +632,9 @@ packages: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} - lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} - lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - md5.js@1.3.5: - resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} - - minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - - minimalistic-crypto-utils@1.0.1: - resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} - minimatch@9.0.9: resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} engines: {node: '>=16 || 14 >=14.17'} @@ -765,9 +651,6 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} @@ -795,10 +678,6 @@ packages: pako@2.1.0: resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} - parse-asn1@5.1.7: - resolution: {integrity: sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==} - engines: {node: '>= 0.10'} - path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -811,10 +690,6 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - pbkdf2@3.1.2: - resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} - engines: {node: '>=0.12'} - picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -823,15 +698,9 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - readdirp@4.1.2: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} @@ -840,25 +709,15 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} - ripemd160@2.0.2: - resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} - rpc-websockets@9.2.0: resolution: {integrity: sha512-DS/XHdPxplQTtNRKiBCRWGBJfjOk56W7fyFUpiYi9fSTWTzoEMbUkn3J4gB0IMniIEVeAGR1/rzFQogzD5MxvQ==} - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - sha.js@2.4.11: - resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} - hasBin: true - shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -871,9 +730,6 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - snake-case@3.0.4: - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} - stream-chain@2.2.5: resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==} @@ -888,9 +744,6 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -927,9 +780,6 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -950,9 +800,6 @@ packages: resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} engines: {node: '>=6.14.2'} - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). @@ -1057,44 +904,6 @@ snapshots: '@babel/runtime@7.28.4': {} - '@coral-xyz/anchor@0.30.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)': - dependencies: - '@coral-xyz/borsh': 0.30.1(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)) - '@noble/hashes': 1.8.0 - '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) - bn.js: 5.2.2 - bs58: 4.0.1 - buffer-layout: 1.2.2 - camelcase: 6.3.0 - cross-fetch: 3.2.0 - crypto-hash: 1.3.0 - eventemitter3: 4.0.7 - pako: 2.1.0 - snake-case: 3.0.4 - superstruct: 0.15.5 - toml: 3.0.0 - transitivePeerDependencies: - - bufferutil - - encoding - - typescript - - utf-8-validate - - '@coral-xyz/borsh@0.30.1(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))': - dependencies: - '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) - bn.js: 5.2.2 - buffer-layout: 1.2.2 - - '@coral-xyz/spl-token@0.30.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)': - dependencies: - '@coral-xyz/anchor': 0.30.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) - '@native-to-anchor/buffer-layout': 0.1.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) - transitivePeerDependencies: - - bufferutil - - encoding - - typescript - - utf-8-validate - '@esbuild/aix-ppc64@0.28.1': optional: true @@ -1182,16 +991,6 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@native-to-anchor/buffer-layout@0.1.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)': - dependencies: - '@solana/buffer-layout': 4.0.0 - '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) - transitivePeerDependencies: - - bufferutil - - encoding - - typescript - - utf-8-validate - '@noble/curves@1.9.7': dependencies: '@noble/hashes': 1.8.0 @@ -1201,18 +1000,6 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)': - dependencies: - '@solana/buffer-layout': 4.0.1 - '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) - bigint-buffer: 1.1.5 - bignumber.js: 9.1.2 - transitivePeerDependencies: - - bufferutil - - encoding - - typescript - - utf-8-validate - '@solana/buffer-layout-utils@0.3.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)': dependencies: '@solana/buffer-layout': 4.0.1 @@ -1225,10 +1012,6 @@ snapshots: - typescript - utf-8-validate - '@solana/buffer-layout@4.0.0': - dependencies: - buffer: 6.0.3 - '@solana/buffer-layout@4.0.1': dependencies: buffer: 6.0.3 @@ -1411,12 +1194,6 @@ snapshots: argparse@2.0.1: {} - asn1.js@4.10.1: - dependencies: - bn.js: 4.12.0 - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - assertion-error@2.0.1: {} balanced-match@1.0.2: {} @@ -1437,10 +1214,6 @@ snapshots: dependencies: file-uri-to-path: 1.0.0 - bn.js@4.12.0: {} - - bn.js@5.2.1: {} - bn.js@5.2.2: {} borsh@0.7.0: @@ -1453,45 +1226,14 @@ snapshots: dependencies: balanced-match: 1.0.2 - brorand@1.1.0: {} - browser-stdout@1.3.1: {} - browserify-aes@1.2.0: - dependencies: - buffer-xor: 1.0.3 - cipher-base: 1.0.4 - create-hash: 1.2.0 - evp_bytestokey: 1.0.3 - inherits: 2.0.4 - safe-buffer: 5.2.1 - - browserify-rsa@4.1.0: - dependencies: - bn.js: 5.2.1 - randombytes: 2.1.0 - - browserify-sign@4.2.3: - dependencies: - bn.js: 5.2.1 - browserify-rsa: 4.1.0 - create-hash: 1.2.0 - create-hmac: 1.1.7 - elliptic: 6.5.5 - hash-base: 3.0.4 - inherits: 2.0.4 - parse-asn1: 5.1.7 - readable-stream: 2.3.8 - safe-buffer: 5.2.1 - bs58@4.0.1: dependencies: base-x: 3.0.9 buffer-layout@1.2.2: {} - buffer-xor@1.0.3: {} - buffer@6.0.3: dependencies: base64-js: 1.5.1 @@ -1517,11 +1259,6 @@ snapshots: dependencies: readdirp: 4.1.2 - cipher-base@1.0.4: - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -1540,25 +1277,6 @@ snapshots: commander@2.20.3: {} - core-util-is@1.0.3: {} - - create-hash@1.2.0: - dependencies: - cipher-base: 1.0.4 - inherits: 2.0.4 - md5.js: 1.3.5 - ripemd160: 2.0.2 - sha.js: 2.4.11 - - create-hmac@1.1.7: - dependencies: - cipher-base: 1.0.4 - create-hash: 1.2.0 - inherits: 2.0.4 - ripemd160: 2.0.2 - safe-buffer: 5.2.1 - sha.js: 2.4.11 - cross-fetch@3.2.0: dependencies: node-fetch: 2.7.0 @@ -1571,10 +1289,6 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - crypto-hash@1.3.0: {} - - crypto-js@4.2.0: {} - debug@4.4.3(supports-color@8.1.1): dependencies: ms: 2.1.3 @@ -1587,23 +1301,8 @@ snapshots: diff@7.0.0: {} - dot-case@3.0.4: - dependencies: - no-case: 3.0.4 - tslib: 2.6.2 - eastasianwidth@0.2.0: {} - elliptic@6.5.5: - dependencies: - bn.js: 4.12.0 - brorand: 1.1.0 - hash.js: 1.1.7 - hmac-drbg: 1.0.1 - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - minimalistic-crypto-utils: 1.0.1 - emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -1651,11 +1350,6 @@ snapshots: eventemitter3@5.0.1: {} - evp_bytestokey@1.0.3: - dependencies: - md5.js: 1.3.5 - safe-buffer: 5.2.1 - eyes@0.1.8: {} fast-stable-stringify@1.0.0: {} @@ -1692,32 +1386,14 @@ snapshots: has-flag@4.0.0: {} - hash-base@3.0.4: - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - - hash.js@1.1.7: - dependencies: - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - he@1.2.0: {} - hmac-drbg@1.0.1: - dependencies: - hash.js: 1.1.7 - minimalistic-assert: 1.0.1 - minimalistic-crypto-utils: 1.0.1 - humanize-ms@1.2.1: dependencies: ms: 2.1.3 ieee754@1.2.1: {} - inherits@2.0.4: {} - is-fullwidth-code-point@3.0.0: {} is-path-inside@3.0.3: {} @@ -1726,8 +1402,6 @@ snapshots: is-unicode-supported@0.1.0: {} - isarray@1.0.0: {} - isexe@2.0.0: {} isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)): @@ -1773,22 +1447,8 @@ snapshots: chalk: 4.1.2 is-unicode-supported: 0.1.0 - lower-case@2.0.2: - dependencies: - tslib: 2.6.2 - lru-cache@10.4.3: {} - md5.js@1.3.5: - dependencies: - hash-base: 3.0.4 - inherits: 2.0.4 - safe-buffer: 5.2.1 - - minimalistic-assert@1.0.1: {} - - minimalistic-crypto-utils@1.0.1: {} - minimatch@9.0.9: dependencies: brace-expansion: 2.1.3 @@ -1821,11 +1481,6 @@ snapshots: ms@2.1.3: {} - no-case@3.0.4: - dependencies: - lower-case: 2.0.2 - tslib: 2.6.2 - node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 @@ -1845,15 +1500,6 @@ snapshots: pako@2.1.0: {} - parse-asn1@5.1.7: - dependencies: - asn1.js: 4.10.1 - browserify-aes: 1.2.0 - evp_bytestokey: 1.0.3 - hash-base: 3.0.4 - pbkdf2: 3.1.2 - safe-buffer: 5.2.1 - path-exists@4.0.0: {} path-key@3.1.1: {} @@ -1863,43 +1509,18 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.3 - pbkdf2@3.1.2: - dependencies: - create-hash: 1.2.0 - create-hmac: 1.1.7 - ripemd160: 2.0.2 - safe-buffer: 5.2.1 - sha.js: 2.4.11 - picocolors@1.1.1: {} prettier@2.8.8: {} - process-nextick-args@2.0.1: {} - randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 - readable-stream@2.3.8: - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - readdirp@4.1.2: {} require-directory@2.1.1: {} - ripemd160@2.0.2: - dependencies: - hash-base: 3.0.4 - inherits: 2.0.4 - rpc-websockets@9.2.0: dependencies: '@swc/helpers': 0.5.17 @@ -1913,19 +1534,12 @@ snapshots: bufferutil: 4.0.9 utf-8-validate: 5.0.10 - safe-buffer@5.1.2: {} - safe-buffer@5.2.1: {} serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 - sha.js@2.4.11: - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 @@ -1934,11 +1548,6 @@ snapshots: signal-exit@4.1.0: {} - snake-case@3.0.4: - dependencies: - dot-case: 3.0.4 - tslib: 2.6.2 - stream-chain@2.2.5: {} stream-json@1.9.1: @@ -1957,10 +1566,6 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.2.0 - string_decoder@1.1.1: - dependencies: - safe-buffer: 5.1.2 - strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -1989,8 +1594,6 @@ snapshots: tr46@0.0.3: {} - tslib@2.6.2: {} - tslib@2.8.1: {} tsx@4.23.1: @@ -2008,8 +1611,6 @@ snapshots: node-gyp-build: 4.8.4 optional: true - util-deprecate@1.0.2: {} - uuid@8.3.2: {} webidl-conversions@3.0.1: {} diff --git a/tokens/token-2022/nft-meta-data-pointer/app/package.json b/tokens/token-2022/nft-meta-data-pointer/app/package.json index baf502553..31dc2387f 100644 --- a/tokens/token-2022/nft-meta-data-pointer/app/package.json +++ b/tokens/token-2022/nft-meta-data-pointer/app/package.json @@ -13,7 +13,6 @@ "typecheck": "pnpm run generate-client && tsc --noEmit" }, "dependencies": { - "@chakra-ui/next-js": "^2.1.3", "@chakra-ui/react": "^2.6.1", "@magicblock-labs/gum-react-sdk": "^3.0.4", "@magicblock-labs/gum-sdk": "^3.0.5", @@ -28,8 +27,6 @@ "@types/node": "20.2.5", "@types/react": "18.3.31", "@types/react-dom": "18.3.7", - "browserify-sign": ">=4.2.2", - "crypto-js": ">=4.2.0", "eslint": "^9.39.5", "eslint-config-next": "16.2.12", "framer-motion": "^10.12.16", diff --git a/tokens/token-2022/nft-meta-data-pointer/app/pnpm-lock.yaml b/tokens/token-2022/nft-meta-data-pointer/app/pnpm-lock.yaml index 0d0d9ebb2..da077e276 100644 --- a/tokens/token-2022/nft-meta-data-pointer/app/pnpm-lock.yaml +++ b/tokens/token-2022/nft-meta-data-pointer/app/pnpm-lock.yaml @@ -8,9 +8,6 @@ importers: .: dependencies: - '@chakra-ui/next-js': - specifier: ^2.1.3 - version: 2.4.2(@chakra-ui/react@2.10.10(@emotion/react@11.14.0(@types/react@18.3.31)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.31)(react@18.3.1))(@types/react@18.3.31)(react@18.3.1))(@types/react@18.3.31)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/react@11.14.0(@types/react@18.3.31)(react@18.3.1))(next@16.2.12(@babel/core@7.29.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@chakra-ui/react': specifier: ^2.6.1 version: 2.10.10(@emotion/react@11.14.0(@types/react@18.3.31)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.31)(react@18.3.1))(@types/react@18.3.31)(react@18.3.1))(@types/react@18.3.31)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -53,12 +50,6 @@ importers: '@types/react-dom': specifier: 18.3.7 version: 18.3.7(@types/react@18.3.31) - browserify-sign: - specifier: '>=4.2.2' - version: 4.2.6 - crypto-js: - specifier: '>=4.2.0' - version: 4.2.0 eslint: specifier: ^9.39.5 version: 9.39.5 @@ -175,14 +166,6 @@ packages: peerDependencies: react: '>=18' - '@chakra-ui/next-js@2.4.2': - resolution: {integrity: sha512-loo82RyPbMyvJwRhhZVZovut9v2hFBSkqd1vQoNXgMrCRApLwrrttu5Iuodns15gLE3mqI+it5oEhxTtO5DrxA==} - peerDependencies: - '@chakra-ui/react': '>=2.4.0' - '@emotion/react': '>=11' - next: '>=13' - react: '>=18' - '@chakra-ui/react@2.10.10': resolution: {integrity: sha512-uahxAfb83/O9fcgBm3ew/nVeQiNgE0uQf8NdQQp3I6u/PCuR2OjSEneV4Ba86W8z50Ppwcxvf9XDk5btYceggQ==} peerDependencies: @@ -2293,9 +2276,6 @@ packages: asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} - asn1.js@4.10.1: - resolution: {integrity: sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==} - ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} @@ -2349,9 +2329,6 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - bn.js@4.12.5: - resolution: {integrity: sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ==} - bn.js@5.2.5: resolution: {integrity: sha512-Vq886eXykuP5E6HcKSSStP3bJgrE6In5WKxVUvJ8XGpWWYs2xZHWqUwzCtGgEtBcxyd57KBFDPFoUfNzdaHCNg==} @@ -2369,20 +2346,6 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - brorand@1.1.0: - resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} - - browserify-aes@1.2.0: - resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} - - browserify-rsa@4.1.1: - resolution: {integrity: sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==} - engines: {node: '>= 0.10'} - - browserify-sign@4.2.6: - resolution: {integrity: sha512-sd+Q65fjlWCYWtZKXiKfrUc8d+4jtp/8f0W2NkwzLtoW4bI6UDnWusLWIurHnmurW0XShIRxpwiOX4EoPtXUAg==} - engines: {node: '>= 0.10'} - browserslist@4.28.7: resolution: {integrity: sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -2404,9 +2367,6 @@ packages: resolution: {integrity: sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==} engines: {node: '>=4.5'} - buffer-xor@1.0.3: - resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} - buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} @@ -2464,10 +2424,6 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} - cipher-base@1.0.7: - resolution: {integrity: sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==} - engines: {node: '>= 0.10'} - client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} @@ -2535,19 +2491,10 @@ packages: copy-to-clipboard@3.3.3: resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - cosmiconfig@7.1.0: resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} engines: {node: '>=10'} - create-hash@1.2.0: - resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} - - create-hmac@1.1.7: - resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} - cross-fetch@3.2.0: resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} @@ -2666,9 +2613,6 @@ packages: electron-to-chromium@1.5.396: resolution: {integrity: sha512-yHiw2Y3C3H9U6TMbOfoWK/BPreiOPXRfTWPBwQBoZG6/8TB6eOPnsy5oaRYuatR7Fw2SJ4kKforgufeo7fq0EQ==} - elliptic@6.6.1: - resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} - emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -2881,9 +2825,6 @@ packages: eventemitter3@5.0.4: resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} - evp_bytestokey@1.0.3: - resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} - exponential-backoff@3.1.3: resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} @@ -3115,13 +3056,6 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - hash-base@3.1.2: - resolution: {integrity: sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==} - engines: {node: '>= 0.8'} - - hash.js@1.1.7: - resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} - hasown@2.0.4: resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} engines: {node: '>= 0.4'} @@ -3147,9 +3081,6 @@ packages: hermes-parser@0.36.0: resolution: {integrity: sha512-GdpwMmH5x6IpC1cijvcvYnlPB60Mh6kTSF/NFdYV/j56gYdi+0RIakYs+eqOV+bbO0SW7mgVVGSsTJxyPQfo3w==} - hmac-drbg@1.0.1: - resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} - hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} @@ -3329,9 +3260,6 @@ packages: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} @@ -3486,9 +3414,6 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} - md5.js@1.3.5: - resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} - memoize-one@5.2.1: resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} @@ -3586,12 +3511,6 @@ packages: engines: {node: '>=4'} hasBin: true - minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - - minimalistic-crypto-utils@1.0.1: - resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} - minimatch@10.2.5: resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} engines: {node: 18 || 20 || >=22} @@ -3768,10 +3687,6 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-asn1@5.1.9: - resolution: {integrity: sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg==} - engines: {node: '>= 0.10'} - parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -3795,10 +3710,6 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - pbkdf2@3.1.6: - resolution: {integrity: sha512-BT6eelPB1EyGHo8pC0o9Bl6k6SYVhKO1jEbd3lcTrtr7XHdjP8BW1YpfCV3G9Kwkxgattk+S5q2/RvuttCsS1g==} - engines: {node: '>= 0.10'} - picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -3835,9 +3746,6 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - promise@8.3.0: resolution: {integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==} @@ -3961,9 +3869,6 @@ packages: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - reflect.getprototypeof@1.0.10: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} @@ -4003,10 +3908,6 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - ripemd160@2.0.3: - resolution: {integrity: sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==} - engines: {node: '>= 0.8'} - rpc-websockets@9.3.9: resolution: {integrity: sha512-2iQDaTB4g5fDB2ihrTFSJSibCEuxaRi1q7qTW7ZO9/M5/TC+ToHA4D9/ffNLEbAoHNNrcdeP05oATNk44SKZXA==} @@ -4017,9 +3918,6 @@ packages: resolution: {integrity: sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==} engines: {node: '>=0.4'} - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -4076,11 +3974,6 @@ packages: setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - sha.js@2.4.12: - resolution: {integrity: sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==} - engines: {node: '>= 0.10'} - hasBin: true - sharp@0.34.5: resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -4189,9 +4082,6 @@ packages: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -4257,10 +4147,6 @@ packages: tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - to-buffer@1.2.2: - resolution: {integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==} - engines: {node: '>= 0.4'} - to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -4384,9 +4270,6 @@ packages: resolution: {integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==} engines: {node: '>=6.14.2'} - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - utils-merge@1.0.1: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} @@ -4637,14 +4520,6 @@ snapshots: framesync: 6.1.2 react: 18.3.1 - '@chakra-ui/next-js@2.4.2(@chakra-ui/react@2.10.10(@emotion/react@11.14.0(@types/react@18.3.31)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.31)(react@18.3.1))(@types/react@18.3.31)(react@18.3.1))(@types/react@18.3.31)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/react@11.14.0(@types/react@18.3.31)(react@18.3.1))(next@16.2.12(@babel/core@7.29.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': - dependencies: - '@chakra-ui/react': 2.10.10(@emotion/react@11.14.0(@types/react@18.3.31)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.31)(react@18.3.1))(@types/react@18.3.31)(react@18.3.1))(@types/react@18.3.31)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@emotion/cache': 11.14.0 - '@emotion/react': 11.14.0(@types/react@18.3.31)(react@18.3.1) - next: 16.2.12(@babel/core@7.29.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - '@chakra-ui/react@2.10.10(@emotion/react@11.14.0(@types/react@18.3.31)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.31)(react@18.3.1))(@types/react@18.3.31)(react@18.3.1))(@types/react@18.3.31)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@chakra-ui/hooks': 2.4.6(react@18.3.1) @@ -7020,12 +6895,6 @@ snapshots: asap@2.0.6: {} - asn1.js@4.10.1: - dependencies: - bn.js: 4.12.5 - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - ast-types-flow@0.0.8: {} async-function@1.0.0: {} @@ -7074,8 +6943,6 @@ snapshots: baseline-browser-mapping@2.11.5: {} - bn.js@4.12.5: {} - bn.js@5.2.5: {} borsh@0.7.0: @@ -7097,35 +6964,6 @@ snapshots: dependencies: fill-range: 7.1.1 - brorand@1.1.0: {} - - browserify-aes@1.2.0: - dependencies: - buffer-xor: 1.0.3 - cipher-base: 1.0.7 - create-hash: 1.2.0 - evp_bytestokey: 1.0.3 - inherits: 2.0.4 - safe-buffer: 5.2.1 - - browserify-rsa@4.1.1: - dependencies: - bn.js: 5.2.5 - randombytes: 2.1.0 - safe-buffer: 5.2.1 - - browserify-sign@4.2.6: - dependencies: - bn.js: 5.2.5 - browserify-rsa: 4.1.1 - create-hash: 1.2.0 - create-hmac: 1.1.7 - elliptic: 6.6.1 - inherits: 2.0.4 - parse-asn1: 5.1.9 - readable-stream: 2.3.8 - safe-buffer: 5.2.1 - browserslist@4.28.7: dependencies: baseline-browser-mapping: 2.11.5 @@ -7150,8 +6988,6 @@ snapshots: buffer-layout@1.2.2: {} - buffer-xor@1.0.3: {} - buffer@6.0.3: dependencies: base64-js: 1.5.1 @@ -7217,12 +7053,6 @@ snapshots: ci-info@3.9.0: {} - cipher-base@1.0.7: - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - to-buffer: 1.2.2 - client-only@0.0.1: {} cliui@6.0.0: @@ -7288,8 +7118,6 @@ snapshots: dependencies: toggle-selection: 1.0.6 - core-util-is@1.0.3: {} - cosmiconfig@7.1.0: dependencies: '@types/parse-json': 4.0.2 @@ -7298,23 +7126,6 @@ snapshots: path-type: 4.0.0 yaml: 1.10.3 - create-hash@1.2.0: - dependencies: - cipher-base: 1.0.7 - inherits: 2.0.4 - md5.js: 1.3.5 - ripemd160: 2.0.3 - sha.js: 2.4.12 - - create-hmac@1.1.7: - dependencies: - cipher-base: 1.0.7 - create-hash: 1.2.0 - inherits: 2.0.4 - ripemd160: 2.0.3 - safe-buffer: 5.2.1 - sha.js: 2.4.12 - cross-fetch@3.2.0: dependencies: node-fetch: 2.7.0 @@ -7417,16 +7228,6 @@ snapshots: electron-to-chromium@1.5.396: {} - elliptic@6.6.1: - dependencies: - bn.js: 4.12.5 - brorand: 1.1.0 - hash.js: 1.1.7 - hmac-drbg: 1.0.1 - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - minimalistic-crypto-utils: 1.0.1 - emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -7806,11 +7607,6 @@ snapshots: eventemitter3@5.0.4: {} - evp_bytestokey@1.0.3: - dependencies: - md5.js: 1.3.5 - safe-buffer: 5.2.1 - exponential-backoff@3.1.3: {} extract-files@9.0.0: {} @@ -8037,18 +7833,6 @@ snapshots: dependencies: has-symbols: 1.1.0 - hash-base@3.1.2: - dependencies: - inherits: 2.0.4 - readable-stream: 2.3.8 - safe-buffer: 5.2.1 - to-buffer: 1.2.2 - - hash.js@1.1.7: - dependencies: - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - hasown@2.0.4: dependencies: function-bind: 1.1.2 @@ -8073,12 +7857,6 @@ snapshots: dependencies: hermes-estree: 0.36.0 - hmac-drbg@1.0.1: - dependencies: - hash.js: 1.1.7 - minimalistic-assert: 1.0.1 - minimalistic-crypto-utils: 1.0.1 - hoist-non-react-statics@3.3.2: dependencies: react-is: 16.13.1 @@ -8267,8 +8045,6 @@ snapshots: dependencies: is-docker: 2.2.1 - isarray@1.0.0: {} - isarray@2.0.5: {} isexe@2.0.0: {} @@ -8438,12 +8214,6 @@ snapshots: math-intrinsics@1.1.0: {} - md5.js@1.3.5: - dependencies: - hash-base: 3.1.2 - inherits: 2.0.4 - safe-buffer: 5.2.1 - memoize-one@5.2.1: {} merge-options@3.0.4: @@ -8648,10 +8418,6 @@ snapshots: mime@1.6.0: {} - minimalistic-assert@1.0.1: {} - - minimalistic-crypto-utils@1.0.1: {} - minimatch@10.2.5: dependencies: brace-expansion: 5.0.8 @@ -8826,14 +8592,6 @@ snapshots: dependencies: callsites: 3.1.0 - parse-asn1@5.1.9: - dependencies: - asn1.js: 4.10.1 - browserify-aes: 1.2.0 - evp_bytestokey: 1.0.3 - pbkdf2: 3.1.6 - safe-buffer: 5.2.1 - parse-json@5.2.0: dependencies: '@babel/code-frame': 7.29.7 @@ -8851,15 +8609,6 @@ snapshots: path-type@4.0.0: {} - pbkdf2@3.1.6: - dependencies: - create-hash: 1.2.0 - create-hmac: 1.1.7 - ripemd160: 2.0.3 - safe-buffer: 5.2.1 - sha.js: 2.4.12 - to-buffer: 1.2.2 - picocolors@1.1.1: {} picomatch@2.3.2: {} @@ -8886,8 +8635,6 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 - process-nextick-args@2.0.1: {} - promise@8.3.0: dependencies: asap: 2.0.6 @@ -9042,16 +8789,6 @@ snapshots: dependencies: loose-envify: 1.4.0 - readable-stream@2.3.8: - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - reflect.getprototypeof@1.0.10: dependencies: call-bind: 1.0.9 @@ -9100,11 +8837,6 @@ snapshots: reusify@1.1.0: {} - ripemd160@2.0.3: - dependencies: - hash-base: 3.1.2 - inherits: 2.0.4 - rpc-websockets@9.3.9: dependencies: '@swc/helpers': 0.5.23 @@ -9130,8 +8862,6 @@ snapshots: has-symbols: 1.1.0 isarray: 2.0.5 - safe-buffer@5.1.2: {} - safe-buffer@5.2.1: {} safe-push-apply@1.0.0: @@ -9210,12 +8940,6 @@ snapshots: setprototypeof@1.2.0: {} - sha.js@2.4.12: - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - to-buffer: 1.2.2 - sharp@0.34.5: dependencies: '@img/colour': 1.1.0 @@ -9382,10 +9106,6 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.2 - string_decoder@1.1.1: - dependencies: - safe-buffer: 5.1.2 - strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -9435,12 +9155,6 @@ snapshots: tmpl@1.0.5: {} - to-buffer@1.2.2: - dependencies: - isarray: 2.0.5 - safe-buffer: 5.2.1 - typed-array-buffer: 1.0.3 - to-regex-range@5.0.1: dependencies: is-number: 7.0.0 @@ -9596,8 +9310,6 @@ snapshots: node-gyp-build: 4.8.4 optional: true - util-deprecate@1.0.2: {} - utils-merge@1.0.1: {} uuid@14.0.1: {} diff --git a/tokens/token-2022/permanent-delegate/anchor/package.json b/tokens/token-2022/permanent-delegate/anchor/package.json index 51e8c8892..37cc6ff87 100644 --- a/tokens/token-2022/permanent-delegate/anchor/package.json +++ b/tokens/token-2022/permanent-delegate/anchor/package.json @@ -9,7 +9,6 @@ "@solana/spl-token": "^0.4.6" }, "devDependencies": { - "@types/bn.js": "^5.1.0", "@types/chai": "^5.2.3", "@types/mocha": "^10.0.10", "chai": "^6.2.2", diff --git a/tokens/token-2022/permanent-delegate/anchor/pnpm-lock.yaml b/tokens/token-2022/permanent-delegate/anchor/pnpm-lock.yaml index 9994dc9d6..07e64e626 100644 --- a/tokens/token-2022/permanent-delegate/anchor/pnpm-lock.yaml +++ b/tokens/token-2022/permanent-delegate/anchor/pnpm-lock.yaml @@ -15,9 +15,6 @@ importers: specifier: ^0.4.6 version: 0.4.6(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10) devDependencies: - '@types/bn.js': - specifier: ^5.1.0 - version: 5.1.5 '@types/chai': specifier: ^5.2.3 version: 5.2.3 @@ -328,9 +325,6 @@ packages: '@swc/helpers@0.5.17': resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} - '@types/bn.js@5.1.5': - resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} - '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -748,6 +742,7 @@ packages: rpc-websockets@7.11.0: resolution: {integrity: sha512-IkLYjayPv6Io8C/TdCL5gwgzd1hFz2vmBZrjMw/SPEXo51ETOhnzgS4Qy5GWi2JQN7HKHa66J3+2mv0fgNh/7w==} + deprecated: deprecate 7.11.0 rpc-websockets@9.2.0: resolution: {integrity: sha512-DS/XHdPxplQTtNRKiBCRWGBJfjOk56W7fyFUpiYi9fSTWTzoEMbUkn3J4gB0IMniIEVeAGR1/rzFQogzD5MxvQ==} @@ -1236,10 +1231,6 @@ snapshots: dependencies: tslib: 2.8.1 - '@types/bn.js@5.1.5': - dependencies: - '@types/node': 26.1.2 - '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 diff --git a/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/tests/transfer-hook.ts b/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/tests/transfer-hook.ts index ace7fc49b..ae31fc6b5 100644 --- a/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/tests/transfer-hook.ts +++ b/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/tests/transfer-hook.ts @@ -20,7 +20,6 @@ import { sendAndConfirmTransaction, Transaction, } from '@solana/web3.js'; -import { BN } from 'bn.js'; import { expect, use } from 'chai'; import chaiAsPromised from 'chai-as-promised'; import type { TransferHook } from '../target/types/transfer_hook'; @@ -193,7 +192,7 @@ describe('transfer-hook', () => { it('Try call transfer hook without transfer', async () => { const transferHookIx = await program.methods - .transferHook(new BN(1)) + .transferHook(new anchor.BN(1)) .accounts({ sourceToken: sourceTokenAccount, mint: mint.publicKey, diff --git a/tokens/token-2022/transfer-hook/counter/anchor/tests/transfer-hook.ts b/tokens/token-2022/transfer-hook/counter/anchor/tests/transfer-hook.ts index a51eab0f5..5967de613 100644 --- a/tokens/token-2022/transfer-hook/counter/anchor/tests/transfer-hook.ts +++ b/tokens/token-2022/transfer-hook/counter/anchor/tests/transfer-hook.ts @@ -20,7 +20,6 @@ import { sendAndConfirmTransaction, Transaction, } from '@solana/web3.js'; -import { BN } from 'bn.js'; import { expect, use } from 'chai'; import chaiAsPromised from 'chai-as-promised'; import type { TransferHook } from '../target/types/transfer_hook'; @@ -190,7 +189,7 @@ describe('transfer-hook', () => { it('Try call transfer hook without transfer', async () => { const transferHookIx = await program.methods - .transferHook(new BN(1)) + .transferHook(new anchor.BN(1)) .accounts({ sourceToken: sourceTokenAccount, mint: mint.publicKey, diff --git a/tokens/token-2022/transfer-hook/hello-world/anchor/tests/transfer-hook.ts b/tokens/token-2022/transfer-hook/hello-world/anchor/tests/transfer-hook.ts index a5760a34a..6141d9092 100644 --- a/tokens/token-2022/transfer-hook/hello-world/anchor/tests/transfer-hook.ts +++ b/tokens/token-2022/transfer-hook/hello-world/anchor/tests/transfer-hook.ts @@ -9,7 +9,6 @@ import { TOKEN_2022_PROGRAM_ID, } from '@solana/spl-token'; import { Keypair, SendTransactionError, sendAndConfirmTransaction, Transaction } from '@solana/web3.js'; -import { BN } from 'bn.js'; import { expect, use } from 'chai'; import chaiAsPromised from 'chai-as-promised'; import type { TransferHook } from '../target/types/transfer_hook'; @@ -140,7 +139,7 @@ describe('transfer-hook', () => { it('Try call transfer hook without transfer', async () => { const transferHookIx = await program.methods - .transferHook(new BN(1)) + .transferHook(new anchor.BN(1)) .accounts({ sourceToken: sourceTokenAccount, mint: mint.publicKey, diff --git a/tokens/token-2022/transfer-hook/transfer-switch/anchor/package.json b/tokens/token-2022/transfer-hook/transfer-switch/anchor/package.json index 38b7dac66..de7e4ea83 100644 --- a/tokens/token-2022/transfer-hook/transfer-switch/anchor/package.json +++ b/tokens/token-2022/transfer-hook/transfer-switch/anchor/package.json @@ -2,7 +2,10 @@ "type": "module", "dependencies": { "@anchor-lang/core": "1.0.0-rc.5", + "@solana-program/token-2022": "^0.15.0", + "@solana/kit": "^7.0.0", "@solana/spl-token": "^0.4.0", + "@solana/sysvars": "^7.0.0", "@solana/web3.js": "^1.98.4" }, "devDependencies": { diff --git a/tokens/token-2022/transfer-hook/transfer-switch/anchor/pnpm-lock.yaml b/tokens/token-2022/transfer-hook/transfer-switch/anchor/pnpm-lock.yaml index e47b06cbe..90de638d2 100644 --- a/tokens/token-2022/transfer-hook/transfer-switch/anchor/pnpm-lock.yaml +++ b/tokens/token-2022/transfer-hook/transfer-switch/anchor/pnpm-lock.yaml @@ -14,9 +14,18 @@ importers: '@anchor-lang/core': specifier: 1.0.0-rc.5 version: 1.0.0-rc.5(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) + '@solana-program/token-2022': + specifier: ^0.15.0 + version: 0.15.0(@solana/kit@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10))(@solana/sysvars@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)) + '@solana/kit': + specifier: ^7.0.0 + version: 7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) '@solana/spl-token': specifier: ^0.4.0 version: 0.4.6(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) + '@solana/sysvars': + specifier: ^7.0.0 + version: 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) '@solana/web3.js': specifier: ^1.98.4 version: 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) @@ -264,6 +273,60 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + '@solana-program/record@0.3.0': + resolution: {integrity: sha512-q8z86INfXRQ5357qgVBrw05vC+u3xg8Vb4E1gEwnYUvAkL3cbJSjWVfTlGRiGWYmPNq/FYIWbsFrhsxXyhaJ+w==} + engines: {node: '>=24.0.0'} + peerDependencies: + '@solana/kit': ^7.0.0 + + '@solana-program/system@0.13.0': + resolution: {integrity: sha512-Id6QQxCG7ByImXPD5X/c3Ag2kySD+49aJ9waIkfxyUFyokhMQgxYQAx2rKuaygaBlaBQY6VVfBS46pqxZV+99A==} + peerDependencies: + '@solana/kit': ^7.0.0 + + '@solana-program/token-2022@0.15.0': + resolution: {integrity: sha512-Q9vR9kzP+l9AVWt2Uj5nH44BrnotiLFmX3AYDgsFQfuTla9n66RokNPGaSrCMUvQS0xRBv/u9BhH4p39qdB9Hw==} + engines: {node: '>=24.0.0'} + peerDependencies: + '@solana/kit': ^7.0.0 + '@solana/sysvars': ^7.0.0 + '@solana/zk-sdk': ^0.5.1 + peerDependenciesMeta: + '@solana/zk-sdk': + optional: true + + '@solana-program/zk-elgamal-proof@0.3.2': + resolution: {integrity: sha512-bCiRVKtqYZpajgC2RVypZL4A0xHjQYVEsVSNMTtPJ1jjE5KOUvsXhnngGMYShK6BHv+fQP4F8QKvEVW/HOSFAg==} + peerDependencies: + '@solana/kit': ^7.0.0 + + '@solana/accounts@7.1.0': + resolution: {integrity: sha512-0Vp2advYsTb7eb0jZveXZJaux6OSYcI3nitwoXOTZzCuzjbIjiHI/bpn3CcqfKBPW/1dnCIWAW7VW1otqH0a1w==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/addresses@7.1.0': + resolution: {integrity: sha512-kA/aav0TdyhrXCG6VCGG/fTuGu4ix5UW2PxtsbpBdZcyi+3TznLS1xKzIZBzqn0DL0q6HKdud6Ene7DWZDH1lw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/assertions@7.1.0': + resolution: {integrity: sha512-LD9+fhZb/xBECl27gfxDEX+qyj4PRV6700RJuprJWNMvGd8v0eoO0N+0QwnopK7o7O4w3DaW9/a3jH+iiwEqzw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/buffer-layout-utils@0.2.0': resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==} engines: {node: '>= 10'} @@ -281,9 +344,27 @@ packages: peerDependencies: typescript: '>=5.3.3' + '@solana/codecs-core@7.1.0': + resolution: {integrity: sha512-pl1gCCvviKekrijEDieZ1ps3LjC6ova2pZ/ZBXEJJa46nF7M0hwdZe/KzbMxKQ8WtT/WqW8Uyh6JQt8IJcMgRw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/codecs-data-structures@2.0.0-preview.2': resolution: {integrity: sha512-Xf5vIfromOZo94Q8HbR04TbgTwzigqrKII0GjYr21K7rb3nba4hUW2ir8kguY7HWFBcjHGlU5x3MevKBOLp3Zg==} + '@solana/codecs-data-structures@7.1.0': + resolution: {integrity: sha512-yCwyXCD1qtj0qJwCLQVS9aojKDio7t8kqXQVhLfasYFsckvecK+OObkoILkBXBJVmpOXI8nRYwNAb63+CvJo/g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/codecs-numbers@2.0.0-preview.2': resolution: {integrity: sha512-aLZnDTf43z4qOnpTcDsUVy1Ci9im1Md8thWipSWbE+WM9ojZAx528oAql+Cv8M8N+6ALKwgVRhPZkto6E59ARw==} @@ -293,14 +374,44 @@ packages: peerDependencies: typescript: '>=5.3.3' + '@solana/codecs-numbers@7.1.0': + resolution: {integrity: sha512-Hfw5OXx7tbSJ4iQ0r1ar6D+7XixkX8K36ni9cHDrunpiTo9SLIE0Lzj9/889aPNv4J4JggW1bpqzcrz3RI/o5g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/codecs-strings@2.0.0-preview.2': resolution: {integrity: sha512-EgBwY+lIaHHgMJIqVOGHfIfpdmmUDNoNO/GAUGeFPf+q0dF+DtwhJPEMShhzh64X2MeCZcmSO6Kinx0Bvmmz2g==} peerDependencies: fastestsmallesttextencoderdecoder: ^1.0.22 + '@solana/codecs-strings@7.1.0': + resolution: {integrity: sha512-YIv/XVDYTzkYiFRdbjK6tI1BUKNlV1ta5hl9oK6+CoCDZn7nECfAN96KPYs94jzbN5VgMgbEqi6tlQcdy5KuCg==} + engines: {node: '>=20.18.0'} + peerDependencies: + fastestsmallesttextencoderdecoder: ^1.0.22 + typescript: '>=5.4.0' + peerDependenciesMeta: + fastestsmallesttextencoderdecoder: + optional: true + typescript: + optional: true + '@solana/codecs@2.0.0-preview.2': resolution: {integrity: sha512-4HHzCD5+pOSmSB71X6w9ptweV48Zj1Vqhe732+pcAQ2cMNnN0gMPMdDq7j3YwaZDZ7yrILVV/3+HTnfT77t2yA==} + '@solana/codecs@7.1.0': + resolution: {integrity: sha512-4M1MgIiRX46qMUnrUjVnRnTxETmCZ7VLWddMdf+t6y3aVsMzz8kd9ngH7NloFhHtnAO0n3qJjs2rdgx/Dxd3Zg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/errors@2.0.0-preview.2': resolution: {integrity: sha512-H2DZ1l3iYF5Rp5pPbJpmmtCauWeQXRJapkDg8epQ8BJ7cA2Ut/QEtC3CMmw/iMTcuS6uemFNLcWvlOfoQhvQuA==} hasBin: true @@ -312,9 +423,271 @@ packages: peerDependencies: typescript: '>=5.3.3' + '@solana/errors@7.1.0': + resolution: {integrity: sha512-sJ0mM6SHN7fa6auHARRAGjjDpkFzhx6jmgHZAjliC/xADMfI2IYrTnAwguRV9dVBOsEHicylIXszvsyRb6BmEw==} + engines: {node: '>=20.18.0'} + hasBin: true + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/fast-stable-stringify@7.1.0': + resolution: {integrity: sha512-DV35b2DoqFwQlO7acwi0WG47oLSORGep7/lTkd/VrCB/MdM0J5TggQ0gRqc9v3ORBDQHcOYmMx6ym4Obqd1EFg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/fixed-points@7.1.0': + resolution: {integrity: sha512-xyVO7h8woz53L5dz9pV5akdf/EcluEvtV85cYtca1pp0ZpdcdnGQ2yve3mN/GuOEb+Ixzthrew2p0c5h9w4Bhg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/functional@7.1.0': + resolution: {integrity: sha512-1yfUFHkeMvrD/6yTDu3op3CgWIfr1KAvHo3XQL6yBvz0miEbiQ6tAEZbrwHpudES43sG8ZvlgrkL0Oiu5KwC9g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/instruction-plans@7.1.0': + resolution: {integrity: sha512-Ug7YSchE8Oq8PsaKYlr8IH0woYjmAgi7JdVwd1wtE1pReHvufH63WUsE6B6guqIkQPxiLZL/tmODzKas2zlVtA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/instructions@7.1.0': + resolution: {integrity: sha512-KnXUtSIbKCUjlposzfikAO3qSVliOSoMBzglQYSn3e0x0PpJ2MsVH6tzzI6v124YVhs0OSs5wFwYjENTedPgcg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/keys@7.1.0': + resolution: {integrity: sha512-BGRkTPeBIKPojwVEdYaBXtLMQ0fp8xtQiRxDhOSyYpd1bz52K4bmvrugVtSqfjWLVO+I8SRZGpSZq2G5+DgR1Q==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/kit@7.1.0': + resolution: {integrity: sha512-UvzQhbn7ITjoBIinGz7rrdPSfkE8/bl+c6TISTLOXiW5hZw16mKOAkK28duP6bJutgQ57L0oJ4HYu5BTzAznOg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/nominal-types@7.1.0': + resolution: {integrity: sha512-oN+gGAqBnGc/iGIq5i4Q/+VFyTqbh0wpLnWTtMbFpXmevrdX3IPPBW5Z76ysZtTtv+M4Ha64kqc2upLJBUGM0A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/offchain-messages@7.1.0': + resolution: {integrity: sha512-nQBqXNLjDvUybc6oRS936gHLGzKwKy9fSlUV4OPo1mLG5V8TcW+jhCc1UOJdmfj0FYDDq5rzqmFTVK4yEu7brw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/options@2.0.0-preview.2': resolution: {integrity: sha512-FAHqEeH0cVsUOTzjl5OfUBw2cyT8d5Oekx4xcn5hn+NyPAfQJgM3CEThzgRD6Q/4mM5pVUnND3oK/Mt1RzSE/w==} + '@solana/options@7.1.0': + resolution: {integrity: sha512-6Z6NYrnDB7qQXE7liHVpf0+5ytJogNw6QGsO8On/csX4f5WGBLxeP0JJQNnkOvuTrBkUMEq6YtTFxp4/Plqx9A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/plugin-core@7.1.0': + resolution: {integrity: sha512-2UhReZOhFoUMcYz+72EDM3UIrrONZBpP8uhofPKNDmKPslDuJHc8q4RRlO1llGgrfV6dMIsk9j8uV4q3DjWu5g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/plugin-interfaces@7.1.0': + resolution: {integrity: sha512-5QXBy1RnbWmHRCIDZRZ0W2lMnWEw65lw9X+geJmiEfbLnTPKZdpYe+5YSClz26RMcp8X2ETovkgp0E8y0Zz0yg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/program-client-core@7.1.0': + resolution: {integrity: sha512-81CmiYVovOElru2E7ZpBg3aAaCOdgEB4FqRatxr3EUKcP8xzsM/gti7sZxmZCd6wyLLAQQokNxpLYBjspC4ZEw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/programs@7.1.0': + resolution: {integrity: sha512-SiHIxX4lbHD36tOFNWyE9T984+yq9X+EOhxg3P2LKDg7nZep9F6L7Qhgw4R+aXF/Zqpy2q8XzO7NYLeT6piQ3g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/promises@7.1.0': + resolution: {integrity: sha512-4I0tTa0Peh9U6cEJUR3Y0VyQneFGA2C8dL+sw00Dtfr/4hVGr03wmjHUq6CcCiH6e7WqNuznNKsqahe3BgrOMg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-api@7.1.0': + resolution: {integrity: sha512-mluuAalyk5mfdi2lnPLDCPj6RElgZ0DCaNZmQZhnVM0SabvWxpBIzvTYqmy56Z/b9yiycfkVG3h6ISMZMddNuA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-parsed-types@7.1.0': + resolution: {integrity: sha512-WVHfz/VmqZpPbpyTgqz6W4Yk1rKa7tfjSqa77KbWi+yXDzZ+Oha+bAscXxY/yg/w6auu7/JY5+t7Qd0qIjrGmQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-spec-types@7.1.0': + resolution: {integrity: sha512-nEKJARQq8x9YQB/TBptw99bNU9KsmsObu51VleXwTi+PCowHbU7yaNad1lxg81iiX9Z4Lwvvo4c5UdVA4xkYFQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-spec@7.1.0': + resolution: {integrity: sha512-vmFN/HNK0bUV+sDPqs7+NV/orY23PByWN82J1Q4PFZKCOCnyFO/A06pd/MCVuPjmcaJ62xFhTcORrit6dTQL3A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-subscriptions-api@7.1.0': + resolution: {integrity: sha512-lzi8sPWuMyT89/L1ebY+MTzOma/6vsRdFTFcY5pe4pO4Sfi59j4p+HeYUu/NS0E6+/7Ng3BHFeTtuKD6QkhPDg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-subscriptions-channel-websocket@7.1.0': + resolution: {integrity: sha512-eW0JCgwSM7YV1YKkZN4rtfIGhh5WSJkCf2+JV1wscF6Zn4hK/9kr8MJ0Y0LWtoDMIuX0W3RCJnYG4T/Pcm1v6w==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-subscriptions-spec@7.1.0': + resolution: {integrity: sha512-f+s6qIzUHxUTyoZoOvz2uw8Y6tYyUefLxxJtavMZEDXEjsAQ0Zv+yhmPZ5tQCo1JyHGS6EKvaw9AjxVC68NHDA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-subscriptions@7.1.0': + resolution: {integrity: sha512-Vjs6d1AagH9r52smhX9zxSwprPKvqsWw8XFmvtGbUNI5lxtX1W4TIukscpXiau7dqe6zH6q6cfs9UtuOgY5sXA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-transformers@7.1.0': + resolution: {integrity: sha512-3sSO13m25IkkS1mXnWFZYwgSOSturEGFQMIs37vdqgiJFAYJjmossOozE+fqOY0CI1oebyURhm5gM86ATuHDYw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-transport-http@7.1.0': + resolution: {integrity: sha512-9zT58Ahfhd/sdYNMKvVOmPLpIMsdrZOrJlnuK0nmB+D8KWbqswDUV46H2HGxRFjvGgKep/CtOSx4RM+kt14ezQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-types@7.1.0': + resolution: {integrity: sha512-pZO8+EroeRv7kb/d42qQeKHvUmm5tBvH0tXe8Kl2QkqG9+BCZ8NXXd+K7GbYWfVz3XtYmV3W/1B67s1DnzRldQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc@7.1.0': + resolution: {integrity: sha512-K9PvA39IQ+Z5/GYuDv4xXDPwk1KAPegnMu97b999yH09lBfsWpkHTGCCmNNy7bJAD346IQ/90/KgIbB/YnMEkw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/signers@7.1.0': + resolution: {integrity: sha512-sGGEOhPQLn+M9Y5QF3BgzAh9ECoq+XxIOUhyEpCSoUB725oMerir7lgsuyHvSkANhnoGnVxMhy/3b9wzVIazig==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/spl-token-group@0.0.4': resolution: {integrity: sha512-7+80nrEMdUKlK37V6kOe024+T7J4nNss0F8LQ9OOPYdWCCfJmsGUzVx2W3oeizZR4IHM6N4yC9v1Xqwc3BTPWw==} engines: {node: '>=16'} @@ -337,6 +710,60 @@ packages: resolution: {integrity: sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA==} engines: {node: '>=16'} + '@solana/subscribable@7.1.0': + resolution: {integrity: sha512-8YnZV34WRN/AHP1B2XUlLIkINI9AYGcv1lqc2pFswS4VEL0c4iXyCfCXg9D1FM/obEhlU73h+ZJK4deg8yasgA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/sysvars@7.1.0': + resolution: {integrity: sha512-8UZsIsHS0JcYTy41QK9eewWj34mSkahsgD5TQPk/M69W34ElQOLKLkooj4iwXdnV2tMlNniKMIDoIQUhGCfhZw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/transaction-confirmation@7.1.0': + resolution: {integrity: sha512-IZd2eEvhIdIaIkZAd6ugeTLB1f8pB5iwu+NmSk2vH0FUGVf3wJui8NzZyj/8+5a6Ps2WUa79JIIizVdvIOzV8A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/transaction-introspection@7.1.0': + resolution: {integrity: sha512-AKev/afwQpkTjjNPUsYrZ7lwI76wNiZGy5T5m9FBhVrncg8evMjUHhVrnTvLTLkqMGuVgteR2BH9e2S+igwxPg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/transaction-messages@7.1.0': + resolution: {integrity: sha512-5JKj7mCppHBzJQF67n5YVaPR3nLNe5+sbgJcSbD2woyR7pdUhjNYyzG2HFeWDghbROpQzy9Dy7Km9iTjw3ry5A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/transactions@7.1.0': + resolution: {integrity: sha512-J/31jUwrbmJkk4vHnyenbF8iz2dHnhTW0HEzOp86YzVHbm171g5ujL1mmOP4nh8r/UA6xH4QbEJ4kTrID6cN5w==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/web3.js@1.98.4': resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==} @@ -492,6 +919,10 @@ packages: resolution: {integrity: sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A==} engines: {node: '>=20'} + commander@15.0.0: + resolution: {integrity: sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==} + engines: {node: '>=22.12.0'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -862,6 +1293,9 @@ packages: engines: {node: '>=14.17'} hasBin: true + undici-types@8.10.0: + resolution: {integrity: sha512-ibvdovq3nCFs8Msrd95BW+zUOq+aOVbT+wpHUoPWhztbHEoPc6oof51iFDB6Es8lTKvNvVW9jNSAB8dwrKTMGg==} + undici-types@8.3.0: resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} @@ -920,6 +1354,18 @@ packages: utf-8-validate: optional: true + ws@8.21.3: + resolution: {integrity: sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -1100,6 +1546,58 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true + '@solana-program/record@0.3.0(@solana/kit@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10))': + dependencies: + '@solana/kit': 7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) + + '@solana-program/system@0.13.0(@solana/kit@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10))': + dependencies: + '@solana/kit': 7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) + + '@solana-program/token-2022@0.15.0(@solana/kit@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10))(@solana/sysvars@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3))': + dependencies: + '@noble/curves': 1.9.7 + '@solana-program/record': 0.3.0(@solana/kit@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)) + '@solana-program/zk-elgamal-proof': 0.3.2(@solana/kit@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)) + '@solana/kit': 7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) + '@solana/sysvars': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + + '@solana-program/zk-elgamal-proof@0.3.2(@solana/kit@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10))': + dependencies: + '@solana-program/system': 0.13.0(@solana/kit@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)) + '@solana/kit': 7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) + + '@solana/accounts@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/addresses@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/assertions': 7.1.0(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/assertions@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)': dependencies: '@solana/buffer-layout': 4.0.1 @@ -1125,12 +1623,26 @@ snapshots: '@solana/errors': 2.3.0(typescript@5.9.3) typescript: 5.9.3 + '@solana/codecs-core@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + '@solana/codecs-data-structures@2.0.0-preview.2': 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-data-structures@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + '@solana/codecs-numbers@2.0.0-preview.2': dependencies: '@solana/codecs-core': 2.0.0-preview.2 @@ -1142,6 +1654,13 @@ snapshots: '@solana/errors': 2.3.0(typescript@5.9.3) typescript: 5.9.3 + '@solana/codecs-numbers@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + '@solana/codecs-strings@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)': dependencies: '@solana/codecs-core': 2.0.0-preview.2 @@ -1149,6 +1668,15 @@ snapshots: '@solana/errors': 2.0.0-preview.2 fastestsmallesttextencoderdecoder: 1.0.22 + '@solana/codecs-strings@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + fastestsmallesttextencoderdecoder: 1.0.22 + typescript: 5.9.3 + '@solana/codecs@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)': dependencies: '@solana/codecs-core': 2.0.0-preview.2 @@ -1159,6 +1687,19 @@ snapshots: transitivePeerDependencies: - fastestsmallesttextencoderdecoder + '@solana/codecs@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/fixed-points': 7.1.0(typescript@5.9.3) + '@solana/options': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + '@solana/errors@2.0.0-preview.2': dependencies: chalk: 5.3.0 @@ -1170,11 +1711,340 @@ snapshots: commander: 14.0.1 typescript: 5.9.3 + '@solana/errors@7.1.0(typescript@5.9.3)': + dependencies: + chalk: 5.6.2 + commander: 15.0.0 + optionalDependencies: + typescript: 5.9.3 + + '@solana/fast-stable-stringify@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/fixed-points@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/functional@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/instruction-plans@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/instructions@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/keys@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/assertions': 7.1.0(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/kit@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)': + dependencies: + '@solana/accounts': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/instruction-plans': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/offchain-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/plugin-core': 7.1.0(typescript@5.9.3) + '@solana/plugin-interfaces': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/program-client-core': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/programs': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + '@solana/rpc': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-api': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-parsed-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-subscriptions': 7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/signers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/subscribable': 7.1.0(typescript@5.9.3) + '@solana/sysvars': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-confirmation': 7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) + '@solana/transaction-introspection': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - bufferutil + - fastestsmallesttextencoderdecoder + - utf-8-validate + + '@solana/nominal-types@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/offchain-messages@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + '@solana/options@2.0.0-preview.2': dependencies: '@solana/codecs-core': 2.0.0-preview.2 '@solana/codecs-numbers': 2.0.0-preview.2 + '@solana/options@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/plugin-core@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/plugin-interfaces@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/accounts': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/instruction-plans': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-subscriptions-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/signers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/program-client-core@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/accounts': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/instruction-plans': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/plugin-interfaces': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-api': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/signers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/programs@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/promises@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-api@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-parsed-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-transformers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc-parsed-types@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-spec-types@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-spec@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/subscribable': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-subscriptions-api@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-subscriptions-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-transformers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc-subscriptions-channel-websocket@7.1.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/rpc-subscriptions-spec': 7.1.0(typescript@5.9.3) + '@solana/subscribable': 7.1.0(typescript@5.9.3) + ws: 8.21.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@solana/rpc-subscriptions-spec@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/subscribable': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-subscriptions@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/fast-stable-stringify': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-subscriptions-api': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-subscriptions-channel-websocket': 7.1.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) + '@solana/rpc-subscriptions-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-transformers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/subscribable': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - bufferutil + - fastestsmallesttextencoderdecoder + - utf-8-validate + + '@solana/rpc-transformers@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc-transport-http@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + undici-types: 8.10.0 + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-types@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/fixed-points': 7.1.0(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/fast-stable-stringify': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/rpc-api': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-transformers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-transport-http': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/signers@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + '@solana/offchain-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + '@solana/spl-token-group@0.0.4(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)': dependencies: '@solana/codecs': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22) @@ -1210,6 +2080,95 @@ snapshots: dependencies: buffer: 6.0.3 + '@solana/subscribable@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/sysvars@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/accounts': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/transaction-confirmation@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + '@solana/rpc': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-subscriptions': 7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - bufferutil + - fastestsmallesttextencoderdecoder + - utf-8-validate + + '@solana/transaction-introspection@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/transaction-messages@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/transactions@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + '@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)': dependencies: '@babel/runtime': 7.28.4 @@ -1381,6 +2340,8 @@ snapshots: commander@14.0.1: {} + commander@15.0.0: {} + commander@2.20.3: {} cross-fetch@3.2.0: @@ -1745,6 +2706,8 @@ snapshots: typescript@5.9.3: {} + undici-types@8.10.0: {} + undici-types@8.3.0: {} utf-8-validate@5.0.10: @@ -1789,6 +2752,11 @@ snapshots: bufferutil: 4.0.9 utf-8-validate: 5.0.10 + ws@8.21.3(bufferutil@4.0.9)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.9 + utf-8-validate: 5.0.10 + y18n@5.0.8: {} yargs-parser@21.1.1: {} diff --git a/tokens/token-2022/transfer-hook/transfer-switch/anchor/tests/litesvm.test.ts b/tokens/token-2022/transfer-hook/transfer-switch/anchor/tests/litesvm.test.ts index bb49ea539..3f48a470e 100644 --- a/tokens/token-2022/transfer-hook/transfer-switch/anchor/tests/litesvm.test.ts +++ b/tokens/token-2022/transfer-hook/transfer-switch/anchor/tests/litesvm.test.ts @@ -1,6 +1,5 @@ import * as anchor from '@anchor-lang/core'; import { - AccountLayout, ASSOCIATED_TOKEN_PROGRAM_ID, createAssociatedTokenAccountInstruction, createInitializeMintInstruction, @@ -13,6 +12,7 @@ import { TOKEN_2022_PROGRAM_ID, } from '@solana/spl-token'; import { Keypair, PublicKey, SystemProgram, Transaction, type TransactionInstruction } from '@solana/web3.js'; +import { getTokenDecoder } from '@solana-program/token-2022'; import { LiteSVMProvider } from 'anchor-litesvm'; import { assert } from 'chai'; import { LiteSVM } from 'litesvm'; @@ -206,7 +206,7 @@ describe('Transfer switch', () => { await expectRevert(provider.sendAndConfirm(transaction, [sender])); const recipientTokenAccountData = client.getAccount(recipientTokenAccount).data; - const recipientBalance = AccountLayout.decode(recipientTokenAccountData).amount; + const recipientBalance = getTokenDecoder().decode(recipientTokenAccountData).amount; assert(recipientBalance === BigInt(0), 'transfer was successful'); }); @@ -255,7 +255,7 @@ describe('Transfer switch', () => { const recipientTokenAccountData = client.getAccount(recipientTokenAccount).data; - const recipientBalance = AccountLayout.decode(recipientTokenAccountData).amount; + const recipientBalance = getTokenDecoder().decode(recipientTokenAccountData).amount; assert(recipientBalance === bigIntAmount, 'transfer was not successful'); }); diff --git a/tokens/token-fundraiser/anchor/package.json b/tokens/token-fundraiser/anchor/package.json index 0c225a54c..143bc18cf 100644 --- a/tokens/token-fundraiser/anchor/package.json +++ b/tokens/token-fundraiser/anchor/package.json @@ -6,6 +6,8 @@ }, "dependencies": { "@anchor-lang/core": "1.0.0-rc.5", + "@solana-program/token": "^0.15.0", + "@solana/kit": "^7.0.0", "@solana/spl-token": "^0.4.6", "@solana/web3.js": "^1.98.4" }, diff --git a/tokens/token-fundraiser/anchor/pnpm-lock.yaml b/tokens/token-fundraiser/anchor/pnpm-lock.yaml index 7f7ea27e8..86ed79a07 100644 --- a/tokens/token-fundraiser/anchor/pnpm-lock.yaml +++ b/tokens/token-fundraiser/anchor/pnpm-lock.yaml @@ -14,6 +14,12 @@ importers: '@anchor-lang/core': specifier: 1.0.0-rc.5 version: 1.0.0-rc.5(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) + '@solana-program/token': + specifier: ^0.15.0 + version: 0.15.0(@solana/kit@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)) + '@solana/kit': + specifier: ^7.0.0 + version: 7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) '@solana/spl-token': specifier: ^0.4.6 version: 0.4.6(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) @@ -264,6 +270,44 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + '@solana-program/system@0.13.0': + resolution: {integrity: sha512-Id6QQxCG7ByImXPD5X/c3Ag2kySD+49aJ9waIkfxyUFyokhMQgxYQAx2rKuaygaBlaBQY6VVfBS46pqxZV+99A==} + peerDependencies: + '@solana/kit': ^7.0.0 + + '@solana-program/token@0.15.0': + resolution: {integrity: sha512-SeLm08EYIfT453I6lo7wTGgfMbz1s7bJ1jSHFHBFebSJHD3xF46zRgMxq3YKRlr/RM8jN0cG8SjZVu+IDvMxEA==} + engines: {node: '>=24.0.0'} + peerDependencies: + '@solana/kit': ^7.0.0 + + '@solana/accounts@7.1.0': + resolution: {integrity: sha512-0Vp2advYsTb7eb0jZveXZJaux6OSYcI3nitwoXOTZzCuzjbIjiHI/bpn3CcqfKBPW/1dnCIWAW7VW1otqH0a1w==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/addresses@7.1.0': + resolution: {integrity: sha512-kA/aav0TdyhrXCG6VCGG/fTuGu4ix5UW2PxtsbpBdZcyi+3TznLS1xKzIZBzqn0DL0q6HKdud6Ene7DWZDH1lw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/assertions@7.1.0': + resolution: {integrity: sha512-LD9+fhZb/xBECl27gfxDEX+qyj4PRV6700RJuprJWNMvGd8v0eoO0N+0QwnopK7o7O4w3DaW9/a3jH+iiwEqzw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/buffer-layout-utils@0.2.0': resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==} engines: {node: '>= 10'} @@ -281,9 +325,27 @@ packages: peerDependencies: typescript: '>=5.3.3' + '@solana/codecs-core@7.1.0': + resolution: {integrity: sha512-pl1gCCvviKekrijEDieZ1ps3LjC6ova2pZ/ZBXEJJa46nF7M0hwdZe/KzbMxKQ8WtT/WqW8Uyh6JQt8IJcMgRw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/codecs-data-structures@2.0.0-preview.2': resolution: {integrity: sha512-Xf5vIfromOZo94Q8HbR04TbgTwzigqrKII0GjYr21K7rb3nba4hUW2ir8kguY7HWFBcjHGlU5x3MevKBOLp3Zg==} + '@solana/codecs-data-structures@7.1.0': + resolution: {integrity: sha512-yCwyXCD1qtj0qJwCLQVS9aojKDio7t8kqXQVhLfasYFsckvecK+OObkoILkBXBJVmpOXI8nRYwNAb63+CvJo/g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/codecs-numbers@2.0.0-preview.2': resolution: {integrity: sha512-aLZnDTf43z4qOnpTcDsUVy1Ci9im1Md8thWipSWbE+WM9ojZAx528oAql+Cv8M8N+6ALKwgVRhPZkto6E59ARw==} @@ -293,14 +355,44 @@ packages: peerDependencies: typescript: '>=5.3.3' + '@solana/codecs-numbers@7.1.0': + resolution: {integrity: sha512-Hfw5OXx7tbSJ4iQ0r1ar6D+7XixkX8K36ni9cHDrunpiTo9SLIE0Lzj9/889aPNv4J4JggW1bpqzcrz3RI/o5g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/codecs-strings@2.0.0-preview.2': resolution: {integrity: sha512-EgBwY+lIaHHgMJIqVOGHfIfpdmmUDNoNO/GAUGeFPf+q0dF+DtwhJPEMShhzh64X2MeCZcmSO6Kinx0Bvmmz2g==} peerDependencies: fastestsmallesttextencoderdecoder: ^1.0.22 + '@solana/codecs-strings@7.1.0': + resolution: {integrity: sha512-YIv/XVDYTzkYiFRdbjK6tI1BUKNlV1ta5hl9oK6+CoCDZn7nECfAN96KPYs94jzbN5VgMgbEqi6tlQcdy5KuCg==} + engines: {node: '>=20.18.0'} + peerDependencies: + fastestsmallesttextencoderdecoder: ^1.0.22 + typescript: '>=5.4.0' + peerDependenciesMeta: + fastestsmallesttextencoderdecoder: + optional: true + typescript: + optional: true + '@solana/codecs@2.0.0-preview.2': resolution: {integrity: sha512-4HHzCD5+pOSmSB71X6w9ptweV48Zj1Vqhe732+pcAQ2cMNnN0gMPMdDq7j3YwaZDZ7yrILVV/3+HTnfT77t2yA==} + '@solana/codecs@7.1.0': + resolution: {integrity: sha512-4M1MgIiRX46qMUnrUjVnRnTxETmCZ7VLWddMdf+t6y3aVsMzz8kd9ngH7NloFhHtnAO0n3qJjs2rdgx/Dxd3Zg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/errors@2.0.0-preview.2': resolution: {integrity: sha512-H2DZ1l3iYF5Rp5pPbJpmmtCauWeQXRJapkDg8epQ8BJ7cA2Ut/QEtC3CMmw/iMTcuS6uemFNLcWvlOfoQhvQuA==} hasBin: true @@ -312,9 +404,271 @@ packages: peerDependencies: typescript: '>=5.3.3' + '@solana/errors@7.1.0': + resolution: {integrity: sha512-sJ0mM6SHN7fa6auHARRAGjjDpkFzhx6jmgHZAjliC/xADMfI2IYrTnAwguRV9dVBOsEHicylIXszvsyRb6BmEw==} + engines: {node: '>=20.18.0'} + hasBin: true + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/fast-stable-stringify@7.1.0': + resolution: {integrity: sha512-DV35b2DoqFwQlO7acwi0WG47oLSORGep7/lTkd/VrCB/MdM0J5TggQ0gRqc9v3ORBDQHcOYmMx6ym4Obqd1EFg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/fixed-points@7.1.0': + resolution: {integrity: sha512-xyVO7h8woz53L5dz9pV5akdf/EcluEvtV85cYtca1pp0ZpdcdnGQ2yve3mN/GuOEb+Ixzthrew2p0c5h9w4Bhg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/functional@7.1.0': + resolution: {integrity: sha512-1yfUFHkeMvrD/6yTDu3op3CgWIfr1KAvHo3XQL6yBvz0miEbiQ6tAEZbrwHpudES43sG8ZvlgrkL0Oiu5KwC9g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/instruction-plans@7.1.0': + resolution: {integrity: sha512-Ug7YSchE8Oq8PsaKYlr8IH0woYjmAgi7JdVwd1wtE1pReHvufH63WUsE6B6guqIkQPxiLZL/tmODzKas2zlVtA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/instructions@7.1.0': + resolution: {integrity: sha512-KnXUtSIbKCUjlposzfikAO3qSVliOSoMBzglQYSn3e0x0PpJ2MsVH6tzzI6v124YVhs0OSs5wFwYjENTedPgcg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/keys@7.1.0': + resolution: {integrity: sha512-BGRkTPeBIKPojwVEdYaBXtLMQ0fp8xtQiRxDhOSyYpd1bz52K4bmvrugVtSqfjWLVO+I8SRZGpSZq2G5+DgR1Q==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/kit@7.1.0': + resolution: {integrity: sha512-UvzQhbn7ITjoBIinGz7rrdPSfkE8/bl+c6TISTLOXiW5hZw16mKOAkK28duP6bJutgQ57L0oJ4HYu5BTzAznOg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/nominal-types@7.1.0': + resolution: {integrity: sha512-oN+gGAqBnGc/iGIq5i4Q/+VFyTqbh0wpLnWTtMbFpXmevrdX3IPPBW5Z76ysZtTtv+M4Ha64kqc2upLJBUGM0A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/offchain-messages@7.1.0': + resolution: {integrity: sha512-nQBqXNLjDvUybc6oRS936gHLGzKwKy9fSlUV4OPo1mLG5V8TcW+jhCc1UOJdmfj0FYDDq5rzqmFTVK4yEu7brw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/options@2.0.0-preview.2': resolution: {integrity: sha512-FAHqEeH0cVsUOTzjl5OfUBw2cyT8d5Oekx4xcn5hn+NyPAfQJgM3CEThzgRD6Q/4mM5pVUnND3oK/Mt1RzSE/w==} + '@solana/options@7.1.0': + resolution: {integrity: sha512-6Z6NYrnDB7qQXE7liHVpf0+5ytJogNw6QGsO8On/csX4f5WGBLxeP0JJQNnkOvuTrBkUMEq6YtTFxp4/Plqx9A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/plugin-core@7.1.0': + resolution: {integrity: sha512-2UhReZOhFoUMcYz+72EDM3UIrrONZBpP8uhofPKNDmKPslDuJHc8q4RRlO1llGgrfV6dMIsk9j8uV4q3DjWu5g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/plugin-interfaces@7.1.0': + resolution: {integrity: sha512-5QXBy1RnbWmHRCIDZRZ0W2lMnWEw65lw9X+geJmiEfbLnTPKZdpYe+5YSClz26RMcp8X2ETovkgp0E8y0Zz0yg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/program-client-core@7.1.0': + resolution: {integrity: sha512-81CmiYVovOElru2E7ZpBg3aAaCOdgEB4FqRatxr3EUKcP8xzsM/gti7sZxmZCd6wyLLAQQokNxpLYBjspC4ZEw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/programs@7.1.0': + resolution: {integrity: sha512-SiHIxX4lbHD36tOFNWyE9T984+yq9X+EOhxg3P2LKDg7nZep9F6L7Qhgw4R+aXF/Zqpy2q8XzO7NYLeT6piQ3g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/promises@7.1.0': + resolution: {integrity: sha512-4I0tTa0Peh9U6cEJUR3Y0VyQneFGA2C8dL+sw00Dtfr/4hVGr03wmjHUq6CcCiH6e7WqNuznNKsqahe3BgrOMg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-api@7.1.0': + resolution: {integrity: sha512-mluuAalyk5mfdi2lnPLDCPj6RElgZ0DCaNZmQZhnVM0SabvWxpBIzvTYqmy56Z/b9yiycfkVG3h6ISMZMddNuA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-parsed-types@7.1.0': + resolution: {integrity: sha512-WVHfz/VmqZpPbpyTgqz6W4Yk1rKa7tfjSqa77KbWi+yXDzZ+Oha+bAscXxY/yg/w6auu7/JY5+t7Qd0qIjrGmQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-spec-types@7.1.0': + resolution: {integrity: sha512-nEKJARQq8x9YQB/TBptw99bNU9KsmsObu51VleXwTi+PCowHbU7yaNad1lxg81iiX9Z4Lwvvo4c5UdVA4xkYFQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-spec@7.1.0': + resolution: {integrity: sha512-vmFN/HNK0bUV+sDPqs7+NV/orY23PByWN82J1Q4PFZKCOCnyFO/A06pd/MCVuPjmcaJ62xFhTcORrit6dTQL3A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-subscriptions-api@7.1.0': + resolution: {integrity: sha512-lzi8sPWuMyT89/L1ebY+MTzOma/6vsRdFTFcY5pe4pO4Sfi59j4p+HeYUu/NS0E6+/7Ng3BHFeTtuKD6QkhPDg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-subscriptions-channel-websocket@7.1.0': + resolution: {integrity: sha512-eW0JCgwSM7YV1YKkZN4rtfIGhh5WSJkCf2+JV1wscF6Zn4hK/9kr8MJ0Y0LWtoDMIuX0W3RCJnYG4T/Pcm1v6w==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-subscriptions-spec@7.1.0': + resolution: {integrity: sha512-f+s6qIzUHxUTyoZoOvz2uw8Y6tYyUefLxxJtavMZEDXEjsAQ0Zv+yhmPZ5tQCo1JyHGS6EKvaw9AjxVC68NHDA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-subscriptions@7.1.0': + resolution: {integrity: sha512-Vjs6d1AagH9r52smhX9zxSwprPKvqsWw8XFmvtGbUNI5lxtX1W4TIukscpXiau7dqe6zH6q6cfs9UtuOgY5sXA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-transformers@7.1.0': + resolution: {integrity: sha512-3sSO13m25IkkS1mXnWFZYwgSOSturEGFQMIs37vdqgiJFAYJjmossOozE+fqOY0CI1oebyURhm5gM86ATuHDYw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-transport-http@7.1.0': + resolution: {integrity: sha512-9zT58Ahfhd/sdYNMKvVOmPLpIMsdrZOrJlnuK0nmB+D8KWbqswDUV46H2HGxRFjvGgKep/CtOSx4RM+kt14ezQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-types@7.1.0': + resolution: {integrity: sha512-pZO8+EroeRv7kb/d42qQeKHvUmm5tBvH0tXe8Kl2QkqG9+BCZ8NXXd+K7GbYWfVz3XtYmV3W/1B67s1DnzRldQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc@7.1.0': + resolution: {integrity: sha512-K9PvA39IQ+Z5/GYuDv4xXDPwk1KAPegnMu97b999yH09lBfsWpkHTGCCmNNy7bJAD346IQ/90/KgIbB/YnMEkw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/signers@7.1.0': + resolution: {integrity: sha512-sGGEOhPQLn+M9Y5QF3BgzAh9ECoq+XxIOUhyEpCSoUB725oMerir7lgsuyHvSkANhnoGnVxMhy/3b9wzVIazig==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/spl-token-group@0.0.4': resolution: {integrity: sha512-7+80nrEMdUKlK37V6kOe024+T7J4nNss0F8LQ9OOPYdWCCfJmsGUzVx2W3oeizZR4IHM6N4yC9v1Xqwc3BTPWw==} engines: {node: '>=16'} @@ -337,6 +691,60 @@ packages: resolution: {integrity: sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA==} engines: {node: '>=16'} + '@solana/subscribable@7.1.0': + resolution: {integrity: sha512-8YnZV34WRN/AHP1B2XUlLIkINI9AYGcv1lqc2pFswS4VEL0c4iXyCfCXg9D1FM/obEhlU73h+ZJK4deg8yasgA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/sysvars@7.1.0': + resolution: {integrity: sha512-8UZsIsHS0JcYTy41QK9eewWj34mSkahsgD5TQPk/M69W34ElQOLKLkooj4iwXdnV2tMlNniKMIDoIQUhGCfhZw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/transaction-confirmation@7.1.0': + resolution: {integrity: sha512-IZd2eEvhIdIaIkZAd6ugeTLB1f8pB5iwu+NmSk2vH0FUGVf3wJui8NzZyj/8+5a6Ps2WUa79JIIizVdvIOzV8A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/transaction-introspection@7.1.0': + resolution: {integrity: sha512-AKev/afwQpkTjjNPUsYrZ7lwI76wNiZGy5T5m9FBhVrncg8evMjUHhVrnTvLTLkqMGuVgteR2BH9e2S+igwxPg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/transaction-messages@7.1.0': + resolution: {integrity: sha512-5JKj7mCppHBzJQF67n5YVaPR3nLNe5+sbgJcSbD2woyR7pdUhjNYyzG2HFeWDghbROpQzy9Dy7Km9iTjw3ry5A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/transactions@7.1.0': + resolution: {integrity: sha512-J/31jUwrbmJkk4vHnyenbF8iz2dHnhTW0HEzOp86YzVHbm171g5ujL1mmOP4nh8r/UA6xH4QbEJ4kTrID6cN5w==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/web3.js@1.98.4': resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==} @@ -461,10 +869,6 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - chalk@5.6.2: resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} @@ -492,6 +896,10 @@ packages: resolution: {integrity: sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A==} engines: {node: '>=20'} + commander@15.0.0: + resolution: {integrity: sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==} + engines: {node: '>=22.12.0'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -862,6 +1270,9 @@ packages: engines: {node: '>=14.17'} hasBin: true + undici-types@8.10.0: + resolution: {integrity: sha512-ibvdovq3nCFs8Msrd95BW+zUOq+aOVbT+wpHUoPWhztbHEoPc6oof51iFDB6Es8lTKvNvVW9jNSAB8dwrKTMGg==} + undici-types@8.3.0: resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} @@ -920,6 +1331,18 @@ packages: utf-8-validate: optional: true + ws@8.21.3: + resolution: {integrity: sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -1100,6 +1523,46 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true + '@solana-program/system@0.13.0(@solana/kit@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10))': + dependencies: + '@solana/kit': 7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) + + '@solana-program/token@0.15.0(@solana/kit@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10))': + dependencies: + '@solana-program/system': 0.13.0(@solana/kit@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)) + '@solana/kit': 7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) + + '@solana/accounts@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/addresses@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/assertions': 7.1.0(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/assertions@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)': dependencies: '@solana/buffer-layout': 4.0.1 @@ -1125,12 +1588,26 @@ snapshots: '@solana/errors': 2.3.0(typescript@5.9.3) typescript: 5.9.3 + '@solana/codecs-core@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + '@solana/codecs-data-structures@2.0.0-preview.2': 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-data-structures@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + '@solana/codecs-numbers@2.0.0-preview.2': dependencies: '@solana/codecs-core': 2.0.0-preview.2 @@ -1142,6 +1619,13 @@ snapshots: '@solana/errors': 2.3.0(typescript@5.9.3) typescript: 5.9.3 + '@solana/codecs-numbers@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + '@solana/codecs-strings@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)': dependencies: '@solana/codecs-core': 2.0.0-preview.2 @@ -1149,6 +1633,15 @@ snapshots: '@solana/errors': 2.0.0-preview.2 fastestsmallesttextencoderdecoder: 1.0.22 + '@solana/codecs-strings@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + fastestsmallesttextencoderdecoder: 1.0.22 + typescript: 5.9.3 + '@solana/codecs@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)': dependencies: '@solana/codecs-core': 2.0.0-preview.2 @@ -1159,9 +1652,22 @@ snapshots: transitivePeerDependencies: - fastestsmallesttextencoderdecoder + '@solana/codecs@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/fixed-points': 7.1.0(typescript@5.9.3) + '@solana/options': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + '@solana/errors@2.0.0-preview.2': dependencies: - chalk: 5.3.0 + chalk: 5.6.2 commander: 12.1.0 '@solana/errors@2.3.0(typescript@5.9.3)': @@ -1170,11 +1676,340 @@ snapshots: commander: 14.0.1 typescript: 5.9.3 + '@solana/errors@7.1.0(typescript@5.9.3)': + dependencies: + chalk: 5.6.2 + commander: 15.0.0 + optionalDependencies: + typescript: 5.9.3 + + '@solana/fast-stable-stringify@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/fixed-points@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/functional@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/instruction-plans@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/instructions@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/keys@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/assertions': 7.1.0(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/kit@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)': + dependencies: + '@solana/accounts': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/instruction-plans': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/offchain-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/plugin-core': 7.1.0(typescript@5.9.3) + '@solana/plugin-interfaces': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/program-client-core': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/programs': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + '@solana/rpc': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-api': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-parsed-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-subscriptions': 7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/signers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/subscribable': 7.1.0(typescript@5.9.3) + '@solana/sysvars': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-confirmation': 7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) + '@solana/transaction-introspection': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - bufferutil + - fastestsmallesttextencoderdecoder + - utf-8-validate + + '@solana/nominal-types@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/offchain-messages@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + '@solana/options@2.0.0-preview.2': dependencies: '@solana/codecs-core': 2.0.0-preview.2 '@solana/codecs-numbers': 2.0.0-preview.2 + '@solana/options@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/plugin-core@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/plugin-interfaces@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/accounts': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/instruction-plans': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-subscriptions-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/signers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/program-client-core@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/accounts': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/instruction-plans': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/plugin-interfaces': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-api': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/signers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/programs@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/promises@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-api@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-parsed-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-transformers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc-parsed-types@7.1.0(typescript@5.9.3)': + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-spec-types@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-spec@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/subscribable': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-subscriptions-api@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-subscriptions-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-transformers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc-subscriptions-channel-websocket@7.1.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/rpc-subscriptions-spec': 7.1.0(typescript@5.9.3) + '@solana/subscribable': 7.1.0(typescript@5.9.3) + ws: 8.21.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@solana/rpc-subscriptions-spec@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/subscribable': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-subscriptions@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/fast-stable-stringify': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-subscriptions-api': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-subscriptions-channel-websocket': 7.1.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) + '@solana/rpc-subscriptions-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-transformers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/subscribable': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - bufferutil + - fastestsmallesttextencoderdecoder + - utf-8-validate + + '@solana/rpc-transformers@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc-transport-http@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + undici-types: 8.10.0 + optionalDependencies: + typescript: 5.9.3 + + '@solana/rpc-types@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/fixed-points': 7.1.0(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/fast-stable-stringify': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/rpc-api': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-spec': 7.1.0(typescript@5.9.3) + '@solana/rpc-spec-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-transformers': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-transport-http': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/signers@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + '@solana/offchain-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + '@solana/spl-token-group@0.0.4(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)': dependencies: '@solana/codecs': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22) @@ -1210,6 +2045,95 @@ snapshots: dependencies: buffer: 6.0.3 + '@solana/subscribable@7.1.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + '@solana/sysvars@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/accounts': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/transaction-confirmation@7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/promises': 7.1.0(typescript@5.9.3) + '@solana/rpc': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/rpc-subscriptions': 7.1.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - bufferutil + - fastestsmallesttextencoderdecoder + - utf-8-validate + + '@solana/transaction-introspection@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transactions': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/transaction-messages@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/transactions@7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)': + dependencies: + '@solana/addresses': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/codecs-core': 7.1.0(typescript@5.9.3) + '@solana/codecs-data-structures': 7.1.0(typescript@5.9.3) + '@solana/codecs-numbers': 7.1.0(typescript@5.9.3) + '@solana/codecs-strings': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/errors': 7.1.0(typescript@5.9.3) + '@solana/functional': 7.1.0(typescript@5.9.3) + '@solana/instructions': 7.1.0(typescript@5.9.3) + '@solana/keys': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/nominal-types': 7.1.0(typescript@5.9.3) + '@solana/rpc-types': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + '@solana/transaction-messages': 7.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + '@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)': dependencies: '@babel/runtime': 7.28.4 @@ -1357,8 +2281,6 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.3.0: {} - chalk@5.6.2: {} chokidar@4.0.3: @@ -1381,6 +2303,8 @@ snapshots: commander@14.0.1: {} + commander@15.0.0: {} + commander@2.20.3: {} cross-fetch@3.2.0: @@ -1745,6 +2669,8 @@ snapshots: typescript@5.9.3: {} + undici-types@8.10.0: {} + undici-types@8.3.0: {} utf-8-validate@5.0.10: @@ -1789,6 +2715,11 @@ snapshots: bufferutil: 4.0.9 utf-8-validate: 5.0.10 + ws@8.21.3(bufferutil@4.0.9)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.9 + utf-8-validate: 5.0.10 + y18n@5.0.8: {} yargs-parser@21.1.1: {} diff --git a/tokens/token-fundraiser/anchor/tests/fundraiser.ts b/tokens/token-fundraiser/anchor/tests/fundraiser.ts index 72d0043e2..ba8895d5a 100644 --- a/tokens/token-fundraiser/anchor/tests/fundraiser.ts +++ b/tokens/token-fundraiser/anchor/tests/fundraiser.ts @@ -9,7 +9,6 @@ import { mintTo, TOKEN_PROGRAM_ID, } from '@solana/spl-token'; -import BN from 'bn.js'; import { assert } from 'chai'; import type { Fundraiser } from '../target/types/fundraiser'; import { expectAnchorError } from './utils'; @@ -83,7 +82,7 @@ describe('fundraiser', () => { // duration=1 day. No clock-warping here (real validator) - the // post-deadline happy path is covered in litesvm.test.ts instead. const tx = await program.methods - .initialize(new BN(30000000), 1) + .initialize(new anchor.BN(30000000), 1) .accountsPartial({ maker: maker.publicKey, fundraiser, @@ -105,7 +104,7 @@ describe('fundraiser', () => { const vault = getAssociatedTokenAddressSync(mint, fundraiser, true); const tx = await program.methods - .contribute(new BN(1000000)) + .contribute(new anchor.BN(1000000)) .accountsPartial({ contributor: provider.publicKey, fundraiser, @@ -128,7 +127,7 @@ describe('fundraiser', () => { const vault = getAssociatedTokenAddressSync(mint, fundraiser, true); const tx = await program.methods - .contribute(new BN(1000000)) + .contribute(new anchor.BN(1000000)) .accountsPartial({ contributor: provider.publicKey, fundraiser, @@ -155,7 +154,7 @@ describe('fundraiser', () => { await expectAnchorError( program.methods - .contribute(new BN(2000000)) + .contribute(new anchor.BN(2000000)) .accountsPartial({ contributor: provider.publicKey, fundraiser, diff --git a/tokens/token-fundraiser/anchor/tests/litesvm.test.ts b/tokens/token-fundraiser/anchor/tests/litesvm.test.ts index c28201507..9c2a5994b 100644 --- a/tokens/token-fundraiser/anchor/tests/litesvm.test.ts +++ b/tokens/token-fundraiser/anchor/tests/litesvm.test.ts @@ -1,6 +1,5 @@ import * as anchor from '@anchor-lang/core'; import { - AccountLayout, ASSOCIATED_TOKEN_PROGRAM_ID, createAssociatedTokenAccountInstruction, createInitializeMint2Instruction, @@ -10,8 +9,8 @@ import { TOKEN_PROGRAM_ID, } from '@solana/spl-token'; import { PublicKey } from '@solana/web3.js'; +import { getTokenDecoder } from '@solana-program/token'; import { LiteSVMProvider } from 'anchor-litesvm'; -import BN from 'bn.js'; import { assert } from 'chai'; import { LiteSVM } from 'litesvm'; import IDL from '../target/idl/fundraiser.json'; @@ -48,7 +47,7 @@ describe('fundraiser litesvm', () => { )[0]; const tokenBalance = (account: anchor.web3.PublicKey) => - AccountLayout.decode(client.getAccount(account).data).amount; + getTokenDecoder().decode(client.getAccount(account).data).amount; it('Test Preparation', async () => { client.airdrop(maker.publicKey, BigInt(anchor.web3.LAMPORTS_PER_SOL)); @@ -84,7 +83,7 @@ describe('fundraiser litesvm', () => { // duration=1 day. This suite can warp its own clock, so it covers // the full lifecycle (see the tests below). const tx = await program.methods - .initialize(new BN(30000000), 1) + .initialize(new anchor.BN(30000000), 1) .accountsPartial({ maker: maker.publicKey, fundraiser, @@ -105,7 +104,7 @@ describe('fundraiser litesvm', () => { const vault = getAssociatedTokenAddressSync(mint, fundraiser, true); const tx = await program.methods - .contribute(new BN(1000000)) + .contribute(new anchor.BN(1000000)) .accountsPartial({ contributor: provider.publicKey, fundraiser, @@ -128,7 +127,7 @@ describe('fundraiser litesvm', () => { const vault = getAssociatedTokenAddressSync(mint, fundraiser, true); const tx = await program.methods - .contribute(new BN(1000000)) + .contribute(new anchor.BN(1000000)) .accountsPartial({ contributor: provider.publicKey, fundraiser, @@ -154,7 +153,7 @@ describe('fundraiser litesvm', () => { await expectAnchorError( program.methods - .contribute(new BN(2000000)) + .contribute(new anchor.BN(2000000)) .accountsPartial({ contributor: provider.publicKey, fundraiser, @@ -237,7 +236,7 @@ describe('fundraiser litesvm', () => { // the time check can reject this - proving it's the deadline. await expectAnchorError( program.methods - .contribute(new BN(1000000)) + .contribute(new anchor.BN(1000000)) .accountsPartial({ contributor: provider.publicKey, fundraiser, diff --git a/tokens/token-swap/anchor/tests/swap.ts b/tokens/token-swap/anchor/tests/swap.ts index 5030fb584..f809ac5f0 100644 --- a/tokens/token-swap/anchor/tests/swap.ts +++ b/tokens/token-swap/anchor/tests/swap.ts @@ -1,6 +1,5 @@ import type { Program } from '@anchor-lang/core'; import * as anchor from '@anchor-lang/core'; -import { BN } from 'bn.js'; import { expect } from 'chai'; import type { SwapExample } from '../target/types/swap_example'; import { createValues, mintingTokens, type TestValues } from './utils'; @@ -63,9 +62,9 @@ describe('Swap', () => { }); it('Swap from A to B', async () => { - const input = new BN(10 ** 6); + const input = new anchor.BN(10 ** 6); await program.methods - .swapExactTokensForTokens(true, input, new BN(100)) + .swapExactTokensForTokens(true, input, new anchor.BN(100)) .accountsPartial({ amm: values.ammKey, pool: values.poolKey, diff --git a/tokens/token-swap/anchor/tests/utils.ts b/tokens/token-swap/anchor/tests/utils.ts index e1e345906..6ae5c99ed 100644 --- a/tokens/token-swap/anchor/tests/utils.ts +++ b/tokens/token-swap/anchor/tests/utils.ts @@ -6,7 +6,6 @@ import { mintTo, } from '@solana/spl-token'; import { type Connection, Keypair, PublicKey, type Signer } from '@solana/web3.js'; -import { BN } from 'bn.js'; export async function sleep(seconds: number) { new Promise(resolve => setTimeout(resolve, seconds * 1000)); @@ -98,7 +97,7 @@ export function createValues(defaults?: TestValuesDefaults): TestValues { // Making sure tokens are in the right order const mintAKeypair = Keypair.generate(); let mintBKeypair = Keypair.generate(); - while (new BN(mintBKeypair.publicKey.toBytes()).lt(new BN(mintAKeypair.publicKey.toBytes()))) { + while (new anchor.BN(mintBKeypair.publicKey.toBytes()).lt(new anchor.BN(mintAKeypair.publicKey.toBytes()))) { mintBKeypair = Keypair.generate(); } @@ -139,9 +138,9 @@ export function createValues(defaults?: TestValuesDefaults): TestValues { liquidityAccount: getAssociatedTokenAddressSync(mintLiquidity, admin.publicKey, true), holderAccountA: getAssociatedTokenAddressSync(mintAKeypair.publicKey, admin.publicKey, true), holderAccountB: getAssociatedTokenAddressSync(mintBKeypair.publicKey, admin.publicKey, true), - depositAmountA: new BN(4 * 10 ** 6), - depositAmountB: new BN(1 * 10 ** 6), - minimumLiquidity: new BN(100), - defaultSupply: new BN(100 * 10 ** 6), + depositAmountA: new anchor.BN(4 * 10 ** 6), + depositAmountB: new anchor.BN(1 * 10 ** 6), + minimumLiquidity: new anchor.BN(100), + defaultSupply: new anchor.BN(100 * 10 ** 6), }; } diff --git a/tokens/transfer-tokens/anchor/package.json b/tokens/transfer-tokens/anchor/package.json index 1b86d9305..24a9f3544 100644 --- a/tokens/transfer-tokens/anchor/package.json +++ b/tokens/transfer-tokens/anchor/package.json @@ -3,7 +3,6 @@ "dependencies": { "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-token": "^0.3.8", - "bn.js": "^5.2.1", "@solana/web3.js": "^1.98.4" }, "scripts": { diff --git a/tokens/transfer-tokens/anchor/pnpm-lock.yaml b/tokens/transfer-tokens/anchor/pnpm-lock.yaml index 3b7729b16..5cf34d35c 100644 --- a/tokens/transfer-tokens/anchor/pnpm-lock.yaml +++ b/tokens/transfer-tokens/anchor/pnpm-lock.yaml @@ -20,9 +20,6 @@ importers: '@solana/web3.js': specifier: ^1.98.4 version: 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) - bn.js: - specifier: ^5.2.1 - version: 5.2.1 devDependencies: '@types/bn.js': specifier: ^5.1.0 diff --git a/tokens/transfer-tokens/anchor/tests/litesvm.test.ts b/tokens/transfer-tokens/anchor/tests/litesvm.test.ts index b0735bb86..dd2fb982b 100644 --- a/tokens/transfer-tokens/anchor/tests/litesvm.test.ts +++ b/tokens/transfer-tokens/anchor/tests/litesvm.test.ts @@ -2,7 +2,6 @@ import * as anchor from '@anchor-lang/core'; import { getAssociatedTokenAddressSync } from '@solana/spl-token'; import { Keypair, PublicKey } from '@solana/web3.js'; import { LiteSVMProvider } from 'anchor-litesvm'; -import BN from 'bn.js'; import { LiteSVM } from 'litesvm'; import IDL from '../target/idl/transfer_tokens.json'; import type { TransferTokens } from '../target/types/transfer_tokens'; @@ -54,7 +53,7 @@ describe('Transfer Tokens LiteSVM', () => { it('Mint tokens!', async () => { // Amount of tokens to mint. - const amount = new BN(100); + const amount = new anchor.BN(100); // Mint the tokens to the associated token account. const transactionSignature = await program.methods @@ -74,7 +73,7 @@ describe('Transfer Tokens LiteSVM', () => { it('Transfer tokens!', async () => { // Amount of tokens to transfer. - const amount = new BN(50); + const amount = new anchor.BN(50); const transactionSignature = await program.methods .transferTokens(amount) diff --git a/tokens/transfer-tokens/anchor/tests/test.ts b/tokens/transfer-tokens/anchor/tests/test.ts index 8d0753e27..a84cc9d99 100644 --- a/tokens/transfer-tokens/anchor/tests/test.ts +++ b/tokens/transfer-tokens/anchor/tests/test.ts @@ -1,7 +1,6 @@ import * as anchor from '@anchor-lang/core'; import { getAssociatedTokenAddressSync } from '@solana/spl-token'; import { Keypair } from '@solana/web3.js'; -import { BN } from 'bn.js'; import type { TransferTokens } from '../target/types/transfer_tokens'; describe('Transfer Tokens', () => { @@ -45,7 +44,7 @@ describe('Transfer Tokens', () => { it('Mint tokens!', async () => { // Amount of tokens to mint. - const amount = new BN(100); + const amount = new anchor.BN(100); // Mint the tokens to the associated token account. const transactionSignature = await program.methods @@ -65,7 +64,7 @@ describe('Transfer Tokens', () => { it('Transfer tokens!', async () => { // Amount of tokens to transfer. - const amount = new BN(50); + const amount = new anchor.BN(50); const transactionSignature = await program.methods .transferTokens(amount) diff --git a/tokens/transfer-tokens/native/package.json b/tokens/transfer-tokens/native/package.json index bf3f18e75..91fddaafa 100644 --- a/tokens/transfer-tokens/native/package.json +++ b/tokens/transfer-tokens/native/package.json @@ -9,8 +9,7 @@ "dependencies": { "@solana-program/system": "^0.13.0", "@solana-program/token": "^0.15.0", - "@solana/kit": "^7.0.0", - "borsh": "^2.0.0" + "@solana/kit": "^7.0.0" }, "devDependencies": { "@types/chai": "^5.2.3", diff --git a/tokens/transfer-tokens/native/pnpm-lock.yaml b/tokens/transfer-tokens/native/pnpm-lock.yaml index 7f7c58c3e..77eae66bc 100644 --- a/tokens/transfer-tokens/native/pnpm-lock.yaml +++ b/tokens/transfer-tokens/native/pnpm-lock.yaml @@ -17,9 +17,6 @@ importers: '@solana/kit': specifier: ^7.0.0 version: 7.0.0(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) - borsh: - specifier: ^2.0.0 - version: 2.0.0 devDependencies: '@types/chai': specifier: ^5.2.3 @@ -1048,9 +1045,6 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - borsh@2.0.0: - resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==} - brace-expansion@2.1.3: resolution: {integrity: sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A==} @@ -2534,8 +2528,6 @@ snapshots: balanced-match@1.0.2: {} - borsh@2.0.0: {} - brace-expansion@2.1.3: dependencies: balanced-match: 1.0.2 diff --git a/tokens/transfer-tokens/native/tests/instructions.ts b/tokens/transfer-tokens/native/tests/instructions.ts deleted file mode 100644 index 22cd047f7..000000000 --- a/tokens/transfer-tokens/native/tests/instructions.ts +++ /dev/null @@ -1,38 +0,0 @@ -import * as borsh from 'borsh'; - -export enum MyInstruction { - Create = 0, - MintNft = 1, - MintSpl = 2, - TransferTokens = 3, -} - -export const CreateTokenArgsSchema = { - struct: { - instruction: 'u8', - token_title: 'string', - token_symbol: 'string', - token_uri: 'string', - decimals: 'u8', - }, -}; - -export const MintNftArgsSchema = { struct: { instruction: 'u8' } }; - -export const MintSplArgsSchema = { - struct: { - instruction: 'u8', - quantity: 'u64', - }, -}; - -export const TransferTokensArgsSchema = { - struct: { - instruction: 'u8', - quantity: 'u64', - }, -}; - -export function borshSerialize(schema: borsh.Schema, data: object): Buffer { - return Buffer.from(borsh.serialize(schema, data)); -} diff --git a/tokens/transfer-tokens/native/tests/test.ts b/tokens/transfer-tokens/native/tests/test.ts index 0da92c7e0..de2704d44 100644 --- a/tokens/transfer-tokens/native/tests/test.ts +++ b/tokens/transfer-tokens/native/tests/test.ts @@ -1,6 +1,4 @@ import { - AccountRole, - address, type Address, appendTransactionMessageInstruction, createTransactionMessage, @@ -15,27 +13,16 @@ import { signTransactionMessageWithSigners, unwrapOption, } from '@solana/kit'; -import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; -import { - ASSOCIATED_TOKEN_PROGRAM_ADDRESS, - findAssociatedTokenPda, - getMintDecoder, - getTokenDecoder, - TOKEN_PROGRAM_ADDRESS, -} from '@solana-program/token'; +import { findAssociatedTokenPda, getMintDecoder, getTokenDecoder, TOKEN_PROGRAM_ADDRESS } from '@solana-program/token'; import { assert } from 'chai'; import { FailedTransactionMetadata, LiteSVM } from 'litesvm'; import { - borshSerialize, - CreateTokenArgsSchema, - MintNftArgsSchema, - MintSplArgsSchema, - MyInstruction, - TransferTokensArgsSchema, -} from './instructions'; - -const TOKEN_METADATA_PROGRAM_ID = address('metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s'); -const SYSVAR_RENT_ADDRESS = address('SysvarRent111111111111111111111111111111111'); + createCreateInstruction, + createMintNftInstruction, + createMintSplInstruction, + createTransferTokensInstruction, + TOKEN_METADATA_PROGRAM_ADDRESS, +} from '../ts'; const addressEncoder = getAddressEncoder(); @@ -50,7 +37,7 @@ describe('Transferring Tokens', () => { before(async () => { programId = (await generateKeyPairSigner()).address; svm.addProgramFromFile(programId, 'tests/fixtures/transfer_tokens_program.so'); - svm.addProgramFromFile(TOKEN_METADATA_PROGRAM_ID, 'tests/fixtures/token_metadata.so'); + svm.addProgramFromFile(TOKEN_METADATA_PROGRAM_ADDRESS, 'tests/fixtures/token_metadata.so'); payer = await generateKeyPairSigner(); svm.airdrop(payer.address, lamports(10_000_000_000n)); @@ -76,18 +63,18 @@ describe('Transferring Tokens', () => { async function findMetadataPda(mint: Address): Promise
{ const [metadataAddress] = await getProgramDerivedAddress({ - programAddress: TOKEN_METADATA_PROGRAM_ID, - seeds: ['metadata', addressEncoder.encode(TOKEN_METADATA_PROGRAM_ID), addressEncoder.encode(mint)], + programAddress: TOKEN_METADATA_PROGRAM_ADDRESS, + seeds: ['metadata', addressEncoder.encode(TOKEN_METADATA_PROGRAM_ADDRESS), addressEncoder.encode(mint)], }); return metadataAddress; } async function findEditionPda(mint: Address): Promise
{ const [editionAddress] = await getProgramDerivedAddress({ - programAddress: TOKEN_METADATA_PROGRAM_ID, + programAddress: TOKEN_METADATA_PROGRAM_ADDRESS, seeds: [ 'metadata', - addressEncoder.encode(TOKEN_METADATA_PROGRAM_ID), + addressEncoder.encode(TOKEN_METADATA_PROGRAM_ADDRESS), addressEncoder.encode(mint), 'edition', ], @@ -117,28 +104,17 @@ describe('Transferring Tokens', () => { symbol: string, uri: string, ) { - const instructionData = borshSerialize(CreateTokenArgsSchema, { - instruction: MyInstruction.Create, - token_title: title, - token_symbol: symbol, - token_uri: uri, + const ix = createCreateInstruction( + mintKeypair, + payer.address, + await findMetadataPda(mintKeypair.address), + payer, + programId, + title, + symbol, + uri, decimals, - }); - - const ix = { - programAddress: programId, - accounts: [ - { address: mintKeypair.address, role: AccountRole.WRITABLE_SIGNER, signer: mintKeypair }, // Mint account - { address: payer.address, role: AccountRole.WRITABLE }, // Mint authority account - { address: await findMetadataPda(mintKeypair.address), role: AccountRole.WRITABLE }, // Metadata account - { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, // Payer - { address: SYSVAR_RENT_ADDRESS, role: AccountRole.READONLY }, // Rent account - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, // System program - { address: TOKEN_PROGRAM_ADDRESS, role: AccountRole.READONLY }, // Token program - { address: TOKEN_METADATA_PROGRAM_ID, role: AccountRole.READONLY }, // Token metadata program - ], - data: new Uint8Array(instructionData), - }; + ); await sendTransaction(ix); } @@ -162,7 +138,7 @@ describe('Transferring Tokens', () => { const metadataInfo = svm.getAccount(await findMetadataPda(tokenMintKeypair.address)); assert(metadataInfo.exists, 'metadata account not created'); - assert(metadataInfo.programAddress === TOKEN_METADATA_PROGRAM_ID, 'metadata account has wrong owner'); + assert(metadataInfo.programAddress === TOKEN_METADATA_PROGRAM_ADDRESS, 'metadata account has wrong owner'); }); it('Create an NFT!', async () => { @@ -187,24 +163,14 @@ describe('Transferring Tokens', () => { it('Mint some tokens to your wallet!', async () => { const associatedTokenAccountAddress = await findAssociatedTokenAddress(tokenMintKeypair.address, payer.address); - const instructionData = borshSerialize(MintSplArgsSchema, { - instruction: MyInstruction.MintSpl, - quantity: BigInt(150), - }); - - const ix = { - programAddress: programId, - accounts: [ - { address: tokenMintKeypair.address, role: AccountRole.WRITABLE }, // Mint account - { address: payer.address, role: AccountRole.WRITABLE }, // Mint authority account - { address: associatedTokenAccountAddress, role: AccountRole.WRITABLE }, // ATA - { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, // Payer - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, // System program - { address: TOKEN_PROGRAM_ADDRESS, role: AccountRole.READONLY }, // Token program - { address: ASSOCIATED_TOKEN_PROGRAM_ADDRESS, role: AccountRole.READONLY }, // Associated token program - ], - data: new Uint8Array(instructionData), - }; + const ix = createMintSplInstruction( + tokenMintKeypair.address, + payer.address, + associatedTokenAccountAddress, + payer, + programId, + 150n, + ); await sendTransaction(ix); @@ -220,27 +186,15 @@ describe('Transferring Tokens', () => { const editionAddress = await findEditionPda(nftMintKeypair.address); const associatedTokenAccountAddress = await findAssociatedTokenAddress(nftMintKeypair.address, payer.address); - const instructionData = borshSerialize(MintNftArgsSchema, { - instruction: MyInstruction.MintNft, - }); - - const ix = { - programAddress: programId, - accounts: [ - { address: nftMintKeypair.address, role: AccountRole.WRITABLE }, // Mint account - { address: await findMetadataPda(nftMintKeypair.address), role: AccountRole.WRITABLE }, // Metadata account - { address: editionAddress, role: AccountRole.WRITABLE }, // Edition account - { address: payer.address, role: AccountRole.WRITABLE }, // Mint authority account - { address: associatedTokenAccountAddress, role: AccountRole.WRITABLE }, // ATA - { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, // Payer - { address: SYSVAR_RENT_ADDRESS, role: AccountRole.READONLY }, // Rent account - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, // System program - { address: TOKEN_PROGRAM_ADDRESS, role: AccountRole.READONLY }, // Token program - { address: ASSOCIATED_TOKEN_PROGRAM_ADDRESS, role: AccountRole.READONLY }, // Associated token program - { address: TOKEN_METADATA_PROGRAM_ID, role: AccountRole.READONLY }, // Token metadata program - ], - data: new Uint8Array(instructionData), - }; + const ix = createMintNftInstruction( + nftMintKeypair.address, + await findMetadataPda(nftMintKeypair.address), + editionAddress, + payer.address, + associatedTokenAccountAddress, + payer, + programId, + ); await sendTransaction(ix); @@ -248,7 +202,7 @@ describe('Transferring Tokens', () => { const editionInfo = svm.getAccount(editionAddress); assert(editionInfo.exists, 'edition account not created'); - assert(editionInfo.programAddress === TOKEN_METADATA_PROGRAM_ID, 'edition account has wrong owner'); + assert(editionInfo.programAddress === TOKEN_METADATA_PROGRAM_ADDRESS, 'edition account has wrong owner'); const mintInfo = svm.getAccount(nftMintKeypair.address); assert(mintInfo.exists, 'mint account not found'); @@ -257,35 +211,22 @@ describe('Transferring Tokens', () => { }); async function transferTokens(mint: Address, quantity: bigint) { - const fromAssociatedTokenAddress = await findAssociatedTokenAddress(mint, payer.address); - const toAssociatedTokenAddress = await findAssociatedTokenAddress(mint, recipientWallet.address); - - const instructionData = borshSerialize(TransferTokensArgsSchema, { - instruction: MyInstruction.TransferTokens, + const ix = createTransferTokensInstruction( + mint, + await findAssociatedTokenAddress(mint, payer.address), + await findAssociatedTokenAddress(mint, recipientWallet.address), + payer, + recipientWallet, + payer, + programId, quantity, - }); - - const ix = { - programAddress: programId, - accounts: [ - { address: mint, role: AccountRole.WRITABLE }, // Mint account - { address: fromAssociatedTokenAddress, role: AccountRole.WRITABLE }, // Owner Token account - { address: toAssociatedTokenAddress, role: AccountRole.WRITABLE }, // Recipient Token account - { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, // Owner - { address: recipientWallet.address, role: AccountRole.WRITABLE_SIGNER, signer: recipientWallet }, // Recipient - { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, // Payer - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, // System program - { address: TOKEN_PROGRAM_ADDRESS, role: AccountRole.READONLY }, // Token program - { address: ASSOCIATED_TOKEN_PROGRAM_ADDRESS, role: AccountRole.READONLY }, // Associated token program - ], - data: new Uint8Array(instructionData), - }; + ); await sendTransaction(ix); } it('Transfer tokens to another wallet!', async () => { - await transferTokens(tokenMintKeypair.address, BigInt(15)); + await transferTokens(tokenMintKeypair.address, 15n); const fromAta = await findAssociatedTokenAddress(tokenMintKeypair.address, payer.address); const toAta = await findAssociatedTokenAddress(tokenMintKeypair.address, recipientWallet.address); @@ -294,7 +235,7 @@ describe('Transferring Tokens', () => { }); it('Transfer NFT to another wallet!', async () => { - await transferTokens(nftMintKeypair.address, BigInt(1)); + await transferTokens(nftMintKeypair.address, 1n); const fromAta = await findAssociatedTokenAddress(nftMintKeypair.address, payer.address); const toAta = await findAssociatedTokenAddress(nftMintKeypair.address, recipientWallet.address); diff --git a/tokens/transfer-tokens/native/ts/constants.ts b/tokens/transfer-tokens/native/ts/constants.ts new file mode 100644 index 000000000..fc2601414 --- /dev/null +++ b/tokens/transfer-tokens/native/ts/constants.ts @@ -0,0 +1,4 @@ +import { address } from '@solana/kit'; + +export const TOKEN_METADATA_PROGRAM_ADDRESS = address('metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s'); +export const SYSVAR_RENT_ADDRESS = address('SysvarRent111111111111111111111111111111111'); diff --git a/tokens/transfer-tokens/native/ts/index.ts b/tokens/transfer-tokens/native/ts/index.ts new file mode 100644 index 000000000..b4b5e9f91 --- /dev/null +++ b/tokens/transfer-tokens/native/ts/index.ts @@ -0,0 +1,2 @@ +export * from './constants'; +export * from './instructions'; diff --git a/tokens/transfer-tokens/native/ts/instructions/create.ts b/tokens/transfer-tokens/native/ts/instructions/create.ts new file mode 100644 index 000000000..f26a3c700 --- /dev/null +++ b/tokens/transfer-tokens/native/ts/instructions/create.ts @@ -0,0 +1,56 @@ +import { + AccountRole, + addEncoderSizePrefix, + type Address, + getStructEncoder, + getU8Encoder, + getU32Encoder, + getUtf8Encoder, + type TransactionSigner, +} from '@solana/kit'; +import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; +import { TOKEN_PROGRAM_ADDRESS } from '@solana-program/token'; +import { MyInstruction } from '.'; +import { SYSVAR_RENT_ADDRESS, TOKEN_METADATA_PROGRAM_ADDRESS } from '../constants'; + +// Instruction data layout, matching the program's `MyInstruction::Create(CreateTokenArgs)` variant. +export const createEncoder = getStructEncoder([ + ['instruction', getU8Encoder()], + ['token_title', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], + ['token_symbol', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], + ['token_uri', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())], + ['decimals', getU8Encoder()], +]); + +export function createCreateInstruction( + mint: TransactionSigner, + mintAuthority: Address, + metadata: Address, + payer: TransactionSigner, + programId: Address, + tokenTitle: string, + tokenSymbol: string, + tokenUri: string, + decimals: number, +) { + return { + programAddress: programId, + accounts: [ + { address: mint.address, role: AccountRole.WRITABLE_SIGNER, signer: mint }, + { address: mintAuthority, role: AccountRole.WRITABLE }, + { address: metadata, role: AccountRole.WRITABLE }, + { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, + { address: SYSVAR_RENT_ADDRESS, role: AccountRole.READONLY }, + { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + { address: TOKEN_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + { address: TOKEN_METADATA_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + ], + data: createEncoder.encode({ + instruction: MyInstruction.Create, + token_title: tokenTitle, + token_symbol: tokenSymbol, + token_uri: tokenUri, + decimals, + }), + }; +} diff --git a/tokens/transfer-tokens/native/ts/instructions/index.ts b/tokens/transfer-tokens/native/ts/instructions/index.ts new file mode 100644 index 000000000..2509a4fc2 --- /dev/null +++ b/tokens/transfer-tokens/native/ts/instructions/index.ts @@ -0,0 +1,13 @@ +export * from './create'; +export * from './mint-nft'; +export * from './mint-spl'; +export * from './transfer'; + +export const MyInstruction = { + Create: 0, + MintNft: 1, + MintSpl: 2, + TransferTokens: 3, +} as const; + +export type MyInstruction = (typeof MyInstruction)[keyof typeof MyInstruction]; diff --git a/tokens/transfer-tokens/native/ts/instructions/mint-nft.ts b/tokens/transfer-tokens/native/ts/instructions/mint-nft.ts new file mode 100644 index 000000000..8ab0ba809 --- /dev/null +++ b/tokens/transfer-tokens/native/ts/instructions/mint-nft.ts @@ -0,0 +1,36 @@ +import { AccountRole, type Address, getStructEncoder, getU8Encoder, type TransactionSigner } from '@solana/kit'; +import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; +import { ASSOCIATED_TOKEN_PROGRAM_ADDRESS, TOKEN_PROGRAM_ADDRESS } from '@solana-program/token'; +import { MyInstruction } from '.'; +import { SYSVAR_RENT_ADDRESS, TOKEN_METADATA_PROGRAM_ADDRESS } from '../constants'; + +// Instruction data layout, matching the program's `MyInstruction::MintNft` variant. +export const mintNftEncoder = getStructEncoder([['instruction', getU8Encoder()]]); + +export function createMintNftInstruction( + mint: Address, + metadata: Address, + edition: Address, + mintAuthority: Address, + associatedTokenAccount: Address, + payer: TransactionSigner, + programId: Address, +) { + return { + programAddress: programId, + accounts: [ + { address: mint, role: AccountRole.WRITABLE }, + { address: metadata, role: AccountRole.WRITABLE }, + { address: edition, role: AccountRole.WRITABLE }, + { address: mintAuthority, role: AccountRole.WRITABLE }, + { address: associatedTokenAccount, role: AccountRole.WRITABLE }, + { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, + { address: SYSVAR_RENT_ADDRESS, role: AccountRole.READONLY }, + { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + { address: TOKEN_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + { address: ASSOCIATED_TOKEN_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + { address: TOKEN_METADATA_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + ], + data: mintNftEncoder.encode({ instruction: MyInstruction.MintNft }), + }; +} diff --git a/tokens/transfer-tokens/native/ts/instructions/mint-spl.ts b/tokens/transfer-tokens/native/ts/instructions/mint-spl.ts new file mode 100644 index 000000000..664a86b5a --- /dev/null +++ b/tokens/transfer-tokens/native/ts/instructions/mint-spl.ts @@ -0,0 +1,40 @@ +import { + AccountRole, + type Address, + getStructEncoder, + getU8Encoder, + getU64Encoder, + type TransactionSigner, +} from '@solana/kit'; +import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; +import { ASSOCIATED_TOKEN_PROGRAM_ADDRESS, TOKEN_PROGRAM_ADDRESS } from '@solana-program/token'; +import { MyInstruction } from '.'; + +// Instruction data layout, matching the program's `MyInstruction::MintSpl(MintSplArgs)` variant. +export const mintSplEncoder = getStructEncoder([ + ['instruction', getU8Encoder()], + ['quantity', getU64Encoder()], +]); + +export function createMintSplInstruction( + mint: Address, + mintAuthority: Address, + associatedTokenAccount: Address, + payer: TransactionSigner, + programId: Address, + quantity: bigint, +) { + return { + programAddress: programId, + accounts: [ + { address: mint, role: AccountRole.WRITABLE }, + { address: mintAuthority, role: AccountRole.WRITABLE }, + { address: associatedTokenAccount, role: AccountRole.WRITABLE }, + { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, + { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + { address: TOKEN_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + { address: ASSOCIATED_TOKEN_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + ], + data: mintSplEncoder.encode({ instruction: MyInstruction.MintSpl, quantity }), + }; +} diff --git a/tokens/transfer-tokens/native/ts/instructions/transfer.ts b/tokens/transfer-tokens/native/ts/instructions/transfer.ts new file mode 100644 index 000000000..8b60694f3 --- /dev/null +++ b/tokens/transfer-tokens/native/ts/instructions/transfer.ts @@ -0,0 +1,44 @@ +import { + AccountRole, + type Address, + getStructEncoder, + getU8Encoder, + getU64Encoder, + type TransactionSigner, +} from '@solana/kit'; +import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; +import { ASSOCIATED_TOKEN_PROGRAM_ADDRESS, TOKEN_PROGRAM_ADDRESS } from '@solana-program/token'; +import { MyInstruction } from '.'; + +// Instruction data layout, matching the program's `MyInstruction::TransferTokens(TransferTokensArgs)` variant. +export const transferTokensEncoder = getStructEncoder([ + ['instruction', getU8Encoder()], + ['quantity', getU64Encoder()], +]); + +export function createTransferTokensInstruction( + mint: Address, + fromAssociatedTokenAccount: Address, + toAssociatedTokenAccount: Address, + owner: TransactionSigner, + recipient: TransactionSigner, + payer: TransactionSigner, + programId: Address, + quantity: bigint, +) { + return { + programAddress: programId, + accounts: [ + { address: mint, role: AccountRole.WRITABLE }, + { address: fromAssociatedTokenAccount, role: AccountRole.WRITABLE }, + { address: toAssociatedTokenAccount, role: AccountRole.WRITABLE }, + { address: owner.address, role: AccountRole.WRITABLE_SIGNER, signer: owner }, + { address: recipient.address, role: AccountRole.WRITABLE_SIGNER, signer: recipient }, + { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, + { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + { address: TOKEN_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + { address: ASSOCIATED_TOKEN_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + ], + data: transferTokensEncoder.encode({ instruction: MyInstruction.TransferTokens, quantity }), + }; +}