diff --git a/.github/workflows/lint-build-test.yml b/.github/workflows/lint-build-test.yml index aaf39d1..3068acb 100644 --- a/.github/workflows/lint-build-test.yml +++ b/.github/workflows/lint-build-test.yml @@ -27,13 +27,13 @@ jobs: solana --version - - uses: actions/checkout@v1 + - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} - name: Install pnpm - uses: pnpm/action-setup@v2 + uses: pnpm/action-setup@v4 with: version: 8 diff --git a/packages/lib/anchor-common/package.json b/packages/lib/anchor-common/package.json index 1c41fb6..aa23a26 100644 --- a/packages/lib/anchor-common/package.json +++ b/packages/lib/anchor-common/package.json @@ -37,7 +37,8 @@ "bn.js": "^5.2.1", "@coral-xyz/anchor": "^0.29.0", "@marinade.finance/ts-common": "workspace: 2.4.9", - "@marinade.finance/web3js-common": "workspace: 2.4.9" + "@marinade.finance/web3js-common": "workspace: 2.4.9", + "@anza-xyz/solana-rpc-get-stake-activation": "1.0.1" }, "engines": { "node": ">=16" diff --git a/packages/lib/anchor-common/src/validator.ts b/packages/lib/anchor-common/src/validator.ts index 403deaf..67b0670 100644 --- a/packages/lib/anchor-common/src/validator.ts +++ b/packages/lib/anchor-common/src/validator.ts @@ -4,6 +4,7 @@ import fs from 'fs' import { sleep } from '@marinade.finance/ts-common' import { getStakeAccount } from '@marinade.finance/web3js-common' import { waitForEpoch } from '@marinade.finance/web3js-common' +import { getStakeActivation } from '@anza-xyz/solana-rpc-get-stake-activation' export async function getAnchorValidatorInfo( connection: Connection, @@ -87,10 +88,10 @@ export async function waitForStakeAccountActivation({ // 1. waiting for the stake account to be activated { const startTime = Date.now() - let stakeStatus = await connection.getStakeActivation(stakeAccount) - while (stakeStatus.state !== 'active') { + let stakeStatus = await getStakeActivation(connection, stakeAccount) + while (stakeStatus.status !== 'active') { await sleep(1000) - stakeStatus = await connection.getStakeActivation(stakeAccount) + stakeStatus = await getStakeActivation(connection, stakeAccount) if (Date.now() - startTime > timeoutSeconds * 1000) { throw new Error( `Stake account ${stakeAccount.toBase58()} was not activated in timeout of ${timeoutSeconds} seconds` diff --git a/packages/lib/web3js-common/src/stakeAccount.ts b/packages/lib/web3js-common/src/stakeAccount.ts index 550d489..4cef3bb 100644 --- a/packages/lib/web3js-common/src/stakeAccount.ts +++ b/packages/lib/web3js-common/src/stakeAccount.ts @@ -81,11 +81,7 @@ function isAccountInfoParsedData( if (data === null) { return false } - return ( - data.data && - !(data.data instanceof Buffer) && - data.data.parsed !== undefined - ) + return data.data && !(data.data instanceof Buffer) && 'parsed' in data.data } export async function getStakeAccount( diff --git a/packages/marinade-ts-cli/__tests__/orderUnstakeAndClaim.spec.ts b/packages/marinade-ts-cli/__tests__/orderUnstakeAndClaim.spec.ts index ca7a722..bcc113a 100644 --- a/packages/marinade-ts-cli/__tests__/orderUnstakeAndClaim.spec.ts +++ b/packages/marinade-ts-cli/__tests__/orderUnstakeAndClaim.spec.ts @@ -73,10 +73,13 @@ describe('Order unstake and claim using CLI', () => { ) expect(tickets.size).toBe(1) const startTime = Date.now() - let ticket: [PublicKey, TicketAccount] = tickets.entries().next().value + let ticket: [PublicKey, TicketAccount] | undefined = tickets + .entries() + .next().value + while ( - !ticket[1].ticketDueDate || - isNaN(ticket[1].ticketDueDate.getTime()) + ticket && + (!ticket[1].ticketDueDate || isNaN(ticket[1].ticketDueDate.getTime())) ) { console.log( 'Waiting for ticket', @@ -91,13 +94,17 @@ describe('Order unstake and claim using CLI', () => { ) .entries() .next().value - if (Date.now() - startTime > timeoutSeconds * 1000) { + if (ticket && Date.now() - startTime > timeoutSeconds * 1000) { throw new Error( `Ticket ${ticket[0]} was not available for claiming in timeout of ${timeoutSeconds} seconds` ) } } + if (!ticket) { + throw new Error('Ticket is undefined') + } + await ( expect([ 'pnpm', diff --git a/packages/marinade-ts-cli/__tests__/setup/globalSetup.ts b/packages/marinade-ts-cli/__tests__/setup/globalSetup.ts index 0a5d049..e487a93 100644 --- a/packages/marinade-ts-cli/__tests__/setup/globalSetup.ts +++ b/packages/marinade-ts-cli/__tests__/setup/globalSetup.ts @@ -2,6 +2,7 @@ import { AnchorProvider } from '@coral-xyz/anchor' import NodeWallet from '@coral-xyz/anchor/dist/cjs/nodewallet' import { Marinade, MarinadeConfig } from '@marinade.finance/marinade-ts-sdk' import { getParsedStakeAccountInfo } from '@marinade.finance/marinade-ts-sdk/dist/src/util' +import { getStakeActivation } from '@anza-xyz/solana-rpc-get-stake-activation' import { Keypair, PublicKey, @@ -230,10 +231,10 @@ export async function waitForStakeAccountActivation({ // 1. waiting for the stake account to be activated { const startTime = Date.now() - let stakeStatus = await connection.getStakeActivation(stakeAccount) - while (stakeStatus.state !== 'active') { + let stakeStatus = await getStakeActivation(connection, stakeAccount) + while (stakeStatus.status !== 'active') { await sleep(1000) - stakeStatus = await connection.getStakeActivation(stakeAccount) + stakeStatus = await getStakeActivation(connection, stakeAccount) if (Date.now() - startTime > timeoutSeconds * 1000) { throw new Error( `Stake account ${stakeAccount.toBase58()} was not activated in timeout of ${timeoutSeconds} seconds` diff --git a/packages/marinade-ts-cli/package.json b/packages/marinade-ts-cli/package.json index f2504f2..9f5818e 100644 --- a/packages/marinade-ts-cli/package.json +++ b/packages/marinade-ts-cli/package.json @@ -43,7 +43,8 @@ "@marinade.finance/ledger-utils": "^3.0.1", "@marinade.finance/cli-common": "workspace: 2.4.9", "@marinade.finance/web3js-common": "workspace: 2.4.9", - "@marinade.finance/marinade-ts-sdk": "5.0.7" + "@marinade.finance/marinade-ts-sdk": "5.0.7", + "@anza-xyz/solana-rpc-get-stake-activation": "1.0.1" }, "devDependencies": { "@marinade.finance/jest-utils": "workspace: 2.4.9", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3a39988..9fab81f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -34,13 +34,13 @@ importers: version: 9.0.11 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@18.19.24)(node-notifier@5.4.5)(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5)) + version: 29.7.0(@types/node@18.19.24)(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5)) lint-staged: specifier: ^15.2.2 version: 15.2.2 ts-jest: specifier: ^29.1.4 - version: 29.1.4(@babel/core@7.22.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.22.5))(jest@29.7.0(@types/node@18.19.24)(node-notifier@5.4.5)(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5)))(typescript@5.4.5) + version: 29.1.4(@babel/core@7.24.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.0))(jest@29.7.0(@types/node@18.19.24)(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5)))(typescript@5.4.5) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@18.19.24)(typescript@5.4.5) @@ -49,6 +49,10 @@ importers: version: 5.4.5 packages/lib/anchor-common: + dependencies: + '@anza-xyz/solana-rpc-get-stake-activation': + specifier: 1.0.1 + version: 1.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) devDependencies: '@coral-xyz/anchor': specifier: ^0.29.0 @@ -127,7 +131,7 @@ importers: version: 5.2.1 jest-shell-matchers: specifier: ^1.0.2 - version: 1.0.2(jest@29.7.0(@types/node@18.19.24)(node-notifier@5.4.5)(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5))) + version: 1.0.2(jest@29.7.0(@types/node@18.19.24)(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5))) packages/lib/spl-gov-utils: devDependencies: @@ -175,6 +179,9 @@ importers: packages/marinade-ts-cli: dependencies: + '@anza-xyz/solana-rpc-get-stake-activation': + specifier: 1.0.1 + version: 1.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@coral-xyz/anchor': specifier: '0.28' version: 0.28.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -238,6 +245,9 @@ packages: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} + '@anza-xyz/solana-rpc-get-stake-activation@1.0.1': + resolution: {integrity: sha512-g5JiDnk6pb/8kzMiPJti2aM2DZFO6SjYaDpuOUgvPUcTWPR8oKiHvFOfG6Ixbu74g0nqAJP0IrxKUS5UI8q4OQ==} + '@babel/code-frame@7.22.13': resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} engines: {node: '>=6.9.0'} @@ -457,6 +467,10 @@ packages: resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==} engines: {node: '>=6.9.0'} + '@babel/runtime@7.26.0': + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} + engines: {node: '>=6.9.0'} + '@babel/template@7.22.5': resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} engines: {node: '>=6.9.0'} @@ -800,6 +814,10 @@ packages: '@noble/curves@1.4.0': resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==} + '@noble/curves@1.7.0': + resolution: {integrity: sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==} + engines: {node: ^14.21.3 || >=16} + '@noble/hashes@1.3.1': resolution: {integrity: sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==} engines: {node: '>= 16'} @@ -808,6 +826,10 @@ packages: resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} engines: {node: '>= 16'} + '@noble/hashes@1.6.0': + resolution: {integrity: sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ==} + engines: {node: ^14.21.3 || >=16} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -909,6 +931,9 @@ packages: '@solana/web3.js@1.93.0': resolution: {integrity: sha512-suf4VYwWxERz4tKoPpXCRHFRNst7jmcFUaD65kII+zg9urpy5PeeqgLV6G5eWGzcVzA9tZeXOju1A1Y+0ojEVw==} + '@solana/web3.js@1.95.8': + resolution: {integrity: sha512-sBHzNh7dHMrmNS5xPD1d0Xa2QffW/RXaxu/OysRXBfwTp+LYqGGmMtCYYwrHPrN5rjAmJCsQRNAwv4FM0t3B6g==} + '@swc/helpers@0.5.11': resolution: {integrity: sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==} @@ -1852,9 +1877,6 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - growly@1.3.0: - resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==} - gts@5.3.0: resolution: {integrity: sha512-/V0nbaWLBv8g0v2kol5M7Vf+kHXk19Ew5sa3wQJXeUaccesXg7AFo7eEInoIpR+aIJ3QDjoYt4zHYeFr8w8rng==} engines: {node: '>=14'} @@ -2002,10 +2024,6 @@ packages: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-wsl@1.1.0: - resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==} - engines: {node: '>=4'} - isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -2043,6 +2061,11 @@ packages: engines: {node: '>=8'} hasBin: true + jayson@4.1.3: + resolution: {integrity: sha512-LtXh5aYZodBZ9Fc3j6f2w+MTNcnxteMOrb+QgIouguGOulWi0lieEkOUg+HkjjFs0DGoWDds6bi4E9hpNFLulQ==} + engines: {node: '>=8'} + hasBin: true + jest-changed-files@29.7.0: resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2431,9 +2454,6 @@ packages: node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-notifier@5.4.5: - resolution: {integrity: sha512-tVbHs7DyTLtzOiN78izLA85zRqB9NvEXkAf014Vx3jtSvn/xBl6bR8ZYifj+dFcFrKI21huSQgJZ6ZtL3B4HfQ==} - node-releases@2.0.12: resolution: {integrity: sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==} @@ -2718,6 +2738,9 @@ packages: rpc-websockets@9.0.0: resolution: {integrity: sha512-1yf8FM6PY6Uhip2Fe+UrgPq9EhUu0qxr5mcVSEGOTWhpzffTh5IBKy5S+C68zJv0Gg0k9ey0pw7K06+EfbnN3g==} + rpc-websockets@9.0.4: + resolution: {integrity: sha512-yWZWN0M+bivtoNLnaDbtny4XchdAIF5Q4g/ZsC5UC61Ckbp0QczwO8fg44rV3uYmY4WHd+EZQbn90W1d8ojzqQ==} + run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} @@ -2775,9 +2798,6 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shellwords@0.1.1: - resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==} - signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -2940,6 +2960,10 @@ packages: resolution: {integrity: sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==} engines: {node: '>=14.0.0'} + superstruct@2.0.2: + resolution: {integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==} + engines: {node: '>=14.0.0'} + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -3152,10 +3176,6 @@ packages: whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -3176,6 +3196,18 @@ packages: resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + 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.9: resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} engines: {node: '>=8.3.0'} @@ -3248,6 +3280,14 @@ snapshots: '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.18 + '@anza-xyz/solana-rpc-get-stake-activation@1.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@solana/web3.js': 1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + '@babel/code-frame@7.22.13': dependencies: '@babel/highlight': 7.22.20 @@ -3446,26 +3486,56 @@ snapshots: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.22.5 + optional: true + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.22.5 + optional: true + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.22.5 + optional: true + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.22.5 + optional: true + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.22.5 + optional: true + '@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 @@ -3476,36 +3546,78 @@ snapshots: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.22.5 + optional: true + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.22.5 + optional: true + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.22.5 + optional: true + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.22.5 + optional: true + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.22.5 + optional: true + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.22.5 + optional: true + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.22.5 + optional: true + '@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 @@ -3515,6 +3627,10 @@ snapshots: dependencies: regenerator-runtime: 0.14.0 + '@babel/runtime@7.26.0': + dependencies: + regenerator-runtime: 0.14.0 + '@babel/template@7.22.5': dependencies: '@babel/code-frame': 7.22.13 @@ -3736,10 +3852,10 @@ snapshots: jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(node-notifier@5.4.5)(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5))': + '@jest/core@29.7.0(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5))': dependencies: '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0(node-notifier@5.4.5) + '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 @@ -3766,8 +3882,6 @@ snapshots: pretty-format: 29.7.0 slash: 3.0.0 strip-ansi: 6.0.1 - optionalDependencies: - node-notifier: 5.4.5 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -3813,7 +3927,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@jest/reporters@29.7.0(node-notifier@5.4.5)': + '@jest/reporters@29.7.0': dependencies: '@bcoe/v8-coverage': 0.2.3 '@jest/console': 29.7.0 @@ -3839,8 +3953,6 @@ snapshots: string-length: 4.0.2 strip-ansi: 6.0.1 v8-to-istanbul: 9.1.0 - optionalDependencies: - node-notifier: 5.4.5 transitivePeerDependencies: - supports-color @@ -4123,10 +4235,16 @@ snapshots: dependencies: '@noble/hashes': 1.4.0 + '@noble/curves@1.7.0': + dependencies: + '@noble/hashes': 1.6.0 + '@noble/hashes@1.3.1': {} '@noble/hashes@1.4.0': {} + '@noble/hashes@1.6.0': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -4309,6 +4427,28 @@ snapshots: - encoding - utf-8-validate + '@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@babel/runtime': 7.26.0 + '@noble/curves': 1.7.0 + '@noble/hashes': 1.4.0 + '@solana/buffer-layout': 4.0.1 + agentkeepalive: 4.5.0 + bigint-buffer: 1.1.5 + bn.js: 5.2.1 + borsh: 0.7.0 + bs58: 4.0.1 + buffer: 6.0.3 + fast-stable-stringify: 1.0.0 + jayson: 4.1.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + node-fetch: 2.7.0 + rpc-websockets: 9.0.4 + superstruct: 2.0.2 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + '@swc/helpers@0.5.11': dependencies: tslib: 2.6.2 @@ -4405,10 +4545,10 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.0 - '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.53.0)(typescript@5.4.5))(eslint@8.53.0)(typescript@5.4.5)': + '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.1.0)(typescript@5.4.5))(eslint@8.53.0)(typescript@5.4.5)': dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 5.62.0(eslint@8.1.0)(typescript@5.4.5) + '@typescript-eslint/parser': 5.62.0(eslint@8.53.0)(typescript@5.4.5) '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/type-utils': 5.62.0(eslint@8.53.0)(typescript@5.4.5) '@typescript-eslint/utils': 5.62.0(eslint@8.53.0)(typescript@5.4.5) @@ -4424,13 +4564,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@5.62.0(eslint@8.1.0)(typescript@5.4.5)': + '@typescript-eslint/parser@5.62.0(eslint@8.53.0)(typescript@5.4.5)': dependencies: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) debug: 4.3.4 - eslint: 8.1.0 + eslint: 8.53.0 optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: @@ -4596,6 +4736,20 @@ snapshots: transitivePeerDependencies: - supports-color + babel-jest@29.7.0(@babel/core@7.24.0): + dependencies: + '@babel/core': 7.24.0 + '@jest/transform': 29.7.0 + '@types/babel__core': 7.20.1 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.6.3(@babel/core@7.24.0) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + optional: true + babel-plugin-istanbul@6.1.1: dependencies: '@babel/helper-plugin-utils': 7.22.5 @@ -4629,12 +4783,36 @@ snapshots: '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.5) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.5) + babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.0): + dependencies: + '@babel/core': 7.24.0 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.0) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.0) + optional: true + babel-preset-jest@29.6.3(@babel/core@7.22.5): dependencies: '@babel/core': 7.22.5 babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.5) + babel-preset-jest@29.6.3(@babel/core@7.24.0): + dependencies: + '@babel/core': 7.24.0 + babel-plugin-jest-hoist: 29.6.3 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.0) + optional: true + balanced-match@1.0.2: {} base-x@3.0.9: @@ -4958,9 +5136,9 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-prettier@9.1.0(eslint@8.1.0): + eslint-config-prettier@9.1.0(eslint@8.53.0): dependencies: - eslint: 8.1.0 + eslint: 8.53.0 eslint-plugin-es@3.0.1(eslint@8.53.0): dependencies: @@ -4978,14 +5156,14 @@ snapshots: resolve: 1.22.2 semver: 6.3.1 - eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@8.53.0))(eslint@8.53.0)(prettier@3.1.1): + eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@8.1.0))(eslint@8.53.0)(prettier@3.1.1): dependencies: eslint: 8.53.0 prettier: 3.1.1 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 optionalDependencies: - eslint-config-prettier: 9.1.0(eslint@8.1.0) + eslint-config-prettier: 9.1.0(eslint@8.53.0) eslint-scope@5.1.1: dependencies: @@ -5319,18 +5497,15 @@ snapshots: graphemer@1.4.0: {} - growly@1.3.0: - optional: true - gts@5.3.0(typescript@5.4.5): dependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.53.0)(typescript@5.4.5))(eslint@8.53.0)(typescript@5.4.5) - '@typescript-eslint/parser': 5.62.0(eslint@8.1.0)(typescript@5.4.5) + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.1.0)(typescript@5.4.5))(eslint@8.53.0)(typescript@5.4.5) + '@typescript-eslint/parser': 5.62.0(eslint@8.53.0)(typescript@5.4.5) chalk: 4.1.2 eslint: 8.53.0 - eslint-config-prettier: 9.1.0(eslint@8.1.0) + eslint-config-prettier: 9.1.0(eslint@8.53.0) eslint-plugin-node: 11.1.0(eslint@8.53.0) - eslint-plugin-prettier: 5.1.3(eslint-config-prettier@9.1.0(eslint@8.53.0))(eslint@8.53.0)(prettier@3.1.1) + eslint-plugin-prettier: 5.1.3(eslint-config-prettier@9.1.0(eslint@8.1.0))(eslint@8.53.0)(prettier@3.1.1) execa: 5.1.1 inquirer: 7.3.3 json5: 2.2.3 @@ -5455,11 +5630,12 @@ snapshots: is-stream@3.0.0: {} - is-wsl@1.1.0: - optional: true - isexe@2.0.0: {} + isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)): + dependencies: + ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + isomorphic-ws@4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)): dependencies: ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -5523,6 +5699,24 @@ snapshots: - bufferutil - utf-8-validate + jayson@4.1.3(bufferutil@4.0.8)(utf-8-validate@5.0.10): + dependencies: + '@types/connect': 3.4.35 + '@types/node': 12.20.55 + '@types/ws': 7.4.7 + JSONStream: 1.3.5 + commander: 2.20.3 + delay: 5.0.0 + es6-promisify: 5.0.0 + eyes: 0.1.8 + isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + json-stringify-safe: 5.0.1 + uuid: 8.3.2 + ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + jest-changed-files@29.7.0: dependencies: execa: 5.1.1 @@ -5555,9 +5749,9 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@18.19.24)(node-notifier@5.4.5)(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5)): + jest-cli@29.7.0(@types/node@18.19.24)(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5)): dependencies: - '@jest/core': 29.7.0(node-notifier@5.4.5)(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5)) + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 @@ -5568,8 +5762,6 @@ snapshots: jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 - optionalDependencies: - node-notifier: 5.4.5 transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -5789,9 +5981,9 @@ snapshots: transitivePeerDependencies: - supports-color - jest-shell-matchers@1.0.2(jest@29.7.0(@types/node@18.19.24)(node-notifier@5.4.5)(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5))): + jest-shell-matchers@1.0.2(jest@29.7.0(@types/node@18.19.24)(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5))): dependencies: - jest: 29.7.0(@types/node@18.19.24)(node-notifier@5.4.5)(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5)) + jest: 29.7.0(@types/node@18.19.24)(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5)) spawn-with-mocks: 1.0.2 jest-snapshot@29.7.0: @@ -5864,14 +6056,12 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@18.19.24)(node-notifier@5.4.5)(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5)): + jest@29.7.0(@types/node@18.19.24)(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5)): dependencies: - '@jest/core': 29.7.0(node-notifier@5.4.5)(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5)) + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5)) '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@18.19.24)(node-notifier@5.4.5)(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5)) - optionalDependencies: - node-notifier: 5.4.5 + jest-cli: 29.7.0(@types/node@18.19.24)(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -6088,15 +6278,6 @@ snapshots: node-int64@0.4.0: {} - node-notifier@5.4.5: - dependencies: - growly: 1.3.0 - is-wsl: 1.1.0 - semver: 5.7.2 - shellwords: 0.1.1 - which: 1.3.1 - optional: true - node-releases@2.0.12: {} node-releases@2.0.14: {} @@ -6402,6 +6583,19 @@ snapshots: bufferutil: 4.0.8 utf-8-validate: 5.0.10 + rpc-websockets@9.0.4: + dependencies: + '@swc/helpers': 0.5.11 + '@types/uuid': 8.3.4 + '@types/ws': 8.5.10 + buffer: 6.0.3 + eventemitter3: 5.0.1 + uuid: 8.3.2 + ws: 8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 + run-async@2.4.1: {} run-parallel@1.2.0: @@ -6442,9 +6636,6 @@ snapshots: shebang-regex@3.0.0: {} - shellwords@0.1.1: - optional: true - signal-exit@3.0.7: {} signal-exit@4.1.0: {} @@ -6596,6 +6787,8 @@ snapshots: superstruct@1.0.4: {} + superstruct@2.0.2: {} + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -6664,11 +6857,11 @@ snapshots: trim-newlines@3.0.1: {} - ts-jest@29.1.4(@babel/core@7.22.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.22.5))(jest@29.7.0(@types/node@18.19.24)(node-notifier@5.4.5)(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5)))(typescript@5.4.5): + ts-jest@29.1.4(@babel/core@7.24.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.0))(jest@29.7.0(@types/node@18.19.24)(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5)))(typescript@5.4.5): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@18.19.24)(node-notifier@5.4.5)(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5)) + jest: 29.7.0(@types/node@18.19.24)(ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -6677,10 +6870,10 @@ snapshots: typescript: 5.4.5 yargs-parser: 21.1.1 optionalDependencies: - '@babel/core': 7.22.5 + '@babel/core': 7.24.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.22.5) + babel-jest: 29.7.0(@babel/core@7.24.0) ts-node@10.9.2(@types/node@18.19.24)(typescript@5.4.5): dependencies: @@ -6788,11 +6981,6 @@ snapshots: tr46: 0.0.3 webidl-conversions: 3.0.1 - which@1.3.1: - dependencies: - isexe: 2.0.0 - optional: true - which@2.0.2: dependencies: isexe: 2.0.0 @@ -6816,6 +7004,11 @@ snapshots: imurmurhash: 0.1.4 signal-exit: 3.0.7 + ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 + ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10): optionalDependencies: bufferutil: 4.0.8