From ab2efaf564df98c1f826d3a0b863ed1a6d889d68 Mon Sep 17 00:00:00 2001 From: Perelyn <64838956+Perelyn-sama@users.noreply.github.com> Date: Tue, 25 Nov 2025 03:07:03 +0100 Subject: [PATCH 1/4] add pinocchio account data example --- Cargo.lock | 48 +- Cargo.toml | 4 +- basics/account-data/pinocchio/cicd.sh | 8 + basics/account-data/pinocchio/package.json | 23 + basics/account-data/pinocchio/pnpm-lock.yaml | 1352 +++++++++++++++++ .../account-data/pinocchio/program/Cargo.toml | 29 + .../account-data/pinocchio/program/src/lib.rs | 88 ++ .../pinocchio/program/tests/tests.rs | 113 ++ .../pinocchio/tests/index.test.ts | 130 ++ basics/account-data/pinocchio/tsconfig.json | 10 + 10 files changed, 1802 insertions(+), 3 deletions(-) create mode 100644 basics/account-data/pinocchio/cicd.sh create mode 100644 basics/account-data/pinocchio/package.json create mode 100644 basics/account-data/pinocchio/pnpm-lock.yaml create mode 100644 basics/account-data/pinocchio/program/Cargo.toml create mode 100644 basics/account-data/pinocchio/program/src/lib.rs create mode 100644 basics/account-data/pinocchio/program/tests/tests.rs create mode 100644 basics/account-data/pinocchio/tests/index.test.ts create mode 100644 basics/account-data/pinocchio/tsconfig.json diff --git a/Cargo.lock b/Cargo.lock index d47474bc0..b2ffac0de 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -26,6 +26,23 @@ dependencies = [ "solana-transaction", ] +[[package]] +name = "account-data-pinocchio-program" +version = "0.1.0" +dependencies = [ + "litesvm", + "pinocchio", + "pinocchio-log", + "pinocchio-system", + "solana-keypair", + "solana-message 3.0.1", + "solana-native-token 3.0.0", + "solana-pubkey 3.0.0", + "solana-signer", + "solana-system-interface 2.0.0", + "solana-transaction", +] + [[package]] name = "aead" version = "0.5.2" @@ -2102,9 +2119,9 @@ dependencies = [ [[package]] name = "pinocchio" -version = "0.8.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "530596fa307103e53257f2cf064815919ee7fbc4c7ab999f6f13cc7067c3aff1" +checksum = "5b971851087bc3699b001954ad02389d50c41405ece3548cbcafc88b3e20017a" [[package]] name = "pinocchio-log" @@ -2126,6 +2143,27 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "pinocchio-pubkey" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb0225638cadcbebae8932cb7f49cb5da7c15c21beb19f048f05a5ca7d93f065" +dependencies = [ + "five8_const", + "pinocchio", + "sha2-const-stable", +] + +[[package]] +name = "pinocchio-system" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2a6dad40b5e75d1486f021619c4bd504c34c1362c9b94ed7fa525b1cc63cc" +dependencies = [ + "pinocchio", + "pinocchio-pubkey", +] + [[package]] name = "pkcs8" version = "0.10.2" @@ -2613,6 +2651,12 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "sha2-const-stable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f179d4e11094a893b82fff208f74d448a7512f99f5a0acbd5c679b705f83ed9" + [[package]] name = "sha3" version = "0.10.8" diff --git a/Cargo.toml b/Cargo.toml index ad05f929c..6e76fa061 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,6 +2,7 @@ members = [ #basics "basics/account-data/native/program", + "basics/account-data/pinocchio/program", "basics/account-data/anchor/programs/anchor-program-example", "basics/checking-accounts/native/program", "basics/checking-accounts/anchor/programs/anchor-program-example", @@ -65,8 +66,9 @@ spl-associated-token-account-interface = "2.0.0" spl-token-2022-interface = "2.0.0" # pinocchio -pinocchio = "=0.8.1" +pinocchio = "0.9.2" pinocchio-log = "0.4.0" +pinocchio-system = "0.4.0" # testing litesvm = "0.8.1" diff --git a/basics/account-data/pinocchio/cicd.sh b/basics/account-data/pinocchio/cicd.sh new file mode 100644 index 000000000..b2407c75f --- /dev/null +++ b/basics/account-data/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/basics/account-data/pinocchio/package.json b/basics/account-data/pinocchio/package.json new file mode 100644 index 000000000..0423bc543 --- /dev/null +++ b/basics/account-data/pinocchio/package.json @@ -0,0 +1,23 @@ +{ + "type": "module", + "scripts": { + "test": "pnpm ts-mocha -p ./tsconfig.json -t 1000000 ./tests/index.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/hello_solana_program_pinocchio.so" + }, + "dependencies": { + "@solana/web3.js": "^1.47.3" + }, + "devDependencies": { + "@types/bn.js": "^5.1.0", + "@types/chai": "^4.3.1", + "@types/mocha": "^9.1.1", + "@types/node": "^22.15.2", + "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/basics/account-data/pinocchio/pnpm-lock.yaml b/basics/account-data/pinocchio/pnpm-lock.yaml new file mode 100644 index 000000000..187e1e651 --- /dev/null +++ b/basics/account-data/pinocchio/pnpm-lock.yaml @@ -0,0 +1,1352 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@solana/web3.js': + specifier: ^1.47.3 + version: 1.98.2(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10) + devDependencies: + '@types/bn.js': + specifier: ^5.1.0 + version: 5.1.6 + '@types/chai': + specifier: ^4.3.1 + version: 4.3.20 + '@types/mocha': + specifier: ^9.1.1 + version: 9.1.1 + '@types/node': + specifier: ^22.15.2 + version: 22.15.2 + 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.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10) + 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.27.0': + resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==} + engines: {node: '>=6.9.0'} + + '@noble/curves@1.9.0': + resolution: {integrity: sha512-7YDlXiNMdO1YZeH6t/kvopHHbIZzlxrCV9WLqCY6QhcXOoXiNCMDqJIglZ9Yjx5+w7Dz30TITFrlTjnRg7sKEg==} + 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.1.0': + resolution: {integrity: sha512-SR7pKtmJBg2mhmkel2NeHA1pz06QeQXdMv8WJoIR9m8F/hw80K/612uaYbwTt2nkK0jg/Qn/rNSd7EcJ4SBGjw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5' + + '@solana/codecs-numbers@2.1.0': + resolution: {integrity: sha512-XMu4yw5iCgQnMKsxSWPPOrGgtaohmupN3eyAtYv3K3C/MJEc5V90h74k5B1GUCiHvcrdUDO9RclNjD9lgbjFag==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5' + + '@solana/errors@2.1.0': + resolution: {integrity: sha512-l+GxAv0Ar4d3c3PlZdA9G++wFYZREEbbRyAFP8+n8HSg0vudCuzogh/13io6hYuUhG/9Ve8ARZNamhV7UScKNw==} + engines: {node: '>=20.18.0'} + hasBin: true + peerDependencies: + typescript: '>=5' + + '@solana/web3.js@1.98.2': + resolution: {integrity: sha512-BqVwEG+TaG2yCkBMbD3C4hdpustR4FpuUFRPUmqRZYYlPI9Hg4XMWxHWOWRzHE9Lkc9NDjzXFX7lDXSgzC7R1A==} + + '@swc/helpers@0.5.17': + resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} + + '@types/bn.js@5.1.6': + resolution: {integrity: sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==} + + '@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@22.15.2': + resolution: {integrity: sha512-uKXqKN9beGoMdBfcaTY1ecwz6ctxuJAcUlwE55938g0ZJ8lRxwAZqRz2AJ4pzpt5dHdTPMB863UZ0ESiFUcP7A==} + + '@types/uuid@8.3.4': + resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} + + '@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.1: + resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} + + borsh@0.7.0: + resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + 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.0.9: + resolution: {integrity: sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==} + 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.4.1: + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} + 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@13.1.0: + resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} + engines: {node: '>=18'} + + 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.0: + resolution: {integrity: sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==} + 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.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + 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: Glob versions prior to v9 are no longer supported + + 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.2.0: + resolution: {integrity: sha512-VfJ9t1YLwacIubLhONk0KFeosUBwstRWQ0IRT1KDjEjnVnSOVHC3uwugyV7L0c7R9lpVyrUGT2XWiBA1UTtpyg==} + 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.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + 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.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + 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'} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + rpc-websockets@9.1.1: + resolution: {integrity: sha512-1IXGM/TfPT6nfYMIXkJdzn+L4JEsmb0FL1O2OBjaH03V3yuUDdKFulGLMFG6ErV+8pZ5HVC0limve01RyO+saA==} + + 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@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + + utf-8-validate@5.0.10: + resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} + engines: {node: '>=6.14.2'} + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + 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.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.18.1: + resolution: {integrity: sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==} + 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.27.0': + dependencies: + regenerator-runtime: 0.14.1 + + '@noble/curves@1.9.0': + 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.1.0(typescript@4.9.5)': + dependencies: + '@solana/errors': 2.1.0(typescript@4.9.5) + typescript: 4.9.5 + + '@solana/codecs-numbers@2.1.0(typescript@4.9.5)': + dependencies: + '@solana/codecs-core': 2.1.0(typescript@4.9.5) + '@solana/errors': 2.1.0(typescript@4.9.5) + typescript: 4.9.5 + + '@solana/errors@2.1.0(typescript@4.9.5)': + dependencies: + chalk: 5.4.1 + commander: 13.1.0 + typescript: 4.9.5 + + '@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)': + dependencies: + '@babel/runtime': 7.27.0 + '@noble/curves': 1.9.0 + '@noble/hashes': 1.8.0 + '@solana/buffer-layout': 4.0.1 + '@solana/codecs-numbers': 2.1.0(typescript@4.9.5) + agentkeepalive: 4.6.0 + bn.js: 5.2.1 + borsh: 0.7.0 + bs58: 4.0.1 + buffer: 6.0.3 + fast-stable-stringify: 1.0.0 + jayson: 4.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + node-fetch: 2.7.0 + rpc-websockets: 9.1.1 + superstruct: 2.0.2 + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate + + '@swc/helpers@0.5.17': + dependencies: + tslib: 2.8.1 + + '@types/bn.js@5.1.6': + dependencies: + '@types/node': 22.15.2 + + '@types/chai@4.3.20': {} + + '@types/connect@3.4.38': + dependencies: + '@types/node': 22.15.2 + + '@types/json5@0.0.29': + optional: true + + '@types/mocha@9.1.1': {} + + '@types/node@12.20.55': {} + + '@types/node@22.15.2': + dependencies: + undici-types: 6.21.0 + + '@types/uuid@8.3.4': {} + + '@types/ws@7.4.7': + dependencies: + '@types/node': 22.15.2 + + '@types/ws@8.18.1': + dependencies: + '@types/node': 22.15.2 + + '@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.1 + + 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.1: {} + + borsh@0.7.0: + dependencies: + bn.js: 5.2.1 + bs58: 4.0.1 + text-encoding-utf-8: 1.0.2 + + brace-expansion@1.1.11: + 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.0.9: + 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.4.1: {} + + 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@13.1.0: {} + + 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.0: {} + + 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.1: {} + + 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.2 + 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.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)): + dependencies: + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) + + jayson@4.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10): + 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.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + json-stringify-safe: 5.0.1 + stream-json: 1.9.1 + uuid: 8.3.2 + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) + 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.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@4.2.1: + dependencies: + brace-expansion: 1.1.11 + + 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.1: {} + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + regenerator-runtime@0.14.1: {} + + require-directory@2.1.1: {} + + rpc-websockets@9.1.1: + dependencies: + '@swc/helpers': 0.5.17 + '@types/uuid': 8.3.4 + '@types/ws': 8.18.1 + buffer: 6.0.3 + eventemitter3: 5.0.1 + uuid: 8.3.2 + ws: 8.18.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + optionalDependencies: + bufferutil: 4.0.9 + utf-8-validate: 5.0.10 + + 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.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10): + dependencies: + '@solana/web3.js': 1.98.2(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10) + 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.0 + 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@6.21.0: {} + + utf-8-validate@5.0.10: + dependencies: + node-gyp-build: 4.8.4 + optional: true + + 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.10(bufferutil@4.0.9)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.9 + utf-8-validate: 5.0.10 + + ws@8.18.1(bufferutil@4.0.9)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.9 + utf-8-validate: 5.0.10 + + y18n@5.0.8: {} + + yargs-parser@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/basics/account-data/pinocchio/program/Cargo.toml b/basics/account-data/pinocchio/program/Cargo.toml new file mode 100644 index 000000000..c79283770 --- /dev/null +++ b/basics/account-data/pinocchio/program/Cargo.toml @@ -0,0 +1,29 @@ +[package] +name = "account-data-pinocchio-program" +version = "0.1.0" +edition = "2021" + +[dependencies] +pinocchio.workspace = true +pinocchio-log.workspace = true +pinocchio-system.workspace = true + +[dev-dependencies] +litesvm = "0.8.1" +solana-keypair = "3.0.1" +solana-message = "3.0.1" +solana-native-token = "3.0.0" +solana-pubkey = "3.0.0" +solana-signer = "3.0.0" +solana-transaction = "3.0.1" +solana-system-interface.workspace = true + +[lib] +crate-type = ["cdylib", "rlib"] + +[features] +custom-heap = [] +custom-panic = [] + +[lints.rust] +unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/basics/account-data/pinocchio/program/src/lib.rs b/basics/account-data/pinocchio/program/src/lib.rs new file mode 100644 index 000000000..5861c7fa7 --- /dev/null +++ b/basics/account-data/pinocchio/program/src/lib.rs @@ -0,0 +1,88 @@ +#![no_std] +#![allow(deprecated)] + +use pinocchio::{ + account_info::AccountInfo, + entrypoint, nostd_panic_handler, + program_error::ProgramError, + pubkey::Pubkey, + sysvars::rent::{ + Rent, DEFAULT_BURN_PERCENT, DEFAULT_EXEMPTION_THRESHOLD, DEFAULT_LAMPORTS_PER_BYTE_YEAR, + }, + ProgramResult, +}; +use pinocchio_system::instructions::CreateAccount; + +entrypoint!(process_instruction); +nostd_panic_handler!(); + +fn process_instruction( + program_id: &Pubkey, + accounts: &[AccountInfo], + instruction_data: &[u8], +) -> ProgramResult { + match instruction_data.split_first() { + Some((0, data)) => process_create(program_id, accounts, data), + _ => Err(ProgramError::InvalidInstructionData), + } +} + +pub struct AddressInfo<'a> { + pub name: &'a [u8], + pub house_number: u8, + pub street: &'a [u8], + pub city: &'a [u8], +} + +impl<'a> AddressInfo<'a> { + const LEN: usize = 51; +} + +fn process_create( + program_id: &Pubkey, + accounts: &[AccountInfo], + instruction_data: &[u8], +) -> ProgramResult { + let [address_info, payer, system_program] = accounts else { + return Err(ProgramError::NotEnoughAccountKeys); + }; + + if !payer.is_signer() { + return Err(ProgramError::InvalidAccountOwner); + } + + if address_info.lamports().ne(&0) { + return Err(ProgramError::InvalidAccountData); + }; + + if !pinocchio_system::check_id(system_program.key()) { + return Err(ProgramError::InvalidAccountData); + } + + if instruction_data.len() < AddressInfo::LEN { + return Err(ProgramError::InvalidInstructionData); + } + + let rent = Rent { + lamports_per_byte_year: DEFAULT_LAMPORTS_PER_BYTE_YEAR, + exemption_threshold: DEFAULT_EXEMPTION_THRESHOLD, + burn_percent: DEFAULT_BURN_PERCENT, + }; + + let account_span = AddressInfo::LEN; + let lamports_required = rent.minimum_balance(account_span); + + CreateAccount { + from: payer, + to: address_info, + lamports: lamports_required, + space: account_span as u64, + owner: program_id, + } + .invoke()?; + + let mut address_info_data = address_info.try_borrow_mut_data()?; + address_info_data.copy_from_slice(&instruction_data); + + Ok(()) +} diff --git a/basics/account-data/pinocchio/program/tests/tests.rs b/basics/account-data/pinocchio/program/tests/tests.rs new file mode 100644 index 000000000..e6a93e3a3 --- /dev/null +++ b/basics/account-data/pinocchio/program/tests/tests.rs @@ -0,0 +1,113 @@ +use account_data_pinocchio_program::AddressInfo; +use litesvm::LiteSVM; + +use solana_keypair::Keypair; +use solana_message::{AccountMeta, Instruction}; +use solana_native_token::LAMPORTS_PER_SOL; +use solana_pubkey::Pubkey; +use solana_signer::Signer; +use solana_transaction::Transaction; + +#[test] +fn test_account_data() { + let mut svm = LiteSVM::new(); + + let address_info_account = Keypair::new(); + let payer = Keypair::new(); + let program_id = Pubkey::new_unique(); + + svm.airdrop(&payer.pubkey(), LAMPORTS_PER_SOL * 10).unwrap(); + + let program_bytes = include_bytes!("../../tests/fixtures/account_data_pinocchio_program.so"); + + svm.add_program(program_id, program_bytes).unwrap(); + + let accounts = vec![ + AccountMeta::new(address_info_account.pubkey(), true), + AccountMeta::new(payer.pubkey(), true), + AccountMeta::new(solana_system_interface::program::ID, false), + ]; + + let data = AddressInfo { + name: "Joe C".as_bytes(), + house_number: 136, + street: "Mile High Dr.".as_bytes(), + city: "Solana Beach".as_bytes(), + }; + + let ix = Instruction { + program_id, + accounts, + data: to_bytes(&data), + }; + + let tx = Transaction::new_signed_with_payer( + &[ix], + Some(&payer.pubkey()), + &[&payer, &address_info_account], + svm.latest_blockhash(), + ); + + let res = svm.send_transaction(tx); + assert!(res.is_ok()); + + let address_info_account_data = &svm + .get_account(&address_info_account.pubkey()) + .unwrap() + .data; + + let address_info = AddressInfo { + name: &address_info_account_data[0..16], + house_number: address_info_account_data[17], + street: &address_info_account_data[18..34], + city: &address_info_account_data[35..51], + }; + + let mut name_str = String::from_utf8(address_info.name.to_vec()).unwrap(); + name_str.retain(|c| c != '\0'); + + let mut street_str = String::from_utf8(address_info.street.to_vec()).unwrap(); + street_str.retain(|c| c != '\0'); + + let mut city_str = String::from_utf8(address_info.city.to_vec()).unwrap(); + city_str.retain(|c| c != '\0'); + + assert_eq!(name_str, String::from_utf8(data.name.to_vec()).unwrap()); + assert_eq!(street_str, String::from_utf8(data.street.to_vec()).unwrap()); + assert_eq!(city_str, String::from_utf8(data.city.to_vec()).unwrap()); +} + +fn to_bytes(address_info_data: &AddressInfo) -> Vec { + let mut data = Vec::new(); + + data.push(0); + + // Pad name to 16 bytes (data[0..16]) + let mut name = [0u8; 16]; + let name_len = address_info_data.name.len().min(16); + name[..name_len].copy_from_slice(&address_info_data.name[..name_len]); + data.extend_from_slice(&name); + + // Add 1 byte padding at index 16 + data.push(0); + + // Add house_number at index 17 + data.push(address_info_data.house_number); + + // Pad street to 16 bytes (data[18..34]) + let mut street = [0u8; 16]; + let street_len = address_info_data.street.len().min(16); + street[..street_len].copy_from_slice(&address_info_data.street[..street_len]); + data.extend_from_slice(&street); + + // Add 1 byte padding at index 34 + data.push(0); + + // Pad city to 16 bytes (data[35..51]) + let mut city = [0u8; 16]; + let city_len = address_info_data.city.len().min(16); + city[..city_len].copy_from_slice(&address_info_data.city[..city_len]); + data.extend_from_slice(&city); + + data +} diff --git a/basics/account-data/pinocchio/tests/index.test.ts b/basics/account-data/pinocchio/tests/index.test.ts new file mode 100644 index 000000000..07be2d7d5 --- /dev/null +++ b/basics/account-data/pinocchio/tests/index.test.ts @@ -0,0 +1,130 @@ +import { Buffer } from "node:buffer"; +import { describe, test } from "node:test"; +import { + Keypair, + PublicKey, + SystemProgram, + Transaction, + TransactionInstruction, +} from "@solana/web3.js"; +import { start } from "solana-bankrun"; + +interface AddressInfo { + name: string; + house_number: number; + street: string; + city: string; +} + +function toBytes(addressInfo: AddressInfo): Buffer { + const data: number[] = []; + + // Add instruction discriminator + data.push(0); + + // Pad name to 16 bytes (data[1..17]) + const nameBytes = Buffer.from(addressInfo.name, "utf-8"); + const namePadded = Buffer.alloc(16); + nameBytes.copy(namePadded, 0, 0, Math.min(nameBytes.length, 16)); + data.push(...namePadded); + + // Add 1 byte padding at index 17 + data.push(0); + + // Add house_number at index 18 + data.push(addressInfo.house_number); + + // Pad street to 16 bytes (data[19..35]) + const streetBytes = Buffer.from(addressInfo.street, "utf-8"); + const streetPadded = Buffer.alloc(16); + streetBytes.copy(streetPadded, 0, 0, Math.min(streetBytes.length, 16)); + data.push(...streetPadded); + + // Add 1 byte padding at index 35 + data.push(0); + + // Pad city to 16 bytes (data[36..52]) + const cityBytes = Buffer.from(addressInfo.city, "utf-8"); + const cityPadded = Buffer.alloc(16); + cityBytes.copy(cityPadded, 0, 0, Math.min(cityBytes.length, 16)); + data.push(...cityPadded); + + return Buffer.from(data); +} + +function fromBytes(buffer: Buffer): AddressInfo { + // name: bytes 0..16 + const nameBytes = buffer.subarray(0, 16); + const name = nameBytes.toString("utf-8").replace(/\0/g, ""); + + // house_number: byte 17 + const house_number = buffer[17]; + + // street: bytes 18..34 + const streetBytes = buffer.subarray(18, 34); + const street = streetBytes.toString("utf-8").replace(/\0/g, ""); + + // city: bytes 35..51 + const cityBytes = buffer.subarray(35, 51); + const city = cityBytes.toString("utf-8").replace(/\0/g, ""); + + return { name, house_number, street, city }; +} + +describe("Account Data!", async () => { + const addressInfoAccount = Keypair.generate(); + const PROGRAM_ID = PublicKey.unique(); + const context = await start( + [{ name: "account_data_pinocchio_program", programId: PROGRAM_ID }], + [], + ); + const client = context.banksClient; + + test("Create the address info account", async () => { + const payer = context.payer; + + console.log(`Program Address : ${PROGRAM_ID}`); + console.log(`Payer Address : ${payer.publicKey}`); + console.log(`Address Info Acct : ${addressInfoAccount.publicKey}`); + + const addressInfo: AddressInfo = { + name: "Joe C", + house_number: 136, + street: "Mile High Dr.", + city: "Solana Beach", + }; + + const ix = new TransactionInstruction({ + keys: [ + { + pubkey: addressInfoAccount.publicKey, + isSigner: true, + isWritable: true, + }, + { pubkey: payer.publicKey, isSigner: true, isWritable: true }, + { pubkey: SystemProgram.programId, isSigner: false, isWritable: false }, + ], + programId: PROGRAM_ID, + data: toBytes(addressInfo), + }); + + const blockhash = context.lastBlockhash; + + const tx = new Transaction(); + tx.recentBlockhash = blockhash; + tx.add(ix).sign(payer, addressInfoAccount); + await client.processTransaction(tx); + }); + + test("Read the new account's data", async () => { + const accountInfo = await client.getAccount(addressInfoAccount.publicKey); + + const readAddressInfo = fromBytes(Buffer.from(accountInfo.data)); + + console.log(`Name : ${readAddressInfo.name}`); + console.log(`House Num: ${readAddressInfo.house_number}`); + console.log(`Street : ${readAddressInfo.street}`); + console.log(`City : ${readAddressInfo.city}`); + }); +}); + diff --git a/basics/account-data/pinocchio/tsconfig.json b/basics/account-data/pinocchio/tsconfig.json new file mode 100644 index 000000000..8c20b2236 --- /dev/null +++ b/basics/account-data/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 864b6a6640c32379ddb1d6c699a130c223e7ec4e Mon Sep 17 00:00:00 2001 From: Perelyn <64838956+Perelyn-sama@users.noreply.github.com> Date: Tue, 25 Nov 2025 03:10:21 +0100 Subject: [PATCH 2/4] Update lib.rs --- basics/account-data/pinocchio/program/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basics/account-data/pinocchio/program/src/lib.rs b/basics/account-data/pinocchio/program/src/lib.rs index 5861c7fa7..f5aec58d9 100644 --- a/basics/account-data/pinocchio/program/src/lib.rs +++ b/basics/account-data/pinocchio/program/src/lib.rs @@ -82,7 +82,7 @@ fn process_create( .invoke()?; let mut address_info_data = address_info.try_borrow_mut_data()?; - address_info_data.copy_from_slice(&instruction_data); + address_info_data.copy_from_slice(instruction_data); Ok(()) } From 593aae81bb76c14f30aa7082034c9ed3fa261928 Mon Sep 17 00:00:00 2001 From: Perelyn <64838956+Perelyn-sama@users.noreply.github.com> Date: Wed, 26 Nov 2025 00:29:21 +0100 Subject: [PATCH 3/4] Create solana-pinocchio.yml --- .github/workflows/solana-pinocchio.yml | 268 +++++++++++++++++++++++++ 1 file changed, 268 insertions(+) create mode 100644 .github/workflows/solana-pinocchio.yml diff --git a/.github/workflows/solana-pinocchio.yml b/.github/workflows/solana-pinocchio.yml new file mode 100644 index 000000000..f6cb1e7bf --- /dev/null +++ b/.github/workflows/solana-pinocchio.yml @@ -0,0 +1,268 @@ +name: Pinocchio + +on: + schedule: + - cron: "0 0 * * *" + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened] + branches: + - main + +env: + MAX_JOBS: 64 + MIN_PROJECTS_PER_JOB: 4 + MIN_PROJECTS_FOR_MATRIX: 4 + +jobs: + changes: + runs-on: ubuntu-latest + permissions: + pull-requests: read + outputs: + changed_projects: ${{ steps.analyze.outputs.changed_projects }} + total_projects: ${{ steps.analyze.outputs.total_projects }} + matrix: ${{ steps.matrix.outputs.matrix }} + steps: + - uses: actions/checkout@v4 + - uses: dorny/paths-filter@v3 + id: changes + if: github.event_name == 'pull_request' + with: + list-files: shell + filters: | + pinocchio: + - added|modified: '**/pinocchio/**' + workflow: + - added|modified: '.github/workflows/solana-pinocchio.yml' + - name: Analyze Changes + id: analyze + run: | + # Generate ignore pattern, excluding comments + ignore_pattern=$(grep -v '^#' .github/.ghaignore | grep -v '^$' | tr '\n' '|' | sed 's/|$//') + echo "Ignore pattern: $ignore_pattern" + + function get_projects() { + find . -type d -name "pinocchio" | grep -vE "$ignore_pattern" | sort + } + + # Determine which projects to build and test + if [[ "${{ github.event_name }}" == "push" || "${{ github.event_name }}" == "schedule" || "${{ steps.changes.outputs.workflow }}" == "true" ]]; then + projects=$(get_projects) + elif [[ "${{ steps.changes.outputs.pinocchio }}" == "true" ]]; then + changed_files=(${{ steps.changes.outputs.pinocchio_files }}) + projects=$(for file in "${changed_files[@]}"; do dirname "${file}" | grep pinocchio | sed 's#/pinocchio/.*#/pinocchio#g'; done | grep -vE "$ignore_pattern" | sort -u) + else + projects="" + fi + + # Output project information + if [[ -n "$projects" ]]; then + echo "Projects to build and test" + echo "$projects" + total_projects=$(echo "$projects" | wc -l) + echo "Total projects: $total_projects" + echo "total_projects=$total_projects" >> $GITHUB_OUTPUT + echo "changed_projects=$(echo "$projects" | jq -R -s -c 'split("\n")[:-1]')" >> $GITHUB_OUTPUT + else + echo "No projects to build and test." + echo "total_projects=0" >> $GITHUB_OUTPUT + echo "changed_projects=[]" >> $GITHUB_OUTPUT + fi + - name: Generate matrix + id: matrix + run: | + total_projects=${{ steps.analyze.outputs.total_projects }} + max_jobs=${{ env.MAX_JOBS }} + min_projects_per_job=${{ env.MIN_PROJECTS_PER_JOB }} + min_projects_for_matrix=${{ env.MIN_PROJECTS_FOR_MATRIX }} + + if [ "$total_projects" -lt "$min_projects_for_matrix" ]; then + echo "matrix=[0]" >> $GITHUB_OUTPUT + else + projects_per_job=$(( (total_projects + max_jobs - 1) / max_jobs )) + projects_per_job=$(( projects_per_job > min_projects_per_job ? projects_per_job : min_projects_per_job )) + num_jobs=$(( (total_projects + projects_per_job - 1) / projects_per_job )) + + indices=$(seq 0 $(( num_jobs - 1 ))) + echo "matrix=[$(echo $indices | tr ' ' ',')]" >> $GITHUB_OUTPUT + fi + + build-and-test: + needs: changes + if: needs.changes.outputs.total_projects != '0' + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + index: ${{ fromJson(needs.changes.outputs.matrix) }} + name: build-and-test-group-${{ matrix.index }} + outputs: + failed_projects: ${{ steps.set-failed.outputs.failed_projects }} + steps: + - uses: actions/checkout@v4 + - name: Use Node.js + uses: actions/setup-node@v4 + with: + node-version: "lts/*" + check-latest: true + - name: Setup build environment + id: setup + run: | + # Create the build and test function + cat << 'EOF' > build_and_test.sh + function build_and_test() { + local project=$1 + local solana_version=$2 + echo "Building and Testing $project with Solana $solana_version" + cd "$project" || return 1 + + # Install dependencies + if ! pnpm install --frozen-lockfile; then + echo "::error::pnpm install failed for $project" + echo "$project: pnpm install failed with $solana_version" >> $GITHUB_WORKSPACE/failed_projects.txt + cd - > /dev/null + return 1 + fi + + # Build + if ! pnpm build; then + echo "::error::build failed for $project" + echo "$project: build failed with $solana_version" >> $GITHUB_WORKSPACE/failed_projects.txt + cd - > /dev/null + return 1 + fi + + # Test + if ! pnpm build-and-test; then + echo "::error::tests failed for $project" + echo "$project: tests failed with $solana_version" >> $GITHUB_WORKSPACE/failed_projects.txt + cd - > /dev/null + return 1 + fi + + # Run Rust unit tests + if [ -d "program" ]; then + echo "Running Rust unit tests for $project" + if ! cargo test --manifest-path=./program/Cargo.toml; then + echo "::error::Rust unit tests failed for $project" + echo "$project: Rust unit tests failed with $solana_version" >> $GITHUB_WORKSPACE/failed_projects.txt + cd - > /dev/null + return 1 + fi + fi + + echo "Build and tests succeeded for $project with $solana_version version." + cd - > /dev/null + return 0 + } + + function process_projects() { + local solana_version=$1 + + readarray -t all_projects < <(echo '${{ needs.changes.outputs.changed_projects }}' | jq -r '.[]?') + start_index=$(( ${{ matrix.index }} * ${{ env.MIN_PROJECTS_PER_JOB }} )) + end_index=$(( start_index + ${{ env.MIN_PROJECTS_PER_JOB }} )) + end_index=$(( end_index > ${{ needs.changes.outputs.total_projects }} ? ${{ needs.changes.outputs.total_projects }} : end_index )) + + echo "Projects to build and test in this job" + for i in $(seq $start_index $(( end_index - 1 ))); do + echo "${all_projects[$i]}" + done + + failed=false + for i in $(seq $start_index $(( end_index - 1 ))); do + echo "::group::Building and testing ${all_projects[$i]}" + if ! build_and_test "${all_projects[$i]}" "$solana_version"; then + failed=true + fi + echo "::endgroup::" + done + + return $([ "$failed" = true ] && echo 1 || echo 0) + } + EOF + + # Make the script executable + chmod +x build_and_test.sh + + # Install pnpm + npm install --global pnpm + - name: Setup Solana Stable + uses: heyAyushh/setup-solana@v2.02 + with: + solana-cli-version: stable + - name: Build and Test with Stable + run: | + source build_and_test.sh + solana -V + rustc -V + process_projects "stable" + - name: Setup Solana Beta + uses: heyAyushh/setup-solana@v2.02 + with: + solana-cli-version: beta + - name: Build and Test with Beta + continue-on-error: true + run: | + source build_and_test.sh + solana -V + rustc -V + process_projects "beta" + + - name: Set failed projects output + id: set-failed + if: failure() + run: | + if [ -f "$GITHUB_WORKSPACE/failed_projects.txt" ]; then + failed_projects=$(cat $GITHUB_WORKSPACE/failed_projects.txt | jq -R -s -c 'split("\n")[:-1]') + echo "failed_projects=$failed_projects" >> $GITHUB_OUTPUT + else + echo "failed_projects=[]" >> $GITHUB_OUTPUT + fi + + summary: + needs: [changes, build-and-test] + if: always() + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Create job summary + run: | + echo "## Pinocchio Workflow Summary" >> $GITHUB_STEP_SUMMARY + echo "- Total projects: ${{ needs.changes.outputs.total_projects }}" >> $GITHUB_STEP_SUMMARY + + # List all processed projects + echo "
" >> $GITHUB_STEP_SUMMARY + echo "Projects processed (click to expand)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '${{ needs.changes.outputs.changed_projects }}' | jq -r '.[]' | while read project; do + echo "- $project" >> $GITHUB_STEP_SUMMARY + done + echo "" >> $GITHUB_STEP_SUMMARY + echo "
" >> $GITHUB_STEP_SUMMARY + + # Report build and test results + if [[ "${{ needs.build-and-test.result }}" == "failure" ]]; then + echo "## :x: Build or tests failed" >> $GITHUB_STEP_SUMMARY + echo "
" >> $GITHUB_STEP_SUMMARY + echo "Failed projects (click to expand)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + failed_projects='${{ needs.build-and-test.outputs.failed_projects }}' + if [[ -n "$failed_projects" ]]; then + echo "$failed_projects" | jq -r '.[]' | while IFS=: read -r project failure_reason; do + echo "- **$project**" >> $GITHUB_STEP_SUMMARY + echo " - Failure reason: $failure_reason" >> $GITHUB_STEP_SUMMARY + done + else + echo "No failed projects reported. This might indicate an unexpected error in the workflow." >> $GITHUB_STEP_SUMMARY + fi + echo "" >> $GITHUB_STEP_SUMMARY + echo "
" >> $GITHUB_STEP_SUMMARY + elif [[ "${{ needs.build-and-test.result }}" == "success" ]]; then + echo "## :white_check_mark: All builds and tests passed" >> $GITHUB_STEP_SUMMARY + else + echo "## :warning: Build and test job was skipped or canceled" >> $GITHUB_STEP_SUMMARY + fi From 6dde3c9b4be6738e1e617a388bc182d71788de21 Mon Sep 17 00:00:00 2001 From: Perelyn <64838956+Perelyn-sama@users.noreply.github.com> Date: Wed, 26 Nov 2025 01:21:59 +0100 Subject: [PATCH 4/4] fix CI errors - update hello solana pinocchio packages - rename pblock/pinocchio to pino --- basics/hello-solana/pinocchio/package.json | 18 +- basics/hello-solana/pinocchio/pnpm-lock.yaml | 163 +++++++++--------- .../{pinocchio => pino}/Cargo.toml | 0 .../{pinocchio => pino}/cli/Cargo.toml | 0 .../{pinocchio => pino}/cli/src/main.rs | 0 .../pblock-list/{pinocchio => pino}/codama.ts | 0 .../{pinocchio => pino}/package.json | 0 .../{pinocchio => pino}/program/Cargo.toml | 0 .../{pinocchio => pino}/program/src/error.rs | 0 .../program/src/instructions/block_wallet.rs | 0 .../program/src/instructions/init.rs | 0 .../program/src/instructions/mod.rs | 0 .../src/instructions/setup_extra_metas.rs | 0 .../program/src/instructions/tx_hook.rs | 0 .../src/instructions/unblock_wallet.rs | 0 .../{pinocchio => pino}/program/src/lib.rs | 0 .../program/src/state/config.rs | 0 .../program/src/state/mod.rs | 0 .../program/src/state/wallet_block.rs | 0 .../program/src/token2022_utils.rs | 0 .../pblock-list/{pinocchio => pino}/readme.md | 0 .../{pinocchio => pino}/sdk/rust/Cargo.toml | 0 .../sdk/rust/src/client/accounts/config.rs | 0 .../rust/src/client/accounts/extra_metas.rs | 0 .../sdk/rust/src/client/accounts/mod.rs | 0 .../rust/src/client/accounts/wallet_block.rs | 0 .../sdk/rust/src/client/errors/mod.rs | 0 .../src/client/instructions/block_wallet.rs | 0 .../sdk/rust/src/client/instructions/init.rs | 0 .../sdk/rust/src/client/instructions/mod.rs | 0 .../client/instructions/setup_extra_metas.rs | 0 .../src/client/instructions/unblock_wallet.rs | 0 .../sdk/rust/src/client/mod.rs | 0 .../sdk/rust/src/client/programs.rs | 0 .../sdk/rust/src/client/shared.rs | 0 .../{pinocchio => pino}/sdk/rust/src/lib.rs | 0 .../sdk/ts/src/accounts/config.ts | 0 .../sdk/ts/src/accounts/extraMetas.ts | 0 .../sdk/ts/src/accounts/index.ts | 0 .../sdk/ts/src/accounts/walletBlock.ts | 0 .../{pinocchio => pino}/sdk/ts/src/index.ts | 0 .../sdk/ts/src/instructions/blockWallet.ts | 0 .../sdk/ts/src/instructions/index.ts | 0 .../sdk/ts/src/instructions/init.ts | 0 .../ts/src/instructions/setupExtraMetas.ts | 0 .../sdk/ts/src/instructions/unblockWallet.ts | 0 .../sdk/ts/src/pdas/config.ts | 0 .../sdk/ts/src/pdas/extraMetas.ts | 0 .../sdk/ts/src/pdas/index.ts | 0 .../sdk/ts/src/pdas/walletBlock.ts | 0 .../sdk/ts/src/programs/blockList.ts | 0 .../sdk/ts/src/programs/index.ts | 0 .../sdk/ts/src/shared/index.ts | 0 .../{pinocchio => pino}/tsconfig.json | 0 54 files changed, 87 insertions(+), 94 deletions(-) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/Cargo.toml (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/cli/Cargo.toml (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/cli/src/main.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/codama.ts (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/package.json (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/program/Cargo.toml (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/program/src/error.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/program/src/instructions/block_wallet.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/program/src/instructions/init.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/program/src/instructions/mod.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/program/src/instructions/setup_extra_metas.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/program/src/instructions/tx_hook.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/program/src/instructions/unblock_wallet.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/program/src/lib.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/program/src/state/config.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/program/src/state/mod.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/program/src/state/wallet_block.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/program/src/token2022_utils.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/readme.md (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/rust/Cargo.toml (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/rust/src/client/accounts/config.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/rust/src/client/accounts/extra_metas.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/rust/src/client/accounts/mod.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/rust/src/client/accounts/wallet_block.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/rust/src/client/errors/mod.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/rust/src/client/instructions/block_wallet.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/rust/src/client/instructions/init.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/rust/src/client/instructions/mod.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/rust/src/client/instructions/setup_extra_metas.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/rust/src/client/instructions/unblock_wallet.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/rust/src/client/mod.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/rust/src/client/programs.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/rust/src/client/shared.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/rust/src/lib.rs (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/ts/src/accounts/config.ts (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/ts/src/accounts/extraMetas.ts (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/ts/src/accounts/index.ts (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/ts/src/accounts/walletBlock.ts (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/ts/src/index.ts (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/ts/src/instructions/blockWallet.ts (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/ts/src/instructions/index.ts (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/ts/src/instructions/init.ts (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/ts/src/instructions/setupExtraMetas.ts (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/ts/src/instructions/unblockWallet.ts (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/ts/src/pdas/config.ts (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/ts/src/pdas/extraMetas.ts (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/ts/src/pdas/index.ts (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/ts/src/pdas/walletBlock.ts (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/ts/src/programs/blockList.ts (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/ts/src/programs/index.ts (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/sdk/ts/src/shared/index.ts (100%) rename tokens/token-2022/transfer-hook/pblock-list/{pinocchio => pino}/tsconfig.json (100%) diff --git a/basics/hello-solana/pinocchio/package.json b/basics/hello-solana/pinocchio/package.json index 0423bc543..2db96c483 100644 --- a/basics/hello-solana/pinocchio/package.json +++ b/basics/hello-solana/pinocchio/package.json @@ -7,17 +7,17 @@ "deploy": "solana program deploy ./program/target/so/hello_solana_program_pinocchio.so" }, "dependencies": { - "@solana/web3.js": "^1.47.3" + "@solana/web3.js": "^1.98.4" }, "devDependencies": { - "@types/bn.js": "^5.1.0", - "@types/chai": "^4.3.1", + "@types/bn.js": "^5.2.0", + "@types/chai": "^4.3.20", "@types/mocha": "^9.1.1", - "@types/node": "^22.15.2", - "chai": "^4.3.4", - "mocha": "^9.0.3", - "solana-bankrun": "^0.3.0", - "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "@types/node": "^22.19.1", + "chai": "^4.5.0", + "mocha": "^9.2.2", + "solana-bankrun": "^0.3.1", + "ts-mocha": "^10.1.0", + "typescript": "^4.9.5" } } diff --git a/basics/hello-solana/pinocchio/pnpm-lock.yaml b/basics/hello-solana/pinocchio/pnpm-lock.yaml index 271cefb5f..736d9d29e 100644 --- a/basics/hello-solana/pinocchio/pnpm-lock.yaml +++ b/basics/hello-solana/pinocchio/pnpm-lock.yaml @@ -9,45 +9,45 @@ importers: .: dependencies: '@solana/web3.js': - specifier: ^1.47.3 - version: 1.98.2(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10) - '@types/node': - specifier: ^22.15.2 - version: 22.15.2 + specifier: ^1.98.4 + version: 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10) devDependencies: '@types/bn.js': - specifier: ^5.1.0 - version: 5.1.6 + specifier: ^5.2.0 + version: 5.2.0 '@types/chai': - specifier: ^4.3.1 + specifier: ^4.3.20 version: 4.3.20 '@types/mocha': specifier: ^9.1.1 version: 9.1.1 + '@types/node': + specifier: ^22.19.1 + version: 22.19.1 chai: - specifier: ^4.3.4 + specifier: ^4.5.0 version: 4.5.0 mocha: - specifier: ^9.0.3 + specifier: ^9.2.2 version: 9.2.2 solana-bankrun: - specifier: ^0.3.0 + specifier: ^0.3.1 version: 0.3.1(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10) ts-mocha: - specifier: ^10.0.0 + specifier: ^10.1.0 version: 10.1.0(mocha@9.2.2) typescript: - specifier: ^4.3.5 + specifier: ^4.9.5 version: 4.9.5 packages: - '@babel/runtime@7.27.0': - resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==} + '@babel/runtime@7.28.4': + resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} engines: {node: '>=6.9.0'} - '@noble/curves@1.9.0': - resolution: {integrity: sha512-7YDlXiNMdO1YZeH6t/kvopHHbIZzlxrCV9WLqCY6QhcXOoXiNCMDqJIglZ9Yjx5+w7Dz30TITFrlTjnRg7sKEg==} + '@noble/curves@1.9.7': + resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==} engines: {node: ^14.21.3 || >=16} '@noble/hashes@1.8.0': @@ -58,33 +58,33 @@ packages: resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==} engines: {node: '>=5.10'} - '@solana/codecs-core@2.1.0': - resolution: {integrity: sha512-SR7pKtmJBg2mhmkel2NeHA1pz06QeQXdMv8WJoIR9m8F/hw80K/612uaYbwTt2nkK0jg/Qn/rNSd7EcJ4SBGjw==} + '@solana/codecs-core@2.3.0': + resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==} engines: {node: '>=20.18.0'} peerDependencies: - typescript: '>=5' + typescript: '>=5.3.3' - '@solana/codecs-numbers@2.1.0': - resolution: {integrity: sha512-XMu4yw5iCgQnMKsxSWPPOrGgtaohmupN3eyAtYv3K3C/MJEc5V90h74k5B1GUCiHvcrdUDO9RclNjD9lgbjFag==} + '@solana/codecs-numbers@2.3.0': + resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==} engines: {node: '>=20.18.0'} peerDependencies: - typescript: '>=5' + typescript: '>=5.3.3' - '@solana/errors@2.1.0': - resolution: {integrity: sha512-l+GxAv0Ar4d3c3PlZdA9G++wFYZREEbbRyAFP8+n8HSg0vudCuzogh/13io6hYuUhG/9Ve8ARZNamhV7UScKNw==} + '@solana/errors@2.3.0': + resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==} engines: {node: '>=20.18.0'} hasBin: true peerDependencies: - typescript: '>=5' + typescript: '>=5.3.3' - '@solana/web3.js@1.98.2': - resolution: {integrity: sha512-BqVwEG+TaG2yCkBMbD3C4hdpustR4FpuUFRPUmqRZYYlPI9Hg4XMWxHWOWRzHE9Lkc9NDjzXFX7lDXSgzC7R1A==} + '@solana/web3.js@1.98.4': + resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==} '@swc/helpers@0.5.17': resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} - '@types/bn.js@5.1.6': - resolution: {integrity: sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==} + '@types/bn.js@5.2.0': + resolution: {integrity: sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q==} '@types/chai@4.3.20': resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==} @@ -101,8 +101,8 @@ packages: '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@types/node@22.15.2': - resolution: {integrity: sha512-uKXqKN9beGoMdBfcaTY1ecwz6ctxuJAcUlwE55938g0ZJ8lRxwAZqRz2AJ4pzpt5dHdTPMB863UZ0ESiFUcP7A==} + '@types/node@22.19.1': + resolution: {integrity: sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ==} '@types/uuid@8.3.4': resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} @@ -159,14 +159,14 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - bn.js@5.2.1: - resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} + bn.js@5.2.2: + resolution: {integrity: sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==} borsh@0.7.0: resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==} - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} @@ -200,8 +200,8 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - chalk@5.4.1: - resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} + 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: @@ -221,9 +221,9 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - commander@13.1.0: - resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} - engines: {node: '>=18'} + commander@14.0.2: + resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==} + engines: {node: '>=20'} commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -493,15 +493,12 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} - rpc-websockets@9.1.1: - resolution: {integrity: sha512-1IXGM/TfPT6nfYMIXkJdzn+L4JEsmb0FL1O2OBjaH03V3yuUDdKFulGLMFG6ErV+8pZ5HVC0limve01RyO+saA==} + rpc-websockets@9.3.1: + resolution: {integrity: sha512-bY6a+i/lEtBJ/mUxwsCTgevoV1P0foXTVA7UoThzaIWbM+3NDqorf8NBWs5DmqKTFeA1IoNzgvkWjFCPgnzUiQ==} safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -664,8 +661,8 @@ packages: utf-8-validate: optional: true - ws@8.18.1: - resolution: {integrity: sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==} + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -702,11 +699,9 @@ packages: snapshots: - '@babel/runtime@7.27.0': - dependencies: - regenerator-runtime: 0.14.1 + '@babel/runtime@7.28.4': {} - '@noble/curves@1.9.0': + '@noble/curves@1.9.7': dependencies: '@noble/hashes': 1.8.0 @@ -716,39 +711,39 @@ snapshots: dependencies: buffer: 6.0.3 - '@solana/codecs-core@2.1.0(typescript@4.9.5)': + '@solana/codecs-core@2.3.0(typescript@4.9.5)': dependencies: - '@solana/errors': 2.1.0(typescript@4.9.5) + '@solana/errors': 2.3.0(typescript@4.9.5) typescript: 4.9.5 - '@solana/codecs-numbers@2.1.0(typescript@4.9.5)': + '@solana/codecs-numbers@2.3.0(typescript@4.9.5)': dependencies: - '@solana/codecs-core': 2.1.0(typescript@4.9.5) - '@solana/errors': 2.1.0(typescript@4.9.5) + '@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.1.0(typescript@4.9.5)': + '@solana/errors@2.3.0(typescript@4.9.5)': dependencies: - chalk: 5.4.1 - commander: 13.1.0 + chalk: 5.6.2 + commander: 14.0.2 typescript: 4.9.5 - '@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)': + '@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)': dependencies: - '@babel/runtime': 7.27.0 - '@noble/curves': 1.9.0 + '@babel/runtime': 7.28.4 + '@noble/curves': 1.9.7 '@noble/hashes': 1.8.0 '@solana/buffer-layout': 4.0.1 - '@solana/codecs-numbers': 2.1.0(typescript@4.9.5) + '@solana/codecs-numbers': 2.3.0(typescript@4.9.5) agentkeepalive: 4.6.0 - bn.js: 5.2.1 + bn.js: 5.2.2 borsh: 0.7.0 bs58: 4.0.1 buffer: 6.0.3 fast-stable-stringify: 1.0.0 jayson: 4.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) node-fetch: 2.7.0 - rpc-websockets: 9.1.1 + rpc-websockets: 9.3.1 superstruct: 2.0.2 transitivePeerDependencies: - bufferutil @@ -760,15 +755,15 @@ snapshots: dependencies: tslib: 2.8.1 - '@types/bn.js@5.1.6': + '@types/bn.js@5.2.0': dependencies: - '@types/node': 22.15.2 + '@types/node': 22.19.1 '@types/chai@4.3.20': {} '@types/connect@3.4.38': dependencies: - '@types/node': 22.15.2 + '@types/node': 22.19.1 '@types/json5@0.0.29': optional: true @@ -777,7 +772,7 @@ snapshots: '@types/node@12.20.55': {} - '@types/node@22.15.2': + '@types/node@22.19.1': dependencies: undici-types: 6.21.0 @@ -785,11 +780,11 @@ snapshots: '@types/ws@7.4.7': dependencies: - '@types/node': 22.15.2 + '@types/node': 22.19.1 '@types/ws@8.18.1': dependencies: - '@types/node': 22.15.2 + '@types/node': 22.19.1 '@ungap/promise-all-settled@1.1.2': {} @@ -826,15 +821,15 @@ snapshots: binary-extensions@2.3.0: {} - bn.js@5.2.1: {} + bn.js@5.2.2: {} borsh@0.7.0: dependencies: - bn.js: 5.2.1 + bn.js: 5.2.2 bs58: 4.0.1 text-encoding-utf-8: 1.0.2 - brace-expansion@1.1.11: + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 @@ -878,7 +873,7 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.4.1: {} + chalk@5.6.2: {} check-error@1.0.3: dependencies: @@ -908,7 +903,7 @@ snapshots: color-name@1.1.4: {} - commander@13.1.0: {} + commander@14.0.2: {} commander@2.20.3: {} @@ -1072,11 +1067,11 @@ snapshots: minimatch@3.1.2: dependencies: - brace-expansion: 1.1.11 + brace-expansion: 1.1.12 minimatch@4.2.1: dependencies: - brace-expansion: 1.1.11 + brace-expansion: 1.1.12 minimist@1.2.8: {} @@ -1154,11 +1149,9 @@ snapshots: dependencies: picomatch: 2.3.1 - regenerator-runtime@0.14.1: {} - require-directory@2.1.1: {} - rpc-websockets@9.1.1: + rpc-websockets@9.3.1: dependencies: '@swc/helpers': 0.5.17 '@types/uuid': 8.3.4 @@ -1166,7 +1159,7 @@ snapshots: buffer: 6.0.3 eventemitter3: 5.0.1 uuid: 8.3.2 - ws: 8.18.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) optionalDependencies: bufferutil: 4.0.9 utf-8-validate: 5.0.10 @@ -1194,7 +1187,7 @@ snapshots: solana-bankrun@0.3.1(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10): dependencies: - '@solana/web3.js': 1.98.2(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10) bs58: 4.0.1 optionalDependencies: solana-bankrun-darwin-arm64: 0.3.1 @@ -1321,7 +1314,7 @@ snapshots: bufferutil: 4.0.9 utf-8-validate: 5.0.10 - ws@8.18.1(bufferutil@4.0.9)(utf-8-validate@5.0.10): + ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10): optionalDependencies: bufferutil: 4.0.9 utf-8-validate: 5.0.10 diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/Cargo.toml b/tokens/token-2022/transfer-hook/pblock-list/pino/Cargo.toml similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/Cargo.toml rename to tokens/token-2022/transfer-hook/pblock-list/pino/Cargo.toml diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/cli/Cargo.toml b/tokens/token-2022/transfer-hook/pblock-list/pino/cli/Cargo.toml similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/cli/Cargo.toml rename to tokens/token-2022/transfer-hook/pblock-list/pino/cli/Cargo.toml diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/cli/src/main.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/cli/src/main.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/cli/src/main.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/cli/src/main.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/codama.ts b/tokens/token-2022/transfer-hook/pblock-list/pino/codama.ts similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/codama.ts rename to tokens/token-2022/transfer-hook/pblock-list/pino/codama.ts diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/package.json b/tokens/token-2022/transfer-hook/pblock-list/pino/package.json similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/package.json rename to tokens/token-2022/transfer-hook/pblock-list/pino/package.json diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/Cargo.toml b/tokens/token-2022/transfer-hook/pblock-list/pino/program/Cargo.toml similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/Cargo.toml rename to tokens/token-2022/transfer-hook/pblock-list/pino/program/Cargo.toml diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/error.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/program/src/error.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/error.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/program/src/error.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/instructions/block_wallet.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/program/src/instructions/block_wallet.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/instructions/block_wallet.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/program/src/instructions/block_wallet.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/instructions/init.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/program/src/instructions/init.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/instructions/init.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/program/src/instructions/init.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/instructions/mod.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/program/src/instructions/mod.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/instructions/mod.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/program/src/instructions/mod.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/instructions/setup_extra_metas.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/program/src/instructions/setup_extra_metas.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/instructions/setup_extra_metas.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/program/src/instructions/setup_extra_metas.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/instructions/tx_hook.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/program/src/instructions/tx_hook.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/instructions/tx_hook.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/program/src/instructions/tx_hook.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/instructions/unblock_wallet.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/program/src/instructions/unblock_wallet.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/instructions/unblock_wallet.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/program/src/instructions/unblock_wallet.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/lib.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/program/src/lib.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/lib.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/program/src/lib.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/state/config.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/program/src/state/config.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/state/config.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/program/src/state/config.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/state/mod.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/program/src/state/mod.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/state/mod.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/program/src/state/mod.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/state/wallet_block.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/program/src/state/wallet_block.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/state/wallet_block.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/program/src/state/wallet_block.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/token2022_utils.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/program/src/token2022_utils.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/program/src/token2022_utils.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/program/src/token2022_utils.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/readme.md b/tokens/token-2022/transfer-hook/pblock-list/pino/readme.md similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/readme.md rename to tokens/token-2022/transfer-hook/pblock-list/pino/readme.md diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/Cargo.toml b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/Cargo.toml similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/Cargo.toml rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/Cargo.toml diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/accounts/config.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/accounts/config.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/accounts/config.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/accounts/config.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/accounts/extra_metas.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/accounts/extra_metas.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/accounts/extra_metas.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/accounts/extra_metas.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/accounts/mod.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/accounts/mod.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/accounts/mod.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/accounts/mod.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/accounts/wallet_block.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/accounts/wallet_block.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/accounts/wallet_block.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/accounts/wallet_block.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/errors/mod.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/errors/mod.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/errors/mod.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/errors/mod.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/instructions/block_wallet.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/instructions/block_wallet.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/instructions/block_wallet.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/instructions/block_wallet.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/instructions/init.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/instructions/init.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/instructions/init.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/instructions/init.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/instructions/mod.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/instructions/mod.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/instructions/mod.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/instructions/mod.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/instructions/setup_extra_metas.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/instructions/setup_extra_metas.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/instructions/setup_extra_metas.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/instructions/setup_extra_metas.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/instructions/unblock_wallet.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/instructions/unblock_wallet.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/instructions/unblock_wallet.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/instructions/unblock_wallet.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/mod.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/mod.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/mod.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/mod.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/programs.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/programs.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/programs.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/programs.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/shared.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/shared.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/client/shared.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/client/shared.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/lib.rs b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/lib.rs similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/rust/src/lib.rs rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/rust/src/lib.rs diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/accounts/config.ts b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/accounts/config.ts similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/accounts/config.ts rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/accounts/config.ts diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/accounts/extraMetas.ts b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/accounts/extraMetas.ts similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/accounts/extraMetas.ts rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/accounts/extraMetas.ts diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/accounts/index.ts b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/accounts/index.ts similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/accounts/index.ts rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/accounts/index.ts diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/accounts/walletBlock.ts b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/accounts/walletBlock.ts similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/accounts/walletBlock.ts rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/accounts/walletBlock.ts diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/index.ts b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/index.ts similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/index.ts rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/index.ts diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/instructions/blockWallet.ts b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/instructions/blockWallet.ts similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/instructions/blockWallet.ts rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/instructions/blockWallet.ts diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/instructions/index.ts b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/instructions/index.ts similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/instructions/index.ts rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/instructions/index.ts diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/instructions/init.ts b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/instructions/init.ts similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/instructions/init.ts rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/instructions/init.ts diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/instructions/setupExtraMetas.ts b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/instructions/setupExtraMetas.ts similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/instructions/setupExtraMetas.ts rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/instructions/setupExtraMetas.ts diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/instructions/unblockWallet.ts b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/instructions/unblockWallet.ts similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/instructions/unblockWallet.ts rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/instructions/unblockWallet.ts diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/pdas/config.ts b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/pdas/config.ts similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/pdas/config.ts rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/pdas/config.ts diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/pdas/extraMetas.ts b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/pdas/extraMetas.ts similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/pdas/extraMetas.ts rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/pdas/extraMetas.ts diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/pdas/index.ts b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/pdas/index.ts similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/pdas/index.ts rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/pdas/index.ts diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/pdas/walletBlock.ts b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/pdas/walletBlock.ts similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/pdas/walletBlock.ts rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/pdas/walletBlock.ts diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/programs/blockList.ts b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/programs/blockList.ts similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/programs/blockList.ts rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/programs/blockList.ts diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/programs/index.ts b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/programs/index.ts similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/programs/index.ts rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/programs/index.ts diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/shared/index.ts b/tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/shared/index.ts similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/sdk/ts/src/shared/index.ts rename to tokens/token-2022/transfer-hook/pblock-list/pino/sdk/ts/src/shared/index.ts diff --git a/tokens/token-2022/transfer-hook/pblock-list/pinocchio/tsconfig.json b/tokens/token-2022/transfer-hook/pblock-list/pino/tsconfig.json similarity index 100% rename from tokens/token-2022/transfer-hook/pblock-list/pinocchio/tsconfig.json rename to tokens/token-2022/transfer-hook/pblock-list/pino/tsconfig.json