From 99af530744d87720d7ede453888187f6ad66c8eb Mon Sep 17 00:00:00 2001 From: MarkFeder Date: Thu, 2 Jul 2026 00:47:35 +0200 Subject: [PATCH 1/5] add pinocchio token-2022 mint-close-authority example --- Cargo.lock | 9 + Cargo.toml | 1 + README.md | 2 +- .../mint-close-authority/pinocchio/cicd.sh | 8 + .../pinocchio/package.json | 23 + .../pinocchio/pnpm-lock.yaml | 1357 +++++++++++++++++ .../pinocchio/program/Cargo.toml | 19 + .../program/src/instructions/create_mint.rs | 118 ++ .../pinocchio/program/src/instructions/mod.rs | 48 + .../pinocchio/program/src/lib.rs | 14 + .../pinocchio/program/src/processor.rs | 22 + .../pinocchio/tests/test.ts | 91 ++ .../pinocchio/tsconfig.json | 10 + 13 files changed, 1721 insertions(+), 1 deletion(-) create mode 100644 tokens/token-2022/mint-close-authority/pinocchio/cicd.sh create mode 100644 tokens/token-2022/mint-close-authority/pinocchio/package.json create mode 100644 tokens/token-2022/mint-close-authority/pinocchio/pnpm-lock.yaml create mode 100644 tokens/token-2022/mint-close-authority/pinocchio/program/Cargo.toml create mode 100644 tokens/token-2022/mint-close-authority/pinocchio/program/src/instructions/create_mint.rs create mode 100644 tokens/token-2022/mint-close-authority/pinocchio/program/src/instructions/mod.rs create mode 100644 tokens/token-2022/mint-close-authority/pinocchio/program/src/lib.rs create mode 100644 tokens/token-2022/mint-close-authority/pinocchio/program/src/processor.rs create mode 100644 tokens/token-2022/mint-close-authority/pinocchio/tests/test.ts create mode 100644 tokens/token-2022/mint-close-authority/pinocchio/tsconfig.json diff --git a/Cargo.lock b/Cargo.lock index d92d1b032..f664b93cb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5072,6 +5072,15 @@ dependencies = [ "spl-token-interface", ] +[[package]] +name = "token-2022-mint-close-authority-pinocchio-program" +version = "0.1.0" +dependencies = [ + "pinocchio 0.10.2", + "pinocchio-log", + "pinocchio-system", +] + [[package]] name = "token-2022-mint-close-authority-program" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index aae171e04..3d2e70e81 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -54,6 +54,7 @@ members = [ "tokens/escrow/pinocchio/program", "tokens/transfer-tokens/pinocchio/program", "tokens/token-2022/mint-close-authority/native/program", + "tokens/token-2022/mint-close-authority/pinocchio/program", "tokens/token-2022/non-transferable/native/program", "tokens/token-2022/default-account-state/native/program", "tokens/token-2022/transfer-fee/native/program", diff --git a/README.md b/README.md index 0f7048fa8..a382febb1 100644 --- a/README.md +++ b/README.md @@ -239,7 +239,7 @@ Create an NFT using the Token Extensions metadata pointer, storing onchain metad Allow a designated account to close a Mint. -[anchor](./tokens/token-2022/mint-close-authority/anchor) [native](./tokens/token-2022/mint-close-authority/native) +[anchor](./tokens/token-2022/mint-close-authority/anchor) [native](./tokens/token-2022/mint-close-authority/native) [pinocchio](./tokens/token-2022/mint-close-authority/pinocchio) ### Using multiple token extensions diff --git a/tokens/token-2022/mint-close-authority/pinocchio/cicd.sh b/tokens/token-2022/mint-close-authority/pinocchio/cicd.sh new file mode 100644 index 000000000..b2407c75f --- /dev/null +++ b/tokens/token-2022/mint-close-authority/pinocchio/cicd.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# This script is for quick building & deploying of the program. +# It also serves as a reference for the commands used for building & deploying Solana programs. +# Run this bad boy with "bash cicd.sh" or "./cicd.sh" + +cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./program/target/so +solana program deploy ./program/target/so/program.so diff --git a/tokens/token-2022/mint-close-authority/pinocchio/package.json b/tokens/token-2022/mint-close-authority/pinocchio/package.json new file mode 100644 index 000000000..063fb5279 --- /dev/null +++ b/tokens/token-2022/mint-close-authority/pinocchio/package.json @@ -0,0 +1,23 @@ +{ + "type": "module", + "scripts": { + "test": "pnpm ts-mocha -p ./tsconfig.json -t 1000000 ./tests/test.ts", + "build-and-test": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./tests/fixtures && pnpm test", + "build": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./program/target/so", + "deploy": "solana program deploy ./program/target/so/program.so" + }, + "dependencies": { + "@solana/web3.js": "^1.98.4", + "borsh": "^2.0.0" + }, + "devDependencies": { + "@types/bn.js": "^5.1.0", + "@types/chai": "^4.3.1", + "@types/mocha": "^9.1.1", + "chai": "^4.3.4", + "mocha": "^9.0.3", + "solana-bankrun": "^0.3.0", + "ts-mocha": "^10.0.0", + "typescript": "^4.3.5" + } +} diff --git a/tokens/token-2022/mint-close-authority/pinocchio/pnpm-lock.yaml b/tokens/token-2022/mint-close-authority/pinocchio/pnpm-lock.yaml new file mode 100644 index 000000000..4b2f4d88c --- /dev/null +++ b/tokens/token-2022/mint-close-authority/pinocchio/pnpm-lock.yaml @@ -0,0 +1,1357 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@solana/web3.js': + specifier: ^1.98.4 + version: 1.98.4(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6) + borsh: + specifier: ^2.0.0 + version: 2.0.0 + devDependencies: + '@types/bn.js': + specifier: ^5.1.0 + version: 5.2.0 + '@types/chai': + specifier: ^4.3.1 + version: 4.3.20 + '@types/mocha': + specifier: ^9.1.1 + version: 9.1.1 + chai: + specifier: ^4.3.4 + version: 4.5.0 + mocha: + specifier: ^9.0.3 + version: 9.2.2 + solana-bankrun: + specifier: ^0.3.0 + version: 0.3.1(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6) + ts-mocha: + specifier: ^10.0.0 + version: 10.1.0(mocha@9.2.2) + typescript: + specifier: ^4.3.5 + version: 4.9.5 + +packages: + + '@babel/runtime@7.29.7': + resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} + engines: {node: '>=6.9.0'} + + '@noble/curves@1.9.7': + resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==} + engines: {node: ^14.21.3 || >=16} + + '@noble/hashes@1.8.0': + resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} + engines: {node: ^14.21.3 || >=16} + + '@solana/buffer-layout@4.0.1': + resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==} + engines: {node: '>=5.10'} + + '@solana/codecs-core@2.3.0': + resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/codecs-numbers@2.3.0': + resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/errors@2.3.0': + resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==} + engines: {node: '>=20.18.0'} + hasBin: true + peerDependencies: + typescript: '>=5.3.3' + + '@solana/web3.js@1.98.4': + resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==} + + '@swc/helpers@0.5.21': + resolution: {integrity: sha512-jI/VAmtdjB/RnI8GTnokyX7Ug8c+g+ffD6QRLa6XQewtnGyukKkKSk3wLTM3b5cjt1jNh9x0jfVlagdN2gDKQg==} + + '@types/bn.js@5.2.0': + resolution: {integrity: sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q==} + + '@types/chai@4.3.20': + resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + '@types/mocha@9.1.1': + resolution: {integrity: sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==} + + '@types/node@12.20.55': + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + + '@types/node@25.9.1': + resolution: {integrity: sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==} + + '@types/uuid@10.0.0': + resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} + + '@types/ws@7.4.7': + resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} + + '@types/ws@8.18.1': + resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} + + '@ungap/promise-all-settled@1.1.2': + resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==} + + agentkeepalive@4.6.0: + resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} + engines: {node: '>= 8.0.0'} + + ansi-colors@4.1.1: + resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} + engines: {node: '>=6'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + + assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base-x@3.0.11: + resolution: {integrity: sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + bn.js@5.2.3: + resolution: {integrity: sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w==} + + borsh@0.7.0: + resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==} + + borsh@2.0.0: + resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==} + + brace-expansion@1.1.14: + resolution: {integrity: sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browser-stdout@1.3.1: + resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + + bs58@4.0.1: + resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + bufferutil@4.1.0: + resolution: {integrity: sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw==} + engines: {node: '>=6.14.2'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + chai@4.5.0: + resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.6.2: + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + + chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + + cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + commander@14.0.3: + resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} + engines: {node: '>=20'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + debug@4.3.3: + resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decamelize@4.0.0: + resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} + engines: {node: '>=10'} + + deep-eql@4.1.4: + resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} + engines: {node: '>=6'} + + delay@5.0.0: + resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} + engines: {node: '>=10'} + + diff@3.5.1: + resolution: {integrity: sha512-Z3u54A8qGyqFOSr2pk0ijYs8mOE9Qz8kTvtKeBI+upoG9j04Sq+oI7W8zAJiQybDcESET8/uIdHzs0p3k4fZlw==} + engines: {node: '>=0.3.1'} + + diff@5.0.0: + resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} + engines: {node: '>=0.3.1'} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + es6-promise@4.2.8: + resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} + + es6-promisify@5.0.0: + resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eventemitter3@5.0.4: + resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} + + eyes@0.1.8: + resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} + engines: {node: '> 0.1.90'} + + fast-stable-stringify@1.0.0: + resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob@7.2.0: + resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + + growl@1.10.5: + resolution: {integrity: sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==} + engines: {node: '>=4.x'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + 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==} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isomorphic-ws@4.0.1: + resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} + peerDependencies: + ws: '*' + + jayson@4.3.0: + resolution: {integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==} + engines: {node: '>=8'} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + + loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + + minimatch@4.2.1: + resolution: {integrity: sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==} + engines: {node: '>=10'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + mocha@9.2.2: + resolution: {integrity: sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==} + engines: {node: '>= 12.0.0'} + hasBin: true + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nanoid@3.3.1: + resolution: {integrity: sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + + picomatch@2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} + engines: {node: '>=8.6'} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + rpc-websockets@9.3.9: + resolution: {integrity: sha512-2iQDaTB4g5fDB2ihrTFSJSibCEuxaRi1q7qTW7ZO9/M5/TC+ToHA4D9/ffNLEbAoHNNrcdeP05oATNk44SKZXA==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + serialize-javascript@6.0.0: + resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} + + solana-bankrun-darwin-arm64@0.3.1: + resolution: {integrity: sha512-9LWtH/3/WR9fs8Ve/srdo41mpSqVHmRqDoo69Dv1Cupi+o1zMU6HiEPUHEvH2Tn/6TDbPEDf18MYNfReLUqE6A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + solana-bankrun-darwin-universal@0.3.1: + resolution: {integrity: sha512-muGHpVYWT7xCd8ZxEjs/bmsbMp8XBqroYGbE4lQPMDUuLvsJEIrjGqs3MbxEFr71sa58VpyvgywWd5ifI7sGIg==} + engines: {node: '>= 10'} + os: [darwin] + + solana-bankrun-darwin-x64@0.3.1: + resolution: {integrity: sha512-oCaxfHyt7RC3ZMldrh5AbKfy4EH3YRMl8h6fSlMZpxvjQx7nK7PxlRwMeflMnVdkKKp7U8WIDak1lilIPd3/lg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + solana-bankrun-linux-x64-gnu@0.3.1: + resolution: {integrity: sha512-PfRFhr7igGFNt2Ecfdzh3li9eFPB3Xhmk0Eib17EFIB62YgNUg3ItRnQQFaf0spazFjjJLnglY1TRKTuYlgSVA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + solana-bankrun-linux-x64-musl@0.3.1: + resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + solana-bankrun@0.3.1: + resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==} + engines: {node: '>= 10'} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + 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==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + superstruct@2.0.2: + resolution: {integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==} + engines: {node: '>=14.0.0'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + text-encoding-utf-8@1.0.2: + resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + ts-mocha@10.1.0: + resolution: {integrity: sha512-T0C0Xm3/WqCuF2tpa0GNGESTBoKZaiqdUP8guNv4ZY316AFXlyidnrzQ1LUrCT0Wb1i3J0zFTgOh/55Un44WdA==} + engines: {node: '>= 6.X.X'} + hasBin: true + peerDependencies: + mocha: ^3.X.X || ^4.X.X || ^5.X.X || ^6.X.X || ^7.X.X || ^8.X.X || ^9.X.X || ^10.X.X || ^11.X.X + + ts-node@7.0.1: + resolution: {integrity: sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==} + engines: {node: '>=4.2.0'} + hasBin: true + + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + type-detect@4.1.0: + resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} + engines: {node: '>=4'} + + typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + + undici-types@7.24.6: + resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==} + + utf-8-validate@6.0.6: + resolution: {integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==} + engines: {node: '>=6.14.2'} + + uuid@14.0.0: + resolution: {integrity: sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg==} + hasBin: true + + 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). + hasBin: true + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + workerpool@6.2.0: + resolution: {integrity: sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@7.5.11: + resolution: {integrity: sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA==} + 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@8.21.0: + resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==} + 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'} + + yargs-parser@20.2.4: + resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} + engines: {node: '>=10'} + + yargs-unparser@2.0.0: + resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + engines: {node: '>=10'} + + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + + yn@2.0.0: + resolution: {integrity: sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ==} + engines: {node: '>=4'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + +snapshots: + + '@babel/runtime@7.29.7': {} + + '@noble/curves@1.9.7': + dependencies: + '@noble/hashes': 1.8.0 + + '@noble/hashes@1.8.0': {} + + '@solana/buffer-layout@4.0.1': + dependencies: + buffer: 6.0.3 + + '@solana/codecs-core@2.3.0(typescript@4.9.5)': + dependencies: + '@solana/errors': 2.3.0(typescript@4.9.5) + typescript: 4.9.5 + + '@solana/codecs-numbers@2.3.0(typescript@4.9.5)': + dependencies: + '@solana/codecs-core': 2.3.0(typescript@4.9.5) + '@solana/errors': 2.3.0(typescript@4.9.5) + typescript: 4.9.5 + + '@solana/errors@2.3.0(typescript@4.9.5)': + dependencies: + chalk: 5.6.2 + commander: 14.0.3 + typescript: 4.9.5 + + '@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6)': + dependencies: + '@babel/runtime': 7.29.7 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@solana/buffer-layout': 4.0.1 + '@solana/codecs-numbers': 2.3.0(typescript@4.9.5) + agentkeepalive: 4.6.0 + bn.js: 5.2.3 + borsh: 0.7.0 + bs58: 4.0.1 + buffer: 6.0.3 + fast-stable-stringify: 1.0.0 + jayson: 4.3.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + node-fetch: 2.7.0 + rpc-websockets: 9.3.9 + superstruct: 2.0.2 + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate + + '@swc/helpers@0.5.21': + dependencies: + tslib: 2.8.1 + + '@types/bn.js@5.2.0': + dependencies: + '@types/node': 25.9.1 + + '@types/chai@4.3.20': {} + + '@types/connect@3.4.38': + dependencies: + '@types/node': 12.20.55 + + '@types/json5@0.0.29': + optional: true + + '@types/mocha@9.1.1': {} + + '@types/node@12.20.55': {} + + '@types/node@25.9.1': + dependencies: + undici-types: 7.24.6 + + '@types/uuid@10.0.0': {} + + '@types/ws@7.4.7': + dependencies: + '@types/node': 12.20.55 + + '@types/ws@8.18.1': + dependencies: + '@types/node': 25.9.1 + + '@ungap/promise-all-settled@1.1.2': {} + + agentkeepalive@4.6.0: + dependencies: + humanize-ms: 1.2.1 + + ansi-colors@4.1.1: {} + + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.2 + + argparse@2.0.1: {} + + arrify@1.0.1: {} + + assertion-error@1.1.0: {} + + balanced-match@1.0.2: {} + + base-x@3.0.11: + dependencies: + safe-buffer: 5.2.1 + + base64-js@1.5.1: {} + + binary-extensions@2.3.0: {} + + bn.js@5.2.3: {} + + borsh@0.7.0: + dependencies: + bn.js: 5.2.3 + bs58: 4.0.1 + text-encoding-utf-8: 1.0.2 + + borsh@2.0.0: {} + + brace-expansion@1.1.14: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browser-stdout@1.3.1: {} + + bs58@4.0.1: + dependencies: + base-x: 3.0.11 + + buffer-from@1.1.2: {} + + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + bufferutil@4.1.0: + dependencies: + node-gyp-build: 4.8.4 + optional: true + + camelcase@6.3.0: {} + + chai@4.5.0: + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.4 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.1.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.6.2: {} + + check-error@1.0.3: + dependencies: + get-func-name: 2.0.2 + + chokidar@3.5.3: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + cliui@7.0.4: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + commander@14.0.3: {} + + commander@2.20.3: {} + + concat-map@0.0.1: {} + + debug@4.3.3(supports-color@8.1.1): + dependencies: + ms: 2.1.2 + optionalDependencies: + supports-color: 8.1.1 + + decamelize@4.0.0: {} + + deep-eql@4.1.4: + dependencies: + type-detect: 4.1.0 + + delay@5.0.0: {} + + diff@3.5.1: {} + + diff@5.0.0: {} + + emoji-regex@8.0.0: {} + + es6-promise@4.2.8: {} + + es6-promisify@5.0.0: + dependencies: + es6-promise: 4.2.8 + + escalade@3.2.0: {} + + escape-string-regexp@4.0.0: {} + + eventemitter3@5.0.4: {} + + eyes@0.1.8: {} + + fast-stable-stringify@1.0.0: {} + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat@5.0.2: {} + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + get-caller-file@2.0.5: {} + + get-func-name@2.0.2: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob@7.2.0: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.5 + once: 1.4.0 + path-is-absolute: 1.0.1 + + growl@1.10.5: {} + + has-flag@4.0.0: {} + + he@1.2.0: {} + + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + + ieee754@1.2.1: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + is-plain-obj@2.1.0: {} + + is-unicode-supported@0.1.0: {} + + isexe@2.0.0: {} + + isomorphic-ws@4.0.1(ws@7.5.11(bufferutil@4.1.0)(utf-8-validate@6.0.6)): + dependencies: + ws: 7.5.11(bufferutil@4.1.0)(utf-8-validate@6.0.6) + + jayson@4.3.0(bufferutil@4.1.0)(utf-8-validate@6.0.6): + dependencies: + '@types/connect': 3.4.38 + '@types/node': 12.20.55 + '@types/ws': 7.4.7 + 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.11(bufferutil@4.1.0)(utf-8-validate@6.0.6)) + json-stringify-safe: 5.0.1 + stream-json: 1.9.1 + uuid: 8.3.2 + ws: 7.5.11(bufferutil@4.1.0)(utf-8-validate@6.0.6) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + json-stringify-safe@5.0.1: {} + + json5@1.0.2: + dependencies: + minimist: 1.2.8 + optional: true + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + log-symbols@4.1.0: + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + + loupe@2.3.7: + dependencies: + get-func-name: 2.0.2 + + make-error@1.3.6: {} + + minimatch@3.1.5: + dependencies: + brace-expansion: 1.1.14 + + minimatch@4.2.1: + dependencies: + brace-expansion: 1.1.14 + + minimist@1.2.8: {} + + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + + mocha@9.2.2: + dependencies: + '@ungap/promise-all-settled': 1.1.2 + ansi-colors: 4.1.1 + browser-stdout: 1.3.1 + chokidar: 3.5.3 + debug: 4.3.3(supports-color@8.1.1) + diff: 5.0.0 + escape-string-regexp: 4.0.0 + find-up: 5.0.0 + glob: 7.2.0 + growl: 1.10.5 + he: 1.2.0 + js-yaml: 4.1.0 + log-symbols: 4.1.0 + minimatch: 4.2.1 + ms: 2.1.3 + nanoid: 3.3.1 + serialize-javascript: 6.0.0 + strip-json-comments: 3.1.1 + supports-color: 8.1.1 + which: 2.0.2 + workerpool: 6.2.0 + yargs: 16.2.0 + yargs-parser: 20.2.4 + yargs-unparser: 2.0.0 + + ms@2.1.2: {} + + ms@2.1.3: {} + + nanoid@3.3.1: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-gyp-build@4.8.4: + optional: true + + normalize-path@3.0.0: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + pathval@1.1.1: {} + + picomatch@2.3.2: {} + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.2 + + require-directory@2.1.1: {} + + rpc-websockets@9.3.9: + dependencies: + '@swc/helpers': 0.5.21 + '@types/uuid': 10.0.0 + '@types/ws': 8.18.1 + buffer: 6.0.3 + eventemitter3: 5.0.4 + uuid: 14.0.0 + ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + optionalDependencies: + bufferutil: 4.1.0 + utf-8-validate: 6.0.6 + + safe-buffer@5.2.1: {} + + serialize-javascript@6.0.0: + dependencies: + randombytes: 2.1.0 + + solana-bankrun-darwin-arm64@0.3.1: + optional: true + + solana-bankrun-darwin-universal@0.3.1: + optional: true + + solana-bankrun-darwin-x64@0.3.1: + optional: true + + solana-bankrun-linux-x64-gnu@0.3.1: + optional: true + + solana-bankrun-linux-x64-musl@0.3.1: + optional: true + + solana-bankrun@0.3.1(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6): + dependencies: + '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6) + bs58: 4.0.1 + optionalDependencies: + solana-bankrun-darwin-arm64: 0.3.1 + solana-bankrun-darwin-universal: 0.3.1 + solana-bankrun-darwin-x64: 0.3.1 + solana-bankrun-linux-x64-gnu: 0.3.1 + solana-bankrun-linux-x64-musl: 0.3.1 + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + stream-chain@2.2.5: {} + + stream-json@1.9.1: + dependencies: + stream-chain: 2.2.5 + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-bom@3.0.0: + optional: true + + strip-json-comments@3.1.1: {} + + superstruct@2.0.2: {} + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + text-encoding-utf-8@1.0.2: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + tr46@0.0.3: {} + + ts-mocha@10.1.0(mocha@9.2.2): + dependencies: + mocha: 9.2.2 + ts-node: 7.0.1 + optionalDependencies: + tsconfig-paths: 3.15.0 + + ts-node@7.0.1: + dependencies: + arrify: 1.0.1 + buffer-from: 1.1.2 + diff: 3.5.1 + make-error: 1.3.6 + minimist: 1.2.8 + mkdirp: 0.5.6 + source-map-support: 0.5.21 + yn: 2.0.0 + + tsconfig-paths@3.15.0: + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + optional: true + + tslib@2.8.1: {} + + type-detect@4.1.0: {} + + typescript@4.9.5: {} + + undici-types@7.24.6: {} + + utf-8-validate@6.0.6: + dependencies: + node-gyp-build: 4.8.4 + optional: true + + uuid@14.0.0: {} + + uuid@8.3.2: {} + + webidl-conversions@3.0.1: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + workerpool@6.2.0: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrappy@1.0.2: {} + + ws@7.5.11(bufferutil@4.1.0)(utf-8-validate@6.0.6): + optionalDependencies: + bufferutil: 4.1.0 + utf-8-validate: 6.0.6 + + ws@8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6): + optionalDependencies: + bufferutil: 4.1.0 + utf-8-validate: 6.0.6 + + y18n@5.0.8: {} + + yargs-parser@20.2.4: {} + + yargs-unparser@2.0.0: + dependencies: + camelcase: 6.3.0 + decamelize: 4.0.0 + flat: 5.0.2 + is-plain-obj: 2.1.0 + + yargs@16.2.0: + dependencies: + cliui: 7.0.4 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.4 + + yn@2.0.0: {} + + yocto-queue@0.1.0: {} diff --git a/tokens/token-2022/mint-close-authority/pinocchio/program/Cargo.toml b/tokens/token-2022/mint-close-authority/pinocchio/program/Cargo.toml new file mode 100644 index 000000000..d89afda1e --- /dev/null +++ b/tokens/token-2022/mint-close-authority/pinocchio/program/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "token-2022-mint-close-authority-pinocchio-program" +version = "0.1.0" +edition = "2021" + +[dependencies] +pinocchio.workspace = true +pinocchio-log.workspace = true +pinocchio-system.workspace = true + +[lib] +crate-type = ["cdylib", "lib"] + +[features] +custom-heap = [] +custom-panic = [] + +[lints.rust] +unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/tokens/token-2022/mint-close-authority/pinocchio/program/src/instructions/create_mint.rs b/tokens/token-2022/mint-close-authority/pinocchio/program/src/instructions/create_mint.rs new file mode 100644 index 000000000..223da4317 --- /dev/null +++ b/tokens/token-2022/mint-close-authority/pinocchio/program/src/instructions/create_mint.rs @@ -0,0 +1,118 @@ +use alloc::vec::Vec; + +use pinocchio::{ + cpi::invoke, + error::ProgramError, + instruction::{InstructionAccount, InstructionView}, + sysvars::{rent::Rent, Sysvar}, + AccountView, ProgramResult, +}; +use pinocchio_log::log; +use pinocchio_system::instructions::CreateAccount; + +use crate::instructions::{CreateTokenArgs, MINT_SIZE, TOKEN_2022_PROGRAM_ID}; + +/// Token-2022 instruction discriminators (variants of the program's instruction +/// enum) that this example builds by hand. +const INITIALIZE_MINT: u8 = 0; +const INITIALIZE_MINT_CLOSE_AUTHORITY: u8 = 25; + +/// Creates a new SPL Token-2022 mint that carries the `MintCloseAuthority` +/// extension, allowing the configured authority to later close the mint account +/// and reclaim its rent. +/// +/// Accounts: +/// 0. `[signer, writable]` mint account (a fresh keypair to initialize) +/// 1. `[]` mint authority (also set as the freeze authority) +/// 2. `[]` close authority (allowed to close the mint later) +/// 3. `[signer, writable]` payer (funds the new account) +/// 4. `[]` rent sysvar +/// 5. `[]` system program +/// 6. `[]` Token-2022 program +/// +/// Instruction data: Borsh `[decimals: u8]`. +pub fn create_mint(accounts: &[AccountView], data: &[u8]) -> ProgramResult { + // `system_program` and `token_program` are unused directly, but must be + // supplied so they are present in the transaction for the CPIs below. + let [mint_account, mint_authority, close_authority, payer, rent_sysvar, _system_program, _token_program] = + accounts + else { + return Err(ProgramError::NotEnoughAccountKeys); + }; + + let args = CreateTokenArgs::parse(data)?; + + // Fund the mint account with enough lamports to stay rent-exempt at the + // extended size, and create it owned by the Token-2022 program. + let lamports = Rent::get()?.try_minimum_balance(MINT_SIZE)?; + + log!("Creating mint account"); + CreateAccount { + from: payer, + to: mint_account, + lamports, + space: MINT_SIZE as u64, + owner: &TOKEN_2022_PROGRAM_ID, + } + .invoke()?; + + // The `MintCloseAuthority` extension must be initialized *before* the mint + // itself — extensions live in the space past the base mint and Token-2022 + // rejects initializing them once `InitializeMint` has run. + log!("Initializing mint close authority extension"); + let close_authority_data = build_initialize_close_authority_data(close_authority); + let close_authority_accounts = [InstructionAccount::writable(mint_account.address())]; + invoke( + &InstructionView { + program_id: &TOKEN_2022_PROGRAM_ID, + accounts: &close_authority_accounts, + data: &close_authority_data, + }, + &[mint_account], + )?; + + log!("Initializing mint"); + let mint_data = build_initialize_mint_data(mint_authority, args.decimals); + let mint_accounts = [ + InstructionAccount::writable(mint_account.address()), + InstructionAccount::readonly(rent_sysvar.address()), + ]; + invoke( + &InstructionView { + program_id: &TOKEN_2022_PROGRAM_ID, + accounts: &mint_accounts, + data: &mint_data, + }, + &[mint_account, rent_sysvar], + )?; + + log!("Mint created"); + Ok(()) +} + +/// Serializes an `InitializeMintCloseAuthority` instruction (variant 25). +/// +/// Layout: `[25] close_authority: COption`, where a present pubkey is +/// encoded as a `1` tag byte followed by the 32-byte key. +fn build_initialize_close_authority_data(close_authority: &AccountView) -> Vec { + let mut data = Vec::with_capacity(34); + data.push(INITIALIZE_MINT_CLOSE_AUTHORITY); + data.push(1); // COption::Some + data.extend_from_slice(close_authority.address().as_ref()); + data +} + +/// Serializes an `InitializeMint` instruction (variant 0). +/// +/// Layout: `[0] decimals: u8 mint_authority: Pubkey freeze_authority: +/// COption`. The mint authority doubles as the freeze authority, matching +/// the `native` example. +fn build_initialize_mint_data(mint_authority: &AccountView, decimals: u8) -> Vec { + let mut data = Vec::with_capacity(67); + data.push(INITIALIZE_MINT); + data.push(decimals); + data.extend_from_slice(mint_authority.address().as_ref()); + data.push(1); // freeze_authority: COption::Some + data.extend_from_slice(mint_authority.address().as_ref()); + data +} diff --git a/tokens/token-2022/mint-close-authority/pinocchio/program/src/instructions/mod.rs b/tokens/token-2022/mint-close-authority/pinocchio/program/src/instructions/mod.rs new file mode 100644 index 000000000..52f3ff0b6 --- /dev/null +++ b/tokens/token-2022/mint-close-authority/pinocchio/program/src/instructions/mod.rs @@ -0,0 +1,48 @@ +use pinocchio::error::ProgramError; + +mod create_mint; + +pub use create_mint::*; + +/// The SPL Token-2022 program ID +/// (`TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb`). +/// +/// Unlike the legacy SPL Token program (which `pinocchio-token` wraps), there is +/// no pinocchio crate for Token-2022, so its instructions are built by hand +/// below and CPI'd into this program. +pub const TOKEN_2022_PROGRAM_ID: pinocchio::Address = + pinocchio::Address::from_str_const("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"); + +/// Size (in bytes) of a Token-2022 mint account that carries the +/// `MintCloseAuthority` extension. +/// +/// A bare SPL mint is 82 bytes, but once any extension is present Token-2022 +/// lays the account out as: +/// +/// ```text +/// base account length (165, the size of a token Account) + +/// account-type byte (1) + +/// TLV entry: type (2) + length (2) + value (32) = 202 +/// ``` +/// +/// The base is padded up to a token *Account*'s length (165) so a mint and an +/// account can never be the same size, and the `MintCloseAuthority` value is a +/// single optional pubkey (32 bytes). This mirrors +/// `ExtensionType::try_calculate_account_len::(&[MintCloseAuthority])`. +pub const MINT_SIZE: usize = 202; + +/// Borsh-encoded arguments for the create-mint instruction. +/// +/// Field order matches the `native` example's `CreateTokenArgs` so the two +/// options share an identical wire format. +pub struct CreateTokenArgs { + pub decimals: u8, +} + +impl CreateTokenArgs { + /// Parses the instruction data: a single `u8` (the mint's decimals). + pub fn parse(data: &[u8]) -> Result { + let decimals = *data.first().ok_or(ProgramError::InvalidInstructionData)?; + Ok(Self { decimals }) + } +} diff --git a/tokens/token-2022/mint-close-authority/pinocchio/program/src/lib.rs b/tokens/token-2022/mint-close-authority/pinocchio/program/src/lib.rs new file mode 100644 index 000000000..eaba20484 --- /dev/null +++ b/tokens/token-2022/mint-close-authority/pinocchio/program/src/lib.rs @@ -0,0 +1,14 @@ +#![no_std] + +// The `entrypoint!` macro installs the default (bump) global allocator, so the +// `alloc` crate is available — we use it to build the Token-2022 instruction +// data at runtime. +extern crate alloc; + +pub mod instructions; +pub mod processor; + +use pinocchio::{entrypoint, nostd_panic_handler}; + +entrypoint!(processor::process_instruction); +nostd_panic_handler!(); diff --git a/tokens/token-2022/mint-close-authority/pinocchio/program/src/processor.rs b/tokens/token-2022/mint-close-authority/pinocchio/program/src/processor.rs new file mode 100644 index 000000000..77a86ffda --- /dev/null +++ b/tokens/token-2022/mint-close-authority/pinocchio/program/src/processor.rs @@ -0,0 +1,22 @@ +use pinocchio::{AccountView, Address, ProgramResult}; +use pinocchio_log::log; + +use crate::instructions::create_mint; + +/// Entrypoint for the program. +/// +/// This example exposes a single instruction (creating a Token-2022 mint with +/// the `MintCloseAuthority` extension), so — like the `create-token` example — +/// there is no leading discriminator byte. The whole instruction data is the +/// Borsh-encoded `CreateTokenArgs`, matching the wire format of the `native` +/// version: +/// +/// `[token_decimals: u8]` +pub fn process_instruction( + _program_id: &Address, + accounts: &[AccountView], + instruction_data: &[u8], +) -> ProgramResult { + log!("Instruction: CreateMint"); + create_mint(accounts, instruction_data) +} diff --git a/tokens/token-2022/mint-close-authority/pinocchio/tests/test.ts b/tokens/token-2022/mint-close-authority/pinocchio/tests/test.ts new file mode 100644 index 000000000..940d9ccfd --- /dev/null +++ b/tokens/token-2022/mint-close-authority/pinocchio/tests/test.ts @@ -0,0 +1,91 @@ +import { Buffer } from "node:buffer"; +import { + Keypair, + PublicKey, + SYSVAR_RENT_PUBKEY, + SystemProgram, + Transaction, + TransactionInstruction, +} from "@solana/web3.js"; +import * as borsh from "borsh"; +import { assert } from "chai"; +import { start } from "solana-bankrun"; + +// The Token-2022 program is bundled with bankrun, so there is no fixture to +// load. Its ID is hard-coded here to avoid pulling in @solana/spl-token. +const TOKEN_2022_PROGRAM_ID = new PublicKey("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"); + +// Borsh schema for the instruction data, matching the program's +// `CreateTokenArgs` (and the native example's wire format). +const CreateTokenArgsSchema: borsh.Schema = { + struct: { token_decimals: "u8" }, +}; + +// Token-2022 lays a mint with one extension out as: +// base account length (165) + account-type byte (1) + TLV entry (36) = 202 +const EXTENDED_MINT_SIZE = 202; +const ACCOUNT_TYPE_OFFSET = 165; // 1 == Mint +const TLV_TYPE_OFFSET = 166; // u16 LE, 3 == MintCloseAuthority +const TLV_VALUE_OFFSET = 170; // 32-byte close authority pubkey +const DECIMALS_OFFSET = 44; // in the base mint layout +const MINT_CLOSE_AUTHORITY_EXTENSION = 3; +const ACCOUNT_TYPE_MINT = 1; + +describe("Token-2022 Mint Close Authority (Pinocchio)", async () => { + const PROGRAM_ID = PublicKey.unique(); + const context = await start( + [{ name: "token_2022_mint_close_authority_pinocchio_program", programId: PROGRAM_ID }], + [], + ); + const client = context.banksClient; + const payer = context.payer; + + it("Creates a Token-2022 mint with a close authority", async () => { + const decimals = 9; + const mintKeypair = Keypair.generate(); + + const data = Buffer.from(borsh.serialize(CreateTokenArgsSchema, { token_decimals: decimals })); + + const ix = new TransactionInstruction({ + programId: PROGRAM_ID, + keys: [ + { pubkey: mintKeypair.publicKey, isSigner: true, isWritable: true }, // mint account + { pubkey: payer.publicKey, isSigner: false, isWritable: false }, // mint authority + { pubkey: payer.publicKey, isSigner: false, isWritable: false }, // close authority + { pubkey: payer.publicKey, isSigner: true, isWritable: true }, // payer + { pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false }, // rent sysvar + { pubkey: SystemProgram.programId, isSigner: false, isWritable: false }, // system program + { pubkey: TOKEN_2022_PROGRAM_ID, isSigner: false, isWritable: false }, // Token-2022 program + ], + data, + }); + + const tx = new Transaction(); + tx.feePayer = payer.publicKey; + tx.recentBlockhash = context.lastBlockhash; + tx.add(ix); + tx.sign(payer, mintKeypair); + await client.processTransaction(tx); + + const mintAccount = await client.getAccount(mintKeypair.publicKey); + if (mintAccount === null) throw new Error("Mint account not found"); + const mintData = Buffer.from(mintAccount.data); + + // Owned by Token-2022, and sized for exactly one extension. + assert.deepEqual(mintAccount.owner.toBytes(), TOKEN_2022_PROGRAM_ID.toBytes()); + assert.equal(mintData.length, EXTENDED_MINT_SIZE); + + // Base mint fields were initialized. + assert.equal(mintData[DECIMALS_OFFSET], decimals); + + // The extension header marks this as a Mint carrying MintCloseAuthority. + assert.equal(mintData[ACCOUNT_TYPE_OFFSET], ACCOUNT_TYPE_MINT); + assert.equal(mintData.readUInt16LE(TLV_TYPE_OFFSET), MINT_CLOSE_AUTHORITY_EXTENSION); + + // The configured close authority was stored in the extension. + const storedCloseAuthority = mintData.subarray(TLV_VALUE_OFFSET, TLV_VALUE_OFFSET + 32); + assert.deepEqual(new Uint8Array(storedCloseAuthority), payer.publicKey.toBytes()); + + console.log("Mint address:", mintKeypair.publicKey.toBase58()); + }); +}); diff --git a/tokens/token-2022/mint-close-authority/pinocchio/tsconfig.json b/tokens/token-2022/mint-close-authority/pinocchio/tsconfig.json new file mode 100644 index 000000000..8c20b2236 --- /dev/null +++ b/tokens/token-2022/mint-close-authority/pinocchio/tsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "types": ["mocha", "chai", "node"], + "typeRoots": ["./node_modules/@types"], + "lib": ["es2015"], + "module": "commonjs", + "target": "es6", + "esModuleInterop": true + } +} From fa8589c41d33e7c0093d9372dd3753011f074fe1 Mon Sep 17 00:00:00 2001 From: MarkFeder <5670736+MarkFeder@users.noreply.github.com> Date: Sat, 4 Jul 2026 17:18:58 +0200 Subject: [PATCH 2/5] test: strengthen token-2022 mint-close-authority assertions Use a distinct close-authority keypair so the stored-authority check verifies sourcing from account index 2, and assert the TLV length field (32) explicitly. --- .../mint-close-authority/pinocchio/tests/test.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tokens/token-2022/mint-close-authority/pinocchio/tests/test.ts b/tokens/token-2022/mint-close-authority/pinocchio/tests/test.ts index 940d9ccfd..de29a2239 100644 --- a/tokens/token-2022/mint-close-authority/pinocchio/tests/test.ts +++ b/tokens/token-2022/mint-close-authority/pinocchio/tests/test.ts @@ -26,6 +26,7 @@ const CreateTokenArgsSchema: borsh.Schema = { const EXTENDED_MINT_SIZE = 202; const ACCOUNT_TYPE_OFFSET = 165; // 1 == Mint const TLV_TYPE_OFFSET = 166; // u16 LE, 3 == MintCloseAuthority +const TLV_LENGTH_OFFSET = 168; // u16 LE, 32 == byte length of the value const TLV_VALUE_OFFSET = 170; // 32-byte close authority pubkey const DECIMALS_OFFSET = 44; // in the base mint layout const MINT_CLOSE_AUTHORITY_EXTENSION = 3; @@ -43,6 +44,9 @@ describe("Token-2022 Mint Close Authority (Pinocchio)", async () => { it("Creates a Token-2022 mint with a close authority", async () => { const decimals = 9; const mintKeypair = Keypair.generate(); + // A distinct key for the close authority so the stored-authority assertion + // verifies it is sourced from account index 2, not the mint authority/payer. + const closeAuthority = Keypair.generate(); const data = Buffer.from(borsh.serialize(CreateTokenArgsSchema, { token_decimals: decimals })); @@ -51,7 +55,7 @@ describe("Token-2022 Mint Close Authority (Pinocchio)", async () => { keys: [ { pubkey: mintKeypair.publicKey, isSigner: true, isWritable: true }, // mint account { pubkey: payer.publicKey, isSigner: false, isWritable: false }, // mint authority - { pubkey: payer.publicKey, isSigner: false, isWritable: false }, // close authority + { pubkey: closeAuthority.publicKey, isSigner: false, isWritable: false }, // close authority { pubkey: payer.publicKey, isSigner: true, isWritable: true }, // payer { pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false }, // rent sysvar { pubkey: SystemProgram.programId, isSigner: false, isWritable: false }, // system program @@ -81,10 +85,11 @@ describe("Token-2022 Mint Close Authority (Pinocchio)", async () => { // The extension header marks this as a Mint carrying MintCloseAuthority. assert.equal(mintData[ACCOUNT_TYPE_OFFSET], ACCOUNT_TYPE_MINT); assert.equal(mintData.readUInt16LE(TLV_TYPE_OFFSET), MINT_CLOSE_AUTHORITY_EXTENSION); + assert.equal(mintData.readUInt16LE(TLV_LENGTH_OFFSET), 32); // The configured close authority was stored in the extension. const storedCloseAuthority = mintData.subarray(TLV_VALUE_OFFSET, TLV_VALUE_OFFSET + 32); - assert.deepEqual(new Uint8Array(storedCloseAuthority), payer.publicKey.toBytes()); + assert.deepEqual(new Uint8Array(storedCloseAuthority), closeAuthority.publicKey.toBytes()); console.log("Mint address:", mintKeypair.publicKey.toBase58()); }); From 72647e9732d13f902ad4e9dda961a28beb887057 Mon Sep 17 00:00:00 2001 From: MarkFeder <5670736+MarkFeder@users.noreply.github.com> Date: Wed, 15 Jul 2026 23:47:06 +0200 Subject: [PATCH 3/5] token-2022 mint-close-authority pinocchio: make bankrun test actually run Move the async bankrun setup out of the `describe` callback and into a `before` hook so Mocha collects the `it` block (an async `describe` body registers tests after the suite is already collected, so nothing ran). With the test now executing, replace `Rent::try_minimum_balance` with the integer rent formula: its floating-point exemption-threshold path emits an opcode the bankrun VM rejects ("unsupported BPF instruction"). Matches the create-token example. --- .../program/src/instructions/create_mint.rs | 11 +++++++--- .../pinocchio/tests/test.ts | 20 ++++++++++++------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/tokens/token-2022/mint-close-authority/pinocchio/program/src/instructions/create_mint.rs b/tokens/token-2022/mint-close-authority/pinocchio/program/src/instructions/create_mint.rs index 223da4317..4e9cb0dc3 100644 --- a/tokens/token-2022/mint-close-authority/pinocchio/program/src/instructions/create_mint.rs +++ b/tokens/token-2022/mint-close-authority/pinocchio/program/src/instructions/create_mint.rs @@ -4,7 +4,7 @@ use pinocchio::{ cpi::invoke, error::ProgramError, instruction::{InstructionAccount, InstructionView}, - sysvars::{rent::Rent, Sysvar}, + sysvars::rent::{ACCOUNT_STORAGE_OVERHEAD, DEFAULT_LAMPORTS_PER_BYTE}, AccountView, ProgramResult, }; use pinocchio_log::log; @@ -43,8 +43,13 @@ pub fn create_mint(accounts: &[AccountView], data: &[u8]) -> ProgramResult { let args = CreateTokenArgs::parse(data)?; // Fund the mint account with enough lamports to stay rent-exempt at the - // extended size, and create it owned by the Token-2022 program. - let lamports = Rent::get()?.try_minimum_balance(MINT_SIZE)?; + // extended size, and create it owned by the Token-2022 program. Rent is + // computed with integer math using the network's default parameters + // (`DEFAULT_LAMPORTS_PER_BYTE` already folds in the 2-year exemption + // threshold). We avoid `Rent::try_minimum_balance`, whose floating-point + // exemption-threshold path emits an instruction the bankrun test VM rejects + // ("unsupported BPF instruction"). + let lamports = (ACCOUNT_STORAGE_OVERHEAD + MINT_SIZE as u64) * DEFAULT_LAMPORTS_PER_BYTE; log!("Creating mint account"); CreateAccount { diff --git a/tokens/token-2022/mint-close-authority/pinocchio/tests/test.ts b/tokens/token-2022/mint-close-authority/pinocchio/tests/test.ts index de29a2239..68988850b 100644 --- a/tokens/token-2022/mint-close-authority/pinocchio/tests/test.ts +++ b/tokens/token-2022/mint-close-authority/pinocchio/tests/test.ts @@ -32,14 +32,20 @@ const DECIMALS_OFFSET = 44; // in the base mint layout const MINT_CLOSE_AUTHORITY_EXTENSION = 3; const ACCOUNT_TYPE_MINT = 1; -describe("Token-2022 Mint Close Authority (Pinocchio)", async () => { +describe("Token-2022 Mint Close Authority (Pinocchio)", () => { const PROGRAM_ID = PublicKey.unique(); - const context = await start( - [{ name: "token_2022_mint_close_authority_pinocchio_program", programId: PROGRAM_ID }], - [], - ); - const client = context.banksClient; - const payer = context.payer; + let context: Awaited>; + let client: (typeof context)["banksClient"]; + let payer: (typeof context)["payer"]; + + // A `describe` callback runs synchronously, so the async bankrun setup must + // live in a `before` hook — otherwise the `it` blocks register after Mocha + // has already collected the suite and nothing runs. + before(async () => { + context = await start([{ name: "token_2022_mint_close_authority_pinocchio_program", programId: PROGRAM_ID }], []); + client = context.banksClient; + payer = context.payer; + }); it("Creates a Token-2022 mint with a close authority", async () => { const decimals = 9; From b0e36d13d278673c3f1f9d832e2f451e6a4512f4 Mon Sep 17 00:00:00 2001 From: MarkFeder <5670736+MarkFeder@users.noreply.github.com> Date: Sun, 19 Jul 2026 20:25:27 +0200 Subject: [PATCH 4/5] token-2022 mint-close-authority pinocchio: migrate test to @solana/kit Build the transaction with @solana/kit (addresses, instruction, message, signing) instead of @solana/web3.js. A thin web3.js shim remains only where solana-bankrun@0.3.1's BanksClient still requires it (start()/getAccount() PublicKey, processTransaction() VersionedTransaction). Bump tsconfig target/lib to es2020 for kit's BigInt usage. --- .../pinocchio/package.json | 1 + .../pinocchio/pnpm-lock.yaml | 896 ++++++++++++++++++ .../pinocchio/tests/test.ts | 111 ++- .../pinocchio/tsconfig.json | 4 +- 4 files changed, 974 insertions(+), 38 deletions(-) diff --git a/tokens/token-2022/mint-close-authority/pinocchio/package.json b/tokens/token-2022/mint-close-authority/pinocchio/package.json index 063fb5279..f71273939 100644 --- a/tokens/token-2022/mint-close-authority/pinocchio/package.json +++ b/tokens/token-2022/mint-close-authority/pinocchio/package.json @@ -7,6 +7,7 @@ "deploy": "solana program deploy ./program/target/so/program.so" }, "dependencies": { + "@solana/kit": "^7.0.0", "@solana/web3.js": "^1.98.4", "borsh": "^2.0.0" }, diff --git a/tokens/token-2022/mint-close-authority/pinocchio/pnpm-lock.yaml b/tokens/token-2022/mint-close-authority/pinocchio/pnpm-lock.yaml index 4b2f4d88c..081cd00e5 100644 --- a/tokens/token-2022/mint-close-authority/pinocchio/pnpm-lock.yaml +++ b/tokens/token-2022/mint-close-authority/pinocchio/pnpm-lock.yaml @@ -8,6 +8,9 @@ importers: .: dependencies: + '@solana/kit': + specifier: ^7.0.0 + version: 7.0.0(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6) '@solana/web3.js': specifier: ^1.98.4 version: 1.98.4(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6) @@ -54,6 +57,33 @@ packages: resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} engines: {node: ^14.21.3 || >=16} + '@solana/accounts@7.0.0': + resolution: {integrity: sha512-RfbinkhuWxcObxZIdjeWEn/mzLqRp/h2hAk/ZQCUxPdDBW8h4XxEybK9GBItGOAcrUz5HuusXTD+cXXnlIxWcg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/addresses@7.0.0': + resolution: {integrity: sha512-E7sJtV5d3bXrmw3I30rcKY+xoqM++6KIVJCi+q8ZaSMyP04UMfEENPHIJ+TkyS1RUgjzPT91ka/oWrtTh6EfkQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/assertions@7.0.0': + resolution: {integrity: sha512-CShOQLPezI0tbrih+L88fzt8FMHDyJoWkmulk4wfRp3HhpQL2yNlH/SWLH033qysnvkmE7TxBFUtcnbnf7jz1g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/buffer-layout@4.0.1': resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==} engines: {node: '>=5.10'} @@ -64,12 +94,60 @@ packages: peerDependencies: typescript: '>=5.3.3' + '@solana/codecs-core@7.0.0': + resolution: {integrity: sha512-6HtEisZEtFb6okARUgYqmKdDbn2aHRrSCDgB1/GEwr0s6fK5XNYpafaSjorbs2MEyZV3tCUFTj2j6fk/4nNcLg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/codecs-data-structures@7.0.0': + resolution: {integrity: sha512-P0Ys1mB4lYlz3MMTCaJSysE3OYrq8WvsveU1ta8U/yG1qChXFGCOxPVh06swjaRxwPrEakb9VUESS5vNtp1rRA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/codecs-numbers@2.3.0': resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.3.3' + '@solana/codecs-numbers@7.0.0': + resolution: {integrity: sha512-XL0jnmnXr3ceoX4tusT+XkBVR2iGKEJecTIXbIV7ILi9xObg3fNXafNbTmbIOvKc0ByTyjo8EWZ9jQKSRWgsgA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/codecs-strings@7.0.0': + resolution: {integrity: sha512-zXE1PE9HkVk6phZ6aqHTXvLZ0qIl5bJNIvG9eMB7LuFO1XBVQywJUtjKS8fE3/xmRCWSMilFSrEXGA+SpOyLrQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + fastestsmallesttextencoderdecoder: ^1.0.22 + typescript: '>=5.4.0' + peerDependenciesMeta: + fastestsmallesttextencoderdecoder: + optional: true + typescript: + optional: true + + '@solana/codecs@7.0.0': + resolution: {integrity: sha512-xT1IbwKkPZ544u/eqhb9SZ0fNYJidWgIUzKNQMbvLCwduayAkQp+czlGdvLQ6CVlqtCewtH3gW8biGU7YuBdEw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + '@solana/errors@2.3.0': resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==} engines: {node: '>=20.18.0'} @@ -77,6 +155,322 @@ packages: peerDependencies: typescript: '>=5.3.3' + '@solana/errors@7.0.0': + resolution: {integrity: sha512-94r+LLSzZ0XVp+LOogwxWGXeo138uvwqtqRW9Tjl1DIXrFgh8euXnJSXZyydu1UXJs7ItOSm0QreJviSGw3TGQ==} + engines: {node: '>=20.18.0'} + hasBin: true + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/fast-stable-stringify@7.0.0': + resolution: {integrity: sha512-i/b5ZJMqMJXa6etjypANa2/ErPZfNG9/EVIYl7HpWooyCRgZ8hZJmJ2Cgrp0r4EMXCLeWn4aEG2HOBTzOJ4F7Q==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/fixed-points@7.0.0': + resolution: {integrity: sha512-Y3gcyHTponi5kXpWVEJIhuZ7yT84N+8He4dbjXWqwMBJnzKM+4tqFCbzy6y+6+Jxt44RT1lDmbpxmZopFRXU8Q==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/functional@7.0.0': + resolution: {integrity: sha512-ix9fzYhc2hCLiYf+hGI00mzzayANKDExEBxbwrtMj/BdQkwgUIvIlOssqHeSqDChL3UZhq9lR24Nz4JwYX8Jbw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/instruction-plans@7.0.0': + resolution: {integrity: sha512-uzXHztc8hLoT5TNWFsBX2DIETyp/Lr2l36O330s3YCgpRmfI4IRbBrjjq7TxDYFm/QY8+DD4CRG8p7wZSqG8dQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/instructions@7.0.0': + resolution: {integrity: sha512-ZN0gKAtCOKDuIaStcvLZDf5H20fkk7jr4dZE0Rk7z0kslf6mrRam9Y23N6AzeHp/b5ZeVKyfaTf4M35mOktLNg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/keys@7.0.0': + resolution: {integrity: sha512-JsdYR/YN3AGHZN2aZoeE5cymHYkNoBLnqgXoRncW/VyD7fMcR350aHU1hCMYd0b5BtITLsGmvvtvrgVkzK83Eg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/kit@7.0.0': + resolution: {integrity: sha512-ZCeai4LRJQooUmJXvpgMEGFTrCdJnV1ODbDJ8oqFZ+Y4t/9x1baQsFFpruqsdRyeGv2Rr+X6jV7cldVD+hyzRA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/nominal-types@7.0.0': + resolution: {integrity: sha512-ff21hmKKMckDkGWah9tRXsEyFCtSnkugH+EMLGJOn7tiXdtFljOXW5Q12IXyeil87EE8aWb1MS6p8v5+hi71Vg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/offchain-messages@7.0.0': + resolution: {integrity: sha512-fGrzxmqVStweGHRlXVAPKACdDboFCwXq5m8C+aD9Nupax6Q9rnvjICzYRLypwqB9X90XIZazh0ys+0KGLMpIJQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/options@7.0.0': + resolution: {integrity: sha512-6DhvMqRcL3mG0R5JejYIW5PDTDr7HcLX2R9iCs6OPN1HdsyXmE2rX2EldnuA0rYz1buOodeWYsu4N1lpDcEpaQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/plugin-core@7.0.0': + resolution: {integrity: sha512-EwTUfOGoQQ3aXooRlQFVbk+sJW7NqJl1K+bmSLiJUjaBTSqtbr3GtMu7aoybJqzZQKjOGSG4Hn0BzK24SvWy3A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/plugin-interfaces@7.0.0': + resolution: {integrity: sha512-fz/HknZLGnVIjhjXrMzW3Qm1x80oeEMSOk4RzMwjcyAEyfzhHtGNW74NsU5W+uFpYz6UBbV5mB1jpuAdJdnj9A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/program-client-core@7.0.0': + resolution: {integrity: sha512-+N8HImlR3MTbbvhOShsLelQXGZKbi6KhPhyy+4ZkDLbnRs4QikTamIChXZmoCyxB51S8/9cNRAKyQhbeF5Y8Qg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/programs@7.0.0': + resolution: {integrity: sha512-a1HNgzr9YiiZ8vK4VaKHEXjnZmKX7W5ab2ghuseIalEw/+PJLFcTRTOw8n3efRu677b/bG2Icmb3MBBEXmvbPg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/promises@7.0.0': + resolution: {integrity: sha512-rjoHnaR4zeEIHqIzfgotxRrLKqY4Goj0G5duZOnjHm8ZC+7eDkH5/mXj1bDJ4ROM70dVM+y1Xkrjg7IL6k6StA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-api@7.0.0': + resolution: {integrity: sha512-MTtBO883st83CjWpo8B4g8EKzXaeoBX5N7+sv4vcvsn2q1NpY4SG3XejdX1FrKeTe9Xjbv0/FzFtykstbKe1UA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-parsed-types@7.0.0': + resolution: {integrity: sha512-80VjPbB/TZ/Hy5qdRF7onPfMPHk5cwBVbtNUGbilrmFuqRzSvzSOY1ynNXXODPZBytNmPq7u7oJfSCsQ5MA9Ig==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-spec-types@7.0.0': + resolution: {integrity: sha512-V4Hp2//fW8eYq1zcGgHPu7FXKHyIWERBQd4+NRaKn2m8rPiVAm3pVRwPzSvVE0+8Nyf5qzdcfcMf7NQdhl6j7Q==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-spec@7.0.0': + resolution: {integrity: sha512-GRGlXpLgap9yVh3qmCl4huuKAoLMp/p82/9Q9ONj6lmFH+RqJE4Q+16V+HxHI5ZakmwZYoVZU4GEKjumse9SCg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-subscriptions-api@7.0.0': + resolution: {integrity: sha512-o2PZDeNC/kg3VO3ry4R0JySJ1xMHLchZwmzVwamxGidlLe9uvzm6CHlCqv/JCq4/zHLo7qbLqnmOckZ6vlDqaw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-subscriptions-channel-websocket@7.0.0': + resolution: {integrity: sha512-79ecXBCT2pG+vXNBZim80vUz+B04L1mEduXobBIXM55VvxsHYT+4H4V+/ZHoFJUK6Lhbt+6zhpconx8Wa3H+JA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-subscriptions-spec@7.0.0': + resolution: {integrity: sha512-Oips5ciWqPGO5Cx7hcEQ/czbcrUjPf+4cTam0UMrK3BnvHPcEAWkPYlIgabQiqa60/pjOOz7B936oMXA5XwL+g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-subscriptions@7.0.0': + resolution: {integrity: sha512-jLNjUCGBbCIfABqqHopNJIeAkhd4GzhbodgCH4x2X+S0ycBaERX393+k+fG8JPJpGujkmeQFBCeIKO3lK+PoYg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-transformers@7.0.0': + resolution: {integrity: sha512-NHkTKC2J4oaMMzyOtIEDOLCGtzg1Y8vlPoBmUeA82o+DNjBSiZLR2Ariy7n7chmwKchCZ8aGirBxjLCSRc6b/g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-transport-http@7.0.0': + resolution: {integrity: sha512-W0G15BN0xljXzRRo/ZwepJNiOjKhRImF5SxhjZauh2yVBoUjfd6NSCmYcdWu0tj9lypKKrB1ReS4oPmb4yCHbA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc-types@7.0.0': + resolution: {integrity: sha512-Lf2csFSWHwN/8EL03uWfS7n1J19vWLK4DBGkQ5jebRhoJ3dD+xPcJtS+epI2281t5aghJvoV7D+RIM0NextZJg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/rpc@7.0.0': + resolution: {integrity: sha512-hCf4XEhspsNb8TnQ+E961+rBuJcTyrmwNr4LDfVHEeO/VTqaN+yVwAI1wpxcnzwc+T4OoXcyujNiQWhVZPOhiA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/signers@7.0.0': + resolution: {integrity: sha512-4E3xYQ0b9OZCTLghqfeHh66lfipy3jV1REdFJLk9WqPBaXVa/wSgGGIqZVa744ATSd9AeEfL/I5n/LrMNQOhoA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/subscribable@7.0.0': + resolution: {integrity: sha512-dJQA5AxDv/7YxuNe7GXIkaOUNhXczFaL3/SNOvXe7k77bC4dx4HPkySfcVDfEWBOePe3+8iyVbT8DZ3aOcp8Ng==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/sysvars@7.0.0': + resolution: {integrity: sha512-GKND6hCcBcrak3/VAtx6aEoAi9wQjJQzU2Fcu6JYmnTjGe5MHf21FqbjGl0aQ0C2HlJQQJmA07wgsuOiYDTDog==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/transaction-confirmation@7.0.0': + resolution: {integrity: sha512-SaU2CY9ZDJGK47DtQ7xwKFmbgzDGqIN/Ug89ZSUzDPD9QdMRXhtxgH8KZgb0gSgpyel85sSt0QH9wkWzhp69ow==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/transaction-introspection@7.0.0': + resolution: {integrity: sha512-aO+5ewxGaziXYcXJZ6F3doq/KI1L3WU2z5eCjs4DBO0kRQBHp4bH6ZKygVX2JIxOZrd1rB9SxP/CCCX2wRm8Xw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/transaction-messages@7.0.0': + resolution: {integrity: sha512-qCBYR3QQvykcI36vnqwI5090hGXS3mmCe72b/f/n9kBsBaA2oowdBXZupB1wwKe8+6x8o8VkhKQaK9oTKKbWTg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + + '@solana/transactions@7.0.0': + resolution: {integrity: sha512-y5nayd2Ozld/4Bxefz50e/E6qxyZteuZCZ7suh7z96KY6QUJlZDR+eCG1v/lA7Azt3GSOevJuYFX/ept/mqZkw==} + 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==} @@ -228,6 +622,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==} @@ -531,12 +929,14 @@ packages: engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] solana-bankrun-linux-x64-musl@0.3.1: resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] solana-bankrun@0.3.1: resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==} @@ -623,6 +1023,9 @@ packages: undici-types@7.24.6: resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==} + undici-types@8.7.0: + resolution: {integrity: sha512-gbsS+hAjHg9iV+T8XWdFqnOZEk4f5xrrX3eb9Y1GDe+B5u9H68P6SzYXXUw/rkRvJHRgKIdNfAcrcVj/JvayVA==} + utf-8-validate@6.0.6: resolution: {integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==} engines: {node: '>=6.14.2'} @@ -715,6 +1118,37 @@ snapshots: '@noble/hashes@1.8.0': {} + '@solana/accounts@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/addresses': 7.0.0(typescript@4.9.5) + '@solana/codecs-core': 7.0.0(typescript@4.9.5) + '@solana/codecs-strings': 7.0.0(typescript@4.9.5) + '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/rpc-spec': 7.0.0(typescript@4.9.5) + '@solana/rpc-types': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/addresses@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/assertions': 7.0.0(typescript@4.9.5) + '@solana/codecs-core': 7.0.0(typescript@4.9.5) + '@solana/codecs-strings': 7.0.0(typescript@4.9.5) + '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/nominal-types': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/assertions@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/errors': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + '@solana/buffer-layout@4.0.1': dependencies: buffer: 6.0.3 @@ -724,18 +1158,476 @@ snapshots: '@solana/errors': 2.3.0(typescript@4.9.5) typescript: 4.9.5 + '@solana/codecs-core@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/errors': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + + '@solana/codecs-data-structures@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/codecs-core': 7.0.0(typescript@4.9.5) + '@solana/codecs-numbers': 7.0.0(typescript@4.9.5) + '@solana/errors': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + '@solana/codecs-numbers@2.3.0(typescript@4.9.5)': dependencies: '@solana/codecs-core': 2.3.0(typescript@4.9.5) '@solana/errors': 2.3.0(typescript@4.9.5) typescript: 4.9.5 + '@solana/codecs-numbers@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/codecs-core': 7.0.0(typescript@4.9.5) + '@solana/errors': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + + '@solana/codecs-strings@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/codecs-core': 7.0.0(typescript@4.9.5) + '@solana/codecs-numbers': 7.0.0(typescript@4.9.5) + '@solana/errors': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + + '@solana/codecs@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/codecs-core': 7.0.0(typescript@4.9.5) + '@solana/codecs-data-structures': 7.0.0(typescript@4.9.5) + '@solana/codecs-numbers': 7.0.0(typescript@4.9.5) + '@solana/codecs-strings': 7.0.0(typescript@4.9.5) + '@solana/fixed-points': 7.0.0(typescript@4.9.5) + '@solana/options': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + '@solana/errors@2.3.0(typescript@4.9.5)': dependencies: chalk: 5.6.2 commander: 14.0.3 typescript: 4.9.5 + '@solana/errors@7.0.0(typescript@4.9.5)': + dependencies: + chalk: 5.6.2 + commander: 15.0.0 + optionalDependencies: + typescript: 4.9.5 + + '@solana/fast-stable-stringify@7.0.0(typescript@4.9.5)': + optionalDependencies: + typescript: 4.9.5 + + '@solana/fixed-points@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/codecs-core': 7.0.0(typescript@4.9.5) + '@solana/errors': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + + '@solana/functional@7.0.0(typescript@4.9.5)': + optionalDependencies: + typescript: 4.9.5 + + '@solana/instruction-plans@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/instructions': 7.0.0(typescript@4.9.5) + '@solana/keys': 7.0.0(typescript@4.9.5) + '@solana/promises': 7.0.0(typescript@4.9.5) + '@solana/transaction-messages': 7.0.0(typescript@4.9.5) + '@solana/transactions': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/instructions@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/codecs-core': 7.0.0(typescript@4.9.5) + '@solana/errors': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + + '@solana/keys@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/assertions': 7.0.0(typescript@4.9.5) + '@solana/codecs-core': 7.0.0(typescript@4.9.5) + '@solana/codecs-strings': 7.0.0(typescript@4.9.5) + '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/nominal-types': 7.0.0(typescript@4.9.5) + '@solana/promises': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/kit@7.0.0(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6)': + dependencies: + '@solana/accounts': 7.0.0(typescript@4.9.5) + '@solana/addresses': 7.0.0(typescript@4.9.5) + '@solana/codecs': 7.0.0(typescript@4.9.5) + '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/functional': 7.0.0(typescript@4.9.5) + '@solana/instruction-plans': 7.0.0(typescript@4.9.5) + '@solana/instructions': 7.0.0(typescript@4.9.5) + '@solana/keys': 7.0.0(typescript@4.9.5) + '@solana/offchain-messages': 7.0.0(typescript@4.9.5) + '@solana/plugin-core': 7.0.0(typescript@4.9.5) + '@solana/plugin-interfaces': 7.0.0(typescript@4.9.5) + '@solana/program-client-core': 7.0.0(typescript@4.9.5) + '@solana/programs': 7.0.0(typescript@4.9.5) + '@solana/rpc': 7.0.0(typescript@4.9.5) + '@solana/rpc-api': 7.0.0(typescript@4.9.5) + '@solana/rpc-parsed-types': 7.0.0(typescript@4.9.5) + '@solana/rpc-spec-types': 7.0.0(typescript@4.9.5) + '@solana/rpc-subscriptions': 7.0.0(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6) + '@solana/rpc-types': 7.0.0(typescript@4.9.5) + '@solana/signers': 7.0.0(typescript@4.9.5) + '@solana/subscribable': 7.0.0(typescript@4.9.5) + '@solana/sysvars': 7.0.0(typescript@4.9.5) + '@solana/transaction-confirmation': 7.0.0(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6) + '@solana/transaction-introspection': 7.0.0(typescript@4.9.5) + '@solana/transaction-messages': 7.0.0(typescript@4.9.5) + '@solana/transactions': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - bufferutil + - fastestsmallesttextencoderdecoder + - utf-8-validate + + '@solana/nominal-types@7.0.0(typescript@4.9.5)': + optionalDependencies: + typescript: 4.9.5 + + '@solana/offchain-messages@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/addresses': 7.0.0(typescript@4.9.5) + '@solana/codecs-core': 7.0.0(typescript@4.9.5) + '@solana/codecs-data-structures': 7.0.0(typescript@4.9.5) + '@solana/codecs-numbers': 7.0.0(typescript@4.9.5) + '@solana/codecs-strings': 7.0.0(typescript@4.9.5) + '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/keys': 7.0.0(typescript@4.9.5) + '@solana/nominal-types': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/options@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/codecs-core': 7.0.0(typescript@4.9.5) + '@solana/codecs-data-structures': 7.0.0(typescript@4.9.5) + '@solana/codecs-numbers': 7.0.0(typescript@4.9.5) + '@solana/codecs-strings': 7.0.0(typescript@4.9.5) + '@solana/errors': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/plugin-core@7.0.0(typescript@4.9.5)': + optionalDependencies: + typescript: 4.9.5 + + '@solana/plugin-interfaces@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/addresses': 7.0.0(typescript@4.9.5) + '@solana/instruction-plans': 7.0.0(typescript@4.9.5) + '@solana/keys': 7.0.0(typescript@4.9.5) + '@solana/rpc-spec': 7.0.0(typescript@4.9.5) + '@solana/rpc-subscriptions-spec': 7.0.0(typescript@4.9.5) + '@solana/rpc-types': 7.0.0(typescript@4.9.5) + '@solana/signers': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/program-client-core@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/accounts': 7.0.0(typescript@4.9.5) + '@solana/addresses': 7.0.0(typescript@4.9.5) + '@solana/codecs-core': 7.0.0(typescript@4.9.5) + '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/instruction-plans': 7.0.0(typescript@4.9.5) + '@solana/instructions': 7.0.0(typescript@4.9.5) + '@solana/plugin-interfaces': 7.0.0(typescript@4.9.5) + '@solana/rpc-api': 7.0.0(typescript@4.9.5) + '@solana/signers': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/programs@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/addresses': 7.0.0(typescript@4.9.5) + '@solana/errors': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/promises@7.0.0(typescript@4.9.5)': + optionalDependencies: + typescript: 4.9.5 + + '@solana/rpc-api@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/addresses': 7.0.0(typescript@4.9.5) + '@solana/codecs-core': 7.0.0(typescript@4.9.5) + '@solana/codecs-strings': 7.0.0(typescript@4.9.5) + '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/keys': 7.0.0(typescript@4.9.5) + '@solana/rpc-parsed-types': 7.0.0(typescript@4.9.5) + '@solana/rpc-spec': 7.0.0(typescript@4.9.5) + '@solana/rpc-transformers': 7.0.0(typescript@4.9.5) + '@solana/rpc-types': 7.0.0(typescript@4.9.5) + '@solana/transaction-messages': 7.0.0(typescript@4.9.5) + '@solana/transactions': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc-parsed-types@7.0.0(typescript@4.9.5)': + optionalDependencies: + typescript: 4.9.5 + + '@solana/rpc-spec-types@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/errors': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + + '@solana/rpc-spec@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/rpc-spec-types': 7.0.0(typescript@4.9.5) + '@solana/subscribable': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + + '@solana/rpc-subscriptions-api@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/addresses': 7.0.0(typescript@4.9.5) + '@solana/keys': 7.0.0(typescript@4.9.5) + '@solana/rpc-subscriptions-spec': 7.0.0(typescript@4.9.5) + '@solana/rpc-transformers': 7.0.0(typescript@4.9.5) + '@solana/rpc-types': 7.0.0(typescript@4.9.5) + '@solana/transaction-messages': 7.0.0(typescript@4.9.5) + '@solana/transactions': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc-subscriptions-channel-websocket@7.0.0(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6)': + dependencies: + '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/functional': 7.0.0(typescript@4.9.5) + '@solana/rpc-subscriptions-spec': 7.0.0(typescript@4.9.5) + '@solana/subscribable': 7.0.0(typescript@4.9.5) + ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@solana/rpc-subscriptions-spec@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/promises': 7.0.0(typescript@4.9.5) + '@solana/rpc-spec-types': 7.0.0(typescript@4.9.5) + '@solana/subscribable': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + + '@solana/rpc-subscriptions@7.0.0(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6)': + dependencies: + '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/fast-stable-stringify': 7.0.0(typescript@4.9.5) + '@solana/functional': 7.0.0(typescript@4.9.5) + '@solana/promises': 7.0.0(typescript@4.9.5) + '@solana/rpc-spec-types': 7.0.0(typescript@4.9.5) + '@solana/rpc-subscriptions-api': 7.0.0(typescript@4.9.5) + '@solana/rpc-subscriptions-channel-websocket': 7.0.0(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6) + '@solana/rpc-subscriptions-spec': 7.0.0(typescript@4.9.5) + '@solana/rpc-transformers': 7.0.0(typescript@4.9.5) + '@solana/rpc-types': 7.0.0(typescript@4.9.5) + '@solana/subscribable': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - bufferutil + - fastestsmallesttextencoderdecoder + - utf-8-validate + + '@solana/rpc-transformers@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/functional': 7.0.0(typescript@4.9.5) + '@solana/nominal-types': 7.0.0(typescript@4.9.5) + '@solana/rpc-spec-types': 7.0.0(typescript@4.9.5) + '@solana/rpc-types': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc-transport-http@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/rpc-spec': 7.0.0(typescript@4.9.5) + '@solana/rpc-spec-types': 7.0.0(typescript@4.9.5) + undici-types: 8.7.0 + optionalDependencies: + typescript: 4.9.5 + + '@solana/rpc-types@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/addresses': 7.0.0(typescript@4.9.5) + '@solana/codecs-core': 7.0.0(typescript@4.9.5) + '@solana/codecs-numbers': 7.0.0(typescript@4.9.5) + '@solana/codecs-strings': 7.0.0(typescript@4.9.5) + '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/fixed-points': 7.0.0(typescript@4.9.5) + '@solana/nominal-types': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/fast-stable-stringify': 7.0.0(typescript@4.9.5) + '@solana/functional': 7.0.0(typescript@4.9.5) + '@solana/rpc-api': 7.0.0(typescript@4.9.5) + '@solana/rpc-spec': 7.0.0(typescript@4.9.5) + '@solana/rpc-spec-types': 7.0.0(typescript@4.9.5) + '@solana/rpc-transformers': 7.0.0(typescript@4.9.5) + '@solana/rpc-transport-http': 7.0.0(typescript@4.9.5) + '@solana/rpc-types': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/signers@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/addresses': 7.0.0(typescript@4.9.5) + '@solana/codecs-core': 7.0.0(typescript@4.9.5) + '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/instructions': 7.0.0(typescript@4.9.5) + '@solana/keys': 7.0.0(typescript@4.9.5) + '@solana/nominal-types': 7.0.0(typescript@4.9.5) + '@solana/offchain-messages': 7.0.0(typescript@4.9.5) + '@solana/transaction-messages': 7.0.0(typescript@4.9.5) + '@solana/transactions': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/subscribable@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/promises': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + + '@solana/sysvars@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/accounts': 7.0.0(typescript@4.9.5) + '@solana/codecs-core': 7.0.0(typescript@4.9.5) + '@solana/codecs-data-structures': 7.0.0(typescript@4.9.5) + '@solana/codecs-numbers': 7.0.0(typescript@4.9.5) + '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/rpc-types': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/transaction-confirmation@7.0.0(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6)': + dependencies: + '@solana/addresses': 7.0.0(typescript@4.9.5) + '@solana/codecs-strings': 7.0.0(typescript@4.9.5) + '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/keys': 7.0.0(typescript@4.9.5) + '@solana/promises': 7.0.0(typescript@4.9.5) + '@solana/rpc': 7.0.0(typescript@4.9.5) + '@solana/rpc-subscriptions': 7.0.0(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6) + '@solana/rpc-types': 7.0.0(typescript@4.9.5) + '@solana/transaction-messages': 7.0.0(typescript@4.9.5) + '@solana/transactions': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - bufferutil + - fastestsmallesttextencoderdecoder + - utf-8-validate + + '@solana/transaction-introspection@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/addresses': 7.0.0(typescript@4.9.5) + '@solana/codecs-core': 7.0.0(typescript@4.9.5) + '@solana/codecs-strings': 7.0.0(typescript@4.9.5) + '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/instructions': 7.0.0(typescript@4.9.5) + '@solana/rpc-api': 7.0.0(typescript@4.9.5) + '@solana/transaction-messages': 7.0.0(typescript@4.9.5) + '@solana/transactions': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/transaction-messages@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/addresses': 7.0.0(typescript@4.9.5) + '@solana/codecs-core': 7.0.0(typescript@4.9.5) + '@solana/codecs-data-structures': 7.0.0(typescript@4.9.5) + '@solana/codecs-numbers': 7.0.0(typescript@4.9.5) + '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/functional': 7.0.0(typescript@4.9.5) + '@solana/instructions': 7.0.0(typescript@4.9.5) + '@solana/nominal-types': 7.0.0(typescript@4.9.5) + '@solana/rpc-types': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/transactions@7.0.0(typescript@4.9.5)': + dependencies: + '@solana/addresses': 7.0.0(typescript@4.9.5) + '@solana/codecs-core': 7.0.0(typescript@4.9.5) + '@solana/codecs-data-structures': 7.0.0(typescript@4.9.5) + '@solana/codecs-numbers': 7.0.0(typescript@4.9.5) + '@solana/codecs-strings': 7.0.0(typescript@4.9.5) + '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/functional': 7.0.0(typescript@4.9.5) + '@solana/instructions': 7.0.0(typescript@4.9.5) + '@solana/keys': 7.0.0(typescript@4.9.5) + '@solana/nominal-types': 7.0.0(typescript@4.9.5) + '@solana/rpc-types': 7.0.0(typescript@4.9.5) + '@solana/transaction-messages': 7.0.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + '@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6)': dependencies: '@babel/runtime': 7.29.7 @@ -915,6 +1807,8 @@ snapshots: commander@14.0.3: {} + commander@15.0.0: {} + commander@2.20.3: {} concat-map@0.0.1: {} @@ -1291,6 +2185,8 @@ snapshots: undici-types@7.24.6: {} + undici-types@8.7.0: {} + utf-8-validate@6.0.6: dependencies: node-gyp-build: 4.8.4 diff --git a/tokens/token-2022/mint-close-authority/pinocchio/tests/test.ts b/tokens/token-2022/mint-close-authority/pinocchio/tests/test.ts index 68988850b..4b72183ed 100644 --- a/tokens/token-2022/mint-close-authority/pinocchio/tests/test.ts +++ b/tokens/token-2022/mint-close-authority/pinocchio/tests/test.ts @@ -1,19 +1,35 @@ import { Buffer } from "node:buffer"; import { - Keypair, - PublicKey, - SYSVAR_RENT_PUBKEY, - SystemProgram, - Transaction, - TransactionInstruction, -} from "@solana/web3.js"; + AccountRole, + address, + appendTransactionMessageInstruction, + blockhash, + createKeyPairSignerFromBytes, + createTransactionMessage, + generateKeyPairSigner, + getAddressEncoder, + getTransactionEncoder, + pipe, + setTransactionMessageFeePayerSigner, + setTransactionMessageLifetimeUsingBlockhash, + signTransactionMessageWithSigners, +} from "@solana/kit"; +// solana-bankrun@0.3.1's BanksClient API is still expressed in @solana/web3.js +// types: `start()` and `getAccount()` take a `PublicKey`, and +// `processTransaction()` takes a `VersionedTransaction`. Those three are the +// only web3.js touch-points — a thin interop shim around bankrun. Everything +// the test *builds* (addresses, the instruction, the transaction message, and +// signing) uses @solana/kit. +import { PublicKey, VersionedTransaction } from "@solana/web3.js"; import * as borsh from "borsh"; import { assert } from "chai"; import { start } from "solana-bankrun"; // The Token-2022 program is bundled with bankrun, so there is no fixture to // load. Its ID is hard-coded here to avoid pulling in @solana/spl-token. -const TOKEN_2022_PROGRAM_ID = new PublicKey("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"); +const TOKEN_2022_PROGRAM_ID = address("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"); +const SYSTEM_PROGRAM_ID = address("11111111111111111111111111111111"); +const RENT_SYSVAR_ID = address("SysvarRent111111111111111111111111111111111"); // Borsh schema for the instruction data, matching the program's // `CreateTokenArgs` (and the native example's wire format). @@ -32,57 +48,77 @@ const DECIMALS_OFFSET = 44; // in the base mint layout const MINT_CLOSE_AUTHORITY_EXTENSION = 3; const ACCOUNT_TYPE_MINT = 1; +const addressEncoder = getAddressEncoder(); + describe("Token-2022 Mint Close Authority (Pinocchio)", () => { - const PROGRAM_ID = PublicKey.unique(); + // bankrun's start() wants a web3.js PublicKey for the program id; convert it + // to a kit address for the instruction. + const programPubkey = PublicKey.unique(); + const PROGRAM_ID = address(programPubkey.toBase58()); + let context: Awaited>; let client: (typeof context)["banksClient"]; - let payer: (typeof context)["payer"]; // A `describe` callback runs synchronously, so the async bankrun setup must // live in a `before` hook — otherwise the `it` blocks register after Mocha // has already collected the suite and nothing runs. before(async () => { - context = await start([{ name: "token_2022_mint_close_authority_pinocchio_program", programId: PROGRAM_ID }], []); + context = await start( + [{ name: "token_2022_mint_close_authority_pinocchio_program", programId: programPubkey }], + [], + ); client = context.banksClient; - payer = context.payer; }); it("Creates a Token-2022 mint with a close authority", async () => { const decimals = 9; - const mintKeypair = Keypair.generate(); + // bankrun funds a web3.js Keypair; re-key it as a kit signer so kit can sign. + const payer = await createKeyPairSignerFromBytes(context.payer.secretKey); + const mint = await generateKeyPairSigner(); // A distinct key for the close authority so the stored-authority assertion // verifies it is sourced from account index 2, not the mint authority/payer. - const closeAuthority = Keypair.generate(); + const closeAuthority = await generateKeyPairSigner(); const data = Buffer.from(borsh.serialize(CreateTokenArgsSchema, { token_decimals: decimals })); - const ix = new TransactionInstruction({ - programId: PROGRAM_ID, - keys: [ - { pubkey: mintKeypair.publicKey, isSigner: true, isWritable: true }, // mint account - { pubkey: payer.publicKey, isSigner: false, isWritable: false }, // mint authority - { pubkey: closeAuthority.publicKey, isSigner: false, isWritable: false }, // close authority - { pubkey: payer.publicKey, isSigner: true, isWritable: true }, // payer - { pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false }, // rent sysvar - { pubkey: SystemProgram.programId, isSigner: false, isWritable: false }, // system program - { pubkey: TOKEN_2022_PROGRAM_ID, isSigner: false, isWritable: false }, // Token-2022 program + const ix = { + programAddress: PROGRAM_ID, + accounts: [ + { address: mint.address, role: AccountRole.WRITABLE_SIGNER, signer: mint }, // mint account + { address: payer.address, role: AccountRole.READONLY }, // mint authority + { address: closeAuthority.address, role: AccountRole.READONLY }, // close authority + { address: payer.address, role: AccountRole.WRITABLE_SIGNER, signer: payer }, // payer + { address: RENT_SYSVAR_ID, role: AccountRole.READONLY }, // rent sysvar + { address: SYSTEM_PROGRAM_ID, role: AccountRole.READONLY }, // system program + { address: TOKEN_2022_PROGRAM_ID, role: AccountRole.READONLY }, // Token-2022 program ], - data, - }); + data: new Uint8Array(data), + }; + + const transactionMessage = pipe( + createTransactionMessage({ version: 0 }), + (m) => setTransactionMessageFeePayerSigner(payer, m), + (m) => + setTransactionMessageLifetimeUsingBlockhash( + { blockhash: blockhash(context.lastBlockhash), lastValidBlockHeight: 0n }, + m, + ), + (m) => appendTransactionMessageInstruction(ix, m), + ); - const tx = new Transaction(); - tx.feePayer = payer.publicKey; - tx.recentBlockhash = context.lastBlockhash; - tx.add(ix); - tx.sign(payer, mintKeypair); - await client.processTransaction(tx); + const signedTx = await signTransactionMessageWithSigners(transactionMessage); + const wireBytes = new Uint8Array(getTransactionEncoder().encode(signedTx)); + await client.processTransaction(VersionedTransaction.deserialize(wireBytes)); - const mintAccount = await client.getAccount(mintKeypair.publicKey); + const mintAccount = await client.getAccount(new PublicKey(mint.address)); if (mintAccount === null) throw new Error("Mint account not found"); const mintData = Buffer.from(mintAccount.data); // Owned by Token-2022, and sized for exactly one extension. - assert.deepEqual(mintAccount.owner.toBytes(), TOKEN_2022_PROGRAM_ID.toBytes()); + assert.deepEqual( + new Uint8Array(mintAccount.owner.toBytes()), + new Uint8Array(addressEncoder.encode(TOKEN_2022_PROGRAM_ID)), + ); assert.equal(mintData.length, EXTENDED_MINT_SIZE); // Base mint fields were initialized. @@ -95,8 +131,11 @@ describe("Token-2022 Mint Close Authority (Pinocchio)", () => { // The configured close authority was stored in the extension. const storedCloseAuthority = mintData.subarray(TLV_VALUE_OFFSET, TLV_VALUE_OFFSET + 32); - assert.deepEqual(new Uint8Array(storedCloseAuthority), closeAuthority.publicKey.toBytes()); + assert.deepEqual( + new Uint8Array(storedCloseAuthority), + new Uint8Array(addressEncoder.encode(closeAuthority.address)), + ); - console.log("Mint address:", mintKeypair.publicKey.toBase58()); + console.log("Mint address:", mint.address); }); }); diff --git a/tokens/token-2022/mint-close-authority/pinocchio/tsconfig.json b/tokens/token-2022/mint-close-authority/pinocchio/tsconfig.json index 8c20b2236..f557bafa5 100644 --- a/tokens/token-2022/mint-close-authority/pinocchio/tsconfig.json +++ b/tokens/token-2022/mint-close-authority/pinocchio/tsconfig.json @@ -2,9 +2,9 @@ "compilerOptions": { "types": ["mocha", "chai", "node"], "typeRoots": ["./node_modules/@types"], - "lib": ["es2015"], + "lib": ["es2020"], "module": "commonjs", - "target": "es6", + "target": "es2020", "esModuleInterop": true } } From 3a8f9e782445b776597f8ff171da41087677a73e Mon Sep 17 00:00:00 2001 From: MarkFeder <5670736+MarkFeder@users.noreply.github.com> Date: Tue, 21 Jul 2026 00:15:53 +0200 Subject: [PATCH 5/5] token-2022 mint-close-authority pinocchio: migrate test to litesvm Move the test runtime from solana-bankrun to litesvm, which is kit-native, so web3.js is dropped entirely. The kit transaction returned by signTransactionMessageWithSigners is handed straight to LiteSVM.sendTransaction (no VersionedTransaction shim), and getAccount/airdrop take kit Addresses. - deps: drop @solana/web3.js + solana-bankrun, add litesvm; pin @solana/kit to ^6.10.0 (litesvm's kit major) so there is a single kit in the tree - tsconfig: bump typescript to ^5 and lib to es2022+dom (kit's types), add @types/node; the suite is now type-clean under tsc --noEmit - LiteSVM()'s standard runtime bundles Token-2022, so no fixture load is needed beyond the program .so --- .../pinocchio/package.json | 11 +- .../pinocchio/pnpm-lock.yaml | 1395 ++++++----------- .../pinocchio/tests/test.ts | 78 +- .../pinocchio/tsconfig.json | 4 +- 4 files changed, 548 insertions(+), 940 deletions(-) diff --git a/tokens/token-2022/mint-close-authority/pinocchio/package.json b/tokens/token-2022/mint-close-authority/pinocchio/package.json index f71273939..69c29fcde 100644 --- a/tokens/token-2022/mint-close-authority/pinocchio/package.json +++ b/tokens/token-2022/mint-close-authority/pinocchio/package.json @@ -7,18 +7,17 @@ "deploy": "solana program deploy ./program/target/so/program.so" }, "dependencies": { - "@solana/kit": "^7.0.0", - "@solana/web3.js": "^1.98.4", - "borsh": "^2.0.0" + "@solana/kit": "^6.10.0", + "borsh": "^2.0.0", + "litesvm": "^1.3.0" }, "devDependencies": { - "@types/bn.js": "^5.1.0", "@types/chai": "^4.3.1", "@types/mocha": "^9.1.1", + "@types/node": "^20.0.0", "chai": "^4.3.4", "mocha": "^9.0.3", - "solana-bankrun": "^0.3.0", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.6.0" } } diff --git a/tokens/token-2022/mint-close-authority/pinocchio/pnpm-lock.yaml b/tokens/token-2022/mint-close-authority/pinocchio/pnpm-lock.yaml index 081cd00e5..15cdab4d2 100644 --- a/tokens/token-2022/mint-close-authority/pinocchio/pnpm-lock.yaml +++ b/tokens/token-2022/mint-close-authority/pinocchio/pnpm-lock.yaml @@ -9,56 +9,52 @@ importers: .: dependencies: '@solana/kit': - specifier: ^7.0.0 - version: 7.0.0(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6) - '@solana/web3.js': - specifier: ^1.98.4 - version: 1.98.4(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6) + specifier: ^6.10.0 + version: 6.10.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) borsh: specifier: ^2.0.0 version: 2.0.0 + litesvm: + specifier: ^1.3.0 + version: 1.3.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) devDependencies: - '@types/bn.js': - specifier: ^5.1.0 - version: 5.2.0 '@types/chai': specifier: ^4.3.1 version: 4.3.20 '@types/mocha': specifier: ^9.1.1 version: 9.1.1 + '@types/node': + specifier: ^20.0.0 + version: 20.19.43 chai: specifier: ^4.3.4 version: 4.5.0 mocha: specifier: ^9.0.3 version: 9.2.2 - solana-bankrun: - specifier: ^0.3.0 - version: 0.3.1(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6) ts-mocha: specifier: ^10.0.0 version: 10.1.0(mocha@9.2.2) typescript: - specifier: ^4.3.5 - version: 4.9.5 + specifier: ^5.6.0 + version: 5.9.3 packages: - '@babel/runtime@7.29.7': - resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} - engines: {node: '>=6.9.0'} - - '@noble/curves@1.9.7': - resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==} - engines: {node: ^14.21.3 || >=16} + '@solana-program/system@0.12.2': + resolution: {integrity: sha512-MaBeOxlvTruQhA7UYkOb3hVTEHPPagOtd+PvTm6a8rGgvEAP0kD4BbC37NceOaR4ABNqdaCmD5OMVRKgrE6KAg==} + peerDependencies: + '@solana/kit': ^6.4.0 - '@noble/hashes@1.8.0': - resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} - engines: {node: ^14.21.3 || >=16} + '@solana-program/token@0.14.0': + resolution: {integrity: sha512-zpLMr6JZndlsQCQvrm0gezfwdr1lmzOGqN6v2WIYXjtDmbF+xg6zh/MAp2UFHRpv3uDmylEdjtQo05pa2OeaYg==} + engines: {node: '>=24.0.0'} + peerDependencies: + '@solana/kit': ^6.5.0 - '@solana/accounts@7.0.0': - resolution: {integrity: sha512-RfbinkhuWxcObxZIdjeWEn/mzLqRp/h2hAk/ZQCUxPdDBW8h4XxEybK9GBItGOAcrUz5HuusXTD+cXXnlIxWcg==} + '@solana/accounts@6.10.0': + resolution: {integrity: sha512-+FxfDOrnifoPlBkF+fr8eeQdgM6xtIgAg9xKMu3WnIz60oZd4Xnry6+ff6t+ePPoZZp397FSg9ZJet68VCWm5Q==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -66,8 +62,8 @@ packages: typescript: optional: true - '@solana/addresses@7.0.0': - resolution: {integrity: sha512-E7sJtV5d3bXrmw3I30rcKY+xoqM++6KIVJCi+q8ZaSMyP04UMfEENPHIJ+TkyS1RUgjzPT91ka/oWrtTh6EfkQ==} + '@solana/addresses@6.10.0': + resolution: {integrity: sha512-vEoCGBTxG0HCERAn84KXkrJjl+pDaNzOpZ0qbgcPS98fYxP5yzbKB8SNOY2bzrbkRUmmw5Q3hqTRERemUN2Gcw==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -75,8 +71,8 @@ packages: typescript: optional: true - '@solana/assertions@7.0.0': - resolution: {integrity: sha512-CShOQLPezI0tbrih+L88fzt8FMHDyJoWkmulk4wfRp3HhpQL2yNlH/SWLH033qysnvkmE7TxBFUtcnbnf7jz1g==} + '@solana/assertions@6.10.0': + resolution: {integrity: sha512-lKSAdVo+P/6Lp4vs6shstXmFOpvxrABwn4o1462tb7sKkNapk6o9pPFVPGw4DUgPS3WqWRs1j2tmpuVjhQRntg==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -84,18 +80,8 @@ packages: typescript: optional: true - '@solana/buffer-layout@4.0.1': - resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==} - engines: {node: '>=5.10'} - - '@solana/codecs-core@2.3.0': - resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: '>=5.3.3' - - '@solana/codecs-core@7.0.0': - resolution: {integrity: sha512-6HtEisZEtFb6okARUgYqmKdDbn2aHRrSCDgB1/GEwr0s6fK5XNYpafaSjorbs2MEyZV3tCUFTj2j6fk/4nNcLg==} + '@solana/codecs-core@6.10.0': + resolution: {integrity: sha512-nfAl9OMGo4HanIMxGsQoVB7BxMoqBCYEUxl8oEAZZ09pDxnaXQZkTRXEwPPccag37XfW1ciPd1vWPKwB2b0HHQ==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -103,8 +89,8 @@ packages: typescript: optional: true - '@solana/codecs-data-structures@7.0.0': - resolution: {integrity: sha512-P0Ys1mB4lYlz3MMTCaJSysE3OYrq8WvsveU1ta8U/yG1qChXFGCOxPVh06swjaRxwPrEakb9VUESS5vNtp1rRA==} + '@solana/codecs-data-structures@6.10.0': + resolution: {integrity: sha512-CNasJW3bq5u+632Zt5aJ8rOjAjv2HyenpV8o9kAIqdmV4CBpjCCoBnKn8LkuR/sbeREZxJYfhKTXO/9ruAkw7A==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -112,14 +98,8 @@ packages: typescript: optional: true - '@solana/codecs-numbers@2.3.0': - resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: '>=5.3.3' - - '@solana/codecs-numbers@7.0.0': - resolution: {integrity: sha512-XL0jnmnXr3ceoX4tusT+XkBVR2iGKEJecTIXbIV7ILi9xObg3fNXafNbTmbIOvKc0ByTyjo8EWZ9jQKSRWgsgA==} + '@solana/codecs-numbers@6.10.0': + resolution: {integrity: sha512-CcM+wX4zOiA9zkh8A7t1787A0Ehgmu5+6Z2tKoHew6cNw/dkaUTPa8JnNHbvfsLC8dfHC1BhAEJl86sKmRsfkQ==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -127,8 +107,8 @@ packages: typescript: optional: true - '@solana/codecs-strings@7.0.0': - resolution: {integrity: sha512-zXE1PE9HkVk6phZ6aqHTXvLZ0qIl5bJNIvG9eMB7LuFO1XBVQywJUtjKS8fE3/xmRCWSMilFSrEXGA+SpOyLrQ==} + '@solana/codecs-strings@6.10.0': + resolution: {integrity: sha512-zlaqkg7K6F6IN4V/Ec8TWkTn054gxv7ZLagvGkuEyAdPQ6BzzsehOm2TqCuyXgJJTCGPLY1bEk6yH9NxANe0kA==} engines: {node: '>=20.18.0'} peerDependencies: fastestsmallesttextencoderdecoder: ^1.0.22 @@ -139,8 +119,8 @@ packages: typescript: optional: true - '@solana/codecs@7.0.0': - resolution: {integrity: sha512-xT1IbwKkPZ544u/eqhb9SZ0fNYJidWgIUzKNQMbvLCwduayAkQp+czlGdvLQ6CVlqtCewtH3gW8biGU7YuBdEw==} + '@solana/codecs@6.10.0': + resolution: {integrity: sha512-lLVuxod4ChWp9i7OvpgIykYG8Q9OGPVXKnHM9VlzDDLylsx7Y1FoQL00sHa7PqFkJVmkBufaA6dcGbQ7FU+lAQ==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -148,15 +128,8 @@ packages: typescript: optional: true - '@solana/errors@2.3.0': - resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==} - engines: {node: '>=20.18.0'} - hasBin: true - peerDependencies: - typescript: '>=5.3.3' - - '@solana/errors@7.0.0': - resolution: {integrity: sha512-94r+LLSzZ0XVp+LOogwxWGXeo138uvwqtqRW9Tjl1DIXrFgh8euXnJSXZyydu1UXJs7ItOSm0QreJviSGw3TGQ==} + '@solana/errors@6.10.0': + resolution: {integrity: sha512-KBLAxCtAXr357JNhCyIDQXWbuSj5vN6w+28FSfcYY6OOSiphmXLAV3V58jgV0C6iNbIzFJFi6yatFyDTdeJsNg==} engines: {node: '>=20.18.0'} hasBin: true peerDependencies: @@ -165,8 +138,8 @@ packages: typescript: optional: true - '@solana/fast-stable-stringify@7.0.0': - resolution: {integrity: sha512-i/b5ZJMqMJXa6etjypANa2/ErPZfNG9/EVIYl7HpWooyCRgZ8hZJmJ2Cgrp0r4EMXCLeWn4aEG2HOBTzOJ4F7Q==} + '@solana/fast-stable-stringify@6.10.0': + resolution: {integrity: sha512-iCNed27wk6PKSS3QUtHovRfMWF/jbVWogs2vB4tukKUCsqG4rDfDInIwZ6ur/nY6XTrgi2gMMdZq9GAUlWsbfw==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -174,8 +147,8 @@ packages: typescript: optional: true - '@solana/fixed-points@7.0.0': - resolution: {integrity: sha512-Y3gcyHTponi5kXpWVEJIhuZ7yT84N+8He4dbjXWqwMBJnzKM+4tqFCbzy6y+6+Jxt44RT1lDmbpxmZopFRXU8Q==} + '@solana/fixed-points@6.10.0': + resolution: {integrity: sha512-ZkKL0alXH3L7/wMiVG8YUuG8qBKunlM810+YBD7nUPRhifiGsX1zwADViHLYNqLr/jUk0mTYFUcKznTpB/K+Gg==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -183,8 +156,8 @@ packages: typescript: optional: true - '@solana/functional@7.0.0': - resolution: {integrity: sha512-ix9fzYhc2hCLiYf+hGI00mzzayANKDExEBxbwrtMj/BdQkwgUIvIlOssqHeSqDChL3UZhq9lR24Nz4JwYX8Jbw==} + '@solana/functional@6.10.0': + resolution: {integrity: sha512-P8cevu4mAqHTXC37h1TVoOh8zhWB2tlOI/R9vWjYPpcLwcyWf8p2qq4LEGHl5kY+1C+4PNX39HsmCocXOPCDkQ==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -192,8 +165,8 @@ packages: typescript: optional: true - '@solana/instruction-plans@7.0.0': - resolution: {integrity: sha512-uzXHztc8hLoT5TNWFsBX2DIETyp/Lr2l36O330s3YCgpRmfI4IRbBrjjq7TxDYFm/QY8+DD4CRG8p7wZSqG8dQ==} + '@solana/instruction-plans@6.10.0': + resolution: {integrity: sha512-YG7mo4zykzdc6ZTV0BuN6pveK9qeBySzlYYerq578A4eQu3xcypMAYRGAvhMZtWTanjjmD6CKtM0M7kVp0TNxg==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -201,8 +174,8 @@ packages: typescript: optional: true - '@solana/instructions@7.0.0': - resolution: {integrity: sha512-ZN0gKAtCOKDuIaStcvLZDf5H20fkk7jr4dZE0Rk7z0kslf6mrRam9Y23N6AzeHp/b5ZeVKyfaTf4M35mOktLNg==} + '@solana/instructions@6.10.0': + resolution: {integrity: sha512-0TToYF+8LXQ3ofPMx+yF6yaM9l4YJvcAPMy0qV5JsrBUFlWXBSANRuudKBQLHMvb+a3OiUTq5X7omuorKMBB3A==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -210,8 +183,8 @@ packages: typescript: optional: true - '@solana/keys@7.0.0': - resolution: {integrity: sha512-JsdYR/YN3AGHZN2aZoeE5cymHYkNoBLnqgXoRncW/VyD7fMcR350aHU1hCMYd0b5BtITLsGmvvtvrgVkzK83Eg==} + '@solana/keys@6.10.0': + resolution: {integrity: sha512-26IRfdm/hTUCmM7MeEeX0ULSbCM6OzkZTkfkrPircqmRM7xyNqP4hq7u0P7wjb9dl7NfgyG6K7cdvUxrj2e3mA==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -219,8 +192,8 @@ packages: typescript: optional: true - '@solana/kit@7.0.0': - resolution: {integrity: sha512-ZCeai4LRJQooUmJXvpgMEGFTrCdJnV1ODbDJ8oqFZ+Y4t/9x1baQsFFpruqsdRyeGv2Rr+X6jV7cldVD+hyzRA==} + '@solana/kit@6.10.0': + resolution: {integrity: sha512-/WnnQp3uARh2JCFSfAakejTAqwmXVuMVTcRn5r2yDwY2yzZ4R6mt/Cl59VPimVLNSoTyN/KsEwhv9omr3ERazQ==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -228,8 +201,8 @@ packages: typescript: optional: true - '@solana/nominal-types@7.0.0': - resolution: {integrity: sha512-ff21hmKKMckDkGWah9tRXsEyFCtSnkugH+EMLGJOn7tiXdtFljOXW5Q12IXyeil87EE8aWb1MS6p8v5+hi71Vg==} + '@solana/nominal-types@6.10.0': + resolution: {integrity: sha512-9ykyBBvnkInH7fCacjJi7zu2PJyd+OCt+VTjIISv070fHzKIMFqZqJJ/dJ0SRH2aHwfB3n86iVsmtBtuxi4KKA==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -237,8 +210,8 @@ packages: typescript: optional: true - '@solana/offchain-messages@7.0.0': - resolution: {integrity: sha512-fGrzxmqVStweGHRlXVAPKACdDboFCwXq5m8C+aD9Nupax6Q9rnvjICzYRLypwqB9X90XIZazh0ys+0KGLMpIJQ==} + '@solana/offchain-messages@6.10.0': + resolution: {integrity: sha512-RiEgAueeMkFMC1suOXBIcmCZgtXRxy24yk0DldPB37bB4zwOF1SAaRjNRPjIkGK8RhCYrEpPosnzLyavw9ueRg==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -246,8 +219,8 @@ packages: typescript: optional: true - '@solana/options@7.0.0': - resolution: {integrity: sha512-6DhvMqRcL3mG0R5JejYIW5PDTDr7HcLX2R9iCs6OPN1HdsyXmE2rX2EldnuA0rYz1buOodeWYsu4N1lpDcEpaQ==} + '@solana/options@6.10.0': + resolution: {integrity: sha512-RO9UT3UYD8/Cu2uM6ZXbKvLeMnVD42+g9JRds7Pfs4AhiOyg4R4TJrQUAppTgavPTO3PBRlWtWOC05ZH/yAIbg==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -255,8 +228,8 @@ packages: typescript: optional: true - '@solana/plugin-core@7.0.0': - resolution: {integrity: sha512-EwTUfOGoQQ3aXooRlQFVbk+sJW7NqJl1K+bmSLiJUjaBTSqtbr3GtMu7aoybJqzZQKjOGSG4Hn0BzK24SvWy3A==} + '@solana/plugin-core@6.10.0': + resolution: {integrity: sha512-JE70YTQOfFACVFGvoJon4Scc/eHUWjMu8Ovo35CcV2kHTAHYMCd4UkBd2gmlhK0vRMMomsQi1ZLPlAlTq0OoUQ==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -264,8 +237,8 @@ packages: typescript: optional: true - '@solana/plugin-interfaces@7.0.0': - resolution: {integrity: sha512-fz/HknZLGnVIjhjXrMzW3Qm1x80oeEMSOk4RzMwjcyAEyfzhHtGNW74NsU5W+uFpYz6UBbV5mB1jpuAdJdnj9A==} + '@solana/plugin-interfaces@6.10.0': + resolution: {integrity: sha512-vr0/l9wcM4orwGr8cjkFWaJ9A4HvzuAv00jMFNMg0Spd0GZqnwnpW+D/fXa1lIJnTRaF3EeEjLh4VjKU037T0Q==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -273,8 +246,8 @@ packages: typescript: optional: true - '@solana/program-client-core@7.0.0': - resolution: {integrity: sha512-+N8HImlR3MTbbvhOShsLelQXGZKbi6KhPhyy+4ZkDLbnRs4QikTamIChXZmoCyxB51S8/9cNRAKyQhbeF5Y8Qg==} + '@solana/program-client-core@6.10.0': + resolution: {integrity: sha512-4PPbTLdC1ylHIuvhOFDP8RnSkXPCFjNFWGslzc+UFKnoR4ajzBcByX94jmaruDMk5ncxgj7tr9pzJTvfGHIaMA==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -282,8 +255,8 @@ packages: typescript: optional: true - '@solana/programs@7.0.0': - resolution: {integrity: sha512-a1HNgzr9YiiZ8vK4VaKHEXjnZmKX7W5ab2ghuseIalEw/+PJLFcTRTOw8n3efRu677b/bG2Icmb3MBBEXmvbPg==} + '@solana/programs@6.10.0': + resolution: {integrity: sha512-qn/HeLP5KGUJXVub3fyGe69/rWaLX4jzwm6V/1pNxJDbdF+MBdgn18hP6F+VmhfdNmwK0lue3J/1HQ1UTMuQeQ==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -291,8 +264,8 @@ packages: typescript: optional: true - '@solana/promises@7.0.0': - resolution: {integrity: sha512-rjoHnaR4zeEIHqIzfgotxRrLKqY4Goj0G5duZOnjHm8ZC+7eDkH5/mXj1bDJ4ROM70dVM+y1Xkrjg7IL6k6StA==} + '@solana/promises@6.10.0': + resolution: {integrity: sha512-oJSIn+VBBMWDo8oqw7RV3tI6Jih+Ieup6FcQLYLDUriaeo7+8l1Zdezl8zh7SIfeU4lOfAbRg6mR0huaS/Lltg==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -300,8 +273,8 @@ packages: typescript: optional: true - '@solana/rpc-api@7.0.0': - resolution: {integrity: sha512-MTtBO883st83CjWpo8B4g8EKzXaeoBX5N7+sv4vcvsn2q1NpY4SG3XejdX1FrKeTe9Xjbv0/FzFtykstbKe1UA==} + '@solana/rpc-api@6.10.0': + resolution: {integrity: sha512-RjPIVsAb/85P1ptoO3WpC0x7QG6gG/e4q/3lo6gbSznUZOcoM+8sSBnCX7BwP1ZkCDS6NK/ClXLnhhhYZx+OGg==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -309,8 +282,8 @@ packages: typescript: optional: true - '@solana/rpc-parsed-types@7.0.0': - resolution: {integrity: sha512-80VjPbB/TZ/Hy5qdRF7onPfMPHk5cwBVbtNUGbilrmFuqRzSvzSOY1ynNXXODPZBytNmPq7u7oJfSCsQ5MA9Ig==} + '@solana/rpc-parsed-types@6.10.0': + resolution: {integrity: sha512-5275mvSV1mxhwvrMVa+K7BU/nAetpHfcb+8Ql9rtA8RRf6DyiimFQFZUukE4Ez6XJihEpCHNy98yhkgai9wytQ==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -318,8 +291,8 @@ packages: typescript: optional: true - '@solana/rpc-spec-types@7.0.0': - resolution: {integrity: sha512-V4Hp2//fW8eYq1zcGgHPu7FXKHyIWERBQd4+NRaKn2m8rPiVAm3pVRwPzSvVE0+8Nyf5qzdcfcMf7NQdhl6j7Q==} + '@solana/rpc-spec-types@6.10.0': + resolution: {integrity: sha512-NDZrKyZrJk4HaMFhTE/lAiMB824cWAodKqDHyKi0UteHU9pyRmil3BN1jt7e+j08mwMWwfklSgyrTaq52g6DIQ==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -327,8 +300,8 @@ packages: typescript: optional: true - '@solana/rpc-spec@7.0.0': - resolution: {integrity: sha512-GRGlXpLgap9yVh3qmCl4huuKAoLMp/p82/9Q9ONj6lmFH+RqJE4Q+16V+HxHI5ZakmwZYoVZU4GEKjumse9SCg==} + '@solana/rpc-spec@6.10.0': + resolution: {integrity: sha512-yQdbWw5mZEWrwsunHR9NHkuhMXIB9sPOObwm18D53v5tAJnxTB0IcHvO647XqFDLTK/yQ4AdDtlYD1vsY07AMQ==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -336,8 +309,8 @@ packages: typescript: optional: true - '@solana/rpc-subscriptions-api@7.0.0': - resolution: {integrity: sha512-o2PZDeNC/kg3VO3ry4R0JySJ1xMHLchZwmzVwamxGidlLe9uvzm6CHlCqv/JCq4/zHLo7qbLqnmOckZ6vlDqaw==} + '@solana/rpc-subscriptions-api@6.10.0': + resolution: {integrity: sha512-CRPQoTtT1cOwOQUsqS7jgo7wYdAj7jB5ab/UmMPWVpecf2FNMhWhgvxP2s82M7VkDGTGl13qaQ0WySmi7Egrlg==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -345,8 +318,8 @@ packages: typescript: optional: true - '@solana/rpc-subscriptions-channel-websocket@7.0.0': - resolution: {integrity: sha512-79ecXBCT2pG+vXNBZim80vUz+B04L1mEduXobBIXM55VvxsHYT+4H4V+/ZHoFJUK6Lhbt+6zhpconx8Wa3H+JA==} + '@solana/rpc-subscriptions-channel-websocket@6.10.0': + resolution: {integrity: sha512-KkqP1186HELPlJftA88SNAT2znR8knCVzsUipXVzY4zfW8sN3LOa0ePMzh9VZ/V+J+raTt55laR87ovAO0n+zw==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -354,8 +327,8 @@ packages: typescript: optional: true - '@solana/rpc-subscriptions-spec@7.0.0': - resolution: {integrity: sha512-Oips5ciWqPGO5Cx7hcEQ/czbcrUjPf+4cTam0UMrK3BnvHPcEAWkPYlIgabQiqa60/pjOOz7B936oMXA5XwL+g==} + '@solana/rpc-subscriptions-spec@6.10.0': + resolution: {integrity: sha512-nWMwGaG4ulzeX2sskY5TywXF3cwEd8FDmUpLe2JBWxE8XDAOGOKcsYPYFcBgb8ee9KqfPT2PTNdcz9jOhJf34w==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -363,8 +336,8 @@ packages: typescript: optional: true - '@solana/rpc-subscriptions@7.0.0': - resolution: {integrity: sha512-jLNjUCGBbCIfABqqHopNJIeAkhd4GzhbodgCH4x2X+S0ycBaERX393+k+fG8JPJpGujkmeQFBCeIKO3lK+PoYg==} + '@solana/rpc-subscriptions@6.10.0': + resolution: {integrity: sha512-6mfuHp/K7unFKCOTCCBC9ziEGnxe2tyJ74EbR51QUnBeCUdYD7Hhdpxic1WRSJ3UeNW/mG4OzFM6z8Wi64Eh9Q==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -372,8 +345,8 @@ packages: typescript: optional: true - '@solana/rpc-transformers@7.0.0': - resolution: {integrity: sha512-NHkTKC2J4oaMMzyOtIEDOLCGtzg1Y8vlPoBmUeA82o+DNjBSiZLR2Ariy7n7chmwKchCZ8aGirBxjLCSRc6b/g==} + '@solana/rpc-transformers@6.10.0': + resolution: {integrity: sha512-2nFUrVTiE720pJOY4XKx3HuYmishw0of/4oScu76YGm6O8wsmvFvPNAkrEinmieWXQkfpBfRvLZmpl8PaAy+ug==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -381,8 +354,8 @@ packages: typescript: optional: true - '@solana/rpc-transport-http@7.0.0': - resolution: {integrity: sha512-W0G15BN0xljXzRRo/ZwepJNiOjKhRImF5SxhjZauh2yVBoUjfd6NSCmYcdWu0tj9lypKKrB1ReS4oPmb4yCHbA==} + '@solana/rpc-transport-http@6.10.0': + resolution: {integrity: sha512-JrdNuYi0nBbD3X8JUtgX1dQJwIwz/WJvmigDdELysXfGB2bTJpfjqGDLhCLOz2sRl66FASIEqgG/LVa2C9VXcA==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -390,8 +363,8 @@ packages: typescript: optional: true - '@solana/rpc-types@7.0.0': - resolution: {integrity: sha512-Lf2csFSWHwN/8EL03uWfS7n1J19vWLK4DBGkQ5jebRhoJ3dD+xPcJtS+epI2281t5aghJvoV7D+RIM0NextZJg==} + '@solana/rpc-types@6.10.0': + resolution: {integrity: sha512-zaSecTfCPvz/vcoAmKD6XoRstGHTr1EKJBD8T9UcpEFFB6CtF6DxerDB+wrzkamuT6msmnR2DWXMrYOGDAsgIg==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -399,8 +372,8 @@ packages: typescript: optional: true - '@solana/rpc@7.0.0': - resolution: {integrity: sha512-hCf4XEhspsNb8TnQ+E961+rBuJcTyrmwNr4LDfVHEeO/VTqaN+yVwAI1wpxcnzwc+T4OoXcyujNiQWhVZPOhiA==} + '@solana/rpc@6.10.0': + resolution: {integrity: sha512-EwxsqoD+NXV+m+iobnWNtATD93gTgaNsOiQOzYB1/2e+8S6fl6obdNPB55yfXgtl4jt6GV6/ae4xuPhLv76vvg==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -408,8 +381,8 @@ packages: typescript: optional: true - '@solana/signers@7.0.0': - resolution: {integrity: sha512-4E3xYQ0b9OZCTLghqfeHh66lfipy3jV1REdFJLk9WqPBaXVa/wSgGGIqZVa744ATSd9AeEfL/I5n/LrMNQOhoA==} + '@solana/signers@6.10.0': + resolution: {integrity: sha512-+vtCc+mT1FpGxrA5oL2aaMxSHiMJ2hH5PcDIfjo2XJkHz2klZiCZyT5F9+zpltc9vdi1QTElQq59Sfplmtd33A==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -417,8 +390,8 @@ packages: typescript: optional: true - '@solana/subscribable@7.0.0': - resolution: {integrity: sha512-dJQA5AxDv/7YxuNe7GXIkaOUNhXczFaL3/SNOvXe7k77bC4dx4HPkySfcVDfEWBOePe3+8iyVbT8DZ3aOcp8Ng==} + '@solana/subscribable@6.10.0': + resolution: {integrity: sha512-VsR6XMwkiDBkZJUcoGkEOhf397pOV75gKCL9Bx8bpi2T3Bbs0CxUpMn4yaUgAnRba3eXmjbXMNCXjttfa6sKbw==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -426,8 +399,8 @@ packages: typescript: optional: true - '@solana/sysvars@7.0.0': - resolution: {integrity: sha512-GKND6hCcBcrak3/VAtx6aEoAi9wQjJQzU2Fcu6JYmnTjGe5MHf21FqbjGl0aQ0C2HlJQQJmA07wgsuOiYDTDog==} + '@solana/sysvars@6.10.0': + resolution: {integrity: sha512-cG13p1+onxz+20iWjwWQr1Z1jQwPm0fnjoW75fqZq7p4rVCie3L2sXvaJsYPjWKrUvpOzOIEHnqZGkG05rCpjg==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -435,8 +408,8 @@ packages: typescript: optional: true - '@solana/transaction-confirmation@7.0.0': - resolution: {integrity: sha512-SaU2CY9ZDJGK47DtQ7xwKFmbgzDGqIN/Ug89ZSUzDPD9QdMRXhtxgH8KZgb0gSgpyel85sSt0QH9wkWzhp69ow==} + '@solana/transaction-confirmation@6.10.0': + resolution: {integrity: sha512-ULvtg65qfenh4T/GYcIlKSUv5EqDcng9UN0dxbHU4kuZdR2e0B8HN2xDC4WhcFQVeFJSbTZmaYFkeTY/Y4gfGQ==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -444,8 +417,8 @@ packages: typescript: optional: true - '@solana/transaction-introspection@7.0.0': - resolution: {integrity: sha512-aO+5ewxGaziXYcXJZ6F3doq/KI1L3WU2z5eCjs4DBO0kRQBHp4bH6ZKygVX2JIxOZrd1rB9SxP/CCCX2wRm8Xw==} + '@solana/transaction-messages@6.10.0': + resolution: {integrity: sha512-s7v8G3BTxGlKYIj3eWCG0g1296v+1LBt16mVnlRH5FuyaJ5AdhlhtRho5HUDpdwE8EXun+y1c48V6uhcZ8wdbQ==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -453,8 +426,8 @@ packages: typescript: optional: true - '@solana/transaction-messages@7.0.0': - resolution: {integrity: sha512-qCBYR3QQvykcI36vnqwI5090hGXS3mmCe72b/f/n9kBsBaA2oowdBXZupB1wwKe8+6x8o8VkhKQaK9oTKKbWTg==} + '@solana/transactions@6.10.0': + resolution: {integrity: sha512-VADSqP9OTYmhrox4pcgDd4+RjVmednXSE0+8Y7SPK4PN1pK5Az2RJ0nSsy0xcTnaOr8mF/crwFktqPrRQwSbQA==} engines: {node: '>=20.18.0'} peerDependencies: typescript: '>=5.4.0' @@ -462,58 +435,21 @@ packages: typescript: optional: true - '@solana/transactions@7.0.0': - resolution: {integrity: sha512-y5nayd2Ozld/4Bxefz50e/E6qxyZteuZCZ7suh7z96KY6QUJlZDR+eCG1v/lA7Azt3GSOevJuYFX/ept/mqZkw==} - 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==} - - '@swc/helpers@0.5.21': - resolution: {integrity: sha512-jI/VAmtdjB/RnI8GTnokyX7Ug8c+g+ffD6QRLa6XQewtnGyukKkKSk3wLTM3b5cjt1jNh9x0jfVlagdN2gDKQg==} - - '@types/bn.js@5.2.0': - resolution: {integrity: sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q==} - '@types/chai@4.3.20': resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==} - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} '@types/mocha@9.1.1': resolution: {integrity: sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==} - '@types/node@12.20.55': - resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - - '@types/node@25.9.1': - resolution: {integrity: sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==} - - '@types/uuid@10.0.0': - resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} - - '@types/ws@7.4.7': - resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} - - '@types/ws@8.18.1': - resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} + '@types/node@20.19.43': + resolution: {integrity: sha512-6oYBAi5ikg4Pl+kGsoYtawUMBT2zZMCvPNF7pVLnHZfd1zf38DRiWn/gT01RYCdUqkv7Fhr+C9ot4/tb+2sVvA==} '@ungap/promise-all-settled@1.1.2': resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==} - agentkeepalive@4.6.0: - resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} - engines: {node: '>= 8.0.0'} - ansi-colors@4.1.1: resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} engines: {node: '>=6'} @@ -543,22 +479,10 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - base-x@3.0.11: - resolution: {integrity: sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==} - - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - bn.js@5.2.3: - resolution: {integrity: sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w==} - - borsh@0.7.0: - resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==} - borsh@2.0.0: resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==} @@ -572,15 +496,9 @@ packages: browser-stdout@1.3.1: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - bs58@4.0.1: - resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} - buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - bufferutil@4.1.0: resolution: {integrity: sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw==} engines: {node: '>=6.14.2'} @@ -618,17 +536,10 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - commander@14.0.3: - 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==} - concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -649,10 +560,6 @@ packages: resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} engines: {node: '>=6'} - delay@5.0.0: - resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} - engines: {node: '>=10'} - diff@3.5.1: resolution: {integrity: sha512-Z3u54A8qGyqFOSr2pk0ijYs8mOE9Qz8kTvtKeBI+upoG9j04Sq+oI7W8zAJiQybDcESET8/uIdHzs0p3k4fZlw==} engines: {node: '>=0.3.1'} @@ -664,12 +571,6 @@ packages: emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - es6-promise@4.2.8: - resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} - - es6-promisify@5.0.0: - resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==} - escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -678,16 +579,6 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - eventemitter3@5.0.4: - resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} - - eyes@0.1.8: - resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} - engines: {node: '> 0.1.90'} - - fast-stable-stringify@1.0.0: - resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==} - fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -735,12 +626,6 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true - 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==} - inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -779,27 +664,58 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - isomorphic-ws@4.0.1: - resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} - peerDependencies: - ws: '*' - - jayson@4.3.0: - resolution: {integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==} - engines: {node: '>=8'} - hasBin: true - js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true + litesvm-darwin-arm64@1.3.0: + resolution: {integrity: sha512-fj6cV/ofjMXdl5CwjyyLTQnZObfVH5HYDScQ6O44iRqxASmgEyEh4sC8a7M0YZ1rcli9nu2cWl5ARGura89I7Q==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [darwin] + + litesvm-darwin-x64@1.3.0: + resolution: {integrity: sha512-ZYEddnc+tAn8sVYpzvww0oHFiekbCSv+0OZiA6eUDtcSx9uzeRDmPPQ9eI6vgyews2LefBDSENmUb70GHY6Cqg==} + engines: {node: '>= 20'} + cpu: [x64] + os: [darwin] + + litesvm-linux-arm64-gnu@1.3.0: + resolution: {integrity: sha512-kmmKeef96pJI4AJGCvjzMCW6QHuzFrMF1i6dE6OcrtWHaz0Ag+TFaKOU35H1bjH/fDBwoJUV9UbaIbdWht81tA==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + litesvm-linux-arm64-musl@1.3.0: + resolution: {integrity: sha512-FO9p6rx+/3h7R3CU7lkOebL+jy8UEDngSrENHu7pj9EOr78QVyE3Fm0O+WMnwXpMoCSgW0XLhu1cI9NHAbzCTA==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + libc: [musl] + + litesvm-linux-x64-gnu@1.3.0: + resolution: {integrity: sha512-yXC8ZAdIei9JQ2xw5/BocOTu/7EqZuFPyhgENQ1mYDhjNpoyUbIuGCWnqtria14mDda0aV9yVev8plGUrUpjUw==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + libc: [glibc] + + litesvm-linux-x64-musl@1.3.0: + resolution: {integrity: sha512-oedromp1gTjShXmKmxZ1FYtnfM824vRcrPSPvGM0CrqJqKK61m1+tFwNRAVsDlpmWKvO/zsz90ctbgAUo/3TXg==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + libc: [musl] + + litesvm@1.3.0: + resolution: {integrity: sha512-tMu9sBIqSbF1gQluXEUtGmXPfZlMc10tOoBVeDokgK77nl/CcuC506sEoFKM5Rq58Dkb070lBMVBLc43TbMUzQ==} + engines: {node: '>= 20'} + locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -844,15 +760,6 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - node-gyp-build@4.8.4: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true @@ -898,50 +805,12 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} - rpc-websockets@9.3.9: - resolution: {integrity: sha512-2iQDaTB4g5fDB2ihrTFSJSibCEuxaRi1q7qTW7ZO9/M5/TC+ToHA4D9/ffNLEbAoHNNrcdeP05oATNk44SKZXA==} - safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} serialize-javascript@6.0.0: resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} - solana-bankrun-darwin-arm64@0.3.1: - resolution: {integrity: sha512-9LWtH/3/WR9fs8Ve/srdo41mpSqVHmRqDoo69Dv1Cupi+o1zMU6HiEPUHEvH2Tn/6TDbPEDf18MYNfReLUqE6A==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - - solana-bankrun-darwin-universal@0.3.1: - resolution: {integrity: sha512-muGHpVYWT7xCd8ZxEjs/bmsbMp8XBqroYGbE4lQPMDUuLvsJEIrjGqs3MbxEFr71sa58VpyvgywWd5ifI7sGIg==} - engines: {node: '>= 10'} - os: [darwin] - - solana-bankrun-darwin-x64@0.3.1: - resolution: {integrity: sha512-oCaxfHyt7RC3ZMldrh5AbKfy4EH3YRMl8h6fSlMZpxvjQx7nK7PxlRwMeflMnVdkKKp7U8WIDak1lilIPd3/lg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - - solana-bankrun-linux-x64-gnu@0.3.1: - resolution: {integrity: sha512-PfRFhr7igGFNt2Ecfdzh3li9eFPB3Xhmk0Eib17EFIB62YgNUg3ItRnQQFaf0spazFjjJLnglY1TRKTuYlgSVA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - libc: [glibc] - - solana-bankrun-linux-x64-musl@0.3.1: - resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - libc: [musl] - - solana-bankrun@0.3.1: - resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==} - engines: {node: '>= 10'} - source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -949,12 +818,6 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - 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==} - string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -971,10 +834,6 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - superstruct@2.0.2: - resolution: {integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==} - engines: {node: '>=14.0.0'} - supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -983,16 +842,10 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} - text-encoding-utf-8@1.0.2: - resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==} - to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - ts-mocha@10.1.0: resolution: {integrity: sha512-T0C0Xm3/WqCuF2tpa0GNGESTBoKZaiqdUP8guNv4ZY316AFXlyidnrzQ1LUrCT0Wb1i3J0zFTgOh/55Un44WdA==} engines: {node: '>= 6.X.X'} @@ -1008,20 +861,17 @@ packages: tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - type-detect@4.1.0: resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} engines: {node: '>=4'} - typescript@4.9.5: - resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} - engines: {node: '>=4.2.0'} + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} hasBin: true - undici-types@7.24.6: - resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==} + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} undici-types@8.7.0: resolution: {integrity: sha512-gbsS+hAjHg9iV+T8XWdFqnOZEk4f5xrrX3eb9Y1GDe+B5u9H68P6SzYXXUw/rkRvJHRgKIdNfAcrcVj/JvayVA==} @@ -1030,21 +880,6 @@ packages: resolution: {integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==} engines: {node: '>=6.14.2'} - uuid@14.0.0: - resolution: {integrity: sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg==} - hasBin: true - - 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). - hasBin: true - - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -1060,18 +895,6 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - ws@7.5.11: - resolution: {integrity: sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA==} - 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@8.21.0: resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==} engines: {node: '>=10.0.0'} @@ -1110,588 +933,499 @@ packages: snapshots: - '@babel/runtime@7.29.7': {} - - '@noble/curves@1.9.7': + '@solana-program/system@0.12.2(@solana/kit@6.10.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6))': dependencies: - '@noble/hashes': 1.8.0 + '@solana/kit': 6.10.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@noble/hashes@1.8.0': {} + '@solana-program/token@0.14.0(@solana/kit@6.10.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6))': + dependencies: + '@solana-program/system': 0.12.2(@solana/kit@6.10.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)) + '@solana/kit': 6.10.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) - '@solana/accounts@7.0.0(typescript@4.9.5)': + '@solana/accounts@6.10.0(typescript@5.9.3)': dependencies: - '@solana/addresses': 7.0.0(typescript@4.9.5) - '@solana/codecs-core': 7.0.0(typescript@4.9.5) - '@solana/codecs-strings': 7.0.0(typescript@4.9.5) - '@solana/errors': 7.0.0(typescript@4.9.5) - '@solana/rpc-spec': 7.0.0(typescript@4.9.5) - '@solana/rpc-types': 7.0.0(typescript@4.9.5) + '@solana/addresses': 6.10.0(typescript@5.9.3) + '@solana/codecs-core': 6.10.0(typescript@5.9.3) + '@solana/codecs-strings': 6.10.0(typescript@5.9.3) + '@solana/errors': 6.10.0(typescript@5.9.3) + '@solana/rpc-spec': 6.10.0(typescript@5.9.3) + '@solana/rpc-types': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/addresses@7.0.0(typescript@4.9.5)': + '@solana/addresses@6.10.0(typescript@5.9.3)': dependencies: - '@solana/assertions': 7.0.0(typescript@4.9.5) - '@solana/codecs-core': 7.0.0(typescript@4.9.5) - '@solana/codecs-strings': 7.0.0(typescript@4.9.5) - '@solana/errors': 7.0.0(typescript@4.9.5) - '@solana/nominal-types': 7.0.0(typescript@4.9.5) + '@solana/assertions': 6.10.0(typescript@5.9.3) + '@solana/codecs-core': 6.10.0(typescript@5.9.3) + '@solana/codecs-strings': 6.10.0(typescript@5.9.3) + '@solana/errors': 6.10.0(typescript@5.9.3) + '@solana/nominal-types': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/assertions@7.0.0(typescript@4.9.5)': + '@solana/assertions@6.10.0(typescript@5.9.3)': dependencies: - '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/errors': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 - - '@solana/buffer-layout@4.0.1': - dependencies: - buffer: 6.0.3 - - '@solana/codecs-core@2.3.0(typescript@4.9.5)': - dependencies: - '@solana/errors': 2.3.0(typescript@4.9.5) - typescript: 4.9.5 + typescript: 5.9.3 - '@solana/codecs-core@7.0.0(typescript@4.9.5)': + '@solana/codecs-core@6.10.0(typescript@5.9.3)': dependencies: - '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/errors': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 - '@solana/codecs-data-structures@7.0.0(typescript@4.9.5)': + '@solana/codecs-data-structures@6.10.0(typescript@5.9.3)': dependencies: - '@solana/codecs-core': 7.0.0(typescript@4.9.5) - '@solana/codecs-numbers': 7.0.0(typescript@4.9.5) - '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/codecs-core': 6.10.0(typescript@5.9.3) + '@solana/codecs-numbers': 6.10.0(typescript@5.9.3) + '@solana/errors': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 - - '@solana/codecs-numbers@2.3.0(typescript@4.9.5)': - dependencies: - '@solana/codecs-core': 2.3.0(typescript@4.9.5) - '@solana/errors': 2.3.0(typescript@4.9.5) - typescript: 4.9.5 + typescript: 5.9.3 - '@solana/codecs-numbers@7.0.0(typescript@4.9.5)': + '@solana/codecs-numbers@6.10.0(typescript@5.9.3)': dependencies: - '@solana/codecs-core': 7.0.0(typescript@4.9.5) - '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/codecs-core': 6.10.0(typescript@5.9.3) + '@solana/errors': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 - '@solana/codecs-strings@7.0.0(typescript@4.9.5)': + '@solana/codecs-strings@6.10.0(typescript@5.9.3)': dependencies: - '@solana/codecs-core': 7.0.0(typescript@4.9.5) - '@solana/codecs-numbers': 7.0.0(typescript@4.9.5) - '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/codecs-core': 6.10.0(typescript@5.9.3) + '@solana/codecs-numbers': 6.10.0(typescript@5.9.3) + '@solana/errors': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 - '@solana/codecs@7.0.0(typescript@4.9.5)': + '@solana/codecs@6.10.0(typescript@5.9.3)': dependencies: - '@solana/codecs-core': 7.0.0(typescript@4.9.5) - '@solana/codecs-data-structures': 7.0.0(typescript@4.9.5) - '@solana/codecs-numbers': 7.0.0(typescript@4.9.5) - '@solana/codecs-strings': 7.0.0(typescript@4.9.5) - '@solana/fixed-points': 7.0.0(typescript@4.9.5) - '@solana/options': 7.0.0(typescript@4.9.5) + '@solana/codecs-core': 6.10.0(typescript@5.9.3) + '@solana/codecs-data-structures': 6.10.0(typescript@5.9.3) + '@solana/codecs-numbers': 6.10.0(typescript@5.9.3) + '@solana/codecs-strings': 6.10.0(typescript@5.9.3) + '@solana/fixed-points': 6.10.0(typescript@5.9.3) + '@solana/options': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/errors@2.3.0(typescript@4.9.5)': - dependencies: - chalk: 5.6.2 - commander: 14.0.3 - typescript: 4.9.5 - - '@solana/errors@7.0.0(typescript@4.9.5)': + '@solana/errors@6.10.0(typescript@5.9.3)': dependencies: chalk: 5.6.2 commander: 15.0.0 optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 - '@solana/fast-stable-stringify@7.0.0(typescript@4.9.5)': + '@solana/fast-stable-stringify@6.10.0(typescript@5.9.3)': optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 - '@solana/fixed-points@7.0.0(typescript@4.9.5)': + '@solana/fixed-points@6.10.0(typescript@5.9.3)': dependencies: - '@solana/codecs-core': 7.0.0(typescript@4.9.5) - '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/codecs-core': 6.10.0(typescript@5.9.3) + '@solana/errors': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 - '@solana/functional@7.0.0(typescript@4.9.5)': + '@solana/functional@6.10.0(typescript@5.9.3)': optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 - '@solana/instruction-plans@7.0.0(typescript@4.9.5)': + '@solana/instruction-plans@6.10.0(typescript@5.9.3)': dependencies: - '@solana/errors': 7.0.0(typescript@4.9.5) - '@solana/instructions': 7.0.0(typescript@4.9.5) - '@solana/keys': 7.0.0(typescript@4.9.5) - '@solana/promises': 7.0.0(typescript@4.9.5) - '@solana/transaction-messages': 7.0.0(typescript@4.9.5) - '@solana/transactions': 7.0.0(typescript@4.9.5) + '@solana/errors': 6.10.0(typescript@5.9.3) + '@solana/instructions': 6.10.0(typescript@5.9.3) + '@solana/keys': 6.10.0(typescript@5.9.3) + '@solana/promises': 6.10.0(typescript@5.9.3) + '@solana/transaction-messages': 6.10.0(typescript@5.9.3) + '@solana/transactions': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/instructions@7.0.0(typescript@4.9.5)': + '@solana/instructions@6.10.0(typescript@5.9.3)': dependencies: - '@solana/codecs-core': 7.0.0(typescript@4.9.5) - '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/codecs-core': 6.10.0(typescript@5.9.3) + '@solana/errors': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 - '@solana/keys@7.0.0(typescript@4.9.5)': + '@solana/keys@6.10.0(typescript@5.9.3)': dependencies: - '@solana/assertions': 7.0.0(typescript@4.9.5) - '@solana/codecs-core': 7.0.0(typescript@4.9.5) - '@solana/codecs-strings': 7.0.0(typescript@4.9.5) - '@solana/errors': 7.0.0(typescript@4.9.5) - '@solana/nominal-types': 7.0.0(typescript@4.9.5) - '@solana/promises': 7.0.0(typescript@4.9.5) + '@solana/assertions': 6.10.0(typescript@5.9.3) + '@solana/codecs-core': 6.10.0(typescript@5.9.3) + '@solana/codecs-strings': 6.10.0(typescript@5.9.3) + '@solana/errors': 6.10.0(typescript@5.9.3) + '@solana/nominal-types': 6.10.0(typescript@5.9.3) + '@solana/promises': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/kit@7.0.0(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6)': - dependencies: - '@solana/accounts': 7.0.0(typescript@4.9.5) - '@solana/addresses': 7.0.0(typescript@4.9.5) - '@solana/codecs': 7.0.0(typescript@4.9.5) - '@solana/errors': 7.0.0(typescript@4.9.5) - '@solana/functional': 7.0.0(typescript@4.9.5) - '@solana/instruction-plans': 7.0.0(typescript@4.9.5) - '@solana/instructions': 7.0.0(typescript@4.9.5) - '@solana/keys': 7.0.0(typescript@4.9.5) - '@solana/offchain-messages': 7.0.0(typescript@4.9.5) - '@solana/plugin-core': 7.0.0(typescript@4.9.5) - '@solana/plugin-interfaces': 7.0.0(typescript@4.9.5) - '@solana/program-client-core': 7.0.0(typescript@4.9.5) - '@solana/programs': 7.0.0(typescript@4.9.5) - '@solana/rpc': 7.0.0(typescript@4.9.5) - '@solana/rpc-api': 7.0.0(typescript@4.9.5) - '@solana/rpc-parsed-types': 7.0.0(typescript@4.9.5) - '@solana/rpc-spec-types': 7.0.0(typescript@4.9.5) - '@solana/rpc-subscriptions': 7.0.0(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6) - '@solana/rpc-types': 7.0.0(typescript@4.9.5) - '@solana/signers': 7.0.0(typescript@4.9.5) - '@solana/subscribable': 7.0.0(typescript@4.9.5) - '@solana/sysvars': 7.0.0(typescript@4.9.5) - '@solana/transaction-confirmation': 7.0.0(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6) - '@solana/transaction-introspection': 7.0.0(typescript@4.9.5) - '@solana/transaction-messages': 7.0.0(typescript@4.9.5) - '@solana/transactions': 7.0.0(typescript@4.9.5) + '@solana/kit@6.10.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': + dependencies: + '@solana/accounts': 6.10.0(typescript@5.9.3) + '@solana/addresses': 6.10.0(typescript@5.9.3) + '@solana/codecs': 6.10.0(typescript@5.9.3) + '@solana/errors': 6.10.0(typescript@5.9.3) + '@solana/functional': 6.10.0(typescript@5.9.3) + '@solana/instruction-plans': 6.10.0(typescript@5.9.3) + '@solana/instructions': 6.10.0(typescript@5.9.3) + '@solana/keys': 6.10.0(typescript@5.9.3) + '@solana/offchain-messages': 6.10.0(typescript@5.9.3) + '@solana/plugin-core': 6.10.0(typescript@5.9.3) + '@solana/plugin-interfaces': 6.10.0(typescript@5.9.3) + '@solana/program-client-core': 6.10.0(typescript@5.9.3) + '@solana/programs': 6.10.0(typescript@5.9.3) + '@solana/rpc': 6.10.0(typescript@5.9.3) + '@solana/rpc-api': 6.10.0(typescript@5.9.3) + '@solana/rpc-parsed-types': 6.10.0(typescript@5.9.3) + '@solana/rpc-spec-types': 6.10.0(typescript@5.9.3) + '@solana/rpc-subscriptions': 6.10.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@solana/rpc-types': 6.10.0(typescript@5.9.3) + '@solana/signers': 6.10.0(typescript@5.9.3) + '@solana/subscribable': 6.10.0(typescript@5.9.3) + '@solana/sysvars': 6.10.0(typescript@5.9.3) + '@solana/transaction-confirmation': 6.10.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@solana/transaction-messages': 6.10.0(typescript@5.9.3) + '@solana/transactions': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 transitivePeerDependencies: - bufferutil - fastestsmallesttextencoderdecoder - utf-8-validate - '@solana/nominal-types@7.0.0(typescript@4.9.5)': + '@solana/nominal-types@6.10.0(typescript@5.9.3)': optionalDependencies: - typescript: 4.9.5 - - '@solana/offchain-messages@7.0.0(typescript@4.9.5)': - dependencies: - '@solana/addresses': 7.0.0(typescript@4.9.5) - '@solana/codecs-core': 7.0.0(typescript@4.9.5) - '@solana/codecs-data-structures': 7.0.0(typescript@4.9.5) - '@solana/codecs-numbers': 7.0.0(typescript@4.9.5) - '@solana/codecs-strings': 7.0.0(typescript@4.9.5) - '@solana/errors': 7.0.0(typescript@4.9.5) - '@solana/keys': 7.0.0(typescript@4.9.5) - '@solana/nominal-types': 7.0.0(typescript@4.9.5) + typescript: 5.9.3 + + '@solana/offchain-messages@6.10.0(typescript@5.9.3)': + dependencies: + '@solana/addresses': 6.10.0(typescript@5.9.3) + '@solana/codecs-core': 6.10.0(typescript@5.9.3) + '@solana/codecs-data-structures': 6.10.0(typescript@5.9.3) + '@solana/codecs-numbers': 6.10.0(typescript@5.9.3) + '@solana/codecs-strings': 6.10.0(typescript@5.9.3) + '@solana/errors': 6.10.0(typescript@5.9.3) + '@solana/keys': 6.10.0(typescript@5.9.3) + '@solana/nominal-types': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/options@7.0.0(typescript@4.9.5)': + '@solana/options@6.10.0(typescript@5.9.3)': dependencies: - '@solana/codecs-core': 7.0.0(typescript@4.9.5) - '@solana/codecs-data-structures': 7.0.0(typescript@4.9.5) - '@solana/codecs-numbers': 7.0.0(typescript@4.9.5) - '@solana/codecs-strings': 7.0.0(typescript@4.9.5) - '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/codecs-core': 6.10.0(typescript@5.9.3) + '@solana/codecs-data-structures': 6.10.0(typescript@5.9.3) + '@solana/codecs-numbers': 6.10.0(typescript@5.9.3) + '@solana/codecs-strings': 6.10.0(typescript@5.9.3) + '@solana/errors': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/plugin-core@7.0.0(typescript@4.9.5)': + '@solana/plugin-core@6.10.0(typescript@5.9.3)': optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 - '@solana/plugin-interfaces@7.0.0(typescript@4.9.5)': + '@solana/plugin-interfaces@6.10.0(typescript@5.9.3)': dependencies: - '@solana/addresses': 7.0.0(typescript@4.9.5) - '@solana/instruction-plans': 7.0.0(typescript@4.9.5) - '@solana/keys': 7.0.0(typescript@4.9.5) - '@solana/rpc-spec': 7.0.0(typescript@4.9.5) - '@solana/rpc-subscriptions-spec': 7.0.0(typescript@4.9.5) - '@solana/rpc-types': 7.0.0(typescript@4.9.5) - '@solana/signers': 7.0.0(typescript@4.9.5) + '@solana/addresses': 6.10.0(typescript@5.9.3) + '@solana/instruction-plans': 6.10.0(typescript@5.9.3) + '@solana/keys': 6.10.0(typescript@5.9.3) + '@solana/rpc-spec': 6.10.0(typescript@5.9.3) + '@solana/rpc-subscriptions-spec': 6.10.0(typescript@5.9.3) + '@solana/rpc-types': 6.10.0(typescript@5.9.3) + '@solana/signers': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/program-client-core@7.0.0(typescript@4.9.5)': - dependencies: - '@solana/accounts': 7.0.0(typescript@4.9.5) - '@solana/addresses': 7.0.0(typescript@4.9.5) - '@solana/codecs-core': 7.0.0(typescript@4.9.5) - '@solana/errors': 7.0.0(typescript@4.9.5) - '@solana/instruction-plans': 7.0.0(typescript@4.9.5) - '@solana/instructions': 7.0.0(typescript@4.9.5) - '@solana/plugin-interfaces': 7.0.0(typescript@4.9.5) - '@solana/rpc-api': 7.0.0(typescript@4.9.5) - '@solana/signers': 7.0.0(typescript@4.9.5) + '@solana/program-client-core@6.10.0(typescript@5.9.3)': + dependencies: + '@solana/accounts': 6.10.0(typescript@5.9.3) + '@solana/addresses': 6.10.0(typescript@5.9.3) + '@solana/codecs-core': 6.10.0(typescript@5.9.3) + '@solana/errors': 6.10.0(typescript@5.9.3) + '@solana/instruction-plans': 6.10.0(typescript@5.9.3) + '@solana/instructions': 6.10.0(typescript@5.9.3) + '@solana/plugin-interfaces': 6.10.0(typescript@5.9.3) + '@solana/rpc-api': 6.10.0(typescript@5.9.3) + '@solana/signers': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/programs@7.0.0(typescript@4.9.5)': + '@solana/programs@6.10.0(typescript@5.9.3)': dependencies: - '@solana/addresses': 7.0.0(typescript@4.9.5) - '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/addresses': 6.10.0(typescript@5.9.3) + '@solana/errors': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/promises@7.0.0(typescript@4.9.5)': + '@solana/promises@6.10.0(typescript@5.9.3)': optionalDependencies: - typescript: 4.9.5 - - '@solana/rpc-api@7.0.0(typescript@4.9.5)': - dependencies: - '@solana/addresses': 7.0.0(typescript@4.9.5) - '@solana/codecs-core': 7.0.0(typescript@4.9.5) - '@solana/codecs-strings': 7.0.0(typescript@4.9.5) - '@solana/errors': 7.0.0(typescript@4.9.5) - '@solana/keys': 7.0.0(typescript@4.9.5) - '@solana/rpc-parsed-types': 7.0.0(typescript@4.9.5) - '@solana/rpc-spec': 7.0.0(typescript@4.9.5) - '@solana/rpc-transformers': 7.0.0(typescript@4.9.5) - '@solana/rpc-types': 7.0.0(typescript@4.9.5) - '@solana/transaction-messages': 7.0.0(typescript@4.9.5) - '@solana/transactions': 7.0.0(typescript@4.9.5) + typescript: 5.9.3 + + '@solana/rpc-api@6.10.0(typescript@5.9.3)': + dependencies: + '@solana/addresses': 6.10.0(typescript@5.9.3) + '@solana/codecs-core': 6.10.0(typescript@5.9.3) + '@solana/codecs-strings': 6.10.0(typescript@5.9.3) + '@solana/errors': 6.10.0(typescript@5.9.3) + '@solana/keys': 6.10.0(typescript@5.9.3) + '@solana/rpc-parsed-types': 6.10.0(typescript@5.9.3) + '@solana/rpc-spec': 6.10.0(typescript@5.9.3) + '@solana/rpc-transformers': 6.10.0(typescript@5.9.3) + '@solana/rpc-types': 6.10.0(typescript@5.9.3) + '@solana/transaction-messages': 6.10.0(typescript@5.9.3) + '@solana/transactions': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/rpc-parsed-types@7.0.0(typescript@4.9.5)': + '@solana/rpc-parsed-types@6.10.0(typescript@5.9.3)': optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 - '@solana/rpc-spec-types@7.0.0(typescript@4.9.5)': - dependencies: - '@solana/errors': 7.0.0(typescript@4.9.5) + '@solana/rpc-spec-types@6.10.0(typescript@5.9.3)': optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 - '@solana/rpc-spec@7.0.0(typescript@4.9.5)': + '@solana/rpc-spec@6.10.0(typescript@5.9.3)': dependencies: - '@solana/errors': 7.0.0(typescript@4.9.5) - '@solana/rpc-spec-types': 7.0.0(typescript@4.9.5) - '@solana/subscribable': 7.0.0(typescript@4.9.5) + '@solana/errors': 6.10.0(typescript@5.9.3) + '@solana/rpc-spec-types': 6.10.0(typescript@5.9.3) + '@solana/subscribable': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 - '@solana/rpc-subscriptions-api@7.0.0(typescript@4.9.5)': + '@solana/rpc-subscriptions-api@6.10.0(typescript@5.9.3)': dependencies: - '@solana/addresses': 7.0.0(typescript@4.9.5) - '@solana/keys': 7.0.0(typescript@4.9.5) - '@solana/rpc-subscriptions-spec': 7.0.0(typescript@4.9.5) - '@solana/rpc-transformers': 7.0.0(typescript@4.9.5) - '@solana/rpc-types': 7.0.0(typescript@4.9.5) - '@solana/transaction-messages': 7.0.0(typescript@4.9.5) - '@solana/transactions': 7.0.0(typescript@4.9.5) + '@solana/addresses': 6.10.0(typescript@5.9.3) + '@solana/keys': 6.10.0(typescript@5.9.3) + '@solana/rpc-subscriptions-spec': 6.10.0(typescript@5.9.3) + '@solana/rpc-transformers': 6.10.0(typescript@5.9.3) + '@solana/rpc-types': 6.10.0(typescript@5.9.3) + '@solana/transaction-messages': 6.10.0(typescript@5.9.3) + '@solana/transactions': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/rpc-subscriptions-channel-websocket@7.0.0(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6)': + '@solana/rpc-subscriptions-channel-websocket@6.10.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': dependencies: - '@solana/errors': 7.0.0(typescript@4.9.5) - '@solana/functional': 7.0.0(typescript@4.9.5) - '@solana/rpc-subscriptions-spec': 7.0.0(typescript@4.9.5) - '@solana/subscribable': 7.0.0(typescript@4.9.5) + '@solana/errors': 6.10.0(typescript@5.9.3) + '@solana/functional': 6.10.0(typescript@5.9.3) + '@solana/rpc-subscriptions-spec': 6.10.0(typescript@5.9.3) + '@solana/subscribable': 6.10.0(typescript@5.9.3) ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 transitivePeerDependencies: - bufferutil - utf-8-validate - '@solana/rpc-subscriptions-spec@7.0.0(typescript@4.9.5)': + '@solana/rpc-subscriptions-spec@6.10.0(typescript@5.9.3)': dependencies: - '@solana/errors': 7.0.0(typescript@4.9.5) - '@solana/promises': 7.0.0(typescript@4.9.5) - '@solana/rpc-spec-types': 7.0.0(typescript@4.9.5) - '@solana/subscribable': 7.0.0(typescript@4.9.5) + '@solana/errors': 6.10.0(typescript@5.9.3) + '@solana/promises': 6.10.0(typescript@5.9.3) + '@solana/rpc-spec-types': 6.10.0(typescript@5.9.3) + '@solana/subscribable': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 - - '@solana/rpc-subscriptions@7.0.0(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6)': - dependencies: - '@solana/errors': 7.0.0(typescript@4.9.5) - '@solana/fast-stable-stringify': 7.0.0(typescript@4.9.5) - '@solana/functional': 7.0.0(typescript@4.9.5) - '@solana/promises': 7.0.0(typescript@4.9.5) - '@solana/rpc-spec-types': 7.0.0(typescript@4.9.5) - '@solana/rpc-subscriptions-api': 7.0.0(typescript@4.9.5) - '@solana/rpc-subscriptions-channel-websocket': 7.0.0(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6) - '@solana/rpc-subscriptions-spec': 7.0.0(typescript@4.9.5) - '@solana/rpc-transformers': 7.0.0(typescript@4.9.5) - '@solana/rpc-types': 7.0.0(typescript@4.9.5) - '@solana/subscribable': 7.0.0(typescript@4.9.5) + typescript: 5.9.3 + + '@solana/rpc-subscriptions@6.10.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': + dependencies: + '@solana/errors': 6.10.0(typescript@5.9.3) + '@solana/fast-stable-stringify': 6.10.0(typescript@5.9.3) + '@solana/functional': 6.10.0(typescript@5.9.3) + '@solana/promises': 6.10.0(typescript@5.9.3) + '@solana/rpc-spec-types': 6.10.0(typescript@5.9.3) + '@solana/rpc-subscriptions-api': 6.10.0(typescript@5.9.3) + '@solana/rpc-subscriptions-channel-websocket': 6.10.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@solana/rpc-subscriptions-spec': 6.10.0(typescript@5.9.3) + '@solana/rpc-transformers': 6.10.0(typescript@5.9.3) + '@solana/rpc-types': 6.10.0(typescript@5.9.3) + '@solana/subscribable': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 transitivePeerDependencies: - bufferutil - fastestsmallesttextencoderdecoder - utf-8-validate - '@solana/rpc-transformers@7.0.0(typescript@4.9.5)': + '@solana/rpc-transformers@6.10.0(typescript@5.9.3)': dependencies: - '@solana/errors': 7.0.0(typescript@4.9.5) - '@solana/functional': 7.0.0(typescript@4.9.5) - '@solana/nominal-types': 7.0.0(typescript@4.9.5) - '@solana/rpc-spec-types': 7.0.0(typescript@4.9.5) - '@solana/rpc-types': 7.0.0(typescript@4.9.5) + '@solana/errors': 6.10.0(typescript@5.9.3) + '@solana/functional': 6.10.0(typescript@5.9.3) + '@solana/nominal-types': 6.10.0(typescript@5.9.3) + '@solana/rpc-spec-types': 6.10.0(typescript@5.9.3) + '@solana/rpc-types': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/rpc-transport-http@7.0.0(typescript@4.9.5)': + '@solana/rpc-transport-http@6.10.0(typescript@5.9.3)': dependencies: - '@solana/errors': 7.0.0(typescript@4.9.5) - '@solana/rpc-spec': 7.0.0(typescript@4.9.5) - '@solana/rpc-spec-types': 7.0.0(typescript@4.9.5) + '@solana/errors': 6.10.0(typescript@5.9.3) + '@solana/rpc-spec': 6.10.0(typescript@5.9.3) + '@solana/rpc-spec-types': 6.10.0(typescript@5.9.3) undici-types: 8.7.0 optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 - '@solana/rpc-types@7.0.0(typescript@4.9.5)': + '@solana/rpc-types@6.10.0(typescript@5.9.3)': dependencies: - '@solana/addresses': 7.0.0(typescript@4.9.5) - '@solana/codecs-core': 7.0.0(typescript@4.9.5) - '@solana/codecs-numbers': 7.0.0(typescript@4.9.5) - '@solana/codecs-strings': 7.0.0(typescript@4.9.5) - '@solana/errors': 7.0.0(typescript@4.9.5) - '@solana/fixed-points': 7.0.0(typescript@4.9.5) - '@solana/nominal-types': 7.0.0(typescript@4.9.5) + '@solana/addresses': 6.10.0(typescript@5.9.3) + '@solana/codecs-core': 6.10.0(typescript@5.9.3) + '@solana/codecs-numbers': 6.10.0(typescript@5.9.3) + '@solana/codecs-strings': 6.10.0(typescript@5.9.3) + '@solana/errors': 6.10.0(typescript@5.9.3) + '@solana/fixed-points': 6.10.0(typescript@5.9.3) + '@solana/nominal-types': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/rpc@7.0.0(typescript@4.9.5)': - dependencies: - '@solana/errors': 7.0.0(typescript@4.9.5) - '@solana/fast-stable-stringify': 7.0.0(typescript@4.9.5) - '@solana/functional': 7.0.0(typescript@4.9.5) - '@solana/rpc-api': 7.0.0(typescript@4.9.5) - '@solana/rpc-spec': 7.0.0(typescript@4.9.5) - '@solana/rpc-spec-types': 7.0.0(typescript@4.9.5) - '@solana/rpc-transformers': 7.0.0(typescript@4.9.5) - '@solana/rpc-transport-http': 7.0.0(typescript@4.9.5) - '@solana/rpc-types': 7.0.0(typescript@4.9.5) + '@solana/rpc@6.10.0(typescript@5.9.3)': + dependencies: + '@solana/errors': 6.10.0(typescript@5.9.3) + '@solana/fast-stable-stringify': 6.10.0(typescript@5.9.3) + '@solana/functional': 6.10.0(typescript@5.9.3) + '@solana/rpc-api': 6.10.0(typescript@5.9.3) + '@solana/rpc-spec': 6.10.0(typescript@5.9.3) + '@solana/rpc-spec-types': 6.10.0(typescript@5.9.3) + '@solana/rpc-transformers': 6.10.0(typescript@5.9.3) + '@solana/rpc-transport-http': 6.10.0(typescript@5.9.3) + '@solana/rpc-types': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/signers@7.0.0(typescript@4.9.5)': - dependencies: - '@solana/addresses': 7.0.0(typescript@4.9.5) - '@solana/codecs-core': 7.0.0(typescript@4.9.5) - '@solana/errors': 7.0.0(typescript@4.9.5) - '@solana/instructions': 7.0.0(typescript@4.9.5) - '@solana/keys': 7.0.0(typescript@4.9.5) - '@solana/nominal-types': 7.0.0(typescript@4.9.5) - '@solana/offchain-messages': 7.0.0(typescript@4.9.5) - '@solana/transaction-messages': 7.0.0(typescript@4.9.5) - '@solana/transactions': 7.0.0(typescript@4.9.5) + '@solana/signers@6.10.0(typescript@5.9.3)': + dependencies: + '@solana/addresses': 6.10.0(typescript@5.9.3) + '@solana/codecs-core': 6.10.0(typescript@5.9.3) + '@solana/errors': 6.10.0(typescript@5.9.3) + '@solana/instructions': 6.10.0(typescript@5.9.3) + '@solana/keys': 6.10.0(typescript@5.9.3) + '@solana/nominal-types': 6.10.0(typescript@5.9.3) + '@solana/offchain-messages': 6.10.0(typescript@5.9.3) + '@solana/transaction-messages': 6.10.0(typescript@5.9.3) + '@solana/transactions': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/subscribable@7.0.0(typescript@4.9.5)': + '@solana/subscribable@6.10.0(typescript@5.9.3)': dependencies: - '@solana/errors': 7.0.0(typescript@4.9.5) - '@solana/promises': 7.0.0(typescript@4.9.5) + '@solana/errors': 6.10.0(typescript@5.9.3) + '@solana/promises': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 - '@solana/sysvars@7.0.0(typescript@4.9.5)': + '@solana/sysvars@6.10.0(typescript@5.9.3)': dependencies: - '@solana/accounts': 7.0.0(typescript@4.9.5) - '@solana/codecs-core': 7.0.0(typescript@4.9.5) - '@solana/codecs-data-structures': 7.0.0(typescript@4.9.5) - '@solana/codecs-numbers': 7.0.0(typescript@4.9.5) - '@solana/errors': 7.0.0(typescript@4.9.5) - '@solana/rpc-types': 7.0.0(typescript@4.9.5) + '@solana/accounts': 6.10.0(typescript@5.9.3) + '@solana/codecs-core': 6.10.0(typescript@5.9.3) + '@solana/codecs-data-structures': 6.10.0(typescript@5.9.3) + '@solana/codecs-numbers': 6.10.0(typescript@5.9.3) + '@solana/errors': 6.10.0(typescript@5.9.3) + '@solana/rpc-types': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/transaction-confirmation@7.0.0(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6)': - dependencies: - '@solana/addresses': 7.0.0(typescript@4.9.5) - '@solana/codecs-strings': 7.0.0(typescript@4.9.5) - '@solana/errors': 7.0.0(typescript@4.9.5) - '@solana/keys': 7.0.0(typescript@4.9.5) - '@solana/promises': 7.0.0(typescript@4.9.5) - '@solana/rpc': 7.0.0(typescript@4.9.5) - '@solana/rpc-subscriptions': 7.0.0(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6) - '@solana/rpc-types': 7.0.0(typescript@4.9.5) - '@solana/transaction-messages': 7.0.0(typescript@4.9.5) - '@solana/transactions': 7.0.0(typescript@4.9.5) + '@solana/transaction-confirmation@6.10.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)': + dependencies: + '@solana/addresses': 6.10.0(typescript@5.9.3) + '@solana/codecs-strings': 6.10.0(typescript@5.9.3) + '@solana/errors': 6.10.0(typescript@5.9.3) + '@solana/keys': 6.10.0(typescript@5.9.3) + '@solana/promises': 6.10.0(typescript@5.9.3) + '@solana/rpc': 6.10.0(typescript@5.9.3) + '@solana/rpc-subscriptions': 6.10.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@solana/rpc-types': 6.10.0(typescript@5.9.3) + '@solana/transaction-messages': 6.10.0(typescript@5.9.3) + '@solana/transactions': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 transitivePeerDependencies: - bufferutil - fastestsmallesttextencoderdecoder - utf-8-validate - '@solana/transaction-introspection@7.0.0(typescript@4.9.5)': - dependencies: - '@solana/addresses': 7.0.0(typescript@4.9.5) - '@solana/codecs-core': 7.0.0(typescript@4.9.5) - '@solana/codecs-strings': 7.0.0(typescript@4.9.5) - '@solana/errors': 7.0.0(typescript@4.9.5) - '@solana/instructions': 7.0.0(typescript@4.9.5) - '@solana/rpc-api': 7.0.0(typescript@4.9.5) - '@solana/transaction-messages': 7.0.0(typescript@4.9.5) - '@solana/transactions': 7.0.0(typescript@4.9.5) - optionalDependencies: - typescript: 4.9.5 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder - - '@solana/transaction-messages@7.0.0(typescript@4.9.5)': - dependencies: - '@solana/addresses': 7.0.0(typescript@4.9.5) - '@solana/codecs-core': 7.0.0(typescript@4.9.5) - '@solana/codecs-data-structures': 7.0.0(typescript@4.9.5) - '@solana/codecs-numbers': 7.0.0(typescript@4.9.5) - '@solana/errors': 7.0.0(typescript@4.9.5) - '@solana/functional': 7.0.0(typescript@4.9.5) - '@solana/instructions': 7.0.0(typescript@4.9.5) - '@solana/nominal-types': 7.0.0(typescript@4.9.5) - '@solana/rpc-types': 7.0.0(typescript@4.9.5) + '@solana/transaction-messages@6.10.0(typescript@5.9.3)': + dependencies: + '@solana/addresses': 6.10.0(typescript@5.9.3) + '@solana/codecs-core': 6.10.0(typescript@5.9.3) + '@solana/codecs-data-structures': 6.10.0(typescript@5.9.3) + '@solana/codecs-numbers': 6.10.0(typescript@5.9.3) + '@solana/errors': 6.10.0(typescript@5.9.3) + '@solana/functional': 6.10.0(typescript@5.9.3) + '@solana/instructions': 6.10.0(typescript@5.9.3) + '@solana/nominal-types': 6.10.0(typescript@5.9.3) + '@solana/rpc-types': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/transactions@7.0.0(typescript@4.9.5)': - dependencies: - '@solana/addresses': 7.0.0(typescript@4.9.5) - '@solana/codecs-core': 7.0.0(typescript@4.9.5) - '@solana/codecs-data-structures': 7.0.0(typescript@4.9.5) - '@solana/codecs-numbers': 7.0.0(typescript@4.9.5) - '@solana/codecs-strings': 7.0.0(typescript@4.9.5) - '@solana/errors': 7.0.0(typescript@4.9.5) - '@solana/functional': 7.0.0(typescript@4.9.5) - '@solana/instructions': 7.0.0(typescript@4.9.5) - '@solana/keys': 7.0.0(typescript@4.9.5) - '@solana/nominal-types': 7.0.0(typescript@4.9.5) - '@solana/rpc-types': 7.0.0(typescript@4.9.5) - '@solana/transaction-messages': 7.0.0(typescript@4.9.5) + '@solana/transactions@6.10.0(typescript@5.9.3)': + dependencies: + '@solana/addresses': 6.10.0(typescript@5.9.3) + '@solana/codecs-core': 6.10.0(typescript@5.9.3) + '@solana/codecs-data-structures': 6.10.0(typescript@5.9.3) + '@solana/codecs-numbers': 6.10.0(typescript@5.9.3) + '@solana/codecs-strings': 6.10.0(typescript@5.9.3) + '@solana/errors': 6.10.0(typescript@5.9.3) + '@solana/functional': 6.10.0(typescript@5.9.3) + '@solana/instructions': 6.10.0(typescript@5.9.3) + '@solana/keys': 6.10.0(typescript@5.9.3) + '@solana/nominal-types': 6.10.0(typescript@5.9.3) + '@solana/rpc-types': 6.10.0(typescript@5.9.3) + '@solana/transaction-messages': 6.10.0(typescript@5.9.3) optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6)': - dependencies: - '@babel/runtime': 7.29.7 - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@solana/buffer-layout': 4.0.1 - '@solana/codecs-numbers': 2.3.0(typescript@4.9.5) - agentkeepalive: 4.6.0 - bn.js: 5.2.3 - borsh: 0.7.0 - bs58: 4.0.1 - buffer: 6.0.3 - fast-stable-stringify: 1.0.0 - jayson: 4.3.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - node-fetch: 2.7.0 - rpc-websockets: 9.3.9 - superstruct: 2.0.2 - transitivePeerDependencies: - - bufferutil - - encoding - - typescript - - utf-8-validate - - '@swc/helpers@0.5.21': - dependencies: - tslib: 2.8.1 - - '@types/bn.js@5.2.0': - dependencies: - '@types/node': 25.9.1 - '@types/chai@4.3.20': {} - '@types/connect@3.4.38': - dependencies: - '@types/node': 12.20.55 - '@types/json5@0.0.29': optional: true '@types/mocha@9.1.1': {} - '@types/node@12.20.55': {} - - '@types/node@25.9.1': + '@types/node@20.19.43': dependencies: - undici-types: 7.24.6 - - '@types/uuid@10.0.0': {} - - '@types/ws@7.4.7': - dependencies: - '@types/node': 12.20.55 - - '@types/ws@8.18.1': - dependencies: - '@types/node': 25.9.1 + undici-types: 6.21.0 '@ungap/promise-all-settled@1.1.2': {} - agentkeepalive@4.6.0: - dependencies: - humanize-ms: 1.2.1 - ansi-colors@4.1.1: {} ansi-regex@5.0.1: {} @@ -1713,22 +1447,8 @@ snapshots: balanced-match@1.0.2: {} - base-x@3.0.11: - dependencies: - safe-buffer: 5.2.1 - - base64-js@1.5.1: {} - binary-extensions@2.3.0: {} - bn.js@5.2.3: {} - - borsh@0.7.0: - dependencies: - bn.js: 5.2.3 - bs58: 4.0.1 - text-encoding-utf-8: 1.0.2 - borsh@2.0.0: {} brace-expansion@1.1.14: @@ -1742,17 +1462,8 @@ snapshots: browser-stdout@1.3.1: {} - bs58@4.0.1: - dependencies: - base-x: 3.0.11 - buffer-from@1.1.2: {} - buffer@6.0.3: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - bufferutil@4.1.0: dependencies: node-gyp-build: 4.8.4 @@ -1805,12 +1516,8 @@ snapshots: color-name@1.1.4: {} - commander@14.0.3: {} - commander@15.0.0: {} - commander@2.20.3: {} - concat-map@0.0.1: {} debug@4.3.3(supports-color@8.1.1): @@ -1825,30 +1532,16 @@ snapshots: dependencies: type-detect: 4.1.0 - delay@5.0.0: {} - diff@3.5.1: {} diff@5.0.0: {} emoji-regex@8.0.0: {} - es6-promise@4.2.8: {} - - es6-promisify@5.0.0: - dependencies: - es6-promise: 4.2.8 - escalade@3.2.0: {} escape-string-regexp@4.0.0: {} - eventemitter3@5.0.4: {} - - eyes@0.1.8: {} - - fast-stable-stringify@1.0.0: {} - fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -1888,12 +1581,6 @@ snapshots: he@1.2.0: {} - humanize-ms@1.2.1: - dependencies: - ms: 2.1.3 - - ieee754@1.2.1: {} - inflight@1.0.6: dependencies: once: 1.4.0 @@ -1921,39 +1608,51 @@ snapshots: isexe@2.0.0: {} - isomorphic-ws@4.0.1(ws@7.5.11(bufferutil@4.1.0)(utf-8-validate@6.0.6)): - dependencies: - ws: 7.5.11(bufferutil@4.1.0)(utf-8-validate@6.0.6) - - jayson@4.3.0(bufferutil@4.1.0)(utf-8-validate@6.0.6): - dependencies: - '@types/connect': 3.4.38 - '@types/node': 12.20.55 - '@types/ws': 7.4.7 - 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.11(bufferutil@4.1.0)(utf-8-validate@6.0.6)) - json-stringify-safe: 5.0.1 - stream-json: 1.9.1 - uuid: 8.3.2 - ws: 7.5.11(bufferutil@4.1.0)(utf-8-validate@6.0.6) - transitivePeerDependencies: - - bufferutil - - utf-8-validate - js-yaml@4.1.0: dependencies: argparse: 2.0.1 - json-stringify-safe@5.0.1: {} - json5@1.0.2: dependencies: minimist: 1.2.8 optional: true + litesvm-darwin-arm64@1.3.0: + optional: true + + litesvm-darwin-x64@1.3.0: + optional: true + + litesvm-linux-arm64-gnu@1.3.0: + optional: true + + litesvm-linux-arm64-musl@1.3.0: + optional: true + + litesvm-linux-x64-gnu@1.3.0: + optional: true + + litesvm-linux-x64-musl@1.3.0: + optional: true + + litesvm@1.3.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6): + dependencies: + '@solana-program/system': 0.12.2(@solana/kit@6.10.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)) + '@solana-program/token': 0.14.0(@solana/kit@6.10.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6)) + '@solana/kit': 6.10.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + optionalDependencies: + litesvm-darwin-arm64: 1.3.0 + litesvm-darwin-x64: 1.3.0 + litesvm-linux-arm64-gnu: 1.3.0 + litesvm-linux-arm64-musl: 1.3.0 + litesvm-linux-x64-gnu: 1.3.0 + litesvm-linux-x64-musl: 1.3.0 + transitivePeerDependencies: + - bufferutil + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + locate-path@6.0.0: dependencies: p-locate: 5.0.0 @@ -2016,10 +1715,6 @@ snapshots: nanoid@3.3.1: {} - node-fetch@2.7.0: - dependencies: - whatwg-url: 5.0.0 - node-gyp-build@4.8.4: optional: true @@ -2055,56 +1750,12 @@ snapshots: require-directory@2.1.1: {} - rpc-websockets@9.3.9: - dependencies: - '@swc/helpers': 0.5.21 - '@types/uuid': 10.0.0 - '@types/ws': 8.18.1 - buffer: 6.0.3 - eventemitter3: 5.0.4 - uuid: 14.0.0 - ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) - optionalDependencies: - bufferutil: 4.1.0 - utf-8-validate: 6.0.6 - safe-buffer@5.2.1: {} serialize-javascript@6.0.0: dependencies: randombytes: 2.1.0 - solana-bankrun-darwin-arm64@0.3.1: - optional: true - - solana-bankrun-darwin-universal@0.3.1: - optional: true - - solana-bankrun-darwin-x64@0.3.1: - optional: true - - solana-bankrun-linux-x64-gnu@0.3.1: - optional: true - - solana-bankrun-linux-x64-musl@0.3.1: - optional: true - - solana-bankrun@0.3.1(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6): - dependencies: - '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@4.9.5)(utf-8-validate@6.0.6) - bs58: 4.0.1 - optionalDependencies: - solana-bankrun-darwin-arm64: 0.3.1 - solana-bankrun-darwin-universal: 0.3.1 - solana-bankrun-darwin-x64: 0.3.1 - solana-bankrun-linux-x64-gnu: 0.3.1 - solana-bankrun-linux-x64-musl: 0.3.1 - transitivePeerDependencies: - - bufferutil - - encoding - - typescript - - utf-8-validate - source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 @@ -2112,12 +1763,6 @@ snapshots: source-map@0.6.1: {} - stream-chain@2.2.5: {} - - stream-json@1.9.1: - dependencies: - stream-chain: 2.2.5 - string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -2133,8 +1778,6 @@ snapshots: strip-json-comments@3.1.1: {} - superstruct@2.0.2: {} - supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -2143,14 +1786,10 @@ snapshots: dependencies: has-flag: 4.0.0 - text-encoding-utf-8@1.0.2: {} - to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - tr46@0.0.3: {} - ts-mocha@10.1.0(mocha@9.2.2): dependencies: mocha: 9.2.2 @@ -2177,13 +1816,11 @@ snapshots: strip-bom: 3.0.0 optional: true - tslib@2.8.1: {} - type-detect@4.1.0: {} - typescript@4.9.5: {} + typescript@5.9.3: {} - undici-types@7.24.6: {} + undici-types@6.21.0: {} undici-types@8.7.0: {} @@ -2192,17 +1829,6 @@ snapshots: node-gyp-build: 4.8.4 optional: true - uuid@14.0.0: {} - - uuid@8.3.2: {} - - webidl-conversions@3.0.1: {} - - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - which@2.0.2: dependencies: isexe: 2.0.0 @@ -2217,11 +1843,6 @@ snapshots: wrappy@1.0.2: {} - ws@7.5.11(bufferutil@4.1.0)(utf-8-validate@6.0.6): - optionalDependencies: - bufferutil: 4.1.0 - utf-8-validate: 6.0.6 - ws@8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6): optionalDependencies: bufferutil: 4.1.0 diff --git a/tokens/token-2022/mint-close-authority/pinocchio/tests/test.ts b/tokens/token-2022/mint-close-authority/pinocchio/tests/test.ts index 4b72183ed..a4ec5e3a7 100644 --- a/tokens/token-2022/mint-close-authority/pinocchio/tests/test.ts +++ b/tokens/token-2022/mint-close-authority/pinocchio/tests/test.ts @@ -1,32 +1,23 @@ import { Buffer } from "node:buffer"; +import * as path from "node:path"; import { AccountRole, address, appendTransactionMessageInstruction, - blockhash, - createKeyPairSignerFromBytes, createTransactionMessage, generateKeyPairSigner, getAddressEncoder, - getTransactionEncoder, + lamports, pipe, setTransactionMessageFeePayerSigner, - setTransactionMessageLifetimeUsingBlockhash, signTransactionMessageWithSigners, } from "@solana/kit"; -// solana-bankrun@0.3.1's BanksClient API is still expressed in @solana/web3.js -// types: `start()` and `getAccount()` take a `PublicKey`, and -// `processTransaction()` takes a `VersionedTransaction`. Those three are the -// only web3.js touch-points — a thin interop shim around bankrun. Everything -// the test *builds* (addresses, the instruction, the transaction message, and -// signing) uses @solana/kit. -import { PublicKey, VersionedTransaction } from "@solana/web3.js"; import * as borsh from "borsh"; import { assert } from "chai"; -import { start } from "solana-bankrun"; +import { FailedTransactionMetadata, LiteSVM } from "litesvm"; -// The Token-2022 program is bundled with bankrun, so there is no fixture to -// load. Its ID is hard-coded here to avoid pulling in @solana/spl-token. +// LiteSVM's standard runtime bundles the SPL programs, so Token-2022 is already +// loaded — its ID is hard-coded here to avoid pulling in @solana/spl-token. const TOKEN_2022_PROGRAM_ID = address("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"); const SYSTEM_PROGRAM_ID = address("11111111111111111111111111111111"); const RENT_SYSVAR_ID = address("SysvarRent111111111111111111111111111111111"); @@ -48,32 +39,34 @@ const DECIMALS_OFFSET = 44; // in the base mint layout const MINT_CLOSE_AUTHORITY_EXTENSION = 3; const ACCOUNT_TYPE_MINT = 1; +// The compiled program artifact, produced by `build-and-test` into ./fixtures. +// The npm scripts always run from the package root, so resolve from the cwd. +const PROGRAM_SO = path.join( + process.cwd(), + "tests", + "fixtures", + "token_2022_mint_close_authority_pinocchio_program.so", +); + const addressEncoder = getAddressEncoder(); describe("Token-2022 Mint Close Authority (Pinocchio)", () => { - // bankrun's start() wants a web3.js PublicKey for the program id; convert it - // to a kit address for the instruction. - const programPubkey = PublicKey.unique(); - const PROGRAM_ID = address(programPubkey.toBase58()); - - let context: Awaited>; - let client: (typeof context)["banksClient"]; + let svm: LiteSVM; + let programId: ReturnType; - // A `describe` callback runs synchronously, so the async bankrun setup must - // live in a `before` hook — otherwise the `it` blocks register after Mocha - // has already collected the suite and nothing runs. before(async () => { - context = await start( - [{ name: "token_2022_mint_close_authority_pinocchio_program", programId: programPubkey }], - [], - ); - client = context.banksClient; + svm = new LiteSVM(); + // The program never asserts its own id, so any address works; a generated + // one keeps the test self-contained. + programId = (await generateKeyPairSigner()).address; + svm.addProgramFromFile(programId, PROGRAM_SO); }); it("Creates a Token-2022 mint with a close authority", async () => { const decimals = 9; - // bankrun funds a web3.js Keypair; re-key it as a kit signer so kit can sign. - const payer = await createKeyPairSignerFromBytes(context.payer.secretKey); + const payer = await generateKeyPairSigner(); + svm.airdrop(payer.address, lamports(1_000_000_000n)); + const mint = await generateKeyPairSigner(); // A distinct key for the close authority so the stored-authority assertion // verifies it is sourced from account index 2, not the mint authority/payer. @@ -82,7 +75,7 @@ describe("Token-2022 Mint Close Authority (Pinocchio)", () => { const data = Buffer.from(borsh.serialize(CreateTokenArgsSchema, { token_decimals: decimals })); const ix = { - programAddress: PROGRAM_ID, + programAddress: programId, accounts: [ { address: mint.address, role: AccountRole.WRITABLE_SIGNER, signer: mint }, // mint account { address: payer.address, role: AccountRole.READONLY }, // mint authority @@ -98,27 +91,22 @@ describe("Token-2022 Mint Close Authority (Pinocchio)", () => { const transactionMessage = pipe( createTransactionMessage({ version: 0 }), (m) => setTransactionMessageFeePayerSigner(payer, m), - (m) => - setTransactionMessageLifetimeUsingBlockhash( - { blockhash: blockhash(context.lastBlockhash), lastValidBlockHeight: 0n }, - m, - ), + (m) => svm.setTransactionMessageLifetimeUsingLatestBlockhash(m), (m) => appendTransactionMessageInstruction(ix, m), ); const signedTx = await signTransactionMessageWithSigners(transactionMessage); - const wireBytes = new Uint8Array(getTransactionEncoder().encode(signedTx)); - await client.processTransaction(VersionedTransaction.deserialize(wireBytes)); + const result = svm.sendTransaction(signedTx); + if (result instanceof FailedTransactionMetadata) { + throw new Error(`Transaction failed: ${result.err()}`); + } - const mintAccount = await client.getAccount(new PublicKey(mint.address)); - if (mintAccount === null) throw new Error("Mint account not found"); + const mintAccount = svm.getAccount(mint.address); + if (!mintAccount?.exists) throw new Error("Mint account not found"); const mintData = Buffer.from(mintAccount.data); // Owned by Token-2022, and sized for exactly one extension. - assert.deepEqual( - new Uint8Array(mintAccount.owner.toBytes()), - new Uint8Array(addressEncoder.encode(TOKEN_2022_PROGRAM_ID)), - ); + assert.equal(mintAccount.programAddress, TOKEN_2022_PROGRAM_ID); assert.equal(mintData.length, EXTENDED_MINT_SIZE); // Base mint fields were initialized. diff --git a/tokens/token-2022/mint-close-authority/pinocchio/tsconfig.json b/tokens/token-2022/mint-close-authority/pinocchio/tsconfig.json index f557bafa5..032d00180 100644 --- a/tokens/token-2022/mint-close-authority/pinocchio/tsconfig.json +++ b/tokens/token-2022/mint-close-authority/pinocchio/tsconfig.json @@ -2,9 +2,9 @@ "compilerOptions": { "types": ["mocha", "chai", "node"], "typeRoots": ["./node_modules/@types"], - "lib": ["es2020"], + "lib": ["es2022", "dom"], "module": "commonjs", - "target": "es2020", + "target": "es2022", "esModuleInterop": true } }