From b72c92ffa8feafc74709a7dfacc7627744df9476 Mon Sep 17 00:00:00 2001
From: Perelyn <64838956+Perelyn-sama@users.noreply.github.com>
Date: Sat, 29 Nov 2025 03:25:12 +0100
Subject: [PATCH 01/49] feat: add pinocchio account data example (#461)
* add pinocchio account data example
* Update lib.rs
* Create solana-pinocchio.yml
* fix CI errors
- update hello solana pinocchio packages
- rename pblock/pinocchio to pino
---
.github/workflows/solana-pinocchio.yml | 268 ++++
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 +
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
65 files changed, 2157 insertions(+), 97 deletions(-)
create mode 100644 .github/workflows/solana-pinocchio.yml
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
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/.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
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..f5aec58d9
--- /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
+ }
+}
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
From c4553558c77af30612930c96fccaa37d37d09e70 Mon Sep 17 00:00:00 2001
From: Perelyn <64838956+Perelyn-sama@users.noreply.github.com>
Date: Sat, 29 Nov 2025 03:40:16 +0100
Subject: [PATCH 02/49] feat: add checking account pinocchio example (#463)
---
Cargo.lock | 16 +
Cargo.toml | 1 +
basics/checking-accounts/pinocchio/cicd.sh | 8 +
.../checking-accounts/pinocchio/package.json | 22 +
.../pinocchio/pnpm-lock.yaml | 1349 +++++++++++++++++
.../pinocchio/program/Cargo.toml | 28 +
.../pinocchio/program/src/lib.rs | 62 +
.../pinocchio/program/tests/test.rs | 62 +
.../checking-accounts/pinocchio/tests/test.ts | 63 +
.../checking-accounts/pinocchio/tsconfig.json | 10 +
10 files changed, 1621 insertions(+)
create mode 100644 basics/checking-accounts/pinocchio/cicd.sh
create mode 100644 basics/checking-accounts/pinocchio/package.json
create mode 100644 basics/checking-accounts/pinocchio/pnpm-lock.yaml
create mode 100644 basics/checking-accounts/pinocchio/program/Cargo.toml
create mode 100644 basics/checking-accounts/pinocchio/program/src/lib.rs
create mode 100644 basics/checking-accounts/pinocchio/program/tests/test.rs
create mode 100644 basics/checking-accounts/pinocchio/tests/test.ts
create mode 100644 basics/checking-accounts/pinocchio/tsconfig.json
diff --git a/Cargo.lock b/Cargo.lock
index b2ffac0de..fef1ff776 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -874,6 +874,22 @@ dependencies = [
"solana-transaction",
]
+[[package]]
+name = "checking-accounts-pinocchio-program"
+version = "0.1.0"
+dependencies = [
+ "litesvm",
+ "pinocchio",
+ "pinocchio-log",
+ "pinocchio-system",
+ "solana-keypair",
+ "solana-native-token 3.0.0",
+ "solana-pubkey 3.0.0",
+ "solana-sdk",
+ "solana-system-interface 2.0.0",
+ "solana-transaction",
+]
+
[[package]]
name = "chrono"
version = "0.4.42"
diff --git a/Cargo.toml b/Cargo.toml
index 6e76fa061..3cde6db65 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -5,6 +5,7 @@ members = [
"basics/account-data/pinocchio/program",
"basics/account-data/anchor/programs/anchor-program-example",
"basics/checking-accounts/native/program",
+ "basics/checking-accounts/pinocchio/program",
"basics/checking-accounts/anchor/programs/anchor-program-example",
"basics/close-account/native/program",
"basics/close-account/anchor/programs/close-account",
diff --git a/basics/checking-accounts/pinocchio/cicd.sh b/basics/checking-accounts/pinocchio/cicd.sh
new file mode 100644
index 000000000..b2407c75f
--- /dev/null
+++ b/basics/checking-accounts/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/checking-accounts/pinocchio/package.json b/basics/checking-accounts/pinocchio/package.json
new file mode 100644
index 000000000..5cea50097
--- /dev/null
+++ b/basics/checking-accounts/pinocchio/package.json
@@ -0,0 +1,22 @@
+{
+ "type": "module",
+ "scripts": {
+ "test": "pnpm ts-mocha -p ./tsconfig.json -t 1000000 ./tests/test.ts",
+ "build-and-test": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./tests/fixtures && pnpm test",
+ "build": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./program/target/so",
+ "deploy": "solana program deploy ./program/target/so/program.so"
+ },
+ "dependencies": {
+ "@solana/web3.js": "^1.47.3"
+ },
+ "devDependencies": {
+ "@types/bn.js": "^5.1.0",
+ "@types/chai": "^4.3.1",
+ "@types/mocha": "^9.1.1",
+ "chai": "^4.3.4",
+ "mocha": "^9.0.3",
+ "ts-mocha": "^10.0.0",
+ "typescript": "^4.3.5",
+ "solana-bankrun": "^0.3.0"
+ }
+}
diff --git a/basics/checking-accounts/pinocchio/pnpm-lock.yaml b/basics/checking-accounts/pinocchio/pnpm-lock.yaml
new file mode 100644
index 000000000..b70de678a
--- /dev/null
+++ b/basics/checking-accounts/pinocchio/pnpm-lock.yaml
@@ -0,0 +1,1349 @@
+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
+ 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/checking-accounts/pinocchio/program/Cargo.toml b/basics/checking-accounts/pinocchio/program/Cargo.toml
new file mode 100644
index 000000000..5eebeb583
--- /dev/null
+++ b/basics/checking-accounts/pinocchio/program/Cargo.toml
@@ -0,0 +1,28 @@
+[package]
+name = "checking-accounts-pinocchio-program"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
+pinocchio.workspace = true
+pinocchio-system.workspace = true
+pinocchio-log.workspace = true
+
+[dev-dependencies]
+litesvm = "0.8.1"
+solana-keypair = "3.0.1"
+solana-native-token = "3.0.0"
+solana-pubkey = "3.0.0"
+solana-sdk = "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/checking-accounts/pinocchio/program/src/lib.rs b/basics/checking-accounts/pinocchio/program/src/lib.rs
new file mode 100644
index 000000000..ebea20af7
--- /dev/null
+++ b/basics/checking-accounts/pinocchio/program/src/lib.rs
@@ -0,0 +1,62 @@
+#![no_std]
+#![allow(deprecated)]
+
+use pinocchio::{
+ account_info::AccountInfo, entrypoint, nostd_panic_handler, program_error::ProgramError,
+ pubkey::Pubkey, ProgramResult,
+};
+use pinocchio_log::log;
+
+entrypoint!(process_instruction);
+nostd_panic_handler!();
+
+fn process_instruction(
+ program_id: &Pubkey,
+ accounts: &[AccountInfo],
+ _instruction_data: &[u8],
+) -> ProgramResult {
+ // You can verify the list has the correct number of accounts.
+ // This error will get thrown by default if you
+ // try to reach past the end of the iter.
+ let [payer, account_to_create, account_to_change, system_program] = accounts else {
+ log!("This instruction requires 4 accounts:");
+ log!(" payer, account_to_create, account_to_change, system_program");
+ return Err(ProgramError::NotEnoughAccountKeys);
+ };
+
+ // You can make sure payer is a signer
+
+ if !payer.is_signer() {
+ log!("The program expected the account to be a signer.");
+ return Err(ProgramError::MissingRequiredSignature);
+ }
+
+ // You can make sure an account has NOT been initialized.
+
+ log!("New account: {}", account_to_create.key());
+ if account_to_create.lamports() != 0 {
+ log!("The program expected the account to create to not yet be initialized.");
+ return Err(ProgramError::AccountAlreadyInitialized);
+ };
+ // (Create account...)
+
+ // You can also make sure an account has been initialized.
+ log!("Account to change: {}", account_to_change.key());
+ if account_to_change.lamports() == 0 {
+ log!("The program expected the account to change to be initialized.");
+ return Err(ProgramError::UninitializedAccount);
+ };
+
+ // If we want to modify an account's data, it must be owned by our program.
+ if account_to_change.owner() != program_id {
+ log!("Account to change does not have the correct program id.");
+ return Err(ProgramError::IncorrectProgramId);
+ };
+
+ // You can also check pubkeys against constants.
+ if system_program.key() != &pinocchio_system::ID {
+ return Err(ProgramError::IncorrectProgramId);
+ };
+
+ Ok(())
+}
diff --git a/basics/checking-accounts/pinocchio/program/tests/test.rs b/basics/checking-accounts/pinocchio/program/tests/test.rs
new file mode 100644
index 000000000..df91f75da
--- /dev/null
+++ b/basics/checking-accounts/pinocchio/program/tests/test.rs
@@ -0,0 +1,62 @@
+use litesvm::LiteSVM;
+use solana_keypair::{Keypair, Signer};
+use solana_native_token::LAMPORTS_PER_SOL;
+use solana_pubkey::Pubkey;
+use solana_system_interface::instruction::create_account;
+use solana_transaction::{AccountMeta, Instruction, Transaction};
+
+#[test]
+fn test_checking_accounts() {
+ let mut svm = LiteSVM::new();
+
+ let payer = Keypair::new();
+ let account_to_change = Keypair::new();
+ let account_to_create = Keypair::new();
+
+ svm.airdrop(&payer.pubkey(), LAMPORTS_PER_SOL * 10).unwrap();
+
+ let program_id = Pubkey::new_unique();
+ let program_bytes =
+ include_bytes!("../../tests/fixtures/checking_accounts_pinocchio_program.so");
+
+ svm.add_program(program_id, program_bytes).unwrap();
+
+ let create_account_ix = create_account(
+ &payer.pubkey(),
+ &account_to_change.pubkey(),
+ LAMPORTS_PER_SOL,
+ 0,
+ &program_id,
+ );
+
+ let tx = Transaction::new_signed_with_payer(
+ &[create_account_ix],
+ Some(&payer.pubkey()),
+ &[&payer, &account_to_change],
+ svm.latest_blockhash(),
+ );
+
+ // verify tx was sent successfully
+ assert!(svm.send_transaction(tx).is_ok());
+
+ let ix = Instruction {
+ program_id,
+ accounts: vec![
+ AccountMeta::new(payer.pubkey(), true),
+ AccountMeta::new(account_to_create.pubkey(), true),
+ AccountMeta::new(account_to_change.pubkey(), true),
+ AccountMeta::new(solana_system_interface::program::ID, false),
+ ],
+ data: vec![0],
+ };
+
+ let tx = Transaction::new_signed_with_payer(
+ &[ix],
+ Some(&payer.pubkey()),
+ &[payer, account_to_change, account_to_create],
+ svm.latest_blockhash(),
+ );
+
+ // verify tx was sent successfully
+ assert!(svm.send_transaction(tx).is_ok());
+}
diff --git a/basics/checking-accounts/pinocchio/tests/test.ts b/basics/checking-accounts/pinocchio/tests/test.ts
new file mode 100644
index 000000000..7dcc9d8b5
--- /dev/null
+++ b/basics/checking-accounts/pinocchio/tests/test.ts
@@ -0,0 +1,63 @@
+import { describe, test } from "node:test";
+import {
+ Keypair,
+ PublicKey,
+ SystemProgram,
+ Transaction,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import { start } from "solana-bankrun";
+
+describe("Checking accounts", async () => {
+ const PROGRAM_ID = PublicKey.unique();
+ const context = await start(
+ [{ name: "checking_accounts_pinocchio_program", programId: PROGRAM_ID }],
+ [],
+ );
+ const client = context.banksClient;
+ const payer = context.payer;
+ const rent = await client.getRent();
+
+ // We'll create this ahead of time.
+ // Our program will try to modify it.
+ const accountToChange = Keypair.generate();
+ // Our program will create this.
+ const accountToCreate = Keypair.generate();
+
+ test("Create an account owned by our program", async () => {
+ const blockhash = context.lastBlockhash;
+ const ix = SystemProgram.createAccount({
+ fromPubkey: payer.publicKey,
+ newAccountPubkey: accountToChange.publicKey,
+ lamports: Number(rent.minimumBalance(BigInt(0))),
+ space: 0,
+ programId: PROGRAM_ID, // Our program
+ });
+
+ const tx = new Transaction();
+ tx.recentBlockhash = blockhash;
+ tx.add(ix).sign(payer, accountToChange);
+
+ await client.processTransaction(tx);
+ });
+
+ test("Check accounts", async () => {
+ const blockhash = context.lastBlockhash;
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: payer.publicKey, isSigner: true, isWritable: true },
+ { pubkey: accountToCreate.publicKey, isSigner: true, isWritable: true },
+ { pubkey: accountToChange.publicKey, isSigner: true, isWritable: true },
+ { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
+ ],
+ programId: PROGRAM_ID,
+ data: Buffer.alloc(0),
+ });
+
+ const tx = new Transaction();
+ tx.recentBlockhash = blockhash;
+ tx.add(ix).sign(payer, accountToChange, accountToCreate);
+
+ await client.processTransaction(tx);
+ });
+});
diff --git a/basics/checking-accounts/pinocchio/tsconfig.json b/basics/checking-accounts/pinocchio/tsconfig.json
new file mode 100644
index 000000000..8c20b2236
--- /dev/null
+++ b/basics/checking-accounts/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 5e4b21d353afae592636b8f33542d30e3971b32d Mon Sep 17 00:00:00 2001
From: Perelyn <64838956+Perelyn-sama@users.noreply.github.com>
Date: Sat, 29 Nov 2025 03:44:57 +0100
Subject: [PATCH 03/49] feat: add close account pinocchio example (#462)
---
Cargo.lock | 18 +
Cargo.toml | 1 +
.../close-account/native/program/Cargo.toml | 1 -
basics/close-account/pinocchio/cicd.sh | 8 +
basics/close-account/pinocchio/package.json | 22 +
basics/close-account/pinocchio/pnpm-lock.yaml | 1342 +++++++++++++++++
.../pinocchio/program/Cargo.toml | 30 +
.../pinocchio/program/src/lib.rs | 117 ++
.../pinocchio/program/tests/tests.rs | 83 +
.../pinocchio/tests/close-account.test.ts | 7 +
.../pinocchio/tests/tsconfig.test.json | 10 +
basics/close-account/pinocchio/tsconfig.json | 10 +
basics/counter/mpl-stack/Cargo.toml | 1 -
basics/counter/native/program/Cargo.toml | 1 -
.../hello-solana/pinocchio/program/Cargo.toml | 1 -
tokens/create-token/native/program/Cargo.toml | 1 -
tokens/escrow/native/program/Cargo.toml | 1 -
.../native/program/Cargo.toml | 1 -
.../native/program/Cargo.toml | 1 -
.../native/program/Cargo.toml | 1 -
.../native/program/Cargo.toml | 1 -
.../transfer-fee/native/program/Cargo.toml | 1 -
22 files changed, 1648 insertions(+), 11 deletions(-)
create mode 100644 basics/close-account/pinocchio/cicd.sh
create mode 100644 basics/close-account/pinocchio/package.json
create mode 100644 basics/close-account/pinocchio/pnpm-lock.yaml
create mode 100644 basics/close-account/pinocchio/program/Cargo.toml
create mode 100644 basics/close-account/pinocchio/program/src/lib.rs
create mode 100644 basics/close-account/pinocchio/program/tests/tests.rs
create mode 100644 basics/close-account/pinocchio/tests/close-account.test.ts
create mode 100644 basics/close-account/pinocchio/tests/tsconfig.test.json
create mode 100644 basics/close-account/pinocchio/tsconfig.json
diff --git a/Cargo.lock b/Cargo.lock
index fef1ff776..95d0b44b4 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -925,6 +925,24 @@ dependencies = [
"solana-transaction",
]
+[[package]]
+name = "close-account-pinocchio-program"
+version = "0.1.0"
+dependencies = [
+ "litesvm",
+ "pinocchio",
+ "pinocchio-log",
+ "pinocchio-system",
+ "solana-instruction 3.0.0",
+ "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 = "close-account-program"
version = "0.1.0"
diff --git a/Cargo.toml b/Cargo.toml
index 3cde6db65..ed744874f 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -8,6 +8,7 @@ members = [
"basics/checking-accounts/pinocchio/program",
"basics/checking-accounts/anchor/programs/anchor-program-example",
"basics/close-account/native/program",
+ "basics/close-account/pinocchio/program",
"basics/close-account/anchor/programs/close-account",
"basics/counter/native/program",
"basics/counter/anchor/programs/counter_anchor",
diff --git a/basics/close-account/native/program/Cargo.toml b/basics/close-account/native/program/Cargo.toml
index 8122abd2e..5bedf0754 100644
--- a/basics/close-account/native/program/Cargo.toml
+++ b/basics/close-account/native/program/Cargo.toml
@@ -13,7 +13,6 @@ solana-system-interface.workspace = true
crate-type = ["cdylib", "lib"]
[features]
-anchor-debug = []
custom-heap = []
custom-panic = []
diff --git a/basics/close-account/pinocchio/cicd.sh b/basics/close-account/pinocchio/cicd.sh
new file mode 100644
index 000000000..b2407c75f
--- /dev/null
+++ b/basics/close-account/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/close-account/pinocchio/package.json b/basics/close-account/pinocchio/package.json
new file mode 100644
index 000000000..1b568942a
--- /dev/null
+++ b/basics/close-account/pinocchio/package.json
@@ -0,0 +1,22 @@
+{
+ "type": "module",
+ "scripts": {
+ "test": "pnpm ts-mocha -p ./tests/tsconfig.test.json -t 1000000 ./tests/close-account.test.ts",
+ "build-and-test": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./tests/fixtures && pnpm test",
+ "build": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./program/target/so",
+ "deploy": "solana program deploy ./program/target/so/program.so"
+ },
+ "dependencies": {
+ "@solana/web3.js": "^1.98.4"
+ },
+ "devDependencies": {
+ "@types/bn.js": "^5.2.0",
+ "@types/chai": "^4.3.20",
+ "@types/mocha": "^9.1.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/close-account/pinocchio/pnpm-lock.yaml b/basics/close-account/pinocchio/pnpm-lock.yaml
new file mode 100644
index 000000000..4570230e0
--- /dev/null
+++ b/basics/close-account/pinocchio/pnpm-lock.yaml
@@ -0,0 +1,1342 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ dependencies:
+ '@solana/web3.js':
+ 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.2.0
+ version: 5.2.0
+ '@types/chai':
+ specifier: ^4.3.20
+ version: 4.3.20
+ '@types/mocha':
+ specifier: ^9.1.1
+ version: 9.1.1
+ chai:
+ specifier: ^4.5.0
+ version: 4.5.0
+ mocha:
+ specifier: ^9.2.2
+ version: 9.2.2
+ solana-bankrun:
+ 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.1.0
+ version: 10.1.0(mocha@9.2.2)
+ typescript:
+ specifier: ^4.9.5
+ version: 4.9.5
+
+packages:
+
+ '@babel/runtime@7.28.4':
+ resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@noble/curves@1.9.7':
+ resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==}
+ engines: {node: ^14.21.3 || >=16}
+
+ '@noble/hashes@1.8.0':
+ resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
+ engines: {node: ^14.21.3 || >=16}
+
+ '@solana/buffer-layout@4.0.1':
+ resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
+ engines: {node: '>=5.10'}
+
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
+
+ '@swc/helpers@0.5.17':
+ resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==}
+
+ '@types/bn.js@5.2.0':
+ resolution: {integrity: sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q==}
+
+ '@types/chai@4.3.20':
+ resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==}
+
+ '@types/connect@3.4.38':
+ resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
+
+ '@types/json5@0.0.29':
+ resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
+
+ '@types/mocha@9.1.1':
+ resolution: {integrity: sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==}
+
+ '@types/node@12.20.55':
+ resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
+
+ '@types/node@24.10.1':
+ resolution: {integrity: sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==}
+
+ '@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.2:
+ resolution: {integrity: sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==}
+
+ borsh@0.7.0:
+ resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
+
+ brace-expansion@1.1.12:
+ resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
+
+ 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.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
+ check-error@1.0.3:
+ resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
+
+ chokidar@3.5.3:
+ resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
+ engines: {node: '>= 8.10.0'}
+
+ cliui@7.0.4:
+ resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
+
+ color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+
+ color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
+ commander@14.0.2:
+ resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==}
+ engines: {node: '>=20'}
+
+ commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+
+ concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+ debug@4.3.3:
+ resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ decamelize@4.0.0:
+ resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==}
+ engines: {node: '>=10'}
+
+ deep-eql@4.1.4:
+ resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==}
+ engines: {node: '>=6'}
+
+ delay@5.0.0:
+ resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==}
+ engines: {node: '>=10'}
+
+ diff@3.5.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'}
+
+ require-directory@2.1.1:
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+ engines: {node: '>=0.10.0'}
+
+ 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==}
+
+ serialize-javascript@6.0.0:
+ resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
+
+ solana-bankrun-darwin-arm64@0.3.1:
+ resolution: {integrity: sha512-9LWtH/3/WR9fs8Ve/srdo41mpSqVHmRqDoo69Dv1Cupi+o1zMU6HiEPUHEvH2Tn/6TDbPEDf18MYNfReLUqE6A==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ solana-bankrun-darwin-universal@0.3.1:
+ resolution: {integrity: sha512-muGHpVYWT7xCd8ZxEjs/bmsbMp8XBqroYGbE4lQPMDUuLvsJEIrjGqs3MbxEFr71sa58VpyvgywWd5ifI7sGIg==}
+ engines: {node: '>= 10'}
+ os: [darwin]
+
+ solana-bankrun-darwin-x64@0.3.1:
+ resolution: {integrity: sha512-oCaxfHyt7RC3ZMldrh5AbKfy4EH3YRMl8h6fSlMZpxvjQx7nK7PxlRwMeflMnVdkKKp7U8WIDak1lilIPd3/lg==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ solana-bankrun-linux-x64-gnu@0.3.1:
+ resolution: {integrity: sha512-PfRFhr7igGFNt2Ecfdzh3li9eFPB3Xhmk0Eib17EFIB62YgNUg3ItRnQQFaf0spazFjjJLnglY1TRKTuYlgSVA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ solana-bankrun-linux-x64-musl@0.3.1:
+ resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ solana-bankrun@0.3.1:
+ resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
+ engines: {node: '>= 10'}
+
+ source-map-support@0.5.21:
+ resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+
+ source-map@0.6.1:
+ resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+ engines: {node: '>=0.10.0'}
+
+ stream-chain@2.2.5:
+ resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==}
+
+ stream-json@1.9.1:
+ resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==}
+
+ string-width@4.2.3:
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+ engines: {node: '>=8'}
+
+ strip-ansi@6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+
+ strip-bom@3.0.0:
+ resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
+ engines: {node: '>=4'}
+
+ strip-json-comments@3.1.1:
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+ engines: {node: '>=8'}
+
+ superstruct@2.0.2:
+ resolution: {integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==}
+ engines: {node: '>=14.0.0'}
+
+ supports-color@7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+
+ supports-color@8.1.1:
+ resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
+ engines: {node: '>=10'}
+
+ text-encoding-utf-8@1.0.2:
+ resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==}
+
+ to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+
+ tr46@0.0.3:
+ resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+
+ ts-mocha@10.1.0:
+ resolution: {integrity: sha512-T0C0Xm3/WqCuF2tpa0GNGESTBoKZaiqdUP8guNv4ZY316AFXlyidnrzQ1LUrCT0Wb1i3J0zFTgOh/55Un44WdA==}
+ engines: {node: '>= 6.X.X'}
+ hasBin: true
+ peerDependencies:
+ mocha: ^3.X.X || ^4.X.X || ^5.X.X || ^6.X.X || ^7.X.X || ^8.X.X || ^9.X.X || ^10.X.X || ^11.X.X
+
+ ts-node@7.0.1:
+ resolution: {integrity: sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==}
+ engines: {node: '>=4.2.0'}
+ hasBin: true
+
+ tsconfig-paths@3.15.0:
+ resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
+
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
+ type-detect@4.1.0:
+ resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==}
+ engines: {node: '>=4'}
+
+ typescript@4.9.5:
+ resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
+ engines: {node: '>=4.2.0'}
+ hasBin: true
+
+ undici-types@7.16.0:
+ resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==}
+
+ 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.3:
+ resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==}
+ 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.28.4': {}
+
+ '@noble/curves@1.9.7':
+ dependencies:
+ '@noble/hashes': 1.8.0
+
+ '@noble/hashes@1.8.0': {}
+
+ '@solana/buffer-layout@4.0.1':
+ dependencies:
+ buffer: 6.0.3
+
+ '@solana/codecs-core@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@4.9.5)
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.3.0(typescript@4.9.5)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.2
+ typescript: 4.9.5
+
+ '@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@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.3.0(typescript@4.9.5)
+ agentkeepalive: 4.6.0
+ 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.3.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.2.0':
+ dependencies:
+ '@types/node': 24.10.1
+
+ '@types/chai@4.3.20': {}
+
+ '@types/connect@3.4.38':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@types/json5@0.0.29':
+ optional: true
+
+ '@types/mocha@9.1.1': {}
+
+ '@types/node@12.20.55': {}
+
+ '@types/node@24.10.1':
+ dependencies:
+ undici-types: 7.16.0
+
+ '@types/uuid@8.3.4': {}
+
+ '@types/ws@7.4.7':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@types/ws@8.18.1':
+ dependencies:
+ '@types/node': 24.10.1
+
+ '@ungap/promise-all-settled@1.1.2': {}
+
+ agentkeepalive@4.6.0:
+ dependencies:
+ humanize-ms: 1.2.1
+
+ ansi-colors@4.1.1: {}
+
+ ansi-regex@5.0.1: {}
+
+ ansi-styles@4.3.0:
+ dependencies:
+ color-convert: 2.0.1
+
+ anymatch@3.1.3:
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.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.2: {}
+
+ borsh@0.7.0:
+ dependencies:
+ bn.js: 5.2.2
+ bs58: 4.0.1
+ text-encoding-utf-8: 1.0.2
+
+ brace-expansion@1.1.12:
+ 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.6.2: {}
+
+ check-error@1.0.3:
+ dependencies:
+ get-func-name: 2.0.2
+
+ chokidar@3.5.3:
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.3
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ cliui@7.0.4:
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+
+ color-convert@2.0.1:
+ dependencies:
+ color-name: 1.1.4
+
+ color-name@1.1.4: {}
+
+ commander@14.0.2: {}
+
+ 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.12
+
+ minimatch@4.2.1:
+ dependencies:
+ brace-expansion: 1.1.12
+
+ 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
+
+ require-directory@2.1.1: {}
+
+ rpc-websockets@9.3.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.3(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.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
+ 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@7.16.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.3(bufferutil@4.0.9)(utf-8-validate@5.0.10):
+ optionalDependencies:
+ bufferutil: 4.0.9
+ utf-8-validate: 5.0.10
+
+ y18n@5.0.8: {}
+
+ yargs-parser@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/close-account/pinocchio/program/Cargo.toml b/basics/close-account/pinocchio/program/Cargo.toml
new file mode 100644
index 000000000..a792f896c
--- /dev/null
+++ b/basics/close-account/pinocchio/program/Cargo.toml
@@ -0,0 +1,30 @@
+[package]
+name = "close-account-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
+solana-instruction.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/close-account/pinocchio/program/src/lib.rs b/basics/close-account/pinocchio/program/src/lib.rs
new file mode 100644
index 000000000..77dd4da97
--- /dev/null
+++ b/basics/close-account/pinocchio/program/src/lib.rs
@@ -0,0 +1,117 @@
+#![no_std]
+#![allow(deprecated)]
+
+use pinocchio::{
+ account_info::AccountInfo,
+ entrypoint,
+ instruction::{Seed, Signer},
+ 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((&CREATE_DISCRIMINATOR, data)) => process_user(program_id, accounts, data),
+ Some((&CLOSE_DISCRIMINATOR, _)) => process_close(accounts),
+ _ => Err(ProgramError::InvalidInstructionData),
+ }
+}
+
+pub const CREATE_DISCRIMINATOR: u8 = 0;
+pub const CLOSE_DISCRIMINATOR: u8 = 1;
+
+pub struct User<'a> {
+ pub name: &'a [u8],
+}
+
+impl<'a> User<'a> {
+ pub const SEED_PREFIX: &'static str = "USER";
+ pub const LEN: usize = 16;
+}
+
+fn process_user(
+ program_id: &Pubkey,
+ accounts: &[AccountInfo],
+ instruction_data: &[u8],
+) -> ProgramResult {
+ let [target_account, payer, _system_program] = accounts else {
+ return Err(ProgramError::NotEnoughAccountKeys);
+ };
+
+ 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 = User::LEN;
+ let lamports_required = rent.minimum_balance(account_span);
+
+ let (_, bump) = pinocchio::pubkey::find_program_address(
+ &[User::SEED_PREFIX.as_bytes(), payer.key()],
+ program_id,
+ );
+ let bump_bytes = bump.to_le_bytes();
+
+ let seeds = [
+ Seed::from(User::SEED_PREFIX.as_bytes()),
+ Seed::from(payer.key().as_ref()),
+ Seed::from(&bump_bytes),
+ ];
+ let signers = [Signer::from(&seeds)];
+
+ CreateAccount {
+ from: payer,
+ to: target_account,
+ lamports: lamports_required,
+ space: account_span as u64,
+ owner: program_id,
+ }
+ .invoke_signed(&signers)?;
+
+ let mut address_info_data = target_account.try_borrow_mut_data()?;
+ address_info_data.copy_from_slice(instruction_data);
+
+ Ok(())
+}
+
+fn process_close(accounts: &[AccountInfo]) -> ProgramResult {
+ let [target_account, payer, system_program] = accounts else {
+ return Err(ProgramError::NotEnoughAccountKeys);
+ };
+
+ 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 = 0usize;
+ let lamports_required = rent.minimum_balance(account_span);
+
+ let diff = target_account.lamports() - lamports_required;
+
+ *target_account.try_borrow_mut_lamports()? -= diff;
+ *payer.try_borrow_mut_lamports()? += diff;
+
+ target_account.resize(account_span)?;
+
+ unsafe {
+ target_account.assign(system_program.key());
+ }
+
+ Ok(())
+}
diff --git a/basics/close-account/pinocchio/program/tests/tests.rs b/basics/close-account/pinocchio/program/tests/tests.rs
new file mode 100644
index 000000000..41e51bf93
--- /dev/null
+++ b/basics/close-account/pinocchio/program/tests/tests.rs
@@ -0,0 +1,83 @@
+use litesvm::LiteSVM;
+use solana_instruction::{AccountMeta, Instruction};
+use solana_keypair::{Keypair, Signer};
+use solana_native_token::LAMPORTS_PER_SOL;
+use solana_pubkey::Pubkey;
+use solana_transaction::Transaction;
+
+use close_account_pinocchio_program::{User, CLOSE_DISCRIMINATOR, CREATE_DISCRIMINATOR};
+
+#[test]
+fn test_close_account() {
+ let mut svm = LiteSVM::new();
+
+ let program_id = Pubkey::new_unique();
+ let program_bytes = include_bytes!("../../tests/fixtures/close_account_pinocchio_program.so");
+
+ svm.add_program(program_id, program_bytes).unwrap();
+
+ let payer = Keypair::new();
+ svm.airdrop(&payer.pubkey(), LAMPORTS_PER_SOL * 10).unwrap();
+
+ let test_account_pubkey =
+ Pubkey::find_program_address(&[b"USER".as_ref(), &payer.pubkey().as_ref()], &program_id).0;
+
+ let mut data = Vec::new();
+ data.push(CREATE_DISCRIMINATOR);
+ let mut name = [0u8; User::LEN];
+ let name_len = b"Jacob".len().min(User::LEN);
+ name[..name_len].copy_from_slice(&b"Jacob"[..name_len]);
+ data.extend_from_slice(&name);
+
+ let ix = Instruction {
+ program_id,
+ accounts: vec![
+ AccountMeta::new(test_account_pubkey, false),
+ AccountMeta::new(payer.pubkey(), true),
+ AccountMeta::new(solana_system_interface::program::ID, false),
+ ],
+ data,
+ };
+
+ let tx = Transaction::new_signed_with_payer(
+ &[ix],
+ Some(&payer.pubkey()),
+ &[&payer],
+ svm.latest_blockhash(),
+ );
+
+ let res = svm.send_transaction(tx);
+ assert!(res.is_ok());
+
+ let account = svm.get_account(&test_account_pubkey).unwrap();
+ assert_eq!(account.data.len(), User::LEN);
+ assert_eq!(account.owner, program_id);
+ assert_eq!(&account.data[..5], b"Jacob");
+
+ let mut data = Vec::new();
+ data.push(CLOSE_DISCRIMINATOR);
+
+ let ix = Instruction {
+ program_id,
+ accounts: vec![
+ AccountMeta::new(test_account_pubkey, false),
+ AccountMeta::new(payer.pubkey(), true),
+ AccountMeta::new(solana_system_interface::program::ID, false),
+ ],
+ data,
+ };
+
+ let tx = Transaction::new_signed_with_payer(
+ &[ix],
+ Some(&payer.pubkey()),
+ &[&payer],
+ svm.latest_blockhash(),
+ );
+
+ let res = svm.send_transaction(tx);
+ assert!(res.is_ok());
+
+ let account = svm.get_account(&test_account_pubkey).unwrap();
+ assert_eq!(account.data.len(), 0);
+ assert_eq!(account.owner, solana_system_interface::program::ID);
+}
diff --git a/basics/close-account/pinocchio/tests/close-account.test.ts b/basics/close-account/pinocchio/tests/close-account.test.ts
new file mode 100644
index 000000000..e073c28c7
--- /dev/null
+++ b/basics/close-account/pinocchio/tests/close-account.test.ts
@@ -0,0 +1,7 @@
+import { describe, test } from "node:test";
+import { PublicKey, Transaction } from "@solana/web3.js";
+import { start } from "solana-bankrun";
+
+describe("Close Account!", async () => {
+ console.log("Close Account");
+});
diff --git a/basics/close-account/pinocchio/tests/tsconfig.test.json b/basics/close-account/pinocchio/tests/tsconfig.test.json
new file mode 100644
index 000000000..cd5d2e3d0
--- /dev/null
+++ b/basics/close-account/pinocchio/tests/tsconfig.test.json
@@ -0,0 +1,10 @@
+{
+ "compilerOptions": {
+ "types": ["mocha", "chai"],
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2015"],
+ "module": "commonjs",
+ "target": "es6",
+ "esModuleInterop": true
+ }
+}
diff --git a/basics/close-account/pinocchio/tsconfig.json b/basics/close-account/pinocchio/tsconfig.json
new file mode 100644
index 000000000..8c20b2236
--- /dev/null
+++ b/basics/close-account/pinocchio/tsconfig.json
@@ -0,0 +1,10 @@
+{
+ "compilerOptions": {
+ "types": ["mocha", "chai", "node"],
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2015"],
+ "module": "commonjs",
+ "target": "es6",
+ "esModuleInterop": true
+ }
+}
diff --git a/basics/counter/mpl-stack/Cargo.toml b/basics/counter/mpl-stack/Cargo.toml
index dfad7125e..c33d48a9b 100644
--- a/basics/counter/mpl-stack/Cargo.toml
+++ b/basics/counter/mpl-stack/Cargo.toml
@@ -10,7 +10,6 @@ crate-type = ["cdylib", "lib"]
no-entrypoint = []
cpi = ["no-entrypoint"]
default = []
-anchor-debug = []
custom-heap = []
custom-panic = []
diff --git a/basics/counter/native/program/Cargo.toml b/basics/counter/native/program/Cargo.toml
index 5bb4e4865..5a4d4051c 100644
--- a/basics/counter/native/program/Cargo.toml
+++ b/basics/counter/native/program/Cargo.toml
@@ -10,7 +10,6 @@ crate-type = ["cdylib", "lib"]
no-entrypoint = []
cpi = ["no-entrypoint"]
default = []
-anchor-debug = []
custom-heap = []
custom-panic = []
diff --git a/basics/hello-solana/pinocchio/program/Cargo.toml b/basics/hello-solana/pinocchio/program/Cargo.toml
index fbad78e5a..9a21d5629 100644
--- a/basics/hello-solana/pinocchio/program/Cargo.toml
+++ b/basics/hello-solana/pinocchio/program/Cargo.toml
@@ -11,7 +11,6 @@ pinocchio-log.workspace = true
crate-type = ["cdylib", "rlib"]
[features]
-anchor-debug = []
custom-heap = []
custom-panic = []
diff --git a/tokens/create-token/native/program/Cargo.toml b/tokens/create-token/native/program/Cargo.toml
index 9c3e897fe..d34414af3 100644
--- a/tokens/create-token/native/program/Cargo.toml
+++ b/tokens/create-token/native/program/Cargo.toml
@@ -15,7 +15,6 @@ mpl-token-metadata = { version = "5.1.1", features = [ "no-entrypoint" ] }
crate-type = ["cdylib", "lib"]
[features]
-anchor-debug = []
custom-heap = []
custom-panic = []
diff --git a/tokens/escrow/native/program/Cargo.toml b/tokens/escrow/native/program/Cargo.toml
index b34879e7e..2c7628e2b 100644
--- a/tokens/escrow/native/program/Cargo.toml
+++ b/tokens/escrow/native/program/Cargo.toml
@@ -14,7 +14,6 @@ thiserror="1.0.0"
crate-type = ["cdylib", "lib"]
[features]
-anchor-debug = []
custom-heap = []
custom-panic = []
diff --git a/tokens/token-2022/default-account-state/native/program/Cargo.toml b/tokens/token-2022/default-account-state/native/program/Cargo.toml
index 61a0a0657..816589343 100644
--- a/tokens/token-2022/default-account-state/native/program/Cargo.toml
+++ b/tokens/token-2022/default-account-state/native/program/Cargo.toml
@@ -16,7 +16,6 @@ spl-token-2022-interface.workspace = true
crate-type = ["cdylib", "lib"]
[features]
-anchor-debug = []
custom-heap = []
custom-panic = []
diff --git a/tokens/token-2022/mint-close-authority/native/program/Cargo.toml b/tokens/token-2022/mint-close-authority/native/program/Cargo.toml
index 90d5680e8..79a3314e3 100644
--- a/tokens/token-2022/mint-close-authority/native/program/Cargo.toml
+++ b/tokens/token-2022/mint-close-authority/native/program/Cargo.toml
@@ -14,7 +14,6 @@ spl-token-2022-interface.workspace = true
crate-type = ["cdylib", "lib"]
[features]
-anchor-debug = []
custom-heap = []
custom-panic = []
diff --git a/tokens/token-2022/multiple-extensions/native/program/Cargo.toml b/tokens/token-2022/multiple-extensions/native/program/Cargo.toml
index ee0059f76..d8d654eeb 100644
--- a/tokens/token-2022/multiple-extensions/native/program/Cargo.toml
+++ b/tokens/token-2022/multiple-extensions/native/program/Cargo.toml
@@ -14,7 +14,6 @@ spl-token-2022-interface.workspace = true
crate-type = ["cdylib", "lib"]
[features]
-anchor-debug = []
custom-heap = []
custom-panic = []
diff --git a/tokens/token-2022/non-transferable/native/program/Cargo.toml b/tokens/token-2022/non-transferable/native/program/Cargo.toml
index e1e70d034..e9b2e245c 100644
--- a/tokens/token-2022/non-transferable/native/program/Cargo.toml
+++ b/tokens/token-2022/non-transferable/native/program/Cargo.toml
@@ -14,7 +14,6 @@ spl-token-2022-interface.workspace = true
crate-type = ["cdylib", "lib"]
[features]
-anchor-debug = []
custom-heap = []
custom-panic = []
diff --git a/tokens/token-2022/transfer-fee/native/program/Cargo.toml b/tokens/token-2022/transfer-fee/native/program/Cargo.toml
index 059200c66..12df149e9 100644
--- a/tokens/token-2022/transfer-fee/native/program/Cargo.toml
+++ b/tokens/token-2022/transfer-fee/native/program/Cargo.toml
@@ -14,7 +14,6 @@ spl-token-2022-interface.workspace = true
crate-type = ["cdylib", "lib"]
[features]
-anchor-debug = []
custom-heap = []
custom-panic = []
From 0c3ad4704bb045a9a2bbefb1ed021cc774757779 Mon Sep 17 00:00:00 2001
From: Perelyn <64838956+Perelyn-sama@users.noreply.github.com>
Date: Sat, 29 Nov 2025 03:45:37 +0100
Subject: [PATCH 04/49] feat: add counter example pinocchio (#464)
* add counter example pinocchio
* Update Cargo.toml
---
Cargo.lock | 17 +
Cargo.toml | 2 +
basics/counter/native/program/tests/test.rs | 6 +-
basics/counter/pinocchio/README.md | 14 +
basics/counter/pinocchio/package.json | 29 +
basics/counter/pinocchio/pnpm-lock.yaml | 1295 +++++++++++++++++
basics/counter/pinocchio/program/Cargo.toml | 32 +
basics/counter/pinocchio/program/src/lib.rs | 70 +
basics/counter/pinocchio/program/src/state.rs | 3 +
.../counter/pinocchio/program/tests/test.rs | 64 +
.../counter/pinocchio/tests/counter.test.ts | 13 +
.../pinocchio/tests/tsconfig.test.json | 10 +
12 files changed, 1551 insertions(+), 4 deletions(-)
create mode 100644 basics/counter/pinocchio/README.md
create mode 100644 basics/counter/pinocchio/package.json
create mode 100644 basics/counter/pinocchio/pnpm-lock.yaml
create mode 100644 basics/counter/pinocchio/program/Cargo.toml
create mode 100644 basics/counter/pinocchio/program/src/lib.rs
create mode 100644 basics/counter/pinocchio/program/src/state.rs
create mode 100644 basics/counter/pinocchio/program/tests/test.rs
create mode 100644 basics/counter/pinocchio/tests/counter.test.ts
create mode 100644 basics/counter/pinocchio/tests/tsconfig.test.json
diff --git a/Cargo.lock b/Cargo.lock
index 95d0b44b4..4e5c0c11c 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1021,6 +1021,23 @@ dependencies = [
"solana-transaction",
]
+[[package]]
+name = "counter-solana-pinocchio"
+version = "0.1.0"
+dependencies = [
+ "litesvm",
+ "pinocchio",
+ "pinocchio-log",
+ "pinocchio-pubkey",
+ "solana-instruction 3.0.0",
+ "solana-keypair",
+ "solana-native-token 3.0.0",
+ "solana-pubkey 3.0.0",
+ "solana-rent 3.0.0",
+ "solana-system-interface 2.0.0",
+ "solana-transaction",
+]
+
[[package]]
name = "counter_anchor"
version = "0.1.0"
diff --git a/Cargo.toml b/Cargo.toml
index ed744874f..3ab5b25d3 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -11,6 +11,7 @@ members = [
"basics/close-account/pinocchio/program",
"basics/close-account/anchor/programs/close-account",
"basics/counter/native/program",
+ "basics/counter/pinocchio/program",
"basics/counter/anchor/programs/counter_anchor",
"basics/counter/mpl-stack",
"basics/create-account/native/program",
@@ -71,6 +72,7 @@ spl-token-2022-interface = "2.0.0"
pinocchio = "0.9.2"
pinocchio-log = "0.4.0"
pinocchio-system = "0.4.0"
+pinocchio-pubkey = "0.3.0"
# testing
litesvm = "0.8.1"
diff --git a/basics/counter/native/program/tests/test.rs b/basics/counter/native/program/tests/test.rs
index 05936d443..474631327 100644
--- a/basics/counter/native/program/tests/test.rs
+++ b/basics/counter/native/program/tests/test.rs
@@ -53,11 +53,9 @@ fn test_counter() {
svm.latest_blockhash(),
);
- dbg!(&[0].split_at(1));
-
let _ = svm.send_transaction(tx).is_ok();
let counter_account_data = svm.get_account(&counter_account.pubkey()).unwrap().data;
- let couneter = Counter::try_from_slice(&counter_account_data).unwrap();
- assert_eq!(couneter.count, 1);
+ let counter = Counter::try_from_slice(&counter_account_data).unwrap();
+ assert_eq!(counter.count, 1);
}
diff --git a/basics/counter/pinocchio/README.md b/basics/counter/pinocchio/README.md
new file mode 100644
index 000000000..c50d4896a
--- /dev/null
+++ b/basics/counter/pinocchio/README.md
@@ -0,0 +1,14 @@
+# Counter: Solana Pinocchio
+
+This example program is written in Solana using only the Solana toolsuite.
+
+## Setup
+
+1. Build the program with `cargo build-sbf`
+2. Run tests + local validator with `yarn test`
+
+## Debugging
+
+1. Start test validator with `yarn start-validator`
+2. Start listening to program logs with `solana config set -ul && solana logs`
+3. Run tests with `yarn run-tests`
diff --git a/basics/counter/pinocchio/package.json b/basics/counter/pinocchio/package.json
new file mode 100644
index 000000000..3004c87d4
--- /dev/null
+++ b/basics/counter/pinocchio/package.json
@@ -0,0 +1,29 @@
+{
+ "name": "counter-solana-pinocchio",
+ "version": "0.1.0",
+ "description": "Counter program written using only Solana tooling",
+ "main": "index.js",
+ "author": "ngundotra",
+ "license": "Apache-2.0",
+ "private": false,
+ "type": "module",
+ "scripts": {
+ "test": "pnpm ts-mocha -p ./tests/tsconfig.test.json -t 1000000 ./tests/counter.test.ts",
+ "build-and-test": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./tests/fixtures && pnpm test",
+ "build": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./program/target/so",
+ "deploy": "solana program deploy ./program/target/so/program.so"
+ },
+ "devDependencies": {
+ "@types/bn.js": "^5.1.0",
+ "@types/chai": "^4.3.1",
+ "@types/mocha": "^9.1.1",
+ "chai": "^4.3.4",
+ "mocha": "^9.0.3",
+ "solana-bankrun": "^0.3.0",
+ "ts-mocha": "^10.0.0",
+ "typescript": "^4.3.5"
+ },
+ "dependencies": {
+ "@solana/web3.js": "^1.91.4"
+ }
+}
diff --git a/basics/counter/pinocchio/pnpm-lock.yaml b/basics/counter/pinocchio/pnpm-lock.yaml
new file mode 100644
index 000000000..5d5d40850
--- /dev/null
+++ b/basics/counter/pinocchio/pnpm-lock.yaml
@@ -0,0 +1,1295 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ dependencies:
+ '@solana/web3.js':
+ specifier: ^1.91.4
+ version: 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ devDependencies:
+ '@types/bn.js':
+ specifier: ^5.1.0
+ version: 5.1.5
+ '@types/chai':
+ specifier: ^4.3.1
+ version: 4.3.16
+ '@types/mocha':
+ specifier: ^9.1.1
+ version: 9.1.1
+ chai:
+ specifier: ^4.3.4
+ version: 4.4.1
+ mocha:
+ specifier: ^9.0.3
+ version: 9.2.2
+ solana-bankrun:
+ specifier: ^0.3.0
+ version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ts-mocha:
+ specifier: ^10.0.0
+ version: 10.0.0(mocha@9.2.2)
+ typescript:
+ specifier: ^4.3.5
+ version: 4.9.5
+
+packages:
+
+ '@babel/runtime@7.24.5':
+ resolution: {integrity: sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==}
+ engines: {node: '>=6.9.0'}
+
+ '@noble/curves@1.4.0':
+ resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==}
+
+ '@noble/hashes@1.4.0':
+ resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==}
+ engines: {node: '>= 16'}
+
+ '@solana/buffer-layout@4.0.1':
+ resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
+ engines: {node: '>=5.10'}
+
+ '@solana/web3.js@1.91.8':
+ resolution: {integrity: sha512-USa6OS1jbh8zOapRJ/CBZImZ8Xb7AJjROZl5adql9TpOoBN9BUzyyouS5oPuZHft7S7eB8uJPuXWYjMi6BHgOw==}
+
+ '@types/bn.js@5.1.5':
+ resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==}
+
+ '@types/chai@4.3.16':
+ resolution: {integrity: sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ==}
+
+ '@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@20.12.11':
+ resolution: {integrity: sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==}
+
+ '@types/ws@7.4.7':
+ resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
+
+ '@ungap/promise-all-settled@1.1.2':
+ resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==}
+
+ JSONStream@1.3.5:
+ resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
+ hasBin: true
+
+ agentkeepalive@4.5.0:
+ resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
+ 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.9:
+ resolution: {integrity: sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==}
+
+ base64-js@1.5.1:
+ resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+
+ bigint-buffer@1.1.5:
+ resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==}
+ engines: {node: '>= 10.0.0'}
+
+ binary-extensions@2.3.0:
+ resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
+ engines: {node: '>=8'}
+
+ bindings@1.5.0:
+ resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
+
+ 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.2:
+ resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
+ 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.8:
+ resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==}
+ engines: {node: '>=6.14.2'}
+
+ camelcase@6.3.0:
+ resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
+ engines: {node: '>=10'}
+
+ chai@4.4.1:
+ resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==}
+ engines: {node: '>=4'}
+
+ chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+
+ 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@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.3:
+ resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==}
+ 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.1.2:
+ resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
+ engines: {node: '>=6'}
+
+ escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+
+ eventemitter3@4.0.7:
+ resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
+
+ 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==}
+
+ file-uri-to-path@1.0.0:
+ resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
+
+ fill-range@7.0.1:
+ resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
+ 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==}
+
+ 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==}
+
+ 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.1.0:
+ resolution: {integrity: sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==}
+ 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
+
+ jsonparse@1.3.1:
+ resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
+ engines: {'0': node >= 0.2.0}
+
+ 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.1:
+ resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==}
+ 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@7.11.0:
+ resolution: {integrity: sha512-IkLYjayPv6Io8C/TdCL5gwgzd1hFz2vmBZrjMw/SPEXo51ETOhnzgS4Qy5GWi2JQN7HKHa66J3+2mv0fgNh/7w==}
+
+ 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.0:
+ resolution: {integrity: sha512-+NbDncf0U6l3knuacRBiqpjZ2DSp+5lZaAU518gH7/x6qubbui/d000STaIBK+uNTPBS/AL/bCN+7PkXqmA3lA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ solana-bankrun-darwin-universal@0.3.0:
+ resolution: {integrity: sha512-1/F0xdMa4qvc5o6z16FCCbZ5jbdvKvxpx5kyPcMWRiRPwyvi+zltMxciPAYMlg3wslQqGz88uFhrBEzq2eTumQ==}
+ engines: {node: '>= 10'}
+ os: [darwin]
+
+ solana-bankrun-darwin-x64@0.3.0:
+ resolution: {integrity: sha512-U6CANjkmMl+lgNA7UH0GKs5V7LtVIUDzJBZefGGqLfqUNv3EjA/PrrToM0hAOWJgkxSwdz6zW+p5sw5FmnbXtg==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ solana-bankrun-linux-x64-gnu@0.3.0:
+ resolution: {integrity: sha512-qJSkCFs0k2n4XtTnyxGMiZsuqO2TiqTYgWjQ+3mZhGNUAMys/Vq8bd7/SyBm6RR7EfVuRXRxZvh+F8oKZ77V4w==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ solana-bankrun-linux-x64-musl@0.3.0:
+ resolution: {integrity: sha512-xsS2CS2xb1Sw4ivNXM0gPz/qpW9BX0neSvt/pnok5L330Nu9xlTnKAY8FhzzqOP9P9sJlGRM787Y6d0yYwt6xQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ solana-bankrun@0.3.0:
+ resolution: {integrity: sha512-YkH7sa8TB/AoRPzG17CXJtYsRIQHEkEqGLz1Vwc13taXhDBkjO7z6NI5JYw7n0ybRymDHwMYTc7sd+5J40TyVQ==}
+ 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'}
+
+ 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@0.14.2:
+ resolution: {integrity: sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==}
+
+ 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==}
+
+ through@2.3.8:
+ resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
+
+ 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.0.0:
+ resolution: {integrity: sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw==}
+ 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
+
+ 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==}
+
+ type-detect@4.0.8:
+ resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
+ engines: {node: '>=4'}
+
+ typescript@4.9.5:
+ resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
+ engines: {node: '>=4.2.0'}
+ hasBin: true
+
+ undici-types@5.26.5:
+ resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
+
+ 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.9:
+ resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
+ 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.17.0:
+ resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==}
+ 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.24.5':
+ dependencies:
+ regenerator-runtime: 0.14.1
+
+ '@noble/curves@1.4.0':
+ dependencies:
+ '@noble/hashes': 1.4.0
+
+ '@noble/hashes@1.4.0': {}
+
+ '@solana/buffer-layout@4.0.1':
+ dependencies:
+ buffer: 6.0.3
+
+ '@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@babel/runtime': 7.24.5
+ '@noble/curves': 1.4.0
+ '@noble/hashes': 1.4.0
+ '@solana/buffer-layout': 4.0.1
+ agentkeepalive: 4.5.0
+ bigint-buffer: 1.1.5
+ bn.js: 5.2.1
+ borsh: 0.7.0
+ bs58: 4.0.1
+ buffer: 6.0.3
+ fast-stable-stringify: 1.0.0
+ jayson: 4.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ node-fetch: 2.7.0
+ rpc-websockets: 7.11.0
+ superstruct: 0.14.2
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - utf-8-validate
+
+ '@types/bn.js@5.1.5':
+ dependencies:
+ '@types/node': 20.12.11
+
+ '@types/chai@4.3.16': {}
+
+ '@types/connect@3.4.38':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@types/json5@0.0.29':
+ optional: true
+
+ '@types/mocha@9.1.1': {}
+
+ '@types/node@12.20.55': {}
+
+ '@types/node@20.12.11':
+ dependencies:
+ undici-types: 5.26.5
+
+ '@types/ws@7.4.7':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@ungap/promise-all-settled@1.1.2': {}
+
+ JSONStream@1.3.5:
+ dependencies:
+ jsonparse: 1.3.1
+ through: 2.3.8
+
+ agentkeepalive@4.5.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.9:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ base64-js@1.5.1: {}
+
+ bigint-buffer@1.1.5:
+ dependencies:
+ bindings: 1.5.0
+
+ binary-extensions@2.3.0: {}
+
+ bindings@1.5.0:
+ dependencies:
+ file-uri-to-path: 1.0.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.2:
+ dependencies:
+ fill-range: 7.0.1
+
+ browser-stdout@1.3.1: {}
+
+ bs58@4.0.1:
+ dependencies:
+ base-x: 3.0.9
+
+ buffer-from@1.1.2: {}
+
+ buffer@6.0.3:
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
+ bufferutil@4.0.8:
+ dependencies:
+ node-gyp-build: 4.8.1
+ optional: true
+
+ camelcase@6.3.0: {}
+
+ chai@4.4.1:
+ dependencies:
+ assertion-error: 1.1.0
+ check-error: 1.0.3
+ deep-eql: 4.1.3
+ get-func-name: 2.0.2
+ loupe: 2.3.7
+ pathval: 1.1.1
+ type-detect: 4.0.8
+
+ chalk@4.1.2:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ check-error@1.0.3:
+ dependencies:
+ get-func-name: 2.0.2
+
+ chokidar@3.5.3:
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.2
+ 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@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.3:
+ dependencies:
+ type-detect: 4.0.8
+
+ 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.1.2: {}
+
+ escape-string-regexp@4.0.0: {}
+
+ eventemitter3@4.0.7: {}
+
+ eyes@0.1.8: {}
+
+ fast-stable-stringify@1.0.0: {}
+
+ file-uri-to-path@1.0.0: {}
+
+ fill-range@7.0.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.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
+ dependencies:
+ ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+
+ jayson@4.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ dependencies:
+ '@types/connect': 3.4.38
+ '@types/node': 12.20.55
+ '@types/ws': 7.4.7
+ JSONStream: 1.3.5
+ commander: 2.20.3
+ delay: 5.0.0
+ es6-promisify: 5.0.0
+ eyes: 0.1.8
+ isomorphic-ws: 4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ json-stringify-safe: 5.0.1
+ uuid: 8.3.2
+ ws: 7.5.9(bufferutil@4.0.8)(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
+
+ jsonparse@1.3.1: {}
+
+ 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.1:
+ 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@7.11.0:
+ dependencies:
+ eventemitter3: 4.0.7
+ uuid: 8.3.2
+ ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ optionalDependencies:
+ bufferutil: 4.0.8
+ 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.0:
+ optional: true
+
+ solana-bankrun-darwin-universal@0.3.0:
+ optional: true
+
+ solana-bankrun-darwin-x64@0.3.0:
+ optional: true
+
+ solana-bankrun-linux-x64-gnu@0.3.0:
+ optional: true
+
+ solana-bankrun-linux-x64-musl@0.3.0:
+ optional: true
+
+ solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ dependencies:
+ '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ bs58: 4.0.1
+ optionalDependencies:
+ solana-bankrun-darwin-arm64: 0.3.0
+ solana-bankrun-darwin-universal: 0.3.0
+ solana-bankrun-darwin-x64: 0.3.0
+ solana-bankrun-linux-x64-gnu: 0.3.0
+ solana-bankrun-linux-x64-musl: 0.3.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - 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: {}
+
+ 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@0.14.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: {}
+
+ through@2.3.8: {}
+
+ to-regex-range@5.0.1:
+ dependencies:
+ is-number: 7.0.0
+
+ tr46@0.0.3: {}
+
+ ts-mocha@10.0.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
+
+ type-detect@4.0.8: {}
+
+ typescript@4.9.5: {}
+
+ undici-types@5.26.5: {}
+
+ utf-8-validate@5.0.10:
+ dependencies:
+ node-gyp-build: 4.8.1
+ 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.9(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ optionalDependencies:
+ bufferutil: 4.0.8
+ utf-8-validate: 5.0.10
+
+ ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ optionalDependencies:
+ bufferutil: 4.0.8
+ 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.1.2
+ 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/counter/pinocchio/program/Cargo.toml b/basics/counter/pinocchio/program/Cargo.toml
new file mode 100644
index 000000000..28257f62a
--- /dev/null
+++ b/basics/counter/pinocchio/program/Cargo.toml
@@ -0,0 +1,32 @@
+[package]
+name = "counter-solana-pinocchio"
+version = "0.1.0"
+edition = "2021"
+
+[lib]
+crate-type = ["cdylib", "lib"]
+
+[features]
+no-entrypoint = []
+cpi = ["no-entrypoint"]
+default = []
+custom-heap = []
+custom-panic = []
+
+[dependencies]
+pinocchio.workspace = true
+pinocchio-log.workspace = true
+pinocchio-pubkey.workspace = true
+
+[lints.rust]
+unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] }
+
+[dev-dependencies]
+litesvm = "0.8.1"
+solana-instruction = "3.0.0"
+solana-keypair = "3.0.1"
+solana-native-token = "3.0.0"
+solana-pubkey = "3.0.0"
+solana-transaction = "3.0.1"
+solana-rent = "3.0.0"
+solana-system-interface.workspace = true
diff --git a/basics/counter/pinocchio/program/src/lib.rs b/basics/counter/pinocchio/program/src/lib.rs
new file mode 100644
index 000000000..3d17bed27
--- /dev/null
+++ b/basics/counter/pinocchio/program/src/lib.rs
@@ -0,0 +1,70 @@
+#![no_std]
+#![allow(deprecated)]
+
+use pinocchio::{
+ account_info::AccountInfo, nostd_panic_handler, program_error::ProgramError, pubkey::Pubkey,
+ ProgramResult,
+};
+use pinocchio_log::log;
+
+mod state;
+pub use state::*;
+
+pinocchio_pubkey::declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS");
+
+#[cfg(not(feature = "no-entrypoint"))]
+use pinocchio::entrypoint;
+
+#[cfg(not(feature = "no-entrypoint"))]
+entrypoint!(process_instruction);
+
+nostd_panic_handler!();
+
+pub fn process_instruction(
+ _program_id: &Pubkey,
+ accounts: &[AccountInfo],
+ instruction_data: &[u8],
+) -> ProgramResult {
+ let (instruction_discriminant, instruction_data_inner) = instruction_data.split_at(1);
+ match instruction_discriminant[0] {
+ 0 => {
+ log!("Instruction: Increment");
+ process_increment_counter(accounts, instruction_data_inner)?;
+ }
+ _ => {
+ log!("Error: unknown instruction");
+ }
+ }
+ Ok(())
+}
+
+pub fn process_increment_counter(
+ accounts: &[AccountInfo],
+ _instruction_data: &[u8],
+) -> Result<(), ProgramError> {
+ let [counter_account] = accounts else {
+ return Err(ProgramError::NotEnoughAccountKeys);
+ };
+
+ assert!(
+ counter_account.is_writable(),
+ "Counter account must be writable"
+ );
+
+ let mut counter_account_data = counter_account.try_borrow_mut_data()?;
+
+ // Read the current counter value (first 8 bytes)
+ let counter_bytes: [u8; 8] = counter_account_data[0..8]
+ .try_into()
+ .map_err(|_| ProgramError::InvalidInstructionData)?;
+ let counter = u64::from_le_bytes(counter_bytes);
+
+ // Increment the counter
+ let new_counter = counter + 1;
+
+ // Write the new counter value back
+ counter_account_data[0..8].copy_from_slice(&new_counter.to_le_bytes());
+
+ log!(8, "Counter incremented to {}", new_counter);
+ Ok(())
+}
diff --git a/basics/counter/pinocchio/program/src/state.rs b/basics/counter/pinocchio/program/src/state.rs
new file mode 100644
index 000000000..b6b4c73e2
--- /dev/null
+++ b/basics/counter/pinocchio/program/src/state.rs
@@ -0,0 +1,3 @@
+pub struct Counter {
+ pub count: u64,
+}
diff --git a/basics/counter/pinocchio/program/tests/test.rs b/basics/counter/pinocchio/program/tests/test.rs
new file mode 100644
index 000000000..b1eb2ccff
--- /dev/null
+++ b/basics/counter/pinocchio/program/tests/test.rs
@@ -0,0 +1,64 @@
+use counter_solana_pinocchio::Counter;
+use litesvm::LiteSVM;
+use solana_instruction::{AccountMeta, Instruction};
+use solana_keypair::{Keypair, Signer};
+use solana_native_token::LAMPORTS_PER_SOL;
+use solana_pubkey::Pubkey;
+use solana_rent::Rent;
+use solana_system_interface::instruction::create_account;
+use solana_transaction::Transaction;
+
+#[test]
+fn test_counter() {
+ let program_id = Pubkey::new_unique();
+ let program_bytes = include_bytes!("../../tests/fixtures/counter_solana_pinocchio.so");
+
+ let mut svm = LiteSVM::new();
+ svm.add_program(program_id, program_bytes).unwrap();
+
+ let payer = Keypair::new();
+ let counter_account = Keypair::new();
+
+ svm.airdrop(&payer.pubkey(), LAMPORTS_PER_SOL * 10).unwrap();
+
+ let counter_account_size = std::mem::size_of::();
+
+ let create_ix = create_account(
+ &payer.pubkey(),
+ &counter_account.pubkey(),
+ Rent::default().minimum_balance(counter_account_size),
+ counter_account_size as u64,
+ &program_id,
+ );
+
+ let tx = Transaction::new_signed_with_payer(
+ &[create_ix],
+ Some(&payer.pubkey()),
+ &[&payer, &counter_account],
+ svm.latest_blockhash(),
+ );
+
+ let res = svm.send_transaction(tx);
+ assert!(res.is_ok());
+
+ let ix = Instruction {
+ program_id,
+ accounts: vec![AccountMeta::new(counter_account.pubkey(), false)],
+ data: vec![0],
+ };
+
+ let tx = Transaction::new_signed_with_payer(
+ &[ix],
+ Some(&payer.pubkey()),
+ &[payer],
+ svm.latest_blockhash(),
+ );
+
+ let res = svm.send_transaction(tx);
+ assert!(res.is_ok());
+
+ let counter_account_data = svm.get_account(&counter_account.pubkey()).unwrap().data;
+ let counter_bytes: [u8; 8] = counter_account_data[0..8].try_into().unwrap();
+ let count = u64::from_le_bytes(counter_bytes);
+ assert_eq!(count, 1);
+}
diff --git a/basics/counter/pinocchio/tests/counter.test.ts b/basics/counter/pinocchio/tests/counter.test.ts
new file mode 100644
index 000000000..c8ddf656f
--- /dev/null
+++ b/basics/counter/pinocchio/tests/counter.test.ts
@@ -0,0 +1,13 @@
+import { describe, test } from "node:test";
+import {
+ Keypair,
+ SystemProgram,
+ Transaction,
+ type TransactionInstruction,
+} from "@solana/web3.js";
+import { assert } from "chai";
+import { start } from "solana-bankrun";
+
+describe("Counter Solana Pinocchio", async () => {
+ console.log("Counter Solana Pinocchio");
+});
diff --git a/basics/counter/pinocchio/tests/tsconfig.test.json b/basics/counter/pinocchio/tests/tsconfig.test.json
new file mode 100644
index 000000000..cd5d2e3d0
--- /dev/null
+++ b/basics/counter/pinocchio/tests/tsconfig.test.json
@@ -0,0 +1,10 @@
+{
+ "compilerOptions": {
+ "types": ["mocha", "chai"],
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2015"],
+ "module": "commonjs",
+ "target": "es6",
+ "esModuleInterop": true
+ }
+}
From c1be7510e35f23bff0c36b7c3300c53492e8e55d Mon Sep 17 00:00:00 2001
From: Perelyn <64838956+Perelyn-sama@users.noreply.github.com>
Date: Sat, 29 Nov 2025 03:46:07 +0100
Subject: [PATCH 05/49] feat: add create account pinocchio example (#465)
* add create account pinocchio example
* Update lib.rs
* Update Cargo.toml
---
Cargo.lock | 17 +
Cargo.toml | 1 +
basics/create-account/pinocchio/cicd.sh | 8 +
basics/create-account/pinocchio/package.json | 22 +
.../create-account/pinocchio/pnpm-lock.yaml | 1342 +++++++++++++++++
.../pinocchio/program/Cargo.toml | 29 +
.../pinocchio/program/src/lib.rs | 41 +
.../pinocchio/program/tests/test.rs | 39 +
basics/create-account/pinocchio/tests/test.ts | 63 +
basics/create-account/pinocchio/tsconfig.json | 10 +
10 files changed, 1572 insertions(+)
create mode 100644 basics/create-account/pinocchio/cicd.sh
create mode 100644 basics/create-account/pinocchio/package.json
create mode 100644 basics/create-account/pinocchio/pnpm-lock.yaml
create mode 100644 basics/create-account/pinocchio/program/Cargo.toml
create mode 100644 basics/create-account/pinocchio/program/src/lib.rs
create mode 100644 basics/create-account/pinocchio/program/tests/test.rs
create mode 100644 basics/create-account/pinocchio/tests/test.ts
create mode 100644 basics/create-account/pinocchio/tsconfig.json
diff --git a/Cargo.lock b/Cargo.lock
index 4e5c0c11c..31a7851e6 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1054,6 +1054,23 @@ dependencies = [
"libc",
]
+[[package]]
+name = "create-account-pinocchio-program"
+version = "0.1.0"
+dependencies = [
+ "litesvm",
+ "pinocchio",
+ "pinocchio-log",
+ "pinocchio-pubkey",
+ "pinocchio-system",
+ "solana-instruction 3.0.0",
+ "solana-keypair",
+ "solana-native-token 3.0.0",
+ "solana-pubkey 3.0.0",
+ "solana-system-interface 2.0.0",
+ "solana-transaction",
+]
+
[[package]]
name = "create-account-program"
version = "0.1.0"
diff --git a/Cargo.toml b/Cargo.toml
index 3ab5b25d3..4230d3236 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -15,6 +15,7 @@ members = [
"basics/counter/anchor/programs/counter_anchor",
"basics/counter/mpl-stack",
"basics/create-account/native/program",
+ "basics/create-account/pinocchio/program",
"basics/create-account/anchor/programs/create-system-account",
"basics/cross-program-invocation/anchor/programs/*",
"basics/hello-solana/native/program",
diff --git a/basics/create-account/pinocchio/cicd.sh b/basics/create-account/pinocchio/cicd.sh
new file mode 100644
index 000000000..0903cf896
--- /dev/null
+++ b/basics/create-account/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 --bpf-out-dir=./program/target/so
+solana program deploy ./program/target/so/program.so
diff --git a/basics/create-account/pinocchio/package.json b/basics/create-account/pinocchio/package.json
new file mode 100644
index 000000000..3cc45dbd5
--- /dev/null
+++ b/basics/create-account/pinocchio/package.json
@@ -0,0 +1,22 @@
+{
+ "type": "module",
+ "scripts": {
+ "test": "pnpm ts-mocha -p ./tsconfig.json -t 1000000 ./tests/test.ts",
+ "build-and-test": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./tests/fixtures && pnpm test",
+ "build": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./program/target/so",
+ "deploy": "solana program deploy ./program/target/so/program.so"
+ },
+ "dependencies": {
+ "@solana/web3.js": "^1.47.3"
+ },
+ "devDependencies": {
+ "@types/bn.js": "^5.1.0",
+ "@types/chai": "^4.3.1",
+ "@types/mocha": "^9.1.1",
+ "chai": "^4.3.4",
+ "mocha": "^9.0.3",
+ "solana-bankrun": "^0.3.0",
+ "ts-mocha": "^10.0.0",
+ "typescript": "^4.3.5"
+ }
+}
diff --git a/basics/create-account/pinocchio/pnpm-lock.yaml b/basics/create-account/pinocchio/pnpm-lock.yaml
new file mode 100644
index 000000000..315de63a2
--- /dev/null
+++ b/basics/create-account/pinocchio/pnpm-lock.yaml
@@ -0,0 +1,1342 @@
+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
+ 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.1':
+ resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==}
+ engines: {node: '>=6.9.0'}
+
+ '@noble/curves@1.9.1':
+ resolution: {integrity: sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==}
+ 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.1':
+ resolution: {integrity: sha512-iPQW3UZ2Vi7QFBo2r9tw0NubtH8EdrhhmZulx6lC8V5a+qjaxovtM/q/UW2BTNpqqHLfO0tIcLyBLrNH4HTWPg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.1.1':
+ resolution: {integrity: sha512-m20IUPJhPUmPkHSlZ2iMAjJ7PaYUvlMtFhCQYzm9BEBSI6OCvXTG3GAPpAnSGRBfg5y+QNqqmKn4QHU3B6zzCQ==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.1.1':
+ resolution: {integrity: sha512-sj6DaWNbSJFvLzT8UZoabMefQUfSW/8tXK7NTiagsDmh+Q87eyQDDC9L3z+mNmx9b6dEf6z660MOIplDD2nfEw==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@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.19':
+ resolution: {integrity: sha512-3vMNr4TzNQyjHcRZadojpRaD9Ofr6LsonZAoQ+HMUa/9ORTPoxVIw0e0mpqWpdjj8xybyCM+oKOUH2vwFu/oEw==}
+
+ '@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.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==}
+
+ 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'}
+
+ 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.2:
+ resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==}
+ 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.1': {}
+
+ '@noble/curves@1.9.1':
+ 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.1(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.1.1(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.1.1(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.1.1(typescript@4.9.5)
+ '@solana/errors': 2.1.1(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.1.1(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.1
+ '@noble/curves': 1.9.1
+ '@noble/hashes': 1.8.0
+ '@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.1.1(typescript@4.9.5)
+ agentkeepalive: 4.6.0
+ 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
+ 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.19
+
+ '@types/chai@4.3.20': {}
+
+ '@types/connect@3.4.38':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@types/json5@0.0.29':
+ optional: true
+
+ '@types/mocha@9.1.1': {}
+
+ '@types/node@12.20.55': {}
+
+ '@types/node@22.15.19':
+ dependencies:
+ undici-types: 6.21.0
+
+ '@types/uuid@8.3.4': {}
+
+ '@types/ws@7.4.7':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@types/ws@8.18.1':
+ dependencies:
+ '@types/node': 22.15.19
+
+ '@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.2: {}
+
+ borsh@0.7.0:
+ dependencies:
+ bn.js: 5.2.2
+ 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
+
+ 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.2(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.2(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/create-account/pinocchio/program/Cargo.toml b/basics/create-account/pinocchio/program/Cargo.toml
new file mode 100644
index 000000000..d6d61991a
--- /dev/null
+++ b/basics/create-account/pinocchio/program/Cargo.toml
@@ -0,0 +1,29 @@
+[package]
+name = "create-account-pinocchio-program"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
+pinocchio.workspace = true
+pinocchio-system.workspace = true
+pinocchio-log.workspace = true
+pinocchio-pubkey.workspace = true
+
+[lib]
+crate-type = ["cdylib", "lib"]
+
+[features]
+custom-heap = []
+custom-panic = []
+
+[lints.rust]
+unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] }
+
+[dev-dependencies]
+litesvm = "0.8.1"
+solana-instruction = "3.0.0"
+solana-keypair = "3.0.1"
+solana-native-token = "3.0.0"
+solana-pubkey = "3.0.0"
+solana-transaction = "3.0.1"
+solana-system-interface.workspace = true
diff --git a/basics/create-account/pinocchio/program/src/lib.rs b/basics/create-account/pinocchio/program/src/lib.rs
new file mode 100644
index 000000000..433cf14b8
--- /dev/null
+++ b/basics/create-account/pinocchio/program/src/lib.rs
@@ -0,0 +1,41 @@
+#![no_std]
+#![allow(deprecated)]
+
+use pinocchio::{
+ account_info::AccountInfo, entrypoint, nostd_panic_handler, program_error::ProgramError,
+ pubkey::Pubkey, ProgramResult,
+};
+use pinocchio_log::log;
+
+use pinocchio_system::instructions::CreateAccount;
+
+entrypoint!(process_instruction);
+nostd_panic_handler!();
+
+const LAMPORTS_PER_SOL: u64 = 1_000_000_000;
+
+fn process_instruction(
+ _program_id: &Pubkey,
+ accounts: &[AccountInfo],
+ _instruction_data: &[u8],
+) -> ProgramResult {
+ let [payer, new_account, _system_program] = accounts else {
+ return Err(ProgramError::NotEnoughAccountKeys);
+ };
+
+ log!("Program invoked. Creating a system account...");
+ log!(" New public key will be:");
+ pinocchio::pubkey::log(new_account.key());
+
+ CreateAccount {
+ from: payer,
+ to: new_account,
+ lamports: LAMPORTS_PER_SOL,
+ space: 0,
+ owner: &pinocchio_system::ID,
+ }
+ .invoke()?;
+
+ log!("Account created succesfully.");
+ Ok(())
+}
diff --git a/basics/create-account/pinocchio/program/tests/test.rs b/basics/create-account/pinocchio/program/tests/test.rs
new file mode 100644
index 000000000..a5466d03a
--- /dev/null
+++ b/basics/create-account/pinocchio/program/tests/test.rs
@@ -0,0 +1,39 @@
+use litesvm::LiteSVM;
+use solana_instruction::{AccountMeta, Instruction};
+use solana_keypair::{Keypair, Signer};
+use solana_native_token::LAMPORTS_PER_SOL;
+use solana_pubkey::Pubkey;
+use solana_transaction::Transaction;
+
+#[test]
+fn test_create_account() {
+ let program_id = Pubkey::new_unique();
+ let program_bytes = include_bytes!("../../tests/fixtures/create_account_pinocchio_program.so");
+
+ let payer = Keypair::new();
+ let new_keypair = Keypair::new();
+
+ let mut svm = LiteSVM::new();
+ svm.add_program(program_id, program_bytes).unwrap();
+ svm.airdrop(&payer.pubkey(), LAMPORTS_PER_SOL * 10).unwrap();
+
+ let ix = Instruction {
+ program_id,
+ accounts: vec![
+ AccountMeta::new(payer.pubkey(), true),
+ AccountMeta::new(new_keypair.pubkey(), true),
+ AccountMeta::new(solana_system_interface::program::ID, false),
+ ],
+ data: vec![0],
+ };
+
+ let tx = Transaction::new_signed_with_payer(
+ &[ix],
+ Some(&payer.pubkey()),
+ &[&payer, &new_keypair],
+ svm.latest_blockhash(),
+ );
+
+ let res = svm.send_transaction(tx);
+ assert!(res.is_ok());
+}
diff --git a/basics/create-account/pinocchio/tests/test.ts b/basics/create-account/pinocchio/tests/test.ts
new file mode 100644
index 000000000..3091b46e3
--- /dev/null
+++ b/basics/create-account/pinocchio/tests/test.ts
@@ -0,0 +1,63 @@
+import { describe, test } from "node:test";
+import {
+ Keypair,
+ LAMPORTS_PER_SOL,
+ PublicKey,
+ SystemProgram,
+ Transaction,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import { start } from "solana-bankrun";
+
+describe("Create a system account", async () => {
+ const PROGRAM_ID = PublicKey.unique();
+ const context = await start(
+ [{ name: "create_account_pinocchio_program", programId: PROGRAM_ID }],
+ [],
+ );
+ const client = context.banksClient;
+ const payer = context.payer;
+
+ test("Create the account via a cross program invocation", async () => {
+ const newKeypair = Keypair.generate();
+ const blockhash = context.lastBlockhash;
+
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: payer.publicKey, isSigner: true, isWritable: true },
+ { pubkey: newKeypair.publicKey, isSigner: true, isWritable: true },
+ { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
+ ],
+ programId: PROGRAM_ID,
+ data: Buffer.alloc(0),
+ });
+
+ const tx = new Transaction();
+ tx.recentBlockhash = blockhash;
+ tx.add(ix).sign(payer, newKeypair);
+
+ await client.processTransaction(tx);
+ });
+
+ test("Create the account via direct call to system program", async () => {
+ const newKeypair = Keypair.generate();
+ const blockhash = context.lastBlockhash;
+
+ const ix = SystemProgram.createAccount({
+ fromPubkey: payer.publicKey,
+ newAccountPubkey: newKeypair.publicKey,
+ lamports: LAMPORTS_PER_SOL,
+ space: 0,
+ programId: SystemProgram.programId,
+ });
+
+ const tx = new Transaction();
+ tx.recentBlockhash = blockhash;
+ tx.add(ix).sign(payer, newKeypair);
+
+ await client.processTransaction(tx);
+ console.log(
+ `Account with public key ${newKeypair.publicKey} successfully created`,
+ );
+ });
+});
diff --git a/basics/create-account/pinocchio/tsconfig.json b/basics/create-account/pinocchio/tsconfig.json
new file mode 100644
index 000000000..cd5d2e3d0
--- /dev/null
+++ b/basics/create-account/pinocchio/tsconfig.json
@@ -0,0 +1,10 @@
+{
+ "compilerOptions": {
+ "types": ["mocha", "chai"],
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2015"],
+ "module": "commonjs",
+ "target": "es6",
+ "esModuleInterop": true
+ }
+}
From e7aca08aadc345b787e53b5148da975fcd6641b3 Mon Sep 17 00:00:00 2001
From: Perelyn <64838956+Perelyn-sama@users.noreply.github.com>
Date: Wed, 3 Dec 2025 05:10:39 +0100
Subject: [PATCH 06/49] feat: add transfer-sol pinocchio example (#468)
---
Cargo.lock | 15 +
Cargo.toml | 1 +
basics/transfer-sol/pinocchio/cicd.sh | 8 +
basics/transfer-sol/pinocchio/package.json | 24 +
basics/transfer-sol/pinocchio/pnpm-lock.yaml | 1359 +++++++++++++++++
.../transfer-sol/pinocchio/program/Cargo.toml | 27 +
.../transfer-sol/pinocchio/program/src/lib.rs | 62 +
.../pinocchio/program/tests/test.rs | 98 ++
basics/transfer-sol/pinocchio/tests/test.ts | 13 +
basics/transfer-sol/pinocchio/tsconfig.json | 10 +
10 files changed, 1617 insertions(+)
create mode 100644 basics/transfer-sol/pinocchio/cicd.sh
create mode 100644 basics/transfer-sol/pinocchio/package.json
create mode 100644 basics/transfer-sol/pinocchio/pnpm-lock.yaml
create mode 100644 basics/transfer-sol/pinocchio/program/Cargo.toml
create mode 100644 basics/transfer-sol/pinocchio/program/src/lib.rs
create mode 100644 basics/transfer-sol/pinocchio/program/tests/test.rs
create mode 100644 basics/transfer-sol/pinocchio/tests/test.ts
create mode 100644 basics/transfer-sol/pinocchio/tsconfig.json
diff --git a/Cargo.lock b/Cargo.lock
index 31a7851e6..d9868676d 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -5682,6 +5682,21 @@ dependencies = [
"anchor-lang",
]
+[[package]]
+name = "transfer-sol-pinocchio-program"
+version = "0.1.0"
+dependencies = [
+ "litesvm",
+ "pinocchio",
+ "pinocchio-system",
+ "solana-instruction 3.0.0",
+ "solana-keypair",
+ "solana-native-token 3.0.0",
+ "solana-pubkey 3.0.0",
+ "solana-system-interface 2.0.0",
+ "solana-transaction",
+]
+
[[package]]
name = "transfer-sol-program"
version = "0.1.0"
diff --git a/Cargo.toml b/Cargo.toml
index 4230d3236..114e4ba0c 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -35,6 +35,7 @@ members = [
"basics/repository-layout/native/program",
"basics/repository-layout/anchor/programs/*",
"basics/transfer-sol/native/program",
+ "basics/transfer-sol/pinocchio/program",
"basics/transfer-sol/anchor/programs/*",
# tokens
diff --git a/basics/transfer-sol/pinocchio/cicd.sh b/basics/transfer-sol/pinocchio/cicd.sh
new file mode 100644
index 000000000..0903cf896
--- /dev/null
+++ b/basics/transfer-sol/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 --bpf-out-dir=./program/target/so
+solana program deploy ./program/target/so/program.so
diff --git a/basics/transfer-sol/pinocchio/package.json b/basics/transfer-sol/pinocchio/package.json
new file mode 100644
index 000000000..b11e23edd
--- /dev/null
+++ b/basics/transfer-sol/pinocchio/package.json
@@ -0,0 +1,24 @@
+{
+ "type": "module",
+ "scripts": {
+ "test": "pnpm ts-mocha -p ./tsconfig.json -t 1000000 ./tests/test.ts",
+ "build-and-test": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./tests/fixtures && pnpm test",
+ "build": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./program/target/so",
+ "deploy": "solana program deploy ./program/target/so/program.so"
+ },
+ "dependencies": {
+ "@solana/web3.js": "^1.47.3",
+ "buffer-layout": "^1.2.2",
+ "fs": "^0.0.1-security"
+ },
+ "devDependencies": {
+ "@types/bn.js": "^5.1.0",
+ "@types/chai": "^4.3.1",
+ "@types/mocha": "^9.1.1",
+ "chai": "^4.3.4",
+ "mocha": "^9.0.3",
+ "solana-bankrun": "^0.3.0",
+ "ts-mocha": "^10.0.0",
+ "typescript": "^4.3.5"
+ }
+}
diff --git a/basics/transfer-sol/pinocchio/pnpm-lock.yaml b/basics/transfer-sol/pinocchio/pnpm-lock.yaml
new file mode 100644
index 000000000..6901d9d9d
--- /dev/null
+++ b/basics/transfer-sol/pinocchio/pnpm-lock.yaml
@@ -0,0 +1,1359 @@
+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)
+ buffer-layout:
+ specifier: ^1.2.2
+ version: 1.2.2
+ fs:
+ specifier: ^0.0.1-security
+ version: 0.0.1-security
+ 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
+ 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.1':
+ resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==}
+ engines: {node: '>=6.9.0'}
+
+ '@noble/curves@1.9.1':
+ resolution: {integrity: sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==}
+ 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.1':
+ resolution: {integrity: sha512-iPQW3UZ2Vi7QFBo2r9tw0NubtH8EdrhhmZulx6lC8V5a+qjaxovtM/q/UW2BTNpqqHLfO0tIcLyBLrNH4HTWPg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.1.1':
+ resolution: {integrity: sha512-m20IUPJhPUmPkHSlZ2iMAjJ7PaYUvlMtFhCQYzm9BEBSI6OCvXTG3GAPpAnSGRBfg5y+QNqqmKn4QHU3B6zzCQ==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.1.1':
+ resolution: {integrity: sha512-sj6DaWNbSJFvLzT8UZoabMefQUfSW/8tXK7NTiagsDmh+Q87eyQDDC9L3z+mNmx9b6dEf6z660MOIplDD2nfEw==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@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.19':
+ resolution: {integrity: sha512-3vMNr4TzNQyjHcRZadojpRaD9Ofr6LsonZAoQ+HMUa/9ORTPoxVIw0e0mpqWpdjj8xybyCM+oKOUH2vwFu/oEw==}
+
+ '@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.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==}
+
+ 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-layout@1.2.2:
+ resolution: {integrity: sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==}
+ engines: {node: '>=4.5'}
+
+ 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==}
+
+ fs@0.0.1-security:
+ resolution: {integrity: sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==}
+
+ 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'}
+
+ 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.2:
+ resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==}
+ 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.1': {}
+
+ '@noble/curves@1.9.1':
+ 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.1(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.1.1(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.1.1(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.1.1(typescript@4.9.5)
+ '@solana/errors': 2.1.1(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.1.1(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.1
+ '@noble/curves': 1.9.1
+ '@noble/hashes': 1.8.0
+ '@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.1.1(typescript@4.9.5)
+ agentkeepalive: 4.6.0
+ 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
+ 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.19
+
+ '@types/chai@4.3.20': {}
+
+ '@types/connect@3.4.38':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@types/json5@0.0.29':
+ optional: true
+
+ '@types/mocha@9.1.1': {}
+
+ '@types/node@12.20.55': {}
+
+ '@types/node@22.15.19':
+ dependencies:
+ undici-types: 6.21.0
+
+ '@types/uuid@8.3.4': {}
+
+ '@types/ws@7.4.7':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@types/ws@8.18.1':
+ dependencies:
+ '@types/node': 22.15.19
+
+ '@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.2: {}
+
+ borsh@0.7.0:
+ dependencies:
+ bn.js: 5.2.2
+ 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-layout@1.2.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: {}
+
+ fs@0.0.1-security: {}
+
+ 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
+
+ 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.2(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.2(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/transfer-sol/pinocchio/program/Cargo.toml b/basics/transfer-sol/pinocchio/program/Cargo.toml
new file mode 100644
index 000000000..aec50f992
--- /dev/null
+++ b/basics/transfer-sol/pinocchio/program/Cargo.toml
@@ -0,0 +1,27 @@
+[package]
+name = "transfer-sol-pinocchio-program"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
+pinocchio.workspace = true
+pinocchio-system.workspace = true
+
+[lib]
+crate-type = ["cdylib", "lib"]
+
+[features]
+custom-heap = []
+custom-panic = []
+
+[lints.rust]
+unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] }
+
+[dev-dependencies]
+litesvm = "0.8.1"
+solana-instruction = "3.0.0"
+solana-keypair = "3.0.1"
+solana-native-token = "3.0.0"
+solana-pubkey = "3.0.0"
+solana-transaction = "3.0.1"
+solana-system-interface.workspace = true
diff --git a/basics/transfer-sol/pinocchio/program/src/lib.rs b/basics/transfer-sol/pinocchio/program/src/lib.rs
new file mode 100644
index 000000000..cc31b44c4
--- /dev/null
+++ b/basics/transfer-sol/pinocchio/program/src/lib.rs
@@ -0,0 +1,62 @@
+#![no_std]
+#![allow(deprecated)]
+
+use pinocchio::{
+ account_info::AccountInfo, entrypoint, nostd_panic_handler, program_error::ProgramError,
+ pubkey::Pubkey, ProgramResult,
+};
+use pinocchio_system::instructions::Transfer;
+
+entrypoint!(process_instruction);
+nostd_panic_handler!();
+
+fn process_instruction(
+ _program_id: &Pubkey,
+ accounts: &[AccountInfo],
+ instruction_data: &[u8],
+) -> ProgramResult {
+ match instruction_data.split_first() {
+ Some((&CPI_TRANSFER_DISCRIMINATOR, data)) => transfer_sol_with_cpi(accounts, data),
+ Some((&PROGRAM_TRANSFER_DISCRIMINATOR, data)) => transfer_sol_with_program(accounts, data),
+ _ => Err(ProgramError::InvalidInstructionData),
+ }
+}
+
+pub const CPI_TRANSFER_DISCRIMINATOR: u8 = 0;
+pub const PROGRAM_TRANSFER_DISCRIMINATOR: u8 = 1;
+
+fn transfer_sol_with_cpi(accounts: &[AccountInfo], instruction_data: &[u8]) -> ProgramResult {
+ let [payer, recipient, _system_program] = accounts else {
+ return Err(ProgramError::NotEnoughAccountKeys);
+ };
+
+ let amount_bytes: [u8; 8] = instruction_data[0..8]
+ .try_into()
+ .map_err(|_| ProgramError::InvalidInstructionData)?;
+ let amount = u64::from_le_bytes(amount_bytes);
+
+ Transfer {
+ from: payer,
+ to: recipient,
+ lamports: amount,
+ }
+ .invoke()?;
+
+ Ok(())
+}
+
+fn transfer_sol_with_program(accounts: &[AccountInfo], instruction_data: &[u8]) -> ProgramResult {
+ let [payer, recipient] = accounts else {
+ return Err(ProgramError::NotEnoughAccountKeys);
+ };
+
+ let amount_bytes: [u8; 8] = instruction_data[0..8]
+ .try_into()
+ .map_err(|_| ProgramError::InvalidInstructionData)?;
+ let amount = u64::from_le_bytes(amount_bytes);
+
+ *payer.try_borrow_mut_lamports()? -= amount;
+ *recipient.try_borrow_mut_lamports()? += amount;
+
+ Ok(())
+}
diff --git a/basics/transfer-sol/pinocchio/program/tests/test.rs b/basics/transfer-sol/pinocchio/program/tests/test.rs
new file mode 100644
index 000000000..2f1689b3c
--- /dev/null
+++ b/basics/transfer-sol/pinocchio/program/tests/test.rs
@@ -0,0 +1,98 @@
+use litesvm::LiteSVM;
+use solana_instruction::{AccountMeta, Instruction};
+use solana_keypair::{Keypair, Signer};
+use solana_native_token::LAMPORTS_PER_SOL;
+use solana_pubkey::Pubkey;
+use solana_system_interface::instruction::create_account;
+use solana_transaction::Transaction;
+use transfer_sol_pinocchio_program::{CPI_TRANSFER_DISCRIMINATOR, PROGRAM_TRANSFER_DISCRIMINATOR};
+#[test]
+fn test_transfer_sol() {
+ let mut svm = LiteSVM::new();
+
+ let program_id = Pubkey::new_unique();
+ let program_bytes = include_bytes!("../../tests/fixtures/transfer_sol_pinocchio_program.so");
+
+ svm.add_program(program_id, program_bytes).unwrap();
+
+ let payer = Keypair::new();
+ svm.airdrop(&payer.pubkey(), LAMPORTS_PER_SOL * 10).unwrap();
+
+ let test_recipient1 = Keypair::new();
+ let test_recipient2 = Keypair::new();
+ let test_recipient3 = Keypair::new();
+
+ let payer_balance_before = svm.get_balance(&payer.pubkey()).unwrap();
+ let recipient_balance_before = svm.get_balance(&test_recipient1.pubkey()).unwrap_or(0);
+
+ let mut data = Vec::new();
+ data.push(CPI_TRANSFER_DISCRIMINATOR);
+ data.extend_from_slice(&LAMPORTS_PER_SOL.to_le_bytes());
+
+ let ix = Instruction {
+ program_id,
+ accounts: vec![
+ AccountMeta::new(payer.pubkey(), true),
+ AccountMeta::new(test_recipient1.pubkey(), false),
+ AccountMeta::new(solana_system_interface::program::ID, false),
+ ],
+ data,
+ };
+
+ let tx = Transaction::new_signed_with_payer(
+ &[ix],
+ Some(&payer.pubkey()),
+ &[&payer],
+ svm.latest_blockhash(),
+ );
+
+ let res = svm.send_transaction(tx);
+ assert!(res.is_ok());
+
+ let payer_balance_after = svm.get_balance(&payer.pubkey()).unwrap();
+ let recipient_balance_after = svm.get_balance(&test_recipient1.pubkey()).unwrap_or(0);
+
+ assert!(payer_balance_before > payer_balance_after);
+ assert!(recipient_balance_before < recipient_balance_after);
+
+ let create_ix = create_account(
+ &payer.pubkey(),
+ &test_recipient2.pubkey(),
+ 2 * LAMPORTS_PER_SOL,
+ 0,
+ &program_id,
+ );
+
+ let tx = Transaction::new_signed_with_payer(
+ &[create_ix],
+ Some(&payer.pubkey()),
+ &[&payer, &test_recipient2],
+ svm.latest_blockhash(),
+ );
+
+ let res = svm.send_transaction(tx);
+ assert!(res.is_ok());
+
+ let mut data = Vec::new();
+ data.push(PROGRAM_TRANSFER_DISCRIMINATOR);
+ data.extend_from_slice(&LAMPORTS_PER_SOL.to_le_bytes());
+
+ let ix = Instruction {
+ program_id,
+ accounts: vec![
+ AccountMeta::new(test_recipient2.pubkey(), true),
+ AccountMeta::new(test_recipient3.pubkey(), false),
+ ],
+ data,
+ };
+
+ let tx = Transaction::new_signed_with_payer(
+ &[ix],
+ Some(&payer.pubkey()),
+ &[&payer, &test_recipient2],
+ svm.latest_blockhash(),
+ );
+
+ let res = svm.send_transaction(tx);
+ assert!(res.is_ok());
+}
diff --git a/basics/transfer-sol/pinocchio/tests/test.ts b/basics/transfer-sol/pinocchio/tests/test.ts
new file mode 100644
index 000000000..40dda0916
--- /dev/null
+++ b/basics/transfer-sol/pinocchio/tests/test.ts
@@ -0,0 +1,13 @@
+import { describe, test } from "node:test";
+import {
+ Keypair,
+ LAMPORTS_PER_SOL,
+ PublicKey,
+ SystemProgram,
+ Transaction,
+} from "@solana/web3.js";
+import { start } from "solana-bankrun";
+
+describe("transfer-sol", async () => {
+ console.log("transfer-sol");
+});
diff --git a/basics/transfer-sol/pinocchio/tsconfig.json b/basics/transfer-sol/pinocchio/tsconfig.json
new file mode 100644
index 000000000..cd5d2e3d0
--- /dev/null
+++ b/basics/transfer-sol/pinocchio/tsconfig.json
@@ -0,0 +1,10 @@
+{
+ "compilerOptions": {
+ "types": ["mocha", "chai"],
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2015"],
+ "module": "commonjs",
+ "target": "es6",
+ "esModuleInterop": true
+ }
+}
From 320238c969bfefd48dfbabe8a6fbb2ddfbc516b3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?solwarrior=20=F0=9F=97=A1=EF=B8=8F?=
<118261237+sol-warrior@users.noreply.github.com>
Date: Wed, 3 Dec 2025 09:43:37 +0530
Subject: [PATCH 07/49] feat: Add LiteSVM Test for Anchor Account Data Example
(#466)
* feat: add litesvm dependency to anchor package.json
* feat: update Anchor.toml with litesvm test scripts and add litesvm
* feat: add LiteSVM test for account data operations for anchor program
* refactor: clean up Anchor.toml and litesvm test by removing commented code
* chore: remove bankrun test, script and dependencies from Anchor.toml and package.json
* chore: update test script formatting in Anchor.toml
---
basics/account-data/anchor/Anchor.toml | 3 +-
basics/account-data/anchor/package.json | 3 +-
basics/account-data/anchor/pnpm-lock.yaml | 243 ++++++++++++------
.../account-data/anchor/tests/bankrun.test.ts | 63 -----
.../account-data/anchor/tests/litesvm.test.ts | 110 ++++++++
5 files changed, 273 insertions(+), 149 deletions(-)
delete mode 100644 basics/account-data/anchor/tests/bankrun.test.ts
create mode 100644 basics/account-data/anchor/tests/litesvm.test.ts
diff --git a/basics/account-data/anchor/Anchor.toml b/basics/account-data/anchor/Anchor.toml
index cf39e320f..0d651e522 100644
--- a/basics/account-data/anchor/Anchor.toml
+++ b/basics/account-data/anchor/Anchor.toml
@@ -13,4 +13,5 @@ cluster = "Localnet"
wallet = "~/.config/solana/id.json"
[scripts]
-test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
+test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
+litesvm-test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/litesvm.test.ts" #For litesvm test
diff --git a/basics/account-data/anchor/package.json b/basics/account-data/anchor/package.json
index 1f32b9565..0c7cae69e 100644
--- a/basics/account-data/anchor/package.json
+++ b/basics/account-data/anchor/package.json
@@ -7,10 +7,9 @@
"@types/bn.js": "^5.1.0",
"@types/chai": "^4.3.0",
"@types/mocha": "^9.0.0",
- "anchor-bankrun": "^0.4.0",
"chai": "^4.3.4",
+ "litesvm": "^0.3.3",
"mocha": "^9.0.3",
- "solana-bankrun": "^0.3.0",
"ts-mocha": "^10.0.0",
"typescript": "^4.3.5"
},
diff --git a/basics/account-data/anchor/pnpm-lock.yaml b/basics/account-data/anchor/pnpm-lock.yaml
index aae81ea51..d5ab0a603 100644
--- a/basics/account-data/anchor/pnpm-lock.yaml
+++ b/basics/account-data/anchor/pnpm-lock.yaml
@@ -24,18 +24,15 @@ importers:
'@types/mocha':
specifier: ^9.0.0
version: 9.1.1
- anchor-bankrun:
- specifier: ^0.4.0
- version: 0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
chai:
specifier: ^4.3.4
version: 4.4.1
+ litesvm:
+ specifier: ^0.3.3
+ version: 0.3.3(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
mocha:
specifier: ^9.0.3
version: 9.2.2
- solana-bankrun:
- specifier: ^0.3.0
- version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
ts-mocha:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
@@ -78,9 +75,31 @@ packages:
resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
engines: {node: '>=5.10'}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/web3.js@1.95.2':
resolution: {integrity: sha512-SjlHp0G4qhuhkQQc+YXdGkI8EerCqwxvgytMgBpzMUQTafrkNant3e7pgilBGgjy/iM40ICvWBLgASTPMrQU7w==}
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
+
'@swc/helpers@0.5.12':
resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==}
@@ -125,14 +144,6 @@ packages:
resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
engines: {node: '>= 8.0.0'}
- anchor-bankrun@0.4.0:
- resolution: {integrity: sha512-s+K7E0IGAlmkhuo8nbiqVsQf2yJ+3l9GjNQJSmkRDe25dQj4Yef9rJh77FH6EQ5H6yQYfzuhgm/5GD6JMjdTZg==}
- engines: {node: '>= 10'}
- peerDependencies:
- '@coral-xyz/anchor': ^0.30.0
- '@solana/web3.js': ^1.78.4
- solana-bankrun: ^0.2.0
-
ansi-colors@4.1.1:
resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
engines: {node: '>=6'}
@@ -165,6 +176,9 @@ packages:
base-x@3.0.9:
resolution: {integrity: sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==}
+ base-x@5.0.1:
+ resolution: {integrity: sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg==}
+
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
@@ -201,6 +215,9 @@ packages:
bs58@4.0.1:
resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==}
+ bs58@6.0.0:
+ resolution: {integrity: sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==}
+
buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
@@ -227,6 +244,10 @@ packages:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -244,6 +265,10 @@ packages:
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ 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==}
@@ -312,6 +337,9 @@ packages:
fast-stable-stringify@1.0.0:
resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
+ fastestsmallesttextencoderdecoder@1.0.22:
+ resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
+
file-uri-to-path@1.0.0:
resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
@@ -429,6 +457,40 @@ packages:
resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
engines: {'0': node >= 0.2.0}
+ litesvm-darwin-arm64@0.3.3:
+ resolution: {integrity: sha512-81YimsV3ezWjWLgoKixsXfVznaaecbURE3RtECgNb6Din6Za03pKGKGEN4gkyecHkv8uoPaEZv5cl6ARsgeN1Q==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [darwin]
+
+ litesvm-darwin-x64@0.3.3:
+ resolution: {integrity: sha512-pYietuU165Bl+2eDnVp2Eidiedfjt+pljyyBAfJPbYriaFyG577mU364NiNcsfQ8ZZWbe+ygIEAVq4Ol247+1g==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [darwin]
+
+ litesvm-linux-arm64-musl@0.3.3:
+ resolution: {integrity: sha512-mkI15rWtNbaJxVFUfh+qnolqnDCZEqhwSZo/XZ48TZNsQ69vAqY00KhyFhTVJ+jeaYCAZTSNamuFIiRBxqVmNg==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-x64-gnu@0.3.3:
+ resolution: {integrity: sha512-Qai2/E8Eq03w8VKnJDREyiWxwavjykW/H6onE179ayMnBjVVmkj5fN7XF50VV4z73kasx5bpDzBNK8fcaxMdzA==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm-linux-x64-musl@0.3.3:
+ resolution: {integrity: sha512-bpWZ2f506hbfu1y6bkmuZf+qqtnLDxggpOMTQbibjd+q6faEO3sETWwKGlIgHB99P8wyU+aXKwLSGQX2sJEw6Q==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm@0.3.3:
+ resolution: {integrity: sha512-QHXjAIXzvG0uAMOza6aJcYl19yTKz3guwq/z0Zml4KnQxyQvPhjaBpUFc5sf2ey/NxMVdqFhoXmL02CXOOomjw==}
+ engines: {node: '>= 20'}
+
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -542,39 +604,6 @@ packages:
serialize-javascript@6.0.0:
resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
- solana-bankrun-darwin-arm64@0.3.0:
- resolution: {integrity: sha512-+NbDncf0U6l3knuacRBiqpjZ2DSp+5lZaAU518gH7/x6qubbui/d000STaIBK+uNTPBS/AL/bCN+7PkXqmA3lA==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [darwin]
-
- solana-bankrun-darwin-universal@0.3.0:
- resolution: {integrity: sha512-1/F0xdMa4qvc5o6z16FCCbZ5jbdvKvxpx5kyPcMWRiRPwyvi+zltMxciPAYMlg3wslQqGz88uFhrBEzq2eTumQ==}
- engines: {node: '>= 10'}
- os: [darwin]
-
- solana-bankrun-darwin-x64@0.3.0:
- resolution: {integrity: sha512-U6CANjkmMl+lgNA7UH0GKs5V7LtVIUDzJBZefGGqLfqUNv3EjA/PrrToM0hAOWJgkxSwdz6zW+p5sw5FmnbXtg==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [darwin]
-
- solana-bankrun-linux-x64-gnu@0.3.0:
- resolution: {integrity: sha512-qJSkCFs0k2n4XtTnyxGMiZsuqO2TiqTYgWjQ+3mZhGNUAMys/Vq8bd7/SyBm6RR7EfVuRXRxZvh+F8oKZ77V4w==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- solana-bankrun-linux-x64-musl@0.3.0:
- resolution: {integrity: sha512-xsS2CS2xb1Sw4ivNXM0gPz/qpW9BX0neSvt/pnok5L330Nu9xlTnKAY8FhzzqOP9P9sJlGRM787Y6d0yYwt6xQ==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- solana-bankrun@0.3.0:
- resolution: {integrity: sha512-YkH7sa8TB/AoRPzG17CXJtYsRIQHEkEqGLz1Vwc13taXhDBkjO7z6NI5JYw7n0ybRymDHwMYTc7sd+5J40TyVQ==}
- engines: {node: '>= 10'}
-
source-map-support@0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
@@ -782,6 +811,23 @@ snapshots:
dependencies:
buffer: 6.0.3
+ '@solana/codecs-core@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@4.9.5)
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.3.0(typescript@4.9.5)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.2
+ typescript: 4.9.5
+
'@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
dependencies:
'@babel/runtime': 7.25.0
@@ -804,6 +850,29 @@ snapshots:
- encoding
- utf-8-validate
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@babel/runtime': 7.25.0
+ '@noble/curves': 1.4.2
+ '@noble/hashes': 1.8.0
+ '@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@4.9.5)
+ agentkeepalive: 4.5.0
+ 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.1.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ node-fetch: 2.7.0
+ rpc-websockets: 9.0.2
+ superstruct: 2.0.2
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
'@swc/helpers@0.5.12':
dependencies:
tslib: 2.6.2
@@ -850,12 +919,6 @@ snapshots:
dependencies:
humanize-ms: 1.2.1
- anchor-bankrun@0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
- dependencies:
- '@coral-xyz/anchor': 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- solana-bankrun: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
-
ansi-colors@4.1.1: {}
ansi-regex@5.0.1: {}
@@ -881,6 +944,8 @@ snapshots:
dependencies:
safe-buffer: 5.2.1
+ base-x@5.0.1: {}
+
base64-js@1.5.1: {}
bigint-buffer@1.1.5:
@@ -918,6 +983,10 @@ snapshots:
dependencies:
base-x: 3.0.9
+ bs58@6.0.0:
+ dependencies:
+ base-x: 5.0.1
+
buffer-from@1.1.2: {}
buffer-layout@1.2.2: {}
@@ -949,6 +1018,8 @@ snapshots:
ansi-styles: 4.3.0
supports-color: 7.2.0
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -977,6 +1048,8 @@ snapshots:
color-name@1.1.4: {}
+ commander@14.0.2: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -1025,6 +1098,8 @@ snapshots:
fast-stable-stringify@1.0.0: {}
+ fastestsmallesttextencoderdecoder@1.0.22: {}
+
file-uri-to-path@1.0.0: {}
fill-range@7.0.1:
@@ -1134,6 +1209,38 @@ snapshots:
jsonparse@1.3.1: {}
+ litesvm-darwin-arm64@0.3.3:
+ optional: true
+
+ litesvm-darwin-x64@0.3.3:
+ optional: true
+
+ litesvm-linux-arm64-musl@0.3.3:
+ optional: true
+
+ litesvm-linux-x64-gnu@0.3.3:
+ optional: true
+
+ litesvm-linux-x64-musl@0.3.3:
+ optional: true
+
+ litesvm@0.3.3(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10):
+ dependencies:
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ bs58: 6.0.0
+ fastestsmallesttextencoderdecoder: 1.0.22
+ optionalDependencies:
+ litesvm-darwin-arm64: 0.3.3
+ litesvm-darwin-x64: 0.3.3
+ litesvm-linux-arm64-musl: 0.3.3
+ litesvm-linux-x64-gnu: 0.3.3
+ litesvm-linux-x64-musl: 0.3.3
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1258,36 +1365,6 @@ snapshots:
dependencies:
randombytes: 2.1.0
- solana-bankrun-darwin-arm64@0.3.0:
- optional: true
-
- solana-bankrun-darwin-universal@0.3.0:
- optional: true
-
- solana-bankrun-darwin-x64@0.3.0:
- optional: true
-
- solana-bankrun-linux-x64-gnu@0.3.0:
- optional: true
-
- solana-bankrun-linux-x64-musl@0.3.0:
- optional: true
-
- solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
- dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- bs58: 4.0.1
- optionalDependencies:
- solana-bankrun-darwin-arm64: 0.3.0
- solana-bankrun-darwin-universal: 0.3.0
- solana-bankrun-darwin-x64: 0.3.0
- solana-bankrun-linux-x64-gnu: 0.3.0
- solana-bankrun-linux-x64-musl: 0.3.0
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - utf-8-validate
-
source-map-support@0.5.21:
dependencies:
buffer-from: 1.1.2
diff --git a/basics/account-data/anchor/tests/bankrun.test.ts b/basics/account-data/anchor/tests/bankrun.test.ts
deleted file mode 100644
index 07d287a79..000000000
--- a/basics/account-data/anchor/tests/bankrun.test.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-import { describe, it } from "node:test";
-import * as anchor from "@coral-xyz/anchor";
-import { Keypair, PublicKey } from "@solana/web3.js";
-import { BankrunProvider } from "anchor-bankrun";
-import { startAnchor } from "solana-bankrun";
-import type { AccountDataAnchorProgram } from "../target/types/account_data_anchor_program";
-
-import IDL from "../target/idl/account_data_anchor_program.json" with {
- type: "json",
-};
-const PROGRAM_ID = new PublicKey(IDL.address);
-
-describe("Account Data!", async () => {
- const context = await startAnchor(
- "",
- [{ name: "account_data_anchor_program", programId: PROGRAM_ID }],
- [],
- );
- const provider = new BankrunProvider(context);
-
- const payer = provider.wallet as anchor.Wallet;
- const program = new anchor.Program(IDL, provider);
-
- // Generate a new keypair for the addressInfo account
- const addressInfoAccount = new Keypair();
-
- it("Create the address info account", async () => {
- console.log(`Payer Address : ${payer.publicKey}`);
- console.log(`Address Info Acct : ${addressInfoAccount.publicKey}`);
-
- // Instruction Ix data
- const addressInfo = {
- name: "Joe C",
- houseNumber: 136,
- street: "Mile High Dr.",
- city: "Solana Beach",
- };
-
- await program.methods
- .createAddressInfo(
- addressInfo.name,
- addressInfo.houseNumber,
- addressInfo.street,
- addressInfo.city,
- )
- .accounts({
- addressInfo: addressInfoAccount.publicKey,
- payer: payer.publicKey,
- })
- .signers([addressInfoAccount])
- .rpc();
- });
-
- it("Read the new account's data", async () => {
- const addressInfo = await program.account.addressInfo.fetch(
- addressInfoAccount.publicKey,
- );
- console.log(`Name : ${addressInfo.name}`);
- console.log(`House Num: ${addressInfo.houseNumber}`);
- console.log(`Street : ${addressInfo.street}`);
- console.log(`City : ${addressInfo.city}`);
- });
-});
diff --git a/basics/account-data/anchor/tests/litesvm.test.ts b/basics/account-data/anchor/tests/litesvm.test.ts
new file mode 100644
index 000000000..ce8e546d8
--- /dev/null
+++ b/basics/account-data/anchor/tests/litesvm.test.ts
@@ -0,0 +1,110 @@
+import { BorshCoder } from "@coral-xyz/anchor";
+import {
+ Keypair,
+ PublicKey,
+ SystemProgram,
+ Transaction,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import { LiteSVM } from "litesvm";
+
+import IDL from "../target/idl/account_data_anchor_program.json" with {
+ type: "json",
+};
+
+describe("Account Data!", () => {
+ let litesvm: LiteSVM;
+ let programId: PublicKey;
+ let payer: Keypair;
+ let addressInfoAccount: Keypair;
+ const coder = new BorshCoder(IDL);
+
+ before(() => {
+ litesvm = new LiteSVM();
+ programId = new PublicKey(IDL.address);
+ payer = Keypair.generate();
+ addressInfoAccount = Keypair.generate();
+
+ const programPath = new URL(
+ "../target/deploy/account_data_anchor_program.so",
+ // @ts-ignore
+ import.meta.url,
+ ).pathname;
+ litesvm.addProgramFromFile(programId, programPath);
+
+ litesvm.airdrop(payer.publicKey, BigInt(100000000000));
+ });
+
+ it("Create the address info account", () => {
+ console.log(`Payer Address : ${payer.publicKey}`);
+ console.log(`Address Info Acct : ${addressInfoAccount.publicKey}`);
+
+ // Instruction Ix data
+ const addressInfoIns = {
+ name: "Joe C",
+ house_number: 136,
+ street: "Mile High Dr.",
+ city: "Solana Beach",
+ };
+
+ /**
+ * Convert into buffer and encode of instruction and arguments
+ */
+ const data = coder.instruction.encode(
+ "create_address_info",
+ addressInfoIns,
+ );
+
+ /**
+ * Create Transactions
+ */
+
+ const ix = new TransactionInstruction({
+ keys: [
+ {
+ pubkey: payer.publicKey,
+ isSigner: true,
+ isWritable: true,
+ },
+ {
+ pubkey: addressInfoAccount.publicKey,
+ isSigner: true,
+ isWritable: true,
+ },
+ {
+ pubkey: SystemProgram.programId,
+ isSigner: false,
+ isWritable: false,
+ },
+ ],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = litesvm.latestBlockhash();
+ tx.sign(payer, addressInfoAccount);
+ const res = litesvm.sendTransaction(tx);
+ // console.log(res.toString());
+ });
+ it("Read the new account's data", () => {
+ const accountInfoAcc = litesvm.getAccount(addressInfoAccount.publicKey);
+ if (!accountInfoAcc) {
+ throw new Error("Failed to fetch account info");
+ }
+
+ /**
+ * Decode the accounts' data
+ */
+ const addressInfo = coder.accounts.decode(
+ "AddressInfo",
+ Buffer.from(accountInfoAcc.data),
+ );
+
+ console.log(`Name : ${addressInfo.name}`);
+ console.log(`House Num: ${addressInfo.house_number}`);
+ console.log(`Street : ${addressInfo.street}`);
+ console.log(`City : ${addressInfo.city}`);
+ });
+});
From 020ebe75d3f81343fb42f3c59165631a8284cf74 Mon Sep 17 00:00:00 2001
From: Perelyn <64838956+Perelyn-sama@users.noreply.github.com>
Date: Wed, 3 Dec 2025 05:14:04 +0100
Subject: [PATCH 08/49] feat: add rent pinocchio example (#469)
* add rent pinocchio example
* Update lib.rs
---
Cargo.lock | 17 +
Cargo.toml | 1 +
basics/rent/native/program/tests/test.rs | 1 -
basics/rent/pinocchio/cicd.sh | 8 +
basics/rent/pinocchio/package.json | 25 +
basics/rent/pinocchio/pnpm-lock.yaml | 1356 +++++++++++++++++++
basics/rent/pinocchio/program/Cargo.toml | 29 +
basics/rent/pinocchio/program/src/lib.rs | 58 +
basics/rent/pinocchio/program/tests/test.rs | 44 +
basics/rent/pinocchio/tests/test.ts | 6 +
basics/rent/pinocchio/tsconfig.json | 10 +
11 files changed, 1554 insertions(+), 1 deletion(-)
create mode 100644 basics/rent/pinocchio/cicd.sh
create mode 100644 basics/rent/pinocchio/package.json
create mode 100644 basics/rent/pinocchio/pnpm-lock.yaml
create mode 100644 basics/rent/pinocchio/program/Cargo.toml
create mode 100644 basics/rent/pinocchio/program/src/lib.rs
create mode 100644 basics/rent/pinocchio/program/tests/test.rs
create mode 100644 basics/rent/pinocchio/tests/test.ts
create mode 100644 basics/rent/pinocchio/tsconfig.json
diff --git a/Cargo.lock b/Cargo.lock
index d9868676d..adae52520 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2526,6 +2526,23 @@ dependencies = [
"anchor-lang",
]
+[[package]]
+name = "rent_pinocchio_program"
+version = "0.1.0"
+dependencies = [
+ "litesvm",
+ "pinocchio",
+ "pinocchio-log",
+ "pinocchio-system",
+ "solana-instruction 3.0.0",
+ "solana-keypair",
+ "solana-native-token 3.0.0",
+ "solana-pubkey 3.0.0",
+ "solana-rent 3.0.0",
+ "solana-system-interface 2.0.0",
+ "solana-transaction",
+]
+
[[package]]
name = "repository-layout-program"
version = "0.1.0"
diff --git a/Cargo.toml b/Cargo.toml
index 114e4ba0c..8b4833c05 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -30,6 +30,7 @@ members = [
"basics/realloc/native/program",
"basics/realloc/anchor/programs/*",
"basics/rent/native/program",
+ "basics/rent/pinocchio/program",
"basics/rent/anchor/programs/*",
"basics/favorites/native/program",
"basics/repository-layout/native/program",
diff --git a/basics/rent/native/program/tests/test.rs b/basics/rent/native/program/tests/test.rs
index 5dbc229ed..e27812211 100644
--- a/basics/rent/native/program/tests/test.rs
+++ b/basics/rent/native/program/tests/test.rs
@@ -24,7 +24,6 @@ fn test_rent() {
accounts: vec![
AccountMeta::new(payer.pubkey(), true),
AccountMeta::new(new_keypair.pubkey(), true),
- AccountMeta::new(payer.pubkey(), true),
AccountMeta::new(solana_system_interface::program::ID, false),
],
data: [0_u8; 1000].to_vec(),
diff --git a/basics/rent/pinocchio/cicd.sh b/basics/rent/pinocchio/cicd.sh
new file mode 100644
index 000000000..0903cf896
--- /dev/null
+++ b/basics/rent/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 --bpf-out-dir=./program/target/so
+solana program deploy ./program/target/so/program.so
diff --git a/basics/rent/pinocchio/package.json b/basics/rent/pinocchio/package.json
new file mode 100644
index 000000000..1979f007e
--- /dev/null
+++ b/basics/rent/pinocchio/package.json
@@ -0,0 +1,25 @@
+{
+ "type": "module",
+ "scripts": {
+ "test": "pnpm ts-mocha -p ./tsconfig.json -t 1000000 ./tests/test.ts",
+ "build-and-test": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./tests/fixtures && pnpm test",
+ "build": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./program/target/so",
+ "deploy": "solana program deploy ./program/target/so/program.so"
+ },
+ "dependencies": {
+ "@solana/web3.js": "^1.47.3",
+ "borsh": "^0.7.0",
+ "buffer": "^6.0.3",
+ "fs": "^0.0.1-security"
+ },
+ "devDependencies": {
+ "@types/bn.js": "^5.1.0",
+ "@types/chai": "^4.3.1",
+ "@types/mocha": "^9.1.1",
+ "chai": "^4.3.4",
+ "mocha": "^9.0.3",
+ "solana-bankrun": "^0.3.0",
+ "ts-mocha": "^10.0.0",
+ "typescript": "^4.3.5"
+ }
+}
diff --git a/basics/rent/pinocchio/pnpm-lock.yaml b/basics/rent/pinocchio/pnpm-lock.yaml
new file mode 100644
index 000000000..a8f0ba2ef
--- /dev/null
+++ b/basics/rent/pinocchio/pnpm-lock.yaml
@@ -0,0 +1,1356 @@
+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)
+ borsh:
+ specifier: ^0.7.0
+ version: 0.7.0
+ buffer:
+ specifier: ^6.0.3
+ version: 6.0.3
+ fs:
+ specifier: ^0.0.1-security
+ version: 0.0.1-security
+ 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
+ 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.1':
+ resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==}
+ engines: {node: '>=6.9.0'}
+
+ '@noble/curves@1.9.1':
+ resolution: {integrity: sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==}
+ 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.1':
+ resolution: {integrity: sha512-iPQW3UZ2Vi7QFBo2r9tw0NubtH8EdrhhmZulx6lC8V5a+qjaxovtM/q/UW2BTNpqqHLfO0tIcLyBLrNH4HTWPg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.1.1':
+ resolution: {integrity: sha512-m20IUPJhPUmPkHSlZ2iMAjJ7PaYUvlMtFhCQYzm9BEBSI6OCvXTG3GAPpAnSGRBfg5y+QNqqmKn4QHU3B6zzCQ==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.1.1':
+ resolution: {integrity: sha512-sj6DaWNbSJFvLzT8UZoabMefQUfSW/8tXK7NTiagsDmh+Q87eyQDDC9L3z+mNmx9b6dEf6z660MOIplDD2nfEw==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@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.19':
+ resolution: {integrity: sha512-3vMNr4TzNQyjHcRZadojpRaD9Ofr6LsonZAoQ+HMUa/9ORTPoxVIw0e0mpqWpdjj8xybyCM+oKOUH2vwFu/oEw==}
+
+ '@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.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==}
+
+ 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==}
+
+ fs@0.0.1-security:
+ resolution: {integrity: sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==}
+
+ 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'}
+
+ 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.2:
+ resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==}
+ 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.1': {}
+
+ '@noble/curves@1.9.1':
+ 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.1(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.1.1(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.1.1(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.1.1(typescript@4.9.5)
+ '@solana/errors': 2.1.1(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.1.1(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.1
+ '@noble/curves': 1.9.1
+ '@noble/hashes': 1.8.0
+ '@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.1.1(typescript@4.9.5)
+ agentkeepalive: 4.6.0
+ 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
+ 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.19
+
+ '@types/chai@4.3.20': {}
+
+ '@types/connect@3.4.38':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@types/json5@0.0.29':
+ optional: true
+
+ '@types/mocha@9.1.1': {}
+
+ '@types/node@12.20.55': {}
+
+ '@types/node@22.15.19':
+ dependencies:
+ undici-types: 6.21.0
+
+ '@types/uuid@8.3.4': {}
+
+ '@types/ws@7.4.7':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@types/ws@8.18.1':
+ dependencies:
+ '@types/node': 22.15.19
+
+ '@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.2: {}
+
+ borsh@0.7.0:
+ dependencies:
+ bn.js: 5.2.2
+ 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: {}
+
+ fs@0.0.1-security: {}
+
+ 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
+
+ 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.2(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.2(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/rent/pinocchio/program/Cargo.toml b/basics/rent/pinocchio/program/Cargo.toml
new file mode 100644
index 000000000..53a3f7ab3
--- /dev/null
+++ b/basics/rent/pinocchio/program/Cargo.toml
@@ -0,0 +1,29 @@
+[package]
+name = "rent_pinocchio_program"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
+pinocchio.workspace = true
+pinocchio-system.workspace = true
+pinocchio-log.workspace = true
+
+[lib]
+crate-type = ["cdylib", "lib"]
+
+[features]
+custom-heap = []
+custom-panic = []
+
+[lints.rust]
+unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] }
+
+[dev-dependencies]
+litesvm = "0.8.1"
+solana-instruction = "3.0.0"
+solana-keypair = "3.0.1"
+solana-native-token = "3.0.0"
+solana-pubkey = "3.0.0"
+solana-rent = "3.0.0"
+solana-transaction = "3.0.1"
+solana-system-interface .workspace = true
diff --git a/basics/rent/pinocchio/program/src/lib.rs b/basics/rent/pinocchio/program/src/lib.rs
new file mode 100644
index 000000000..722ba34fe
--- /dev/null
+++ b/basics/rent/pinocchio/program/src/lib.rs
@@ -0,0 +1,58 @@
+#![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_log::log;
+use pinocchio_system::instructions::CreateAccount;
+
+entrypoint!(process_instruction);
+nostd_panic_handler!();
+
+fn process_instruction(
+ program_id: &Pubkey,
+ accounts: &[AccountInfo],
+ instruction_data: &[u8],
+) -> ProgramResult {
+ let [payer, new_account, _system_program] = accounts else {
+ return Err(ProgramError::NotEnoughAccountKeys);
+ };
+
+ log!("Program invoked. Creating a system account...");
+ log!(" New public key will be: ");
+ pinocchio::pubkey::log(new_account.key());
+
+ let rent = Rent {
+ lamports_per_byte_year: DEFAULT_LAMPORTS_PER_BYTE_YEAR,
+ exemption_threshold: DEFAULT_EXEMPTION_THRESHOLD,
+ burn_percent: DEFAULT_BURN_PERCENT,
+ };
+
+ // Determine the necessary minimum rent by calculating the account's size
+ //
+ let account_span = instruction_data.len();
+ let lamports_required = rent.minimum_balance(account_span);
+
+ log!(50, "Account span: {}", account_span);
+ log!(50, "Lamports required: {}", lamports_required);
+
+ CreateAccount {
+ from: payer,
+ to: new_account,
+ lamports: lamports_required,
+ space: account_span as u64,
+ owner: program_id,
+ }
+ .invoke()?;
+
+ log!("Account created succesfully.");
+ Ok(())
+}
diff --git a/basics/rent/pinocchio/program/tests/test.rs b/basics/rent/pinocchio/program/tests/test.rs
new file mode 100644
index 000000000..9e7d5c000
--- /dev/null
+++ b/basics/rent/pinocchio/program/tests/test.rs
@@ -0,0 +1,44 @@
+use litesvm::LiteSVM;
+use solana_instruction::{AccountMeta, Instruction};
+use solana_keypair::{Keypair, Signer};
+use solana_native_token::LAMPORTS_PER_SOL;
+use solana_pubkey::Pubkey;
+use solana_transaction::Transaction;
+
+#[test]
+fn test_rent() {
+ let mut svm = LiteSVM::new();
+
+ let program_id = Pubkey::new_unique();
+ let program_bytes = include_bytes!("../../tests/fixtures/rent_pinocchio_program.so");
+
+ svm.add_program(program_id, program_bytes).unwrap();
+
+ let payer = Keypair::new();
+ svm.airdrop(&payer.pubkey(), LAMPORTS_PER_SOL * 10).unwrap();
+
+ let new_keypair = Keypair::new();
+
+ let ix = Instruction {
+ program_id,
+ accounts: vec![
+ AccountMeta::new(payer.pubkey(), true),
+ AccountMeta::new(new_keypair.pubkey(), true),
+ AccountMeta::new(solana_system_interface::program::ID, false),
+ ],
+ data: [0_u8; 1000].to_vec(),
+ };
+
+ let tx = Transaction::new_signed_with_payer(
+ &[ix],
+ Some(&payer.pubkey()),
+ &[&payer, &new_keypair],
+ svm.latest_blockhash(),
+ );
+
+ let res = svm.send_transaction(tx);
+ assert!(res.is_ok());
+
+ // rent
+ let _rent = svm.get_account(&new_keypair.pubkey()).unwrap().lamports;
+}
diff --git a/basics/rent/pinocchio/tests/test.ts b/basics/rent/pinocchio/tests/test.ts
new file mode 100644
index 000000000..ad53cf096
--- /dev/null
+++ b/basics/rent/pinocchio/tests/test.ts
@@ -0,0 +1,6 @@
+import { Buffer } from "node:buffer";
+import { describe, test } from "node:test";
+
+describe("Create a system account", async () => {
+ console.log("Create a system account");
+});
diff --git a/basics/rent/pinocchio/tsconfig.json b/basics/rent/pinocchio/tsconfig.json
new file mode 100644
index 000000000..cd5d2e3d0
--- /dev/null
+++ b/basics/rent/pinocchio/tsconfig.json
@@ -0,0 +1,10 @@
+{
+ "compilerOptions": {
+ "types": ["mocha", "chai"],
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2015"],
+ "module": "commonjs",
+ "target": "es6",
+ "esModuleInterop": true
+ }
+}
From 21dd66b8797792382c6b28be277a613d1f039e2e Mon Sep 17 00:00:00 2001
From: Perelyn <64838956+Perelyn-sama@users.noreply.github.com>
Date: Tue, 30 Dec 2025 03:20:04 +0100
Subject: [PATCH 09/49] feat: add favorites pinocchio example (#487)
* add favorites pinocchio example
* Update create_pda.rs
---
Cargo.lock | 16 +
Cargo.toml | 1 +
.../account-data/pinocchio/program/src/lib.rs | 11 +-
.../pinocchio/program/src/lib.rs | 1 -
.../pinocchio/program/src/lib.rs | 17 +-
basics/counter/pinocchio/program/src/lib.rs | 1 -
.../pinocchio/program/src/lib.rs | 1 -
basics/favorites/pinocchio/cicd.sh | 8 +
basics/favorites/pinocchio/package.json | 24 +
basics/favorites/pinocchio/pnpm-lock.yaml | 1353 +++++++++++++++++
basics/favorites/pinocchio/program/Cargo.toml | 29 +
.../program/src/instructions/create_pda.rs | 63 +
.../program/src/instructions/get_pda.rs | 56 +
.../pinocchio/program/src/instructions/mod.rs | 2 +
basics/favorites/pinocchio/program/src/lib.rs | 11 +
.../pinocchio/program/src/processor.rs | 22 +
.../favorites/pinocchio/program/src/state.rs | 5 +
.../favorites/pinocchio/program/tests/test.rs | 95 ++
basics/favorites/pinocchio/tests/test.ts | 17 +
basics/favorites/pinocchio/tsconfig.json | 10 +
basics/rent/pinocchio/program/src/lib.rs | 11 +-
.../transfer-sol/pinocchio/program/src/lib.rs | 1 -
22 files changed, 1719 insertions(+), 36 deletions(-)
create mode 100644 basics/favorites/pinocchio/cicd.sh
create mode 100644 basics/favorites/pinocchio/package.json
create mode 100644 basics/favorites/pinocchio/pnpm-lock.yaml
create mode 100644 basics/favorites/pinocchio/program/Cargo.toml
create mode 100644 basics/favorites/pinocchio/program/src/instructions/create_pda.rs
create mode 100644 basics/favorites/pinocchio/program/src/instructions/get_pda.rs
create mode 100644 basics/favorites/pinocchio/program/src/instructions/mod.rs
create mode 100644 basics/favorites/pinocchio/program/src/lib.rs
create mode 100644 basics/favorites/pinocchio/program/src/processor.rs
create mode 100644 basics/favorites/pinocchio/program/src/state.rs
create mode 100644 basics/favorites/pinocchio/program/tests/test.rs
create mode 100644 basics/favorites/pinocchio/tests/test.ts
create mode 100644 basics/favorites/pinocchio/tsconfig.json
diff --git a/Cargo.lock b/Cargo.lock
index adae52520..2224195bb 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1412,6 +1412,22 @@ dependencies = [
"solana-transaction",
]
+[[package]]
+name = "favorites-pinocchio"
+version = "0.1.0"
+dependencies = [
+ "litesvm",
+ "pinocchio",
+ "pinocchio-log",
+ "pinocchio-system",
+ "solana-instruction 3.0.0",
+ "solana-keypair",
+ "solana-native-token 3.0.0",
+ "solana-pubkey 3.0.0",
+ "solana-system-interface 2.0.0",
+ "solana-transaction",
+]
+
[[package]]
name = "feature-probe"
version = "0.1.1"
diff --git a/Cargo.toml b/Cargo.toml
index 8b4833c05..09301971c 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -33,6 +33,7 @@ members = [
"basics/rent/pinocchio/program",
"basics/rent/anchor/programs/*",
"basics/favorites/native/program",
+ "basics/favorites/pinocchio/program",
"basics/repository-layout/native/program",
"basics/repository-layout/anchor/programs/*",
"basics/transfer-sol/native/program",
diff --git a/basics/account-data/pinocchio/program/src/lib.rs b/basics/account-data/pinocchio/program/src/lib.rs
index f5aec58d9..0cdb75010 100644
--- a/basics/account-data/pinocchio/program/src/lib.rs
+++ b/basics/account-data/pinocchio/program/src/lib.rs
@@ -1,14 +1,11 @@
#![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,
- },
+ sysvars::{rent::Rent, Sysvar},
ProgramResult,
};
use pinocchio_system::instructions::CreateAccount;
@@ -63,11 +60,7 @@ fn process_create(
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 rent = Rent::get()?;
let account_span = AddressInfo::LEN;
let lamports_required = rent.minimum_balance(account_span);
diff --git a/basics/checking-accounts/pinocchio/program/src/lib.rs b/basics/checking-accounts/pinocchio/program/src/lib.rs
index ebea20af7..0aa10d413 100644
--- a/basics/checking-accounts/pinocchio/program/src/lib.rs
+++ b/basics/checking-accounts/pinocchio/program/src/lib.rs
@@ -1,5 +1,4 @@
#![no_std]
-#![allow(deprecated)]
use pinocchio::{
account_info::AccountInfo, entrypoint, nostd_panic_handler, program_error::ProgramError,
diff --git a/basics/close-account/pinocchio/program/src/lib.rs b/basics/close-account/pinocchio/program/src/lib.rs
index 77dd4da97..a8f3dc361 100644
--- a/basics/close-account/pinocchio/program/src/lib.rs
+++ b/basics/close-account/pinocchio/program/src/lib.rs
@@ -1,5 +1,4 @@
#![no_std]
-#![allow(deprecated)]
use pinocchio::{
account_info::AccountInfo,
@@ -8,9 +7,7 @@ use pinocchio::{
nostd_panic_handler,
program_error::ProgramError,
pubkey::Pubkey,
- sysvars::rent::{
- Rent, DEFAULT_BURN_PERCENT, DEFAULT_EXEMPTION_THRESHOLD, DEFAULT_LAMPORTS_PER_BYTE_YEAR,
- },
+ sysvars::{rent::Rent, Sysvar},
ProgramResult,
};
use pinocchio_system::instructions::CreateAccount;
@@ -51,11 +48,7 @@ fn process_user(
return Err(ProgramError::NotEnoughAccountKeys);
};
- let rent = Rent {
- lamports_per_byte_year: DEFAULT_LAMPORTS_PER_BYTE_YEAR,
- exemption_threshold: DEFAULT_EXEMPTION_THRESHOLD,
- burn_percent: DEFAULT_BURN_PERCENT,
- };
+ let rent = Rent::get()?;
let account_span = User::LEN;
let lamports_required = rent.minimum_balance(account_span);
@@ -93,11 +86,7 @@ fn process_close(accounts: &[AccountInfo]) -> ProgramResult {
return Err(ProgramError::NotEnoughAccountKeys);
};
- let rent = Rent {
- lamports_per_byte_year: DEFAULT_LAMPORTS_PER_BYTE_YEAR,
- exemption_threshold: DEFAULT_EXEMPTION_THRESHOLD,
- burn_percent: DEFAULT_BURN_PERCENT,
- };
+ let rent = Rent::get()?;
let account_span = 0usize;
let lamports_required = rent.minimum_balance(account_span);
diff --git a/basics/counter/pinocchio/program/src/lib.rs b/basics/counter/pinocchio/program/src/lib.rs
index 3d17bed27..53bb40c9c 100644
--- a/basics/counter/pinocchio/program/src/lib.rs
+++ b/basics/counter/pinocchio/program/src/lib.rs
@@ -1,5 +1,4 @@
#![no_std]
-#![allow(deprecated)]
use pinocchio::{
account_info::AccountInfo, nostd_panic_handler, program_error::ProgramError, pubkey::Pubkey,
diff --git a/basics/create-account/pinocchio/program/src/lib.rs b/basics/create-account/pinocchio/program/src/lib.rs
index 433cf14b8..7f2bc0b9e 100644
--- a/basics/create-account/pinocchio/program/src/lib.rs
+++ b/basics/create-account/pinocchio/program/src/lib.rs
@@ -1,5 +1,4 @@
#![no_std]
-#![allow(deprecated)]
use pinocchio::{
account_info::AccountInfo, entrypoint, nostd_panic_handler, program_error::ProgramError,
diff --git a/basics/favorites/pinocchio/cicd.sh b/basics/favorites/pinocchio/cicd.sh
new file mode 100644
index 000000000..0903cf896
--- /dev/null
+++ b/basics/favorites/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 --bpf-out-dir=./program/target/so
+solana program deploy ./program/target/so/program.so
diff --git a/basics/favorites/pinocchio/package.json b/basics/favorites/pinocchio/package.json
new file mode 100644
index 000000000..68eb0cb02
--- /dev/null
+++ b/basics/favorites/pinocchio/package.json
@@ -0,0 +1,24 @@
+{
+ "type": "module",
+ "scripts": {
+ "test": "pnpm ts-mocha -p ./tsconfig.json -t 1000000 ./tests/test.ts",
+ "build-and-test": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./tests/fixtures && pnpm test",
+ "build": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./program/target/so",
+ "deploy": "solana program deploy ./program/target/so/program.so"
+ },
+ "dependencies": {
+ "@solana/web3.js": "^1.47.3",
+ "borsh": "^2.0.0"
+ },
+ "devDependencies": {
+ "@types/bn.js": "^5.1.0",
+ "@types/chai": "^4.3.1",
+ "@types/mocha": "^9.1.1",
+ "@types/node": "^22.8.1",
+ "chai": "^4.3.4",
+ "mocha": "^9.0.3",
+ "solana-bankrun": "^0.3.0",
+ "ts-mocha": "^10.0.0",
+ "typescript": "^4.3.5"
+ }
+}
diff --git a/basics/favorites/pinocchio/pnpm-lock.yaml b/basics/favorites/pinocchio/pnpm-lock.yaml
new file mode 100644
index 000000000..a2611a893
--- /dev/null
+++ b/basics/favorites/pinocchio/pnpm-lock.yaml
@@ -0,0 +1,1353 @@
+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)
+ borsh:
+ specifier: ^2.0.0
+ version: 2.0.0
+ 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.8.1
+ version: 22.15.19
+ 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.1':
+ resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==}
+ engines: {node: '>=6.9.0'}
+
+ '@noble/curves@1.9.1':
+ resolution: {integrity: sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==}
+ 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.1':
+ resolution: {integrity: sha512-iPQW3UZ2Vi7QFBo2r9tw0NubtH8EdrhhmZulx6lC8V5a+qjaxovtM/q/UW2BTNpqqHLfO0tIcLyBLrNH4HTWPg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.1.1':
+ resolution: {integrity: sha512-m20IUPJhPUmPkHSlZ2iMAjJ7PaYUvlMtFhCQYzm9BEBSI6OCvXTG3GAPpAnSGRBfg5y+QNqqmKn4QHU3B6zzCQ==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.1.1':
+ resolution: {integrity: sha512-sj6DaWNbSJFvLzT8UZoabMefQUfSW/8tXK7NTiagsDmh+Q87eyQDDC9L3z+mNmx9b6dEf6z660MOIplDD2nfEw==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@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.19':
+ resolution: {integrity: sha512-3vMNr4TzNQyjHcRZadojpRaD9Ofr6LsonZAoQ+HMUa/9ORTPoxVIw0e0mpqWpdjj8xybyCM+oKOUH2vwFu/oEw==}
+
+ '@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.2:
+ resolution: {integrity: sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==}
+
+ borsh@0.7.0:
+ resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
+
+ borsh@2.0.0:
+ resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==}
+
+ brace-expansion@1.1.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'}
+
+ 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.2:
+ resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==}
+ 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.1': {}
+
+ '@noble/curves@1.9.1':
+ 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.1(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.1.1(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.1.1(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.1.1(typescript@4.9.5)
+ '@solana/errors': 2.1.1(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.1.1(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.1
+ '@noble/curves': 1.9.1
+ '@noble/hashes': 1.8.0
+ '@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.1.1(typescript@4.9.5)
+ agentkeepalive: 4.6.0
+ 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
+ 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.19
+
+ '@types/chai@4.3.20': {}
+
+ '@types/connect@3.4.38':
+ dependencies:
+ '@types/node': 22.15.19
+
+ '@types/json5@0.0.29':
+ optional: true
+
+ '@types/mocha@9.1.1': {}
+
+ '@types/node@12.20.55': {}
+
+ '@types/node@22.15.19':
+ dependencies:
+ undici-types: 6.21.0
+
+ '@types/uuid@8.3.4': {}
+
+ '@types/ws@7.4.7':
+ dependencies:
+ '@types/node': 22.15.19
+
+ '@types/ws@8.18.1':
+ dependencies:
+ '@types/node': 22.15.19
+
+ '@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.2: {}
+
+ borsh@0.7.0:
+ dependencies:
+ bn.js: 5.2.2
+ bs58: 4.0.1
+ text-encoding-utf-8: 1.0.2
+
+ borsh@2.0.0: {}
+
+ 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
+
+ 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.2(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.2(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/favorites/pinocchio/program/Cargo.toml b/basics/favorites/pinocchio/program/Cargo.toml
new file mode 100644
index 000000000..ffdefcf1c
--- /dev/null
+++ b/basics/favorites/pinocchio/program/Cargo.toml
@@ -0,0 +1,29 @@
+[package]
+name = "favorites-pinocchio"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
+pinocchio.workspace = true
+pinocchio-log.workspace = true
+pinocchio-system.workspace = true
+
+
+[lib]
+crate-type = ["cdylib", "lib"]
+
+[features]
+custom-heap = []
+custom-panic = []
+
+[lints.rust]
+unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] }
+
+[dev-dependencies]
+litesvm = "0.8.1"
+solana-instruction = "3.0.0"
+solana-keypair = "3.0.1"
+solana-native-token = "3.0.0"
+solana-pubkey = "3.0.0"
+solana-transaction = "3.0.1"
+solana-system-interface.workspace = true
diff --git a/basics/favorites/pinocchio/program/src/instructions/create_pda.rs b/basics/favorites/pinocchio/program/src/instructions/create_pda.rs
new file mode 100644
index 000000000..89192a9ae
--- /dev/null
+++ b/basics/favorites/pinocchio/program/src/instructions/create_pda.rs
@@ -0,0 +1,63 @@
+use crate::state::Favorites;
+
+use pinocchio::{
+ account_info::AccountInfo,
+ instruction::{Seed, Signer},
+ program_error::ProgramError,
+ pubkey::{find_program_address, Pubkey},
+ sysvars::{rent::Rent, Sysvar},
+ ProgramResult,
+};
+
+use pinocchio_system::instructions::CreateAccount;
+
+pub fn create_pda(program_id: &Pubkey, accounts: &[AccountInfo], data: &[u8]) -> ProgramResult {
+ let [user, favorite_account, _] = accounts else {
+ return Err(ProgramError::NotEnoughAccountKeys);
+ };
+
+ // deriving the favorite pda
+ let (favorite_pda, favorite_bump) =
+ find_program_address(&[b"favorite", user.key().as_ref()], program_id);
+
+ // Checking if the favorite account is same as the derived favorite pda
+ if favorite_account.key() != &favorite_pda {
+ return Err(ProgramError::IncorrectProgramId);
+ }
+
+ // Checking if the pda is already initialized
+ if favorite_account.try_borrow_data()?.is_empty() {
+ let rent = Rent::get()?;
+
+ // Initialize the favorite account if it's not initialized
+ let space = size_of::();
+ let lamports = rent.minimum_balance(space);
+
+ let bump_bytes = favorite_bump.to_le_bytes();
+
+ let seeds = [
+ Seed::from(b"favorite"),
+ Seed::from(user.key()),
+ Seed::from(&bump_bytes),
+ ];
+
+ let signers = [Signer::from(&seeds)];
+
+ CreateAccount {
+ from: user,
+ to: favorite_account,
+ lamports,
+ space: space as u64,
+ owner: program_id,
+ }
+ .invoke_signed(&signers)?;
+
+ // Serialize and store the data
+ let mut favrite_account_data = favorite_account.try_borrow_mut_data()?;
+ favrite_account_data.copy_from_slice(data);
+ } else {
+ return Err(ProgramError::AccountAlreadyInitialized);
+ }
+
+ Ok(())
+}
diff --git a/basics/favorites/pinocchio/program/src/instructions/get_pda.rs b/basics/favorites/pinocchio/program/src/instructions/get_pda.rs
new file mode 100644
index 000000000..033c4f37c
--- /dev/null
+++ b/basics/favorites/pinocchio/program/src/instructions/get_pda.rs
@@ -0,0 +1,56 @@
+use pinocchio::{
+ account_info::AccountInfo,
+ program_error::ProgramError,
+ pubkey::{find_program_address, Pubkey},
+ ProgramResult,
+};
+use pinocchio_log::log;
+
+pub fn get_pda(program_id: &Pubkey, accounts: &[AccountInfo]) -> ProgramResult {
+ let [user, favorite_account] = accounts else {
+ return Err(ProgramError::NotEnoughAccountKeys);
+ };
+
+ // deriving the favorite pda
+ let (favorite_pda, _) = find_program_address(&[b"favorite", user.key().as_ref()], program_id);
+
+ // Checking if the favorite account is same as the derived favorite pda
+ if favorite_account.key() != &favorite_pda {
+ return Err(ProgramError::IncorrectProgramId);
+ };
+
+ let favorites = favorite_account.try_borrow_data()?;
+
+ let number = u64::from_le_bytes(
+ favorites[0..8]
+ .try_into()
+ .map_err(|_| ProgramError::InvalidAccountData)?,
+ );
+ let color =
+ core::str::from_utf8(&favorites[8..16]).map_err(|_| ProgramError::InvalidAccountData)?;
+
+ let hobby1 =
+ core::str::from_utf8(&favorites[16..32]).map_err(|_| ProgramError::InvalidAccountData)?;
+
+ let hobby2 =
+ core::str::from_utf8(&favorites[32..48]).map_err(|_| ProgramError::InvalidAccountData)?;
+
+ let hobby3 =
+ core::str::from_utf8(&favorites[48..64]).map_err(|_| ProgramError::InvalidAccountData)?;
+
+ let hobby4 =
+ core::str::from_utf8(&favorites[64..80]).map_err(|_| ProgramError::InvalidAccountData)?;
+
+ log!(
+ 300,
+ "User {}'s favorite number is {}, favorite color is: {}, and their hobbies are {} {} {} {}",
+ user.key(),
+ number,
+ color,
+ hobby1,
+ hobby2,
+ hobby3,
+ hobby4,
+ );
+ Ok(())
+}
diff --git a/basics/favorites/pinocchio/program/src/instructions/mod.rs b/basics/favorites/pinocchio/program/src/instructions/mod.rs
new file mode 100644
index 000000000..2f2a2ae4d
--- /dev/null
+++ b/basics/favorites/pinocchio/program/src/instructions/mod.rs
@@ -0,0 +1,2 @@
+pub mod create_pda;
+pub mod get_pda;
diff --git a/basics/favorites/pinocchio/program/src/lib.rs b/basics/favorites/pinocchio/program/src/lib.rs
new file mode 100644
index 000000000..f415686d8
--- /dev/null
+++ b/basics/favorites/pinocchio/program/src/lib.rs
@@ -0,0 +1,11 @@
+#![no_std]
+use pinocchio::entrypoint;
+
+pub mod instructions;
+pub mod processor;
+pub mod state;
+
+use processor::process_instruction;
+
+pinocchio::nostd_panic_handler!();
+entrypoint!(process_instruction);
diff --git a/basics/favorites/pinocchio/program/src/processor.rs b/basics/favorites/pinocchio/program/src/processor.rs
new file mode 100644
index 000000000..808e68202
--- /dev/null
+++ b/basics/favorites/pinocchio/program/src/processor.rs
@@ -0,0 +1,22 @@
+use pinocchio::{
+ account_info::AccountInfo, program_error::ProgramError, pubkey::Pubkey, ProgramResult,
+};
+
+use crate::instructions::{create_pda::*, get_pda::*};
+pub use crate::state::Favorites;
+
+pub fn process_instruction(
+ program_id: &Pubkey,
+ accounts: &[AccountInfo],
+ instruction_data: &[u8],
+) -> ProgramResult {
+ let (discriminator, ix_data) = instruction_data.split_first().unwrap();
+
+ match discriminator {
+ 1 => create_pda(program_id, accounts, ix_data),
+ 2 => get_pda(program_id, accounts),
+ _ => Err(ProgramError::InvalidInstructionData),
+ }?;
+
+ Ok(())
+}
diff --git a/basics/favorites/pinocchio/program/src/state.rs b/basics/favorites/pinocchio/program/src/state.rs
new file mode 100644
index 000000000..6eeb80545
--- /dev/null
+++ b/basics/favorites/pinocchio/program/src/state.rs
@@ -0,0 +1,5 @@
+pub struct Favorites {
+ pub number: u64,
+ pub color: [u8; 8],
+ pub hobbies: [[u8; 16]; 4],
+}
diff --git a/basics/favorites/pinocchio/program/tests/test.rs b/basics/favorites/pinocchio/program/tests/test.rs
new file mode 100644
index 000000000..b6c29c87f
--- /dev/null
+++ b/basics/favorites/pinocchio/program/tests/test.rs
@@ -0,0 +1,95 @@
+use litesvm::LiteSVM;
+use solana_instruction::{AccountMeta, Instruction};
+use solana_keypair::{Keypair, Signer};
+use solana_native_token::LAMPORTS_PER_SOL;
+use solana_pubkey::Pubkey;
+use solana_transaction::Transaction;
+
+#[test]
+fn test_favorites() {
+ let program_id = Pubkey::new_unique();
+ let program_bytes = include_bytes!("../../tests/fixtures/favorites_pinocchio.so");
+
+ let mut svm = LiteSVM::new();
+ svm.add_program(program_id, program_bytes).unwrap();
+
+ let payer = Keypair::new();
+
+ svm.airdrop(&payer.pubkey(), LAMPORTS_PER_SOL * 10).unwrap();
+
+ let favorites_pda =
+ Pubkey::find_program_address(&[b"favorite", payer.pubkey().as_ref()], &program_id).0;
+
+ let mut data = Vec::new();
+
+ data.push(1);
+
+ data.extend_from_slice(&u64::to_le_bytes(42));
+
+ let mut color = [0u8; 8];
+ let color_len = "blue".len().min(8);
+ color[..color_len].copy_from_slice(b"blue");
+ data.extend_from_slice(&color);
+
+ let mut hobby1 = [0u8; 16];
+ let hobby1_len = "coding".len().min(16);
+ hobby1[..hobby1_len].copy_from_slice(b"coding");
+ data.extend_from_slice(&hobby1);
+
+ let mut hobby2 = [0u8; 16];
+ let hobby2_len = "reading".len().min(16);
+ hobby2[..hobby2_len].copy_from_slice(b"reading");
+ data.extend_from_slice(&hobby2);
+
+ let mut hobby3 = [0u8; 16];
+ let hobby3_len = "travelling".len().min(16);
+ hobby3[..hobby3_len].copy_from_slice(b"travelling");
+ data.extend_from_slice(&hobby3);
+
+ let mut hobby4 = [0u8; 16];
+ let hobby4_len = "shitposting".len().min(16);
+ hobby4[..hobby4_len].copy_from_slice(b"shitposting");
+ data.extend_from_slice(&hobby4);
+
+ let ix = Instruction {
+ program_id,
+ accounts: vec![
+ AccountMeta::new(payer.pubkey(), true),
+ AccountMeta::new(favorites_pda, false),
+ AccountMeta::new(solana_system_interface::program::ID, false),
+ ],
+ data,
+ };
+
+ let tx = Transaction::new_signed_with_payer(
+ &[ix],
+ Some(&payer.pubkey()),
+ &[&payer],
+ svm.latest_blockhash(),
+ );
+
+ let res = svm.send_transaction(tx);
+ assert!(res.is_ok());
+
+ let mut data = Vec::new();
+ data.push(2);
+
+ let ix = Instruction {
+ program_id,
+ accounts: vec![
+ AccountMeta::new(payer.pubkey(), true),
+ AccountMeta::new(favorites_pda, false),
+ ],
+ data,
+ };
+
+ let tx = Transaction::new_signed_with_payer(
+ &[ix],
+ Some(&payer.pubkey()),
+ &[&payer],
+ svm.latest_blockhash(),
+ );
+
+ let res = svm.send_transaction(tx);
+ assert!(res.is_ok());
+}
diff --git a/basics/favorites/pinocchio/tests/test.ts b/basics/favorites/pinocchio/tests/test.ts
new file mode 100644
index 000000000..e6d02ff24
--- /dev/null
+++ b/basics/favorites/pinocchio/tests/test.ts
@@ -0,0 +1,17 @@
+import {
+ Blockhash,
+ Keypair,
+ PublicKey,
+ SystemProgram,
+ Transaction,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import { BN } from "bn.js";
+import * as borsh from "borsh";
+import { assert, expect } from "chai";
+import { describe, test } from "mocha";
+import { BanksClient, ProgramTestContext, start } from "solana-bankrun";
+
+describe("Favorites Solana Pinocchio", () => {
+ console.log("Favorites Solana Pinocchio");
+});
diff --git a/basics/favorites/pinocchio/tsconfig.json b/basics/favorites/pinocchio/tsconfig.json
new file mode 100644
index 000000000..8c20b2236
--- /dev/null
+++ b/basics/favorites/pinocchio/tsconfig.json
@@ -0,0 +1,10 @@
+{
+ "compilerOptions": {
+ "types": ["mocha", "chai", "node"],
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2015"],
+ "module": "commonjs",
+ "target": "es6",
+ "esModuleInterop": true
+ }
+}
diff --git a/basics/rent/pinocchio/program/src/lib.rs b/basics/rent/pinocchio/program/src/lib.rs
index 722ba34fe..b3883db55 100644
--- a/basics/rent/pinocchio/program/src/lib.rs
+++ b/basics/rent/pinocchio/program/src/lib.rs
@@ -1,14 +1,11 @@
#![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,
- },
+ sysvars::{rent::Rent, Sysvar},
ProgramResult,
};
use pinocchio_log::log;
@@ -30,11 +27,7 @@ fn process_instruction(
log!(" New public key will be: ");
pinocchio::pubkey::log(new_account.key());
- let rent = Rent {
- lamports_per_byte_year: DEFAULT_LAMPORTS_PER_BYTE_YEAR,
- exemption_threshold: DEFAULT_EXEMPTION_THRESHOLD,
- burn_percent: DEFAULT_BURN_PERCENT,
- };
+ let rent = Rent::get()?;
// Determine the necessary minimum rent by calculating the account's size
//
diff --git a/basics/transfer-sol/pinocchio/program/src/lib.rs b/basics/transfer-sol/pinocchio/program/src/lib.rs
index cc31b44c4..5b27c4f42 100644
--- a/basics/transfer-sol/pinocchio/program/src/lib.rs
+++ b/basics/transfer-sol/pinocchio/program/src/lib.rs
@@ -1,5 +1,4 @@
#![no_std]
-#![allow(deprecated)]
use pinocchio::{
account_info::AccountInfo, entrypoint, nostd_panic_handler, program_error::ProgramError,
From 2212a32eff1305f7545a8d8296340f9d6a0a2158 Mon Sep 17 00:00:00 2001
From: Perelyn <64838956+Perelyn-sama@users.noreply.github.com>
Date: Tue, 30 Dec 2025 03:20:45 +0100
Subject: [PATCH 10/49] feat: add pda rent payer pinocchio example (#488)
---
Cargo.lock | 16 +
Cargo.toml | 1 +
basics/pda-rent-payer/pinocchio/cicd.sh | 8 +
basics/pda-rent-payer/pinocchio/package.json | 22 +
.../pda-rent-payer/pinocchio/pnpm-lock.yaml | 1342 +++++++++++++++++
.../pinocchio/program/Cargo.toml | 29 +
.../src/instructions/create_new_account.rs | 28 +
.../src/instructions/init_rent_vault.rs | 58 +
.../pinocchio/program/src/instructions/mod.rs | 5 +
.../pinocchio/program/src/lib.rs | 11 +
.../pinocchio/program/src/processor.rs | 25 +
.../pinocchio/program/src/state/mod.rs | 5 +
.../pinocchio/program/tests/test.rs | 68 +
basics/pda-rent-payer/pinocchio/tests/test.ts | 15 +
basics/pda-rent-payer/pinocchio/tsconfig.json | 10 +
15 files changed, 1643 insertions(+)
create mode 100644 basics/pda-rent-payer/pinocchio/cicd.sh
create mode 100644 basics/pda-rent-payer/pinocchio/package.json
create mode 100644 basics/pda-rent-payer/pinocchio/pnpm-lock.yaml
create mode 100644 basics/pda-rent-payer/pinocchio/program/Cargo.toml
create mode 100644 basics/pda-rent-payer/pinocchio/program/src/instructions/create_new_account.rs
create mode 100644 basics/pda-rent-payer/pinocchio/program/src/instructions/init_rent_vault.rs
create mode 100644 basics/pda-rent-payer/pinocchio/program/src/instructions/mod.rs
create mode 100644 basics/pda-rent-payer/pinocchio/program/src/lib.rs
create mode 100644 basics/pda-rent-payer/pinocchio/program/src/processor.rs
create mode 100644 basics/pda-rent-payer/pinocchio/program/src/state/mod.rs
create mode 100644 basics/pda-rent-payer/pinocchio/program/tests/test.rs
create mode 100644 basics/pda-rent-payer/pinocchio/tests/test.ts
create mode 100644 basics/pda-rent-payer/pinocchio/tsconfig.json
diff --git a/Cargo.lock b/Cargo.lock
index 2224195bb..e7ea21879 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2170,6 +2170,22 @@ dependencies = [
"anchor-lang",
]
+[[package]]
+name = "pda-rent-payer-pinocchio-program"
+version = "0.1.0"
+dependencies = [
+ "litesvm",
+ "pinocchio",
+ "pinocchio-log",
+ "pinocchio-system",
+ "solana-instruction 3.0.0",
+ "solana-keypair",
+ "solana-native-token 3.0.0",
+ "solana-pubkey 3.0.0",
+ "solana-system-interface 2.0.0",
+ "solana-transaction",
+]
+
[[package]]
name = "pda-rent-payer-program"
version = "0.1.0"
diff --git a/Cargo.toml b/Cargo.toml
index 09301971c..68a58312b 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -22,6 +22,7 @@ members = [
"basics/hello-solana/anchor/programs/*",
"basics/hello-solana/pinocchio/program",
"basics/pda-rent-payer/native/program",
+ "basics/pda-rent-payer/pinocchio/program",
"basics/pda-rent-payer/anchor/programs/*",
"basics/processing-instructions/native/program",
"basics/processing-instructions/anchor/programs/*",
diff --git a/basics/pda-rent-payer/pinocchio/cicd.sh b/basics/pda-rent-payer/pinocchio/cicd.sh
new file mode 100644
index 000000000..0903cf896
--- /dev/null
+++ b/basics/pda-rent-payer/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 --bpf-out-dir=./program/target/so
+solana program deploy ./program/target/so/program.so
diff --git a/basics/pda-rent-payer/pinocchio/package.json b/basics/pda-rent-payer/pinocchio/package.json
new file mode 100644
index 000000000..3cc45dbd5
--- /dev/null
+++ b/basics/pda-rent-payer/pinocchio/package.json
@@ -0,0 +1,22 @@
+{
+ "type": "module",
+ "scripts": {
+ "test": "pnpm ts-mocha -p ./tsconfig.json -t 1000000 ./tests/test.ts",
+ "build-and-test": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./tests/fixtures && pnpm test",
+ "build": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./program/target/so",
+ "deploy": "solana program deploy ./program/target/so/program.so"
+ },
+ "dependencies": {
+ "@solana/web3.js": "^1.47.3"
+ },
+ "devDependencies": {
+ "@types/bn.js": "^5.1.0",
+ "@types/chai": "^4.3.1",
+ "@types/mocha": "^9.1.1",
+ "chai": "^4.3.4",
+ "mocha": "^9.0.3",
+ "solana-bankrun": "^0.3.0",
+ "ts-mocha": "^10.0.0",
+ "typescript": "^4.3.5"
+ }
+}
diff --git a/basics/pda-rent-payer/pinocchio/pnpm-lock.yaml b/basics/pda-rent-payer/pinocchio/pnpm-lock.yaml
new file mode 100644
index 000000000..315de63a2
--- /dev/null
+++ b/basics/pda-rent-payer/pinocchio/pnpm-lock.yaml
@@ -0,0 +1,1342 @@
+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
+ 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.1':
+ resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==}
+ engines: {node: '>=6.9.0'}
+
+ '@noble/curves@1.9.1':
+ resolution: {integrity: sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==}
+ 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.1':
+ resolution: {integrity: sha512-iPQW3UZ2Vi7QFBo2r9tw0NubtH8EdrhhmZulx6lC8V5a+qjaxovtM/q/UW2BTNpqqHLfO0tIcLyBLrNH4HTWPg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.1.1':
+ resolution: {integrity: sha512-m20IUPJhPUmPkHSlZ2iMAjJ7PaYUvlMtFhCQYzm9BEBSI6OCvXTG3GAPpAnSGRBfg5y+QNqqmKn4QHU3B6zzCQ==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.1.1':
+ resolution: {integrity: sha512-sj6DaWNbSJFvLzT8UZoabMefQUfSW/8tXK7NTiagsDmh+Q87eyQDDC9L3z+mNmx9b6dEf6z660MOIplDD2nfEw==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@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.19':
+ resolution: {integrity: sha512-3vMNr4TzNQyjHcRZadojpRaD9Ofr6LsonZAoQ+HMUa/9ORTPoxVIw0e0mpqWpdjj8xybyCM+oKOUH2vwFu/oEw==}
+
+ '@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.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==}
+
+ 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'}
+
+ 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.2:
+ resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==}
+ 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.1': {}
+
+ '@noble/curves@1.9.1':
+ 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.1(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.1.1(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.1.1(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.1.1(typescript@4.9.5)
+ '@solana/errors': 2.1.1(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.1.1(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.1
+ '@noble/curves': 1.9.1
+ '@noble/hashes': 1.8.0
+ '@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.1.1(typescript@4.9.5)
+ agentkeepalive: 4.6.0
+ 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
+ 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.19
+
+ '@types/chai@4.3.20': {}
+
+ '@types/connect@3.4.38':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@types/json5@0.0.29':
+ optional: true
+
+ '@types/mocha@9.1.1': {}
+
+ '@types/node@12.20.55': {}
+
+ '@types/node@22.15.19':
+ dependencies:
+ undici-types: 6.21.0
+
+ '@types/uuid@8.3.4': {}
+
+ '@types/ws@7.4.7':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@types/ws@8.18.1':
+ dependencies:
+ '@types/node': 22.15.19
+
+ '@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.2: {}
+
+ borsh@0.7.0:
+ dependencies:
+ bn.js: 5.2.2
+ 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
+
+ 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.2(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.2(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/pda-rent-payer/pinocchio/program/Cargo.toml b/basics/pda-rent-payer/pinocchio/program/Cargo.toml
new file mode 100644
index 000000000..afca652bc
--- /dev/null
+++ b/basics/pda-rent-payer/pinocchio/program/Cargo.toml
@@ -0,0 +1,29 @@
+[package]
+name = "pda-rent-payer-pinocchio-program"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
+pinocchio.workspace = true
+pinocchio-log.workspace = true
+pinocchio-system.workspace = true
+
+
+[lib]
+crate-type = ["cdylib", "lib"]
+
+[features]
+custom-heap = []
+custom-panic = []
+
+[lints.rust]
+unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] }
+
+[dev-dependencies]
+litesvm.workspace = true
+solana-instruction.workspace = true
+solana-keypair.workspace = true
+solana-pubkey.workspace = true
+solana-transaction.workspace = true
+solana-native-token.workspace = true
+solana-system-interface.workspace = true
diff --git a/basics/pda-rent-payer/pinocchio/program/src/instructions/create_new_account.rs b/basics/pda-rent-payer/pinocchio/program/src/instructions/create_new_account.rs
new file mode 100644
index 000000000..2991fdf39
--- /dev/null
+++ b/basics/pda-rent-payer/pinocchio/program/src/instructions/create_new_account.rs
@@ -0,0 +1,28 @@
+use pinocchio::{
+ account_info::AccountInfo,
+ program_error::ProgramError,
+ pubkey::{find_program_address, Pubkey},
+ sysvars::{rent::Rent, Sysvar},
+ ProgramResult,
+};
+
+use crate::state::RentVault;
+
+pub fn create_new_account(program_id: &Pubkey, accounts: &[AccountInfo]) -> ProgramResult {
+ let [new_account, rent_vault, _] = accounts else {
+ return Err(ProgramError::NotEnoughAccountKeys);
+ };
+
+ let (rent_vault_pda, _rent_vault_bump) =
+ find_program_address(&[RentVault::SEED_PREFIX.as_bytes()], program_id);
+ assert!(rent_vault.key().eq(&rent_vault_pda));
+
+ // Assuming this account has no inner data (size 0)
+ //
+ let lamports_required_for_rent = (Rent::get()?).minimum_balance(0);
+
+ *rent_vault.try_borrow_mut_lamports()? -= lamports_required_for_rent;
+ *new_account.try_borrow_mut_lamports()? += lamports_required_for_rent;
+
+ Ok(())
+}
diff --git a/basics/pda-rent-payer/pinocchio/program/src/instructions/init_rent_vault.rs b/basics/pda-rent-payer/pinocchio/program/src/instructions/init_rent_vault.rs
new file mode 100644
index 000000000..3622075c2
--- /dev/null
+++ b/basics/pda-rent-payer/pinocchio/program/src/instructions/init_rent_vault.rs
@@ -0,0 +1,58 @@
+use pinocchio::{
+ account_info::AccountInfo,
+ instruction::{Seed, Signer},
+ program_error::ProgramError,
+ pubkey::{find_program_address, Pubkey},
+ sysvars::{rent::Rent, Sysvar},
+ ProgramResult,
+};
+use pinocchio_system::instructions::CreateAccount;
+
+use crate::state::RentVault;
+
+pub struct InitRentVaultArgs {
+ pub fund_lamports: u64,
+}
+
+pub fn init_rent_vault(
+ program_id: &Pubkey,
+ accounts: &[AccountInfo],
+ instruction_data: &[u8],
+) -> ProgramResult {
+ let [rent_vault, payer, _] = accounts else {
+ return Err(ProgramError::NotEnoughAccountKeys);
+ };
+
+ let (rent_vault_pda, rent_vault_bump) =
+ find_program_address(&[RentVault::SEED_PREFIX.as_bytes()], program_id);
+ assert!(rent_vault.key().eq(&rent_vault_pda));
+
+ // Lamports for rent on the vault, plus the desired additional funding
+ //
+ let fund_lamports = u64::from_le_bytes(
+ instruction_data[0..8]
+ .try_into()
+ .map_err(|_| ProgramError::InvalidInstructionData)?,
+ );
+ let lamports_required = (Rent::get()?).minimum_balance(0) + fund_lamports;
+
+ let bump_bytes = rent_vault_bump.to_le_bytes();
+
+ let seeds = [
+ Seed::from(RentVault::SEED_PREFIX.as_bytes()),
+ Seed::from(&bump_bytes),
+ ];
+
+ let signer_seed = Signer::from(&seeds);
+
+ CreateAccount {
+ from: payer,
+ to: rent_vault,
+ lamports: lamports_required,
+ space: 0,
+ owner: program_id,
+ }
+ .invoke_signed(&[signer_seed])?;
+
+ Ok(())
+}
diff --git a/basics/pda-rent-payer/pinocchio/program/src/instructions/mod.rs b/basics/pda-rent-payer/pinocchio/program/src/instructions/mod.rs
new file mode 100644
index 000000000..31d096b95
--- /dev/null
+++ b/basics/pda-rent-payer/pinocchio/program/src/instructions/mod.rs
@@ -0,0 +1,5 @@
+pub mod create_new_account;
+pub mod init_rent_vault;
+
+pub use create_new_account::*;
+pub use init_rent_vault::*;
diff --git a/basics/pda-rent-payer/pinocchio/program/src/lib.rs b/basics/pda-rent-payer/pinocchio/program/src/lib.rs
new file mode 100644
index 000000000..8e257af62
--- /dev/null
+++ b/basics/pda-rent-payer/pinocchio/program/src/lib.rs
@@ -0,0 +1,11 @@
+#![no_std]
+use pinocchio::{entrypoint, nostd_panic_handler};
+
+use processor::process_instruction;
+
+pub mod instructions;
+pub mod processor;
+pub mod state;
+
+entrypoint!(process_instruction);
+nostd_panic_handler!();
diff --git a/basics/pda-rent-payer/pinocchio/program/src/processor.rs b/basics/pda-rent-payer/pinocchio/program/src/processor.rs
new file mode 100644
index 000000000..a65d599e4
--- /dev/null
+++ b/basics/pda-rent-payer/pinocchio/program/src/processor.rs
@@ -0,0 +1,25 @@
+use pinocchio::{
+ account_info::AccountInfo, program_error::ProgramError, pubkey::Pubkey, ProgramResult,
+};
+
+use crate::instructions::{
+ create_new_account::create_new_account,
+ init_rent_vault::{init_rent_vault, InitRentVaultArgs},
+};
+
+pub enum MyInstruction {
+ InitRentVault(InitRentVaultArgs),
+ CreateNewAccount,
+}
+
+pub fn process_instruction(
+ program_id: &Pubkey,
+ accounts: &[AccountInfo],
+ instruction_data: &[u8],
+) -> ProgramResult {
+ match instruction_data.split_first() {
+ Some((0, data)) => init_rent_vault(program_id, accounts, data),
+ Some((1, _)) => create_new_account(program_id, accounts),
+ _ => Err(ProgramError::InvalidInstructionData),
+ }
+}
diff --git a/basics/pda-rent-payer/pinocchio/program/src/state/mod.rs b/basics/pda-rent-payer/pinocchio/program/src/state/mod.rs
new file mode 100644
index 000000000..8621bf7e7
--- /dev/null
+++ b/basics/pda-rent-payer/pinocchio/program/src/state/mod.rs
@@ -0,0 +1,5 @@
+pub struct RentVault {}
+
+impl RentVault {
+ pub const SEED_PREFIX: &'static str = "rent_vault";
+}
diff --git a/basics/pda-rent-payer/pinocchio/program/tests/test.rs b/basics/pda-rent-payer/pinocchio/program/tests/test.rs
new file mode 100644
index 000000000..741927c41
--- /dev/null
+++ b/basics/pda-rent-payer/pinocchio/program/tests/test.rs
@@ -0,0 +1,68 @@
+use litesvm::LiteSVM;
+use solana_instruction::{AccountMeta, Instruction};
+use solana_keypair::{Keypair, Signer};
+use solana_native_token::LAMPORTS_PER_SOL;
+use solana_pubkey::Pubkey;
+use solana_transaction::Transaction;
+
+#[test]
+fn test_pda_rent_payer() {
+ let program_id = Pubkey::new_unique();
+ let program_bytes = include_bytes!("../../tests/fixtures/pda_rent_payer_pinocchio_program.so");
+
+ let mut svm = LiteSVM::new();
+ svm.add_program(program_id, program_bytes).unwrap();
+
+ let payer = Keypair::new();
+ svm.airdrop(&payer.pubkey(), LAMPORTS_PER_SOL * 10).unwrap();
+
+ let rent_value_pda = Pubkey::find_program_address(&[b"rent_vault"], &program_id).0;
+
+ let mut data = Vec::new();
+ data.push(0);
+ data.extend_from_slice(&u64::to_le_bytes(1000000000));
+
+ let ix = Instruction {
+ program_id,
+ accounts: vec![
+ AccountMeta::new(rent_value_pda, false),
+ AccountMeta::new(payer.pubkey(), true),
+ AccountMeta::new(solana_system_interface::program::ID, false),
+ ],
+ data,
+ };
+
+ let tx = Transaction::new_signed_with_payer(
+ &[ix],
+ Some(&payer.pubkey()),
+ &[&payer],
+ svm.latest_blockhash(),
+ );
+
+ let res = svm.send_transaction(tx);
+ assert!(res.is_ok());
+
+ let new_account = Keypair::new();
+
+ let data = vec![1];
+
+ let ix = Instruction {
+ program_id,
+ accounts: vec![
+ AccountMeta::new(new_account.pubkey(), true),
+ AccountMeta::new(rent_value_pda, false),
+ AccountMeta::new(solana_system_interface::program::ID, false),
+ ],
+ data,
+ };
+
+ let tx = Transaction::new_signed_with_payer(
+ &[ix],
+ Some(&payer.pubkey()),
+ &[&payer, &new_account],
+ svm.latest_blockhash(),
+ );
+
+ let res = svm.send_transaction(tx);
+ assert!(res.is_ok());
+}
diff --git a/basics/pda-rent-payer/pinocchio/tests/test.ts b/basics/pda-rent-payer/pinocchio/tests/test.ts
new file mode 100644
index 000000000..b1af8db34
--- /dev/null
+++ b/basics/pda-rent-payer/pinocchio/tests/test.ts
@@ -0,0 +1,15 @@
+import { Buffer } from "node:buffer";
+import { describe, test } from "node:test";
+import {
+ Keypair,
+ PublicKey,
+ SystemProgram,
+ Transaction,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import * as borsh from "borsh";
+import { start } from "solana-bankrun";
+
+describe("PDA Rent-Payer", async () => {
+ console.log("PDA Rent-Payer");
+});
diff --git a/basics/pda-rent-payer/pinocchio/tsconfig.json b/basics/pda-rent-payer/pinocchio/tsconfig.json
new file mode 100644
index 000000000..cd5d2e3d0
--- /dev/null
+++ b/basics/pda-rent-payer/pinocchio/tsconfig.json
@@ -0,0 +1,10 @@
+{
+ "compilerOptions": {
+ "types": ["mocha", "chai"],
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2015"],
+ "module": "commonjs",
+ "target": "es6",
+ "esModuleInterop": true
+ }
+}
From d9ff6d8193bff0c00aa8fb56e75ad3fd281d8871 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?solwarrior=20=F0=9F=97=A1=EF=B8=8F?=
<118261237+sol-warrior@users.noreply.github.com>
Date: Tue, 30 Dec 2025 07:51:38 +0530
Subject: [PATCH 11/49] feat: Add LiteSVM tests for the Repository-Layout
anchor program (#483)
* feat: add LiteSVM tests for repository-layout anchor program
* Implement tests for various interactions at the carnival, including going on rides, playing games, and eating food.
* Introduce a utility function to create and send transactions for the defined interactions.
* Utilize LiteSVM and Anchor for testing the carnival program's functionality.
* chore: update TypeScript configuration and import path
* Change module setting in tsconfig.json from "commonjs" to "nodenext" for improved module resolution.
* Update import statement in test.ts to include the file extension for Carnival type import.
* chore: add litesvm dependency to anchor package.json and update pnpm-lock.yaml
* Added litesvm version 0.4.0 to dependencies in package.json.
* Updated pnpm-lock.yaml to include litesvm and its associated packages for various platforms.
* chore: remove deprecated bankrun test file and related packages
---
basics/repository-layout/anchor/package.json | 5 +-
.../repository-layout/anchor/pnpm-lock.yaml | 240 ++++++++++++------
.../anchor/tests/bankrun.test.ts | 65 -----
.../anchor/tests/litesvm.test.ts | 129 ++++++++++
basics/repository-layout/anchor/tests/test.ts | 88 ++++---
basics/repository-layout/anchor/tsconfig.json | 16 +-
6 files changed, 346 insertions(+), 197 deletions(-)
delete mode 100644 basics/repository-layout/anchor/tests/bankrun.test.ts
create mode 100644 basics/repository-layout/anchor/tests/litesvm.test.ts
diff --git a/basics/repository-layout/anchor/package.json b/basics/repository-layout/anchor/package.json
index 7865c8c24..1f9417836 100644
--- a/basics/repository-layout/anchor/package.json
+++ b/basics/repository-layout/anchor/package.json
@@ -2,16 +2,15 @@
"type": "module",
"dependencies": {
"@coral-xyz/anchor": "0.32.1",
- "@solana/web3.js": "^1.95.2"
+ "@solana/web3.js": "^1.95.2",
+ "litesvm": "^0.4.0"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
"@types/chai": "^4.3.0",
"@types/mocha": "^9.0.0",
- "anchor-bankrun": "^0.4.0",
"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/repository-layout/anchor/pnpm-lock.yaml b/basics/repository-layout/anchor/pnpm-lock.yaml
index 825446a90..9a2850e68 100644
--- a/basics/repository-layout/anchor/pnpm-lock.yaml
+++ b/basics/repository-layout/anchor/pnpm-lock.yaml
@@ -14,6 +14,9 @@ importers:
'@solana/web3.js':
specifier: ^1.95.2
version: 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ litesvm:
+ specifier: ^0.4.0
+ version: 0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
devDependencies:
'@types/bn.js':
specifier: ^5.1.0
@@ -24,18 +27,12 @@ importers:
'@types/mocha':
specifier: ^9.0.0
version: 9.1.1
- anchor-bankrun:
- specifier: ^0.4.0
- version: 0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
chai:
specifier: ^4.3.4
version: 4.4.1
mocha:
specifier: ^9.0.3
version: 9.2.2
- solana-bankrun:
- specifier: ^0.3.0
- version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
ts-mocha:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
@@ -78,9 +75,31 @@ packages:
resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
engines: {node: '>=5.10'}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/web3.js@1.95.2':
resolution: {integrity: sha512-SjlHp0G4qhuhkQQc+YXdGkI8EerCqwxvgytMgBpzMUQTafrkNant3e7pgilBGgjy/iM40ICvWBLgASTPMrQU7w==}
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
+
'@swc/helpers@0.5.12':
resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==}
@@ -125,14 +144,6 @@ packages:
resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
engines: {node: '>= 8.0.0'}
- anchor-bankrun@0.4.0:
- resolution: {integrity: sha512-s+K7E0IGAlmkhuo8nbiqVsQf2yJ+3l9GjNQJSmkRDe25dQj4Yef9rJh77FH6EQ5H6yQYfzuhgm/5GD6JMjdTZg==}
- engines: {node: '>= 10'}
- peerDependencies:
- '@coral-xyz/anchor': ^0.30.0
- '@solana/web3.js': ^1.78.4
- solana-bankrun: ^0.2.0
-
ansi-colors@4.1.1:
resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
engines: {node: '>=6'}
@@ -227,6 +238,10 @@ packages:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -244,6 +259,10 @@ packages:
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ 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==}
@@ -312,6 +331,9 @@ packages:
fast-stable-stringify@1.0.0:
resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
+ fastestsmallesttextencoderdecoder@1.0.22:
+ resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
+
file-uri-to-path@1.0.0:
resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
@@ -429,6 +451,46 @@ packages:
resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
engines: {'0': node >= 0.2.0}
+ litesvm-darwin-arm64@0.4.0:
+ resolution: {integrity: sha512-LN6iZcUQ6Xi5KO/7yJBYSALjjDCI/s/s2PgV3BqM4dpeBaLz+fXX/+qgMcBgpEVgEdEmhelux+WtAMkbEzJfrA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [darwin]
+
+ litesvm-darwin-x64@0.4.0:
+ resolution: {integrity: sha512-3ltogKQdle8LbakVqoB6plxaNwp6Vb3tnkqa3G5mAvvZNorB2iumThDaTZ381Knl69t566LZm+g/VDZwYfsfhA==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [darwin]
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ resolution: {integrity: sha512-SWlcRUqkXCMgLoDX/Wqr/S1lff+ggVI9f0YrRJMraxtEyApxutAoW2AWw4tvo6DsEgNwjxgsZOAwnE6bQBv8CA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-arm64-musl@0.4.0:
+ resolution: {integrity: sha512-YMMqwEWJUSWwL0Rwp8dFwl3jvgNU21eI7Qc+BpH9u2yeIRYQTn3rNGDnsK8v3QIZPHQdMo7NrPhzk4XoB1aKPg==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-x64-gnu@0.4.0:
+ resolution: {integrity: sha512-brZ3tFABDVQEYCgci7AO8iVYLw10UXVo97/lpTy75bTzNoqkggg8wFQOrbgCdb9NRwt06Y4Zf8cpIZAoDQq2mw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm-linux-x64-musl@0.4.0:
+ resolution: {integrity: sha512-D98qdIOuWg4fOewIIiH1D23AtM4I7/3vLKXIL8uQz06D5ev5fsBzNp2gM7libAywTkCYy/u666xgD6PsWhrTaw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm@0.4.0:
+ resolution: {integrity: sha512-ySr5mB2ap4SzJpmVR2I5+gjzTH8NJbkg7DYPormzA2U9F4LhfvTTrD17X/k5N3Bn4b5Db6/CwSyX2qc0HrJtNA==}
+ engines: {node: '>= 20'}
+
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -542,39 +604,6 @@ packages:
serialize-javascript@6.0.0:
resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
- solana-bankrun-darwin-arm64@0.3.0:
- resolution: {integrity: sha512-+NbDncf0U6l3knuacRBiqpjZ2DSp+5lZaAU518gH7/x6qubbui/d000STaIBK+uNTPBS/AL/bCN+7PkXqmA3lA==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [darwin]
-
- solana-bankrun-darwin-universal@0.3.0:
- resolution: {integrity: sha512-1/F0xdMa4qvc5o6z16FCCbZ5jbdvKvxpx5kyPcMWRiRPwyvi+zltMxciPAYMlg3wslQqGz88uFhrBEzq2eTumQ==}
- engines: {node: '>= 10'}
- os: [darwin]
-
- solana-bankrun-darwin-x64@0.3.0:
- resolution: {integrity: sha512-U6CANjkmMl+lgNA7UH0GKs5V7LtVIUDzJBZefGGqLfqUNv3EjA/PrrToM0hAOWJgkxSwdz6zW+p5sw5FmnbXtg==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [darwin]
-
- solana-bankrun-linux-x64-gnu@0.3.0:
- resolution: {integrity: sha512-qJSkCFs0k2n4XtTnyxGMiZsuqO2TiqTYgWjQ+3mZhGNUAMys/Vq8bd7/SyBm6RR7EfVuRXRxZvh+F8oKZ77V4w==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- solana-bankrun-linux-x64-musl@0.3.0:
- resolution: {integrity: sha512-xsS2CS2xb1Sw4ivNXM0gPz/qpW9BX0neSvt/pnok5L330Nu9xlTnKAY8FhzzqOP9P9sJlGRM787Y6d0yYwt6xQ==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- solana-bankrun@0.3.0:
- resolution: {integrity: sha512-YkH7sa8TB/AoRPzG17CXJtYsRIQHEkEqGLz1Vwc13taXhDBkjO7z6NI5JYw7n0ybRymDHwMYTc7sd+5J40TyVQ==}
- engines: {node: '>= 10'}
-
source-map-support@0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
@@ -782,6 +811,23 @@ snapshots:
dependencies:
buffer: 6.0.3
+ '@solana/codecs-core@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@4.9.5)
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.3.0(typescript@4.9.5)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.2
+ typescript: 4.9.5
+
'@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
dependencies:
'@babel/runtime': 7.25.0
@@ -804,6 +850,29 @@ snapshots:
- encoding
- utf-8-validate
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@babel/runtime': 7.25.0
+ '@noble/curves': 1.5.0
+ '@noble/hashes': 1.8.0
+ '@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@4.9.5)
+ agentkeepalive: 4.5.0
+ 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.1.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ node-fetch: 2.7.0
+ rpc-websockets: 9.0.2
+ superstruct: 2.0.2
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
'@swc/helpers@0.5.12':
dependencies:
tslib: 2.6.2
@@ -850,12 +919,6 @@ snapshots:
dependencies:
humanize-ms: 1.2.1
- anchor-bankrun@0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
- dependencies:
- '@coral-xyz/anchor': 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- solana-bankrun: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
-
ansi-colors@4.1.1: {}
ansi-regex@5.0.1: {}
@@ -949,6 +1012,8 @@ snapshots:
ansi-styles: 4.3.0
supports-color: 7.2.0
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -977,6 +1042,8 @@ snapshots:
color-name@1.1.4: {}
+ commander@14.0.2: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -1025,6 +1092,8 @@ snapshots:
fast-stable-stringify@1.0.0: {}
+ fastestsmallesttextencoderdecoder@1.0.22: {}
+
file-uri-to-path@1.0.0: {}
fill-range@7.0.1:
@@ -1134,6 +1203,41 @@ snapshots:
jsonparse@1.3.1: {}
+ litesvm-darwin-arm64@0.4.0:
+ optional: true
+
+ litesvm-darwin-x64@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-musl@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-musl@0.4.0:
+ optional: true
+
+ litesvm@0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10):
+ dependencies:
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ fastestsmallesttextencoderdecoder: 1.0.22
+ optionalDependencies:
+ litesvm-darwin-arm64: 0.4.0
+ litesvm-darwin-x64: 0.4.0
+ litesvm-linux-arm64-gnu: 0.4.0
+ litesvm-linux-arm64-musl: 0.4.0
+ litesvm-linux-x64-gnu: 0.4.0
+ litesvm-linux-x64-musl: 0.4.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1258,36 +1362,6 @@ snapshots:
dependencies:
randombytes: 2.1.0
- solana-bankrun-darwin-arm64@0.3.0:
- optional: true
-
- solana-bankrun-darwin-universal@0.3.0:
- optional: true
-
- solana-bankrun-darwin-x64@0.3.0:
- optional: true
-
- solana-bankrun-linux-x64-gnu@0.3.0:
- optional: true
-
- solana-bankrun-linux-x64-musl@0.3.0:
- optional: true
-
- solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
- dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- bs58: 4.0.1
- optionalDependencies:
- solana-bankrun-darwin-arm64: 0.3.0
- solana-bankrun-darwin-universal: 0.3.0
- solana-bankrun-darwin-x64: 0.3.0
- solana-bankrun-linux-x64-gnu: 0.3.0
- solana-bankrun-linux-x64-musl: 0.3.0
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - utf-8-validate
-
source-map-support@0.5.21:
dependencies:
buffer-from: 1.1.2
diff --git a/basics/repository-layout/anchor/tests/bankrun.test.ts b/basics/repository-layout/anchor/tests/bankrun.test.ts
deleted file mode 100644
index e43285904..000000000
--- a/basics/repository-layout/anchor/tests/bankrun.test.ts
+++ /dev/null
@@ -1,65 +0,0 @@
-import { describe, it } from "node:test";
-import * as anchor from "@coral-xyz/anchor";
-import { PublicKey, Transaction } from "@solana/web3.js";
-import { BankrunProvider } from "anchor-bankrun";
-import { startAnchor } from "solana-bankrun";
-import type { Carnival } from "../target/types/carnival";
-
-import IDL from "../target/idl/carnival.json" with { type: "json" };
-const PROGRAM_ID = new PublicKey(IDL.address);
-
-describe("Bankrun example", async () => {
- const context = await startAnchor(
- "",
- [{ name: "carnival", programId: PROGRAM_ID }],
- [],
- );
- const provider = new BankrunProvider(context);
- const wallet = provider.wallet as anchor.Wallet;
- const program = new anchor.Program(IDL, provider);
-
- async function sendCarnivalInstructions(
- instructionsList: anchor.web3.TransactionInstruction[],
- ) {
- const tx = new Transaction();
- for (const ix of instructionsList) {
- tx.add(ix);
- }
- await provider.sendAndConfirm(tx, [wallet.payer]);
- }
-
- it("Go on some rides!", async () => {
- await sendCarnivalInstructions([
- await program.methods
- .goOnRide("Jimmy", 36, 15, "Scrambler")
- .instruction(),
- await program.methods
- .goOnRide("Mary", 52, 1, "Ferris Wheel")
- .instruction(),
- await program.methods
- .goOnRide("Alice", 56, 15, "Scrambler")
- .instruction(),
- await program.methods
- .goOnRide("Bob", 49, 6, "Tilt-a-Whirl")
- .instruction(),
- ]);
- });
-
- it("Play some games!", async () => {
- await sendCarnivalInstructions([
- await program.methods.playGame("Jimmy", 15, "I Got It!").instruction(),
- await program.methods.playGame("Mary", 1, "Ring Toss").instruction(),
- await program.methods.playGame("Alice", 15, "Ladder Climb").instruction(),
- await program.methods.playGame("Bob", 6, "Ring Toss").instruction(),
- ]);
- });
-
- it("Eat some food!", async () => {
- await sendCarnivalInstructions([
- await program.methods.eatFood("Jimmy", 15, "Taco Shack").instruction(),
- await program.methods.eatFood("Mary", 1, "Larry's Pizza").instruction(),
- await program.methods.eatFood("Alice", 15, "Dough Boy's").instruction(),
- await program.methods.eatFood("Bob", 6, "Dough Boy's").instruction(),
- ]);
- });
-});
diff --git a/basics/repository-layout/anchor/tests/litesvm.test.ts b/basics/repository-layout/anchor/tests/litesvm.test.ts
new file mode 100644
index 000000000..caf8f3354
--- /dev/null
+++ b/basics/repository-layout/anchor/tests/litesvm.test.ts
@@ -0,0 +1,129 @@
+import anchor from "@coral-xyz/anchor";
+import {
+ Keypair,
+ LAMPORTS_PER_SOL,
+ PublicKey,
+ Transaction,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import { LiteSVM } from "litesvm";
+import Idl from "../target/idl/carnival.json" with { type: "json" };
+
+describe("LiteSVM: Carnival", () => {
+ const svm = new LiteSVM();
+ const programId = new PublicKey(Idl.address);
+ const coder = new anchor.BorshCoder(Idl as anchor.Idl);
+ const payer = Keypair.generate();
+ svm.airdrop(payer.publicKey, BigInt(5 * LAMPORTS_PER_SOL));
+
+ const programPath = new URL("../target/deploy/carnival.so", import.meta.url)
+ .pathname;
+ svm.addProgramFromFile(programId, programPath);
+
+ it("Go on some rides!", () => {
+ const jimmyIxArgs = {
+ name: "Jimmy",
+ height: 36,
+ ticket_count: 15,
+ ride_name: "Scrambler",
+ };
+ const maryIxArgs = {
+ name: "Mary",
+ height: 52,
+ ticket_count: 1,
+ ride_name: "Ferris Wheel",
+ };
+ const bobIxArgs = {
+ name: "Alice",
+ height: 56,
+ ticket_count: 15,
+ ride_name: "Scrambler",
+ };
+ const aliceIxArgs = {
+ name: "Bob",
+ height: 49,
+ ticket_count: 6,
+ ride_name: "Tilt-a-Whirl",
+ };
+
+ createAndSendTx(jimmyIxArgs, "go_on_ride");
+ createAndSendTx(maryIxArgs, "go_on_ride");
+ createAndSendTx(bobIxArgs, "go_on_ride");
+ createAndSendTx(aliceIxArgs, "go_on_ride");
+ });
+
+ it("Play some games!", () => {
+ const jimmyIxArgs = {
+ name: "Jimmy",
+ ticket_count: 15,
+ game_name: "I Got It!",
+ };
+ const maryIxArgs = {
+ name: "Mary",
+ ticket_count: 1,
+ game_name: "Ring Toss",
+ };
+ const aliceIxArgs = {
+ name: "Alice",
+ ticket_count: 15,
+ game_name: "Ladder Climb",
+ };
+ const bobIxArgs = {
+ name: "Bob",
+ ticket_count: 6,
+ game_name: "Ring Toss",
+ };
+
+ createAndSendTx(jimmyIxArgs, "play_game");
+ createAndSendTx(maryIxArgs, "play_game");
+ createAndSendTx(aliceIxArgs, "play_game");
+ createAndSendTx(bobIxArgs, "play_game");
+ });
+
+ it("Eat some food!", () => {
+ const jimmyIxArgs = {
+ name: "Jimmy",
+ ticket_count: 15,
+ food_stand_name: "Taco Shack",
+ };
+ const maryIxArgs = {
+ name: "Mary",
+ ticket_count: 1,
+ food_stand_name: "Larry's Pizza",
+ };
+ const aliceIxArgs = {
+ name: "Alice",
+ ticket_count: 15,
+ food_stand_name: "Dough Boy's",
+ };
+ const bobIxArgs = {
+ name: "Bob",
+ ticket_count: 6,
+ food_stand_name: "Dough Boy's",
+ };
+
+ createAndSendTx(jimmyIxArgs, "eat_food");
+ createAndSendTx(maryIxArgs, "eat_food");
+ createAndSendTx(aliceIxArgs, "eat_food");
+ createAndSendTx(bobIxArgs, "eat_food");
+ });
+
+ function createAndSendTx(
+ ixArgs: Record,
+ ixName: string,
+ ) {
+ const data = coder.instruction.encode(ixName, ixArgs);
+ const ix = new TransactionInstruction({
+ keys: [{ pubkey: payer.publicKey, isSigner: true, isWritable: true }],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+ tx.sign(payer);
+ const re = svm.sendTransaction(tx);
+ // console.log(re.toString());
+ }
+});
diff --git a/basics/repository-layout/anchor/tests/test.ts b/basics/repository-layout/anchor/tests/test.ts
index 46d281a63..c0baaa6bd 100644
--- a/basics/repository-layout/anchor/tests/test.ts
+++ b/basics/repository-layout/anchor/tests/test.ts
@@ -1,44 +1,56 @@
-import * as anchor from '@coral-xyz/anchor';
-import type { Carnival } from '../target/types/carnival';
+import * as anchor from "@coral-xyz/anchor";
+import type { Carnival } from "../target/types/carnival.ts";
-describe('Carnival', () => {
- const provider = anchor.AnchorProvider.env();
- anchor.setProvider(provider);
- const wallet = provider.wallet as anchor.Wallet;
- const program = anchor.workspace.Carnival as anchor.Program;
+describe("Carnival", () => {
+ const provider = anchor.AnchorProvider.env();
+ anchor.setProvider(provider);
+ const wallet = provider.wallet as anchor.Wallet;
+ const program = anchor.workspace.Carnival as anchor.Program;
- async function sendCarnivalInstructions(instructionsList: anchor.web3.TransactionInstruction[]) {
- const tx = new anchor.web3.Transaction();
- for (const ix of instructionsList) {
- tx.add(ix);
- }
- await anchor.web3.sendAndConfirmTransaction(provider.connection, tx, [wallet.payer]);
- }
+ async function sendCarnivalInstructions(
+ instructionsList: anchor.web3.TransactionInstruction[],
+ ) {
+ const tx = new anchor.web3.Transaction();
+ for (const ix of instructionsList) {
+ tx.add(ix);
+ }
+ await anchor.web3.sendAndConfirmTransaction(provider.connection, tx, [
+ wallet.payer,
+ ]);
+ }
- it('Go on some rides!', async () => {
- await sendCarnivalInstructions([
- await program.methods.goOnRide('Jimmy', 36, 15, 'Scrambler').instruction(),
- await program.methods.goOnRide('Mary', 52, 1, 'Ferris Wheel').instruction(),
- await program.methods.goOnRide('Alice', 56, 15, 'Scrambler').instruction(),
- await program.methods.goOnRide('Bob', 49, 6, 'Tilt-a-Whirl').instruction(),
- ]);
- });
+ it("Go on some rides!", async () => {
+ await sendCarnivalInstructions([
+ await program.methods
+ .goOnRide("Jimmy", 36, 15, "Scrambler")
+ .instruction(),
+ await program.methods
+ .goOnRide("Mary", 52, 1, "Ferris Wheel")
+ .instruction(),
+ await program.methods
+ .goOnRide("Alice", 56, 15, "Scrambler")
+ .instruction(),
+ await program.methods
+ .goOnRide("Bob", 49, 6, "Tilt-a-Whirl")
+ .instruction(),
+ ]);
+ });
- it('Play some games!', async () => {
- await sendCarnivalInstructions([
- await program.methods.playGame('Jimmy', 15, 'I Got It!').instruction(),
- await program.methods.playGame('Mary', 1, 'Ring Toss').instruction(),
- await program.methods.playGame('Alice', 15, 'Ladder Climb').instruction(),
- await program.methods.playGame('Bob', 6, 'Ring Toss').instruction(),
- ]);
- });
+ it("Play some games!", async () => {
+ await sendCarnivalInstructions([
+ await program.methods.playGame("Jimmy", 15, "I Got It!").instruction(),
+ await program.methods.playGame("Mary", 1, "Ring Toss").instruction(),
+ await program.methods.playGame("Alice", 15, "Ladder Climb").instruction(),
+ await program.methods.playGame("Bob", 6, "Ring Toss").instruction(),
+ ]);
+ });
- it('Eat some food!', async () => {
- await sendCarnivalInstructions([
- await program.methods.eatFood('Jimmy', 15, 'Taco Shack').instruction(),
- await program.methods.eatFood('Mary', 1, "Larry's Pizza").instruction(),
- await program.methods.eatFood('Alice', 15, "Dough Boy's").instruction(),
- await program.methods.eatFood('Bob', 6, "Dough Boy's").instruction(),
- ]);
- });
+ it("Eat some food!", async () => {
+ await sendCarnivalInstructions([
+ await program.methods.eatFood("Jimmy", 15, "Taco Shack").instruction(),
+ await program.methods.eatFood("Mary", 1, "Larry's Pizza").instruction(),
+ await program.methods.eatFood("Alice", 15, "Dough Boy's").instruction(),
+ await program.methods.eatFood("Bob", 6, "Dough Boy's").instruction(),
+ ]);
+ });
});
diff --git a/basics/repository-layout/anchor/tsconfig.json b/basics/repository-layout/anchor/tsconfig.json
index cd5d2e3d0..59fe75cf0 100644
--- a/basics/repository-layout/anchor/tsconfig.json
+++ b/basics/repository-layout/anchor/tsconfig.json
@@ -1,10 +1,10 @@
{
- "compilerOptions": {
- "types": ["mocha", "chai"],
- "typeRoots": ["./node_modules/@types"],
- "lib": ["es2015"],
- "module": "commonjs",
- "target": "es6",
- "esModuleInterop": true
- }
+ "compilerOptions": {
+ "types": ["mocha", "chai"],
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2015"],
+ "module": "nodenext",
+ "target": "es6",
+ "esModuleInterop": true
+ }
}
From 8e8508cdfc73a8b7ee95ebff4bbe512c3f28a6b7 Mon Sep 17 00:00:00 2001
From: Perelyn <64838956+Perelyn-sama@users.noreply.github.com>
Date: Tue, 30 Dec 2025 03:23:41 +0100
Subject: [PATCH 12/49] feat: add proccessing ix pinocchio example (#489)
---
Cargo.lock | 14 +
Cargo.toml | 1 +
.../processing-instructions/pinocchio/cicd.sh | 8 +
.../pinocchio/package.json | 22 +
.../pinocchio/pnpm-lock.yaml | 1342 +++++++++++++++++
.../pinocchio/program/Cargo.toml | 26 +
.../pinocchio/program/src/lib.rs | 36 +
.../pinocchio/program/tests/test.rs | 59 +
.../pinocchio/tests/test.ts | 13 +
.../pinocchio/tsconfig.json | 10 +
10 files changed, 1531 insertions(+)
create mode 100644 basics/processing-instructions/pinocchio/cicd.sh
create mode 100644 basics/processing-instructions/pinocchio/package.json
create mode 100644 basics/processing-instructions/pinocchio/pnpm-lock.yaml
create mode 100644 basics/processing-instructions/pinocchio/program/Cargo.toml
create mode 100644 basics/processing-instructions/pinocchio/program/src/lib.rs
create mode 100644 basics/processing-instructions/pinocchio/program/tests/test.rs
create mode 100644 basics/processing-instructions/pinocchio/tests/test.ts
create mode 100644 basics/processing-instructions/pinocchio/tsconfig.json
diff --git a/Cargo.lock b/Cargo.lock
index e7ea21879..de53cb804 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2335,6 +2335,20 @@ dependencies = [
"anchor-lang",
]
+[[package]]
+name = "processing-instructions-pinocchio-program"
+version = "0.1.0"
+dependencies = [
+ "litesvm",
+ "pinocchio",
+ "pinocchio-log",
+ "solana-instruction 3.0.0",
+ "solana-keypair",
+ "solana-native-token 3.0.0",
+ "solana-pubkey 3.0.0",
+ "solana-transaction",
+]
+
[[package]]
name = "processing-instructions-program"
version = "0.1.0"
diff --git a/Cargo.toml b/Cargo.toml
index 68a58312b..504af3e51 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -25,6 +25,7 @@ members = [
"basics/pda-rent-payer/pinocchio/program",
"basics/pda-rent-payer/anchor/programs/*",
"basics/processing-instructions/native/program",
+ "basics/processing-instructions/pinocchio/program",
"basics/processing-instructions/anchor/programs/*",
"basics/program-derived-addresses/native/program",
"basics/program-derived-addresses/anchor/programs/*",
diff --git a/basics/processing-instructions/pinocchio/cicd.sh b/basics/processing-instructions/pinocchio/cicd.sh
new file mode 100644
index 000000000..0903cf896
--- /dev/null
+++ b/basics/processing-instructions/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 --bpf-out-dir=./program/target/so
+solana program deploy ./program/target/so/program.so
diff --git a/basics/processing-instructions/pinocchio/package.json b/basics/processing-instructions/pinocchio/package.json
new file mode 100644
index 000000000..3cc45dbd5
--- /dev/null
+++ b/basics/processing-instructions/pinocchio/package.json
@@ -0,0 +1,22 @@
+{
+ "type": "module",
+ "scripts": {
+ "test": "pnpm ts-mocha -p ./tsconfig.json -t 1000000 ./tests/test.ts",
+ "build-and-test": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./tests/fixtures && pnpm test",
+ "build": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./program/target/so",
+ "deploy": "solana program deploy ./program/target/so/program.so"
+ },
+ "dependencies": {
+ "@solana/web3.js": "^1.47.3"
+ },
+ "devDependencies": {
+ "@types/bn.js": "^5.1.0",
+ "@types/chai": "^4.3.1",
+ "@types/mocha": "^9.1.1",
+ "chai": "^4.3.4",
+ "mocha": "^9.0.3",
+ "solana-bankrun": "^0.3.0",
+ "ts-mocha": "^10.0.0",
+ "typescript": "^4.3.5"
+ }
+}
diff --git a/basics/processing-instructions/pinocchio/pnpm-lock.yaml b/basics/processing-instructions/pinocchio/pnpm-lock.yaml
new file mode 100644
index 000000000..315de63a2
--- /dev/null
+++ b/basics/processing-instructions/pinocchio/pnpm-lock.yaml
@@ -0,0 +1,1342 @@
+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
+ 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.1':
+ resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==}
+ engines: {node: '>=6.9.0'}
+
+ '@noble/curves@1.9.1':
+ resolution: {integrity: sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==}
+ 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.1':
+ resolution: {integrity: sha512-iPQW3UZ2Vi7QFBo2r9tw0NubtH8EdrhhmZulx6lC8V5a+qjaxovtM/q/UW2BTNpqqHLfO0tIcLyBLrNH4HTWPg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.1.1':
+ resolution: {integrity: sha512-m20IUPJhPUmPkHSlZ2iMAjJ7PaYUvlMtFhCQYzm9BEBSI6OCvXTG3GAPpAnSGRBfg5y+QNqqmKn4QHU3B6zzCQ==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.1.1':
+ resolution: {integrity: sha512-sj6DaWNbSJFvLzT8UZoabMefQUfSW/8tXK7NTiagsDmh+Q87eyQDDC9L3z+mNmx9b6dEf6z660MOIplDD2nfEw==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@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.19':
+ resolution: {integrity: sha512-3vMNr4TzNQyjHcRZadojpRaD9Ofr6LsonZAoQ+HMUa/9ORTPoxVIw0e0mpqWpdjj8xybyCM+oKOUH2vwFu/oEw==}
+
+ '@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.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==}
+
+ 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'}
+
+ 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.2:
+ resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==}
+ 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.1': {}
+
+ '@noble/curves@1.9.1':
+ 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.1(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.1.1(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.1.1(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.1.1(typescript@4.9.5)
+ '@solana/errors': 2.1.1(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.1.1(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.1
+ '@noble/curves': 1.9.1
+ '@noble/hashes': 1.8.0
+ '@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.1.1(typescript@4.9.5)
+ agentkeepalive: 4.6.0
+ 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
+ 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.19
+
+ '@types/chai@4.3.20': {}
+
+ '@types/connect@3.4.38':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@types/json5@0.0.29':
+ optional: true
+
+ '@types/mocha@9.1.1': {}
+
+ '@types/node@12.20.55': {}
+
+ '@types/node@22.15.19':
+ dependencies:
+ undici-types: 6.21.0
+
+ '@types/uuid@8.3.4': {}
+
+ '@types/ws@7.4.7':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@types/ws@8.18.1':
+ dependencies:
+ '@types/node': 22.15.19
+
+ '@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.2: {}
+
+ borsh@0.7.0:
+ dependencies:
+ bn.js: 5.2.2
+ 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
+
+ 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.2(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.2(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/processing-instructions/pinocchio/program/Cargo.toml b/basics/processing-instructions/pinocchio/program/Cargo.toml
new file mode 100644
index 000000000..96beaced7
--- /dev/null
+++ b/basics/processing-instructions/pinocchio/program/Cargo.toml
@@ -0,0 +1,26 @@
+[package]
+name = "processing-instructions-pinocchio-program"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
+pinocchio.workspace = true
+pinocchio-log.workspace = true
+
+[lib]
+crate-type = ["cdylib", "lib"]
+
+[features]
+custom-heap = []
+custom-panic = []
+
+[lints.rust]
+unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] }
+
+[dev-dependencies]
+litesvm = "0.8.1"
+solana-instruction = "3.0.0"
+solana-keypair = "3.0.1"
+solana-pubkey = "3.0.0"
+solana-transaction = "3.0.1"
+solana-native-token = "3.0.0"
diff --git a/basics/processing-instructions/pinocchio/program/src/lib.rs b/basics/processing-instructions/pinocchio/program/src/lib.rs
new file mode 100644
index 000000000..49e61decb
--- /dev/null
+++ b/basics/processing-instructions/pinocchio/program/src/lib.rs
@@ -0,0 +1,36 @@
+use pinocchio::{
+ account_info::AccountInfo, entrypoint, program_error::ProgramError, pubkey::Pubkey,
+ ProgramResult,
+};
+use pinocchio_log::log;
+
+entrypoint!(process_instruction);
+
+fn process_instruction(
+ _program_id: &Pubkey,
+ _accounts: &[AccountInfo],
+ instruction_data: &[u8],
+) -> ProgramResult {
+ let name = core::str::from_utf8(&instruction_data[0..8])
+ .map_err(|_| ProgramError::InvalidInstructionData)?;
+
+ let height = u32::from_le_bytes(
+ instruction_data[8..12]
+ .try_into()
+ .map_err(|_| ProgramError::InvalidInstructionData)?,
+ );
+
+ log!("Welcome to the park, {}!", name);
+ if height > 5 {
+ log!("You are tall enough to ride this ride. Congratulations.");
+ } else {
+ log!("You are NOT tall enough to ride this ride. Sorry mate.");
+ };
+
+ Ok(())
+}
+
+pub struct InstructionData {
+ pub name: [u8; 8],
+ pub height: u32,
+}
diff --git a/basics/processing-instructions/pinocchio/program/tests/test.rs b/basics/processing-instructions/pinocchio/program/tests/test.rs
new file mode 100644
index 000000000..a727fe9c7
--- /dev/null
+++ b/basics/processing-instructions/pinocchio/program/tests/test.rs
@@ -0,0 +1,59 @@
+use litesvm::LiteSVM;
+use solana_instruction::{AccountMeta, Instruction};
+use solana_keypair::{Keypair, Signer};
+use solana_native_token::LAMPORTS_PER_SOL;
+use solana_pubkey::Pubkey;
+use solana_transaction::Transaction;
+
+#[test]
+fn test_processing_ixs() {
+ let mut svm = LiteSVM::new();
+
+ let program_id = Pubkey::new_unique();
+ let program_bytes =
+ include_bytes!("../../tests/fixtures/processing_instructions_pinocchio_program.so");
+
+ svm.add_program(program_id, program_bytes).unwrap();
+
+ let payer = Keypair::new();
+ svm.airdrop(&payer.pubkey(), LAMPORTS_PER_SOL * 10).unwrap();
+
+ let mut jimmy_data = Vec::new();
+
+ let mut name1 = [0_u8; 8];
+ let name1_len = "Jimmy".len().min(8);
+ name1[..name1_len].copy_from_slice(b"Jimmy");
+ jimmy_data.extend_from_slice(&name1);
+ jimmy_data.extend_from_slice(&u32::to_le_bytes(3));
+
+ let mut mary_data = Vec::new();
+
+ let mut name2 = [0_u8; 8];
+ let name2_len = "mary".len().min(8);
+ name2[..name2_len].copy_from_slice(b"Mary");
+ mary_data.extend_from_slice(&name2);
+ mary_data.extend_from_slice(&u32::to_le_bytes(3));
+
+ let ix1 = Instruction {
+ program_id,
+ accounts: vec![AccountMeta::new(payer.pubkey(), true)],
+ data: jimmy_data,
+ };
+
+ let ix2 = Instruction {
+ program_id,
+ accounts: vec![AccountMeta::new(payer.pubkey(), true)],
+ data: mary_data,
+ };
+
+ let tx = Transaction::new_signed_with_payer(
+ &[ix1, ix2],
+ Some(&payer.pubkey()),
+ &[&payer],
+ svm.latest_blockhash(),
+ );
+
+ let res = svm.send_transaction(tx);
+ dbg!(&res);
+ assert!(res.is_ok());
+}
diff --git a/basics/processing-instructions/pinocchio/tests/test.ts b/basics/processing-instructions/pinocchio/tests/test.ts
new file mode 100644
index 000000000..b5be3aecb
--- /dev/null
+++ b/basics/processing-instructions/pinocchio/tests/test.ts
@@ -0,0 +1,13 @@
+import { Buffer } from "node:buffer";
+import { describe, test } from "node:test";
+import {
+ PublicKey,
+ Transaction,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import * as borsh from "borsh";
+import { start } from "solana-bankrun";
+
+describe("custom-instruction-data", async () => {
+ console.log("custom-instruction-data");
+});
diff --git a/basics/processing-instructions/pinocchio/tsconfig.json b/basics/processing-instructions/pinocchio/tsconfig.json
new file mode 100644
index 000000000..cd5d2e3d0
--- /dev/null
+++ b/basics/processing-instructions/pinocchio/tsconfig.json
@@ -0,0 +1,10 @@
+{
+ "compilerOptions": {
+ "types": ["mocha", "chai"],
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2015"],
+ "module": "commonjs",
+ "target": "es6",
+ "esModuleInterop": true
+ }
+}
From 52df19afe4949404e7d054b04da9ad5644597910 Mon Sep 17 00:00:00 2001
From: Perelyn <64838956+Perelyn-sama@users.noreply.github.com>
Date: Tue, 30 Dec 2025 03:24:56 +0100
Subject: [PATCH 13/49] feat: add pda pinocchio example (#490)
---
Cargo.lock | 16 +
Cargo.toml | 1 +
.../pinocchio/cicd.sh | 8 +
.../pinocchio/package.json | 22 +
.../pinocchio/pnpm-lock.yaml | 1290 +++++++++++++++++
.../pinocchio/program/Cargo.toml | 29 +
.../program/src/instructions/create.rs | 46 +
.../program/src/instructions/increment.rs | 21 +
.../pinocchio/program/src/instructions/mod.rs | 5 +
.../pinocchio/program/src/lib.rs | 11 +
.../pinocchio/program/src/processor.rs | 19 +
.../pinocchio/program/src/state/mod.rs | 3 +
.../program/src/state/page_visits.rs | 16 +
.../pinocchio/program/tests/test.rs | 101 ++
.../pinocchio/tests/test.ts | 15 +
.../pinocchio/tsconfig.json | 10 +
16 files changed, 1613 insertions(+)
create mode 100644 basics/program-derived-addresses/pinocchio/cicd.sh
create mode 100644 basics/program-derived-addresses/pinocchio/package.json
create mode 100644 basics/program-derived-addresses/pinocchio/pnpm-lock.yaml
create mode 100644 basics/program-derived-addresses/pinocchio/program/Cargo.toml
create mode 100644 basics/program-derived-addresses/pinocchio/program/src/instructions/create.rs
create mode 100644 basics/program-derived-addresses/pinocchio/program/src/instructions/increment.rs
create mode 100644 basics/program-derived-addresses/pinocchio/program/src/instructions/mod.rs
create mode 100644 basics/program-derived-addresses/pinocchio/program/src/lib.rs
create mode 100644 basics/program-derived-addresses/pinocchio/program/src/processor.rs
create mode 100644 basics/program-derived-addresses/pinocchio/program/src/state/mod.rs
create mode 100644 basics/program-derived-addresses/pinocchio/program/src/state/page_visits.rs
create mode 100644 basics/program-derived-addresses/pinocchio/program/tests/test.rs
create mode 100644 basics/program-derived-addresses/pinocchio/tests/test.ts
create mode 100644 basics/program-derived-addresses/pinocchio/tsconfig.json
diff --git a/Cargo.lock b/Cargo.lock
index de53cb804..ac5efd30d 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2398,6 +2398,22 @@ dependencies = [
"solana-transaction",
]
+[[package]]
+name = "program-derived-addresses-pinocchio-program"
+version = "0.1.0"
+dependencies = [
+ "litesvm",
+ "pinocchio",
+ "pinocchio-system",
+ "solana-instruction 3.0.0",
+ "solana-keypair",
+ "solana-native-token 3.0.0",
+ "solana-pubkey 3.0.0",
+ "solana-rent 3.0.0",
+ "solana-system-interface 2.0.0",
+ "solana-transaction",
+]
+
[[package]]
name = "program-derived-addresses-program"
version = "0.1.0"
diff --git a/Cargo.toml b/Cargo.toml
index 504af3e51..621072b4f 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -28,6 +28,7 @@ members = [
"basics/processing-instructions/pinocchio/program",
"basics/processing-instructions/anchor/programs/*",
"basics/program-derived-addresses/native/program",
+ "basics/program-derived-addresses/pinocchio/program",
"basics/program-derived-addresses/anchor/programs/*",
"basics/realloc/native/program",
"basics/realloc/anchor/programs/*",
diff --git a/basics/program-derived-addresses/pinocchio/cicd.sh b/basics/program-derived-addresses/pinocchio/cicd.sh
new file mode 100644
index 000000000..0903cf896
--- /dev/null
+++ b/basics/program-derived-addresses/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 --bpf-out-dir=./program/target/so
+solana program deploy ./program/target/so/program.so
diff --git a/basics/program-derived-addresses/pinocchio/package.json b/basics/program-derived-addresses/pinocchio/package.json
new file mode 100644
index 000000000..d0fc0112a
--- /dev/null
+++ b/basics/program-derived-addresses/pinocchio/package.json
@@ -0,0 +1,22 @@
+{
+ "type": "module",
+ "scripts": {
+ "test": "pnpm ts-mocha -p ./tsconfig.json -t 1000000 ./tests/test.ts",
+ "build-and-test": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./tests/fixtures && pnpm test",
+ "build": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./program/target/so",
+ "deploy": "solana program deploy ./program/target/so/program.so"
+ },
+ "dependencies": {
+ "@solana/web3.js": "^1.47.3",
+ "fs": "^0.0.1-security"
+ },
+ "devDependencies": {
+ "@types/bn.js": "^5.1.0",
+ "@types/chai": "^4.3.1",
+ "@types/mocha": "^9.1.1",
+ "mocha": "^9.0.3",
+ "solana-bankrun": "^0.3.0",
+ "ts-mocha": "^10.0.0",
+ "typescript": "^4.3.5"
+ }
+}
diff --git a/basics/program-derived-addresses/pinocchio/pnpm-lock.yaml b/basics/program-derived-addresses/pinocchio/pnpm-lock.yaml
new file mode 100644
index 000000000..5382ba0a9
--- /dev/null
+++ b/basics/program-derived-addresses/pinocchio/pnpm-lock.yaml
@@ -0,0 +1,1290 @@
+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)
+ fs:
+ specifier: ^0.0.1-security
+ version: 0.0.1-security
+ 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
+ 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.1':
+ resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==}
+ engines: {node: '>=6.9.0'}
+
+ '@noble/curves@1.9.1':
+ resolution: {integrity: sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==}
+ 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.1':
+ resolution: {integrity: sha512-iPQW3UZ2Vi7QFBo2r9tw0NubtH8EdrhhmZulx6lC8V5a+qjaxovtM/q/UW2BTNpqqHLfO0tIcLyBLrNH4HTWPg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.1.1':
+ resolution: {integrity: sha512-m20IUPJhPUmPkHSlZ2iMAjJ7PaYUvlMtFhCQYzm9BEBSI6OCvXTG3GAPpAnSGRBfg5y+QNqqmKn4QHU3B6zzCQ==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.1.1':
+ resolution: {integrity: sha512-sj6DaWNbSJFvLzT8UZoabMefQUfSW/8tXK7NTiagsDmh+Q87eyQDDC9L3z+mNmx9b6dEf6z660MOIplDD2nfEw==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@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.19':
+ resolution: {integrity: sha512-3vMNr4TzNQyjHcRZadojpRaD9Ofr6LsonZAoQ+HMUa/9ORTPoxVIw0e0mpqWpdjj8xybyCM+oKOUH2vwFu/oEw==}
+
+ '@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'}
+
+ 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.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==}
+
+ 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'}
+
+ 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}
+
+ 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'}
+
+ 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==}
+
+ fs@0.0.1-security:
+ resolution: {integrity: sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==}
+
+ 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.*}
+
+ 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'}
+
+ 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'}
+
+ 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'}
+
+ 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==}
+
+ 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.2:
+ resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==}
+ 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.1': {}
+
+ '@noble/curves@1.9.1':
+ 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.1(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.1.1(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.1.1(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.1.1(typescript@4.9.5)
+ '@solana/errors': 2.1.1(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.1.1(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.1
+ '@noble/curves': 1.9.1
+ '@noble/hashes': 1.8.0
+ '@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.1.1(typescript@4.9.5)
+ agentkeepalive: 4.6.0
+ 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
+ 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.19
+
+ '@types/chai@4.3.20': {}
+
+ '@types/connect@3.4.38':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@types/json5@0.0.29':
+ optional: true
+
+ '@types/mocha@9.1.1': {}
+
+ '@types/node@12.20.55': {}
+
+ '@types/node@22.15.19':
+ dependencies:
+ undici-types: 6.21.0
+
+ '@types/uuid@8.3.4': {}
+
+ '@types/ws@7.4.7':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@types/ws@8.18.1':
+ dependencies:
+ '@types/node': 22.15.19
+
+ '@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: {}
+
+ 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.2: {}
+
+ borsh@0.7.0:
+ dependencies:
+ bn.js: 5.2.2
+ 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: {}
+
+ chalk@4.1.2:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ chalk@5.4.1: {}
+
+ 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: {}
+
+ 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: {}
+
+ fs@0.0.1-security: {}
+
+ fsevents@2.3.3:
+ optional: true
+
+ get-caller-file@2.0.5: {}
+
+ 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
+
+ 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: {}
+
+ picomatch@2.3.1: {}
+
+ randombytes@2.1.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ readdirp@3.6.0:
+ dependencies:
+ picomatch: 2.3.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.2(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: {}
+
+ 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.2(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/program-derived-addresses/pinocchio/program/Cargo.toml b/basics/program-derived-addresses/pinocchio/program/Cargo.toml
new file mode 100644
index 000000000..b3e69c8e1
--- /dev/null
+++ b/basics/program-derived-addresses/pinocchio/program/Cargo.toml
@@ -0,0 +1,29 @@
+[package]
+name = "program-derived-addresses-pinocchio-program"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
+pinocchio.workspace = true
+pinocchio-system.workspace = true
+
+
+[lib]
+crate-type = ["cdylib", "lib"]
+
+[features]
+custom-heap = []
+custom-panic = []
+
+[lints.rust]
+unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] }
+
+[dev-dependencies]
+litesvm = "0.8.1"
+solana-instruction = "3.0.0"
+solana-keypair = "3.0.1"
+solana-pubkey = "3.0.0"
+solana-transaction = "3.0.1"
+solana-native-token = "3.0.0"
+solana-rent = "3.0.0"
+solana-system-interface.workspace = true
diff --git a/basics/program-derived-addresses/pinocchio/program/src/instructions/create.rs b/basics/program-derived-addresses/pinocchio/program/src/instructions/create.rs
new file mode 100644
index 000000000..23c129e90
--- /dev/null
+++ b/basics/program-derived-addresses/pinocchio/program/src/instructions/create.rs
@@ -0,0 +1,46 @@
+use pinocchio::{
+ account_info::AccountInfo,
+ instruction::{Seed, Signer},
+ program_error::ProgramError,
+ pubkey::Pubkey,
+ sysvars::{rent::Rent, Sysvar},
+ ProgramResult,
+};
+
+use pinocchio_system::instructions::CreateAccount;
+
+use crate::state::PageVisits;
+
+pub fn create_page_visits(
+ program_id: &Pubkey,
+ accounts: &[AccountInfo],
+ instruction_data: &[u8],
+) -> ProgramResult {
+ let [page_visits_account, user, payer, _] = accounts else {
+ return Err(ProgramError::NotEnoughAccountKeys);
+ };
+
+ let account_span = PageVisits::ACCOUNT_SPACE;
+ let lamports_required = (Rent::get()?).minimum_balance(account_span);
+
+ let bump_bytes = &instruction_data[4..5];
+
+ let seeds = [
+ Seed::from(PageVisits::SEED_PREFIX.as_bytes()),
+ Seed::from(user.key().as_ref()),
+ Seed::from(bump_bytes),
+ ];
+
+ let signers = Signer::from(&seeds);
+
+ CreateAccount {
+ from: payer,
+ to: page_visits_account,
+ lamports: lamports_required,
+ space: account_span as u64,
+ owner: program_id,
+ }
+ .invoke_signed(&[signers])?;
+
+ Ok(())
+}
diff --git a/basics/program-derived-addresses/pinocchio/program/src/instructions/increment.rs b/basics/program-derived-addresses/pinocchio/program/src/instructions/increment.rs
new file mode 100644
index 000000000..9ac4a67e8
--- /dev/null
+++ b/basics/program-derived-addresses/pinocchio/program/src/instructions/increment.rs
@@ -0,0 +1,21 @@
+use pinocchio::{account_info::AccountInfo, program_error::ProgramError, ProgramResult};
+
+pub fn increment_page_visits(accounts: &[AccountInfo]) -> ProgramResult {
+ let [page_visits_account] = accounts else {
+ return Err(ProgramError::NotEnoughAccountKeys);
+ };
+
+ let mut page_visits_bytes = page_visits_account.try_borrow_mut_data()?;
+
+ let mut page_visits = u32::from_le_bytes(
+ page_visits_bytes[0..4]
+ .try_into()
+ .map_err(|_| ProgramError::InvalidAccountData)?,
+ );
+
+ page_visits += 1;
+
+ page_visits_bytes[0..4].copy_from_slice(&page_visits.to_le_bytes());
+
+ Ok(())
+}
diff --git a/basics/program-derived-addresses/pinocchio/program/src/instructions/mod.rs b/basics/program-derived-addresses/pinocchio/program/src/instructions/mod.rs
new file mode 100644
index 000000000..3f667875d
--- /dev/null
+++ b/basics/program-derived-addresses/pinocchio/program/src/instructions/mod.rs
@@ -0,0 +1,5 @@
+pub mod create;
+pub mod increment;
+
+pub use create::*;
+pub use increment::*;
diff --git a/basics/program-derived-addresses/pinocchio/program/src/lib.rs b/basics/program-derived-addresses/pinocchio/program/src/lib.rs
new file mode 100644
index 000000000..8e257af62
--- /dev/null
+++ b/basics/program-derived-addresses/pinocchio/program/src/lib.rs
@@ -0,0 +1,11 @@
+#![no_std]
+use pinocchio::{entrypoint, nostd_panic_handler};
+
+use processor::process_instruction;
+
+pub mod instructions;
+pub mod processor;
+pub mod state;
+
+entrypoint!(process_instruction);
+nostd_panic_handler!();
diff --git a/basics/program-derived-addresses/pinocchio/program/src/processor.rs b/basics/program-derived-addresses/pinocchio/program/src/processor.rs
new file mode 100644
index 000000000..eb5f75718
--- /dev/null
+++ b/basics/program-derived-addresses/pinocchio/program/src/processor.rs
@@ -0,0 +1,19 @@
+use pinocchio::{
+ account_info::AccountInfo, program_error::ProgramError, pubkey::Pubkey, ProgramResult,
+};
+
+use crate::instructions;
+
+pub fn process_instruction(
+ program_id: &Pubkey,
+ accounts: &[AccountInfo],
+ instruction_data: &[u8],
+) -> ProgramResult {
+ match instruction_data.split_first() {
+ Some((0, instruction_data)) => {
+ instructions::create::create_page_visits(program_id, accounts, instruction_data)
+ }
+ Some((1, _)) => instructions::increment::increment_page_visits(accounts),
+ _ => Err(ProgramError::InvalidInstructionData),
+ }
+}
diff --git a/basics/program-derived-addresses/pinocchio/program/src/state/mod.rs b/basics/program-derived-addresses/pinocchio/program/src/state/mod.rs
new file mode 100644
index 000000000..391641172
--- /dev/null
+++ b/basics/program-derived-addresses/pinocchio/program/src/state/mod.rs
@@ -0,0 +1,3 @@
+pub mod page_visits;
+
+pub use page_visits::*;
diff --git a/basics/program-derived-addresses/pinocchio/program/src/state/page_visits.rs b/basics/program-derived-addresses/pinocchio/program/src/state/page_visits.rs
new file mode 100644
index 000000000..31882cfb8
--- /dev/null
+++ b/basics/program-derived-addresses/pinocchio/program/src/state/page_visits.rs
@@ -0,0 +1,16 @@
+pub struct IncrementPageVisits {}
+
+pub struct PageVisits {
+ pub page_visits: u32,
+ pub bump: u8,
+}
+
+impl PageVisits {
+ pub const ACCOUNT_SPACE: usize = 4 + 1;
+
+ pub const SEED_PREFIX: &'static str = "page_visits";
+
+ pub fn new(page_visits: u32, bump: u8) -> Self {
+ PageVisits { page_visits, bump }
+ }
+}
diff --git a/basics/program-derived-addresses/pinocchio/program/tests/test.rs b/basics/program-derived-addresses/pinocchio/program/tests/test.rs
new file mode 100644
index 000000000..254cae9f4
--- /dev/null
+++ b/basics/program-derived-addresses/pinocchio/program/tests/test.rs
@@ -0,0 +1,101 @@
+use litesvm::LiteSVM;
+use solana_instruction::{AccountMeta, Instruction};
+use solana_keypair::{Keypair, Signer};
+use solana_native_token::LAMPORTS_PER_SOL;
+use solana_pubkey::Pubkey;
+use solana_rent::Rent;
+use solana_system_interface::instruction::create_account;
+use solana_transaction::Transaction;
+
+#[test]
+fn test_pda() {
+ let mut svm = LiteSVM::new();
+
+ let program_id = Pubkey::new_unique();
+ let program_bytes =
+ include_bytes!("../../tests/fixtures/program_derived_addresses_pinocchio_program.so");
+ svm.add_program(program_id, program_bytes).unwrap();
+
+ let payer = Keypair::new();
+ svm.airdrop(&payer.pubkey(), LAMPORTS_PER_SOL * 10).unwrap();
+
+ let test_user = Keypair::new();
+
+ let rent = Rent::default();
+
+ let create_ix = create_account(
+ &payer.pubkey(),
+ &test_user.pubkey(),
+ solana_rent::Rent::minimum_balance(&rent, 0),
+ 0,
+ &solana_system_interface::program::ID,
+ );
+
+ let tx = Transaction::new_signed_with_payer(
+ &[create_ix],
+ Some(&payer.pubkey()),
+ &[&payer, &test_user],
+ svm.latest_blockhash(),
+ );
+
+ assert!(svm.send_transaction(tx).is_ok());
+
+ let (pda, bump) =
+ Pubkey::find_program_address(&[b"page_visits", test_user.pubkey().as_ref()], &program_id);
+
+ let mut data = Vec::new();
+
+ data.push(0);
+ data.extend_from_slice(&u32::to_le_bytes(0));
+ data.extend_from_slice(&u8::to_le_bytes(bump));
+
+ dbg!(data.len());
+
+ let ix = Instruction {
+ program_id,
+ accounts: vec![
+ AccountMeta::new(pda, false),
+ AccountMeta::new(test_user.pubkey(), false),
+ AccountMeta::new(payer.pubkey(), true),
+ AccountMeta::new(solana_system_interface::program::ID, false),
+ ],
+ data,
+ };
+
+ let tx = Transaction::new_signed_with_payer(
+ &[ix],
+ Some(&payer.pubkey()),
+ &[&payer],
+ svm.latest_blockhash(),
+ );
+
+ let res = svm.send_transaction(tx);
+ assert!(res.is_ok());
+
+ let mut data = Vec::new();
+ data.push(1);
+
+ let ix = Instruction {
+ program_id,
+ accounts: vec![
+ AccountMeta::new(pda, false),
+ // AccountMeta::new(payer.pubkey(), true),
+ ],
+ data,
+ };
+
+ let tx = Transaction::new_signed_with_payer(
+ &[ix],
+ Some(&payer.pubkey()),
+ &[&payer],
+ svm.latest_blockhash(),
+ );
+
+ let res = svm.send_transaction(tx);
+ assert!(res.is_ok());
+
+ // read page visits
+ let account_info = svm.get_account(&pda).unwrap();
+ let page_visits = u32::from_le_bytes(account_info.data[0..4].try_into().unwrap());
+ assert_eq!(page_visits, 1);
+}
diff --git a/basics/program-derived-addresses/pinocchio/tests/test.ts b/basics/program-derived-addresses/pinocchio/tests/test.ts
new file mode 100644
index 000000000..b197963e8
--- /dev/null
+++ b/basics/program-derived-addresses/pinocchio/tests/test.ts
@@ -0,0 +1,15 @@
+import { Buffer } from "node:buffer";
+import { describe, test } from "node:test";
+import {
+ Keypair,
+ PublicKey,
+ SystemProgram,
+ Transaction,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import * as borsh from "borsh";
+import { start } from "solana-bankrun";
+
+describe("PDAs", async () => {
+ console.log("PDAS");
+});
diff --git a/basics/program-derived-addresses/pinocchio/tsconfig.json b/basics/program-derived-addresses/pinocchio/tsconfig.json
new file mode 100644
index 000000000..8634a05df
--- /dev/null
+++ b/basics/program-derived-addresses/pinocchio/tsconfig.json
@@ -0,0 +1,10 @@
+{
+ "compilerOptions": {
+ "types": ["mocha"],
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2015"],
+ "module": "commonjs",
+ "target": "es6",
+ "esModuleInterop": true
+ }
+}
From 4afd22c32b4681b38d0a858aa03a8b73414eb44b Mon Sep 17 00:00:00 2001
From: Perelyn <64838956+Perelyn-sama@users.noreply.github.com>
Date: Tue, 30 Dec 2025 03:34:29 +0100
Subject: [PATCH 14/49] fix: pyth anchor example build error (#492)
---
oracles/pyth/anchor/programs/pythexample/Cargo.toml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/oracles/pyth/anchor/programs/pythexample/Cargo.toml b/oracles/pyth/anchor/programs/pythexample/Cargo.toml
index 8b0525cbd..b25dc97de 100644
--- a/oracles/pyth/anchor/programs/pythexample/Cargo.toml
+++ b/oracles/pyth/anchor/programs/pythexample/Cargo.toml
@@ -22,6 +22,7 @@ custom-panic = []
[dependencies]
anchor-lang = "0.32.1"
-pyth-solana-receiver-sdk = "0.3.2"
+pyth-solana-receiver-sdk = "1.1.0"
+[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] }
From 4edfea46865720f2953528b8e61afd907e2462b5 Mon Sep 17 00:00:00 2001
From: Perelyn <64838956+Perelyn-sama@users.noreply.github.com>
Date: Tue, 30 Dec 2025 03:36:36 +0100
Subject: [PATCH 15/49] feat: add pinocchio realloc example (#491)
---
Cargo.lock | 16 +
Cargo.toml | 1 +
basics/realloc/pinocchio/cicd.sh | 8 +
basics/realloc/pinocchio/package.json | 23 +
basics/realloc/pinocchio/pnpm-lock.yaml | 1350 +++++++++++++++++
basics/realloc/pinocchio/program/Cargo.toml | 29 +
.../program/src/instructions/create.rs | 37 +
.../pinocchio/program/src/instructions/mod.rs | 5 +
.../program/src/instructions/reallocate.rs | 52 +
basics/realloc/pinocchio/program/src/lib.rs | 12 +
.../pinocchio/program/src/processor.rs | 17 +
.../program/src/state/address_info.rs | 10 +
.../src/state/enhanced_address_info.rs | 17 +
.../pinocchio/program/src/state/mod.rs | 7 +
.../pinocchio/program/src/state/work_info.rs | 10 +
.../realloc/pinocchio/program/tests/test.rs | 138 ++
.../realloc/pinocchio/tests/realloc.test.ts | 7 +
.../pinocchio/tests/tsconfig.test.json | 10 +
18 files changed, 1749 insertions(+)
create mode 100644 basics/realloc/pinocchio/cicd.sh
create mode 100644 basics/realloc/pinocchio/package.json
create mode 100644 basics/realloc/pinocchio/pnpm-lock.yaml
create mode 100644 basics/realloc/pinocchio/program/Cargo.toml
create mode 100644 basics/realloc/pinocchio/program/src/instructions/create.rs
create mode 100644 basics/realloc/pinocchio/program/src/instructions/mod.rs
create mode 100644 basics/realloc/pinocchio/program/src/instructions/reallocate.rs
create mode 100644 basics/realloc/pinocchio/program/src/lib.rs
create mode 100644 basics/realloc/pinocchio/program/src/processor.rs
create mode 100644 basics/realloc/pinocchio/program/src/state/address_info.rs
create mode 100644 basics/realloc/pinocchio/program/src/state/enhanced_address_info.rs
create mode 100644 basics/realloc/pinocchio/program/src/state/mod.rs
create mode 100644 basics/realloc/pinocchio/program/src/state/work_info.rs
create mode 100644 basics/realloc/pinocchio/program/tests/test.rs
create mode 100644 basics/realloc/pinocchio/tests/realloc.test.ts
create mode 100644 basics/realloc/pinocchio/tests/tsconfig.test.json
diff --git a/Cargo.lock b/Cargo.lock
index ac5efd30d..fe1356c23 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2527,6 +2527,22 @@ dependencies = [
"rand_core 0.5.1",
]
+[[package]]
+name = "realloc-pinocchio-program"
+version = "0.1.0"
+dependencies = [
+ "litesvm",
+ "pinocchio",
+ "pinocchio-log",
+ "pinocchio-system",
+ "solana-instruction 3.0.0",
+ "solana-keypair",
+ "solana-native-token 3.0.0",
+ "solana-pubkey 3.0.0",
+ "solana-system-interface 2.0.0",
+ "solana-transaction",
+]
+
[[package]]
name = "realloc-program"
version = "0.1.0"
diff --git a/Cargo.toml b/Cargo.toml
index 621072b4f..9e3984b75 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -31,6 +31,7 @@ members = [
"basics/program-derived-addresses/pinocchio/program",
"basics/program-derived-addresses/anchor/programs/*",
"basics/realloc/native/program",
+ "basics/realloc/pinocchio/program",
"basics/realloc/anchor/programs/*",
"basics/rent/native/program",
"basics/rent/pinocchio/program",
diff --git a/basics/realloc/pinocchio/cicd.sh b/basics/realloc/pinocchio/cicd.sh
new file mode 100644
index 000000000..0903cf896
--- /dev/null
+++ b/basics/realloc/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 --bpf-out-dir=./program/target/so
+solana program deploy ./program/target/so/program.so
diff --git a/basics/realloc/pinocchio/package.json b/basics/realloc/pinocchio/package.json
new file mode 100644
index 000000000..60d811b69
--- /dev/null
+++ b/basics/realloc/pinocchio/package.json
@@ -0,0 +1,23 @@
+{
+ "type": "module",
+ "scripts": {
+ "test": "pnpm ts-mocha -p ./tests/tsconfig.test.json -t 1000000 ./tests/realloc.test.ts",
+ "build-and-test": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./tests/fixtures && pnpm test",
+ "build": "cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./program/target/so",
+ "deploy": "solana program deploy ./program/target/so/program.so"
+ },
+ "dependencies": {
+ "@solana/web3.js": "^1.35",
+ "fs": "^0.0.1-security"
+ },
+ "devDependencies": {
+ "@types/bn.js": "^5.1.0",
+ "@types/chai": "^4.3.1",
+ "@types/mocha": "^9.1.1",
+ "chai": "^4.3.4",
+ "mocha": "^9.0.3",
+ "solana-bankrun": "^0.3.0",
+ "ts-mocha": "^10.0.0",
+ "typescript": "^4.3.5"
+ }
+}
diff --git a/basics/realloc/pinocchio/pnpm-lock.yaml b/basics/realloc/pinocchio/pnpm-lock.yaml
new file mode 100644
index 000000000..5db256a7e
--- /dev/null
+++ b/basics/realloc/pinocchio/pnpm-lock.yaml
@@ -0,0 +1,1350 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ dependencies:
+ '@solana/web3.js':
+ specifier: ^1.35
+ version: 1.98.2(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ fs:
+ specifier: ^0.0.1-security
+ version: 0.0.1-security
+ 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
+ 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.1':
+ resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==}
+ engines: {node: '>=6.9.0'}
+
+ '@noble/curves@1.9.1':
+ resolution: {integrity: sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==}
+ 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.1':
+ resolution: {integrity: sha512-iPQW3UZ2Vi7QFBo2r9tw0NubtH8EdrhhmZulx6lC8V5a+qjaxovtM/q/UW2BTNpqqHLfO0tIcLyBLrNH4HTWPg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.1.1':
+ resolution: {integrity: sha512-m20IUPJhPUmPkHSlZ2iMAjJ7PaYUvlMtFhCQYzm9BEBSI6OCvXTG3GAPpAnSGRBfg5y+QNqqmKn4QHU3B6zzCQ==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.1.1':
+ resolution: {integrity: sha512-sj6DaWNbSJFvLzT8UZoabMefQUfSW/8tXK7NTiagsDmh+Q87eyQDDC9L3z+mNmx9b6dEf6z660MOIplDD2nfEw==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@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.19':
+ resolution: {integrity: sha512-3vMNr4TzNQyjHcRZadojpRaD9Ofr6LsonZAoQ+HMUa/9ORTPoxVIw0e0mpqWpdjj8xybyCM+oKOUH2vwFu/oEw==}
+
+ '@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.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==}
+
+ 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==}
+
+ fs@0.0.1-security:
+ resolution: {integrity: sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==}
+
+ 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'}
+
+ 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.2:
+ resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==}
+ 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.1': {}
+
+ '@noble/curves@1.9.1':
+ 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.1(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.1.1(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.1.1(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.1.1(typescript@4.9.5)
+ '@solana/errors': 2.1.1(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.1.1(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.1
+ '@noble/curves': 1.9.1
+ '@noble/hashes': 1.8.0
+ '@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.1.1(typescript@4.9.5)
+ agentkeepalive: 4.6.0
+ 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
+ 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.19
+
+ '@types/chai@4.3.20': {}
+
+ '@types/connect@3.4.38':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@types/json5@0.0.29':
+ optional: true
+
+ '@types/mocha@9.1.1': {}
+
+ '@types/node@12.20.55': {}
+
+ '@types/node@22.15.19':
+ dependencies:
+ undici-types: 6.21.0
+
+ '@types/uuid@8.3.4': {}
+
+ '@types/ws@7.4.7':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@types/ws@8.18.1':
+ dependencies:
+ '@types/node': 22.15.19
+
+ '@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.2: {}
+
+ borsh@0.7.0:
+ dependencies:
+ bn.js: 5.2.2
+ 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: {}
+
+ fs@0.0.1-security: {}
+
+ 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
+
+ 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.2(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.2(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/realloc/pinocchio/program/Cargo.toml b/basics/realloc/pinocchio/program/Cargo.toml
new file mode 100644
index 000000000..0a475abf2
--- /dev/null
+++ b/basics/realloc/pinocchio/program/Cargo.toml
@@ -0,0 +1,29 @@
+[package]
+name = "realloc-pinocchio-program"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
+pinocchio.workspace = true
+pinocchio-system.workspace = true
+pinocchio-log.workspace = true
+
+
+[lib]
+crate-type = ["cdylib", "lib"]
+
+[features]
+custom-heap = []
+custom-panic = []
+
+[lints.rust]
+unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] }
+
+[dev-dependencies]
+litesvm = "0.8.1"
+solana-instruction = "3.0.0"
+solana-keypair = "3.0.1"
+solana-native-token = "3.0.0"
+solana-pubkey = "3.0.0"
+solana-transaction = "3.0.1"
+solana-system-interface.workspace = true
diff --git a/basics/realloc/pinocchio/program/src/instructions/create.rs b/basics/realloc/pinocchio/program/src/instructions/create.rs
new file mode 100644
index 000000000..5a69113bf
--- /dev/null
+++ b/basics/realloc/pinocchio/program/src/instructions/create.rs
@@ -0,0 +1,37 @@
+use pinocchio::{
+ account_info::AccountInfo,
+ program_error::ProgramError,
+ pubkey::Pubkey,
+ sysvars::{rent::Rent, Sysvar},
+ ProgramResult,
+};
+use pinocchio_system::instructions::CreateAccount;
+
+use crate::state::AddressInfo;
+
+pub fn create_address_info(
+ program_id: &Pubkey,
+ accounts: &[AccountInfo],
+ instruction_data: &[u8],
+) -> ProgramResult {
+ let [target_account, payer, _] = accounts else {
+ return Err(ProgramError::NotEnoughAccountKeys);
+ };
+
+ let account_span = AddressInfo::LEN;
+ let lamports_required = (Rent::get()?).minimum_balance(account_span);
+
+ CreateAccount {
+ from: payer,
+ to: target_account,
+ lamports: lamports_required,
+ space: account_span as u64,
+ owner: program_id,
+ }
+ .invoke()?;
+
+ let mut data = target_account.try_borrow_mut_data()?;
+ data.copy_from_slice(instruction_data);
+
+ Ok(())
+}
diff --git a/basics/realloc/pinocchio/program/src/instructions/mod.rs b/basics/realloc/pinocchio/program/src/instructions/mod.rs
new file mode 100644
index 000000000..164dc9851
--- /dev/null
+++ b/basics/realloc/pinocchio/program/src/instructions/mod.rs
@@ -0,0 +1,5 @@
+pub mod create;
+pub mod reallocate;
+
+pub use create::*;
+pub use reallocate::*;
diff --git a/basics/realloc/pinocchio/program/src/instructions/reallocate.rs b/basics/realloc/pinocchio/program/src/instructions/reallocate.rs
new file mode 100644
index 000000000..3eb13c73a
--- /dev/null
+++ b/basics/realloc/pinocchio/program/src/instructions/reallocate.rs
@@ -0,0 +1,52 @@
+use pinocchio::{
+ account_info::AccountInfo,
+ program_error::ProgramError,
+ sysvars::{rent::Rent, Sysvar},
+ ProgramResult,
+};
+use pinocchio_system::instructions::Transfer;
+
+use crate::state::{EnhancedAddressInfo, WorkInfo};
+
+pub fn reallocate_without_zero_init(
+ accounts: &[AccountInfo],
+ instruction_data: &[u8],
+) -> ProgramResult {
+ let [target_account, payer, _] = accounts else {
+ return Err(ProgramError::NotEnoughAccountKeys);
+ };
+
+ let account_span = EnhancedAddressInfo::LEN;
+ let lamports_required = (Rent::get()?).minimum_balance(account_span);
+
+ let diff = lamports_required - *target_account.try_borrow_lamports()?;
+
+ Transfer {
+ from: payer,
+ to: target_account,
+ lamports: diff,
+ }
+ .invoke()?;
+
+ target_account.resize(account_span)?;
+
+ let mut target_account_data = target_account.try_borrow_mut_data()?;
+ target_account_data[25..37].copy_from_slice(instruction_data);
+
+ Ok(())
+}
+
+pub fn reallocate_zero_init(accounts: &[AccountInfo], data: &[u8]) -> ProgramResult {
+ let [target_account] = accounts else {
+ return Err(ProgramError::NotEnoughAccountKeys);
+ };
+
+ let account_span = WorkInfo::LEN;
+
+ target_account.resize(account_span)?;
+
+ let mut target_account_data = target_account.try_borrow_mut_data()?;
+ target_account_data.copy_from_slice(data);
+
+ Ok(())
+}
diff --git a/basics/realloc/pinocchio/program/src/lib.rs b/basics/realloc/pinocchio/program/src/lib.rs
new file mode 100644
index 000000000..55ddedf34
--- /dev/null
+++ b/basics/realloc/pinocchio/program/src/lib.rs
@@ -0,0 +1,12 @@
+#![no_std]
+pub mod instructions;
+pub mod processor;
+pub mod state;
+
+use {
+ crate::processor::process_instruction,
+ pinocchio::{entrypoint, nostd_panic_handler},
+};
+
+entrypoint!(process_instruction);
+nostd_panic_handler!();
diff --git a/basics/realloc/pinocchio/program/src/processor.rs b/basics/realloc/pinocchio/program/src/processor.rs
new file mode 100644
index 000000000..9b33aaac2
--- /dev/null
+++ b/basics/realloc/pinocchio/program/src/processor.rs
@@ -0,0 +1,17 @@
+use crate::instructions::*;
+use pinocchio::{
+ account_info::AccountInfo, program_error::ProgramError, pubkey::Pubkey, ProgramResult,
+};
+
+pub fn process_instruction(
+ program_id: &Pubkey,
+ accounts: &[AccountInfo],
+ instruction_data: &[u8],
+) -> ProgramResult {
+ match instruction_data.split_first() {
+ Some((0, data)) => create_address_info(program_id, accounts, data),
+ Some((1, data)) => reallocate_without_zero_init(accounts, data),
+ Some((2, data)) => reallocate_zero_init(accounts, data),
+ _ => Err(ProgramError::InvalidInstructionData),
+ }
+}
diff --git a/basics/realloc/pinocchio/program/src/state/address_info.rs b/basics/realloc/pinocchio/program/src/state/address_info.rs
new file mode 100644
index 000000000..6acc84865
--- /dev/null
+++ b/basics/realloc/pinocchio/program/src/state/address_info.rs
@@ -0,0 +1,10 @@
+pub struct AddressInfo {
+ pub name: [u8; 8],
+ pub house_number: u8,
+ pub street: [u8; 8],
+ pub city: [u8; 8],
+}
+
+impl AddressInfo {
+ pub const LEN: usize = 25;
+}
diff --git a/basics/realloc/pinocchio/program/src/state/enhanced_address_info.rs b/basics/realloc/pinocchio/program/src/state/enhanced_address_info.rs
new file mode 100644
index 000000000..51935fd0f
--- /dev/null
+++ b/basics/realloc/pinocchio/program/src/state/enhanced_address_info.rs
@@ -0,0 +1,17 @@
+pub struct EnhancedAddressInfoExtender {
+ pub state: [u8; 8],
+ pub zip: u32,
+}
+
+pub struct EnhancedAddressInfo {
+ pub name: [u8; 8],
+ pub house_number: u8,
+ pub street: [u8; 8],
+ pub city: [u8; 8],
+ pub state: [u8; 8],
+ pub zip: u32,
+}
+
+impl EnhancedAddressInfo {
+ pub const LEN: usize = 37;
+}
diff --git a/basics/realloc/pinocchio/program/src/state/mod.rs b/basics/realloc/pinocchio/program/src/state/mod.rs
new file mode 100644
index 000000000..0f3a6d519
--- /dev/null
+++ b/basics/realloc/pinocchio/program/src/state/mod.rs
@@ -0,0 +1,7 @@
+pub mod address_info;
+pub mod enhanced_address_info;
+pub mod work_info;
+
+pub use address_info::*;
+pub use enhanced_address_info::*;
+pub use work_info::*;
diff --git a/basics/realloc/pinocchio/program/src/state/work_info.rs b/basics/realloc/pinocchio/program/src/state/work_info.rs
new file mode 100644
index 000000000..436d024e1
--- /dev/null
+++ b/basics/realloc/pinocchio/program/src/state/work_info.rs
@@ -0,0 +1,10 @@
+pub struct WorkInfo {
+ pub name: [u8; 8],
+ pub position: [u8; 8],
+ pub company: [u8; 8],
+ pub years_employed: u8,
+}
+
+impl WorkInfo {
+ pub const LEN: usize = 25;
+}
diff --git a/basics/realloc/pinocchio/program/tests/test.rs b/basics/realloc/pinocchio/program/tests/test.rs
new file mode 100644
index 000000000..389114a39
--- /dev/null
+++ b/basics/realloc/pinocchio/program/tests/test.rs
@@ -0,0 +1,138 @@
+use litesvm::LiteSVM;
+use solana_instruction::Instruction;
+use solana_keypair::{Keypair, Signer};
+use solana_native_token::LAMPORTS_PER_SOL;
+use solana_pubkey::Pubkey;
+use solana_transaction::{AccountMeta, Transaction};
+
+#[test]
+fn test_realloc() {
+ let mut svm = LiteSVM::new();
+
+ let program_id = Pubkey::new_unique();
+ let program_bytes = include_bytes!("../../tests/fixtures/realloc_pinocchio_program.so");
+
+ svm.add_program(program_id, program_bytes).unwrap();
+
+ let payer = Keypair::new();
+ svm.airdrop(&payer.pubkey(), LAMPORTS_PER_SOL).unwrap();
+
+ let test_account = Keypair::new();
+
+ let mut data = Vec::new();
+
+ data.push(0);
+
+ let mut name: [u8; 8] = [0u8; 8];
+ let len = "Jacob".len().min(8);
+ name[..len].copy_from_slice(b"Jacob");
+ data.extend_from_slice(&name);
+
+ data.extend_from_slice(&u8::to_le_bytes(123));
+
+ let mut street: [u8; 8] = [0u8; 8];
+ let len = "Main St.".len().min(8);
+ street[..len].copy_from_slice(b"Main St.");
+ data.extend_from_slice(&street);
+
+ let mut city: [u8; 8] = [0u8; 8];
+ let len = "Chicago".len().min(8);
+ city[..len].copy_from_slice(b"Chicago");
+ data.extend_from_slice(&city);
+
+ let ix = Instruction {
+ program_id,
+ accounts: vec![
+ AccountMeta::new(test_account.pubkey(), true),
+ AccountMeta::new(payer.pubkey(), true),
+ AccountMeta::new(solana_system_interface::program::ID, false),
+ ],
+ data,
+ };
+
+ let tx = Transaction::new_signed_with_payer(
+ &[ix],
+ Some(&payer.pubkey()),
+ &[&payer, &test_account],
+ svm.latest_blockhash(),
+ );
+
+ let res = svm.send_transaction(tx);
+ assert!(res.is_ok());
+
+ let mut data = Vec::new();
+ data.push(1);
+
+ let mut state: [u8; 8] = [0u8; 8];
+ let len = "Illinois".len().min(8);
+ state[..len].copy_from_slice(b"Illinois");
+ data.extend_from_slice(&state);
+
+ data.extend_from_slice(&u32::to_le_bytes(12345));
+
+ let ix = Instruction {
+ program_id,
+ accounts: vec![
+ AccountMeta::new(test_account.pubkey(), false),
+ AccountMeta::new(payer.pubkey(), true),
+ AccountMeta::new(solana_system_interface::program::ID, false),
+ ],
+ data,
+ };
+
+ let tx = Transaction::new_signed_with_payer(
+ &[ix],
+ Some(&payer.pubkey()),
+ &[&payer],
+ svm.latest_blockhash(),
+ );
+
+ let res = svm.send_transaction(tx);
+ assert!(res.is_ok());
+
+ let data = svm.get_account(&test_account.pubkey()).unwrap().data;
+ let state = String::from_utf8(data[25..33].to_vec()).unwrap();
+ let zip = u32::from_le_bytes(data[33..37].try_into().unwrap());
+ assert_eq!("Illinois".to_string(), state);
+ assert_eq!(12345, zip);
+
+ svm.airdrop(&test_account.pubkey(), LAMPORTS_PER_SOL)
+ .unwrap();
+
+ let mut data = Vec::new();
+
+ data.push(2);
+
+ let mut name: [u8; 8] = [0u8; 8];
+ let len = "Perelyn".len().min(8);
+ name[..len].copy_from_slice(b"Perelyn");
+ data.extend_from_slice(&name);
+
+ let mut position: [u8; 8] = [0u8; 8];
+ let len = "Eng".len().min(8);
+ position[..len].copy_from_slice(b"Eng");
+ data.extend_from_slice(&position);
+
+ let mut company: [u8; 8] = [0u8; 8];
+ let len = "Anza".len().min(8);
+ company[..len].copy_from_slice(b"Anza");
+ data.extend_from_slice(&company);
+
+ data.extend_from_slice(&u8::to_le_bytes(2));
+
+ let ix = Instruction {
+ program_id,
+ accounts: vec![AccountMeta::new(test_account.pubkey(), false)],
+ data,
+ };
+
+ let tx = Transaction::new_signed_with_payer(
+ &[ix],
+ Some(&payer.pubkey()),
+ &[&payer],
+ svm.latest_blockhash(),
+ );
+
+ let res = svm.send_transaction(tx);
+ assert!(res.is_ok());
+}
diff --git a/basics/realloc/pinocchio/tests/realloc.test.ts b/basics/realloc/pinocchio/tests/realloc.test.ts
new file mode 100644
index 000000000..58b2b4fb5
--- /dev/null
+++ b/basics/realloc/pinocchio/tests/realloc.test.ts
@@ -0,0 +1,7 @@
+import { describe, test } from "node:test";
+import { Keypair, PublicKey, Transaction } from "@solana/web3.js";
+import { start } from "solana-bankrun";
+
+describe("Realloc!", async () => {
+ console.log("Realloc!");
+});
diff --git a/basics/realloc/pinocchio/tests/tsconfig.test.json b/basics/realloc/pinocchio/tests/tsconfig.test.json
new file mode 100644
index 000000000..cd5d2e3d0
--- /dev/null
+++ b/basics/realloc/pinocchio/tests/tsconfig.test.json
@@ -0,0 +1,10 @@
+{
+ "compilerOptions": {
+ "types": ["mocha", "chai"],
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2015"],
+ "module": "commonjs",
+ "target": "es6",
+ "esModuleInterop": true
+ }
+}
From 81430912810dc1e32c076de7ad1793b9e9277d88 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?solwarrior=20=F0=9F=97=A1=EF=B8=8F?=
<118261237+sol-warrior@users.noreply.github.com>
Date: Tue, 30 Dec 2025 08:08:18 +0530
Subject: [PATCH 16/49] feat: Add LiteSVM tests for the Transfer-SOL anchor
program (#482)
* feat: add litesvm test for transfer-sol anchor program
* Updated package.json to include litesvm dependency.
* Modified tsconfig.json to use 'nodenext' module.
* Added litesvm test cases for transferring SOL using both CPI and program calls.
* refactor: update transfer-sol tests for improved clarity and functionality
* Renamed test suite to "Anchor: Transfer SOL" for better context.
* Simplified recipient and payer account generation in tests.
* Replaced balance checks with assertions for clarity.
* Removed unused getBalances function to streamline the test code.
* chore: remove deprecated bankrun test file and its related dependencies
---
basics/transfer-sol/anchor/package.json | 5 +-
basics/transfer-sol/anchor/pnpm-lock.yaml | 167 +++++++++---------
.../transfer-sol/anchor/tests/bankrun.test.ts | 102 -----------
.../transfer-sol/anchor/tests/litesvm.test.ts | 99 +++++++++++
basics/transfer-sol/anchor/tests/test.ts | 71 +++-----
basics/transfer-sol/anchor/tsconfig.json | 16 +-
6 files changed, 215 insertions(+), 245 deletions(-)
delete mode 100644 basics/transfer-sol/anchor/tests/bankrun.test.ts
create mode 100644 basics/transfer-sol/anchor/tests/litesvm.test.ts
diff --git a/basics/transfer-sol/anchor/package.json b/basics/transfer-sol/anchor/package.json
index 7865c8c24..1f9417836 100644
--- a/basics/transfer-sol/anchor/package.json
+++ b/basics/transfer-sol/anchor/package.json
@@ -2,16 +2,15 @@
"type": "module",
"dependencies": {
"@coral-xyz/anchor": "0.32.1",
- "@solana/web3.js": "^1.95.2"
+ "@solana/web3.js": "^1.95.2",
+ "litesvm": "^0.4.0"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
"@types/chai": "^4.3.0",
"@types/mocha": "^9.0.0",
- "anchor-bankrun": "^0.4.0",
"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/transfer-sol/anchor/pnpm-lock.yaml b/basics/transfer-sol/anchor/pnpm-lock.yaml
index 4cc1440b8..b423a72a4 100644
--- a/basics/transfer-sol/anchor/pnpm-lock.yaml
+++ b/basics/transfer-sol/anchor/pnpm-lock.yaml
@@ -14,6 +14,9 @@ importers:
'@solana/web3.js':
specifier: ^1.95.2
version: 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ litesvm:
+ specifier: ^0.4.0
+ version: 0.4.0(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
devDependencies:
'@types/bn.js':
specifier: ^5.1.0
@@ -24,18 +27,12 @@ importers:
'@types/mocha':
specifier: ^9.0.0
version: 9.1.1
- anchor-bankrun:
- specifier: ^0.4.0
- version: 0.4.1(@coral-xyz/anchor@0.32.1(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))(solana-bankrun@0.3.1(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10))
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)
@@ -137,14 +134,6 @@ packages:
resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==}
engines: {node: '>= 8.0.0'}
- anchor-bankrun@0.4.1:
- resolution: {integrity: sha512-ryCT84tw+lP4AqRpBsZJbt/KTRoVVKufkxFGd77gnx9iHkbwA5G/9cALk/eqLQm4xeUWTrJSJdEVyg2e74iP9A==}
- engines: {node: '>= 10'}
- peerDependencies:
- '@coral-xyz/anchor': ^0.30.0
- '@solana/web3.js': '>=1.78.4 <1.92.0'
- solana-bankrun: ^0.2.0
-
ansi-colors@4.1.1:
resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
engines: {node: '>=6'}
@@ -322,6 +311,9 @@ packages:
fast-stable-stringify@1.0.0:
resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
+ fastestsmallesttextencoderdecoder@1.0.22:
+ resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
+
fill-range@7.1.1:
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
engines: {node: '>=8'}
@@ -434,6 +426,46 @@ packages:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
+ litesvm-darwin-arm64@0.4.0:
+ resolution: {integrity: sha512-LN6iZcUQ6Xi5KO/7yJBYSALjjDCI/s/s2PgV3BqM4dpeBaLz+fXX/+qgMcBgpEVgEdEmhelux+WtAMkbEzJfrA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [darwin]
+
+ litesvm-darwin-x64@0.4.0:
+ resolution: {integrity: sha512-3ltogKQdle8LbakVqoB6plxaNwp6Vb3tnkqa3G5mAvvZNorB2iumThDaTZ381Knl69t566LZm+g/VDZwYfsfhA==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [darwin]
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ resolution: {integrity: sha512-SWlcRUqkXCMgLoDX/Wqr/S1lff+ggVI9f0YrRJMraxtEyApxutAoW2AWw4tvo6DsEgNwjxgsZOAwnE6bQBv8CA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-arm64-musl@0.4.0:
+ resolution: {integrity: sha512-YMMqwEWJUSWwL0Rwp8dFwl3jvgNU21eI7Qc+BpH9u2yeIRYQTn3rNGDnsK8v3QIZPHQdMo7NrPhzk4XoB1aKPg==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-x64-gnu@0.4.0:
+ resolution: {integrity: sha512-brZ3tFABDVQEYCgci7AO8iVYLw10UXVo97/lpTy75bTzNoqkggg8wFQOrbgCdb9NRwt06Y4Zf8cpIZAoDQq2mw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm-linux-x64-musl@0.4.0:
+ resolution: {integrity: sha512-D98qdIOuWg4fOewIIiH1D23AtM4I7/3vLKXIL8uQz06D5ev5fsBzNp2gM7libAywTkCYy/u666xgD6PsWhrTaw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm@0.4.0:
+ resolution: {integrity: sha512-ySr5mB2ap4SzJpmVR2I5+gjzTH8NJbkg7DYPormzA2U9F4LhfvTTrD17X/k5N3Bn4b5Db6/CwSyX2qc0HrJtNA==}
+ engines: {node: '>= 20'}
+
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -544,39 +576,6 @@ packages:
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==}
@@ -865,12 +864,6 @@ snapshots:
dependencies:
humanize-ms: 1.2.1
- anchor-bankrun@0.4.1(@coral-xyz/anchor@0.32.1(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))(solana-bankrun@0.3.1(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)):
- dependencies:
- '@coral-xyz/anchor': 0.32.1(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)
- solana-bankrun: 0.3.1(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
-
ansi-colors@4.1.1: {}
ansi-regex@5.0.1: {}
@@ -1034,6 +1027,8 @@ snapshots:
fast-stable-stringify@1.0.0: {}
+ fastestsmallesttextencoderdecoder@1.0.22: {}
+
fill-range@7.1.1:
dependencies:
to-regex-range: 5.0.1
@@ -1139,6 +1134,41 @@ snapshots:
minimist: 1.2.8
optional: true
+ litesvm-darwin-arm64@0.4.0:
+ optional: true
+
+ litesvm-darwin-x64@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-musl@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-musl@0.4.0:
+ optional: true
+
+ litesvm@0.4.0(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10):
+ dependencies:
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ fastestsmallesttextencoderdecoder: 1.0.22
+ optionalDependencies:
+ litesvm-darwin-arm64: 0.4.0
+ litesvm-darwin-x64: 0.4.0
+ litesvm-linux-arm64-gnu: 0.4.0
+ litesvm-linux-arm64-musl: 0.4.0
+ litesvm-linux-x64-gnu: 0.4.0
+ litesvm-linux-x64-musl: 0.4.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1261,37 +1291,6 @@ snapshots:
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.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
- 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
diff --git a/basics/transfer-sol/anchor/tests/bankrun.test.ts b/basics/transfer-sol/anchor/tests/bankrun.test.ts
deleted file mode 100644
index 0b915de35..000000000
--- a/basics/transfer-sol/anchor/tests/bankrun.test.ts
+++ /dev/null
@@ -1,102 +0,0 @@
-import { describe, it } from "node:test";
-import * as anchor from "@coral-xyz/anchor";
-import {
- Keypair,
- LAMPORTS_PER_SOL,
- PublicKey,
- SystemProgram,
- Transaction,
-} from "@solana/web3.js";
-import { BankrunProvider } from "anchor-bankrun";
-import { BN } from "bn.js";
-import { startAnchor } from "solana-bankrun";
-import type { TransferSol } from "../target/types/transfer_sol";
-
-import IDL from "../target/idl/transfer_sol.json";
-const PROGRAM_ID = new PublicKey(IDL.address);
-
-describe("Bankrun example", async () => {
- const context = await startAnchor(
- "",
- [{ name: "transfer_sol", programId: PROGRAM_ID }],
- [],
- );
- const provider = new BankrunProvider(context);
- const payer = provider.wallet as anchor.Wallet;
- const program = new anchor.Program(IDL, provider);
-
- // 1 SOL
- const transferAmount = 1 * LAMPORTS_PER_SOL;
-
- // Generate a new keypair for the recipient
- const recipient = new Keypair();
-
- // Generate a new keypair to create an account owned by our program
- const programOwnedAccount = new Keypair();
-
- it("Transfer SOL with CPI", async () => {
- await getBalances(payer.publicKey, recipient.publicKey, "Beginning");
-
- await program.methods
- .transferSolWithCpi(new BN(transferAmount))
- .accounts({
- payer: payer.publicKey,
- recipient: recipient.publicKey,
- })
- .rpc();
-
- await getBalances(payer.publicKey, recipient.publicKey, "Resulting");
- });
-
- it("Create and fund account owned by our program", async () => {
- const instruction = SystemProgram.createAccount({
- fromPubkey: payer.publicKey,
- newAccountPubkey: programOwnedAccount.publicKey,
- space: 0,
- lamports: 1 * LAMPORTS_PER_SOL, // 1 SOL
- programId: program.programId, // Program Owner, our program's address
- });
-
- const transaction = new Transaction().add(instruction);
- transaction.recentBlockhash = context.lastBlockhash;
- transaction.feePayer = payer.publicKey;
-
- transaction.sign(payer.payer, programOwnedAccount);
- await context.banksClient.processTransaction(transaction);
- });
-
- it("Transfer SOL with Program", async () => {
- await getBalances(
- programOwnedAccount.publicKey,
- payer.publicKey,
- "Beginning",
- );
-
- await program.methods
- .transferSolWithProgram(new BN(transferAmount))
- .accounts({
- payer: programOwnedAccount.publicKey,
- recipient: payer.publicKey,
- })
- .rpc();
-
- await getBalances(
- programOwnedAccount.publicKey,
- payer.publicKey,
- "Resulting",
- );
- });
-
- async function getBalances(
- payerPubkey: PublicKey,
- recipientPubkey: PublicKey,
- timeframe: string,
- ) {
- const payerBalance = await context.banksClient.getBalance(payerPubkey);
- const recipientBalance =
- await context.banksClient.getBalance(recipientPubkey);
- console.log(`${timeframe} balances:`);
- console.log(` Payer: ${Number(payerBalance) / LAMPORTS_PER_SOL}`);
- console.log(` Recipient: ${Number(recipientBalance) / LAMPORTS_PER_SOL}`);
- }
-});
diff --git a/basics/transfer-sol/anchor/tests/litesvm.test.ts b/basics/transfer-sol/anchor/tests/litesvm.test.ts
new file mode 100644
index 000000000..03f8e674a
--- /dev/null
+++ b/basics/transfer-sol/anchor/tests/litesvm.test.ts
@@ -0,0 +1,99 @@
+import anchor from "@coral-xyz/anchor";
+import {
+ Keypair,
+ LAMPORTS_PER_SOL,
+ PublicKey,
+ SystemProgram,
+ Transaction,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import { assert } from "chai";
+import { LiteSVM } from "litesvm";
+import Idl from "../target/idl/transfer_sol.json" with { type: "json" };
+
+describe("LiteSVM: Transfer SOL", () => {
+ const svm = new LiteSVM();
+ const programId = new PublicKey(Idl.address);
+ const coder = new anchor.BorshCoder(Idl as anchor.Idl);
+ const payer = Keypair.generate();
+ svm.airdrop(payer.publicKey, BigInt(5 * LAMPORTS_PER_SOL));
+
+ const programFilePath = new URL(
+ "../target/deploy/transfer_sol.so",
+ import.meta.url,
+ ).pathname;
+ svm.addProgramFromFile(programId, programFilePath);
+
+ it("Transfer SOL with CPI", () => {
+ const recipient = Keypair.generate();
+
+ const ixArgs = {
+ amount: new anchor.BN(LAMPORTS_PER_SOL),
+ };
+ const data = coder.instruction.encode("transfer_sol_with_cpi", ixArgs);
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: payer.publicKey, isSigner: true, isWritable: true },
+ { pubkey: recipient.publicKey, isSigner: false, isWritable: true },
+ { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
+ ],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+ tx.sign(payer);
+ svm.sendTransaction(tx);
+
+ const recipientAcc = svm.getAccount(recipient.publicKey);
+ assert.equal(recipientAcc.lamports, LAMPORTS_PER_SOL);
+ });
+
+ it("Transfer SOL with Program", () => {
+ const payerAccount = Keypair.generate();
+ const ixPayer = SystemProgram.createAccount({
+ fromPubkey: payer.publicKey,
+ newAccountPubkey: payerAccount.publicKey,
+ lamports: LAMPORTS_PER_SOL,
+ space: 0,
+ programId,
+ });
+ const txPayer = new Transaction().add(ixPayer);
+ txPayer.feePayer = payer.publicKey;
+ txPayer.recentBlockhash = svm.latestBlockhash();
+ txPayer.sign(payer, payerAccount);
+ svm.sendTransaction(txPayer);
+ svm.expireBlockhash();
+
+ const recipientAccount = Keypair.generate();
+
+ const ixArgs = {
+ amount: new anchor.BN(LAMPORTS_PER_SOL),
+ };
+ const data = coder.instruction.encode("transfer_sol_with_program", ixArgs);
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: payerAccount.publicKey, isSigner: true, isWritable: true },
+ {
+ pubkey: recipientAccount.publicKey,
+ isSigner: false,
+ isWritable: true,
+ },
+ { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
+ ],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+ tx.sign(payer, payerAccount);
+ svm.sendTransaction(tx);
+
+ const recipientAcc = svm.getAccount(recipientAccount.publicKey);
+ assert.equal(recipientAcc.lamports, LAMPORTS_PER_SOL);
+ });
+});
diff --git a/basics/transfer-sol/anchor/tests/test.ts b/basics/transfer-sol/anchor/tests/test.ts
index 4d64b0938..05705380a 100644
--- a/basics/transfer-sol/anchor/tests/test.ts
+++ b/basics/transfer-sol/anchor/tests/test.ts
@@ -8,86 +8,61 @@ import {
sendAndConfirmTransaction,
} from "@solana/web3.js";
import { BN } from "bn.js";
-import type { TransferSol } from "../target/types/transfer_sol";
+import { assert } from "chai";
+import type { TransferSol } from "../target/types/transfer_sol.ts";
-describe.skip("transfer-sol", () => {
+describe("Anchor: Transfer SOL", () => {
const provider = anchor.AnchorProvider.env();
anchor.setProvider(provider);
const payer = provider.wallet as anchor.Wallet;
const program = anchor.workspace.TransferSol as anchor.Program;
- // 1 SOL
- const transferAmount = 1 * LAMPORTS_PER_SOL;
-
- // Generate a new keypair for the recipient
- const recipient = new Keypair();
-
- // Generate a new keypair to create an account owned by our program
- const programOwnedAccount = new Keypair();
-
it("Transfer SOL with CPI", async () => {
- await getBalances(payer.publicKey, recipient.publicKey, "Beginning");
+ const recipient = Keypair.generate();
await program.methods
- .transferSolWithCpi(new BN(transferAmount))
+ .transferSolWithCpi(new BN(LAMPORTS_PER_SOL))
.accounts({
payer: payer.publicKey,
recipient: recipient.publicKey,
})
.rpc();
- await getBalances(payer.publicKey, recipient.publicKey, "Resulting");
+ const recipientBalance = await provider.connection.getBalance(
+ recipient.publicKey,
+ );
+ assert.equal(recipientBalance, LAMPORTS_PER_SOL);
});
- it("Create and fund account owned by our program", async () => {
- const instruction = SystemProgram.createAccount({
+ it("Transfer SOL with Program", async () => {
+ const payerAccount = Keypair.generate();
+ const ix = SystemProgram.createAccount({
fromPubkey: payer.publicKey,
- newAccountPubkey: programOwnedAccount.publicKey,
+ newAccountPubkey: payerAccount.publicKey,
space: 0,
- lamports: 1 * LAMPORTS_PER_SOL, // 1 SOL
+ lamports: LAMPORTS_PER_SOL, // 1 SOL
programId: program.programId, // Program Owner, our program's address
});
- const transaction = new Transaction().add(instruction);
+ const transaction = new Transaction().add(ix);
await sendAndConfirmTransaction(provider.connection, transaction, [
payer.payer,
- programOwnedAccount,
+ payerAccount,
]);
- });
-
- it("Transfer SOL with Program", async () => {
- await getBalances(
- programOwnedAccount.publicKey,
- payer.publicKey,
- "Beginning",
- );
+ const recipientAccount = Keypair.generate();
await program.methods
- .transferSolWithProgram(new BN(transferAmount))
+ .transferSolWithProgram(new BN(LAMPORTS_PER_SOL))
.accounts({
- payer: programOwnedAccount.publicKey,
- recipient: payer.publicKey,
+ payer: payerAccount.publicKey,
+ recipient: recipientAccount.publicKey,
})
.rpc();
- await getBalances(
- programOwnedAccount.publicKey,
- payer.publicKey,
- "Resulting",
+ const recipientBalance = await provider.connection.getBalance(
+ recipientAccount.publicKey,
);
+ assert.equal(recipientBalance, LAMPORTS_PER_SOL);
});
-
- async function getBalances(
- payerPubkey: PublicKey,
- recipientPubkey: PublicKey,
- timeframe: string,
- ) {
- const payerBalance = await provider.connection.getBalance(payerPubkey);
- const recipientBalance =
- await provider.connection.getBalance(recipientPubkey);
- console.log(`${timeframe} balances:`);
- console.log(` Payer: ${payerBalance / LAMPORTS_PER_SOL}`);
- console.log(` Recipient: ${recipientBalance / LAMPORTS_PER_SOL}`);
- }
});
diff --git a/basics/transfer-sol/anchor/tsconfig.json b/basics/transfer-sol/anchor/tsconfig.json
index cd5d2e3d0..59fe75cf0 100644
--- a/basics/transfer-sol/anchor/tsconfig.json
+++ b/basics/transfer-sol/anchor/tsconfig.json
@@ -1,10 +1,10 @@
{
- "compilerOptions": {
- "types": ["mocha", "chai"],
- "typeRoots": ["./node_modules/@types"],
- "lib": ["es2015"],
- "module": "commonjs",
- "target": "es6",
- "esModuleInterop": true
- }
+ "compilerOptions": {
+ "types": ["mocha", "chai"],
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2015"],
+ "module": "nodenext",
+ "target": "es6",
+ "esModuleInterop": true
+ }
}
From ee2aaa204aa078ca0f699f6845418d44e7297608 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?solwarrior=20=F0=9F=97=A1=EF=B8=8F?=
<118261237+sol-warrior@users.noreply.github.com>
Date: Tue, 30 Dec 2025 08:09:07 +0530
Subject: [PATCH 17/49] feat: Add LiteSVM tests for the Program Derived
Addresses anchor program (#479)
* feat: add LiteSVM tests for page visit tracking in Anchor program
* Implement tests for creating and incrementing page visit counts using LiteSVM.
* Update existing test structure to include assertions for page visit tracking.
* Refactor test descriptions for clarity.
* chore: add and update dependencies in anchor package.json and pnpm-lock.yaml
* Upgrade @solana/web3.js to version 1.98.4.
* Add litesvm dependency with version 0.4.0.
* Update TypeScript module resolution in tsconfig.json to nodenext.
* chore: remove deprecated bankrun and related stuff
* Delete bankrun test file to clean up the codebase.
* Remove anchor-bankrun and solana-bankrun dependencies from package.json and pnpm-lock.yaml.
---
.../anchor/package.json | 5 +-
.../anchor/pnpm-lock.yaml | 256 ++++++++++--------
.../anchor/tests/bankrun.test.ts | 56 ----
.../anchor/tests/litesvm.test.ts | 119 ++++++++
.../anchor/tests/test.ts | 17 +-
.../anchor/tsconfig.json | 16 +-
6 files changed, 283 insertions(+), 186 deletions(-)
delete mode 100644 basics/program-derived-addresses/anchor/tests/bankrun.test.ts
create mode 100644 basics/program-derived-addresses/anchor/tests/litesvm.test.ts
diff --git a/basics/program-derived-addresses/anchor/package.json b/basics/program-derived-addresses/anchor/package.json
index 7865c8c24..9d86fae3d 100644
--- a/basics/program-derived-addresses/anchor/package.json
+++ b/basics/program-derived-addresses/anchor/package.json
@@ -2,16 +2,15 @@
"type": "module",
"dependencies": {
"@coral-xyz/anchor": "0.32.1",
- "@solana/web3.js": "^1.95.2"
+ "@solana/web3.js": "^1.98.4",
+ "litesvm": "^0.4.0"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
"@types/chai": "^4.3.0",
"@types/mocha": "^9.0.0",
- "anchor-bankrun": "^0.4.0",
"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/program-derived-addresses/anchor/pnpm-lock.yaml b/basics/program-derived-addresses/anchor/pnpm-lock.yaml
index aae81ea51..a6dc09428 100644
--- a/basics/program-derived-addresses/anchor/pnpm-lock.yaml
+++ b/basics/program-derived-addresses/anchor/pnpm-lock.yaml
@@ -10,10 +10,13 @@ importers:
dependencies:
'@coral-xyz/anchor':
specifier: 0.32.1
- version: 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.95.2
- version: 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ litesvm:
+ specifier: ^0.4.0
+ version: 0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
devDependencies:
'@types/bn.js':
specifier: ^5.1.0
@@ -24,18 +27,12 @@ importers:
'@types/mocha':
specifier: ^9.0.0
version: 9.1.1
- anchor-bankrun:
- specifier: ^0.4.0
- version: 0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
chai:
specifier: ^4.3.4
version: 4.4.1
mocha:
specifier: ^9.0.3
version: 9.2.2
- solana-bankrun:
- specifier: ^0.3.0
- version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
ts-mocha:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
@@ -78,8 +75,27 @@ packages:
resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
engines: {node: '>=5.10'}
- '@solana/web3.js@1.95.2':
- resolution: {integrity: sha512-SjlHp0G4qhuhkQQc+YXdGkI8EerCqwxvgytMgBpzMUQTafrkNant3e7pgilBGgjy/iM40ICvWBLgASTPMrQU7w==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
'@swc/helpers@0.5.12':
resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==}
@@ -125,14 +141,6 @@ packages:
resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
engines: {node: '>= 8.0.0'}
- anchor-bankrun@0.4.0:
- resolution: {integrity: sha512-s+K7E0IGAlmkhuo8nbiqVsQf2yJ+3l9GjNQJSmkRDe25dQj4Yef9rJh77FH6EQ5H6yQYfzuhgm/5GD6JMjdTZg==}
- engines: {node: '>= 10'}
- peerDependencies:
- '@coral-xyz/anchor': ^0.30.0
- '@solana/web3.js': ^1.78.4
- solana-bankrun: ^0.2.0
-
ansi-colors@4.1.1:
resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
engines: {node: '>=6'}
@@ -168,17 +176,10 @@ packages:
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- bigint-buffer@1.1.5:
- resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==}
- engines: {node: '>= 10.0.0'}
-
binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
- bindings@1.5.0:
- resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
-
bn.js@5.2.1:
resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==}
@@ -227,6 +228,10 @@ packages:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -244,6 +249,10 @@ packages:
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ 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==}
@@ -312,8 +321,8 @@ packages:
fast-stable-stringify@1.0.0:
resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
- file-uri-to-path@1.0.0:
- resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
+ fastestsmallesttextencoderdecoder@1.0.22:
+ resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
@@ -429,6 +438,46 @@ packages:
resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
engines: {'0': node >= 0.2.0}
+ litesvm-darwin-arm64@0.4.0:
+ resolution: {integrity: sha512-LN6iZcUQ6Xi5KO/7yJBYSALjjDCI/s/s2PgV3BqM4dpeBaLz+fXX/+qgMcBgpEVgEdEmhelux+WtAMkbEzJfrA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [darwin]
+
+ litesvm-darwin-x64@0.4.0:
+ resolution: {integrity: sha512-3ltogKQdle8LbakVqoB6plxaNwp6Vb3tnkqa3G5mAvvZNorB2iumThDaTZ381Knl69t566LZm+g/VDZwYfsfhA==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [darwin]
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ resolution: {integrity: sha512-SWlcRUqkXCMgLoDX/Wqr/S1lff+ggVI9f0YrRJMraxtEyApxutAoW2AWw4tvo6DsEgNwjxgsZOAwnE6bQBv8CA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-arm64-musl@0.4.0:
+ resolution: {integrity: sha512-YMMqwEWJUSWwL0Rwp8dFwl3jvgNU21eI7Qc+BpH9u2yeIRYQTn3rNGDnsK8v3QIZPHQdMo7NrPhzk4XoB1aKPg==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-x64-gnu@0.4.0:
+ resolution: {integrity: sha512-brZ3tFABDVQEYCgci7AO8iVYLw10UXVo97/lpTy75bTzNoqkggg8wFQOrbgCdb9NRwt06Y4Zf8cpIZAoDQq2mw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm-linux-x64-musl@0.4.0:
+ resolution: {integrity: sha512-D98qdIOuWg4fOewIIiH1D23AtM4I7/3vLKXIL8uQz06D5ev5fsBzNp2gM7libAywTkCYy/u666xgD6PsWhrTaw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm@0.4.0:
+ resolution: {integrity: sha512-ySr5mB2ap4SzJpmVR2I5+gjzTH8NJbkg7DYPormzA2U9F4LhfvTTrD17X/k5N3Bn4b5Db6/CwSyX2qc0HrJtNA==}
+ engines: {node: '>= 20'}
+
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -542,39 +591,6 @@ packages:
serialize-javascript@6.0.0:
resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
- solana-bankrun-darwin-arm64@0.3.0:
- resolution: {integrity: sha512-+NbDncf0U6l3knuacRBiqpjZ2DSp+5lZaAU518gH7/x6qubbui/d000STaIBK+uNTPBS/AL/bCN+7PkXqmA3lA==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [darwin]
-
- solana-bankrun-darwin-universal@0.3.0:
- resolution: {integrity: sha512-1/F0xdMa4qvc5o6z16FCCbZ5jbdvKvxpx5kyPcMWRiRPwyvi+zltMxciPAYMlg3wslQqGz88uFhrBEzq2eTumQ==}
- engines: {node: '>= 10'}
- os: [darwin]
-
- solana-bankrun-darwin-x64@0.3.0:
- resolution: {integrity: sha512-U6CANjkmMl+lgNA7UH0GKs5V7LtVIUDzJBZefGGqLfqUNv3EjA/PrrToM0hAOWJgkxSwdz6zW+p5sw5FmnbXtg==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [darwin]
-
- solana-bankrun-linux-x64-gnu@0.3.0:
- resolution: {integrity: sha512-qJSkCFs0k2n4XtTnyxGMiZsuqO2TiqTYgWjQ+3mZhGNUAMys/Vq8bd7/SyBm6RR7EfVuRXRxZvh+F8oKZ77V4w==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- solana-bankrun-linux-x64-musl@0.3.0:
- resolution: {integrity: sha512-xsS2CS2xb1Sw4ivNXM0gPz/qpW9BX0neSvt/pnok5L330Nu9xlTnKAY8FhzzqOP9P9sJlGRM787Y6d0yYwt6xQ==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- solana-bankrun@0.3.0:
- resolution: {integrity: sha512-YkH7sa8TB/AoRPzG17CXJtYsRIQHEkEqGLz1Vwc13taXhDBkjO7z6NI5JYw7n0ybRymDHwMYTc7sd+5J40TyVQ==}
- engines: {node: '>= 10'}
-
source-map-support@0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
@@ -744,12 +760,12 @@ snapshots:
'@coral-xyz/anchor-errors@0.31.1': {}
- '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@coral-xyz/anchor-errors': 0.31.1
- '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))
'@noble/hashes': 1.8.0
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
bs58: 4.0.1
buffer-layout: 1.2.2
@@ -762,11 +778,12 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))':
dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
buffer-layout: 1.2.2
@@ -782,14 +799,31 @@ snapshots:
dependencies:
buffer: 6.0.3
- '@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/codecs-core@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@4.9.5)
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.3.0(typescript@4.9.5)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.2
+ typescript: 4.9.5
+
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@babel/runtime': 7.25.0
'@noble/curves': 1.4.2
'@noble/hashes': 1.4.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@4.9.5)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
bn.js: 5.2.1
borsh: 0.7.0
bs58: 4.0.1
@@ -802,6 +836,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@swc/helpers@0.5.12':
@@ -850,12 +885,6 @@ snapshots:
dependencies:
humanize-ms: 1.2.1
- anchor-bankrun@0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
- dependencies:
- '@coral-xyz/anchor': 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- solana-bankrun: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
-
ansi-colors@4.1.1: {}
ansi-regex@5.0.1: {}
@@ -883,16 +912,8 @@ snapshots:
base64-js@1.5.1: {}
- bigint-buffer@1.1.5:
- dependencies:
- bindings: 1.5.0
-
binary-extensions@2.3.0: {}
- bindings@1.5.0:
- dependencies:
- file-uri-to-path: 1.0.0
-
bn.js@5.2.1: {}
bn.js@5.2.2: {}
@@ -949,6 +970,8 @@ snapshots:
ansi-styles: 4.3.0
supports-color: 7.2.0
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -977,6 +1000,8 @@ snapshots:
color-name@1.1.4: {}
+ commander@14.0.2: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -1025,7 +1050,7 @@ snapshots:
fast-stable-stringify@1.0.0: {}
- file-uri-to-path@1.0.0: {}
+ fastestsmallesttextencoderdecoder@1.0.22: {}
fill-range@7.0.1:
dependencies:
@@ -1134,6 +1159,41 @@ snapshots:
jsonparse@1.3.1: {}
+ litesvm-darwin-arm64@0.4.0:
+ optional: true
+
+ litesvm-darwin-x64@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-musl@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-musl@0.4.0:
+ optional: true
+
+ litesvm@0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10):
+ dependencies:
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ fastestsmallesttextencoderdecoder: 1.0.22
+ optionalDependencies:
+ litesvm-darwin-arm64: 0.4.0
+ litesvm-darwin-x64: 0.4.0
+ litesvm-linux-arm64-gnu: 0.4.0
+ litesvm-linux-arm64-musl: 0.4.0
+ litesvm-linux-x64-gnu: 0.4.0
+ litesvm-linux-x64-musl: 0.4.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1258,36 +1318,6 @@ snapshots:
dependencies:
randombytes: 2.1.0
- solana-bankrun-darwin-arm64@0.3.0:
- optional: true
-
- solana-bankrun-darwin-universal@0.3.0:
- optional: true
-
- solana-bankrun-darwin-x64@0.3.0:
- optional: true
-
- solana-bankrun-linux-x64-gnu@0.3.0:
- optional: true
-
- solana-bankrun-linux-x64-musl@0.3.0:
- optional: true
-
- solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
- dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- bs58: 4.0.1
- optionalDependencies:
- solana-bankrun-darwin-arm64: 0.3.0
- solana-bankrun-darwin-universal: 0.3.0
- solana-bankrun-darwin-x64: 0.3.0
- solana-bankrun-linux-x64-gnu: 0.3.0
- solana-bankrun-linux-x64-musl: 0.3.0
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - utf-8-validate
-
source-map-support@0.5.21:
dependencies:
buffer-from: 1.1.2
diff --git a/basics/program-derived-addresses/anchor/tests/bankrun.test.ts b/basics/program-derived-addresses/anchor/tests/bankrun.test.ts
deleted file mode 100644
index d52d90af6..000000000
--- a/basics/program-derived-addresses/anchor/tests/bankrun.test.ts
+++ /dev/null
@@ -1,56 +0,0 @@
-import { describe, it } from "node:test";
-import * as anchor from "@coral-xyz/anchor";
-import { PublicKey } from "@solana/web3.js";
-import { BankrunProvider } from "anchor-bankrun";
-import { startAnchor } from "solana-bankrun";
-import type { ProgramDerivedAddressesProgram } from "../target/types/program_derived_addresses_program";
-
-import IDL from "../target/idl/program_derived_addresses_program.json" with {
- type: "json",
-};
-const PROGRAM_ID = new PublicKey(IDL.address);
-
-describe("PDAs", async () => {
- const context = await startAnchor(
- "",
- [{ name: "program_derived_addresses_program", programId: PROGRAM_ID }],
- [],
- );
- const provider = new BankrunProvider(context);
- const _client = context.banksClient;
-
- const payer = provider.wallet as anchor.Wallet;
- const program = new anchor.Program(
- IDL,
- provider,
- );
-
- // PDA for the page visits account
- const [pageVisitPDA] = PublicKey.findProgramAddressSync(
- [Buffer.from("page_visits"), payer.publicKey.toBuffer()],
- program.programId,
- );
-
- it("Create the page visits tracking PDA", async () => {
- await program.methods
- .createPageVisits()
- .accounts({
- payer: payer.publicKey,
- })
- .rpc();
- });
-
- it("Visit the page!", async () => {
- await program.methods
- .incrementPageVisits()
- .accounts({
- user: payer.publicKey,
- })
- .rpc();
- });
-
- it("View page visits", async () => {
- const pageVisits = await program.account.pageVisits.fetch(pageVisitPDA);
- console.log(`Number of page visits: ${pageVisits.pageVisits}`);
- });
-});
diff --git a/basics/program-derived-addresses/anchor/tests/litesvm.test.ts b/basics/program-derived-addresses/anchor/tests/litesvm.test.ts
new file mode 100644
index 000000000..8a6544cf7
--- /dev/null
+++ b/basics/program-derived-addresses/anchor/tests/litesvm.test.ts
@@ -0,0 +1,119 @@
+import anchor from "@coral-xyz/anchor";
+import {
+ Keypair,
+ PublicKey,
+ SystemProgram,
+ Transaction,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import { assert } from "chai";
+import { LiteSVM } from "litesvm";
+import IDL from "../target/idl/program_derived_addresses_program.json" with {
+ type: "json",
+};
+
+describe("LiteSVM: PDA", () => {
+ const svm = new LiteSVM();
+ const programId = new PublicKey(IDL.address);
+ const coder = new anchor.BorshCoder(IDL as anchor.Idl);
+
+ const payer = Keypair.generate();
+ svm.airdrop(payer.publicKey, BigInt(1000000000));
+
+ const programPath = new URL(
+ "../target/deploy/program_derived_addresses_program.so",
+ import.meta.url,
+ ).pathname;
+ svm.addProgramFromFile(programId, programPath);
+
+ // PDA for the page visits account
+ const [pageVisitPDA] = PublicKey.findProgramAddressSync(
+ [Buffer.from("page_visits"), payer.publicKey.toBuffer()],
+ programId,
+ );
+
+ it("Create the page visits tracking PDA", () => {
+ const data = coder.instruction.encode("create_page_visits", {});
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: payer.publicKey, isSigner: true, isWritable: true },
+ { pubkey: pageVisitPDA, isSigner: false, isWritable: true },
+ { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
+ ],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+ tx.sign(payer);
+ svm.sendTransaction(tx);
+
+ //Fetch the pageVisitPDA account and check it page visit count
+ const pageVisitPDAAccInfo = svm.getAccount(pageVisitPDA);
+ const pageVisitAccount = coder.accounts.decode(
+ "PageVisits",
+ Buffer.from(pageVisitPDAAccInfo.data),
+ );
+
+ assert.equal(pageVisitAccount.page_visits, 0);
+ });
+
+ it("Visit the page!", () => {
+ const data = coder.instruction.encode("increment_page_visits", {});
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: payer.publicKey, isSigner: true, isWritable: true },
+ { pubkey: pageVisitPDA, isSigner: false, isWritable: true },
+ { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
+ ],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+ tx.sign(payer);
+ svm.sendTransaction(tx);
+ svm.expireBlockhash();
+
+ //Fetch the pageVisitPDA account and check it page visit count
+ const pageVisitPDAAccInfo = svm.getAccount(pageVisitPDA);
+ const pageVisitAccount = coder.accounts.decode(
+ "PageVisits",
+ Buffer.from(pageVisitPDAAccInfo.data),
+ );
+
+ assert.equal(pageVisitAccount.page_visits, 1);
+ });
+
+ it("Again visit the page!", () => {
+ const data = coder.instruction.encode("increment_page_visits", {});
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: payer.publicKey, isSigner: true, isWritable: true },
+ { pubkey: pageVisitPDA, isSigner: false, isWritable: true },
+ { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
+ ],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+ tx.sign(payer);
+ svm.sendTransaction(tx);
+
+ //Fetch the pageVisitPDA account and check it page visit count
+ const pageVisitPDAAccInfo = svm.getAccount(pageVisitPDA);
+ const pageVisitAccount = coder.accounts.decode(
+ "PageVisits",
+ Buffer.from(pageVisitPDAAccInfo.data),
+ );
+
+ assert.equal(pageVisitAccount.page_visits, 2);
+ });
+});
diff --git a/basics/program-derived-addresses/anchor/tests/test.ts b/basics/program-derived-addresses/anchor/tests/test.ts
index 4e4e67083..57ae493da 100644
--- a/basics/program-derived-addresses/anchor/tests/test.ts
+++ b/basics/program-derived-addresses/anchor/tests/test.ts
@@ -1,8 +1,9 @@
import * as anchor from "@coral-xyz/anchor";
import { PublicKey } from "@solana/web3.js";
-import type { ProgramDerivedAddressesProgram } from "../target/types/program_derived_addresses_program";
+import { assert } from "chai";
+import type { ProgramDerivedAddressesProgram } from "../target/types/program_derived_addresses_program.ts";
-describe("PDAs", () => {
+describe("Anchor: PDAs", () => {
const provider = anchor.AnchorProvider.env();
anchor.setProvider(provider);
const payer = provider.wallet as anchor.Wallet;
@@ -22,6 +23,9 @@ describe("PDAs", () => {
payer: payer.publicKey,
})
.rpc();
+
+ const pageVisits = await program.account.pageVisits.fetch(pageVisitPDA);
+ assert.equal(pageVisits.pageVisits, 0);
});
it("Visit the page!", async () => {
@@ -31,19 +35,20 @@ describe("PDAs", () => {
user: payer.publicKey,
})
.rpc();
+
+ const pageVisits = await program.account.pageVisits.fetch(pageVisitPDA);
+ assert.equal(pageVisits.pageVisits, 1);
});
- it("Visit the page!", async () => {
+ it("Again visit the page!", async () => {
await program.methods
.incrementPageVisits()
.accounts({
user: payer.publicKey,
})
.rpc();
- });
- it("View page visits", async () => {
const pageVisits = await program.account.pageVisits.fetch(pageVisitPDA);
- console.log(`Number of page visits: ${pageVisits.pageVisits}`);
+ assert.equal(pageVisits.pageVisits, 2);
});
});
diff --git a/basics/program-derived-addresses/anchor/tsconfig.json b/basics/program-derived-addresses/anchor/tsconfig.json
index cd5d2e3d0..59fe75cf0 100644
--- a/basics/program-derived-addresses/anchor/tsconfig.json
+++ b/basics/program-derived-addresses/anchor/tsconfig.json
@@ -1,10 +1,10 @@
{
- "compilerOptions": {
- "types": ["mocha", "chai"],
- "typeRoots": ["./node_modules/@types"],
- "lib": ["es2015"],
- "module": "commonjs",
- "target": "es6",
- "esModuleInterop": true
- }
+ "compilerOptions": {
+ "types": ["mocha", "chai"],
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2015"],
+ "module": "nodenext",
+ "target": "es6",
+ "esModuleInterop": true
+ }
}
From ce3b1cf6b66d4ff1e8814791d9b3dce790b225ad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?solwarrior=20=F0=9F=97=A1=EF=B8=8F?=
<118261237+sol-warrior@users.noreply.github.com>
Date: Tue, 30 Dec 2025 08:31:36 +0530
Subject: [PATCH 18/49] Add LiteSVM tests for the Rent anchor program (#481)
* feat: add LiteSVM test for rent anchor program
* feat: enhance system account test with assertions and import updates
* chore: update dependencies in package.json and change module type in tsconfig file
- Upgrade @solana/web3.js to version 1.98.4
- Add litesvm dependency with version 0.4.0
- Update typescript version in various dependencies
- Change module type in tsconfig.json from commonjs to nodenext
* chore: remove deprecated bankrun and related stuff
---
basics/rent/anchor/package.json | 5 +-
basics/rent/anchor/pnpm-lock.yaml | 256 +++++++++++++----------
basics/rent/anchor/tests/bankrun.test.ts | 48 -----
basics/rent/anchor/tests/litesvm.test.ts | 74 +++++++
basics/rent/anchor/tests/test.ts | 12 +-
basics/rent/anchor/tsconfig.json | 17 +-
6 files changed, 236 insertions(+), 176 deletions(-)
delete mode 100644 basics/rent/anchor/tests/bankrun.test.ts
create mode 100644 basics/rent/anchor/tests/litesvm.test.ts
diff --git a/basics/rent/anchor/package.json b/basics/rent/anchor/package.json
index 7865c8c24..9d86fae3d 100644
--- a/basics/rent/anchor/package.json
+++ b/basics/rent/anchor/package.json
@@ -2,16 +2,15 @@
"type": "module",
"dependencies": {
"@coral-xyz/anchor": "0.32.1",
- "@solana/web3.js": "^1.95.2"
+ "@solana/web3.js": "^1.98.4",
+ "litesvm": "^0.4.0"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
"@types/chai": "^4.3.0",
"@types/mocha": "^9.0.0",
- "anchor-bankrun": "^0.4.0",
"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/rent/anchor/pnpm-lock.yaml b/basics/rent/anchor/pnpm-lock.yaml
index 825446a90..192b078b9 100644
--- a/basics/rent/anchor/pnpm-lock.yaml
+++ b/basics/rent/anchor/pnpm-lock.yaml
@@ -10,10 +10,13 @@ importers:
dependencies:
'@coral-xyz/anchor':
specifier: 0.32.1
- version: 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.95.2
- version: 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ litesvm:
+ specifier: ^0.4.0
+ version: 0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
devDependencies:
'@types/bn.js':
specifier: ^5.1.0
@@ -24,18 +27,12 @@ importers:
'@types/mocha':
specifier: ^9.0.0
version: 9.1.1
- anchor-bankrun:
- specifier: ^0.4.0
- version: 0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
chai:
specifier: ^4.3.4
version: 4.4.1
mocha:
specifier: ^9.0.3
version: 9.2.2
- solana-bankrun:
- specifier: ^0.3.0
- version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
ts-mocha:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
@@ -78,8 +75,27 @@ packages:
resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
engines: {node: '>=5.10'}
- '@solana/web3.js@1.95.2':
- resolution: {integrity: sha512-SjlHp0G4qhuhkQQc+YXdGkI8EerCqwxvgytMgBpzMUQTafrkNant3e7pgilBGgjy/iM40ICvWBLgASTPMrQU7w==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
'@swc/helpers@0.5.12':
resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==}
@@ -125,14 +141,6 @@ packages:
resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
engines: {node: '>= 8.0.0'}
- anchor-bankrun@0.4.0:
- resolution: {integrity: sha512-s+K7E0IGAlmkhuo8nbiqVsQf2yJ+3l9GjNQJSmkRDe25dQj4Yef9rJh77FH6EQ5H6yQYfzuhgm/5GD6JMjdTZg==}
- engines: {node: '>= 10'}
- peerDependencies:
- '@coral-xyz/anchor': ^0.30.0
- '@solana/web3.js': ^1.78.4
- solana-bankrun: ^0.2.0
-
ansi-colors@4.1.1:
resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
engines: {node: '>=6'}
@@ -168,17 +176,10 @@ packages:
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- bigint-buffer@1.1.5:
- resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==}
- engines: {node: '>= 10.0.0'}
-
binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
- bindings@1.5.0:
- resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
-
bn.js@5.2.1:
resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==}
@@ -227,6 +228,10 @@ packages:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -244,6 +249,10 @@ packages:
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ 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==}
@@ -312,8 +321,8 @@ packages:
fast-stable-stringify@1.0.0:
resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
- file-uri-to-path@1.0.0:
- resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
+ fastestsmallesttextencoderdecoder@1.0.22:
+ resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
@@ -429,6 +438,46 @@ packages:
resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
engines: {'0': node >= 0.2.0}
+ litesvm-darwin-arm64@0.4.0:
+ resolution: {integrity: sha512-LN6iZcUQ6Xi5KO/7yJBYSALjjDCI/s/s2PgV3BqM4dpeBaLz+fXX/+qgMcBgpEVgEdEmhelux+WtAMkbEzJfrA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [darwin]
+
+ litesvm-darwin-x64@0.4.0:
+ resolution: {integrity: sha512-3ltogKQdle8LbakVqoB6plxaNwp6Vb3tnkqa3G5mAvvZNorB2iumThDaTZ381Knl69t566LZm+g/VDZwYfsfhA==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [darwin]
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ resolution: {integrity: sha512-SWlcRUqkXCMgLoDX/Wqr/S1lff+ggVI9f0YrRJMraxtEyApxutAoW2AWw4tvo6DsEgNwjxgsZOAwnE6bQBv8CA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-arm64-musl@0.4.0:
+ resolution: {integrity: sha512-YMMqwEWJUSWwL0Rwp8dFwl3jvgNU21eI7Qc+BpH9u2yeIRYQTn3rNGDnsK8v3QIZPHQdMo7NrPhzk4XoB1aKPg==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-x64-gnu@0.4.0:
+ resolution: {integrity: sha512-brZ3tFABDVQEYCgci7AO8iVYLw10UXVo97/lpTy75bTzNoqkggg8wFQOrbgCdb9NRwt06Y4Zf8cpIZAoDQq2mw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm-linux-x64-musl@0.4.0:
+ resolution: {integrity: sha512-D98qdIOuWg4fOewIIiH1D23AtM4I7/3vLKXIL8uQz06D5ev5fsBzNp2gM7libAywTkCYy/u666xgD6PsWhrTaw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm@0.4.0:
+ resolution: {integrity: sha512-ySr5mB2ap4SzJpmVR2I5+gjzTH8NJbkg7DYPormzA2U9F4LhfvTTrD17X/k5N3Bn4b5Db6/CwSyX2qc0HrJtNA==}
+ engines: {node: '>= 20'}
+
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -542,39 +591,6 @@ packages:
serialize-javascript@6.0.0:
resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
- solana-bankrun-darwin-arm64@0.3.0:
- resolution: {integrity: sha512-+NbDncf0U6l3knuacRBiqpjZ2DSp+5lZaAU518gH7/x6qubbui/d000STaIBK+uNTPBS/AL/bCN+7PkXqmA3lA==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [darwin]
-
- solana-bankrun-darwin-universal@0.3.0:
- resolution: {integrity: sha512-1/F0xdMa4qvc5o6z16FCCbZ5jbdvKvxpx5kyPcMWRiRPwyvi+zltMxciPAYMlg3wslQqGz88uFhrBEzq2eTumQ==}
- engines: {node: '>= 10'}
- os: [darwin]
-
- solana-bankrun-darwin-x64@0.3.0:
- resolution: {integrity: sha512-U6CANjkmMl+lgNA7UH0GKs5V7LtVIUDzJBZefGGqLfqUNv3EjA/PrrToM0hAOWJgkxSwdz6zW+p5sw5FmnbXtg==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [darwin]
-
- solana-bankrun-linux-x64-gnu@0.3.0:
- resolution: {integrity: sha512-qJSkCFs0k2n4XtTnyxGMiZsuqO2TiqTYgWjQ+3mZhGNUAMys/Vq8bd7/SyBm6RR7EfVuRXRxZvh+F8oKZ77V4w==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- solana-bankrun-linux-x64-musl@0.3.0:
- resolution: {integrity: sha512-xsS2CS2xb1Sw4ivNXM0gPz/qpW9BX0neSvt/pnok5L330Nu9xlTnKAY8FhzzqOP9P9sJlGRM787Y6d0yYwt6xQ==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- solana-bankrun@0.3.0:
- resolution: {integrity: sha512-YkH7sa8TB/AoRPzG17CXJtYsRIQHEkEqGLz1Vwc13taXhDBkjO7z6NI5JYw7n0ybRymDHwMYTc7sd+5J40TyVQ==}
- engines: {node: '>= 10'}
-
source-map-support@0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
@@ -744,12 +760,12 @@ snapshots:
'@coral-xyz/anchor-errors@0.31.1': {}
- '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@coral-xyz/anchor-errors': 0.31.1
- '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))
'@noble/hashes': 1.8.0
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
bs58: 4.0.1
buffer-layout: 1.2.2
@@ -762,11 +778,12 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))':
dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
buffer-layout: 1.2.2
@@ -782,14 +799,31 @@ snapshots:
dependencies:
buffer: 6.0.3
- '@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/codecs-core@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@4.9.5)
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.3.0(typescript@4.9.5)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.2
+ typescript: 4.9.5
+
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@babel/runtime': 7.25.0
'@noble/curves': 1.5.0
'@noble/hashes': 1.4.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@4.9.5)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
bn.js: 5.2.1
borsh: 0.7.0
bs58: 4.0.1
@@ -802,6 +836,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@swc/helpers@0.5.12':
@@ -850,12 +885,6 @@ snapshots:
dependencies:
humanize-ms: 1.2.1
- anchor-bankrun@0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
- dependencies:
- '@coral-xyz/anchor': 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- solana-bankrun: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
-
ansi-colors@4.1.1: {}
ansi-regex@5.0.1: {}
@@ -883,16 +912,8 @@ snapshots:
base64-js@1.5.1: {}
- bigint-buffer@1.1.5:
- dependencies:
- bindings: 1.5.0
-
binary-extensions@2.3.0: {}
- bindings@1.5.0:
- dependencies:
- file-uri-to-path: 1.0.0
-
bn.js@5.2.1: {}
bn.js@5.2.2: {}
@@ -949,6 +970,8 @@ snapshots:
ansi-styles: 4.3.0
supports-color: 7.2.0
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -977,6 +1000,8 @@ snapshots:
color-name@1.1.4: {}
+ commander@14.0.2: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -1025,7 +1050,7 @@ snapshots:
fast-stable-stringify@1.0.0: {}
- file-uri-to-path@1.0.0: {}
+ fastestsmallesttextencoderdecoder@1.0.22: {}
fill-range@7.0.1:
dependencies:
@@ -1134,6 +1159,41 @@ snapshots:
jsonparse@1.3.1: {}
+ litesvm-darwin-arm64@0.4.0:
+ optional: true
+
+ litesvm-darwin-x64@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-musl@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-musl@0.4.0:
+ optional: true
+
+ litesvm@0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10):
+ dependencies:
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ fastestsmallesttextencoderdecoder: 1.0.22
+ optionalDependencies:
+ litesvm-darwin-arm64: 0.4.0
+ litesvm-darwin-x64: 0.4.0
+ litesvm-linux-arm64-gnu: 0.4.0
+ litesvm-linux-arm64-musl: 0.4.0
+ litesvm-linux-x64-gnu: 0.4.0
+ litesvm-linux-x64-musl: 0.4.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1258,36 +1318,6 @@ snapshots:
dependencies:
randombytes: 2.1.0
- solana-bankrun-darwin-arm64@0.3.0:
- optional: true
-
- solana-bankrun-darwin-universal@0.3.0:
- optional: true
-
- solana-bankrun-darwin-x64@0.3.0:
- optional: true
-
- solana-bankrun-linux-x64-gnu@0.3.0:
- optional: true
-
- solana-bankrun-linux-x64-musl@0.3.0:
- optional: true
-
- solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
- dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- bs58: 4.0.1
- optionalDependencies:
- solana-bankrun-darwin-arm64: 0.3.0
- solana-bankrun-darwin-universal: 0.3.0
- solana-bankrun-darwin-x64: 0.3.0
- solana-bankrun-linux-x64-gnu: 0.3.0
- solana-bankrun-linux-x64-musl: 0.3.0
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - utf-8-validate
-
source-map-support@0.5.21:
dependencies:
buffer-from: 1.1.2
diff --git a/basics/rent/anchor/tests/bankrun.test.ts b/basics/rent/anchor/tests/bankrun.test.ts
deleted file mode 100644
index 936527f2a..000000000
--- a/basics/rent/anchor/tests/bankrun.test.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-import { describe, it } from "node:test";
-import * as anchor from "@coral-xyz/anchor";
-import { PublicKey } from "@solana/web3.js";
-import { BankrunProvider } from "anchor-bankrun";
-import { startAnchor } from "solana-bankrun";
-import Idl from "../target/idl/rent_example.json" with { type: "json" };
-import type { RentExample } from "../target/types/rent_example";
-
-import IDL from "../target/idl/rent_example.json" with { type: "json" };
-const PROGRAM_ID = new PublicKey(IDL.address);
-
-describe("Bankrun example", async () => {
- const context = await startAnchor(
- "",
- [{ name: "rent_example", programId: PROGRAM_ID }],
- [],
- );
- const provider = new BankrunProvider(context);
-
- const wallet = provider.wallet as anchor.Wallet;
- const program = new anchor.Program(IDL, provider);
-
- it("Create the account", async () => {
- const newKeypair = anchor.web3.Keypair.generate();
-
- const addressData: anchor.IdlTypes["addressData"] = {
- name: "Marcus",
- address: "123 Main St. San Francisco, CA",
- };
-
- // We're just going to serialize our object here so we can check
- // the size on the client side against the program logs
- //
- const addressDataBuffer = new anchor.BorshCoder(
- Idl as anchor.Idl,
- ).types.encode("AddressData", addressData);
- console.log(`Address data buffer length: ${addressDataBuffer.length}`);
-
- await program.methods
- .createSystemAccount(addressData)
- .accounts({
- payer: wallet.publicKey,
- newAccount: newKeypair.publicKey,
- })
- .signers([wallet.payer, newKeypair])
- .rpc();
- });
-});
diff --git a/basics/rent/anchor/tests/litesvm.test.ts b/basics/rent/anchor/tests/litesvm.test.ts
new file mode 100644
index 000000000..eb9dcbe30
--- /dev/null
+++ b/basics/rent/anchor/tests/litesvm.test.ts
@@ -0,0 +1,74 @@
+import anchor from "@coral-xyz/anchor";
+import {
+ Keypair,
+ LAMPORTS_PER_SOL,
+ PublicKey,
+ SystemProgram,
+ Transaction,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import { assert } from "chai";
+import { LiteSVM } from "litesvm";
+import Idl from "../target/idl/rent_example.json" with { type: "json" };
+
+describe("LiteSVM: Create a system account", () => {
+ const svm = new LiteSVM();
+ const programId = new PublicKey(Idl.address);
+ const coder = new anchor.BorshCoder(Idl as anchor.Idl);
+
+ const payer = Keypair.generate();
+ svm.airdrop(payer.publicKey, BigInt(2 * LAMPORTS_PER_SOL));
+
+ const programPath = new URL(
+ "../target/deploy/rent_example.so",
+ import.meta.url,
+ ).pathname;
+ svm.addProgramFromFile(programId, programPath);
+
+ it("Create the account", () => {
+ const newKeypair = Keypair.generate();
+
+ const ixArgs = {
+ address_data: {
+ name: "Marcus",
+ address: "123 Main St. San Francisco, CA",
+ },
+ };
+
+ /**
+ * Create Instructions
+ * Create Transactions
+ * Send Transactions
+ */
+ const data = coder.instruction.encode("create_system_account", ixArgs);
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: payer.publicKey, isSigner: true, isWritable: true },
+ { pubkey: newKeypair.publicKey, isSigner: true, isWritable: true },
+ { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
+ ],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+ tx.sign(payer, newKeypair);
+ svm.sendTransaction(tx);
+
+ /**
+ * We're just going to serialize our object here so we can check
+ * the size on the client side against the program logs
+ */
+ const addressDataBuffer = coder.types.encode(
+ "AddressData",
+ ixArgs.address_data,
+ );
+
+ //Fetch newKeypair account and check its rent for space
+ const newKeypairInfo = svm.getAccount(newKeypair.publicKey);
+
+ assert.equal(newKeypairInfo.data.length, addressDataBuffer.length);
+ });
+});
diff --git a/basics/rent/anchor/tests/test.ts b/basics/rent/anchor/tests/test.ts
index 13ac683c7..26362b30a 100644
--- a/basics/rent/anchor/tests/test.ts
+++ b/basics/rent/anchor/tests/test.ts
@@ -1,8 +1,9 @@
import * as anchor from "@coral-xyz/anchor";
+import { assert } from "chai";
import Idl from "../target/idl/rent_example.json" with { type: "json" };
-import type { RentExample } from "../target/types/rent_example";
+import type { RentExample } from "../target/types/rent_example.ts";
-describe("Create a system account", () => {
+describe("Anchor: Create a system account", () => {
const provider = anchor.AnchorProvider.env();
anchor.setProvider(provider);
const wallet = provider.wallet as anchor.Wallet;
@@ -22,7 +23,6 @@ describe("Create a system account", () => {
const addressDataBuffer = new anchor.BorshCoder(
Idl as anchor.Idl,
).types.encode("AddressData", addressData);
- console.log(`Address data buffer length: ${addressDataBuffer.length}`);
await program.methods
.createSystemAccount(addressData)
@@ -32,5 +32,11 @@ describe("Create a system account", () => {
})
.signers([wallet.payer, newKeypair])
.rpc();
+
+ const newKeypairInfo = await provider.connection.getAccountInfo(
+ newKeypair.publicKey,
+ );
+
+ assert.equal(newKeypairInfo.data.length, addressDataBuffer.length);
});
});
diff --git a/basics/rent/anchor/tsconfig.json b/basics/rent/anchor/tsconfig.json
index 6df5e93b2..59fe75cf0 100644
--- a/basics/rent/anchor/tsconfig.json
+++ b/basics/rent/anchor/tsconfig.json
@@ -1,11 +1,10 @@
{
- "compilerOptions": {
- "types": ["mocha", "chai"],
- "typeRoots": ["./node_modules/@types"],
- "lib": ["es2015"],
- "module": "commonjs",
- "target": "es6",
- "resolveJsonModule": true,
- "esModuleInterop": true
- }
+ "compilerOptions": {
+ "types": ["mocha", "chai"],
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2015"],
+ "module": "nodenext",
+ "target": "es6",
+ "esModuleInterop": true
+ }
}
From dad9c31a8464be5588f2d99c8e74e6e7b02d79a8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?solwarrior=20=F0=9F=97=A1=EF=B8=8F?=
<118261237+sol-warrior@users.noreply.github.com>
Date: Tue, 30 Dec 2025 08:31:50 +0530
Subject: [PATCH 19/49] Add LiteSVM tests for the Realloc anchor program (#480)
* feat: add LiteSVM integration and enhance anchor realloc tests
* Update anchor-realloc test descriptions for clarity
* Remove unnecessary console logs from anchor-realloc tests
* Introduce new LiteSVM test for realloc functionality, validating initialization and updates of message accounts
* chore: update dependencies and TypeScript module resolution
* Upgrade @solana/web3.js to version 1.98.4
* Add litesvm dependency at version 0.4.0
* Change TypeScript module resolution from commonjs to nodenext in tsconfig.json
* Update pnpm-lock.yaml to reflect new dependency versions and resolutions
* chore: remove deprecated bankrun and related stuff
* chore: rename the filename for consistency
---
basics/realloc/anchor/package.json | 5 +-
basics/realloc/anchor/pnpm-lock.yaml | 256 ++++++++++--------
basics/realloc/anchor/tests/anchor-realloc.ts | 75 -----
basics/realloc/anchor/tests/bankrun.test.ts | 82 ------
basics/realloc/anchor/tests/litesvm.test.ts | 125 +++++++++
basics/realloc/anchor/tests/test.ts | 72 +++++
basics/realloc/anchor/tsconfig.json | 16 +-
7 files changed, 350 insertions(+), 281 deletions(-)
delete mode 100644 basics/realloc/anchor/tests/anchor-realloc.ts
delete mode 100644 basics/realloc/anchor/tests/bankrun.test.ts
create mode 100644 basics/realloc/anchor/tests/litesvm.test.ts
create mode 100644 basics/realloc/anchor/tests/test.ts
diff --git a/basics/realloc/anchor/package.json b/basics/realloc/anchor/package.json
index 5fe05402d..974de97a3 100644
--- a/basics/realloc/anchor/package.json
+++ b/basics/realloc/anchor/package.json
@@ -6,17 +6,16 @@
},
"dependencies": {
"@coral-xyz/anchor": "0.32.1",
- "@solana/web3.js": "^1.95.2"
+ "@solana/web3.js": "^1.98.4",
+ "litesvm": "^0.4.0"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
"@types/chai": "^4.3.0",
"@types/mocha": "^9.0.0",
- "anchor-bankrun": "^0.4.0",
"chai": "^4.4.1",
"mocha": "^9.0.3",
"prettier": "^2.6.2",
- "solana-bankrun": "^0.3.0",
"ts-mocha": "^10.0.0",
"typescript": "^4.3.5"
}
diff --git a/basics/realloc/anchor/pnpm-lock.yaml b/basics/realloc/anchor/pnpm-lock.yaml
index 0c706ae5d..82ee72541 100644
--- a/basics/realloc/anchor/pnpm-lock.yaml
+++ b/basics/realloc/anchor/pnpm-lock.yaml
@@ -10,10 +10,13 @@ importers:
dependencies:
'@coral-xyz/anchor':
specifier: 0.32.1
- version: 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.95.2
- version: 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ litesvm:
+ specifier: ^0.4.0
+ version: 0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
devDependencies:
'@types/bn.js':
specifier: ^5.1.0
@@ -24,9 +27,6 @@ importers:
'@types/mocha':
specifier: ^9.0.0
version: 9.1.1
- anchor-bankrun:
- specifier: ^0.4.0
- version: 0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
chai:
specifier: ^4.4.1
version: 4.4.1
@@ -36,9 +36,6 @@ importers:
prettier:
specifier: ^2.6.2
version: 2.8.8
- solana-bankrun:
- specifier: ^0.3.0
- version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
ts-mocha:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
@@ -81,8 +78,27 @@ packages:
resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
engines: {node: '>=5.10'}
- '@solana/web3.js@1.95.2':
- resolution: {integrity: sha512-SjlHp0G4qhuhkQQc+YXdGkI8EerCqwxvgytMgBpzMUQTafrkNant3e7pgilBGgjy/iM40ICvWBLgASTPMrQU7w==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
'@swc/helpers@0.5.12':
resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==}
@@ -128,14 +144,6 @@ packages:
resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
engines: {node: '>= 8.0.0'}
- anchor-bankrun@0.4.0:
- resolution: {integrity: sha512-s+K7E0IGAlmkhuo8nbiqVsQf2yJ+3l9GjNQJSmkRDe25dQj4Yef9rJh77FH6EQ5H6yQYfzuhgm/5GD6JMjdTZg==}
- engines: {node: '>= 10'}
- peerDependencies:
- '@coral-xyz/anchor': ^0.30.0
- '@solana/web3.js': ^1.78.4
- solana-bankrun: ^0.2.0
-
ansi-colors@4.1.1:
resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
engines: {node: '>=6'}
@@ -171,17 +179,10 @@ packages:
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- bigint-buffer@1.1.5:
- resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==}
- engines: {node: '>= 10.0.0'}
-
binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
- bindings@1.5.0:
- resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
-
bn.js@5.2.1:
resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==}
@@ -230,6 +231,10 @@ packages:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -247,6 +252,10 @@ packages:
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ 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==}
@@ -315,8 +324,8 @@ packages:
fast-stable-stringify@1.0.0:
resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
- file-uri-to-path@1.0.0:
- resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
+ fastestsmallesttextencoderdecoder@1.0.22:
+ resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
@@ -432,6 +441,46 @@ packages:
resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
engines: {'0': node >= 0.2.0}
+ litesvm-darwin-arm64@0.4.0:
+ resolution: {integrity: sha512-LN6iZcUQ6Xi5KO/7yJBYSALjjDCI/s/s2PgV3BqM4dpeBaLz+fXX/+qgMcBgpEVgEdEmhelux+WtAMkbEzJfrA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [darwin]
+
+ litesvm-darwin-x64@0.4.0:
+ resolution: {integrity: sha512-3ltogKQdle8LbakVqoB6plxaNwp6Vb3tnkqa3G5mAvvZNorB2iumThDaTZ381Knl69t566LZm+g/VDZwYfsfhA==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [darwin]
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ resolution: {integrity: sha512-SWlcRUqkXCMgLoDX/Wqr/S1lff+ggVI9f0YrRJMraxtEyApxutAoW2AWw4tvo6DsEgNwjxgsZOAwnE6bQBv8CA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-arm64-musl@0.4.0:
+ resolution: {integrity: sha512-YMMqwEWJUSWwL0Rwp8dFwl3jvgNU21eI7Qc+BpH9u2yeIRYQTn3rNGDnsK8v3QIZPHQdMo7NrPhzk4XoB1aKPg==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-x64-gnu@0.4.0:
+ resolution: {integrity: sha512-brZ3tFABDVQEYCgci7AO8iVYLw10UXVo97/lpTy75bTzNoqkggg8wFQOrbgCdb9NRwt06Y4Zf8cpIZAoDQq2mw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm-linux-x64-musl@0.4.0:
+ resolution: {integrity: sha512-D98qdIOuWg4fOewIIiH1D23AtM4I7/3vLKXIL8uQz06D5ev5fsBzNp2gM7libAywTkCYy/u666xgD6PsWhrTaw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm@0.4.0:
+ resolution: {integrity: sha512-ySr5mB2ap4SzJpmVR2I5+gjzTH8NJbkg7DYPormzA2U9F4LhfvTTrD17X/k5N3Bn4b5Db6/CwSyX2qc0HrJtNA==}
+ engines: {node: '>= 20'}
+
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -550,39 +599,6 @@ packages:
serialize-javascript@6.0.0:
resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
- solana-bankrun-darwin-arm64@0.3.0:
- resolution: {integrity: sha512-+NbDncf0U6l3knuacRBiqpjZ2DSp+5lZaAU518gH7/x6qubbui/d000STaIBK+uNTPBS/AL/bCN+7PkXqmA3lA==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [darwin]
-
- solana-bankrun-darwin-universal@0.3.0:
- resolution: {integrity: sha512-1/F0xdMa4qvc5o6z16FCCbZ5jbdvKvxpx5kyPcMWRiRPwyvi+zltMxciPAYMlg3wslQqGz88uFhrBEzq2eTumQ==}
- engines: {node: '>= 10'}
- os: [darwin]
-
- solana-bankrun-darwin-x64@0.3.0:
- resolution: {integrity: sha512-U6CANjkmMl+lgNA7UH0GKs5V7LtVIUDzJBZefGGqLfqUNv3EjA/PrrToM0hAOWJgkxSwdz6zW+p5sw5FmnbXtg==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [darwin]
-
- solana-bankrun-linux-x64-gnu@0.3.0:
- resolution: {integrity: sha512-qJSkCFs0k2n4XtTnyxGMiZsuqO2TiqTYgWjQ+3mZhGNUAMys/Vq8bd7/SyBm6RR7EfVuRXRxZvh+F8oKZ77V4w==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- solana-bankrun-linux-x64-musl@0.3.0:
- resolution: {integrity: sha512-xsS2CS2xb1Sw4ivNXM0gPz/qpW9BX0neSvt/pnok5L330Nu9xlTnKAY8FhzzqOP9P9sJlGRM787Y6d0yYwt6xQ==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- solana-bankrun@0.3.0:
- resolution: {integrity: sha512-YkH7sa8TB/AoRPzG17CXJtYsRIQHEkEqGLz1Vwc13taXhDBkjO7z6NI5JYw7n0ybRymDHwMYTc7sd+5J40TyVQ==}
- engines: {node: '>= 10'}
-
source-map-support@0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
@@ -752,12 +768,12 @@ snapshots:
'@coral-xyz/anchor-errors@0.31.1': {}
- '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@coral-xyz/anchor-errors': 0.31.1
- '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))
'@noble/hashes': 1.8.0
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
bs58: 4.0.1
buffer-layout: 1.2.2
@@ -770,11 +786,12 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))':
dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
buffer-layout: 1.2.2
@@ -790,14 +807,31 @@ snapshots:
dependencies:
buffer: 6.0.3
- '@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/codecs-core@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@4.9.5)
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.3.0(typescript@4.9.5)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.2
+ typescript: 4.9.5
+
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@babel/runtime': 7.25.0
'@noble/curves': 1.5.0
'@noble/hashes': 1.4.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@4.9.5)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
bn.js: 5.2.1
borsh: 0.7.0
bs58: 4.0.1
@@ -810,6 +844,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@swc/helpers@0.5.12':
@@ -858,12 +893,6 @@ snapshots:
dependencies:
humanize-ms: 1.2.1
- anchor-bankrun@0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
- dependencies:
- '@coral-xyz/anchor': 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- solana-bankrun: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
-
ansi-colors@4.1.1: {}
ansi-regex@5.0.1: {}
@@ -891,16 +920,8 @@ snapshots:
base64-js@1.5.1: {}
- bigint-buffer@1.1.5:
- dependencies:
- bindings: 1.5.0
-
binary-extensions@2.3.0: {}
- bindings@1.5.0:
- dependencies:
- file-uri-to-path: 1.0.0
-
bn.js@5.2.1: {}
bn.js@5.2.2: {}
@@ -957,6 +978,8 @@ snapshots:
ansi-styles: 4.3.0
supports-color: 7.2.0
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -985,6 +1008,8 @@ snapshots:
color-name@1.1.4: {}
+ commander@14.0.2: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -1033,7 +1058,7 @@ snapshots:
fast-stable-stringify@1.0.0: {}
- file-uri-to-path@1.0.0: {}
+ fastestsmallesttextencoderdecoder@1.0.22: {}
fill-range@7.0.1:
dependencies:
@@ -1142,6 +1167,41 @@ snapshots:
jsonparse@1.3.1: {}
+ litesvm-darwin-arm64@0.4.0:
+ optional: true
+
+ litesvm-darwin-x64@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-musl@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-musl@0.4.0:
+ optional: true
+
+ litesvm@0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10):
+ dependencies:
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ fastestsmallesttextencoderdecoder: 1.0.22
+ optionalDependencies:
+ litesvm-darwin-arm64: 0.4.0
+ litesvm-darwin-x64: 0.4.0
+ litesvm-linux-arm64-gnu: 0.4.0
+ litesvm-linux-arm64-musl: 0.4.0
+ litesvm-linux-x64-gnu: 0.4.0
+ litesvm-linux-x64-musl: 0.4.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1268,36 +1328,6 @@ snapshots:
dependencies:
randombytes: 2.1.0
- solana-bankrun-darwin-arm64@0.3.0:
- optional: true
-
- solana-bankrun-darwin-universal@0.3.0:
- optional: true
-
- solana-bankrun-darwin-x64@0.3.0:
- optional: true
-
- solana-bankrun-linux-x64-gnu@0.3.0:
- optional: true
-
- solana-bankrun-linux-x64-musl@0.3.0:
- optional: true
-
- solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
- dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- bs58: 4.0.1
- optionalDependencies:
- solana-bankrun-darwin-arm64: 0.3.0
- solana-bankrun-darwin-universal: 0.3.0
- solana-bankrun-darwin-x64: 0.3.0
- solana-bankrun-linux-x64-gnu: 0.3.0
- solana-bankrun-linux-x64-musl: 0.3.0
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - utf-8-validate
-
source-map-support@0.5.21:
dependencies:
buffer-from: 1.1.2
diff --git a/basics/realloc/anchor/tests/anchor-realloc.ts b/basics/realloc/anchor/tests/anchor-realloc.ts
deleted file mode 100644
index b8a577b99..000000000
--- a/basics/realloc/anchor/tests/anchor-realloc.ts
+++ /dev/null
@@ -1,75 +0,0 @@
-import type { Program } from '@coral-xyz/anchor';
-import * as anchor from '@coral-xyz/anchor';
-import { Keypair } from '@solana/web3.js';
-import { assert } from 'chai';
-import type { AnchorRealloc } from '../target/types/anchor_realloc';
-
-describe('anchor-realloc', () => {
- // Configure the client to use the local cluster.
- const provider = anchor.AnchorProvider.env();
- anchor.setProvider(provider);
- const payer = provider.wallet as anchor.Wallet;
- const connection = provider.connection;
-
- const program = anchor.workspace.AnchorRealloc as Program;
-
- const messageAccount = new Keypair();
-
- // helper function to check the account data and message
- async function checkAccount(publicKey, expectedMessage) {
- const accountInfo = await connection.getAccountInfo(publicKey);
- const accountData = await program.account.message.fetch(publicKey);
-
- // 8 bytes for the discriminator,
- // 4 bytes for the length of the message,
- // and the length of the message
- assert.equal(accountInfo.data.length, 8 + 4 + expectedMessage.length);
- assert.equal(accountData.message, expectedMessage);
-
- console.log(`Account Data Length: ${accountInfo.data.length}`);
- console.log(`Message: ${accountData.message}`);
- }
-
- it('Is initialized!', async () => {
- const input = 'hello';
-
- await program.methods
- .initialize(input)
- .accounts({
- payer: payer.publicKey,
- messageAccount: messageAccount.publicKey,
- })
- .signers([messageAccount])
- .rpc();
-
- await checkAccount(messageAccount.publicKey, input);
- });
-
- it('Update', async () => {
- const input = 'hello world';
-
- await program.methods
- .update(input)
- .accounts({
- payer: payer.publicKey,
- messageAccount: messageAccount.publicKey,
- })
- .rpc();
-
- await checkAccount(messageAccount.publicKey, input);
- });
-
- it('Update', async () => {
- const input = 'hi';
-
- await program.methods
- .update(input)
- .accounts({
- payer: payer.publicKey,
- messageAccount: messageAccount.publicKey,
- })
- .rpc();
-
- await checkAccount(messageAccount.publicKey, input);
- });
-});
diff --git a/basics/realloc/anchor/tests/bankrun.test.ts b/basics/realloc/anchor/tests/bankrun.test.ts
deleted file mode 100644
index 966a73a2e..000000000
--- a/basics/realloc/anchor/tests/bankrun.test.ts
+++ /dev/null
@@ -1,82 +0,0 @@
-import { describe, it } from "node:test";
-import * as anchor from "@coral-xyz/anchor";
-import { Keypair, PublicKey } from "@solana/web3.js";
-import { BankrunProvider } from "anchor-bankrun";
-import { assert } from "chai";
-import { startAnchor } from "solana-bankrun";
-import type { AnchorRealloc } from "../target/types/anchor_realloc";
-
-import IDL from "../target/idl/anchor_realloc.json" with { type: "json" };
-const PROGRAM_ID = new PublicKey(IDL.address);
-
-describe("anchor-realloc", async () => {
- const context = await startAnchor(
- "",
- [{ name: "anchor_realloc", programId: PROGRAM_ID }],
- [],
- );
- const provider = new BankrunProvider(context);
- const connection = provider.connection;
- const payer = provider.wallet as anchor.Wallet;
- const program = new anchor.Program(IDL, provider);
-
- const messageAccount = new Keypair();
-
- // helper function to check the account data and message
- async function checkAccount(publicKey: PublicKey, expectedMessage: string) {
- const accountInfo = await connection.getAccountInfo(publicKey);
- const accountData = await program.account.message.fetch(publicKey);
-
- // 8 bytes for the discriminator,
- // 4 bytes for the length of the message,
- // and the length of the message
- assert.equal(accountInfo.data.length, 8 + 4 + expectedMessage.length);
- assert.equal(accountData.message, expectedMessage);
-
- console.log(`Account Data Length: ${accountInfo.data.length}`);
- console.log(`Message: ${accountData.message}`);
- }
-
- it("Is initialized!", async () => {
- const input = "hello";
-
- await program.methods
- .initialize(input)
- .accounts({
- payer: payer.publicKey,
- messageAccount: messageAccount.publicKey,
- })
- .signers([messageAccount])
- .rpc();
-
- await checkAccount(messageAccount.publicKey, input);
- });
-
- it("Update", async () => {
- const input = "hello world";
-
- await program.methods
- .update(input)
- .accounts({
- payer: payer.publicKey,
- messageAccount: messageAccount.publicKey,
- })
- .rpc();
-
- await checkAccount(messageAccount.publicKey, input);
- });
-
- it("Update", async () => {
- const input = "hi";
-
- await program.methods
- .update(input)
- .accounts({
- payer: payer.publicKey,
- messageAccount: messageAccount.publicKey,
- })
- .rpc();
-
- await checkAccount(messageAccount.publicKey, input);
- });
-});
diff --git a/basics/realloc/anchor/tests/litesvm.test.ts b/basics/realloc/anchor/tests/litesvm.test.ts
new file mode 100644
index 000000000..f974526a4
--- /dev/null
+++ b/basics/realloc/anchor/tests/litesvm.test.ts
@@ -0,0 +1,125 @@
+import anchor from "@coral-xyz/anchor";
+import {
+ Keypair,
+ PublicKey,
+ SystemProgram,
+ Transaction,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import { assert } from "chai";
+import { LiteSVM } from "litesvm";
+import IDL from "../target/idl/anchor_realloc.json" with { type: "json" };
+
+describe("LiteSVM: realloc", () => {
+ const svm = new LiteSVM();
+ const programId = new PublicKey(IDL.address);
+ const coder = new anchor.BorshCoder(IDL as anchor.Idl);
+
+ const payer = Keypair.generate();
+ svm.airdrop(payer.publicKey, BigInt(1000000000));
+
+ const programPath = new URL(
+ "../target/deploy/anchor_realloc.so",
+ import.meta.url,
+ ).pathname;
+ svm.addProgramFromFile(programId, programPath);
+
+ // PDA for the message account
+ const messageAccount = new Keypair();
+
+ it("Is initialized!", () => {
+ const message = "hello";
+ const data = coder.instruction.encode("initialize", {
+ input: message,
+ });
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: payer.publicKey, isSigner: true, isWritable: true },
+ { pubkey: messageAccount.publicKey, isSigner: true, isWritable: true },
+ { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
+ ],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+ tx.sign(payer, messageAccount);
+ svm.sendTransaction(tx);
+
+ //Fetch the message account and check it message
+ const messageAccInfo = svm.getAccount(messageAccount.publicKey);
+ const messageAcc = coder.accounts.decode(
+ "Message",
+ Buffer.from(messageAccInfo.data),
+ );
+ assert.equal(messageAccInfo.data.length, 8 + 4 + message.length);
+ assert.equal(messageAcc.message, message);
+ });
+
+ it("Update", () => {
+ const message = "hello world";
+ const data = coder.instruction.encode("update", {
+ input: message,
+ });
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: payer.publicKey, isSigner: true, isWritable: true },
+ { pubkey: messageAccount.publicKey, isSigner: false, isWritable: true },
+ { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
+ ],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+ tx.sign(payer);
+ svm.sendTransaction(tx);
+ svm.expireBlockhash();
+
+ //Fetch the message account and check it message
+ const messageAccInfo = svm.getAccount(messageAccount.publicKey);
+ const messageAcc = coder.accounts.decode(
+ "Message",
+ Buffer.from(messageAccInfo.data),
+ );
+ assert.equal(messageAccInfo.data.length, 8 + 4 + message.length);
+ assert.equal(messageAcc.message, message);
+ });
+
+ it("Again update", () => {
+ const message = "hi";
+ const data = coder.instruction.encode("update", {
+ input: message,
+ });
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: payer.publicKey, isSigner: true, isWritable: true },
+ { pubkey: messageAccount.publicKey, isSigner: false, isWritable: true },
+ { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
+ ],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+ tx.sign(payer);
+ svm.sendTransaction(tx);
+ svm.expireBlockhash();
+
+ //Fetch the message account and check it message
+ const messageAccInfo = svm.getAccount(messageAccount.publicKey);
+ const messageAcc = coder.accounts.decode(
+ "Message",
+ Buffer.from(messageAccInfo.data),
+ );
+
+ assert.equal(messageAccInfo.data.length, 8 + 4 + message.length);
+ assert.equal(messageAcc.message, message);
+ });
+});
diff --git a/basics/realloc/anchor/tests/test.ts b/basics/realloc/anchor/tests/test.ts
new file mode 100644
index 000000000..13edd3df6
--- /dev/null
+++ b/basics/realloc/anchor/tests/test.ts
@@ -0,0 +1,72 @@
+import type { Program } from "@coral-xyz/anchor";
+import * as anchor from "@coral-xyz/anchor";
+import { Keypair } from "@solana/web3.js";
+import { assert } from "chai";
+import type { AnchorRealloc } from "../target/types/anchor_realloc.ts";
+
+describe("Anchor: realloc", () => {
+ // Configure the client to use the local cluster.
+ const provider = anchor.AnchorProvider.env();
+ anchor.setProvider(provider);
+ const payer = provider.wallet as anchor.Wallet;
+ const connection = provider.connection;
+
+ const program = anchor.workspace.AnchorRealloc as Program;
+
+ const messageAccount = new Keypair();
+
+ // helper function to check the account data and message
+ async function checkAccount(publicKey, expectedMessage) {
+ const accountInfo = await connection.getAccountInfo(publicKey);
+ const accountData = await program.account.message.fetch(publicKey);
+
+ // 8 bytes for the discriminator,
+ // 4 bytes for the length of the message,
+ // and the length of the message
+ assert.equal(accountInfo.data.length, 8 + 4 + expectedMessage.length);
+ assert.equal(accountData.message, expectedMessage);
+ }
+
+ it("Is initialized!", async () => {
+ const input = "hello";
+
+ await program.methods
+ .initialize(input)
+ .accounts({
+ payer: payer.publicKey,
+ messageAccount: messageAccount.publicKey,
+ })
+ .signers([messageAccount])
+ .rpc();
+
+ await checkAccount(messageAccount.publicKey, input);
+ });
+
+ it("Update", async () => {
+ const input = "hello world";
+
+ await program.methods
+ .update(input)
+ .accounts({
+ payer: payer.publicKey,
+ messageAccount: messageAccount.publicKey,
+ })
+ .rpc();
+
+ await checkAccount(messageAccount.publicKey, input);
+ });
+
+ it("Again update", async () => {
+ const input = "hi";
+
+ await program.methods
+ .update(input)
+ .accounts({
+ payer: payer.publicKey,
+ messageAccount: messageAccount.publicKey,
+ })
+ .rpc();
+
+ await checkAccount(messageAccount.publicKey, input);
+ });
+});
diff --git a/basics/realloc/anchor/tsconfig.json b/basics/realloc/anchor/tsconfig.json
index cd5d2e3d0..59fe75cf0 100644
--- a/basics/realloc/anchor/tsconfig.json
+++ b/basics/realloc/anchor/tsconfig.json
@@ -1,10 +1,10 @@
{
- "compilerOptions": {
- "types": ["mocha", "chai"],
- "typeRoots": ["./node_modules/@types"],
- "lib": ["es2015"],
- "module": "commonjs",
- "target": "es6",
- "esModuleInterop": true
- }
+ "compilerOptions": {
+ "types": ["mocha", "chai"],
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2015"],
+ "module": "nodenext",
+ "target": "es6",
+ "esModuleInterop": true
+ }
}
From e754bb314c7089ab782828114713e753230fad31 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?solwarrior=20=F0=9F=97=A1=EF=B8=8F?=
<118261237+sol-warrior@users.noreply.github.com>
Date: Tue, 30 Dec 2025 08:32:39 +0530
Subject: [PATCH 20/49] Add LiteSVM tests for the Processing Instructions
anchor program (#478)
* feat: add LiteSVM test for processing instruction anchor program
* chore: update package dependencies and remove unused packages
- Added `litesvm` dependency to `package.json` and updated `pnpm-lock.yaml`.
- Removed `anchor-bankrun` and `solana-bankrun` dependencies from both files.
- Updated `@solana/web3.js` version in `pnpm-lock.yaml` to include a new version.
* chore: update TypeScript module resolution in tsconfig.json
- Changed module resolution from "commonjs" to "nodenext" in tsconfig.json for better compatibility with modern Node.js features.
* chore: remove unused bankrun test file
- Deleted the bankrun.test.ts file as part of the cleanup process to eliminate unused tests and dependencies.
---
.../anchor/package.json | 5 +-
.../anchor/pnpm-lock.yaml | 240 ++++++++++++------
.../anchor/tests/bankrun.test.ts | 27 --
.../anchor/tests/litesvm.test.ts | 83 ++++++
.../anchor/tsconfig.json | 16 +-
5 files changed, 250 insertions(+), 121 deletions(-)
delete mode 100644 basics/processing-instructions/anchor/tests/bankrun.test.ts
create mode 100644 basics/processing-instructions/anchor/tests/litesvm.test.ts
diff --git a/basics/processing-instructions/anchor/package.json b/basics/processing-instructions/anchor/package.json
index 7865c8c24..1f9417836 100644
--- a/basics/processing-instructions/anchor/package.json
+++ b/basics/processing-instructions/anchor/package.json
@@ -2,16 +2,15 @@
"type": "module",
"dependencies": {
"@coral-xyz/anchor": "0.32.1",
- "@solana/web3.js": "^1.95.2"
+ "@solana/web3.js": "^1.95.2",
+ "litesvm": "^0.4.0"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
"@types/chai": "^4.3.0",
"@types/mocha": "^9.0.0",
- "anchor-bankrun": "^0.4.0",
"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/processing-instructions/anchor/pnpm-lock.yaml b/basics/processing-instructions/anchor/pnpm-lock.yaml
index aae81ea51..de2bbf7e1 100644
--- a/basics/processing-instructions/anchor/pnpm-lock.yaml
+++ b/basics/processing-instructions/anchor/pnpm-lock.yaml
@@ -14,6 +14,9 @@ importers:
'@solana/web3.js':
specifier: ^1.95.2
version: 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ litesvm:
+ specifier: ^0.4.0
+ version: 0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
devDependencies:
'@types/bn.js':
specifier: ^5.1.0
@@ -24,18 +27,12 @@ importers:
'@types/mocha':
specifier: ^9.0.0
version: 9.1.1
- anchor-bankrun:
- specifier: ^0.4.0
- version: 0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
chai:
specifier: ^4.3.4
version: 4.4.1
mocha:
specifier: ^9.0.3
version: 9.2.2
- solana-bankrun:
- specifier: ^0.3.0
- version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
ts-mocha:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
@@ -78,9 +75,31 @@ packages:
resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
engines: {node: '>=5.10'}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/web3.js@1.95.2':
resolution: {integrity: sha512-SjlHp0G4qhuhkQQc+YXdGkI8EerCqwxvgytMgBpzMUQTafrkNant3e7pgilBGgjy/iM40ICvWBLgASTPMrQU7w==}
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
+
'@swc/helpers@0.5.12':
resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==}
@@ -125,14 +144,6 @@ packages:
resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
engines: {node: '>= 8.0.0'}
- anchor-bankrun@0.4.0:
- resolution: {integrity: sha512-s+K7E0IGAlmkhuo8nbiqVsQf2yJ+3l9GjNQJSmkRDe25dQj4Yef9rJh77FH6EQ5H6yQYfzuhgm/5GD6JMjdTZg==}
- engines: {node: '>= 10'}
- peerDependencies:
- '@coral-xyz/anchor': ^0.30.0
- '@solana/web3.js': ^1.78.4
- solana-bankrun: ^0.2.0
-
ansi-colors@4.1.1:
resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
engines: {node: '>=6'}
@@ -227,6 +238,10 @@ packages:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -244,6 +259,10 @@ packages:
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ 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==}
@@ -312,6 +331,9 @@ packages:
fast-stable-stringify@1.0.0:
resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
+ fastestsmallesttextencoderdecoder@1.0.22:
+ resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
+
file-uri-to-path@1.0.0:
resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
@@ -429,6 +451,46 @@ packages:
resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
engines: {'0': node >= 0.2.0}
+ litesvm-darwin-arm64@0.4.0:
+ resolution: {integrity: sha512-LN6iZcUQ6Xi5KO/7yJBYSALjjDCI/s/s2PgV3BqM4dpeBaLz+fXX/+qgMcBgpEVgEdEmhelux+WtAMkbEzJfrA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [darwin]
+
+ litesvm-darwin-x64@0.4.0:
+ resolution: {integrity: sha512-3ltogKQdle8LbakVqoB6plxaNwp6Vb3tnkqa3G5mAvvZNorB2iumThDaTZ381Knl69t566LZm+g/VDZwYfsfhA==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [darwin]
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ resolution: {integrity: sha512-SWlcRUqkXCMgLoDX/Wqr/S1lff+ggVI9f0YrRJMraxtEyApxutAoW2AWw4tvo6DsEgNwjxgsZOAwnE6bQBv8CA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-arm64-musl@0.4.0:
+ resolution: {integrity: sha512-YMMqwEWJUSWwL0Rwp8dFwl3jvgNU21eI7Qc+BpH9u2yeIRYQTn3rNGDnsK8v3QIZPHQdMo7NrPhzk4XoB1aKPg==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-x64-gnu@0.4.0:
+ resolution: {integrity: sha512-brZ3tFABDVQEYCgci7AO8iVYLw10UXVo97/lpTy75bTzNoqkggg8wFQOrbgCdb9NRwt06Y4Zf8cpIZAoDQq2mw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm-linux-x64-musl@0.4.0:
+ resolution: {integrity: sha512-D98qdIOuWg4fOewIIiH1D23AtM4I7/3vLKXIL8uQz06D5ev5fsBzNp2gM7libAywTkCYy/u666xgD6PsWhrTaw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm@0.4.0:
+ resolution: {integrity: sha512-ySr5mB2ap4SzJpmVR2I5+gjzTH8NJbkg7DYPormzA2U9F4LhfvTTrD17X/k5N3Bn4b5Db6/CwSyX2qc0HrJtNA==}
+ engines: {node: '>= 20'}
+
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -542,39 +604,6 @@ packages:
serialize-javascript@6.0.0:
resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
- solana-bankrun-darwin-arm64@0.3.0:
- resolution: {integrity: sha512-+NbDncf0U6l3knuacRBiqpjZ2DSp+5lZaAU518gH7/x6qubbui/d000STaIBK+uNTPBS/AL/bCN+7PkXqmA3lA==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [darwin]
-
- solana-bankrun-darwin-universal@0.3.0:
- resolution: {integrity: sha512-1/F0xdMa4qvc5o6z16FCCbZ5jbdvKvxpx5kyPcMWRiRPwyvi+zltMxciPAYMlg3wslQqGz88uFhrBEzq2eTumQ==}
- engines: {node: '>= 10'}
- os: [darwin]
-
- solana-bankrun-darwin-x64@0.3.0:
- resolution: {integrity: sha512-U6CANjkmMl+lgNA7UH0GKs5V7LtVIUDzJBZefGGqLfqUNv3EjA/PrrToM0hAOWJgkxSwdz6zW+p5sw5FmnbXtg==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [darwin]
-
- solana-bankrun-linux-x64-gnu@0.3.0:
- resolution: {integrity: sha512-qJSkCFs0k2n4XtTnyxGMiZsuqO2TiqTYgWjQ+3mZhGNUAMys/Vq8bd7/SyBm6RR7EfVuRXRxZvh+F8oKZ77V4w==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- solana-bankrun-linux-x64-musl@0.3.0:
- resolution: {integrity: sha512-xsS2CS2xb1Sw4ivNXM0gPz/qpW9BX0neSvt/pnok5L330Nu9xlTnKAY8FhzzqOP9P9sJlGRM787Y6d0yYwt6xQ==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- solana-bankrun@0.3.0:
- resolution: {integrity: sha512-YkH7sa8TB/AoRPzG17CXJtYsRIQHEkEqGLz1Vwc13taXhDBkjO7z6NI5JYw7n0ybRymDHwMYTc7sd+5J40TyVQ==}
- engines: {node: '>= 10'}
-
source-map-support@0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
@@ -782,6 +811,23 @@ snapshots:
dependencies:
buffer: 6.0.3
+ '@solana/codecs-core@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@4.9.5)
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.3.0(typescript@4.9.5)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.2
+ typescript: 4.9.5
+
'@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
dependencies:
'@babel/runtime': 7.25.0
@@ -804,6 +850,29 @@ snapshots:
- encoding
- utf-8-validate
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@babel/runtime': 7.25.0
+ '@noble/curves': 1.4.2
+ '@noble/hashes': 1.8.0
+ '@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@4.9.5)
+ agentkeepalive: 4.5.0
+ 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.1.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ node-fetch: 2.7.0
+ rpc-websockets: 9.0.2
+ superstruct: 2.0.2
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
'@swc/helpers@0.5.12':
dependencies:
tslib: 2.6.2
@@ -850,12 +919,6 @@ snapshots:
dependencies:
humanize-ms: 1.2.1
- anchor-bankrun@0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
- dependencies:
- '@coral-xyz/anchor': 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- solana-bankrun: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
-
ansi-colors@4.1.1: {}
ansi-regex@5.0.1: {}
@@ -949,6 +1012,8 @@ snapshots:
ansi-styles: 4.3.0
supports-color: 7.2.0
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -977,6 +1042,8 @@ snapshots:
color-name@1.1.4: {}
+ commander@14.0.2: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -1025,6 +1092,8 @@ snapshots:
fast-stable-stringify@1.0.0: {}
+ fastestsmallesttextencoderdecoder@1.0.22: {}
+
file-uri-to-path@1.0.0: {}
fill-range@7.0.1:
@@ -1134,6 +1203,41 @@ snapshots:
jsonparse@1.3.1: {}
+ litesvm-darwin-arm64@0.4.0:
+ optional: true
+
+ litesvm-darwin-x64@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-musl@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-musl@0.4.0:
+ optional: true
+
+ litesvm@0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10):
+ dependencies:
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ fastestsmallesttextencoderdecoder: 1.0.22
+ optionalDependencies:
+ litesvm-darwin-arm64: 0.4.0
+ litesvm-darwin-x64: 0.4.0
+ litesvm-linux-arm64-gnu: 0.4.0
+ litesvm-linux-arm64-musl: 0.4.0
+ litesvm-linux-x64-gnu: 0.4.0
+ litesvm-linux-x64-musl: 0.4.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1258,36 +1362,6 @@ snapshots:
dependencies:
randombytes: 2.1.0
- solana-bankrun-darwin-arm64@0.3.0:
- optional: true
-
- solana-bankrun-darwin-universal@0.3.0:
- optional: true
-
- solana-bankrun-darwin-x64@0.3.0:
- optional: true
-
- solana-bankrun-linux-x64-gnu@0.3.0:
- optional: true
-
- solana-bankrun-linux-x64-musl@0.3.0:
- optional: true
-
- solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
- dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- bs58: 4.0.1
- optionalDependencies:
- solana-bankrun-darwin-arm64: 0.3.0
- solana-bankrun-darwin-universal: 0.3.0
- solana-bankrun-darwin-x64: 0.3.0
- solana-bankrun-linux-x64-gnu: 0.3.0
- solana-bankrun-linux-x64-musl: 0.3.0
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - utf-8-validate
-
source-map-support@0.5.21:
dependencies:
buffer-from: 1.1.2
diff --git a/basics/processing-instructions/anchor/tests/bankrun.test.ts b/basics/processing-instructions/anchor/tests/bankrun.test.ts
deleted file mode 100644
index 4a4d363b3..000000000
--- a/basics/processing-instructions/anchor/tests/bankrun.test.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { describe, it } from "node:test";
-import * as anchor from "@coral-xyz/anchor";
-import { PublicKey } from "@solana/web3.js";
-import { BankrunProvider } from "anchor-bankrun";
-import { startAnchor } from "solana-bankrun";
-import type { ProcessingInstructions } from "../target/types/processing_instructions";
-
-import IDL from "../target/idl/processing_instructions.json" with { type: "json" };
-const PROGRAM_ID = new PublicKey(IDL.address);
-
-describe("custom-instruction-data", async () => {
- const context = await startAnchor(
- "",
- [{ name: "processing_instructions", programId: PROGRAM_ID }],
- [],
- );
- const provider = new BankrunProvider(context);
-
- const _payer = provider.wallet as anchor.Wallet;
- const program = new anchor.Program(IDL, provider);
-
- it("Go to the park!", async () => {
- // Anchor makes it super simple.
- await program.methods.goToPark("Jimmy", 3).accounts({}).rpc();
- await program.methods.goToPark("Mary", 10).accounts({}).rpc();
- });
-});
diff --git a/basics/processing-instructions/anchor/tests/litesvm.test.ts b/basics/processing-instructions/anchor/tests/litesvm.test.ts
new file mode 100644
index 000000000..4e45307d0
--- /dev/null
+++ b/basics/processing-instructions/anchor/tests/litesvm.test.ts
@@ -0,0 +1,83 @@
+import anchor from "@coral-xyz/anchor";
+import {
+ Keypair,
+ PublicKey,
+ Transaction,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import { LiteSVM } from "litesvm";
+import IDL from "../target/idl/processing_instructions.json" with {
+ type: "json",
+};
+
+describe("LiteSVM: custom-instruction-data", () => {
+ const svm = new LiteSVM();
+ const programId = new PublicKey(IDL.address);
+ /**
+ * Creates a coder to easily build and encode program instructions based on the IDL.
+ */
+ const coder = new anchor.BorshCoder(IDL as anchor.Idl);
+
+ const payer = Keypair.generate();
+ svm.airdrop(payer.publicKey, BigInt(1000000000));
+
+ /**
+ * Load the processing_instructions program binary into the LiteSVM instance
+ * for local testing and simulation.
+ */
+ const programPath = new URL(
+ "../target/deploy/processing_instructions.so",
+ import.meta.url,
+ ).pathname;
+ svm.addProgramFromFile(programId, programPath);
+
+ it("Go to the park!", () => {
+ /**
+ * Create an instruction for the 'go_to_park' method using the Anchor coder.
+ * Arguments are needed for this instruction so we give inside `{}`.
+ */
+ const ixArgs = {
+ name: "Jimmy",
+ height: 5,
+ };
+ const data = coder.instruction.encode("go_to_park", ixArgs);
+
+ /**
+ * Build and sign a transaction to call the 'go_to_park' instruction
+ * on the processing_instructions program with LiteSVM.
+ */
+ const ix = new TransactionInstruction({
+ keys: [],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+ tx.sign(payer);
+ svm.sendTransaction(tx);
+ svm.expireBlockhash();
+
+ /**
+ * For Mary , height: 10
+ */
+ const ixArgs2 = {
+ name: "Mary",
+ height: 10,
+ };
+ const data2 = coder.instruction.encode("go_to_park", ixArgs2);
+
+ const ix2 = new TransactionInstruction({
+ keys: [],
+ programId,
+ data: data2,
+ });
+
+ const tx2 = new Transaction().add(ix2);
+ tx2.feePayer = payer.publicKey;
+ tx2.recentBlockhash = svm.latestBlockhash();
+ tx2.sign(payer);
+ svm.sendTransaction(tx2);
+ });
+});
diff --git a/basics/processing-instructions/anchor/tsconfig.json b/basics/processing-instructions/anchor/tsconfig.json
index cd5d2e3d0..59fe75cf0 100644
--- a/basics/processing-instructions/anchor/tsconfig.json
+++ b/basics/processing-instructions/anchor/tsconfig.json
@@ -1,10 +1,10 @@
{
- "compilerOptions": {
- "types": ["mocha", "chai"],
- "typeRoots": ["./node_modules/@types"],
- "lib": ["es2015"],
- "module": "commonjs",
- "target": "es6",
- "esModuleInterop": true
- }
+ "compilerOptions": {
+ "types": ["mocha", "chai"],
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2015"],
+ "module": "nodenext",
+ "target": "es6",
+ "esModuleInterop": true
+ }
}
From 231573d9dd4d306c53bef039c154b7e47caac728 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?solwarrior=20=F0=9F=97=A1=EF=B8=8F?=
<118261237+sol-warrior@users.noreply.github.com>
Date: Tue, 30 Dec 2025 08:32:48 +0530
Subject: [PATCH 21/49] Add LiteSVM tests for the PDA Rent Payer anchor program
(#476)
* feat: add LiteSVM tests for PDA Rent-Payer
* Implement tests for initializing the Rent Vault and creating new accounts using the Rent Vault.
* Validate lamports in the Rent Vault and new accounts after transactions.
* chore: update dependencies and TypeScript configuration for PDA Rent-Payer
- Added litesvm dependency to package.json.
- Adjusted import path for PdaRentPayer in test.ts to include the .ts extension.
- Updated pnpm-lock.yaml to include litesvm and its variants.
- Changed TypeScript module resolution from commonjs to nodenext.
* chore: Remove deprecated bankrun and related stuff
---
basics/pda-rent-payer/anchor/package.json | 5 +-
basics/pda-rent-payer/anchor/pnpm-lock.yaml | 167 +++++++++---------
.../anchor/tests/bankrun.test.ts | 67 -------
.../anchor/tests/litesvm.test.ts | 93 ++++++++++
basics/pda-rent-payer/anchor/tests/test.ts | 2 +-
basics/pda-rent-payer/anchor/tsconfig.json | 16 +-
6 files changed, 187 insertions(+), 163 deletions(-)
delete mode 100644 basics/pda-rent-payer/anchor/tests/bankrun.test.ts
create mode 100644 basics/pda-rent-payer/anchor/tests/litesvm.test.ts
diff --git a/basics/pda-rent-payer/anchor/package.json b/basics/pda-rent-payer/anchor/package.json
index 7865c8c24..1f9417836 100644
--- a/basics/pda-rent-payer/anchor/package.json
+++ b/basics/pda-rent-payer/anchor/package.json
@@ -2,16 +2,15 @@
"type": "module",
"dependencies": {
"@coral-xyz/anchor": "0.32.1",
- "@solana/web3.js": "^1.95.2"
+ "@solana/web3.js": "^1.95.2",
+ "litesvm": "^0.4.0"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
"@types/chai": "^4.3.0",
"@types/mocha": "^9.0.0",
- "anchor-bankrun": "^0.4.0",
"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/pda-rent-payer/anchor/pnpm-lock.yaml b/basics/pda-rent-payer/anchor/pnpm-lock.yaml
index 4cc1440b8..b423a72a4 100644
--- a/basics/pda-rent-payer/anchor/pnpm-lock.yaml
+++ b/basics/pda-rent-payer/anchor/pnpm-lock.yaml
@@ -14,6 +14,9 @@ importers:
'@solana/web3.js':
specifier: ^1.95.2
version: 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ litesvm:
+ specifier: ^0.4.0
+ version: 0.4.0(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
devDependencies:
'@types/bn.js':
specifier: ^5.1.0
@@ -24,18 +27,12 @@ importers:
'@types/mocha':
specifier: ^9.0.0
version: 9.1.1
- anchor-bankrun:
- specifier: ^0.4.0
- version: 0.4.1(@coral-xyz/anchor@0.32.1(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))(solana-bankrun@0.3.1(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10))
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)
@@ -137,14 +134,6 @@ packages:
resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==}
engines: {node: '>= 8.0.0'}
- anchor-bankrun@0.4.1:
- resolution: {integrity: sha512-ryCT84tw+lP4AqRpBsZJbt/KTRoVVKufkxFGd77gnx9iHkbwA5G/9cALk/eqLQm4xeUWTrJSJdEVyg2e74iP9A==}
- engines: {node: '>= 10'}
- peerDependencies:
- '@coral-xyz/anchor': ^0.30.0
- '@solana/web3.js': '>=1.78.4 <1.92.0'
- solana-bankrun: ^0.2.0
-
ansi-colors@4.1.1:
resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
engines: {node: '>=6'}
@@ -322,6 +311,9 @@ packages:
fast-stable-stringify@1.0.0:
resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
+ fastestsmallesttextencoderdecoder@1.0.22:
+ resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
+
fill-range@7.1.1:
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
engines: {node: '>=8'}
@@ -434,6 +426,46 @@ packages:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
+ litesvm-darwin-arm64@0.4.0:
+ resolution: {integrity: sha512-LN6iZcUQ6Xi5KO/7yJBYSALjjDCI/s/s2PgV3BqM4dpeBaLz+fXX/+qgMcBgpEVgEdEmhelux+WtAMkbEzJfrA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [darwin]
+
+ litesvm-darwin-x64@0.4.0:
+ resolution: {integrity: sha512-3ltogKQdle8LbakVqoB6plxaNwp6Vb3tnkqa3G5mAvvZNorB2iumThDaTZ381Knl69t566LZm+g/VDZwYfsfhA==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [darwin]
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ resolution: {integrity: sha512-SWlcRUqkXCMgLoDX/Wqr/S1lff+ggVI9f0YrRJMraxtEyApxutAoW2AWw4tvo6DsEgNwjxgsZOAwnE6bQBv8CA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-arm64-musl@0.4.0:
+ resolution: {integrity: sha512-YMMqwEWJUSWwL0Rwp8dFwl3jvgNU21eI7Qc+BpH9u2yeIRYQTn3rNGDnsK8v3QIZPHQdMo7NrPhzk4XoB1aKPg==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-x64-gnu@0.4.0:
+ resolution: {integrity: sha512-brZ3tFABDVQEYCgci7AO8iVYLw10UXVo97/lpTy75bTzNoqkggg8wFQOrbgCdb9NRwt06Y4Zf8cpIZAoDQq2mw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm-linux-x64-musl@0.4.0:
+ resolution: {integrity: sha512-D98qdIOuWg4fOewIIiH1D23AtM4I7/3vLKXIL8uQz06D5ev5fsBzNp2gM7libAywTkCYy/u666xgD6PsWhrTaw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm@0.4.0:
+ resolution: {integrity: sha512-ySr5mB2ap4SzJpmVR2I5+gjzTH8NJbkg7DYPormzA2U9F4LhfvTTrD17X/k5N3Bn4b5Db6/CwSyX2qc0HrJtNA==}
+ engines: {node: '>= 20'}
+
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -544,39 +576,6 @@ packages:
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==}
@@ -865,12 +864,6 @@ snapshots:
dependencies:
humanize-ms: 1.2.1
- anchor-bankrun@0.4.1(@coral-xyz/anchor@0.32.1(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))(solana-bankrun@0.3.1(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)):
- dependencies:
- '@coral-xyz/anchor': 0.32.1(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)
- solana-bankrun: 0.3.1(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
-
ansi-colors@4.1.1: {}
ansi-regex@5.0.1: {}
@@ -1034,6 +1027,8 @@ snapshots:
fast-stable-stringify@1.0.0: {}
+ fastestsmallesttextencoderdecoder@1.0.22: {}
+
fill-range@7.1.1:
dependencies:
to-regex-range: 5.0.1
@@ -1139,6 +1134,41 @@ snapshots:
minimist: 1.2.8
optional: true
+ litesvm-darwin-arm64@0.4.0:
+ optional: true
+
+ litesvm-darwin-x64@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-musl@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-musl@0.4.0:
+ optional: true
+
+ litesvm@0.4.0(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10):
+ dependencies:
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ fastestsmallesttextencoderdecoder: 1.0.22
+ optionalDependencies:
+ litesvm-darwin-arm64: 0.4.0
+ litesvm-darwin-x64: 0.4.0
+ litesvm-linux-arm64-gnu: 0.4.0
+ litesvm-linux-arm64-musl: 0.4.0
+ litesvm-linux-x64-gnu: 0.4.0
+ litesvm-linux-x64-musl: 0.4.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1261,37 +1291,6 @@ snapshots:
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.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
- 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
diff --git a/basics/pda-rent-payer/anchor/tests/bankrun.test.ts b/basics/pda-rent-payer/anchor/tests/bankrun.test.ts
deleted file mode 100644
index 204553a70..000000000
--- a/basics/pda-rent-payer/anchor/tests/bankrun.test.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-import { describe, it } from "node:test";
-import * as anchor from "@coral-xyz/anchor";
-import { Keypair, LAMPORTS_PER_SOL, PublicKey } from "@solana/web3.js";
-import { BankrunProvider } from "anchor-bankrun";
-import BN from "bn.js";
-import { assert } from "chai";
-import { startAnchor } from "solana-bankrun";
-import type { PdaRentPayer } from "../target/types/pda_rent_payer";
-
-import IDL from "../target/idl/pda_rent_payer.json";
-const PROGRAM_ID = new PublicKey(IDL.address);
-
-describe("PDA Rent-Payer", async () => {
- const context = await startAnchor(
- "",
- [{ name: "pda_rent_payer", programId: PROGRAM_ID }],
- [],
- );
- const provider = new BankrunProvider(context);
- const program = new anchor.Program(IDL, provider);
-
- const wallet = provider.wallet as anchor.Wallet;
- const connection = provider.connection;
-
- // PDA for the Rent Vault
- const [rentVaultPDA] = PublicKey.findProgramAddressSync(
- [Buffer.from("rent_vault")],
- program.programId,
- );
-
- it("Initialize the Rent Vault", async () => {
- // 1 SOL
- const fundAmount = new BN(LAMPORTS_PER_SOL);
-
- await program.methods
- .initRentVault(fundAmount)
- .accounts({
- payer: wallet.publicKey,
- })
- .rpc();
-
- // Check rent vault balance
- const accountInfo =
- await program.provider.connection.getAccountInfo(rentVaultPDA);
- assert(accountInfo.lamports === fundAmount.toNumber());
- });
-
- it("Create a new account using the Rent Vault", async () => {
- // Generate a new keypair for the new account
- const newAccount = new Keypair();
-
- await program.methods
- .createNewAccount()
- .accounts({
- newAccount: newAccount.publicKey,
- })
- .signers([newAccount])
- .rpc();
-
- // Minimum balance for rent exemption for new account
- const lamports = await connection.getMinimumBalanceForRentExemption(0);
-
- // Check that the account was created
- const accountInfo = await connection.getAccountInfo(newAccount.publicKey);
- assert(accountInfo.lamports === lamports);
- });
-});
diff --git a/basics/pda-rent-payer/anchor/tests/litesvm.test.ts b/basics/pda-rent-payer/anchor/tests/litesvm.test.ts
new file mode 100644
index 000000000..b7bf80451
--- /dev/null
+++ b/basics/pda-rent-payer/anchor/tests/litesvm.test.ts
@@ -0,0 +1,93 @@
+import anchor from "@coral-xyz/anchor";
+import {
+ Keypair,
+ LAMPORTS_PER_SOL,
+ PublicKey,
+ SystemProgram,
+ Transaction,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import { assert } from "chai";
+import { LiteSVM } from "litesvm";
+import IDL from "../target/idl/pda_rent_payer.json" with { type: "json" };
+
+describe("LiteSVM: PDA Rent-Payer", () => {
+ const svm = new LiteSVM();
+ const programId = new PublicKey(IDL.address);
+ const coder = new anchor.BorshCoder(IDL as anchor.Idl);
+ const payer = Keypair.generate();
+ svm.airdrop(payer.publicKey, BigInt(10000000000));
+
+ const programPath = new URL(
+ "../target/deploy/pda_rent_payer.so",
+ import.meta.url,
+ ).pathname;
+ svm.addProgramFromFile(programId, programPath);
+
+ /**
+ * generate PDA for the Rent Vault
+ */
+ const [rentVaultPDA] = PublicKey.findProgramAddressSync(
+ [Buffer.from("rent_vault")],
+ programId,
+ );
+
+ it("Initialize the Rent Vault", () => {
+ const ixArgs = {
+ fund_lamports: new anchor.BN(LAMPORTS_PER_SOL),
+ };
+
+ const data = coder.instruction.encode("init_rent_vault", ixArgs);
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: payer.publicKey, isSigner: true, isWritable: true },
+ { pubkey: rentVaultPDA, isSigner: false, isWritable: true },
+ { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
+ ],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+ tx.sign(payer);
+ svm.sendTransaction(tx);
+
+ /**
+ * Fetch the account and check its rent vault account info
+ */
+ const rentVaultAccountInfo = svm.getAccount(rentVaultPDA);
+
+ assert.equal(rentVaultAccountInfo.lamports, LAMPORTS_PER_SOL);
+ });
+
+ it("Create a new account using the Rent Vault", () => {
+ const newAccount = new Keypair();
+
+ const data = coder.instruction.encode("create_new_account", {});
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: newAccount.publicKey, isSigner: true, isWritable: true },
+ { pubkey: rentVaultPDA, isSigner: false, isWritable: true },
+ { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
+ ],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+ tx.sign(payer, newAccount);
+ svm.sendTransaction(tx);
+
+ /**
+ * Fetch the newAccount and check its rent
+ */
+ const minLamports = svm.minimumBalanceForRentExemption(BigInt(0));
+ const newAccountInfo = svm.getAccount(newAccount.publicKey);
+
+ assert.equal(newAccountInfo.lamports, Number(minLamports));
+ });
+});
diff --git a/basics/pda-rent-payer/anchor/tests/test.ts b/basics/pda-rent-payer/anchor/tests/test.ts
index f406b16b9..5467255ed 100644
--- a/basics/pda-rent-payer/anchor/tests/test.ts
+++ b/basics/pda-rent-payer/anchor/tests/test.ts
@@ -2,7 +2,7 @@ import * as anchor from "@coral-xyz/anchor";
import { Keypair, LAMPORTS_PER_SOL, PublicKey } from "@solana/web3.js";
import BN from "bn.js";
import { assert } from "chai";
-import type { PdaRentPayer } from "../target/types/pda_rent_payer";
+import type { PdaRentPayer } from "../target/types/pda_rent_payer.ts";
describe("PDA Rent-Payer", () => {
const provider = anchor.AnchorProvider.env();
diff --git a/basics/pda-rent-payer/anchor/tsconfig.json b/basics/pda-rent-payer/anchor/tsconfig.json
index cd5d2e3d0..59fe75cf0 100644
--- a/basics/pda-rent-payer/anchor/tsconfig.json
+++ b/basics/pda-rent-payer/anchor/tsconfig.json
@@ -1,10 +1,10 @@
{
- "compilerOptions": {
- "types": ["mocha", "chai"],
- "typeRoots": ["./node_modules/@types"],
- "lib": ["es2015"],
- "module": "commonjs",
- "target": "es6",
- "esModuleInterop": true
- }
+ "compilerOptions": {
+ "types": ["mocha", "chai"],
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2015"],
+ "module": "nodenext",
+ "target": "es6",
+ "esModuleInterop": true
+ }
}
From 024e8a0d9e3fa127d28e83f7c84831410574fcb7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?solwarrior=20=F0=9F=97=A1=EF=B8=8F?=
<118261237+sol-warrior@users.noreply.github.com>
Date: Tue, 30 Dec 2025 08:33:02 +0530
Subject: [PATCH 22/49] Add LiteSVM tests for the hello-solana Anchor program
(#475)
* feat: add LiteSVM test for hello-solana program
* chore: add litesvm and update @solana/web3.js dependency
- Upgrade @solana/web3.js to version 1.98.4
- Add litesvm dependency with version 0.4.0
- Update related dependencies in pnpm-lock.yaml to reflect changes
* chore: update TypeScript config for hello-solana anchor to resolve TS issues
- Upgrade TypeScript compiler options to use ES2020 features
- Change module resolution to 'nodenext'
* refactor: update hello-solana Anchor test file to use type-only imports and clearer suite descriptions
* chore: remove deprecated bankrun and related stuff
---
basics/hello-solana/anchor/package.json | 5 +-
basics/hello-solana/anchor/pnpm-lock.yaml | 256 ++++++++++--------
.../hello-solana/anchor/tests/bankrun.test.ts | 28 --
.../hello-solana/anchor/tests/litesvm.test.ts | 55 ++++
basics/hello-solana/anchor/tests/test.ts | 28 +-
basics/hello-solana/anchor/tsconfig.json | 16 +-
6 files changed, 222 insertions(+), 166 deletions(-)
delete mode 100644 basics/hello-solana/anchor/tests/bankrun.test.ts
create mode 100644 basics/hello-solana/anchor/tests/litesvm.test.ts
diff --git a/basics/hello-solana/anchor/package.json b/basics/hello-solana/anchor/package.json
index 7865c8c24..9d86fae3d 100644
--- a/basics/hello-solana/anchor/package.json
+++ b/basics/hello-solana/anchor/package.json
@@ -2,16 +2,15 @@
"type": "module",
"dependencies": {
"@coral-xyz/anchor": "0.32.1",
- "@solana/web3.js": "^1.95.2"
+ "@solana/web3.js": "^1.98.4",
+ "litesvm": "^0.4.0"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
"@types/chai": "^4.3.0",
"@types/mocha": "^9.0.0",
- "anchor-bankrun": "^0.4.0",
"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/hello-solana/anchor/pnpm-lock.yaml b/basics/hello-solana/anchor/pnpm-lock.yaml
index aae81ea51..a6dc09428 100644
--- a/basics/hello-solana/anchor/pnpm-lock.yaml
+++ b/basics/hello-solana/anchor/pnpm-lock.yaml
@@ -10,10 +10,13 @@ importers:
dependencies:
'@coral-xyz/anchor':
specifier: 0.32.1
- version: 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.95.2
- version: 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ litesvm:
+ specifier: ^0.4.0
+ version: 0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
devDependencies:
'@types/bn.js':
specifier: ^5.1.0
@@ -24,18 +27,12 @@ importers:
'@types/mocha':
specifier: ^9.0.0
version: 9.1.1
- anchor-bankrun:
- specifier: ^0.4.0
- version: 0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
chai:
specifier: ^4.3.4
version: 4.4.1
mocha:
specifier: ^9.0.3
version: 9.2.2
- solana-bankrun:
- specifier: ^0.3.0
- version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
ts-mocha:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
@@ -78,8 +75,27 @@ packages:
resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
engines: {node: '>=5.10'}
- '@solana/web3.js@1.95.2':
- resolution: {integrity: sha512-SjlHp0G4qhuhkQQc+YXdGkI8EerCqwxvgytMgBpzMUQTafrkNant3e7pgilBGgjy/iM40ICvWBLgASTPMrQU7w==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
'@swc/helpers@0.5.12':
resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==}
@@ -125,14 +141,6 @@ packages:
resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
engines: {node: '>= 8.0.0'}
- anchor-bankrun@0.4.0:
- resolution: {integrity: sha512-s+K7E0IGAlmkhuo8nbiqVsQf2yJ+3l9GjNQJSmkRDe25dQj4Yef9rJh77FH6EQ5H6yQYfzuhgm/5GD6JMjdTZg==}
- engines: {node: '>= 10'}
- peerDependencies:
- '@coral-xyz/anchor': ^0.30.0
- '@solana/web3.js': ^1.78.4
- solana-bankrun: ^0.2.0
-
ansi-colors@4.1.1:
resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
engines: {node: '>=6'}
@@ -168,17 +176,10 @@ packages:
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- bigint-buffer@1.1.5:
- resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==}
- engines: {node: '>= 10.0.0'}
-
binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
- bindings@1.5.0:
- resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
-
bn.js@5.2.1:
resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==}
@@ -227,6 +228,10 @@ packages:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -244,6 +249,10 @@ packages:
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ 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==}
@@ -312,8 +321,8 @@ packages:
fast-stable-stringify@1.0.0:
resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
- file-uri-to-path@1.0.0:
- resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
+ fastestsmallesttextencoderdecoder@1.0.22:
+ resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
@@ -429,6 +438,46 @@ packages:
resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
engines: {'0': node >= 0.2.0}
+ litesvm-darwin-arm64@0.4.0:
+ resolution: {integrity: sha512-LN6iZcUQ6Xi5KO/7yJBYSALjjDCI/s/s2PgV3BqM4dpeBaLz+fXX/+qgMcBgpEVgEdEmhelux+WtAMkbEzJfrA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [darwin]
+
+ litesvm-darwin-x64@0.4.0:
+ resolution: {integrity: sha512-3ltogKQdle8LbakVqoB6plxaNwp6Vb3tnkqa3G5mAvvZNorB2iumThDaTZ381Knl69t566LZm+g/VDZwYfsfhA==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [darwin]
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ resolution: {integrity: sha512-SWlcRUqkXCMgLoDX/Wqr/S1lff+ggVI9f0YrRJMraxtEyApxutAoW2AWw4tvo6DsEgNwjxgsZOAwnE6bQBv8CA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-arm64-musl@0.4.0:
+ resolution: {integrity: sha512-YMMqwEWJUSWwL0Rwp8dFwl3jvgNU21eI7Qc+BpH9u2yeIRYQTn3rNGDnsK8v3QIZPHQdMo7NrPhzk4XoB1aKPg==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-x64-gnu@0.4.0:
+ resolution: {integrity: sha512-brZ3tFABDVQEYCgci7AO8iVYLw10UXVo97/lpTy75bTzNoqkggg8wFQOrbgCdb9NRwt06Y4Zf8cpIZAoDQq2mw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm-linux-x64-musl@0.4.0:
+ resolution: {integrity: sha512-D98qdIOuWg4fOewIIiH1D23AtM4I7/3vLKXIL8uQz06D5ev5fsBzNp2gM7libAywTkCYy/u666xgD6PsWhrTaw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm@0.4.0:
+ resolution: {integrity: sha512-ySr5mB2ap4SzJpmVR2I5+gjzTH8NJbkg7DYPormzA2U9F4LhfvTTrD17X/k5N3Bn4b5Db6/CwSyX2qc0HrJtNA==}
+ engines: {node: '>= 20'}
+
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -542,39 +591,6 @@ packages:
serialize-javascript@6.0.0:
resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
- solana-bankrun-darwin-arm64@0.3.0:
- resolution: {integrity: sha512-+NbDncf0U6l3knuacRBiqpjZ2DSp+5lZaAU518gH7/x6qubbui/d000STaIBK+uNTPBS/AL/bCN+7PkXqmA3lA==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [darwin]
-
- solana-bankrun-darwin-universal@0.3.0:
- resolution: {integrity: sha512-1/F0xdMa4qvc5o6z16FCCbZ5jbdvKvxpx5kyPcMWRiRPwyvi+zltMxciPAYMlg3wslQqGz88uFhrBEzq2eTumQ==}
- engines: {node: '>= 10'}
- os: [darwin]
-
- solana-bankrun-darwin-x64@0.3.0:
- resolution: {integrity: sha512-U6CANjkmMl+lgNA7UH0GKs5V7LtVIUDzJBZefGGqLfqUNv3EjA/PrrToM0hAOWJgkxSwdz6zW+p5sw5FmnbXtg==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [darwin]
-
- solana-bankrun-linux-x64-gnu@0.3.0:
- resolution: {integrity: sha512-qJSkCFs0k2n4XtTnyxGMiZsuqO2TiqTYgWjQ+3mZhGNUAMys/Vq8bd7/SyBm6RR7EfVuRXRxZvh+F8oKZ77V4w==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- solana-bankrun-linux-x64-musl@0.3.0:
- resolution: {integrity: sha512-xsS2CS2xb1Sw4ivNXM0gPz/qpW9BX0neSvt/pnok5L330Nu9xlTnKAY8FhzzqOP9P9sJlGRM787Y6d0yYwt6xQ==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- solana-bankrun@0.3.0:
- resolution: {integrity: sha512-YkH7sa8TB/AoRPzG17CXJtYsRIQHEkEqGLz1Vwc13taXhDBkjO7z6NI5JYw7n0ybRymDHwMYTc7sd+5J40TyVQ==}
- engines: {node: '>= 10'}
-
source-map-support@0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
@@ -744,12 +760,12 @@ snapshots:
'@coral-xyz/anchor-errors@0.31.1': {}
- '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@coral-xyz/anchor-errors': 0.31.1
- '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))
'@noble/hashes': 1.8.0
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
bs58: 4.0.1
buffer-layout: 1.2.2
@@ -762,11 +778,12 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))':
dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
buffer-layout: 1.2.2
@@ -782,14 +799,31 @@ snapshots:
dependencies:
buffer: 6.0.3
- '@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/codecs-core@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@4.9.5)
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.3.0(typescript@4.9.5)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.2
+ typescript: 4.9.5
+
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@babel/runtime': 7.25.0
'@noble/curves': 1.4.2
'@noble/hashes': 1.4.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@4.9.5)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
bn.js: 5.2.1
borsh: 0.7.0
bs58: 4.0.1
@@ -802,6 +836,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@swc/helpers@0.5.12':
@@ -850,12 +885,6 @@ snapshots:
dependencies:
humanize-ms: 1.2.1
- anchor-bankrun@0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
- dependencies:
- '@coral-xyz/anchor': 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- solana-bankrun: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
-
ansi-colors@4.1.1: {}
ansi-regex@5.0.1: {}
@@ -883,16 +912,8 @@ snapshots:
base64-js@1.5.1: {}
- bigint-buffer@1.1.5:
- dependencies:
- bindings: 1.5.0
-
binary-extensions@2.3.0: {}
- bindings@1.5.0:
- dependencies:
- file-uri-to-path: 1.0.0
-
bn.js@5.2.1: {}
bn.js@5.2.2: {}
@@ -949,6 +970,8 @@ snapshots:
ansi-styles: 4.3.0
supports-color: 7.2.0
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -977,6 +1000,8 @@ snapshots:
color-name@1.1.4: {}
+ commander@14.0.2: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -1025,7 +1050,7 @@ snapshots:
fast-stable-stringify@1.0.0: {}
- file-uri-to-path@1.0.0: {}
+ fastestsmallesttextencoderdecoder@1.0.22: {}
fill-range@7.0.1:
dependencies:
@@ -1134,6 +1159,41 @@ snapshots:
jsonparse@1.3.1: {}
+ litesvm-darwin-arm64@0.4.0:
+ optional: true
+
+ litesvm-darwin-x64@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-musl@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-musl@0.4.0:
+ optional: true
+
+ litesvm@0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10):
+ dependencies:
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ fastestsmallesttextencoderdecoder: 1.0.22
+ optionalDependencies:
+ litesvm-darwin-arm64: 0.4.0
+ litesvm-darwin-x64: 0.4.0
+ litesvm-linux-arm64-gnu: 0.4.0
+ litesvm-linux-arm64-musl: 0.4.0
+ litesvm-linux-x64-gnu: 0.4.0
+ litesvm-linux-x64-musl: 0.4.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1258,36 +1318,6 @@ snapshots:
dependencies:
randombytes: 2.1.0
- solana-bankrun-darwin-arm64@0.3.0:
- optional: true
-
- solana-bankrun-darwin-universal@0.3.0:
- optional: true
-
- solana-bankrun-darwin-x64@0.3.0:
- optional: true
-
- solana-bankrun-linux-x64-gnu@0.3.0:
- optional: true
-
- solana-bankrun-linux-x64-musl@0.3.0:
- optional: true
-
- solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
- dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- bs58: 4.0.1
- optionalDependencies:
- solana-bankrun-darwin-arm64: 0.3.0
- solana-bankrun-darwin-universal: 0.3.0
- solana-bankrun-darwin-x64: 0.3.0
- solana-bankrun-linux-x64-gnu: 0.3.0
- solana-bankrun-linux-x64-musl: 0.3.0
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - utf-8-validate
-
source-map-support@0.5.21:
dependencies:
buffer-from: 1.1.2
diff --git a/basics/hello-solana/anchor/tests/bankrun.test.ts b/basics/hello-solana/anchor/tests/bankrun.test.ts
deleted file mode 100644
index ed740a3aa..000000000
--- a/basics/hello-solana/anchor/tests/bankrun.test.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { describe, it } from "node:test";
-import * as anchor from "@coral-xyz/anchor";
-import { PublicKey } from "@solana/web3.js";
-import { BankrunProvider } from "anchor-bankrun";
-import { startAnchor } from "solana-bankrun";
-import type { HelloSolana } from "../target/types/hello_solana";
-
-import IDL from "../target/idl/hello_solana.json" with { type: "json" };
-const PROGRAM_ID = new PublicKey(IDL.address);
-
-describe("hello-solana", async () => {
- // Configure the Anchor provider & load the program IDL for anchor-bankrun
- // The IDL gives you a typescript module
- const context = await startAnchor(
- "",
- [{ name: "hello_solana", programId: PROGRAM_ID }],
- [],
- );
- const provider = new BankrunProvider(context);
-
- const program = new anchor.Program(IDL, provider);
-
- it("Say hello!", async () => {
- // Just run Anchor's IDL method to build a transaction!
- //
- await program.methods.hello().accounts({}).rpc();
- });
-});
diff --git a/basics/hello-solana/anchor/tests/litesvm.test.ts b/basics/hello-solana/anchor/tests/litesvm.test.ts
new file mode 100644
index 000000000..77ebaa8df
--- /dev/null
+++ b/basics/hello-solana/anchor/tests/litesvm.test.ts
@@ -0,0 +1,55 @@
+import anchor from "@coral-xyz/anchor";
+import {
+ Keypair,
+ PublicKey,
+ Transaction,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import { LiteSVM } from "litesvm";
+import IDL from "../target/idl/hello_solana.json" with { type: "json" };
+
+describe("LiteSVM: hello-solana", () => {
+ const svm = new LiteSVM();
+ const programId = new PublicKey(IDL.address);
+ /**
+ * Creates a coder to easily build and encode program instructions based on the IDL.
+ */
+ const coder = new anchor.BorshCoder(IDL as anchor.Idl);
+
+ const payer = Keypair.generate();
+ svm.airdrop(payer.publicKey, BigInt(1000000000));
+
+ /**
+ * Load the hello_solana program binary into the LiteSVM instance
+ * for local testing and simulation.
+ */
+ const programPath = new URL(
+ "../target/deploy/hello_solana.so",
+ import.meta.url,
+ ).pathname;
+ svm.addProgramFromFile(programId, programPath);
+
+ it("Say hello!", () => {
+ /**
+ * Create an instruction for the 'hello' method using the Anchor coder.
+ * No arguments are needed for this instruction so i give `{}`.
+ */
+ const data = coder.instruction.encode("hello", {});
+
+ /**
+ * Build and sign a transaction to call the 'hello' instruction
+ * on the hello_solana program with LiteSVM.
+ */
+ const ix = new TransactionInstruction({
+ keys: [],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+ tx.sign(payer);
+ svm.sendTransaction(tx);
+ });
+});
diff --git a/basics/hello-solana/anchor/tests/test.ts b/basics/hello-solana/anchor/tests/test.ts
index a563837e3..99461bc30 100644
--- a/basics/hello-solana/anchor/tests/test.ts
+++ b/basics/hello-solana/anchor/tests/test.ts
@@ -1,17 +1,17 @@
-import * as anchor from '@coral-xyz/anchor';
-import { HelloSolana } from '../target/types/hello_solana';
+import * as anchor from "@coral-xyz/anchor";
+import type { HelloSolana } from "../target/types/hello_solana.ts";
-describe('hello-solana', () => {
- // Configure the Anchor provider & load the program IDL
- // The IDL gives you a typescript module
- //
- const provider = anchor.AnchorProvider.env();
- anchor.setProvider(provider);
- const program = anchor.workspace.HelloSolana as anchor.Program;
+describe("Anchor: hello-solana", () => {
+ // Configure the Anchor provider & load the program IDL
+ // The IDL gives you a typescript module
+ //
+ const provider = anchor.AnchorProvider.env();
+ anchor.setProvider(provider);
+ const program = anchor.workspace.HelloSolana as anchor.Program;
- it('Say hello!', async () => {
- // Just run Anchor's IDL method to build a transaction!
- //
- await program.methods.hello().accounts({}).rpc();
- });
+ it("Say hello!", async () => {
+ // Just run Anchor's IDL method to build a transaction!
+ //
+ await program.methods.hello().accounts({}).rpc();
+ });
});
diff --git a/basics/hello-solana/anchor/tsconfig.json b/basics/hello-solana/anchor/tsconfig.json
index cd5d2e3d0..fdf5c04de 100644
--- a/basics/hello-solana/anchor/tsconfig.json
+++ b/basics/hello-solana/anchor/tsconfig.json
@@ -1,10 +1,10 @@
{
- "compilerOptions": {
- "types": ["mocha", "chai"],
- "typeRoots": ["./node_modules/@types"],
- "lib": ["es2015"],
- "module": "commonjs",
- "target": "es6",
- "esModuleInterop": true
- }
+ "compilerOptions": {
+ "types": ["mocha", "chai"],
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2020"],
+ "module": "nodenext",
+ "target": "es2020",
+ "esModuleInterop": true
+ }
}
From 6a712e50d0f64dde1fd63c9bb6af0d0f198f6d3c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?solwarrior=20=F0=9F=97=A1=EF=B8=8F?=
<118261237+sol-warrior@users.noreply.github.com>
Date: Tue, 30 Dec 2025 08:33:25 +0530
Subject: [PATCH 23/49] Add LiteSVM Tests for Favorites Anchor program (#474)
* feat: add LiteSVM tests for favorites anchor program
- Implement tests for writing, updating, and validating favorite data on the blockchain.
- Ensure unauthorized transactions are rejected correctly.
- Utilize LiteSVM for transaction simulation and account state verification.
* chore: update dependencies in anchor package.json and pnpm-lock.yaml
- Upgrade @solana/web3.js from ^1.95.2 to ^1.98.4.
- Add litesvm dependency with version ^0.4.0.
- Update lockfile to reflect changes in dependencies and their versions.
* chore: update TypeScript configuration for anchor package
- Change target and module to es2020 and nodenext respectively.
- Update lib to include es2020 for improved compatibility.
* refactor: improve favorites test structure and error handling
- Update test descriptions for clarity.
- Replace deprecated error handling with assertions for unauthorized signer checks.
- Simplify transaction execution and data validation for favorites.
- Ensure consistent usage of BN for big number handling.
* chore: rename the filename for consistency and update test script
* chore: remove deprecated bankrun and related stuff
- Delete @solana-developers/helpers and related references from package.json and pnpm-lock.yaml.
- Remove favorites-bankrun.test.ts and system-errors.ts files as they are no longer needed.
- Clean up the project structure by eliminating obsolete code and dependencies.
---
basics/favorites/anchor/Anchor.toml | 2 +-
basics/favorites/anchor/package.json | 6 +-
basics/favorites/anchor/pnpm-lock.yaml | 290 +++++++++---------
.../anchor/tests/favorites-bankrun.test.ts | 97 ------
.../favorites/anchor/tests/favorites.test.ts | 82 -----
basics/favorites/anchor/tests/litesvm.test.ts | 143 +++++++++
.../favorites/anchor/tests/system-errors.ts | 20 --
basics/favorites/anchor/tests/test.ts | 87 ++++++
basics/favorites/anchor/tsconfig.json | 16 +-
9 files changed, 384 insertions(+), 359 deletions(-)
delete mode 100644 basics/favorites/anchor/tests/favorites-bankrun.test.ts
delete mode 100644 basics/favorites/anchor/tests/favorites.test.ts
create mode 100644 basics/favorites/anchor/tests/litesvm.test.ts
delete mode 100644 basics/favorites/anchor/tests/system-errors.ts
create mode 100644 basics/favorites/anchor/tests/test.ts
diff --git a/basics/favorites/anchor/Anchor.toml b/basics/favorites/anchor/Anchor.toml
index 4122ebdb8..94bbb8a8b 100644
--- a/basics/favorites/anchor/Anchor.toml
+++ b/basics/favorites/anchor/Anchor.toml
@@ -15,4 +15,4 @@ cluster = "Localnet"
wallet = "~/.config/solana/id.json"
[scripts]
-test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.test.ts"
+test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
diff --git a/basics/favorites/anchor/package.json b/basics/favorites/anchor/package.json
index 13e04d66f..31041ff82 100644
--- a/basics/favorites/anchor/package.json
+++ b/basics/favorites/anchor/package.json
@@ -6,19 +6,17 @@
},
"dependencies": {
"@coral-xyz/anchor": "0.32.1",
- "@solana-developers/helpers": "^2.0.0",
- "@solana/web3.js": "^1.95.2"
+ "@solana/web3.js": "^1.98.4",
+ "litesvm": "^0.4.0"
},
"license": "MIT",
"devDependencies": {
"@types/bn.js": "^5.1.0",
"@types/chai": "^4.3.0",
"@types/mocha": "^9.0.0",
- "anchor-bankrun": "^0.4.0",
"chai": "^4.3.4",
"mocha": "^9.0.3",
"prettier": "^2.6.2",
- "solana-bankrun": "^0.3.0",
"ts-mocha": "^10.0.0",
"typescript": "^4.3.5"
}
diff --git a/basics/favorites/anchor/pnpm-lock.yaml b/basics/favorites/anchor/pnpm-lock.yaml
index 7f2e738ca..2f0621b94 100644
--- a/basics/favorites/anchor/pnpm-lock.yaml
+++ b/basics/favorites/anchor/pnpm-lock.yaml
@@ -10,13 +10,13 @@ importers:
dependencies:
'@coral-xyz/anchor':
specifier: 0.32.1
- version: 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana-developers/helpers':
- specifier: ^2.0.0
- version: 2.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.95.2
- version: 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ litesvm:
+ specifier: ^0.4.0
+ version: 0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
devDependencies:
'@types/bn.js':
specifier: ^5.1.0
@@ -27,9 +27,6 @@ importers:
'@types/mocha':
specifier: ^9.0.0
version: 9.1.1
- anchor-bankrun:
- specifier: ^0.4.0
- version: 0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
chai:
specifier: ^4.3.4
version: 4.4.1
@@ -39,9 +36,6 @@ importers:
prettier:
specifier: ^2.6.2
version: 2.8.8
- solana-bankrun:
- specifier: ^0.3.0
- version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
ts-mocha:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
@@ -80,15 +74,31 @@ packages:
resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
engines: {node: ^14.21.3 || >=16}
- '@solana-developers/helpers@2.3.0':
- resolution: {integrity: sha512-OVdm/RJ9OMI23AnBYX/8UWuNtHRUxaXRUzhXo4WRtXYPHdQ+jTFS2TsjKSJ/F3a0kUZ6nN0b5TekFZvqYF0Qdg==}
-
'@solana/buffer-layout@4.0.1':
resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
engines: {node: '>=5.10'}
- '@solana/web3.js@1.95.2':
- resolution: {integrity: sha512-SjlHp0G4qhuhkQQc+YXdGkI8EerCqwxvgytMgBpzMUQTafrkNant3e7pgilBGgjy/iM40ICvWBLgASTPMrQU7w==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
'@swc/helpers@0.5.11':
resolution: {integrity: sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==}
@@ -134,14 +144,6 @@ packages:
resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
engines: {node: '>= 8.0.0'}
- anchor-bankrun@0.4.0:
- resolution: {integrity: sha512-s+K7E0IGAlmkhuo8nbiqVsQf2yJ+3l9GjNQJSmkRDe25dQj4Yef9rJh77FH6EQ5H6yQYfzuhgm/5GD6JMjdTZg==}
- engines: {node: '>= 10'}
- peerDependencies:
- '@coral-xyz/anchor': ^0.30.0
- '@solana/web3.js': ^1.78.4
- solana-bankrun: ^0.2.0
-
ansi-colors@4.1.1:
resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
engines: {node: '>=6'}
@@ -174,23 +176,13 @@ packages:
base-x@3.0.9:
resolution: {integrity: sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==}
- base-x@4.0.0:
- resolution: {integrity: sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==}
-
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- bigint-buffer@1.1.5:
- resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==}
- engines: {node: '>= 10.0.0'}
-
binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
- bindings@1.5.0:
- resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
-
bn.js@5.2.1:
resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==}
@@ -213,9 +205,6 @@ packages:
bs58@4.0.1:
resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==}
- bs58@5.0.0:
- resolution: {integrity: sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==}
-
buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
@@ -242,6 +231,10 @@ packages:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -259,6 +252,10 @@ packages:
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ 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==}
@@ -297,10 +294,6 @@ packages:
resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
engines: {node: '>=0.3.1'}
- dotenv@16.4.5:
- resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==}
- engines: {node: '>=12'}
-
emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
@@ -331,8 +324,8 @@ packages:
fast-stable-stringify@1.0.0:
resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
- file-uri-to-path@1.0.0:
- resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
+ fastestsmallesttextencoderdecoder@1.0.22:
+ resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
fill-range@7.1.1:
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
@@ -450,6 +443,46 @@ packages:
resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
engines: {'0': node >= 0.2.0}
+ litesvm-darwin-arm64@0.4.0:
+ resolution: {integrity: sha512-LN6iZcUQ6Xi5KO/7yJBYSALjjDCI/s/s2PgV3BqM4dpeBaLz+fXX/+qgMcBgpEVgEdEmhelux+WtAMkbEzJfrA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [darwin]
+
+ litesvm-darwin-x64@0.4.0:
+ resolution: {integrity: sha512-3ltogKQdle8LbakVqoB6plxaNwp6Vb3tnkqa3G5mAvvZNorB2iumThDaTZ381Knl69t566LZm+g/VDZwYfsfhA==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [darwin]
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ resolution: {integrity: sha512-SWlcRUqkXCMgLoDX/Wqr/S1lff+ggVI9f0YrRJMraxtEyApxutAoW2AWw4tvo6DsEgNwjxgsZOAwnE6bQBv8CA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-arm64-musl@0.4.0:
+ resolution: {integrity: sha512-YMMqwEWJUSWwL0Rwp8dFwl3jvgNU21eI7Qc+BpH9u2yeIRYQTn3rNGDnsK8v3QIZPHQdMo7NrPhzk4XoB1aKPg==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-x64-gnu@0.4.0:
+ resolution: {integrity: sha512-brZ3tFABDVQEYCgci7AO8iVYLw10UXVo97/lpTy75bTzNoqkggg8wFQOrbgCdb9NRwt06Y4Zf8cpIZAoDQq2mw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm-linux-x64-musl@0.4.0:
+ resolution: {integrity: sha512-D98qdIOuWg4fOewIIiH1D23AtM4I7/3vLKXIL8uQz06D5ev5fsBzNp2gM7libAywTkCYy/u666xgD6PsWhrTaw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm@0.4.0:
+ resolution: {integrity: sha512-ySr5mB2ap4SzJpmVR2I5+gjzTH8NJbkg7DYPormzA2U9F4LhfvTTrD17X/k5N3Bn4b5Db6/CwSyX2qc0HrJtNA==}
+ engines: {node: '>= 20'}
+
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -568,39 +601,6 @@ packages:
serialize-javascript@6.0.0:
resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
- solana-bankrun-darwin-arm64@0.3.0:
- resolution: {integrity: sha512-+NbDncf0U6l3knuacRBiqpjZ2DSp+5lZaAU518gH7/x6qubbui/d000STaIBK+uNTPBS/AL/bCN+7PkXqmA3lA==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [darwin]
-
- solana-bankrun-darwin-universal@0.3.0:
- resolution: {integrity: sha512-1/F0xdMa4qvc5o6z16FCCbZ5jbdvKvxpx5kyPcMWRiRPwyvi+zltMxciPAYMlg3wslQqGz88uFhrBEzq2eTumQ==}
- engines: {node: '>= 10'}
- os: [darwin]
-
- solana-bankrun-darwin-x64@0.3.0:
- resolution: {integrity: sha512-U6CANjkmMl+lgNA7UH0GKs5V7LtVIUDzJBZefGGqLfqUNv3EjA/PrrToM0hAOWJgkxSwdz6zW+p5sw5FmnbXtg==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [darwin]
-
- solana-bankrun-linux-x64-gnu@0.3.0:
- resolution: {integrity: sha512-qJSkCFs0k2n4XtTnyxGMiZsuqO2TiqTYgWjQ+3mZhGNUAMys/Vq8bd7/SyBm6RR7EfVuRXRxZvh+F8oKZ77V4w==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- solana-bankrun-linux-x64-musl@0.3.0:
- resolution: {integrity: sha512-xsS2CS2xb1Sw4ivNXM0gPz/qpW9BX0neSvt/pnok5L330Nu9xlTnKAY8FhzzqOP9P9sJlGRM787Y6d0yYwt6xQ==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- solana-bankrun@0.3.0:
- resolution: {integrity: sha512-YkH7sa8TB/AoRPzG17CXJtYsRIQHEkEqGLz1Vwc13taXhDBkjO7z6NI5JYw7n0ybRymDHwMYTc7sd+5J40TyVQ==}
- engines: {node: '>= 10'}
-
source-map-support@0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
@@ -770,12 +770,12 @@ snapshots:
'@coral-xyz/anchor-errors@0.31.1': {}
- '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@coral-xyz/anchor-errors': 0.31.1
- '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))
'@noble/hashes': 1.8.0
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
bs58: 4.0.1
buffer-layout: 1.2.2
@@ -788,11 +788,12 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))':
dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
buffer-layout: 1.2.2
@@ -804,28 +805,35 @@ snapshots:
'@noble/hashes@1.8.0': {}
- '@solana-developers/helpers@2.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
- dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- bs58: 5.0.0
- dotenv: 16.4.5
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - utf-8-validate
-
'@solana/buffer-layout@4.0.1':
dependencies:
buffer: 6.0.3
- '@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/codecs-core@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@4.9.5)
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.3.0(typescript@4.9.5)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.2
+ typescript: 4.9.5
+
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@babel/runtime': 7.25.0
'@noble/curves': 1.4.2
'@noble/hashes': 1.4.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@4.9.5)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
bn.js: 5.2.1
borsh: 0.7.0
bs58: 4.0.1
@@ -838,6 +846,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@swc/helpers@0.5.11':
@@ -886,12 +895,6 @@ snapshots:
dependencies:
humanize-ms: 1.2.1
- anchor-bankrun@0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
- dependencies:
- '@coral-xyz/anchor': 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- solana-bankrun: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
-
ansi-colors@4.1.1: {}
ansi-regex@5.0.1: {}
@@ -917,20 +920,10 @@ snapshots:
dependencies:
safe-buffer: 5.2.1
- base-x@4.0.0: {}
-
base64-js@1.5.1: {}
- bigint-buffer@1.1.5:
- dependencies:
- bindings: 1.5.0
-
binary-extensions@2.3.0: {}
- bindings@1.5.0:
- dependencies:
- file-uri-to-path: 1.0.0
-
bn.js@5.2.1: {}
bn.js@5.2.2: {}
@@ -956,10 +949,6 @@ snapshots:
dependencies:
base-x: 3.0.9
- bs58@5.0.0:
- dependencies:
- base-x: 4.0.0
-
buffer-from@1.1.2: {}
buffer-layout@1.2.2: {}
@@ -991,6 +980,8 @@ snapshots:
ansi-styles: 4.3.0
supports-color: 7.2.0
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -1019,6 +1010,8 @@ snapshots:
color-name@1.1.4: {}
+ commander@14.0.2: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -1047,8 +1040,6 @@ snapshots:
diff@5.0.0: {}
- dotenv@16.4.5: {}
-
emoji-regex@8.0.0: {}
es6-promise@4.2.8: {}
@@ -1069,7 +1060,7 @@ snapshots:
fast-stable-stringify@1.0.0: {}
- file-uri-to-path@1.0.0: {}
+ fastestsmallesttextencoderdecoder@1.0.22: {}
fill-range@7.1.1:
dependencies:
@@ -1178,6 +1169,41 @@ snapshots:
jsonparse@1.3.1: {}
+ litesvm-darwin-arm64@0.4.0:
+ optional: true
+
+ litesvm-darwin-x64@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-musl@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-musl@0.4.0:
+ optional: true
+
+ litesvm@0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10):
+ dependencies:
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ fastestsmallesttextencoderdecoder: 1.0.22
+ optionalDependencies:
+ litesvm-darwin-arm64: 0.4.0
+ litesvm-darwin-x64: 0.4.0
+ litesvm-linux-arm64-gnu: 0.4.0
+ litesvm-linux-arm64-musl: 0.4.0
+ litesvm-linux-x64-gnu: 0.4.0
+ litesvm-linux-x64-musl: 0.4.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1304,36 +1330,6 @@ snapshots:
dependencies:
randombytes: 2.1.0
- solana-bankrun-darwin-arm64@0.3.0:
- optional: true
-
- solana-bankrun-darwin-universal@0.3.0:
- optional: true
-
- solana-bankrun-darwin-x64@0.3.0:
- optional: true
-
- solana-bankrun-linux-x64-gnu@0.3.0:
- optional: true
-
- solana-bankrun-linux-x64-musl@0.3.0:
- optional: true
-
- solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
- dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- bs58: 4.0.1
- optionalDependencies:
- solana-bankrun-darwin-arm64: 0.3.0
- solana-bankrun-darwin-universal: 0.3.0
- solana-bankrun-darwin-x64: 0.3.0
- solana-bankrun-linux-x64-gnu: 0.3.0
- solana-bankrun-linux-x64-musl: 0.3.0
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - utf-8-validate
-
source-map-support@0.5.21:
dependencies:
buffer-from: 1.1.2
diff --git a/basics/favorites/anchor/tests/favorites-bankrun.test.ts b/basics/favorites/anchor/tests/favorites-bankrun.test.ts
deleted file mode 100644
index 5a1056fa3..000000000
--- a/basics/favorites/anchor/tests/favorites-bankrun.test.ts
+++ /dev/null
@@ -1,97 +0,0 @@
-import { describe, it } from "node:test";
-import * as anchor from "@coral-xyz/anchor";
-import { PublicKey } from "@solana/web3.js";
-import { getCustomErrorMessage } from "@solana-developers/helpers";
-import { BankrunProvider } from "anchor-bankrun";
-import { assert } from "chai";
-import { startAnchor } from "solana-bankrun";
-import type { Favorites } from "../target/types/favorites";
-import { systemProgramErrors } from "./system-errors";
-
-const web3 = anchor.web3;
-import IDL from "../target/idl/favorites.json";
-const PROGRAM_ID = new PublicKey(IDL.address);
-
-describe("Favorites Bankrun", async () => {
- // Use the cluster and the keypair from Anchor.toml
- // Load programs into anchor-bankrun
- const context = await startAnchor(
- "",
- [{ name: "favorites", programId: PROGRAM_ID }],
- [],
- );
- const provider = new BankrunProvider(context);
- anchor.setProvider(provider);
- const user = (provider.wallet as anchor.Wallet).payer;
- const someRandomGuy = anchor.web3.Keypair.generate();
-
- const program = new anchor.Program(IDL, provider);
-
- // Here's what we want to write to the blockchain
- const favoriteNumber = new anchor.BN(23);
- const favoriteColor = "purple";
- const favoriteHobbies = ["skiing", "skydiving", "biking"];
-
- // We don't need to airdrop if we're using the local cluster
- // because the local cluster gives us 1,000,000 SOL
- const balance = await context.banksClient.getBalance(user.publicKey);
- const balanceInSOL = balance / BigInt(web3.LAMPORTS_PER_SOL);
- const formattedBalance = new Intl.NumberFormat().format(balanceInSOL);
- console.log(`Balance: ${formattedBalance} SOL`);
-
- it("Writes our favorites to the blockchain", async () => {
- await program.methods
- // set_favourites in Rust becomes setFavorites in TypeScript
- .setFavorites(favoriteNumber, favoriteColor, favoriteHobbies)
- // Sign the transaction
- .signers([user])
- // Send the transaction to the cluster or RPC
- .rpc();
-
- // Find the PDA for the user's favorites
- const favoritesPdaAndBump = web3.PublicKey.findProgramAddressSync(
- [Buffer.from("favorites"), user.publicKey.toBuffer()],
- program.programId,
- );
- const favoritesPda = favoritesPdaAndBump[0];
- const dataFromPda = await program.account.favorites.fetch(favoritesPda);
- // And make sure it matches!
- assert.equal(dataFromPda.color, favoriteColor);
- // A little extra work to make sure the BNs are equal
- assert.equal(dataFromPda.number.toString(), favoriteNumber.toString());
- // And check the hobbies too
- assert.deepEqual(dataFromPda.hobbies, favoriteHobbies);
- });
-
- it("Updates the favorites", async () => {
- const newFavoriteHobbies = ["skiing", "skydiving", "biking", "swimming"];
- try {
- await program.methods
- .setFavorites(favoriteNumber, favoriteColor, newFavoriteHobbies)
- .signers([user])
- .rpc();
- } catch (error) {
- console.error((error as Error).message);
- const customErrorMessage = getCustomErrorMessage(
- systemProgramErrors,
- error,
- );
- throw new Error(customErrorMessage);
- }
- });
-
- it("Rejects transactions from unauthorized signers", async () => {
- try {
- await program.methods
- // set_favourites in Rust becomes setFavorites in TypeScript
- .setFavorites(favoriteNumber, favoriteColor, favoriteHobbies)
- // Sign the transaction
- .signers([someRandomGuy])
- // Send the transaction to the cluster or RPC
- .rpc();
- } catch (error) {
- const errorMessage = (error as Error).message;
- assert.isTrue(errorMessage.includes("unknown signer"));
- }
- });
-});
diff --git a/basics/favorites/anchor/tests/favorites.test.ts b/basics/favorites/anchor/tests/favorites.test.ts
deleted file mode 100644
index 9c5fe4024..000000000
--- a/basics/favorites/anchor/tests/favorites.test.ts
+++ /dev/null
@@ -1,82 +0,0 @@
-import type { Program } from '@coral-xyz/anchor';
-import * as anchor from '@coral-xyz/anchor';
-import { getCustomErrorMessage } from '@solana-developers/helpers';
-import { assert } from 'chai';
-import type { Favorites } from '../target/types/favorites';
-import { systemProgramErrors } from './system-errors';
-
-const web3 = anchor.web3;
-
-describe('Favorites', () => {
- // Use the cluster and the keypair from Anchor.toml
- const provider = anchor.AnchorProvider.env();
- anchor.setProvider(provider);
-
- // See https://github.com/coral-xyz/anchor/issues/3122
- const user = (provider.wallet as anchor.Wallet).payer;
- const someRandomGuy = anchor.web3.Keypair.generate();
- const program = anchor.workspace.Favorites as Program;
-
- // Here's what we want to write to the blockchain
- const favoriteNumber = new anchor.BN(23);
- const favoriteColor = 'purple';
- const favoriteHobbies = ['skiing', 'skydiving', 'biking'];
-
- // We don't need to airdrop if we're using the local cluster
- // because the local cluster gives us 85 billion dollars worth of SOL
- before(async () => {
- const balance = await provider.connection.getBalance(user.publicKey);
- const balanceInSOL = balance / web3.LAMPORTS_PER_SOL;
- const formattedBalance = new Intl.NumberFormat().format(balanceInSOL);
- console.log(`Balance: ${formattedBalance} SOL`);
- });
-
- it('Writes our favorites to the blockchain', async () => {
- await program.methods
- // set_favourites in Rust becomes setFavorites in TypeScript
- .setFavorites(favoriteNumber, favoriteColor, favoriteHobbies)
- // Sign the transaction
- .signers([user])
- // Send the transaction to the cluster or RPC
- .rpc();
-
- // Find the PDA for the user's favorites
- const favoritesPdaAndBump = web3.PublicKey.findProgramAddressSync([Buffer.from('favorites'), user.publicKey.toBuffer()], program.programId);
- const favoritesPda = favoritesPdaAndBump[0];
- const dataFromPda = await program.account.favorites.fetch(favoritesPda);
- // And make sure it matches!
- assert.equal(dataFromPda.color, favoriteColor);
- // A little extra work to make sure the BNs are equal
- assert.equal(dataFromPda.number.toString(), favoriteNumber.toString());
- // And check the hobbies too
- assert.deepEqual(dataFromPda.hobbies, favoriteHobbies);
- });
-
- it('Updates the favorites', async () => {
- const newFavoriteHobbies = ['skiing', 'skydiving', 'biking', 'swimming'];
- try {
- const signature = await program.methods.setFavorites(favoriteNumber, favoriteColor, newFavoriteHobbies).signers([user]).rpc();
-
- console.log(`Transaction signature: ${signature}`);
- } catch (error) {
- console.error((error as Error).message);
- const customErrorMessage = getCustomErrorMessage(systemProgramErrors, error);
- throw new Error(customErrorMessage);
- }
- });
-
- it('Rejects transactions from unauthorized signers', async () => {
- try {
- await program.methods
- // set_favourites in Rust becomes setFavorites in TypeScript
- .setFavorites(favoriteNumber, favoriteColor, favoriteHobbies)
- // Sign the transaction
- .signers([someRandomGuy])
- // Send the transaction to the cluster or RPC
- .rpc();
- } catch (error) {
- const errorMessage = (error as Error).message;
- assert.isTrue(errorMessage.includes('unknown signer'));
- }
- });
-});
diff --git a/basics/favorites/anchor/tests/litesvm.test.ts b/basics/favorites/anchor/tests/litesvm.test.ts
new file mode 100644
index 000000000..89fffe52e
--- /dev/null
+++ b/basics/favorites/anchor/tests/litesvm.test.ts
@@ -0,0 +1,143 @@
+import anchor from "@coral-xyz/anchor";
+import {
+ Keypair,
+ PublicKey,
+ SystemProgram,
+ Transaction,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import { assert } from "chai";
+import { LiteSVM } from "litesvm";
+
+import IDL from "../target/idl/favorites.json" with { type: "json" };
+
+describe("LiteSVM: Favorites", () => {
+ const svm = new LiteSVM();
+ const programId = new PublicKey(IDL.address);
+ const coder = new anchor.BorshCoder(IDL as anchor.Idl); //For serialization and deserialization
+ const payer = Keypair.generate();
+ svm.airdrop(payer.publicKey, BigInt(1000000000));
+
+ const programPath = new URL("../target/deploy/favorites.so", import.meta.url)
+ .pathname;
+ svm.addProgramFromFile(programId, programPath);
+
+ const [favPdaAccount] = PublicKey.findProgramAddressSync(
+ [Buffer.from("favorites"), payer.publicKey.toBuffer()],
+ programId,
+ );
+ /**
+ * Here's what we want to write to the blockchain
+ */
+ const favoriteNumber = new anchor.BN(23);
+ const favoriteColor = "purple";
+ const favoriteHobbies = ["skiing", "skydiving", "biking"];
+
+ it("Writes our favorites to the blockchain", () => {
+ const ixArgs = {
+ number: favoriteNumber,
+ color: favoriteColor,
+ hobbies: favoriteHobbies,
+ };
+
+ const data = coder.instruction.encode("set_favorites", ixArgs);
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: payer.publicKey, isSigner: true, isWritable: true },
+ { pubkey: favPdaAccount, isSigner: false, isWritable: true },
+ { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
+ ],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+ tx.sign(payer);
+ svm.sendTransaction(tx);
+
+ /**
+ * Fetch the account and check its favorites
+ */
+ const favAccountInfo = svm.getAccount(favPdaAccount);
+ const favAccount = coder.accounts.decode(
+ "Favorites",
+ Buffer.from(favAccountInfo.data),
+ );
+
+ assert.equal(favAccount.number.toNumber(), favoriteNumber.toNumber());
+ assert.equal(favAccount.color, favoriteColor);
+ assert.deepStrictEqual(favAccount.hobbies, favoriteHobbies);
+ });
+
+ it("Updates the favorites", () => {
+ const newFavoriteHobbies = ["coding", "reading", "biking", "swimming"];
+ const ixArgs = {
+ number: favoriteNumber,
+ color: favoriteColor,
+ hobbies: newFavoriteHobbies,
+ };
+
+ const data = coder.instruction.encode("set_favorites", ixArgs);
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: payer.publicKey, isSigner: true, isWritable: true },
+ { pubkey: favPdaAccount, isSigner: false, isWritable: true },
+ { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
+ ],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+ tx.sign(payer);
+ svm.sendTransaction(tx);
+
+ /**
+ * Fetch the account and check its favorites
+ */
+ const favAccountInfo = svm.getAccount(favPdaAccount);
+ const favAccount = coder.accounts.decode(
+ "Favorites",
+ Buffer.from(favAccountInfo.data),
+ );
+
+ assert.equal(favAccount.number.toNumber(), favoriteNumber.toNumber());
+ assert.equal(favAccount.color, favoriteColor);
+ assert.deepStrictEqual(favAccount.hobbies, newFavoriteHobbies);
+ });
+
+ it("Rejects transactions from unauthorized signers", () => {
+ const newFavoriteHobbies = ["coding", "reading", "biking"];
+ const someRandomGuy = Keypair.generate();
+
+ const ixArgs = {
+ number: favoriteNumber,
+ color: favoriteColor,
+ hobbies: newFavoriteHobbies,
+ };
+
+ const data = coder.instruction.encode("set_favorites", ixArgs);
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: payer.publicKey, isSigner: true, isWritable: true },
+ { pubkey: favPdaAccount, isSigner: false, isWritable: true },
+ { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
+ ],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+
+ assert.Throw(() => {
+ tx.sign(someRandomGuy);
+ svm.sendTransaction(tx);
+ }, "unknown signer");
+ });
+});
diff --git a/basics/favorites/anchor/tests/system-errors.ts b/basics/favorites/anchor/tests/system-errors.ts
deleted file mode 100644
index 845ce2f30..000000000
--- a/basics/favorites/anchor/tests/system-errors.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-// From https://github.com/solana-labs/solana/blob/a94920a4eadf1008fc292e47e041c1b3b0d949df/sdk/program/src/system_instruction.rs
-export const systemProgramErrors = [
- 'an account with the same address already exists',
-
- 'account does not have enough SOL to perform the operation',
-
- 'cannot assign account to this program id',
-
- 'cannot allocate account data of this length',
-
- 'length of requested seed is too long',
-
- 'provided address does not match addressed derived from seed',
-
- 'advancing stored nonce requires a populated RecentBlockhashes sysvar',
-
- 'stored nonce is still in recent_blockhashes',
-
- 'specified nonce does not match stored nonce',
-];
diff --git a/basics/favorites/anchor/tests/test.ts b/basics/favorites/anchor/tests/test.ts
new file mode 100644
index 000000000..6a2c1b95f
--- /dev/null
+++ b/basics/favorites/anchor/tests/test.ts
@@ -0,0 +1,87 @@
+import type { Program } from "@coral-xyz/anchor";
+import * as anchor from "@coral-xyz/anchor";
+import { BN } from "bn.js";
+import { assert } from "chai";
+import type { Favorites } from "../target/types/favorites.ts";
+
+describe("Anchor: Favorites", () => {
+ // Use the cluster and the keypair from Anchor.toml
+ const provider = anchor.AnchorProvider.env();
+ anchor.setProvider(provider);
+ const web3 = anchor.web3;
+ // See https://github.com/coral-xyz/anchor/issues/3122
+ const user = (provider.wallet as anchor.Wallet).payer;
+ const someRandomGuy = anchor.web3.Keypair.generate();
+ const program = anchor.workspace.Favorites as Program;
+
+ // Here's what we want to write to the blockchain
+ const favoriteNumber = new BN(23);
+ const favoriteColor = "purple";
+ const favoriteHobbies = ["skiing", "skydiving", "biking"];
+
+ // We don't need to airdrop if we're using the local cluster
+ // because the local cluster gives us 85 billion dollars worth of SOL
+ before(async () => {
+ const balance = await provider.connection.getBalance(user.publicKey);
+ const balanceInSOL = balance / web3.LAMPORTS_PER_SOL;
+ const formattedBalance = new Intl.NumberFormat().format(balanceInSOL);
+ console.log(`Balance: ${formattedBalance} SOL`);
+ });
+
+ it("Writes our favorites to the blockchain", async () => {
+ await program.methods
+ // set_favourites in Rust becomes setFavorites in TypeScript
+ .setFavorites(favoriteNumber, favoriteColor, favoriteHobbies)
+ // Sign the transaction
+ .signers([user])
+ // Send the transaction to the cluster or RPC
+ .rpc();
+
+ // Find the PDA for the user's favorites
+ const favoritesPdaAndBump = web3.PublicKey.findProgramAddressSync(
+ [Buffer.from("favorites"), user.publicKey.toBuffer()],
+ program.programId,
+ );
+ const favoritesPda = favoritesPdaAndBump[0];
+ const dataFromPda = await program.account.favorites.fetch(favoritesPda);
+ // And make sure it matches!
+ assert.equal(dataFromPda.color, favoriteColor);
+ // A little extra work to make sure the BNs are equal
+ assert.equal(dataFromPda.number.toString(), favoriteNumber.toString());
+ // And check the hobbies too
+ assert.deepEqual(dataFromPda.hobbies, favoriteHobbies);
+ });
+
+ it("Updates the favorites", async () => {
+ const newFavoriteHobbies = ["skiing", "skydiving", "biking", "swimming"];
+
+ await program.methods
+ .setFavorites(favoriteNumber, favoriteColor, newFavoriteHobbies)
+ .signers([user])
+ .rpc();
+
+ // Find the PDA for the user's favorites
+ const favoritesPdaAndBump = web3.PublicKey.findProgramAddressSync(
+ [Buffer.from("favorites"), user.publicKey.toBuffer()],
+ program.programId,
+ );
+ const favoritesPda = favoritesPdaAndBump[0];
+ const dataFromPda = await program.account.favorites.fetch(favoritesPda);
+
+ assert.equal(dataFromPda.color, favoriteColor);
+ assert.equal(dataFromPda.number.toString(), favoriteNumber.toString());
+ assert.deepEqual(dataFromPda.hobbies, newFavoriteHobbies);
+ });
+
+ it("Rejects transactions from unauthorized signers", async () => {
+ try {
+ await program.methods
+ .setFavorites(favoriteNumber, favoriteColor, favoriteHobbies)
+ .signers([someRandomGuy])
+ .rpc();
+ assert.fail("Expected unauthorized signer error");
+ } catch (err) {
+ assert.include((err as Error).message, "unknown signer");
+ }
+ });
+});
diff --git a/basics/favorites/anchor/tsconfig.json b/basics/favorites/anchor/tsconfig.json
index cd5d2e3d0..fdf5c04de 100644
--- a/basics/favorites/anchor/tsconfig.json
+++ b/basics/favorites/anchor/tsconfig.json
@@ -1,10 +1,10 @@
{
- "compilerOptions": {
- "types": ["mocha", "chai"],
- "typeRoots": ["./node_modules/@types"],
- "lib": ["es2015"],
- "module": "commonjs",
- "target": "es6",
- "esModuleInterop": true
- }
+ "compilerOptions": {
+ "types": ["mocha", "chai"],
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2020"],
+ "module": "nodenext",
+ "target": "es2020",
+ "esModuleInterop": true
+ }
}
From 470381227a0dcb062274370adf1fc21474c1b002 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?solwarrior=20=F0=9F=97=A1=EF=B8=8F?=
<118261237+sol-warrior@users.noreply.github.com>
Date: Tue, 30 Dec 2025 08:33:29 +0530
Subject: [PATCH 24/49] Add LiteSVM Tests for Cross-Program Invocation Anchor
program (#473)
* feat: add LiteSVM tests for cross-program invocation in Anchor
* Implement tests for initializing and interacting with the lever program using LiteSVM.
* Validate state changes and transaction handling for the power account.
* Ensure proper serialization and deserialization of instruction data.
* chore: update @solana/web3.js and add litesvm dependency in package.json
* chore: update TypeScript configuration for Anchor project
* Change target and module to ES2020 and nodenext respectively.
* Update library to ES2020 for improved compatibility.
* refactor: replace cpi.ts with test.ts for improved cross-program invocation testing
* Introduce test.ts with enhanced tests for initializing and interacting with the lever program.
* Include assertions to validate state changes and account information.
* Remove outdated cpi.ts test file.
* chore: remove deprecated dependencies and test file for bankrun
* Remove outdated bankrun.test.ts file to clean up the project structure.
* Delete anchor-bankrun and solana-bankrun dependencies from package.json and pnpm-lock.yaml.
---
.../anchor/package.json | 5 +-
.../anchor/pnpm-lock.yaml | 256 ++++++++++--------
.../anchor/tests/bankrun.test.ts | 65 -----
.../anchor/tests/cpi.ts | 44 ---
.../anchor/tests/litesvm.test.ts | 152 +++++++++++
.../anchor/tests/test.ts | 82 ++++++
.../anchor/tsconfig.json | 16 +-
7 files changed, 387 insertions(+), 233 deletions(-)
delete mode 100644 basics/cross-program-invocation/anchor/tests/bankrun.test.ts
delete mode 100644 basics/cross-program-invocation/anchor/tests/cpi.ts
create mode 100644 basics/cross-program-invocation/anchor/tests/litesvm.test.ts
create mode 100644 basics/cross-program-invocation/anchor/tests/test.ts
diff --git a/basics/cross-program-invocation/anchor/package.json b/basics/cross-program-invocation/anchor/package.json
index f6441cc95..507738dfd 100644
--- a/basics/cross-program-invocation/anchor/package.json
+++ b/basics/cross-program-invocation/anchor/package.json
@@ -6,17 +6,16 @@
},
"dependencies": {
"@coral-xyz/anchor": "0.32.1",
- "@solana/web3.js": "^1.95.2"
+ "@solana/web3.js": "^1.98.4",
+ "litesvm": "^0.4.0"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
"@types/chai": "^4.3.0",
"@types/mocha": "^9.0.0",
- "anchor-bankrun": "^0.4.0",
"chai": "^4.3.4",
"mocha": "^9.0.3",
"prettier": "^2.6.2",
- "solana-bankrun": "^0.3.0",
"ts-mocha": "^10.0.0",
"typescript": "^4.3.5"
}
diff --git a/basics/cross-program-invocation/anchor/pnpm-lock.yaml b/basics/cross-program-invocation/anchor/pnpm-lock.yaml
index de08fa515..e245febe7 100644
--- a/basics/cross-program-invocation/anchor/pnpm-lock.yaml
+++ b/basics/cross-program-invocation/anchor/pnpm-lock.yaml
@@ -10,10 +10,13 @@ importers:
dependencies:
'@coral-xyz/anchor':
specifier: 0.32.1
- version: 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.95.2
- version: 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ litesvm:
+ specifier: ^0.4.0
+ version: 0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
devDependencies:
'@types/bn.js':
specifier: ^5.1.0
@@ -24,9 +27,6 @@ importers:
'@types/mocha':
specifier: ^9.0.0
version: 9.1.1
- anchor-bankrun:
- specifier: ^0.4.0
- version: 0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
chai:
specifier: ^4.3.4
version: 4.4.1
@@ -36,9 +36,6 @@ importers:
prettier:
specifier: ^2.6.2
version: 2.8.8
- solana-bankrun:
- specifier: ^0.3.0
- version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
ts-mocha:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
@@ -81,8 +78,27 @@ packages:
resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
engines: {node: '>=5.10'}
- '@solana/web3.js@1.95.2':
- resolution: {integrity: sha512-SjlHp0G4qhuhkQQc+YXdGkI8EerCqwxvgytMgBpzMUQTafrkNant3e7pgilBGgjy/iM40ICvWBLgASTPMrQU7w==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
'@swc/helpers@0.5.12':
resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==}
@@ -128,14 +144,6 @@ packages:
resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
engines: {node: '>= 8.0.0'}
- anchor-bankrun@0.4.0:
- resolution: {integrity: sha512-s+K7E0IGAlmkhuo8nbiqVsQf2yJ+3l9GjNQJSmkRDe25dQj4Yef9rJh77FH6EQ5H6yQYfzuhgm/5GD6JMjdTZg==}
- engines: {node: '>= 10'}
- peerDependencies:
- '@coral-xyz/anchor': ^0.30.0
- '@solana/web3.js': ^1.78.4
- solana-bankrun: ^0.2.0
-
ansi-colors@4.1.1:
resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
engines: {node: '>=6'}
@@ -171,17 +179,10 @@ packages:
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- bigint-buffer@1.1.5:
- resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==}
- engines: {node: '>= 10.0.0'}
-
binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
- bindings@1.5.0:
- resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
-
bn.js@5.2.1:
resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==}
@@ -230,6 +231,10 @@ packages:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -247,6 +252,10 @@ packages:
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ 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==}
@@ -315,8 +324,8 @@ packages:
fast-stable-stringify@1.0.0:
resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
- file-uri-to-path@1.0.0:
- resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
+ fastestsmallesttextencoderdecoder@1.0.22:
+ resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
@@ -432,6 +441,46 @@ packages:
resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
engines: {'0': node >= 0.2.0}
+ litesvm-darwin-arm64@0.4.0:
+ resolution: {integrity: sha512-LN6iZcUQ6Xi5KO/7yJBYSALjjDCI/s/s2PgV3BqM4dpeBaLz+fXX/+qgMcBgpEVgEdEmhelux+WtAMkbEzJfrA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [darwin]
+
+ litesvm-darwin-x64@0.4.0:
+ resolution: {integrity: sha512-3ltogKQdle8LbakVqoB6plxaNwp6Vb3tnkqa3G5mAvvZNorB2iumThDaTZ381Knl69t566LZm+g/VDZwYfsfhA==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [darwin]
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ resolution: {integrity: sha512-SWlcRUqkXCMgLoDX/Wqr/S1lff+ggVI9f0YrRJMraxtEyApxutAoW2AWw4tvo6DsEgNwjxgsZOAwnE6bQBv8CA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-arm64-musl@0.4.0:
+ resolution: {integrity: sha512-YMMqwEWJUSWwL0Rwp8dFwl3jvgNU21eI7Qc+BpH9u2yeIRYQTn3rNGDnsK8v3QIZPHQdMo7NrPhzk4XoB1aKPg==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-x64-gnu@0.4.0:
+ resolution: {integrity: sha512-brZ3tFABDVQEYCgci7AO8iVYLw10UXVo97/lpTy75bTzNoqkggg8wFQOrbgCdb9NRwt06Y4Zf8cpIZAoDQq2mw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm-linux-x64-musl@0.4.0:
+ resolution: {integrity: sha512-D98qdIOuWg4fOewIIiH1D23AtM4I7/3vLKXIL8uQz06D5ev5fsBzNp2gM7libAywTkCYy/u666xgD6PsWhrTaw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm@0.4.0:
+ resolution: {integrity: sha512-ySr5mB2ap4SzJpmVR2I5+gjzTH8NJbkg7DYPormzA2U9F4LhfvTTrD17X/k5N3Bn4b5Db6/CwSyX2qc0HrJtNA==}
+ engines: {node: '>= 20'}
+
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -550,39 +599,6 @@ packages:
serialize-javascript@6.0.0:
resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
- solana-bankrun-darwin-arm64@0.3.0:
- resolution: {integrity: sha512-+NbDncf0U6l3knuacRBiqpjZ2DSp+5lZaAU518gH7/x6qubbui/d000STaIBK+uNTPBS/AL/bCN+7PkXqmA3lA==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [darwin]
-
- solana-bankrun-darwin-universal@0.3.0:
- resolution: {integrity: sha512-1/F0xdMa4qvc5o6z16FCCbZ5jbdvKvxpx5kyPcMWRiRPwyvi+zltMxciPAYMlg3wslQqGz88uFhrBEzq2eTumQ==}
- engines: {node: '>= 10'}
- os: [darwin]
-
- solana-bankrun-darwin-x64@0.3.0:
- resolution: {integrity: sha512-U6CANjkmMl+lgNA7UH0GKs5V7LtVIUDzJBZefGGqLfqUNv3EjA/PrrToM0hAOWJgkxSwdz6zW+p5sw5FmnbXtg==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [darwin]
-
- solana-bankrun-linux-x64-gnu@0.3.0:
- resolution: {integrity: sha512-qJSkCFs0k2n4XtTnyxGMiZsuqO2TiqTYgWjQ+3mZhGNUAMys/Vq8bd7/SyBm6RR7EfVuRXRxZvh+F8oKZ77V4w==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- solana-bankrun-linux-x64-musl@0.3.0:
- resolution: {integrity: sha512-xsS2CS2xb1Sw4ivNXM0gPz/qpW9BX0neSvt/pnok5L330Nu9xlTnKAY8FhzzqOP9P9sJlGRM787Y6d0yYwt6xQ==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- solana-bankrun@0.3.0:
- resolution: {integrity: sha512-YkH7sa8TB/AoRPzG17CXJtYsRIQHEkEqGLz1Vwc13taXhDBkjO7z6NI5JYw7n0ybRymDHwMYTc7sd+5J40TyVQ==}
- engines: {node: '>= 10'}
-
source-map-support@0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
@@ -752,12 +768,12 @@ snapshots:
'@coral-xyz/anchor-errors@0.31.1': {}
- '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@coral-xyz/anchor-errors': 0.31.1
- '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))
'@noble/hashes': 1.8.0
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
bs58: 4.0.1
buffer-layout: 1.2.2
@@ -770,11 +786,12 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))':
dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
buffer-layout: 1.2.2
@@ -790,14 +807,31 @@ snapshots:
dependencies:
buffer: 6.0.3
- '@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/codecs-core@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@4.9.5)
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.3.0(typescript@4.9.5)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.2
+ typescript: 4.9.5
+
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@babel/runtime': 7.25.0
'@noble/curves': 1.5.0
'@noble/hashes': 1.4.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@4.9.5)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
bn.js: 5.2.1
borsh: 0.7.0
bs58: 4.0.1
@@ -810,6 +844,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@swc/helpers@0.5.12':
@@ -858,12 +893,6 @@ snapshots:
dependencies:
humanize-ms: 1.2.1
- anchor-bankrun@0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
- dependencies:
- '@coral-xyz/anchor': 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- solana-bankrun: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
-
ansi-colors@4.1.1: {}
ansi-regex@5.0.1: {}
@@ -891,16 +920,8 @@ snapshots:
base64-js@1.5.1: {}
- bigint-buffer@1.1.5:
- dependencies:
- bindings: 1.5.0
-
binary-extensions@2.3.0: {}
- bindings@1.5.0:
- dependencies:
- file-uri-to-path: 1.0.0
-
bn.js@5.2.1: {}
bn.js@5.2.2: {}
@@ -957,6 +978,8 @@ snapshots:
ansi-styles: 4.3.0
supports-color: 7.2.0
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -985,6 +1008,8 @@ snapshots:
color-name@1.1.4: {}
+ commander@14.0.2: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -1033,7 +1058,7 @@ snapshots:
fast-stable-stringify@1.0.0: {}
- file-uri-to-path@1.0.0: {}
+ fastestsmallesttextencoderdecoder@1.0.22: {}
fill-range@7.0.1:
dependencies:
@@ -1142,6 +1167,41 @@ snapshots:
jsonparse@1.3.1: {}
+ litesvm-darwin-arm64@0.4.0:
+ optional: true
+
+ litesvm-darwin-x64@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-musl@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-musl@0.4.0:
+ optional: true
+
+ litesvm@0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10):
+ dependencies:
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ fastestsmallesttextencoderdecoder: 1.0.22
+ optionalDependencies:
+ litesvm-darwin-arm64: 0.4.0
+ litesvm-darwin-x64: 0.4.0
+ litesvm-linux-arm64-gnu: 0.4.0
+ litesvm-linux-arm64-musl: 0.4.0
+ litesvm-linux-x64-gnu: 0.4.0
+ litesvm-linux-x64-musl: 0.4.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1268,36 +1328,6 @@ snapshots:
dependencies:
randombytes: 2.1.0
- solana-bankrun-darwin-arm64@0.3.0:
- optional: true
-
- solana-bankrun-darwin-universal@0.3.0:
- optional: true
-
- solana-bankrun-darwin-x64@0.3.0:
- optional: true
-
- solana-bankrun-linux-x64-gnu@0.3.0:
- optional: true
-
- solana-bankrun-linux-x64-musl@0.3.0:
- optional: true
-
- solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
- dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- bs58: 4.0.1
- optionalDependencies:
- solana-bankrun-darwin-arm64: 0.3.0
- solana-bankrun-darwin-universal: 0.3.0
- solana-bankrun-darwin-x64: 0.3.0
- solana-bankrun-linux-x64-gnu: 0.3.0
- solana-bankrun-linux-x64-musl: 0.3.0
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - utf-8-validate
-
source-map-support@0.5.21:
dependencies:
buffer-from: 1.1.2
diff --git a/basics/cross-program-invocation/anchor/tests/bankrun.test.ts b/basics/cross-program-invocation/anchor/tests/bankrun.test.ts
deleted file mode 100644
index 69a7a8bdf..000000000
--- a/basics/cross-program-invocation/anchor/tests/bankrun.test.ts
+++ /dev/null
@@ -1,65 +0,0 @@
-import { describe, it } from 'node:test';
-import * as anchor from '@coral-xyz/anchor';
-import { PublicKey } from '@solana/web3.js';
-import { BankrunProvider } from 'anchor-bankrun';
-import { startAnchor } from 'solana-bankrun';
-import type { Hand } from '../target/types/hand';
-import type { Lever } from '../target/types/lever';
-
-import HAND_IDL from "../target/idl/hand.json" with { type: "json" };
-import LEVER_IDL from "../target/idl/lever.json" with { type: "json" };
-const HAND_PROGRAM_ID = new PublicKey(HAND_IDL.address);
-const LEVER_PROGRAM_ID = new PublicKey(LEVER_IDL.address);
-
-describe('cpi', async () => {
- const context = await startAnchor(
- '',
- [
- {
- name: 'hand',
- programId: HAND_PROGRAM_ID,
- },
- {
- name: 'lever',
- programId: LEVER_PROGRAM_ID,
- },
- ],
- [],
- );
- const provider = new BankrunProvider(context);
-
- const hand = new anchor.Program(HAND_IDL, provider);
- const lever = new anchor.Program(LEVER_IDL, provider);
-
- // Generate a new keypair for the power account
- const powerAccount = new anchor.web3.Keypair();
-
- it('Initialize the lever!', async () => {
- await lever.methods
- .initialize()
- .accounts({
- power: powerAccount.publicKey,
- user: provider.wallet.publicKey,
- })
- .signers([powerAccount])
- .rpc();
- });
-
- it('Pull the lever!', async () => {
- await hand.methods
- .pullLever('Chris')
- .accounts({
- power: powerAccount.publicKey,
- })
- .rpc();
- });
-
- it('Pull it again!', async () => {
- await hand.methods
- .pullLever('Ashley')
- .accounts({
- power: powerAccount.publicKey,
- })
- .rpc();
- });
-});
diff --git a/basics/cross-program-invocation/anchor/tests/cpi.ts b/basics/cross-program-invocation/anchor/tests/cpi.ts
deleted file mode 100644
index ab8030c00..000000000
--- a/basics/cross-program-invocation/anchor/tests/cpi.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import type { Program } from '@coral-xyz/anchor';
-import * as anchor from '@coral-xyz/anchor';
-import type { Hand } from '../target/types/hand';
-import type { Lever } from '../target/types/lever';
-
-describe('cpi', () => {
- const provider = anchor.AnchorProvider.env();
- anchor.setProvider(provider);
-
- const hand = anchor.workspace.Hand as Program;
- const lever = anchor.workspace.Lever as Program;
-
- // Generate a new keypair for the power account
- const powerAccount = new anchor.web3.Keypair();
-
- it('Initialize the lever!', async () => {
- await lever.methods
- .initialize()
- .accounts({
- power: powerAccount.publicKey,
- user: provider.wallet.publicKey,
- })
- .signers([powerAccount])
- .rpc();
- });
-
- it('Pull the lever!', async () => {
- await hand.methods
- .pullLever('Chris')
- .accounts({
- power: powerAccount.publicKey,
- })
- .rpc();
- });
-
- it('Pull it again!', async () => {
- await hand.methods
- .pullLever('Ashley')
- .accounts({
- power: powerAccount.publicKey,
- })
- .rpc();
- });
-});
diff --git a/basics/cross-program-invocation/anchor/tests/litesvm.test.ts b/basics/cross-program-invocation/anchor/tests/litesvm.test.ts
new file mode 100644
index 000000000..f11abc9c9
--- /dev/null
+++ b/basics/cross-program-invocation/anchor/tests/litesvm.test.ts
@@ -0,0 +1,152 @@
+import anchor from "@coral-xyz/anchor";
+import {
+ Keypair,
+ PublicKey,
+ SystemProgram,
+ Transaction,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import { assert } from "chai";
+import { LiteSVM } from "litesvm";
+import HAND_IDL from "../target/idl/hand.json" with { type: "json" };
+import LEVER_IDL from "../target/idl/lever.json" with { type: "json" };
+
+describe("LiteSVM: CPI", () => {
+ const svm = new LiteSVM();
+ const handProgramId = new PublicKey(HAND_IDL.address);
+ const leverProgramId = new PublicKey(LEVER_IDL.address);
+
+ const payer = Keypair.generate();
+ svm.airdrop(payer.publicKey, BigInt(1000000000));
+
+ /**
+ * For serialization and deserialization of data
+ */
+ const handCoder = new anchor.BorshCoder(HAND_IDL as anchor.Idl);
+ const leverCoder = new anchor.BorshCoder(LEVER_IDL as anchor.Idl);
+
+ const handProgramPath = new URL("../target/deploy/hand.so", import.meta.url)
+ .pathname;
+ const leverProgramPath = new URL("../target/deploy/lever.so", import.meta.url)
+ .pathname;
+ svm.addProgramFromFile(handProgramId, handProgramPath);
+ svm.addProgramFromFile(leverProgramId, leverProgramPath);
+
+ /**
+ * Generate a new keypair for the power account
+ */
+ const powerAccount = new Keypair();
+
+ it("Initialize the lever!", () => {
+ /**
+ * Instruction data
+ * Create Transaction
+ * Send Transaction
+ */
+ const data = leverCoder.instruction.encode("initialize", {});
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: powerAccount.publicKey, isSigner: true, isWritable: true },
+ { pubkey: payer.publicKey, isSigner: true, isWritable: true },
+ { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
+ ],
+ programId: leverProgramId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+ tx.sign(payer, powerAccount);
+ svm.sendTransaction(tx);
+
+ /**
+ * Fetch account
+ * Check its required lamports
+ * Check it powerstatus
+ * */
+ const minLamports = svm.minimumBalanceForRentExemption(BigInt(8 + 8));
+ const powerAccountInfo = svm.getAccount(powerAccount.publicKey);
+ const powerStatus = leverCoder.accounts.decode(
+ "PowerStatus",
+ Buffer.from(powerAccountInfo.data),
+ );
+
+ assert(Number(minLamports) === powerAccountInfo.lamports);
+ assert(powerStatus.is_on === false);
+ });
+
+ it("Pull the lever!", () => {
+ /**
+ * Instruction data
+ * Create Transaction
+ * Send Transaction
+ */
+ const data = handCoder.instruction.encode("pull_lever", {
+ name: "Jacob",
+ });
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: powerAccount.publicKey, isSigner: false, isWritable: true },
+ { pubkey: leverProgramId, isSigner: false, isWritable: false },
+ ],
+ programId: handProgramId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+ tx.sign(payer);
+ svm.sendTransaction(tx);
+
+ /**
+ * Fetch account
+ * Check its powerstatus = true
+ * */
+ const powerAccountInfo = svm.getAccount(powerAccount.publicKey);
+ const powerStatus = leverCoder.accounts.decode(
+ "PowerStatus",
+ Buffer.from(powerAccountInfo.data),
+ );
+
+ assert(powerStatus.is_on === true);
+ });
+
+ it("Pull it again!", () => {
+ /**
+ * Instruction data
+ * Create Transaction
+ * Send Transaction
+ */
+ const data = handCoder.instruction.encode("pull_lever", {
+ name: "sol-warrior",
+ });
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: powerAccount.publicKey, isSigner: false, isWritable: true },
+ { pubkey: leverProgramId, isSigner: false, isWritable: false },
+ ],
+ programId: handProgramId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+ tx.sign(payer);
+ svm.sendTransaction(tx);
+
+ /**
+ * Fetch account
+ * Check its powerstatus = false
+ * */
+ const powerAccountInfo = svm.getAccount(powerAccount.publicKey);
+ const powerStatus = leverCoder.accounts.decode(
+ "PowerStatus",
+ Buffer.from(powerAccountInfo.data),
+ );
+
+ assert(powerStatus.is_on === false);
+ });
+});
diff --git a/basics/cross-program-invocation/anchor/tests/test.ts b/basics/cross-program-invocation/anchor/tests/test.ts
new file mode 100644
index 000000000..69146ad30
--- /dev/null
+++ b/basics/cross-program-invocation/anchor/tests/test.ts
@@ -0,0 +1,82 @@
+import type { Program } from "@coral-xyz/anchor";
+import * as anchor from "@coral-xyz/anchor";
+import { assert } from "chai";
+import type { Hand } from "../target/types/hand.ts";
+import type { Lever } from "../target/types/lever.ts";
+
+describe("Anchor: CPI", () => {
+ const provider = anchor.AnchorProvider.env();
+ anchor.setProvider(provider);
+
+ const hand = anchor.workspace.Hand as Program;
+ const lever = anchor.workspace.Lever as Program;
+
+ // Generate a new keypair for the power account
+ const powerAccount = new anchor.web3.Keypair();
+
+ it("Initialize the lever!", async () => {
+ await lever.methods
+ .initialize()
+ .accounts({
+ power: powerAccount.publicKey,
+ user: provider.wallet.publicKey,
+ })
+ .signers([powerAccount])
+ .rpc();
+
+ /**
+ * Fetch account
+ * Check its required lamports
+ * Check it powerstatus
+ * */
+ const minLamports =
+ await provider.connection.getMinimumBalanceForRentExemption(8 + 8);
+ const powerStatus = await lever.account.powerStatus.fetch(
+ powerAccount.publicKey,
+ );
+ const powerAccountInfo = await provider.connection.getAccountInfo(
+ powerAccount.publicKey,
+ );
+
+ assert(Number(minLamports) === powerAccountInfo.lamports);
+ assert(powerStatus.isOn === false);
+ });
+
+ it("Pull the lever!", async () => {
+ await hand.methods
+ .pullLever("Jacob")
+ .accounts({
+ power: powerAccount.publicKey,
+ })
+ .rpc();
+
+ /**
+ * Fetch account
+ * Check its powerstatus = true
+ * */
+ const powerStatus = await lever.account.powerStatus.fetch(
+ powerAccount.publicKey,
+ );
+
+ assert(powerStatus.isOn === true);
+ });
+
+ it("Pull it again!", async () => {
+ await hand.methods
+ .pullLever("sol-warrior")
+ .accounts({
+ power: powerAccount.publicKey,
+ })
+ .rpc();
+
+ /**
+ * Fetch account
+ * Check its powerstatus = false
+ * */
+ const powerStatus = await lever.account.powerStatus.fetch(
+ powerAccount.publicKey,
+ );
+
+ assert(powerStatus.isOn === false);
+ });
+});
diff --git a/basics/cross-program-invocation/anchor/tsconfig.json b/basics/cross-program-invocation/anchor/tsconfig.json
index cd5d2e3d0..fdf5c04de 100644
--- a/basics/cross-program-invocation/anchor/tsconfig.json
+++ b/basics/cross-program-invocation/anchor/tsconfig.json
@@ -1,10 +1,10 @@
{
- "compilerOptions": {
- "types": ["mocha", "chai"],
- "typeRoots": ["./node_modules/@types"],
- "lib": ["es2015"],
- "module": "commonjs",
- "target": "es6",
- "esModuleInterop": true
- }
+ "compilerOptions": {
+ "types": ["mocha", "chai"],
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2020"],
+ "module": "nodenext",
+ "target": "es2020",
+ "esModuleInterop": true
+ }
}
From 550af2ded3e3bed9c762f96cef1a7771dfeba969 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?solwarrior=20=F0=9F=97=A1=EF=B8=8F?=
<118261237+sol-warrior@users.noreply.github.com>
Date: Tue, 30 Dec 2025 08:33:40 +0530
Subject: [PATCH 25/49] Add LiteSVM tests for create-account Anchor program
(#472)
* feat: add LiteSVM test for creating a system account in Anchor
- Implement test for creating a system account using LiteSVM
- Include transaction creation and assertion for account lamports
* chore: add litesvm dependency and update dependencies in package.json and pnpm-lock.yaml
- Upgrade @solana/web3.js from ^1.95.2 to ^1.98.4
- Add litesvm dependency with version ^0.4.0
- Update lockfile to reflect changes in dependencies and their versions
* fix: correct test description and import path for type error
* chore: update TypeScript configuration for create-account anchor
- Change target and module to es2020 and nodenext
- Update lib to es2020 for improved compatibility
* chore: remove deprecated bankrun test and dependencies
- Delete bankrun.test.ts as it is no longer needed
- Remove anchor-bankrun and solana-bankrun dependencies from package.json and pnpm-lock.yaml
---
basics/create-account/anchor/package.json | 5 +-
basics/create-account/anchor/pnpm-lock.yaml | 256 ++++++++++--------
.../anchor/tests/bankrun.test.ts | 44 ---
.../anchor/tests/litesvm.test.ts | 64 +++++
basics/create-account/anchor/tests/test.ts | 55 ++--
basics/create-account/anchor/tsconfig.json | 16 +-
6 files changed, 245 insertions(+), 195 deletions(-)
delete mode 100644 basics/create-account/anchor/tests/bankrun.test.ts
create mode 100644 basics/create-account/anchor/tests/litesvm.test.ts
diff --git a/basics/create-account/anchor/package.json b/basics/create-account/anchor/package.json
index 95d3cde32..49eb3af2a 100644
--- a/basics/create-account/anchor/package.json
+++ b/basics/create-account/anchor/package.json
@@ -2,16 +2,15 @@
"type": "module",
"dependencies": {
"@coral-xyz/anchor": "0.32.1",
- "@solana/web3.js": "^1.95.2"
+ "@solana/web3.js": "^1.98.4",
+ "litesvm": "^0.4.0"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
"@types/chai": "^4.3.0",
"@types/mocha": "^9.0.0",
- "anchor-bankrun": "^0.4.0",
"chai": "^4.4.1",
"mocha": "^9.0.3",
- "solana-bankrun": "^0.3.0",
"ts-mocha": "^10.0.0",
"typescript": "^4.3.5"
}
diff --git a/basics/create-account/anchor/pnpm-lock.yaml b/basics/create-account/anchor/pnpm-lock.yaml
index ed5631b8a..770808595 100644
--- a/basics/create-account/anchor/pnpm-lock.yaml
+++ b/basics/create-account/anchor/pnpm-lock.yaml
@@ -10,10 +10,13 @@ importers:
dependencies:
'@coral-xyz/anchor':
specifier: 0.32.1
- version: 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.95.2
- version: 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ litesvm:
+ specifier: ^0.4.0
+ version: 0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
devDependencies:
'@types/bn.js':
specifier: ^5.1.0
@@ -24,18 +27,12 @@ importers:
'@types/mocha':
specifier: ^9.0.0
version: 9.1.1
- anchor-bankrun:
- specifier: ^0.4.0
- version: 0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
chai:
specifier: ^4.4.1
version: 4.4.1
mocha:
specifier: ^9.0.3
version: 9.2.2
- solana-bankrun:
- specifier: ^0.3.0
- version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
ts-mocha:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
@@ -78,8 +75,27 @@ packages:
resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
engines: {node: '>=5.10'}
- '@solana/web3.js@1.95.2':
- resolution: {integrity: sha512-SjlHp0G4qhuhkQQc+YXdGkI8EerCqwxvgytMgBpzMUQTafrkNant3e7pgilBGgjy/iM40ICvWBLgASTPMrQU7w==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
'@swc/helpers@0.5.12':
resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==}
@@ -125,14 +141,6 @@ packages:
resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
engines: {node: '>= 8.0.0'}
- anchor-bankrun@0.4.0:
- resolution: {integrity: sha512-s+K7E0IGAlmkhuo8nbiqVsQf2yJ+3l9GjNQJSmkRDe25dQj4Yef9rJh77FH6EQ5H6yQYfzuhgm/5GD6JMjdTZg==}
- engines: {node: '>= 10'}
- peerDependencies:
- '@coral-xyz/anchor': ^0.30.0
- '@solana/web3.js': ^1.78.4
- solana-bankrun: ^0.2.0
-
ansi-colors@4.1.1:
resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
engines: {node: '>=6'}
@@ -168,17 +176,10 @@ packages:
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- bigint-buffer@1.1.5:
- resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==}
- engines: {node: '>= 10.0.0'}
-
binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
- bindings@1.5.0:
- resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
-
bn.js@5.2.1:
resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==}
@@ -227,6 +228,10 @@ packages:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -244,6 +249,10 @@ packages:
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ 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==}
@@ -312,8 +321,8 @@ packages:
fast-stable-stringify@1.0.0:
resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
- file-uri-to-path@1.0.0:
- resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
+ fastestsmallesttextencoderdecoder@1.0.22:
+ resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
@@ -429,6 +438,46 @@ packages:
resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
engines: {'0': node >= 0.2.0}
+ litesvm-darwin-arm64@0.4.0:
+ resolution: {integrity: sha512-LN6iZcUQ6Xi5KO/7yJBYSALjjDCI/s/s2PgV3BqM4dpeBaLz+fXX/+qgMcBgpEVgEdEmhelux+WtAMkbEzJfrA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [darwin]
+
+ litesvm-darwin-x64@0.4.0:
+ resolution: {integrity: sha512-3ltogKQdle8LbakVqoB6plxaNwp6Vb3tnkqa3G5mAvvZNorB2iumThDaTZ381Knl69t566LZm+g/VDZwYfsfhA==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [darwin]
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ resolution: {integrity: sha512-SWlcRUqkXCMgLoDX/Wqr/S1lff+ggVI9f0YrRJMraxtEyApxutAoW2AWw4tvo6DsEgNwjxgsZOAwnE6bQBv8CA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-arm64-musl@0.4.0:
+ resolution: {integrity: sha512-YMMqwEWJUSWwL0Rwp8dFwl3jvgNU21eI7Qc+BpH9u2yeIRYQTn3rNGDnsK8v3QIZPHQdMo7NrPhzk4XoB1aKPg==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-x64-gnu@0.4.0:
+ resolution: {integrity: sha512-brZ3tFABDVQEYCgci7AO8iVYLw10UXVo97/lpTy75bTzNoqkggg8wFQOrbgCdb9NRwt06Y4Zf8cpIZAoDQq2mw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm-linux-x64-musl@0.4.0:
+ resolution: {integrity: sha512-D98qdIOuWg4fOewIIiH1D23AtM4I7/3vLKXIL8uQz06D5ev5fsBzNp2gM7libAywTkCYy/u666xgD6PsWhrTaw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm@0.4.0:
+ resolution: {integrity: sha512-ySr5mB2ap4SzJpmVR2I5+gjzTH8NJbkg7DYPormzA2U9F4LhfvTTrD17X/k5N3Bn4b5Db6/CwSyX2qc0HrJtNA==}
+ engines: {node: '>= 20'}
+
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -542,39 +591,6 @@ packages:
serialize-javascript@6.0.0:
resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
- solana-bankrun-darwin-arm64@0.3.0:
- resolution: {integrity: sha512-+NbDncf0U6l3knuacRBiqpjZ2DSp+5lZaAU518gH7/x6qubbui/d000STaIBK+uNTPBS/AL/bCN+7PkXqmA3lA==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [darwin]
-
- solana-bankrun-darwin-universal@0.3.0:
- resolution: {integrity: sha512-1/F0xdMa4qvc5o6z16FCCbZ5jbdvKvxpx5kyPcMWRiRPwyvi+zltMxciPAYMlg3wslQqGz88uFhrBEzq2eTumQ==}
- engines: {node: '>= 10'}
- os: [darwin]
-
- solana-bankrun-darwin-x64@0.3.0:
- resolution: {integrity: sha512-U6CANjkmMl+lgNA7UH0GKs5V7LtVIUDzJBZefGGqLfqUNv3EjA/PrrToM0hAOWJgkxSwdz6zW+p5sw5FmnbXtg==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [darwin]
-
- solana-bankrun-linux-x64-gnu@0.3.0:
- resolution: {integrity: sha512-qJSkCFs0k2n4XtTnyxGMiZsuqO2TiqTYgWjQ+3mZhGNUAMys/Vq8bd7/SyBm6RR7EfVuRXRxZvh+F8oKZ77V4w==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- solana-bankrun-linux-x64-musl@0.3.0:
- resolution: {integrity: sha512-xsS2CS2xb1Sw4ivNXM0gPz/qpW9BX0neSvt/pnok5L330Nu9xlTnKAY8FhzzqOP9P9sJlGRM787Y6d0yYwt6xQ==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- solana-bankrun@0.3.0:
- resolution: {integrity: sha512-YkH7sa8TB/AoRPzG17CXJtYsRIQHEkEqGLz1Vwc13taXhDBkjO7z6NI5JYw7n0ybRymDHwMYTc7sd+5J40TyVQ==}
- engines: {node: '>= 10'}
-
source-map-support@0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
@@ -744,12 +760,12 @@ snapshots:
'@coral-xyz/anchor-errors@0.31.1': {}
- '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@coral-xyz/anchor-errors': 0.31.1
- '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))
'@noble/hashes': 1.8.0
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
bs58: 4.0.1
buffer-layout: 1.2.2
@@ -762,11 +778,12 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))':
dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
buffer-layout: 1.2.2
@@ -782,14 +799,31 @@ snapshots:
dependencies:
buffer: 6.0.3
- '@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/codecs-core@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@4.9.5)
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.3.0(typescript@4.9.5)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.2
+ typescript: 4.9.5
+
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@babel/runtime': 7.25.0
'@noble/curves': 1.5.0
'@noble/hashes': 1.4.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@4.9.5)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
bn.js: 5.2.1
borsh: 0.7.0
bs58: 4.0.1
@@ -802,6 +836,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@swc/helpers@0.5.12':
@@ -850,12 +885,6 @@ snapshots:
dependencies:
humanize-ms: 1.2.1
- anchor-bankrun@0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
- dependencies:
- '@coral-xyz/anchor': 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- solana-bankrun: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
-
ansi-colors@4.1.1: {}
ansi-regex@5.0.1: {}
@@ -883,16 +912,8 @@ snapshots:
base64-js@1.5.1: {}
- bigint-buffer@1.1.5:
- dependencies:
- bindings: 1.5.0
-
binary-extensions@2.3.0: {}
- bindings@1.5.0:
- dependencies:
- file-uri-to-path: 1.0.0
-
bn.js@5.2.1: {}
bn.js@5.2.2: {}
@@ -949,6 +970,8 @@ snapshots:
ansi-styles: 4.3.0
supports-color: 7.2.0
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -977,6 +1000,8 @@ snapshots:
color-name@1.1.4: {}
+ commander@14.0.2: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -1025,7 +1050,7 @@ snapshots:
fast-stable-stringify@1.0.0: {}
- file-uri-to-path@1.0.0: {}
+ fastestsmallesttextencoderdecoder@1.0.22: {}
fill-range@7.0.1:
dependencies:
@@ -1134,6 +1159,41 @@ snapshots:
jsonparse@1.3.1: {}
+ litesvm-darwin-arm64@0.4.0:
+ optional: true
+
+ litesvm-darwin-x64@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-musl@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-musl@0.4.0:
+ optional: true
+
+ litesvm@0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10):
+ dependencies:
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ fastestsmallesttextencoderdecoder: 1.0.22
+ optionalDependencies:
+ litesvm-darwin-arm64: 0.4.0
+ litesvm-darwin-x64: 0.4.0
+ litesvm-linux-arm64-gnu: 0.4.0
+ litesvm-linux-arm64-musl: 0.4.0
+ litesvm-linux-x64-gnu: 0.4.0
+ litesvm-linux-x64-musl: 0.4.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1258,36 +1318,6 @@ snapshots:
dependencies:
randombytes: 2.1.0
- solana-bankrun-darwin-arm64@0.3.0:
- optional: true
-
- solana-bankrun-darwin-universal@0.3.0:
- optional: true
-
- solana-bankrun-darwin-x64@0.3.0:
- optional: true
-
- solana-bankrun-linux-x64-gnu@0.3.0:
- optional: true
-
- solana-bankrun-linux-x64-musl@0.3.0:
- optional: true
-
- solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
- dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- bs58: 4.0.1
- optionalDependencies:
- solana-bankrun-darwin-arm64: 0.3.0
- solana-bankrun-darwin-universal: 0.3.0
- solana-bankrun-darwin-x64: 0.3.0
- solana-bankrun-linux-x64-gnu: 0.3.0
- solana-bankrun-linux-x64-musl: 0.3.0
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - utf-8-validate
-
source-map-support@0.5.21:
dependencies:
buffer-from: 1.1.2
diff --git a/basics/create-account/anchor/tests/bankrun.test.ts b/basics/create-account/anchor/tests/bankrun.test.ts
deleted file mode 100644
index 970cff617..000000000
--- a/basics/create-account/anchor/tests/bankrun.test.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import { describe, it } from "node:test";
-import * as anchor from "@coral-xyz/anchor";
-import { Keypair, PublicKey } from "@solana/web3.js";
-import { BankrunProvider } from "anchor-bankrun";
-import { assert } from "chai";
-import { startAnchor } from "solana-bankrun";
-import type { CreateSystemAccount } from "../target/types/create_system_account";
-
-import IDL from "../target/idl/create_system_account.json" with { type: "json" };
-const PROGRAM_ID = new PublicKey(IDL.address);
-
-describe("Create a system account", async () => {
- const context = await startAnchor(
- "",
- [{ name: "create_system_account", programId: PROGRAM_ID }],
- [],
- );
- const provider = new BankrunProvider(context);
-
- const wallet = provider.wallet as anchor.Wallet;
- const program = new anchor.Program(IDL, provider);
- const connection = provider.connection;
-
- it("Create the account", async () => {
- // Generate a new keypair for the new account
- const newKeypair = new Keypair();
-
- await program.methods
- .createSystemAccount()
- .accounts({
- payer: wallet.publicKey,
- newAccount: newKeypair.publicKey,
- })
- .signers([newKeypair])
- .rpc();
-
- // Minimum balance for rent exemption for new account
- const lamports = await connection.getMinimumBalanceForRentExemption(0);
-
- // Check that the account was created
- const accountInfo = await connection.getAccountInfo(newKeypair.publicKey);
- assert(accountInfo.lamports === lamports);
- });
-});
diff --git a/basics/create-account/anchor/tests/litesvm.test.ts b/basics/create-account/anchor/tests/litesvm.test.ts
new file mode 100644
index 000000000..2900c3b2b
--- /dev/null
+++ b/basics/create-account/anchor/tests/litesvm.test.ts
@@ -0,0 +1,64 @@
+import anchor from "@coral-xyz/anchor";
+import {
+ Keypair,
+ PublicKey,
+ SystemProgram,
+ Transaction,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import { assert } from "chai";
+import { LiteSVM } from "litesvm";
+import IDL from "../target/idl/create_system_account.json" with {
+ type: "json",
+};
+
+describe("LiteSVM: Create a system account", () => {
+ const svm = new LiteSVM();
+ const programId = new PublicKey(IDL.address);
+ const payer = Keypair.generate();
+ svm.airdrop(payer.publicKey, BigInt(1000000000));
+
+ const coder = new anchor.BorshCoder(IDL as anchor.Idl);
+ const programPath = new URL(
+ "../target/deploy/create_system_account.so",
+ import.meta.url,
+ ).pathname;
+ svm.addProgramFromFile(programId, programPath);
+
+ it("Create the account", () => {
+ /**
+ * Generate a new keypair for the new account
+ */
+ const newKeypair = new Keypair();
+ /**
+ * Instruction data
+ * Create Transaction
+ * Send Transaction
+ */
+ const data = coder.instruction.encode("create_system_account", {});
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: payer.publicKey, isSigner: true, isWritable: true },
+ { pubkey: newKeypair.publicKey, isSigner: true, isWritable: true },
+ { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
+ ],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+ tx.sign(payer, newKeypair);
+ svm.sendTransaction(tx);
+
+ /**
+ * Fetch account
+ * Check its lamports
+ * */
+ const lamports = svm.minimumBalanceForRentExemption(0n);
+ const accountInfo = svm.getAccount(newKeypair.publicKey);
+
+ assert(Number(lamports) === accountInfo.lamports);
+ });
+});
diff --git a/basics/create-account/anchor/tests/test.ts b/basics/create-account/anchor/tests/test.ts
index 47ac3e04d..a39d86124 100644
--- a/basics/create-account/anchor/tests/test.ts
+++ b/basics/create-account/anchor/tests/test.ts
@@ -1,33 +1,34 @@
-import * as anchor from '@coral-xyz/anchor';
-import { Keypair } from '@solana/web3.js';
-import { assert } from 'chai';
-import type { CreateSystemAccount } from '../target/types/create_system_account';
+import * as anchor from "@coral-xyz/anchor";
+import { Keypair } from "@solana/web3.js";
+import { assert } from "chai";
+import type { CreateSystemAccount } from "../target/types/create_system_account.ts";
-describe('Create a system account', () => {
- const provider = anchor.AnchorProvider.env();
- anchor.setProvider(provider);
- const wallet = provider.wallet as anchor.Wallet;
- const connection = provider.connection;
- const program = anchor.workspace.CreateSystemAccount as anchor.Program;
+describe("Anchor: Create a system account", () => {
+ const provider = anchor.AnchorProvider.env();
+ anchor.setProvider(provider);
+ const wallet = provider.wallet as anchor.Wallet;
+ const connection = provider.connection;
+ const program = anchor.workspace
+ .CreateSystemAccount as anchor.Program;
- it('Create the account', async () => {
- // Generate a new keypair for the new account
- const newKeypair = new Keypair();
+ it("Create the account", async () => {
+ // Generate a new keypair for the new account
+ const newKeypair = new Keypair();
- await program.methods
- .createSystemAccount()
- .accounts({
- payer: wallet.publicKey,
- newAccount: newKeypair.publicKey,
- })
- .signers([newKeypair])
- .rpc();
+ await program.methods
+ .createSystemAccount()
+ .accounts({
+ payer: wallet.publicKey,
+ newAccount: newKeypair.publicKey,
+ })
+ .signers([newKeypair])
+ .rpc();
- // Minimum balance for rent exemption for new account
- const lamports = await connection.getMinimumBalanceForRentExemption(0);
+ // Minimum balance for rent exemption for new account
+ const lamports = await connection.getMinimumBalanceForRentExemption(0);
- // Check that the account was created
- const accountInfo = await connection.getAccountInfo(newKeypair.publicKey);
- assert(accountInfo.lamports === lamports);
- });
+ // Check that the account was created
+ const accountInfo = await connection.getAccountInfo(newKeypair.publicKey);
+ assert(accountInfo.lamports === lamports);
+ });
});
diff --git a/basics/create-account/anchor/tsconfig.json b/basics/create-account/anchor/tsconfig.json
index cd5d2e3d0..fdf5c04de 100644
--- a/basics/create-account/anchor/tsconfig.json
+++ b/basics/create-account/anchor/tsconfig.json
@@ -1,10 +1,10 @@
{
- "compilerOptions": {
- "types": ["mocha", "chai"],
- "typeRoots": ["./node_modules/@types"],
- "lib": ["es2015"],
- "module": "commonjs",
- "target": "es6",
- "esModuleInterop": true
- }
+ "compilerOptions": {
+ "types": ["mocha", "chai"],
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2020"],
+ "module": "nodenext",
+ "target": "es2020",
+ "esModuleInterop": true
+ }
}
From 2cbc41f8c73a6a63a2aeafee3f17269bac4e5b41 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?solwarrior=20=F0=9F=97=A1=EF=B8=8F?=
<118261237+sol-warrior@users.noreply.github.com>
Date: Tue, 30 Dec 2025 08:33:52 +0530
Subject: [PATCH 26/49] Add LiteSVM tests for counter Anchor program (#471)
* feat: add LiteSVM tests for counter program
* chore: update dependencies in package.json and pnpm-lock.yaml
- Add litesvm dependency with version ^0.4.0
- Upgrade @solana/web3.js from ^1.95.2 to ^1.98.4
* chore: rename file for consistent naming across examples
* chore: update TypeScript configuration for counter example
- Change target and lib to ES2020
- Update module system to nodenext
* chore: remove deprecated bankrun test file and related dependencies
---
basics/counter/anchor/package.json | 5 +-
basics/counter/anchor/pnpm-lock.yaml | 256 ++++++++++--------
basics/counter/anchor/tests/bankrun.test.ts | 59 ----
basics/counter/anchor/tests/counter_anchor.ts | 48 ----
basics/counter/anchor/tests/litesvm.test.ts | 121 +++++++++
basics/counter/anchor/tests/test.ts | 63 +++++
basics/counter/anchor/tsconfig.json | 16 +-
7 files changed, 337 insertions(+), 231 deletions(-)
delete mode 100644 basics/counter/anchor/tests/bankrun.test.ts
delete mode 100644 basics/counter/anchor/tests/counter_anchor.ts
create mode 100644 basics/counter/anchor/tests/litesvm.test.ts
create mode 100644 basics/counter/anchor/tests/test.ts
diff --git a/basics/counter/anchor/package.json b/basics/counter/anchor/package.json
index ad95b92c4..56b0eb577 100644
--- a/basics/counter/anchor/package.json
+++ b/basics/counter/anchor/package.json
@@ -5,17 +5,16 @@
},
"dependencies": {
"@coral-xyz/anchor": "0.32.1",
- "@solana/web3.js": "^1.95.2"
+ "@solana/web3.js": "^1.98.4",
+ "litesvm": "^0.4.0"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
"@types/chai": "^4.3.0",
"@types/mocha": "^9.0.0",
- "anchor-bankrun": "^0.4.0",
"chai": "^4.3.4",
"mocha": "^9.0.3",
"prettier": "^2.6.2",
- "solana-bankrun": "^0.3.0",
"ts-mocha": "^10.0.0",
"typescript": "^4.3.5"
},
diff --git a/basics/counter/anchor/pnpm-lock.yaml b/basics/counter/anchor/pnpm-lock.yaml
index 520dfbb04..04c7df186 100644
--- a/basics/counter/anchor/pnpm-lock.yaml
+++ b/basics/counter/anchor/pnpm-lock.yaml
@@ -10,10 +10,13 @@ importers:
dependencies:
'@coral-xyz/anchor':
specifier: 0.32.1
- version: 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.95.2
- version: 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ litesvm:
+ specifier: ^0.4.0
+ version: 0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
devDependencies:
'@types/bn.js':
specifier: ^5.1.0
@@ -24,9 +27,6 @@ importers:
'@types/mocha':
specifier: ^9.0.0
version: 9.1.1
- anchor-bankrun:
- specifier: ^0.4.0
- version: 0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
chai:
specifier: ^4.3.4
version: 4.4.1
@@ -36,9 +36,6 @@ importers:
prettier:
specifier: ^2.6.2
version: 2.8.8
- solana-bankrun:
- specifier: ^0.3.0
- version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
ts-mocha:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
@@ -81,8 +78,27 @@ packages:
resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
engines: {node: '>=5.10'}
- '@solana/web3.js@1.95.2':
- resolution: {integrity: sha512-SjlHp0G4qhuhkQQc+YXdGkI8EerCqwxvgytMgBpzMUQTafrkNant3e7pgilBGgjy/iM40ICvWBLgASTPMrQU7w==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
'@swc/helpers@0.5.12':
resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==}
@@ -128,14 +144,6 @@ packages:
resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
engines: {node: '>= 8.0.0'}
- anchor-bankrun@0.4.0:
- resolution: {integrity: sha512-s+K7E0IGAlmkhuo8nbiqVsQf2yJ+3l9GjNQJSmkRDe25dQj4Yef9rJh77FH6EQ5H6yQYfzuhgm/5GD6JMjdTZg==}
- engines: {node: '>= 10'}
- peerDependencies:
- '@coral-xyz/anchor': ^0.30.0
- '@solana/web3.js': ^1.78.4
- solana-bankrun: ^0.2.0
-
ansi-colors@4.1.1:
resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
engines: {node: '>=6'}
@@ -171,17 +179,10 @@ packages:
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- bigint-buffer@1.1.5:
- resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==}
- engines: {node: '>= 10.0.0'}
-
binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
- bindings@1.5.0:
- resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
-
bn.js@5.2.1:
resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==}
@@ -230,6 +231,10 @@ packages:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -247,6 +252,10 @@ packages:
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ 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==}
@@ -315,8 +324,8 @@ packages:
fast-stable-stringify@1.0.0:
resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
- file-uri-to-path@1.0.0:
- resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
+ fastestsmallesttextencoderdecoder@1.0.22:
+ resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
@@ -432,6 +441,46 @@ packages:
resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
engines: {'0': node >= 0.2.0}
+ litesvm-darwin-arm64@0.4.0:
+ resolution: {integrity: sha512-LN6iZcUQ6Xi5KO/7yJBYSALjjDCI/s/s2PgV3BqM4dpeBaLz+fXX/+qgMcBgpEVgEdEmhelux+WtAMkbEzJfrA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [darwin]
+
+ litesvm-darwin-x64@0.4.0:
+ resolution: {integrity: sha512-3ltogKQdle8LbakVqoB6plxaNwp6Vb3tnkqa3G5mAvvZNorB2iumThDaTZ381Knl69t566LZm+g/VDZwYfsfhA==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [darwin]
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ resolution: {integrity: sha512-SWlcRUqkXCMgLoDX/Wqr/S1lff+ggVI9f0YrRJMraxtEyApxutAoW2AWw4tvo6DsEgNwjxgsZOAwnE6bQBv8CA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-arm64-musl@0.4.0:
+ resolution: {integrity: sha512-YMMqwEWJUSWwL0Rwp8dFwl3jvgNU21eI7Qc+BpH9u2yeIRYQTn3rNGDnsK8v3QIZPHQdMo7NrPhzk4XoB1aKPg==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-x64-gnu@0.4.0:
+ resolution: {integrity: sha512-brZ3tFABDVQEYCgci7AO8iVYLw10UXVo97/lpTy75bTzNoqkggg8wFQOrbgCdb9NRwt06Y4Zf8cpIZAoDQq2mw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm-linux-x64-musl@0.4.0:
+ resolution: {integrity: sha512-D98qdIOuWg4fOewIIiH1D23AtM4I7/3vLKXIL8uQz06D5ev5fsBzNp2gM7libAywTkCYy/u666xgD6PsWhrTaw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm@0.4.0:
+ resolution: {integrity: sha512-ySr5mB2ap4SzJpmVR2I5+gjzTH8NJbkg7DYPormzA2U9F4LhfvTTrD17X/k5N3Bn4b5Db6/CwSyX2qc0HrJtNA==}
+ engines: {node: '>= 20'}
+
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -550,39 +599,6 @@ packages:
serialize-javascript@6.0.0:
resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
- solana-bankrun-darwin-arm64@0.3.0:
- resolution: {integrity: sha512-+NbDncf0U6l3knuacRBiqpjZ2DSp+5lZaAU518gH7/x6qubbui/d000STaIBK+uNTPBS/AL/bCN+7PkXqmA3lA==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [darwin]
-
- solana-bankrun-darwin-universal@0.3.0:
- resolution: {integrity: sha512-1/F0xdMa4qvc5o6z16FCCbZ5jbdvKvxpx5kyPcMWRiRPwyvi+zltMxciPAYMlg3wslQqGz88uFhrBEzq2eTumQ==}
- engines: {node: '>= 10'}
- os: [darwin]
-
- solana-bankrun-darwin-x64@0.3.0:
- resolution: {integrity: sha512-U6CANjkmMl+lgNA7UH0GKs5V7LtVIUDzJBZefGGqLfqUNv3EjA/PrrToM0hAOWJgkxSwdz6zW+p5sw5FmnbXtg==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [darwin]
-
- solana-bankrun-linux-x64-gnu@0.3.0:
- resolution: {integrity: sha512-qJSkCFs0k2n4XtTnyxGMiZsuqO2TiqTYgWjQ+3mZhGNUAMys/Vq8bd7/SyBm6RR7EfVuRXRxZvh+F8oKZ77V4w==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- solana-bankrun-linux-x64-musl@0.3.0:
- resolution: {integrity: sha512-xsS2CS2xb1Sw4ivNXM0gPz/qpW9BX0neSvt/pnok5L330Nu9xlTnKAY8FhzzqOP9P9sJlGRM787Y6d0yYwt6xQ==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- solana-bankrun@0.3.0:
- resolution: {integrity: sha512-YkH7sa8TB/AoRPzG17CXJtYsRIQHEkEqGLz1Vwc13taXhDBkjO7z6NI5JYw7n0ybRymDHwMYTc7sd+5J40TyVQ==}
- engines: {node: '>= 10'}
-
source-map-support@0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
@@ -752,12 +768,12 @@ snapshots:
'@coral-xyz/anchor-errors@0.31.1': {}
- '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@coral-xyz/anchor-errors': 0.31.1
- '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))
'@noble/hashes': 1.8.0
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
bs58: 4.0.1
buffer-layout: 1.2.2
@@ -770,11 +786,12 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))':
dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
buffer-layout: 1.2.2
@@ -790,14 +807,31 @@ snapshots:
dependencies:
buffer: 6.0.3
- '@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/codecs-core@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@4.9.5)
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.3.0(typescript@4.9.5)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.2
+ typescript: 4.9.5
+
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@babel/runtime': 7.25.0
'@noble/curves': 1.4.2
'@noble/hashes': 1.4.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@4.9.5)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
bn.js: 5.2.1
borsh: 0.7.0
bs58: 4.0.1
@@ -810,6 +844,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@swc/helpers@0.5.12':
@@ -858,12 +893,6 @@ snapshots:
dependencies:
humanize-ms: 1.2.1
- anchor-bankrun@0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
- dependencies:
- '@coral-xyz/anchor': 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- solana-bankrun: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
-
ansi-colors@4.1.1: {}
ansi-regex@5.0.1: {}
@@ -891,16 +920,8 @@ snapshots:
base64-js@1.5.1: {}
- bigint-buffer@1.1.5:
- dependencies:
- bindings: 1.5.0
-
binary-extensions@2.3.0: {}
- bindings@1.5.0:
- dependencies:
- file-uri-to-path: 1.0.0
-
bn.js@5.2.1: {}
bn.js@5.2.2: {}
@@ -957,6 +978,8 @@ snapshots:
ansi-styles: 4.3.0
supports-color: 7.2.0
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -985,6 +1008,8 @@ snapshots:
color-name@1.1.4: {}
+ commander@14.0.2: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -1033,7 +1058,7 @@ snapshots:
fast-stable-stringify@1.0.0: {}
- file-uri-to-path@1.0.0: {}
+ fastestsmallesttextencoderdecoder@1.0.22: {}
fill-range@7.0.1:
dependencies:
@@ -1142,6 +1167,41 @@ snapshots:
jsonparse@1.3.1: {}
+ litesvm-darwin-arm64@0.4.0:
+ optional: true
+
+ litesvm-darwin-x64@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-musl@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-musl@0.4.0:
+ optional: true
+
+ litesvm@0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10):
+ dependencies:
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ fastestsmallesttextencoderdecoder: 1.0.22
+ optionalDependencies:
+ litesvm-darwin-arm64: 0.4.0
+ litesvm-darwin-x64: 0.4.0
+ litesvm-linux-arm64-gnu: 0.4.0
+ litesvm-linux-arm64-musl: 0.4.0
+ litesvm-linux-x64-gnu: 0.4.0
+ litesvm-linux-x64-musl: 0.4.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1268,36 +1328,6 @@ snapshots:
dependencies:
randombytes: 2.1.0
- solana-bankrun-darwin-arm64@0.3.0:
- optional: true
-
- solana-bankrun-darwin-universal@0.3.0:
- optional: true
-
- solana-bankrun-darwin-x64@0.3.0:
- optional: true
-
- solana-bankrun-linux-x64-gnu@0.3.0:
- optional: true
-
- solana-bankrun-linux-x64-musl@0.3.0:
- optional: true
-
- solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
- dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- bs58: 4.0.1
- optionalDependencies:
- solana-bankrun-darwin-arm64: 0.3.0
- solana-bankrun-darwin-universal: 0.3.0
- solana-bankrun-darwin-x64: 0.3.0
- solana-bankrun-linux-x64-gnu: 0.3.0
- solana-bankrun-linux-x64-musl: 0.3.0
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - utf-8-validate
-
source-map-support@0.5.21:
dependencies:
buffer-from: 1.1.2
diff --git a/basics/counter/anchor/tests/bankrun.test.ts b/basics/counter/anchor/tests/bankrun.test.ts
deleted file mode 100644
index c3b876301..000000000
--- a/basics/counter/anchor/tests/bankrun.test.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-import { describe, it } from "node:test";
-import * as anchor from "@coral-xyz/anchor";
-import { Keypair, PublicKey } from "@solana/web3.js";
-import { BankrunProvider } from "anchor-bankrun";
-import { assert } from "chai";
-import { startAnchor } from "solana-bankrun";
-import type { CounterAnchor } from "../target/types/counter_anchor";
-
-import IDL from "../target/idl/counter_anchor.json" with { type: "json" };
-const PROGRAM_ID = new PublicKey(IDL.address);
-
-describe("counter_anchor", async () => {
- // Configure the client to use the anchor-bankrun
- const context = await startAnchor(
- "",
- [{ name: "counter_anchor", programId: PROGRAM_ID }],
- []
- );
- const provider = new BankrunProvider(context);
-
- const payer = provider.wallet as anchor.Wallet;
- const program = new anchor.Program(IDL, provider);
-
- // Generate a new keypair for the counter account
- const counterKeypair = new Keypair();
-
- it("Initialize Counter", async () => {
- await program.methods
- .initializeCounter()
- .accounts({
- counter: counterKeypair.publicKey,
- payer: payer.publicKey,
- })
- .signers([counterKeypair])
- .rpc();
-
- const currentCount = await program.account.counter.fetch(
- counterKeypair.publicKey
- );
-
- assert(
- currentCount.count.toNumber() === 0,
- "Expected initialized count to be 0"
- );
- });
-
- it("Increment Counter", async () => {
- await program.methods
- .increment()
- .accounts({ counter: counterKeypair.publicKey })
- .rpc();
-
- const currentCount = await program.account.counter.fetch(
- counterKeypair.publicKey
- );
-
- assert(currentCount.count.toNumber() === 1, "Expected count to be 1");
- });
-});
diff --git a/basics/counter/anchor/tests/counter_anchor.ts b/basics/counter/anchor/tests/counter_anchor.ts
deleted file mode 100644
index d857747aa..000000000
--- a/basics/counter/anchor/tests/counter_anchor.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-import type { Program } from '@coral-xyz/anchor';
-import * as anchor from '@coral-xyz/anchor';
-import { Keypair } from '@solana/web3.js';
-import { assert } from 'chai';
-import type { CounterAnchor } from '../target/types/counter_anchor';
-
-describe('counter_anchor', () => {
- // Configure the client to use the local cluster.
- const provider = anchor.AnchorProvider.env();
- anchor.setProvider(provider);
- const payer = provider.wallet as anchor.Wallet;
-
- const program = anchor.workspace.CounterAnchor as Program;
-
- // Generate a new keypair for the counter account
- const counterKeypair = new Keypair();
-
- it('Initialize Counter', async () => {
- await program.methods
- .initializeCounter()
- .accounts({
- counter: counterKeypair.publicKey,
- payer: payer.publicKey,
- })
- .signers([counterKeypair])
- .rpc();
-
- const currentCount = await program.account.counter.fetch(counterKeypair.publicKey);
-
- assert(currentCount.count.toNumber() === 0, 'Expected initialized count to be 0');
- });
-
- it('Increment Counter', async () => {
- await program.methods.increment().accounts({ counter: counterKeypair.publicKey }).rpc();
-
- const currentCount = await program.account.counter.fetch(counterKeypair.publicKey);
-
- assert(currentCount.count.toNumber() === 1, 'Expected count to be 1');
- });
-
- it('Increment Counter Again', async () => {
- await program.methods.increment().accounts({ counter: counterKeypair.publicKey }).rpc();
-
- const currentCount = await program.account.counter.fetch(counterKeypair.publicKey);
-
- assert(currentCount.count.toNumber() === 2, 'Expected count to be 2');
- });
-});
diff --git a/basics/counter/anchor/tests/litesvm.test.ts b/basics/counter/anchor/tests/litesvm.test.ts
new file mode 100644
index 000000000..d3f6d8923
--- /dev/null
+++ b/basics/counter/anchor/tests/litesvm.test.ts
@@ -0,0 +1,121 @@
+import anchor from "@coral-xyz/anchor";
+import {
+ Keypair,
+ PublicKey,
+ SystemProgram,
+ Transaction,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import { assert } from "chai";
+import { LiteSVM } from "litesvm";
+import IDL from "../target/idl/counter_anchor.json" with { type: "json" };
+
+describe("LiteSVM: Counter", () => {
+ const svm = new LiteSVM();
+ const programId = new PublicKey(IDL.address);
+ const payer = Keypair.generate();
+ svm.airdrop(payer.publicKey, BigInt(1000000000));
+
+ const coder = new anchor.BorshCoder(IDL as anchor.Idl);
+ const programPath = new URL(
+ "../target/deploy/counter_anchor.so",
+ import.meta.url,
+ ).pathname;
+ svm.addProgramFromFile(programId, programPath);
+
+ /**
+ * Generate a new keypair for the counter account
+ */
+ const counterKeypair = new Keypair();
+
+ it("Initialize Counter", () => {
+ /**
+ * Instruction data
+ * Create Transaction
+ */
+ const data = coder.instruction.encode("initialize_counter", {});
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: payer.publicKey, isSigner: true, isWritable: true },
+ { pubkey: counterKeypair.publicKey, isSigner: true, isWritable: true },
+ { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
+ ],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+ tx.sign(payer, counterKeypair);
+ svm.sendTransaction(tx);
+
+ /**
+ * Fetch counter account
+ */
+ const counterAccount = svm.getAccount(counterKeypair.publicKey);
+ const counter = coder.accounts.decode(
+ "Counter",
+ Buffer.from(counterAccount.data),
+ );
+
+ assert.equal(counter.count, 0);
+ });
+
+ it("Increment Counter", () => {
+ const data = coder.instruction.encode("increment", {});
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: counterKeypair.publicKey, isSigner: false, isWritable: true },
+ ],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+ tx.sign(payer);
+ svm.sendTransaction(tx);
+ svm.expireBlockhash();
+
+ /**
+ * Fetch counter account
+ */
+ const counterAccount = svm.getAccount(counterKeypair.publicKey);
+ const counter = coder.accounts.decode(
+ "Counter",
+ Buffer.from(counterAccount.data),
+ );
+
+ assert.equal(counter.count, 1);
+ });
+
+ it("Increment Counter Again", () => {
+ const data = coder.instruction.encode("increment", {});
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: counterKeypair.publicKey, isSigner: false, isWritable: true },
+ ],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = svm.latestBlockhash();
+ tx.sign(payer);
+ svm.sendTransaction(tx);
+
+ /**
+ * Fetch counter account
+ */
+ const counterAccount = svm.getAccount(counterKeypair.publicKey);
+ const counter = coder.accounts.decode(
+ "Counter",
+ Buffer.from(counterAccount.data),
+ );
+
+ assert.equal(counter.count, 2);
+ });
+});
diff --git a/basics/counter/anchor/tests/test.ts b/basics/counter/anchor/tests/test.ts
new file mode 100644
index 000000000..06909a3c8
--- /dev/null
+++ b/basics/counter/anchor/tests/test.ts
@@ -0,0 +1,63 @@
+import type { Program } from "@coral-xyz/anchor";
+import * as anchor from "@coral-xyz/anchor";
+import { Keypair } from "@solana/web3.js";
+import { assert } from "chai";
+import type { CounterAnchor } from "../target/types/counter_anchor.ts";
+
+describe("Anchor: Counter", () => {
+ // Configure the client to use the local cluster.
+ const provider = anchor.AnchorProvider.env();
+ anchor.setProvider(provider);
+ const payer = provider.wallet as anchor.Wallet;
+
+ const program = anchor.workspace.CounterAnchor as Program;
+
+ // Generate a new keypair for the counter account
+ const counterKeypair = new Keypair();
+
+ it("Initialize Counter", async () => {
+ await program.methods
+ .initializeCounter()
+ .accounts({
+ counter: counterKeypair.publicKey,
+ payer: payer.publicKey,
+ })
+ .signers([counterKeypair])
+ .rpc();
+
+ const currentCount = await program.account.counter.fetch(
+ counterKeypair.publicKey,
+ );
+
+ assert(
+ currentCount.count.toNumber() === 0,
+ "Expected initialized count to be 0",
+ );
+ });
+
+ it("Increment Counter", async () => {
+ await program.methods
+ .increment()
+ .accounts({ counter: counterKeypair.publicKey })
+ .rpc();
+
+ const currentCount = await program.account.counter.fetch(
+ counterKeypair.publicKey,
+ );
+
+ assert(currentCount.count.toNumber() === 1, "Expected count to be 1");
+ });
+
+ it("Increment Counter Again", async () => {
+ await program.methods
+ .increment()
+ .accounts({ counter: counterKeypair.publicKey })
+ .rpc();
+
+ const currentCount = await program.account.counter.fetch(
+ counterKeypair.publicKey,
+ );
+
+ assert(currentCount.count.toNumber() === 2, "Expected count to be 2");
+ });
+});
diff --git a/basics/counter/anchor/tsconfig.json b/basics/counter/anchor/tsconfig.json
index cd5d2e3d0..fdf5c04de 100644
--- a/basics/counter/anchor/tsconfig.json
+++ b/basics/counter/anchor/tsconfig.json
@@ -1,10 +1,10 @@
{
- "compilerOptions": {
- "types": ["mocha", "chai"],
- "typeRoots": ["./node_modules/@types"],
- "lib": ["es2015"],
- "module": "commonjs",
- "target": "es6",
- "esModuleInterop": true
- }
+ "compilerOptions": {
+ "types": ["mocha", "chai"],
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2020"],
+ "module": "nodenext",
+ "target": "es2020",
+ "esModuleInterop": true
+ }
}
From 8e0879be582cce5436a54861deb1d5cf90e1cdd7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?solwarrior=20=F0=9F=97=A1=EF=B8=8F?=
<118261237+sol-warrior@users.noreply.github.com>
Date: Tue, 30 Dec 2025 08:33:57 +0530
Subject: [PATCH 27/49] Add LiteSVM Tests for Close Account (Anchor) (#470)
* feat: add LiteSVM tests for closing an account in Anchor program
* chore: update dependencies in package.json and pnpm-lock.yaml
- Add litesvm dependency with version 0.4.0
- Upgrade @solana/web3.js to version 1.98.4
- Update related dependencies in pnpm-lock.yaml to reflect changes
* refactor: clean up imports in LiteSVM test
- Anchor tests natively use Mocha, so replaced unnecessary `node:test` usage with Mocha and Chai for consistency.
* chore: update TypeScript configuration for close-account anchor
- Upgrade TypeScript compiler options to target ES2020 and use nodenext module resolution.
- Enable JSON module resolution for improved compatibility.
* fix: update LiteSVM close account test transaction instruction to match IDL
- Removed unnecessary SystemProgram reference from transaction instruction keys for clarity and correctness.
* refactor: replace `node:assert` with `chai` in tests (default for Anchor)
* chore: remove deprecated `bankrun` test
---
basics/close-account/anchor/package.json | 3 +-
basics/close-account/anchor/pnpm-lock.yaml | 190 ++++++++++++++----
.../anchor/tests/bankrun.test.ts | 62 ------
.../anchor/tests/close-account.ts | 46 -----
.../anchor/tests/litesvm.test.ts | 101 ++++++++++
basics/close-account/anchor/tests/test.ts | 61 ++++++
basics/close-account/anchor/tsconfig.json | 15 +-
7 files changed, 324 insertions(+), 154 deletions(-)
delete mode 100644 basics/close-account/anchor/tests/bankrun.test.ts
delete mode 100644 basics/close-account/anchor/tests/close-account.ts
create mode 100644 basics/close-account/anchor/tests/litesvm.test.ts
create mode 100644 basics/close-account/anchor/tests/test.ts
diff --git a/basics/close-account/anchor/package.json b/basics/close-account/anchor/package.json
index 627de5fda..307d6fb0f 100644
--- a/basics/close-account/anchor/package.json
+++ b/basics/close-account/anchor/package.json
@@ -5,7 +5,8 @@
},
"dependencies": {
"@coral-xyz/anchor": "0.32.1",
- "@solana/web3.js": "^1.95.2"
+ "@solana/web3.js": "^1.98.4",
+ "litesvm": "^0.4.0"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
diff --git a/basics/close-account/anchor/pnpm-lock.yaml b/basics/close-account/anchor/pnpm-lock.yaml
index aae81ea51..9b82a23a9 100644
--- a/basics/close-account/anchor/pnpm-lock.yaml
+++ b/basics/close-account/anchor/pnpm-lock.yaml
@@ -10,10 +10,13 @@ importers:
dependencies:
'@coral-xyz/anchor':
specifier: 0.32.1
- version: 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.95.2
- version: 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ litesvm:
+ specifier: ^0.4.0
+ version: 0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
devDependencies:
'@types/bn.js':
specifier: ^5.1.0
@@ -26,7 +29,7 @@ importers:
version: 9.1.1
anchor-bankrun:
specifier: ^0.4.0
- version: 0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ version: 0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))
chai:
specifier: ^4.3.4
version: 4.4.1
@@ -35,7 +38,7 @@ importers:
version: 9.2.2
solana-bankrun:
specifier: ^0.3.0
- version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.3.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
ts-mocha:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
@@ -78,8 +81,27 @@ packages:
resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
engines: {node: '>=5.10'}
- '@solana/web3.js@1.95.2':
- resolution: {integrity: sha512-SjlHp0G4qhuhkQQc+YXdGkI8EerCqwxvgytMgBpzMUQTafrkNant3e7pgilBGgjy/iM40ICvWBLgASTPMrQU7w==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
'@swc/helpers@0.5.12':
resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==}
@@ -168,17 +190,10 @@ packages:
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- bigint-buffer@1.1.5:
- resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==}
- engines: {node: '>= 10.0.0'}
-
binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
- bindings@1.5.0:
- resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
-
bn.js@5.2.1:
resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==}
@@ -227,6 +242,10 @@ packages:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -244,6 +263,10 @@ packages:
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ 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==}
@@ -312,8 +335,8 @@ packages:
fast-stable-stringify@1.0.0:
resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
- file-uri-to-path@1.0.0:
- resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
+ fastestsmallesttextencoderdecoder@1.0.22:
+ resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
@@ -429,6 +452,46 @@ packages:
resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
engines: {'0': node >= 0.2.0}
+ litesvm-darwin-arm64@0.4.0:
+ resolution: {integrity: sha512-LN6iZcUQ6Xi5KO/7yJBYSALjjDCI/s/s2PgV3BqM4dpeBaLz+fXX/+qgMcBgpEVgEdEmhelux+WtAMkbEzJfrA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [darwin]
+
+ litesvm-darwin-x64@0.4.0:
+ resolution: {integrity: sha512-3ltogKQdle8LbakVqoB6plxaNwp6Vb3tnkqa3G5mAvvZNorB2iumThDaTZ381Knl69t566LZm+g/VDZwYfsfhA==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [darwin]
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ resolution: {integrity: sha512-SWlcRUqkXCMgLoDX/Wqr/S1lff+ggVI9f0YrRJMraxtEyApxutAoW2AWw4tvo6DsEgNwjxgsZOAwnE6bQBv8CA==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-arm64-musl@0.4.0:
+ resolution: {integrity: sha512-YMMqwEWJUSWwL0Rwp8dFwl3jvgNU21eI7Qc+BpH9u2yeIRYQTn3rNGDnsK8v3QIZPHQdMo7NrPhzk4XoB1aKPg==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-x64-gnu@0.4.0:
+ resolution: {integrity: sha512-brZ3tFABDVQEYCgci7AO8iVYLw10UXVo97/lpTy75bTzNoqkggg8wFQOrbgCdb9NRwt06Y4Zf8cpIZAoDQq2mw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm-linux-x64-musl@0.4.0:
+ resolution: {integrity: sha512-D98qdIOuWg4fOewIIiH1D23AtM4I7/3vLKXIL8uQz06D5ev5fsBzNp2gM7libAywTkCYy/u666xgD6PsWhrTaw==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm@0.4.0:
+ resolution: {integrity: sha512-ySr5mB2ap4SzJpmVR2I5+gjzTH8NJbkg7DYPormzA2U9F4LhfvTTrD17X/k5N3Bn4b5Db6/CwSyX2qc0HrJtNA==}
+ engines: {node: '>= 20'}
+
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -744,12 +807,12 @@ snapshots:
'@coral-xyz/anchor-errors@0.31.1': {}
- '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@coral-xyz/anchor-errors': 0.31.1
- '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))
'@noble/hashes': 1.8.0
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
bs58: 4.0.1
buffer-layout: 1.2.2
@@ -762,11 +825,12 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))':
dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
buffer-layout: 1.2.2
@@ -782,14 +846,31 @@ snapshots:
dependencies:
buffer: 6.0.3
- '@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/codecs-core@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@4.9.5)
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.3.0(typescript@4.9.5)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.2
+ typescript: 4.9.5
+
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@babel/runtime': 7.25.0
'@noble/curves': 1.4.2
'@noble/hashes': 1.4.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@4.9.5)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
bn.js: 5.2.1
borsh: 0.7.0
bs58: 4.0.1
@@ -802,6 +883,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@swc/helpers@0.5.12':
@@ -850,11 +932,11 @@ snapshots:
dependencies:
humanize-ms: 1.2.1
- anchor-bankrun@0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
+ anchor-bankrun@0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)):
dependencies:
- '@coral-xyz/anchor': 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- solana-bankrun: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@coral-xyz/anchor': 0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ solana-bankrun: 0.3.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
ansi-colors@4.1.1: {}
@@ -883,16 +965,8 @@ snapshots:
base64-js@1.5.1: {}
- bigint-buffer@1.1.5:
- dependencies:
- bindings: 1.5.0
-
binary-extensions@2.3.0: {}
- bindings@1.5.0:
- dependencies:
- file-uri-to-path: 1.0.0
-
bn.js@5.2.1: {}
bn.js@5.2.2: {}
@@ -949,6 +1023,8 @@ snapshots:
ansi-styles: 4.3.0
supports-color: 7.2.0
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -977,6 +1053,8 @@ snapshots:
color-name@1.1.4: {}
+ commander@14.0.2: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -1025,7 +1103,7 @@ snapshots:
fast-stable-stringify@1.0.0: {}
- file-uri-to-path@1.0.0: {}
+ fastestsmallesttextencoderdecoder@1.0.22: {}
fill-range@7.0.1:
dependencies:
@@ -1134,6 +1212,41 @@ snapshots:
jsonparse@1.3.1: {}
+ litesvm-darwin-arm64@0.4.0:
+ optional: true
+
+ litesvm-darwin-x64@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-arm64-musl@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-gnu@0.4.0:
+ optional: true
+
+ litesvm-linux-x64-musl@0.4.0:
+ optional: true
+
+ litesvm@0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10):
+ dependencies:
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ fastestsmallesttextencoderdecoder: 1.0.22
+ optionalDependencies:
+ litesvm-darwin-arm64: 0.4.0
+ litesvm-darwin-x64: 0.4.0
+ litesvm-linux-arm64-gnu: 0.4.0
+ litesvm-linux-arm64-musl: 0.4.0
+ litesvm-linux-x64-gnu: 0.4.0
+ litesvm-linux-x64-musl: 0.4.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1273,9 +1386,9 @@ snapshots:
solana-bankrun-linux-x64-musl@0.3.0:
optional: true
- solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ solana-bankrun@0.3.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10):
dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bs58: 4.0.1
optionalDependencies:
solana-bankrun-darwin-arm64: 0.3.0
@@ -1286,6 +1399,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
source-map-support@0.5.21:
diff --git a/basics/close-account/anchor/tests/bankrun.test.ts b/basics/close-account/anchor/tests/bankrun.test.ts
deleted file mode 100644
index 76afde229..000000000
--- a/basics/close-account/anchor/tests/bankrun.test.ts
+++ /dev/null
@@ -1,62 +0,0 @@
-import assert from "node:assert";
-import { describe, it } from "node:test";
-import * as anchor from "@coral-xyz/anchor";
-import { PublicKey } from "@solana/web3.js";
-import { BankrunProvider } from "anchor-bankrun";
-import { startAnchor } from "solana-bankrun";
-import type { CloseAccountProgram } from "../target/types/close_account_program";
-
-import IDL from "../target/idl/close_account_program.json" with { type: "json" };
-const PROGRAM_ID = new PublicKey(IDL.address);
-
-describe("close-an-account", async () => {
- // Configure the client to use the local cluster.
- const context = await startAnchor(
- "",
- [{ name: "close_account_program", programId: PROGRAM_ID }],
- [],
- );
- const provider = new BankrunProvider(context);
-
- const payer = provider.wallet as anchor.Wallet;
- const program = new anchor.Program(IDL, provider);
- // Derive the PDA for the user's account.
- const [userAccountAddress] = PublicKey.findProgramAddressSync(
- [Buffer.from("USER"), payer.publicKey.toBuffer()],
- program.programId,
- );
-
- it("Create Account", async () => {
- await program.methods
- .createUser("John Doe")
- .accounts({
- user: payer.publicKey,
- })
- .rpc();
-
- // Fetch the account data
- const userAccount =
- await program.account.userState.fetch(userAccountAddress);
- assert.equal(userAccount.name, "John Doe");
- assert.equal(userAccount.user.toBase58(), payer.publicKey.toBase58());
- });
-
- it("Close Account", async () => {
- await program.methods
- .closeUser()
- .accounts({
- user: payer.publicKey,
- })
- .rpc();
-
- // The account should no longer exist, returning null.
- try {
- const userAccount =
- await program.account.userState.fetchNullable(userAccountAddress);
- assert.equal(userAccount, null);
- } catch (err) {
- // Won't return null and will throw an error in anchor-bankrun'
- assert.equal(err.message, `Could not find ${userAccountAddress}`);
- }
- });
-});
diff --git a/basics/close-account/anchor/tests/close-account.ts b/basics/close-account/anchor/tests/close-account.ts
deleted file mode 100644
index da436acb6..000000000
--- a/basics/close-account/anchor/tests/close-account.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-import assert from 'node:assert';
-import type { Program } from '@coral-xyz/anchor';
-import * as anchor from '@coral-xyz/anchor';
-import { PublicKey } from '@solana/web3.js';
-import type { CloseAccountProgram } from '../target/types/close_account_program';
-
-describe('close-an-account', () => {
- // Configure the client to use the local cluster.
- const provider = anchor.AnchorProvider.env();
- anchor.setProvider(provider);
-
- const program = anchor.workspace.CloseAccountProgram as Program;
- const payer = provider.wallet as anchor.Wallet;
-
- // Derive the PDA for the user's account.
- const [userAccountAddress] = PublicKey.findProgramAddressSync([Buffer.from('USER'), payer.publicKey.toBuffer()], program.programId);
-
- it('Create Account', async () => {
- await program.methods
- .createUser('John Doe')
- .accounts({
- user: payer.publicKey,
- userAccount: userAccountAddress,
- })
- .rpc();
-
- // Fetch the account data
- const userAccount = await program.account.userState.fetch(userAccountAddress);
- assert.equal(userAccount.name, 'John Doe');
- assert.equal(userAccount.user.toBase58(), payer.publicKey.toBase58());
- });
-
- it('Close Account', async () => {
- await program.methods
- .closeUser()
- .accounts({
- user: payer.publicKey,
- userAccount: userAccountAddress,
- })
- .rpc();
-
- // The account should no longer exist, returning null.
- const userAccount = await program.account.userState.fetchNullable(userAccountAddress);
- assert.equal(userAccount, null);
- });
-});
diff --git a/basics/close-account/anchor/tests/litesvm.test.ts b/basics/close-account/anchor/tests/litesvm.test.ts
new file mode 100644
index 000000000..c1b8e5433
--- /dev/null
+++ b/basics/close-account/anchor/tests/litesvm.test.ts
@@ -0,0 +1,101 @@
+import anchor from "@coral-xyz/anchor";
+import {
+ Keypair,
+ LAMPORTS_PER_SOL,
+ PublicKey,
+ SystemProgram,
+ Transaction,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import { assert } from "chai";
+import { LiteSVM } from "litesvm";
+import IDL from "../target/idl/close_account_program.json" with {
+ type: "json",
+};
+
+describe("LiteSVM: Close an account", () => {
+ const litesvm = new LiteSVM();
+ const programId = new PublicKey(IDL.address);
+ const payer = Keypair.generate();
+ const coder = new anchor.BorshCoder(IDL as anchor.Idl); // For serialization and deserialization
+
+ const programPath = new URL(
+ "../target/deploy/close_account_program.so",
+ import.meta.url,
+ ).pathname;
+ litesvm.addProgramFromFile(programId, programPath);
+
+ litesvm.airdrop(payer.publicKey, BigInt(5 * LAMPORTS_PER_SOL));
+
+ /**
+ * Derive the PDA for the user's account.
+ */
+ const [userAccountAddress] = PublicKey.findProgramAddressSync(
+ [Buffer.from("USER"), payer.publicKey.toBuffer()],
+ programId,
+ );
+
+ it("Create an account", () => {
+ /**
+ * Instruction data
+ * Convert into buffer of instruction data
+ */
+ const dataArg = { name: "John Doe" };
+ const data = coder.instruction.encode("create_user", dataArg);
+
+ /**
+ * Create Transactions
+ */
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: payer.publicKey, isSigner: true, isWritable: true },
+ { pubkey: userAccountAddress, isSigner: false, isWritable: true },
+ { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
+ ],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = litesvm.latestBlockhash();
+ tx.sign(payer);
+ litesvm.sendTransaction(tx);
+
+ /**
+ * Fetch account
+ */
+ const userAccount = litesvm.getAccount(userAccountAddress);
+ const user = coder.accounts.decode(
+ "UserState",
+ Buffer.from(userAccount.data),
+ );
+ assert.equal(user.name, "John Doe");
+ assert.equal(user.user.toBase58(), payer.publicKey.toBase58());
+ });
+
+ it("Close an account", () => {
+ const data = coder.instruction.encode("close_user", {});
+
+ const ix = new TransactionInstruction({
+ keys: [
+ { pubkey: payer.publicKey, isSigner: true, isWritable: true },
+ { pubkey: userAccountAddress, isSigner: false, isWritable: true },
+ ],
+ programId,
+ data,
+ });
+
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = litesvm.latestBlockhash();
+ tx.sign(payer);
+ litesvm.sendTransaction(tx);
+
+ /**
+ * Fetch account
+ */
+ const userAccount = litesvm.getAccount(userAccountAddress);
+ assert.equal(userAccount, null);
+ });
+});
diff --git a/basics/close-account/anchor/tests/test.ts b/basics/close-account/anchor/tests/test.ts
new file mode 100644
index 000000000..a546f72e4
--- /dev/null
+++ b/basics/close-account/anchor/tests/test.ts
@@ -0,0 +1,61 @@
+import type { Program } from "@coral-xyz/anchor";
+import * as anchor from "@coral-xyz/anchor";
+import { PublicKey, SystemProgram } from "@solana/web3.js";
+import { assert } from "chai";
+import type { CloseAccountProgram } from "../target/types/close_account_program.ts";
+
+describe("Anchor: Close an account", () => {
+ /**
+ * Configure the client to use the local cluster.
+ */
+ const provider = anchor.AnchorProvider.env();
+ anchor.setProvider(provider);
+
+ const program = anchor.workspace
+ .CloseAccountProgram as Program;
+ const payer = provider.wallet as anchor.Wallet;
+
+ /**
+ * Derive the PDA for the user's account.
+ */
+ const [userAccountAddress] = PublicKey.findProgramAddressSync(
+ [Buffer.from("USER"), payer.publicKey.toBuffer()],
+ program.programId,
+ );
+
+ it("Create an account", async () => {
+ await program.methods
+ .createUser("John Doe")
+ .accounts({
+ user: payer.publicKey,
+ userAccount: userAccountAddress,
+ system_program: SystemProgram.programId,
+ })
+ .rpc();
+
+ /**
+ * Fetch account
+ */
+ const userAccount =
+ await program.account.userState.fetch(userAccountAddress);
+ assert.equal(userAccount.name, "John Doe");
+ assert.equal(userAccount.user.toBase58(), payer.publicKey.toBase58());
+ });
+
+ it("Close an account", async () => {
+ await program.methods
+ .closeUser()
+ .accounts({
+ user: payer.publicKey,
+ userAccount: userAccountAddress,
+ })
+ .rpc();
+
+ /**
+ * Fetch account
+ */
+ const userAccount =
+ await program.account.userState.fetchNullable(userAccountAddress);
+ assert.equal(userAccount, null);
+ });
+});
diff --git a/basics/close-account/anchor/tsconfig.json b/basics/close-account/anchor/tsconfig.json
index a1fc2a26b..88e8865f0 100644
--- a/basics/close-account/anchor/tsconfig.json
+++ b/basics/close-account/anchor/tsconfig.json
@@ -1,9 +1,10 @@
{
- "compilerOptions": {
- "typeRoots": ["./node_modules/@types"],
- "lib": ["es2015"],
- "module": "commonjs",
- "target": "es6",
- "esModuleInterop": true
- }
+ "compilerOptions": {
+ "typeRoots": ["./node_modules/@types"],
+ "lib": ["es2020"],
+ "module": "nodenext",
+ "target": "es2020",
+ "esModuleInterop": true,
+ "resolveJsonModule": true
+ }
}
From d7fcf9949ba7919805a0cc75a78d7a34d139db6f Mon Sep 17 00:00:00 2001
From: abdellah hariti
Date: Thu, 15 Jan 2026 17:43:32 +0100
Subject: [PATCH 28/49] chore: fix anchor escrow program tests (#502)
* chore: fix anchor escrow tests
* formatting
* more formatting
* import with type json
* manually unpack spl accounts
getAccount is failing for some reason
---
tokens/escrow/anchor/package.json | 27 +-
tokens/escrow/anchor/pnpm-lock.yaml | 1477 ++++++++++----------
tokens/escrow/anchor/tests/bankrun.test.ts | 96 +-
tokens/escrow/anchor/tests/escrow.test.ts | 166 ++-
tokens/escrow/anchor/tsconfig.json | 11 +-
5 files changed, 895 insertions(+), 882 deletions(-)
diff --git a/tokens/escrow/anchor/package.json b/tokens/escrow/anchor/package.json
index 231bfa6ba..104dd8f87 100644
--- a/tokens/escrow/anchor/package.json
+++ b/tokens/escrow/anchor/package.json
@@ -6,21 +6,22 @@
},
"dependencies": {
"@coral-xyz/anchor": "^0.32.1",
- "@solana-developers/helpers": "^2.3.0",
- "@solana/spl-token": "^0.4.6",
- "@solana/web3.js": "^1.95.2"
+ "@solana-developers/helpers": "^2.8.1",
+ "@solana/spl-token": "^0.4.14",
+ "@solana/web3.js": "^1.98.4"
},
"license": "MIT",
"devDependencies": {
- "@types/bn.js": "^5.1.0",
- "@types/chai": "^4.3.0",
- "@types/mocha": "^9.0.0",
- "anchor-bankrun": "^0.4.0",
- "chai": "^4.3.4",
- "mocha": "^9.0.3",
- "prettier": "^2.6.2",
- "solana-bankrun": "^0.3.0",
- "ts-mocha": "^10.0.0",
- "typescript": "^4.3.5"
+ "@types/bn.js": "^5.2.0",
+ "@types/chai": "^5.2.3",
+ "@types/mocha": "^10.0.10",
+ "anchor-bankrun": "^0.5.0",
+ "chai": "^6.2.2",
+ "mocha": "^11.7.5",
+ "prettier": "^3.7.4",
+ "solana-bankrun": "^0.4.0",
+ "ts-mocha": "^11.1.0",
+ "ts-node": "^10.9.2",
+ "typescript": "^5.9.3"
}
}
diff --git a/tokens/escrow/anchor/pnpm-lock.yaml b/tokens/escrow/anchor/pnpm-lock.yaml
index f7870ee3e..9c69f8df5 100644
--- a/tokens/escrow/anchor/pnpm-lock.yaml
+++ b/tokens/escrow/anchor/pnpm-lock.yaml
@@ -10,81 +10,117 @@ importers:
dependencies:
'@coral-xyz/anchor':
specifier: ^0.32.1
- version: 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.32.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
'@solana-developers/helpers':
- specifier: ^2.3.0
- version: 2.5.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ specifier: ^2.8.1
+ version: 2.8.1(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)
'@solana/spl-token':
- specifier: ^0.4.6
- version: 0.4.6(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ specifier: ^0.4.14
+ version: 0.4.14(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.95.2
- version: 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
devDependencies:
'@types/bn.js':
- specifier: ^5.1.0
- version: 5.1.5
+ specifier: ^5.2.0
+ version: 5.2.0
'@types/chai':
- specifier: ^4.3.0
- version: 4.3.16
+ specifier: ^5.2.3
+ version: 5.2.3
'@types/mocha':
- specifier: ^9.0.0
- version: 9.1.1
+ specifier: ^10.0.10
+ version: 10.0.10
anchor-bankrun:
- specifier: ^0.4.0
- version: 0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ specifier: ^0.5.0
+ version: 0.5.0(@coral-xyz/anchor@0.32.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(solana-bankrun@0.4.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))
chai:
- specifier: ^4.3.4
- version: 4.4.1
+ specifier: ^6.2.2
+ version: 6.2.2
mocha:
- specifier: ^9.0.3
- version: 9.2.2
+ specifier: ^11.7.5
+ version: 11.7.5
prettier:
- specifier: ^2.6.2
- version: 2.8.8
+ specifier: ^3.7.4
+ version: 3.7.4
solana-bankrun:
- specifier: ^0.3.0
- version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^0.4.0
+ version: 0.4.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
ts-mocha:
- specifier: ^10.0.0
- version: 10.0.0(mocha@9.2.2)
+ specifier: ^11.1.0
+ version: 11.1.0(mocha@11.7.5)(ts-node@10.9.2(@types/node@25.0.3)(typescript@5.9.3))
+ ts-node:
+ specifier: ^10.9.2
+ version: 10.9.2(@types/node@25.0.3)(typescript@5.9.3)
typescript:
- specifier: ^4.3.5
- version: 4.9.5
+ specifier: ^5.9.3
+ version: 5.9.3
packages:
- '@babel/runtime@7.25.0':
- resolution: {integrity: sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==}
+ '@babel/runtime@7.28.4':
+ resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==}
engines: {node: '>=6.9.0'}
+ '@coral-xyz/anchor-errors@0.30.1':
+ resolution: {integrity: sha512-9Mkradf5yS5xiLWrl9WrpjqOrAV+/W2RQHDlbnAZBivoGpOs1ECjoDCkVk4aRG8ZdiFiB8zQEVlxf+8fKkmSfQ==}
+ engines: {node: '>=10'}
+
'@coral-xyz/anchor-errors@0.31.1':
resolution: {integrity: sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ==}
engines: {node: '>=10'}
+ '@coral-xyz/anchor@0.30.1':
+ resolution: {integrity: sha512-gDXFoF5oHgpriXAaLpxyWBHdCs8Awgf/gLHIo6crv7Aqm937CNdY+x+6hoj7QR5vaJV7MxWSQ0NGFzL3kPbWEQ==}
+ engines: {node: '>=11'}
+
'@coral-xyz/anchor@0.32.1':
resolution: {integrity: sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg==}
engines: {node: '>=17'}
+ '@coral-xyz/borsh@0.30.1':
+ resolution: {integrity: sha512-aaxswpPrCFKl8vZTbxLssA2RvwX2zmKLlRCIktJOwW+VpVwYtXRtlWiIP+c2pPRKneiTiWCN2GEMSH9j1zTlWQ==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@solana/web3.js': ^1.68.0
+
'@coral-xyz/borsh@0.31.1':
resolution: {integrity: sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw==}
engines: {node: '>=10'}
peerDependencies:
'@solana/web3.js': ^1.69.0
- '@noble/curves@1.5.0':
- resolution: {integrity: sha512-J5EKamIHnKPyClwVrzmaf5wSdQXgdHcPZIZLu3bwnbeCx8/7NPK5q2ZBWF+5FvYGByjiQQsJYX6jfgB2wDPn3A==}
+ '@cspotcode/source-map-support@0.8.1':
+ resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
+ engines: {node: '>=12'}
- '@noble/hashes@1.4.0':
- resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==}
- engines: {node: '>= 16'}
+ '@isaacs/cliui@8.0.2':
+ resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
+ engines: {node: '>=12'}
+
+ '@jridgewell/resolve-uri@3.1.2':
+ resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
+ engines: {node: '>=6.0.0'}
+
+ '@jridgewell/sourcemap-codec@1.5.5':
+ resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
+
+ '@jridgewell/trace-mapping@0.3.9':
+ resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
+
+ '@noble/curves@1.9.7':
+ resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==}
+ engines: {node: ^14.21.3 || >=16}
'@noble/hashes@1.8.0':
resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
engines: {node: ^14.21.3 || >=16}
- '@solana-developers/helpers@2.5.0':
- resolution: {integrity: sha512-QKm22DUFcDseUJ+rjZtIJmw6k5KHe5hV6K3g1RVISitL1KoKPfLYMqAjBQlUcT1KG0GNCpmOKT1dFjJTBsm+1w==}
+ '@pkgjs/parseargs@0.11.0':
+ resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
+ engines: {node: '>=14'}
+
+ '@solana-developers/helpers@2.8.1':
+ resolution: {integrity: sha512-xvoOj+ewL18+h6fMrXp1vTss0WBLnhQHnBb6mMPfEQE32w0THlxm8OPXNUY8g4tREX7ugU5cDEP7c2teye1Z7A==}
'@solana/buffer-layout-utils@0.2.0':
resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==}
@@ -94,127 +130,118 @@ packages:
resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
engines: {node: '>=5.10'}
- '@solana/codecs-core@2.0.0-preview.2':
- resolution: {integrity: sha512-gLhCJXieSCrAU7acUJjbXl+IbGnqovvxQLlimztPoGgfLQ1wFYu+XJswrEVQqknZYK1pgxpxH3rZ+OKFs0ndQg==}
-
- '@solana/codecs-core@2.0.0-preview.4':
- resolution: {integrity: sha512-A0VVuDDA5kNKZUinOqHxJQK32aKTucaVbvn31YenGzHX1gPqq+SOnFwgaEY6pq4XEopSmaK16w938ZQS8IvCnw==}
+ '@solana/codecs-core@2.0.0-rc.1':
+ resolution: {integrity: sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ==}
peerDependencies:
typescript: '>=5'
- '@solana/codecs-data-structures@2.0.0-preview.2':
- resolution: {integrity: sha512-Xf5vIfromOZo94Q8HbR04TbgTwzigqrKII0GjYr21K7rb3nba4hUW2ir8kguY7HWFBcjHGlU5x3MevKBOLp3Zg==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
- '@solana/codecs-data-structures@2.0.0-preview.4':
- resolution: {integrity: sha512-nt2k2eTeyzlI/ccutPcG36M/J8NAYfxBPI9h/nQjgJ+M+IgOKi31JV8StDDlG/1XvY0zyqugV3I0r3KAbZRJpA==}
+ '@solana/codecs-data-structures@2.0.0-rc.1':
+ resolution: {integrity: sha512-rinCv0RrAVJ9rE/rmaibWJQxMwC5lSaORSZuwjopSUE6T0nb/MVg6Z1siNCXhh/HFTOg0l8bNvZHgBcN/yvXog==}
peerDependencies:
typescript: '>=5'
- '@solana/codecs-numbers@2.0.0-preview.2':
- resolution: {integrity: sha512-aLZnDTf43z4qOnpTcDsUVy1Ci9im1Md8thWipSWbE+WM9ojZAx528oAql+Cv8M8N+6ALKwgVRhPZkto6E59ARw==}
-
- '@solana/codecs-numbers@2.0.0-preview.4':
- resolution: {integrity: sha512-Q061rLtMadsO7uxpguT+Z7G4UHnjQ6moVIxAQxR58nLxDPCC7MB1Pk106/Z7NDhDLHTcd18uO6DZ7ajHZEn2XQ==}
+ '@solana/codecs-numbers@2.0.0-rc.1':
+ resolution: {integrity: sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ==}
peerDependencies:
typescript: '>=5'
- '@solana/codecs-strings@2.0.0-preview.2':
- resolution: {integrity: sha512-EgBwY+lIaHHgMJIqVOGHfIfpdmmUDNoNO/GAUGeFPf+q0dF+DtwhJPEMShhzh64X2MeCZcmSO6Kinx0Bvmmz2g==}
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
peerDependencies:
- fastestsmallesttextencoderdecoder: ^1.0.22
+ typescript: '>=5.3.3'
- '@solana/codecs-strings@2.0.0-preview.4':
- resolution: {integrity: sha512-YDbsQePRWm+xnrfS64losSGRg8Wb76cjK1K6qfR8LPmdwIC3787x9uW5/E4icl/k+9nwgbIRXZ65lpF+ucZUnw==}
+ '@solana/codecs-strings@2.0.0-rc.1':
+ resolution: {integrity: sha512-9/wPhw8TbGRTt6mHC4Zz1RqOnuPTqq1Nb4EyuvpZ39GW6O2t2Q7Q0XxiB3+BdoEjwA2XgPw6e2iRfvYgqty44g==}
peerDependencies:
fastestsmallesttextencoderdecoder: ^1.0.22
typescript: '>=5'
- '@solana/codecs@2.0.0-preview.2':
- resolution: {integrity: sha512-4HHzCD5+pOSmSB71X6w9ptweV48Zj1Vqhe732+pcAQ2cMNnN0gMPMdDq7j3YwaZDZ7yrILVV/3+HTnfT77t2yA==}
-
- '@solana/codecs@2.0.0-preview.4':
- resolution: {integrity: sha512-gLMupqI4i+G4uPi2SGF/Tc1aXcviZF2ybC81x7Q/fARamNSgNOCUUoSCg9nWu1Gid6+UhA7LH80sWI8XjKaRog==}
+ '@solana/codecs@2.0.0-rc.1':
+ resolution: {integrity: sha512-qxoR7VybNJixV51L0G1RD2boZTcxmwUWnKCaJJExQ5qNKwbpSyDdWfFJfM5JhGyKe9DnPVOZB+JHWXnpbZBqrQ==}
peerDependencies:
typescript: '>=5'
- '@solana/errors@2.0.0-preview.2':
- resolution: {integrity: sha512-H2DZ1l3iYF5Rp5pPbJpmmtCauWeQXRJapkDg8epQ8BJ7cA2Ut/QEtC3CMmw/iMTcuS6uemFNLcWvlOfoQhvQuA==}
- hasBin: true
-
- '@solana/errors@2.0.0-preview.4':
- resolution: {integrity: sha512-kadtlbRv2LCWr8A9V22On15Us7Nn8BvqNaOB4hXsTB3O0fU40D1ru2l+cReqLcRPij4znqlRzW9Xi0m6J5DIhA==}
+ '@solana/errors@2.0.0-rc.1':
+ resolution: {integrity: sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ==}
hasBin: true
peerDependencies:
typescript: '>=5'
- '@solana/options@2.0.0-preview.2':
- resolution: {integrity: sha512-FAHqEeH0cVsUOTzjl5OfUBw2cyT8d5Oekx4xcn5hn+NyPAfQJgM3CEThzgRD6Q/4mM5pVUnND3oK/Mt1RzSE/w==}
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
- '@solana/options@2.0.0-preview.4':
- resolution: {integrity: sha512-tv2O/Frxql/wSe3jbzi5nVicIWIus/BftH+5ZR+r9r3FO0/htEllZS5Q9XdbmSboHu+St87584JXeDx3xm4jaA==}
+ '@solana/options@2.0.0-rc.1':
+ resolution: {integrity: sha512-mLUcR9mZ3qfHlmMnREdIFPf9dpMc/Bl66tLSOOWxw4ml5xMT2ohFn7WGqoKcu/UHkT9CrC6+amEdqCNvUqI7AA==}
peerDependencies:
typescript: '>=5'
- '@solana/spl-token-group@0.0.4':
- resolution: {integrity: sha512-7+80nrEMdUKlK37V6kOe024+T7J4nNss0F8LQ9OOPYdWCCfJmsGUzVx2W3oeizZR4IHM6N4yC9v1Xqwc3BTPWw==}
+ '@solana/spl-token-group@0.0.7':
+ resolution: {integrity: sha512-V1N/iX7Cr7H0uazWUT2uk27TMqlqedpXHRqqAbVO2gvmJyT0E0ummMEAVQeXZ05ZhQ/xF39DLSdBp90XebWEug==}
engines: {node: '>=16'}
peerDependencies:
- '@solana/web3.js': ^1.91.6
+ '@solana/web3.js': ^1.95.3
- '@solana/spl-token-group@0.0.5':
- resolution: {integrity: sha512-CLJnWEcdoUBpQJfx9WEbX3h6nTdNiUzswfFdkABUik7HVwSNA98u5AYvBVK2H93d9PGMOHAak2lHW9xr+zAJGQ==}
+ '@solana/spl-token-metadata@0.1.6':
+ resolution: {integrity: sha512-7sMt1rsm/zQOQcUWllQX9mD2O6KhSAtY1hFR2hfFwgqfFWzSY9E9GDvFVNYUI1F0iQKcm6HmePU9QbKRXTEBiA==}
engines: {node: '>=16'}
peerDependencies:
- '@solana/web3.js': ^1.94.0
+ '@solana/web3.js': ^1.95.3
- '@solana/spl-token-metadata@0.1.4':
- resolution: {integrity: sha512-N3gZ8DlW6NWDV28+vCCDJoTqaCZiF/jDUnk3o8GRkAFzHObiR60Bs1gXHBa8zCPdvOwiG6Z3dg5pg7+RW6XNsQ==}
+ '@solana/spl-token@0.4.14':
+ resolution: {integrity: sha512-u09zr96UBpX4U685MnvQsNzlvw9TiY005hk1vJmJr7gMJldoPG1eYU5/wNEyOA5lkMLiR/gOi9SFD4MefOYEsA==}
engines: {node: '>=16'}
peerDependencies:
- '@solana/web3.js': ^1.91.6
+ '@solana/web3.js': ^1.95.5
- '@solana/spl-token@0.4.6':
- resolution: {integrity: sha512-1nCnUqfHVtdguFciVWaY/RKcQz1IF4b31jnKgAmjU9QVN1q7dRUkTEWJZgTYIEtsULjVnC9jRqlhgGN39WbKKA==}
- engines: {node: '>=16'}
- peerDependencies:
- '@solana/web3.js': ^1.91.6
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
- '@solana/spl-token@0.4.8':
- resolution: {integrity: sha512-RO0JD9vPRi4LsAbMUdNbDJ5/cv2z11MGhtAvFeRzT4+hAGE/FUzRi0tkkWtuCfSIU3twC6CtmAihRp/+XXjWsA==}
- engines: {node: '>=16'}
- peerDependencies:
- '@solana/web3.js': ^1.94.0
+ '@swc/helpers@0.5.18':
+ resolution: {integrity: sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ==}
- '@solana/spl-type-length-value@0.1.0':
- resolution: {integrity: sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA==}
- engines: {node: '>=16'}
+ '@tsconfig/node10@1.0.12':
+ resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==}
+
+ '@tsconfig/node12@1.0.11':
+ resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
- '@solana/web3.js@1.95.2':
- resolution: {integrity: sha512-SjlHp0G4qhuhkQQc+YXdGkI8EerCqwxvgytMgBpzMUQTafrkNant3e7pgilBGgjy/iM40ICvWBLgASTPMrQU7w==}
+ '@tsconfig/node14@1.0.3':
+ resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
- '@swc/helpers@0.5.11':
- resolution: {integrity: sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==}
+ '@tsconfig/node16@1.0.4':
+ resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
- '@types/bn.js@5.1.5':
- resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==}
+ '@types/bn.js@5.2.0':
+ resolution: {integrity: sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q==}
- '@types/chai@4.3.16':
- resolution: {integrity: sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ==}
+ '@types/chai@5.2.3':
+ resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==}
'@types/connect@3.4.38':
resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
- '@types/json5@0.0.29':
- resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
+ '@types/deep-eql@4.0.2':
+ resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==}
- '@types/mocha@9.1.1':
- resolution: {integrity: sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==}
+ '@types/mocha@10.0.10':
+ resolution: {integrity: sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==}
'@types/node@12.20.55':
resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
- '@types/node@20.14.2':
- resolution: {integrity: sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==}
+ '@types/node@25.0.3':
+ resolution: {integrity: sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==}
'@types/uuid@8.3.4':
resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==}
@@ -222,62 +249,64 @@ packages:
'@types/ws@7.4.7':
resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
- '@types/ws@8.5.10':
- resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==}
+ '@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==}
+ acorn-walk@8.3.4:
+ resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==}
+ engines: {node: '>=0.4.0'}
- JSONStream@1.3.5:
- resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
+ acorn@8.15.0:
+ resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
+ engines: {node: '>=0.4.0'}
hasBin: true
- agentkeepalive@4.5.0:
- resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
+ agentkeepalive@4.6.0:
+ resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==}
engines: {node: '>= 8.0.0'}
- anchor-bankrun@0.4.0:
- resolution: {integrity: sha512-s+K7E0IGAlmkhuo8nbiqVsQf2yJ+3l9GjNQJSmkRDe25dQj4Yef9rJh77FH6EQ5H6yQYfzuhgm/5GD6JMjdTZg==}
+ anchor-bankrun@0.5.0:
+ resolution: {integrity: sha512-cNTRv7pN9dy+kiyJ3UlNVTg9hAXhY2HtNVNXJbP/2BkS9nOdLV0qKWhgW8UR9Go0gYuEOLKuPzrGL4HFAZPsVw==}
engines: {node: '>= 10'}
peerDependencies:
'@coral-xyz/anchor': ^0.30.0
- '@solana/web3.js': ^1.78.4
- solana-bankrun: ^0.2.0
-
- ansi-colors@4.1.1:
- resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
- engines: {node: '>=6'}
+ '@solana/web3.js': '>1.92.0'
+ solana-bankrun: '>=0.2.0 <0.5.0'
ansi-regex@5.0.1:
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
engines: {node: '>=8'}
+ ansi-regex@6.2.2:
+ resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==}
+ engines: {node: '>=12'}
+
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'}
+ ansi-styles@6.2.3:
+ resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==}
+ engines: {node: '>=12'}
+
+ arg@4.1.3:
+ resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
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==}
+ assertion-error@2.0.1:
+ resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
+ engines: {node: '>=12'}
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
- base-x@3.0.9:
- resolution: {integrity: sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==}
+ base-x@3.0.11:
+ resolution: {integrity: sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==}
- base-x@5.0.0:
- resolution: {integrity: sha512-sMW3VGSX1QWVFA6l8U62MLKz29rRfpTlYdCqLdpLo1/Yd4zZwSbnUaDfciIAowAqvq7YFnWq9hrhdg1KYgc1lQ==}
+ base-x@5.0.1:
+ resolution: {integrity: sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg==}
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
@@ -286,31 +315,20 @@ packages:
resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==}
engines: {node: '>= 10.0.0'}
- bignumber.js@9.1.2:
- resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==}
-
- binary-extensions@2.3.0:
- resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
- engines: {node: '>=8'}
+ bignumber.js@9.3.1:
+ resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==}
bindings@1.5.0:
resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
- 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==}
-
- braces@3.0.3:
- resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
- engines: {node: '>=8'}
+ brace-expansion@2.0.2:
+ resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
browser-stdout@1.3.1:
resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==}
@@ -321,9 +339,6 @@ packages:
bs58@6.0.0:
resolution: {integrity: sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==}
- buffer-from@1.1.2:
- resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
-
buffer-layout@1.2.2:
resolution: {integrity: sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==}
engines: {node: '>=4.5'}
@@ -331,35 +346,33 @@ packages:
buffer@6.0.3:
resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
- bufferutil@4.0.8:
- resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==}
+ bufferutil@4.1.0:
+ resolution: {integrity: sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw==}
engines: {node: '>=6.14.2'}
camelcase@6.3.0:
resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
engines: {node: '>=10'}
- chai@4.4.1:
- resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==}
- engines: {node: '>=4'}
+ chai@6.2.2:
+ resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==}
+ engines: {node: '>=18'}
chalk@4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
- chalk@5.3.0:
- resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
- check-error@1.0.3:
- resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
-
- chokidar@3.5.3:
- resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
- engines: {node: '>= 8.10.0'}
+ chokidar@4.0.3:
+ resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
+ engines: {node: '>= 14.16.0'}
- cliui@7.0.4:
- resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
+ cliui@8.0.1:
+ resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
+ engines: {node: '>=12'}
color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
@@ -372,17 +385,29 @@ packages:
resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
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==}
- concat-map@0.0.1:
- resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+ create-require@1.1.1:
+ resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
cross-fetch@3.2.0:
resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==}
- debug@4.3.3:
- resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==}
+ cross-spawn@7.0.6:
+ resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
+ engines: {node: '>= 8'}
+
+ crypto-hash@1.3.0:
+ resolution: {integrity: sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==}
+ engines: {node: '>=8'}
+
+ debug@4.4.3:
+ resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
engines: {node: '>=6.0'}
peerDependencies:
supports-color: '*'
@@ -394,37 +419,42 @@ packages:
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==}
+ diff@4.0.2:
+ resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
engines: {node: '>=0.3.1'}
- diff@5.0.0:
- resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
+ diff@7.0.0:
+ resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==}
engines: {node: '>=0.3.1'}
- dotenv@16.4.5:
- resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==}
+ dot-case@3.0.4:
+ resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
+
+ dotenv@16.6.1:
+ resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==}
engines: {node: '>=12'}
+ eastasianwidth@0.2.0:
+ resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+
emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+ emoji-regex@9.2.2:
+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+
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.1.2:
- resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
+ escalade@3.2.0:
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
engines: {node: '>=6'}
escape-string-regexp@4.0.0:
@@ -450,10 +480,6 @@ packages:
file-uri-to-path@1.0.0:
resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
- 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'}
@@ -462,32 +488,17 @@ packages:
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]
+ foreground-child@3.3.1:
+ resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
+ engines: {node: '>=14'}
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'}
+ glob@10.5.0:
+ resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==}
+ hasBin: true
has-flag@4.0.0:
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
@@ -503,32 +514,13 @@ packages:
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-path-inside@3.0.3:
+ resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
+ engines: {node: '>=8'}
is-plain-obj@2.1.0:
resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
@@ -546,26 +538,21 @@ packages:
peerDependencies:
ws: '*'
- jayson@4.1.1:
- resolution: {integrity: sha512-5ZWm4Q/0DHPyeMfAsrwViwUS2DMVsQgWh8bEEIVTkfb3DzHZ2L3G5WUnF+AKmGjjM9r1uAv73SaqC1/U4RL45w==}
+ jackspeak@3.4.3:
+ resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
+
+ jayson@4.3.0:
+ resolution: {integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==}
engines: {node: '>=8'}
hasBin: true
- js-yaml@4.1.0:
- resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ js-yaml@4.1.1:
+ resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==}
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
-
- jsonparse@1.3.1:
- resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
- engines: {'0': node >= 0.2.0}
-
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -574,41 +561,33 @@ packages:
resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
engines: {node: '>=10'}
- loupe@2.3.7:
- resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==}
+ lower-case@2.0.2:
+ resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
+
+ lru-cache@10.4.3:
+ resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
make-error@1.3.6:
resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
- minimatch@3.1.2:
- resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ minimatch@9.0.5:
+ resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
+ engines: {node: '>=16 || 14 >=14.17'}
- minimatch@4.2.1:
- resolution: {integrity: sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==}
- engines: {node: '>=10'}
-
- minimist@1.2.8:
- resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+ minipass@7.1.2:
+ resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
+ engines: {node: '>=16 || 14 >=14.17'}
- mkdirp@0.5.6:
- resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
+ mocha@11.7.5:
+ resolution: {integrity: sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
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
+ no-case@3.0.4:
+ resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
node-fetch@2.7.0:
resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
@@ -619,17 +598,10 @@ packages:
encoding:
optional: true
- node-gyp-build@4.8.1:
- resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==}
+ 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'}
@@ -638,6 +610,9 @@ packages:
resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
engines: {node: '>=10'}
+ package-json-from-dist@1.0.1:
+ resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
+
pako@2.1.0:
resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==}
@@ -645,96 +620,111 @@ packages:
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'}
+ path-key@3.1.1:
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
- pathval@1.1.1:
- resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
+ path-scurry@1.11.1:
+ resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
+ engines: {node: '>=16 || 14 >=14.18'}
- picomatch@2.3.1:
- resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
- engines: {node: '>=8.6'}
+ picocolors@1.1.1:
+ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
- prettier@2.8.8:
- resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
- engines: {node: '>=10.13.0'}
+ prettier@3.7.4:
+ resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==}
+ engines: {node: '>=14'}
hasBin: true
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==}
+ readdirp@4.1.2:
+ resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
+ engines: {node: '>= 14.18.0'}
require-directory@2.1.1:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
- rpc-websockets@9.0.2:
- resolution: {integrity: sha512-YzggvfItxMY3Lwuax5rC18inhbjJv9Py7JXRHxTIi94JOLrqBsSsUUc5bbl5W6c11tXhdfpDPK0KzBhoGe8jjw==}
+ rpc-websockets@9.3.2:
+ resolution: {integrity: sha512-VuW2xJDnl1k8n8kjbdRSWawPRkwaVqUQNjE1TdeTawf0y0abGhtVJFTXCLfgpgGDBkO/Fj6kny8Dc/nvOW78MA==}
safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
- serialize-javascript@6.0.0:
- resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
+ serialize-javascript@6.0.2:
+ resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
+
+ shebang-command@2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+
+ shebang-regex@3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+
+ signal-exit@4.1.0:
+ resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+ engines: {node: '>=14'}
- solana-bankrun-darwin-arm64@0.3.0:
- resolution: {integrity: sha512-+NbDncf0U6l3knuacRBiqpjZ2DSp+5lZaAU518gH7/x6qubbui/d000STaIBK+uNTPBS/AL/bCN+7PkXqmA3lA==}
+ snake-case@3.0.4:
+ resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
+
+ solana-bankrun-darwin-arm64@0.4.0:
+ resolution: {integrity: sha512-6dz78Teoz7ez/3lpRLDjktYLJb79FcmJk2me4/YaB8WiO6W43OdExU4h+d2FyuAryO2DgBPXaBoBNY/8J1HJmw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
- solana-bankrun-darwin-universal@0.3.0:
- resolution: {integrity: sha512-1/F0xdMa4qvc5o6z16FCCbZ5jbdvKvxpx5kyPcMWRiRPwyvi+zltMxciPAYMlg3wslQqGz88uFhrBEzq2eTumQ==}
+ solana-bankrun-darwin-universal@0.4.0:
+ resolution: {integrity: sha512-zSSw/Jx3KNU42pPMmrEWABd0nOwGJfsj7nm9chVZ3ae7WQg3Uty0hHAkn5NSDCj3OOiN0py9Dr1l9vmRJpOOxg==}
engines: {node: '>= 10'}
os: [darwin]
- solana-bankrun-darwin-x64@0.3.0:
- resolution: {integrity: sha512-U6CANjkmMl+lgNA7UH0GKs5V7LtVIUDzJBZefGGqLfqUNv3EjA/PrrToM0hAOWJgkxSwdz6zW+p5sw5FmnbXtg==}
+ solana-bankrun-darwin-x64@0.4.0:
+ resolution: {integrity: sha512-LWjs5fsgHFtyr7YdJR6r0Ho5zrtzI6CY4wvwPXr8H2m3b4pZe6RLIZjQtabCav4cguc14G0K8yQB2PTMuGub8w==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
- solana-bankrun-linux-x64-gnu@0.3.0:
- resolution: {integrity: sha512-qJSkCFs0k2n4XtTnyxGMiZsuqO2TiqTYgWjQ+3mZhGNUAMys/Vq8bd7/SyBm6RR7EfVuRXRxZvh+F8oKZ77V4w==}
+ solana-bankrun-linux-x64-gnu@0.4.0:
+ resolution: {integrity: sha512-SrlVrb82UIxt21Zr/XZFHVV/h9zd2/nP25PMpLJVLD7Pgl2yhkhfi82xj3OjxoQqWe+zkBJ+uszA0EEKr67yNw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- solana-bankrun-linux-x64-musl@0.3.0:
- resolution: {integrity: sha512-xsS2CS2xb1Sw4ivNXM0gPz/qpW9BX0neSvt/pnok5L330Nu9xlTnKAY8FhzzqOP9P9sJlGRM787Y6d0yYwt6xQ==}
+ solana-bankrun-linux-x64-musl@0.4.0:
+ resolution: {integrity: sha512-Nv328ZanmURdYfcLL+jwB1oMzX4ZzK57NwIcuJjGlf0XSNLq96EoaO5buEiUTo4Ls7MqqMyLbClHcrPE7/aKyA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- solana-bankrun@0.3.0:
- resolution: {integrity: sha512-YkH7sa8TB/AoRPzG17CXJtYsRIQHEkEqGLz1Vwc13taXhDBkjO7z6NI5JYw7n0ybRymDHwMYTc7sd+5J40TyVQ==}
+ solana-bankrun@0.4.0:
+ resolution: {integrity: sha512-NMmXUipPBkt8NgnyNO3SCnPERP6xT/AMNMBooljGA3+rG6NN8lmXJsKeLqQTiFsDeWD74U++QM/DgcueSWvrIg==}
engines: {node: '>= 10'}
- source-map-support@0.5.21:
- resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+ stream-chain@2.2.5:
+ resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==}
- source-map@0.6.1:
- resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
- engines: {node: '>=0.10.0'}
+ 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'}
+ string-width@5.1.2:
+ resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
+ engines: {node: '>=12'}
+
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-ansi@7.1.2:
+ resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==}
+ engines: {node: '>=12'}
strip-json-comments@3.1.1:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
@@ -758,48 +748,48 @@ packages:
text-encoding-utf-8@1.0.2:
resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==}
- through@2.3.8:
- resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
-
- to-regex-range@5.0.1:
- resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
- engines: {node: '>=8.0'}
-
toml@3.0.0:
resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==}
tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
- ts-mocha@10.0.0:
- resolution: {integrity: sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw==}
+ ts-mocha@11.1.0:
+ resolution: {integrity: sha512-yT7FfzNRCu8ZKkYvAOiH01xNma/vLq6Vit7yINKYFNVP8e5UyrYXSOMIipERTpzVKJQ4Qcos5bQo1tNERNZevQ==}
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
+ 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.X.X || ^8.X.X || ^9.X.X || ^10.X.X
+ tsconfig-paths: ^4.X.X
+ peerDependenciesMeta:
+ tsconfig-paths:
+ optional: true
- ts-node@7.0.1:
- resolution: {integrity: sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==}
- engines: {node: '>=4.2.0'}
+ ts-node@10.9.2:
+ resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
hasBin: true
+ peerDependencies:
+ '@swc/core': '>=1.2.50'
+ '@swc/wasm': '>=1.2.50'
+ '@types/node': '*'
+ typescript: '>=2.7'
+ peerDependenciesMeta:
+ '@swc/core':
+ optional: true
+ '@swc/wasm':
+ optional: true
- tsconfig-paths@3.15.0:
- resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
-
- tslib@2.6.3:
- resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==}
-
- type-detect@4.0.8:
- resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
- engines: {node: '>=4'}
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
- typescript@4.9.5:
- resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
- engines: {node: '>=4.2.0'}
+ typescript@5.9.3:
+ resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
+ engines: {node: '>=14.17'}
hasBin: true
- undici-types@5.26.5:
- resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
+ undici-types@7.16.0:
+ resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==}
utf-8-validate@5.0.10:
resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==}
@@ -809,6 +799,9 @@ packages:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
+ v8-compile-cache-lib@3.0.1:
+ resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
+
webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
@@ -820,15 +813,16 @@ packages:
engines: {node: '>= 8'}
hasBin: true
- workerpool@6.2.0:
- resolution: {integrity: sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==}
+ workerpool@9.3.4:
+ resolution: {integrity: sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==}
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==}
+ wrap-ansi@8.1.0:
+ resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
+ engines: {node: '>=12'}
ws@7.5.10:
resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==}
@@ -842,8 +836,8 @@ packages:
utf-8-validate:
optional: true
- ws@8.17.0:
- resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==}
+ ws@8.18.3:
+ resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==}
engines: {node: '>=10.0.0'}
peerDependencies:
bufferutil: ^4.0.1
@@ -858,21 +852,21 @@ packages:
resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
engines: {node: '>=10'}
- yargs-parser@20.2.4:
- resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==}
- engines: {node: '>=10'}
+ yargs-parser@21.1.1:
+ resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
+ engines: {node: '>=12'}
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'}
+ yargs@17.7.2:
+ resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
+ engines: {node: '>=12'}
- yn@2.0.0:
- resolution: {integrity: sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ==}
- engines: {node: '>=4'}
+ yn@3.1.1:
+ resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
+ engines: {node: '>=6'}
yocto-queue@0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
@@ -880,18 +874,41 @@ packages:
snapshots:
- '@babel/runtime@7.25.0':
- dependencies:
- regenerator-runtime: 0.14.1
+ '@babel/runtime@7.28.4': {}
+
+ '@coral-xyz/anchor-errors@0.30.1': {}
'@coral-xyz/anchor-errors@0.31.1': {}
- '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@coral-xyz/anchor@0.30.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@coral-xyz/anchor-errors': 0.30.1
+ '@coral-xyz/borsh': 0.30.1(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))
+ '@noble/hashes': 1.8.0
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ bn.js: 5.2.2
+ bs58: 4.0.1
+ buffer-layout: 1.2.2
+ camelcase: 6.3.0
+ cross-fetch: 3.2.0
+ crypto-hash: 1.3.0
+ eventemitter3: 4.0.7
+ pako: 2.1.0
+ snake-case: 3.0.4
+ superstruct: 0.15.5
+ toml: 3.0.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
+ '@coral-xyz/anchor@0.32.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)':
dependencies:
'@coral-xyz/anchor-errors': 0.31.1
- '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))
'@noble/hashes': 1.8.0
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
bn.js: 5.2.2
bs58: 4.0.1
buffer-layout: 1.2.2
@@ -904,29 +921,61 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@coral-xyz/borsh@0.30.1(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))':
+ dependencies:
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ bn.js: 5.2.2
+ buffer-layout: 1.2.2
+
+ '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))':
dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
bn.js: 5.2.2
buffer-layout: 1.2.2
- '@noble/curves@1.5.0':
+ '@cspotcode/source-map-support@0.8.1':
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.9
+
+ '@isaacs/cliui@8.0.2':
+ dependencies:
+ string-width: 5.1.2
+ string-width-cjs: string-width@4.2.3
+ strip-ansi: 7.1.2
+ strip-ansi-cjs: strip-ansi@6.0.1
+ wrap-ansi: 8.1.0
+ wrap-ansi-cjs: wrap-ansi@7.0.0
+
+ '@jridgewell/resolve-uri@3.1.2': {}
+
+ '@jridgewell/sourcemap-codec@1.5.5': {}
+
+ '@jridgewell/trace-mapping@0.3.9':
dependencies:
- '@noble/hashes': 1.4.0
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.5
- '@noble/hashes@1.4.0': {}
+ '@noble/curves@1.9.7':
+ dependencies:
+ '@noble/hashes': 1.8.0
'@noble/hashes@1.8.0': {}
- '@solana-developers/helpers@2.5.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@5.0.10)':
+ '@pkgjs/parseargs@0.11.0':
+ optional: true
+
+ '@solana-developers/helpers@2.8.1(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)':
dependencies:
- '@solana/spl-token': 0.4.8(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@5.0.10)
- '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@coral-xyz/anchor': 0.30.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/spl-token': 0.4.14(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ bn.js: 5.2.2
bs58: 6.0.0
- dotenv: 16.4.5
+ dotenv: 16.6.1
transitivePeerDependencies:
- bufferutil
- encoding
@@ -934,163 +983,116 @@ snapshots:
- typescript
- utf-8-validate
- '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/buffer-layout-utils@0.2.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
bigint-buffer: 1.1.5
- bignumber.js: 9.1.2
+ bignumber.js: 9.3.1
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@solana/buffer-layout@4.0.1':
dependencies:
buffer: 6.0.3
- '@solana/codecs-core@2.0.0-preview.2':
- dependencies:
- '@solana/errors': 2.0.0-preview.2
-
- '@solana/codecs-core@2.0.0-preview.4(typescript@4.9.5)':
+ '@solana/codecs-core@2.0.0-rc.1(typescript@5.9.3)':
dependencies:
- '@solana/errors': 2.0.0-preview.4(typescript@4.9.5)
- typescript: 4.9.5
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
+ typescript: 5.9.3
- '@solana/codecs-data-structures@2.0.0-preview.2':
+ '@solana/codecs-core@2.3.0(typescript@5.9.3)':
dependencies:
- '@solana/codecs-core': 2.0.0-preview.2
- '@solana/codecs-numbers': 2.0.0-preview.2
- '@solana/errors': 2.0.0-preview.2
+ '@solana/errors': 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
- '@solana/codecs-data-structures@2.0.0-preview.4(typescript@4.9.5)':
+ '@solana/codecs-data-structures@2.0.0-rc.1(typescript@5.9.3)':
dependencies:
- '@solana/codecs-core': 2.0.0-preview.4(typescript@4.9.5)
- '@solana/codecs-numbers': 2.0.0-preview.4(typescript@4.9.5)
- '@solana/errors': 2.0.0-preview.4(typescript@4.9.5)
- typescript: 4.9.5
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
+ typescript: 5.9.3
- '@solana/codecs-numbers@2.0.0-preview.2':
+ '@solana/codecs-numbers@2.0.0-rc.1(typescript@5.9.3)':
dependencies:
- '@solana/codecs-core': 2.0.0-preview.2
- '@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
+ typescript: 5.9.3
- '@solana/codecs-numbers@2.0.0-preview.4(typescript@4.9.5)':
+ '@solana/codecs-numbers@2.3.0(typescript@5.9.3)':
dependencies:
- '@solana/codecs-core': 2.0.0-preview.4(typescript@4.9.5)
- '@solana/errors': 2.0.0-preview.4(typescript@4.9.5)
- typescript: 4.9.5
+ '@solana/codecs-core': 2.3.0(typescript@5.9.3)
+ '@solana/errors': 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
- '@solana/codecs-strings@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)':
+ '@solana/codecs-strings@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
dependencies:
- '@solana/codecs-core': 2.0.0-preview.2
- '@solana/codecs-numbers': 2.0.0-preview.2
- '@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
fastestsmallesttextencoderdecoder: 1.0.22
+ typescript: 5.9.3
- '@solana/codecs-strings@2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)':
+ '@solana/codecs@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
dependencies:
- '@solana/codecs-core': 2.0.0-preview.4(typescript@4.9.5)
- '@solana/codecs-numbers': 2.0.0-preview.4(typescript@4.9.5)
- '@solana/errors': 2.0.0-preview.4(typescript@4.9.5)
- fastestsmallesttextencoderdecoder: 1.0.22
- typescript: 4.9.5
-
- '@solana/codecs@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)':
- dependencies:
- '@solana/codecs-core': 2.0.0-preview.2
- '@solana/codecs-data-structures': 2.0.0-preview.2
- '@solana/codecs-numbers': 2.0.0-preview.2
- '@solana/codecs-strings': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)
- '@solana/options': 2.0.0-preview.2
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/options': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ typescript: 5.9.3
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- '@solana/codecs@2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)':
+ '@solana/errors@2.0.0-rc.1(typescript@5.9.3)':
dependencies:
- '@solana/codecs-core': 2.0.0-preview.4(typescript@4.9.5)
- '@solana/codecs-data-structures': 2.0.0-preview.4(typescript@4.9.5)
- '@solana/codecs-numbers': 2.0.0-preview.4(typescript@4.9.5)
- '@solana/codecs-strings': 2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)
- '@solana/options': 2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)
- typescript: 4.9.5
- transitivePeerDependencies:
- - fastestsmallesttextencoderdecoder
-
- '@solana/errors@2.0.0-preview.2':
- dependencies:
- chalk: 5.3.0
+ chalk: 5.6.2
commander: 12.1.0
+ typescript: 5.9.3
- '@solana/errors@2.0.0-preview.4(typescript@4.9.5)':
+ '@solana/errors@2.3.0(typescript@5.9.3)':
dependencies:
- chalk: 5.3.0
- commander: 12.1.0
- typescript: 4.9.5
-
- '@solana/options@2.0.0-preview.2':
- dependencies:
- '@solana/codecs-core': 2.0.0-preview.2
- '@solana/codecs-numbers': 2.0.0-preview.2
-
- '@solana/options@2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)':
- dependencies:
- '@solana/codecs-core': 2.0.0-preview.4(typescript@4.9.5)
- '@solana/codecs-data-structures': 2.0.0-preview.4(typescript@4.9.5)
- '@solana/codecs-numbers': 2.0.0-preview.4(typescript@4.9.5)
- '@solana/codecs-strings': 2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)
- '@solana/errors': 2.0.0-preview.4(typescript@4.9.5)
- typescript: 4.9.5
- transitivePeerDependencies:
- - fastestsmallesttextencoderdecoder
+ chalk: 5.6.2
+ commander: 14.0.2
+ typescript: 5.9.3
- '@solana/spl-token-group@0.0.4(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)':
+ '@solana/options@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
dependencies:
- '@solana/codecs': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)
- '@solana/spl-type-length-value': 0.1.0
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
+ typescript: 5.9.3
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- '@solana/spl-token-group@0.0.5(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)':
+ '@solana/spl-token-group@0.0.7(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
dependencies:
- '@solana/codecs': 2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)
- '@solana/spl-type-length-value': 0.1.0
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- typescript
- '@solana/spl-token-metadata@0.1.4(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)':
+ '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
dependencies:
- '@solana/codecs': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)
- '@solana/spl-type-length-value': 0.1.0
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
+ - typescript
- '@solana/spl-token@0.4.6(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
- dependencies:
- '@solana/buffer-layout': 4.0.1
- '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token-group': 0.0.4(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)
- '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- buffer: 6.0.3
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - fastestsmallesttextencoderdecoder
- - utf-8-validate
-
- '@solana/spl-token@0.4.8(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@5.0.10)':
+ '@solana/spl-token@0.4.14(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token-group': 0.0.5(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)
- '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/spl-token-group': 0.0.7(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
buffer: 6.0.3
transitivePeerDependencies:
- bufferutil
@@ -1099,110 +1101,113 @@ snapshots:
- typescript
- utf-8-validate
- '@solana/spl-type-length-value@0.1.0':
- dependencies:
- buffer: 6.0.3
-
- '@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)':
dependencies:
- '@babel/runtime': 7.25.0
- '@noble/curves': 1.5.0
- '@noble/hashes': 1.4.0
+ '@babel/runtime': 7.28.4
+ '@noble/curves': 1.9.7
+ '@noble/hashes': 1.8.0
'@solana/buffer-layout': 4.0.1
- agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
- bn.js: 5.2.1
+ '@solana/codecs-numbers': 2.3.0(typescript@5.9.3)
+ agentkeepalive: 4.6.0
+ 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.1.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ jayson: 4.3.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)
node-fetch: 2.7.0
- rpc-websockets: 9.0.2
+ rpc-websockets: 9.3.2
superstruct: 2.0.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- '@swc/helpers@0.5.11':
+ '@swc/helpers@0.5.18':
dependencies:
- tslib: 2.6.3
+ tslib: 2.8.1
- '@types/bn.js@5.1.5':
+ '@tsconfig/node10@1.0.12': {}
+
+ '@tsconfig/node12@1.0.11': {}
+
+ '@tsconfig/node14@1.0.3': {}
+
+ '@tsconfig/node16@1.0.4': {}
+
+ '@types/bn.js@5.2.0':
dependencies:
- '@types/node': 20.14.2
+ '@types/node': 25.0.3
- '@types/chai@4.3.16': {}
+ '@types/chai@5.2.3':
+ dependencies:
+ '@types/deep-eql': 4.0.2
+ assertion-error: 2.0.1
'@types/connect@3.4.38':
dependencies:
- '@types/node': 20.14.2
+ '@types/node': 12.20.55
- '@types/json5@0.0.29':
- optional: true
+ '@types/deep-eql@4.0.2': {}
- '@types/mocha@9.1.1': {}
+ '@types/mocha@10.0.10': {}
'@types/node@12.20.55': {}
- '@types/node@20.14.2':
+ '@types/node@25.0.3':
dependencies:
- undici-types: 5.26.5
+ undici-types: 7.16.0
'@types/uuid@8.3.4': {}
'@types/ws@7.4.7':
dependencies:
- '@types/node': 20.14.2
+ '@types/node': 12.20.55
- '@types/ws@8.5.10':
+ '@types/ws@8.18.1':
dependencies:
- '@types/node': 20.14.2
-
- '@ungap/promise-all-settled@1.1.2': {}
+ '@types/node': 25.0.3
- JSONStream@1.3.5:
+ acorn-walk@8.3.4:
dependencies:
- jsonparse: 1.3.1
- through: 2.3.8
+ acorn: 8.15.0
- agentkeepalive@4.5.0:
+ acorn@8.15.0: {}
+
+ agentkeepalive@4.6.0:
dependencies:
humanize-ms: 1.2.1
- anchor-bankrun@0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
+ anchor-bankrun@0.5.0(@coral-xyz/anchor@0.32.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(solana-bankrun@0.4.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)):
dependencies:
- '@coral-xyz/anchor': 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- solana-bankrun: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
-
- ansi-colors@4.1.1: {}
+ '@coral-xyz/anchor': 0.32.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ solana-bankrun: 0.4.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
ansi-regex@5.0.1: {}
+ ansi-regex@6.2.2: {}
+
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
+ ansi-styles@6.2.3: {}
- argparse@2.0.1: {}
+ arg@4.1.3: {}
- arrify@1.0.1: {}
+ argparse@2.0.1: {}
- assertion-error@1.1.0: {}
+ assertion-error@2.0.1: {}
balanced-match@1.0.2: {}
- base-x@3.0.9:
+ base-x@3.0.11:
dependencies:
safe-buffer: 5.2.1
- base-x@5.0.0: {}
+ base-x@5.0.1: {}
base64-js@1.5.1: {}
@@ -1210,44 +1215,33 @@ snapshots:
dependencies:
bindings: 1.5.0
- bignumber.js@9.1.2: {}
-
- binary-extensions@2.3.0: {}
+ bignumber.js@9.3.1: {}
bindings@1.5.0:
dependencies:
file-uri-to-path: 1.0.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@2.0.2:
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.9
+ base-x: 3.0.11
bs58@6.0.0:
dependencies:
- base-x: 5.0.0
-
- buffer-from@1.1.2: {}
+ base-x: 5.0.1
buffer-layout@1.2.2: {}
@@ -1256,47 +1250,27 @@ snapshots:
base64-js: 1.5.1
ieee754: 1.2.1
- bufferutil@4.0.8:
+ bufferutil@4.1.0:
dependencies:
- node-gyp-build: 4.8.1
+ node-gyp-build: 4.8.4
optional: true
camelcase@6.3.0: {}
- chai@4.4.1:
- 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.0.8
+ chai@6.2.2: {}
chalk@4.1.2:
dependencies:
ansi-styles: 4.3.0
supports-color: 7.2.0
- chalk@5.3.0: {}
+ chalk@5.6.2: {}
- check-error@1.0.3:
+ chokidar@4.0.3:
dependencies:
- get-func-name: 2.0.2
+ readdirp: 4.1.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:
+ cliui@8.0.1:
dependencies:
string-width: 4.2.3
strip-ansi: 6.0.1
@@ -1310,9 +1284,11 @@ snapshots:
commander@12.1.0: {}
+ commander@14.0.2: {}
+
commander@2.20.3: {}
- concat-map@0.0.1: {}
+ create-require@1.1.1: {}
cross-fetch@3.2.0:
dependencies:
@@ -1320,35 +1296,48 @@ snapshots:
transitivePeerDependencies:
- encoding
- debug@4.3.3(supports-color@8.1.1):
+ cross-spawn@7.0.6:
dependencies:
- ms: 2.1.2
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
+ crypto-hash@1.3.0: {}
+
+ debug@4.4.3(supports-color@8.1.1):
+ dependencies:
+ ms: 2.1.3
optionalDependencies:
supports-color: 8.1.1
decamelize@4.0.0: {}
- deep-eql@4.1.4:
- dependencies:
- type-detect: 4.0.8
-
delay@5.0.0: {}
- diff@3.5.0: {}
+ diff@4.0.2: {}
+
+ diff@7.0.0: {}
+
+ dot-case@3.0.4:
+ dependencies:
+ no-case: 3.0.4
+ tslib: 2.8.1
- diff@5.0.0: {}
+ dotenv@16.6.1: {}
- dotenv@16.4.5: {}
+ eastasianwidth@0.2.0: {}
emoji-regex@8.0.0: {}
+ emoji-regex@9.2.2: {}
+
es6-promise@4.2.8: {}
es6-promisify@5.0.0:
dependencies:
es6-promise: 4.2.8
- escalade@3.1.2: {}
+ escalade@3.2.0: {}
escape-string-regexp@4.0.0: {}
@@ -1364,10 +1353,6 @@ snapshots:
file-uri-to-path@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
@@ -1375,29 +1360,21 @@ snapshots:
flat@5.0.2: {}
- fs.realpath@1.0.0: {}
-
- fsevents@2.3.3:
- optional: true
+ foreground-child@3.3.1:
+ dependencies:
+ cross-spawn: 7.0.6
+ signal-exit: 4.1.0
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:
+ glob@10.5.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: {}
+ foreground-child: 3.3.1
+ jackspeak: 3.4.3
+ minimatch: 9.0.5
+ minipass: 7.1.2
+ package-json-from-dist: 1.0.1
+ path-scurry: 1.11.1
has-flag@4.0.0: {}
@@ -1409,26 +1386,9 @@ snapshots:
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-path-inside@3.0.3: {}
is-plain-obj@2.1.0: {}
@@ -1436,41 +1396,40 @@ snapshots:
isexe@2.0.0: {}
- isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
+ isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.1.0)(utf-8-validate@5.0.10)):
dependencies:
- ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.1.0)(utf-8-validate@5.0.10)
- jayson@4.1.1(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ jackspeak@3.4.3:
+ dependencies:
+ '@isaacs/cliui': 8.0.2
+ optionalDependencies:
+ '@pkgjs/parseargs': 0.11.0
+
+ jayson@4.3.0(bufferutil@4.1.0)(utf-8-validate@5.0.10):
dependencies:
'@types/connect': 3.4.38
'@types/node': 12.20.55
'@types/ws': 7.4.7
- JSONStream: 1.3.5
commander: 2.20.3
delay: 5.0.0
es6-promisify: 5.0.0
eyes: 0.1.8
- isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.1.0)(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.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.1.0)(utf-8-validate@5.0.10)
transitivePeerDependencies:
- bufferutil
- utf-8-validate
- js-yaml@4.1.0:
+ js-yaml@4.1.1:
dependencies:
argparse: 2.0.1
json-stringify-safe@5.0.1: {}
- json5@1.0.2:
- dependencies:
- minimist: 1.2.8
- optional: true
-
- jsonparse@1.3.1: {}
-
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1480,72 +1439,58 @@ snapshots:
chalk: 4.1.2
is-unicode-supported: 0.1.0
- loupe@2.3.7:
+ lower-case@2.0.2:
dependencies:
- get-func-name: 2.0.2
+ tslib: 2.8.1
- make-error@1.3.6: {}
+ lru-cache@10.4.3: {}
- minimatch@3.1.2:
- dependencies:
- brace-expansion: 1.1.11
+ make-error@1.3.6: {}
- minimatch@4.2.1:
+ minimatch@9.0.5:
dependencies:
- brace-expansion: 1.1.11
-
- minimist@1.2.8: {}
+ brace-expansion: 2.0.2
- mkdirp@0.5.6:
- dependencies:
- minimist: 1.2.8
+ minipass@7.1.2: {}
- mocha@9.2.2:
+ mocha@11.7.5:
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
+ chokidar: 4.0.3
+ debug: 4.4.3(supports-color@8.1.1)
+ diff: 7.0.0
escape-string-regexp: 4.0.0
find-up: 5.0.0
- glob: 7.2.0
- growl: 1.10.5
+ glob: 10.5.0
he: 1.2.0
- js-yaml: 4.1.0
+ is-path-inside: 3.0.3
+ js-yaml: 4.1.1
log-symbols: 4.1.0
- minimatch: 4.2.1
+ minimatch: 9.0.5
ms: 2.1.3
- nanoid: 3.3.1
- serialize-javascript: 6.0.0
+ picocolors: 1.1.1
+ serialize-javascript: 6.0.2
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
+ workerpool: 9.3.4
+ yargs: 17.7.2
+ yargs-parser: 21.1.1
yargs-unparser: 2.0.0
- ms@2.1.2: {}
-
ms@2.1.3: {}
- nanoid@3.3.1: {}
+ no-case@3.0.4:
+ dependencies:
+ lower-case: 2.0.2
+ tslib: 2.8.1
node-fetch@2.7.0:
dependencies:
whatwg-url: 5.0.0
- node-gyp-build@4.8.1:
+ 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
@@ -1554,85 +1499,99 @@ snapshots:
dependencies:
p-limit: 3.1.0
+ package-json-from-dist@1.0.1: {}
+
pako@2.1.0: {}
path-exists@4.0.0: {}
- path-is-absolute@1.0.1: {}
+ path-key@3.1.1: {}
- pathval@1.1.1: {}
+ path-scurry@1.11.1:
+ dependencies:
+ lru-cache: 10.4.3
+ minipass: 7.1.2
- picomatch@2.3.1: {}
+ picocolors@1.1.1: {}
- prettier@2.8.8: {}
+ prettier@3.7.4: {}
randombytes@2.1.0:
dependencies:
safe-buffer: 5.2.1
- readdirp@3.6.0:
- dependencies:
- picomatch: 2.3.1
-
- regenerator-runtime@0.14.1: {}
+ readdirp@4.1.2: {}
require-directory@2.1.1: {}
- rpc-websockets@9.0.2:
+ rpc-websockets@9.3.2:
dependencies:
- '@swc/helpers': 0.5.11
+ '@swc/helpers': 0.5.18
'@types/uuid': 8.3.4
- '@types/ws': 8.5.10
+ '@types/ws': 8.18.1
buffer: 6.0.3
eventemitter3: 5.0.1
uuid: 8.3.2
- ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)
optionalDependencies:
- bufferutil: 4.0.8
+ bufferutil: 4.1.0
utf-8-validate: 5.0.10
safe-buffer@5.2.1: {}
- serialize-javascript@6.0.0:
+ serialize-javascript@6.0.2:
dependencies:
randombytes: 2.1.0
- solana-bankrun-darwin-arm64@0.3.0:
+ shebang-command@2.0.0:
+ dependencies:
+ shebang-regex: 3.0.0
+
+ shebang-regex@3.0.0: {}
+
+ signal-exit@4.1.0: {}
+
+ snake-case@3.0.4:
+ dependencies:
+ dot-case: 3.0.4
+ tslib: 2.8.1
+
+ solana-bankrun-darwin-arm64@0.4.0:
optional: true
- solana-bankrun-darwin-universal@0.3.0:
+ solana-bankrun-darwin-universal@0.4.0:
optional: true
- solana-bankrun-darwin-x64@0.3.0:
+ solana-bankrun-darwin-x64@0.4.0:
optional: true
- solana-bankrun-linux-x64-gnu@0.3.0:
+ solana-bankrun-linux-x64-gnu@0.4.0:
optional: true
- solana-bankrun-linux-x64-musl@0.3.0:
+ solana-bankrun-linux-x64-musl@0.4.0:
optional: true
- solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ solana-bankrun@0.4.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10):
dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
bs58: 4.0.1
optionalDependencies:
- solana-bankrun-darwin-arm64: 0.3.0
- solana-bankrun-darwin-universal: 0.3.0
- solana-bankrun-darwin-x64: 0.3.0
- solana-bankrun-linux-x64-gnu: 0.3.0
- solana-bankrun-linux-x64-musl: 0.3.0
+ solana-bankrun-darwin-arm64: 0.4.0
+ solana-bankrun-darwin-universal: 0.4.0
+ solana-bankrun-darwin-x64: 0.4.0
+ solana-bankrun-linux-x64-gnu: 0.4.0
+ solana-bankrun-linux-x64-musl: 0.4.0
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- source-map-support@0.5.21:
- dependencies:
- buffer-from: 1.1.2
- source-map: 0.6.1
+ stream-chain@2.2.5: {}
- source-map@0.6.1: {}
+ stream-json@1.9.1:
+ dependencies:
+ stream-chain: 2.2.5
string-width@4.2.3:
dependencies:
@@ -1640,12 +1599,19 @@ snapshots:
is-fullwidth-code-point: 3.0.0
strip-ansi: 6.0.1
+ string-width@5.1.2:
+ dependencies:
+ eastasianwidth: 0.2.0
+ emoji-regex: 9.2.2
+ strip-ansi: 7.1.2
+
strip-ansi@6.0.1:
dependencies:
ansi-regex: 5.0.1
- strip-bom@3.0.0:
- optional: true
+ strip-ansi@7.1.2:
+ dependencies:
+ ansi-regex: 6.2.2
strip-json-comments@3.1.1: {}
@@ -1663,57 +1629,48 @@ snapshots:
text-encoding-utf-8@1.0.2: {}
- through@2.3.8: {}
-
- to-regex-range@5.0.1:
- dependencies:
- is-number: 7.0.0
-
toml@3.0.0: {}
tr46@0.0.3: {}
- ts-mocha@10.0.0(mocha@9.2.2):
+ ts-mocha@11.1.0(mocha@11.7.5)(ts-node@10.9.2(@types/node@25.0.3)(typescript@5.9.3)):
dependencies:
- mocha: 9.2.2
- ts-node: 7.0.1
- optionalDependencies:
- tsconfig-paths: 3.15.0
+ mocha: 11.7.5
+ ts-node: 10.9.2(@types/node@25.0.3)(typescript@5.9.3)
- ts-node@7.0.1:
+ ts-node@10.9.2(@types/node@25.0.3)(typescript@5.9.3):
dependencies:
- arrify: 1.0.1
- buffer-from: 1.1.2
- diff: 3.5.0
+ '@cspotcode/source-map-support': 0.8.1
+ '@tsconfig/node10': 1.0.12
+ '@tsconfig/node12': 1.0.11
+ '@tsconfig/node14': 1.0.3
+ '@tsconfig/node16': 1.0.4
+ '@types/node': 25.0.3
+ acorn: 8.15.0
+ acorn-walk: 8.3.4
+ arg: 4.1.3
+ create-require: 1.1.1
+ diff: 4.0.2
make-error: 1.3.6
- minimist: 1.2.8
- mkdirp: 0.5.6
- source-map-support: 0.5.21
- yn: 2.0.0
+ typescript: 5.9.3
+ v8-compile-cache-lib: 3.0.1
+ yn: 3.1.1
- 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: {}
- tslib@2.6.3: {}
+ typescript@5.9.3: {}
- type-detect@4.0.8: {}
-
- typescript@4.9.5: {}
-
- undici-types@5.26.5: {}
+ undici-types@7.16.0: {}
utf-8-validate@5.0.10:
dependencies:
- node-gyp-build: 4.8.1
+ node-gyp-build: 4.8.4
optional: true
uuid@8.3.2: {}
+ v8-compile-cache-lib@3.0.1: {}
+
webidl-conversions@3.0.1: {}
whatwg-url@5.0.0:
@@ -1725,7 +1682,7 @@ snapshots:
dependencies:
isexe: 2.0.0
- workerpool@6.2.0: {}
+ workerpool@9.3.4: {}
wrap-ansi@7.0.0:
dependencies:
@@ -1733,21 +1690,25 @@ snapshots:
string-width: 4.2.3
strip-ansi: 6.0.1
- wrappy@1.0.2: {}
+ wrap-ansi@8.1.0:
+ dependencies:
+ ansi-styles: 6.2.3
+ string-width: 5.1.2
+ strip-ansi: 7.1.2
- ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@7.5.10(bufferutil@4.1.0)(utf-8-validate@5.0.10):
optionalDependencies:
- bufferutil: 4.0.8
+ bufferutil: 4.1.0
utf-8-validate: 5.0.10
- ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10):
optionalDependencies:
- bufferutil: 4.0.8
+ bufferutil: 4.1.0
utf-8-validate: 5.0.10
y18n@5.0.8: {}
- yargs-parser@20.2.4: {}
+ yargs-parser@21.1.1: {}
yargs-unparser@2.0.0:
dependencies:
@@ -1756,16 +1717,16 @@ snapshots:
flat: 5.0.2
is-plain-obj: 2.1.0
- yargs@16.2.0:
+ yargs@17.7.2:
dependencies:
- cliui: 7.0.4
- escalade: 3.1.2
+ cliui: 8.0.1
+ 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
+ yargs-parser: 21.1.1
- yn@2.0.0: {}
+ yn@3.1.1: {}
yocto-queue@0.1.0: {}
diff --git a/tokens/escrow/anchor/tests/bankrun.test.ts b/tokens/escrow/anchor/tests/bankrun.test.ts
index b29fb9fec..6265253d8 100644
--- a/tokens/escrow/anchor/tests/bankrun.test.ts
+++ b/tokens/escrow/anchor/tests/bankrun.test.ts
@@ -1,49 +1,45 @@
-import { randomBytes } from "node:crypto";
-import { describe, it } from "node:test";
-import * as anchor from "@coral-xyz/anchor";
-import { BN } from "@coral-xyz/anchor";
+import { randomBytes } from 'node:crypto';
+import anchor from '@coral-xyz/anchor';
+const BN = anchor.BN;
import {
createAssociatedTokenAccountIdempotentInstruction,
createInitializeMint2Instruction,
createMintToInstruction,
getAssociatedTokenAddressSync,
getMinimumBalanceForRentExemptMint,
+ getAccount,
+ unpackAccount,
MINT_SIZE,
TOKEN_2022_PROGRAM_ID,
type TOKEN_PROGRAM_ID,
-} from "@solana/spl-token";
+} from '@solana/spl-token';
import {
LAMPORTS_PER_SOL,
PublicKey,
SystemProgram,
Transaction,
type TransactionInstruction,
-} from "@solana/web3.js";
-import { confirmTransaction, makeKeypairs } from "@solana-developers/helpers";
-import { BankrunProvider } from "anchor-bankrun";
-import { assert } from "chai";
-import { startAnchor } from "solana-bankrun";
-import type { Escrow } from "../target/types/escrow";
+} from '@solana/web3.js';
+import { makeKeypairs } from '@solana-developers/helpers';
+import { BankrunProvider } from 'anchor-bankrun';
+import { assert } from 'chai';
+import { ProgramTestContext, startAnchor } from 'solana-bankrun';
+import type { Escrow } from '../target/types/escrow';
const TOKEN_PROGRAM: typeof TOKEN_2022_PROGRAM_ID | typeof TOKEN_PROGRAM_ID =
TOKEN_2022_PROGRAM_ID;
-import IDL from "../target/idl/escrow.json" with { type: "json" };
+import IDL from '../target/idl/escrow.json' with { type: 'json' };
const PROGRAM_ID = new PublicKey(IDL.address);
const getRandomBigNumber = (size = 8) => {
return new BN(randomBytes(size));
};
-describe("Escrow Bankrun example", async () => {
- const context = await startAnchor(
- "",
- [{ name: "escrow", programId: PROGRAM_ID }],
- [],
- );
- const provider = new BankrunProvider(context);
- const connection = provider.connection;
- // const payer = provider.wallet as anchor.Wallet;
- const program = new anchor.Program(IDL, provider);
+describe('Escrow Bankrun example', () => {
+ let context: ProgramTestContext;
+ let provider: BankrunProvider;
+ let connection: anchor.web3.Connection;
+ let program: anchor.Program;
// We're going to reuse these accounts across multiple tests
const accounts: Record = {
@@ -53,8 +49,17 @@ describe("Escrow Bankrun example", async () => {
const [alice, bob, tokenMintA, tokenMintB] = makeKeypairs(4);
before(
- "Creates Alice and Bob accounts, 2 token mints, and associated token accounts for both tokens for both users",
+ 'Creates Alice and Bob accounts, 2 token mints, and associated token accounts for both tokens for both users',
async () => {
+ context = await startAnchor(
+ '',
+ [{ name: 'escrow', programId: PROGRAM_ID }],
+ [],
+ );
+ provider = new BankrunProvider(context);
+ connection = provider.connection;
+ program = new anchor.Program(IDL, provider);
+
const [
aliceTokenAccountA,
aliceTokenAccountB,
@@ -169,9 +174,9 @@ describe("Escrow Bankrun example", async () => {
// Then determine the account addresses we'll use for the offer and the vault
const offer = PublicKey.findProgramAddressSync(
[
- Buffer.from("offer"),
+ Buffer.from('offer'),
accounts.maker.toBuffer(),
- offerId.toArrayLike(Buffer, "le", 8),
+ offerId.toArrayLike(Buffer, 'le', 8),
],
program.programId,
)[0];
@@ -192,11 +197,14 @@ describe("Escrow Bankrun example", async () => {
.signers([alice])
.rpc();
- await confirmTransaction(connection, transactionSignature);
-
// Check our vault contains the tokens offered
- const vaultBalanceResponse = await connection.getTokenAccountBalance(vault);
- const vaultBalance = new BN(vaultBalanceResponse.value.amount);
+ const vaultAccount = await getAccount(
+ connection,
+ vault,
+ 'processed',
+ TOKEN_PROGRAM,
+ );
+ const vaultBalance = new BN(vaultAccount.amount.toString());
assert(vaultBalance.eq(tokenAOfferedAmount));
// Check our Offer account contains the correct data
@@ -216,28 +224,40 @@ describe("Escrow Bankrun example", async () => {
.signers([bob])
.rpc();
- await confirmTransaction(connection, transactionSignature);
-
// Check the offered tokens are now in Bob's account
// (note: there is no before balance as Bob didn't have any offered tokens before the transaction)
- const bobTokenAccountBalanceAfterResponse =
- await connection.getTokenAccountBalance(accounts.takerTokenAccountA);
+ const bobTokenAccountInfo = await connection.getAccountInfo(
+ accounts.takerTokenAccountA,
+ );
+ const bobTokenAccount = unpackAccount(
+ accounts.takerTokenAccountA,
+ bobTokenAccountInfo,
+ TOKEN_PROGRAM,
+ );
+
const bobTokenAccountBalanceAfter = new BN(
- bobTokenAccountBalanceAfterResponse.value.amount,
+ bobTokenAccount.amount.toString(),
);
assert(bobTokenAccountBalanceAfter.eq(tokenAOfferedAmount));
// Check the wanted tokens are now in Alice's account
// (note: there is no before balance as Alice didn't have any wanted tokens before the transaction)
- const aliceTokenAccountBalanceAfterResponse =
- await connection.getTokenAccountBalance(accounts.makerTokenAccountB);
+ const aliceTokenAccountInfo = await connection.getAccountInfo(
+ accounts.makerTokenAccountB,
+ );
+ const aliceTokenAccount = unpackAccount(
+ accounts.makerTokenAccountB,
+ aliceTokenAccountInfo,
+ TOKEN_PROGRAM,
+ );
+
const aliceTokenAccountBalanceAfter = new BN(
- aliceTokenAccountBalanceAfterResponse.value.amount,
+ aliceTokenAccount.amount.toString(),
);
assert(aliceTokenAccountBalanceAfter.eq(tokenBWantedAmount));
};
- it("Puts the tokens Alice offers into the vault when Alice makes an offer", async () => {
+ it('Puts the tokens Alice offers into the vault when Alice makes an offer', async () => {
await make();
});
diff --git a/tokens/escrow/anchor/tests/escrow.test.ts b/tokens/escrow/anchor/tests/escrow.test.ts
index b1d55165b..aa252e400 100644
--- a/tokens/escrow/anchor/tests/escrow.test.ts
+++ b/tokens/escrow/anchor/tests/escrow.test.ts
@@ -1,14 +1,23 @@
import { randomBytes } from 'node:crypto';
-import * as anchor from '@coral-xyz/anchor';
-import { BN, type Program } from '@coral-xyz/anchor';
-import { getAssociatedTokenAddressSync, TOKEN_2022_PROGRAM_ID, type TOKEN_PROGRAM_ID } from '@solana/spl-token';
+import anchor from '@coral-xyz/anchor';
+const BN = anchor.BN;
+import {
+ getAssociatedTokenAddressSync,
+ TOKEN_2022_PROGRAM_ID,
+ type TOKEN_PROGRAM_ID,
+} from '@solana/spl-token';
import { LAMPORTS_PER_SOL, PublicKey } from '@solana/web3.js';
-import { confirmTransaction, createAccountsMintsAndTokenAccounts, makeKeypairs } from '@solana-developers/helpers';
+import {
+ confirmTransaction,
+ createAccountsMintsAndTokenAccounts,
+ makeKeypairs,
+} from '@solana-developers/helpers';
import { assert } from 'chai';
import type { Escrow } from '../target/types/escrow';
// Work on both Token Program and new Token Extensions Program
-const TOKEN_PROGRAM: typeof TOKEN_2022_PROGRAM_ID | typeof TOKEN_PROGRAM_ID = TOKEN_2022_PROGRAM_ID;
+const TOKEN_PROGRAM: typeof TOKEN_2022_PROGRAM_ID | typeof TOKEN_PROGRAM_ID =
+ TOKEN_2022_PROGRAM_ID;
const SECONDS = 1000;
@@ -32,7 +41,7 @@ describe('escrow', async () => {
const connection = provider.connection;
- const program = anchor.workspace.Escrow as Program;
+ const program = anchor.workspace.Escrow as anchor.Program;
// We're going to reuse these accounts across multiple tests
const accounts: Record = {
@@ -49,63 +58,67 @@ describe('escrow', async () => {
const tokenAOfferedAmount = new BN(1_000_000);
const tokenBWantedAmount = new BN(1_000_000);
- before('Creates Alice and Bob accounts, 2 token mints, and associated token accounts for both tokens for both users', async () => {
- const usersMintsAndTokenAccounts = await createAccountsMintsAndTokenAccounts(
- [
- // Alice's token balances
- [
- // 1_000_000_000 of token A
- 1_000_000_000,
- // 0 of token B
- 0,
- ],
- // Bob's token balances
- [
- // 0 of token A
- 0,
- // 1_000_000_000 of token B
- 1_000_000_000,
- ],
- ],
- 1 * LAMPORTS_PER_SOL,
- connection,
- payer,
- );
-
- // Alice will be the maker (creator) of the offer
- // Bob will be the taker (acceptor) of the offer
- const users = usersMintsAndTokenAccounts.users;
- alice = users[0];
- bob = users[1];
-
- // tokenMintA represents the token Alice is offering
- // tokenMintB represents the token Alice wants in return
- const mints = usersMintsAndTokenAccounts.mints;
- tokenMintA = mints[0];
- tokenMintB = mints[1];
-
- const tokenAccounts = usersMintsAndTokenAccounts.tokenAccounts;
-
- // aliceTokenAccountA is Alice's account for tokenA (the token she's offering)
- // aliceTokenAccountB is Alice's account for tokenB (the token she wants)
- const aliceTokenAccountA = tokenAccounts[0][0];
- const aliceTokenAccountB = tokenAccounts[0][1];
-
- // bobTokenAccountA is Bob's account for tokenA (the token Alice is offering)
- // bobTokenAccountB is Bob's account for tokenB (the token Alice wants)
- const bobTokenAccountA = tokenAccounts[1][0];
- const bobTokenAccountB = tokenAccounts[1][1];
-
- // Save the accounts for later use
- accounts.maker = alice.publicKey;
- accounts.taker = bob.publicKey;
- accounts.tokenMintA = tokenMintA.publicKey;
- accounts.makerTokenAccountA = aliceTokenAccountA;
- accounts.takerTokenAccountA = bobTokenAccountA;
- accounts.tokenMintB = tokenMintB.publicKey;
- accounts.makerTokenAccountB = aliceTokenAccountB;
- accounts.takerTokenAccountB = bobTokenAccountB;
- });
+ before(
+ 'Creates Alice and Bob accounts, 2 token mints, and associated token accounts for both tokens for both users',
+ async () => {
+ const usersMintsAndTokenAccounts =
+ await createAccountsMintsAndTokenAccounts(
+ [
+ // Alice's token balances
+ [
+ // 1_000_000_000 of token A
+ 1_000_000_000,
+ // 0 of token B
+ 0,
+ ],
+ // Bob's token balances
+ [
+ // 0 of token A
+ 0,
+ // 1_000_000_000 of token B
+ 1_000_000_000,
+ ],
+ ],
+ 1 * LAMPORTS_PER_SOL,
+ connection,
+ payer,
+ );
+
+ // Alice will be the maker (creator) of the offer
+ // Bob will be the taker (acceptor) of the offer
+ const users = usersMintsAndTokenAccounts.users;
+ alice = users[0];
+ bob = users[1];
+
+ // tokenMintA represents the token Alice is offering
+ // tokenMintB represents the token Alice wants in return
+ const mints = usersMintsAndTokenAccounts.mints;
+ tokenMintA = mints[0];
+ tokenMintB = mints[1];
+
+ const tokenAccounts = usersMintsAndTokenAccounts.tokenAccounts;
+
+ // aliceTokenAccountA is Alice's account for tokenA (the token she's offering)
+ // aliceTokenAccountB is Alice's account for tokenB (the token she wants)
+ const aliceTokenAccountA = tokenAccounts[0][0];
+ const aliceTokenAccountB = tokenAccounts[0][1];
+
+ // bobTokenAccountA is Bob's account for tokenA (the token Alice is offering)
+ // bobTokenAccountB is Bob's account for tokenB (the token Alice wants)
+ const bobTokenAccountA = tokenAccounts[1][0];
+ const bobTokenAccountB = tokenAccounts[1][1];
+
+ // Save the accounts for later use
+ accounts.maker = alice.publicKey;
+ accounts.taker = bob.publicKey;
+ accounts.tokenMintA = tokenMintA.publicKey;
+ accounts.makerTokenAccountA = aliceTokenAccountA;
+ accounts.takerTokenAccountA = bobTokenAccountA;
+ accounts.tokenMintB = tokenMintB.publicKey;
+ accounts.makerTokenAccountB = aliceTokenAccountB;
+ accounts.takerTokenAccountB = bobTokenAccountB;
+ },
+ );
it('Puts the tokens Alice offers into the vault when Alice makes an offer', async () => {
// Pick a random ID for the offer we'll make
@@ -113,11 +126,20 @@ describe('escrow', async () => {
// Then determine the account addresses we'll use for the offer and the vault
const offer = PublicKey.findProgramAddressSync(
- [Buffer.from('offer'), accounts.maker.toBuffer(), offerId.toArrayLike(Buffer, 'le', 8)],
+ [
+ Buffer.from('offer'),
+ accounts.maker.toBuffer(),
+ offerId.toArrayLike(Buffer, 'le', 8),
+ ],
program.programId,
)[0];
- const vault = getAssociatedTokenAddressSync(accounts.tokenMintA, offer, true, TOKEN_PROGRAM);
+ const vault = getAssociatedTokenAddressSync(
+ accounts.tokenMintA,
+ offer,
+ true,
+ TOKEN_PROGRAM,
+ );
accounts.offer = offer;
accounts.vault = vault;
@@ -155,14 +177,20 @@ describe('escrow', async () => {
// Check the offered tokens are now in Bob's account
// (note: there is no before balance as Bob didn't have any offered tokens before the transaction)
- const bobTokenAccountBalanceAfterResponse = await connection.getTokenAccountBalance(accounts.takerTokenAccountA);
- const bobTokenAccountBalanceAfter = new BN(bobTokenAccountBalanceAfterResponse.value.amount);
+ const bobTokenAccountBalanceAfterResponse =
+ await connection.getTokenAccountBalance(accounts.takerTokenAccountA);
+ const bobTokenAccountBalanceAfter = new BN(
+ bobTokenAccountBalanceAfterResponse.value.amount,
+ );
assert(bobTokenAccountBalanceAfter.eq(tokenAOfferedAmount));
// Check the wanted tokens are now in Alice's account
// (note: there is no before balance as Alice didn't have any wanted tokens before the transaction)
- const aliceTokenAccountBalanceAfterResponse = await connection.getTokenAccountBalance(accounts.makerTokenAccountB);
- const aliceTokenAccountBalanceAfter = new BN(aliceTokenAccountBalanceAfterResponse.value.amount);
+ const aliceTokenAccountBalanceAfterResponse =
+ await connection.getTokenAccountBalance(accounts.makerTokenAccountB);
+ const aliceTokenAccountBalanceAfter = new BN(
+ aliceTokenAccountBalanceAfterResponse.value.amount,
+ );
assert(aliceTokenAccountBalanceAfter.eq(tokenBWantedAmount));
}).slow(ANCHOR_SLOW_TEST_THRESHOLD);
});
diff --git a/tokens/escrow/anchor/tsconfig.json b/tokens/escrow/anchor/tsconfig.json
index cd5d2e3d0..66eb57023 100644
--- a/tokens/escrow/anchor/tsconfig.json
+++ b/tokens/escrow/anchor/tsconfig.json
@@ -2,9 +2,12 @@
"compilerOptions": {
"types": ["mocha", "chai"],
"typeRoots": ["./node_modules/@types"],
- "lib": ["es2015"],
- "module": "commonjs",
- "target": "es6",
- "esModuleInterop": true
+ "lib": ["esnext"],
+ "module": "esnext",
+ "target": "esnext",
+ "moduleResolution": "node",
+ "esModuleInterop": true,
+ "resolveJsonModule": true,
+ "skipLibCheck": true
}
}
From 4e5f04b14f24e9e398f1b89dad4de64e12d55a9e Mon Sep 17 00:00:00 2001
From: Perelyn <64838956+Perelyn-sama@users.noreply.github.com>
Date: Sat, 24 Jan 2026 08:21:12 +0100
Subject: [PATCH 29/49] Feat: use pinocchio v10 in basic examples (#514)
---
Cargo.lock | 142 ++++++++++----
Cargo.toml | 6 +-
basics/account-data/pinocchio/package.json | 5 +-
basics/account-data/pinocchio/pnpm-lock.yaml | 182 +++++++++++-------
.../account-data/pinocchio/program/src/lib.rs | 23 ++-
.../pinocchio/tests/index.test.ts | 61 ++++--
.../pinocchio/program/src/lib.rs | 18 +-
.../pinocchio/program/Cargo.toml | 1 +
.../pinocchio/program/src/lib.rs | 40 ++--
.../pinocchio/program/tests/tests.rs | 9 +
basics/counter/pinocchio/program/src/lib.rs | 13 +-
.../pinocchio/program/src/lib.rs | 9 +-
basics/favorites/pinocchio/program/Cargo.toml | 1 +
.../program/src/instructions/create_pda.rs | 33 ++--
.../program/src/instructions/get_pda.rs | 23 +--
.../pinocchio/program/src/processor.rs | 10 +-
.../favorites/pinocchio/program/tests/test.rs | 6 +-
.../hello-solana/pinocchio/program/src/lib.rs | 11 +-
.../pinocchio/tests/index.test.ts | 2 +-
.../pinocchio/program/Cargo.toml | 1 +
.../src/instructions/create_new_account.rs | 31 +--
.../src/instructions/init_rent_vault.rs | 31 +--
.../pinocchio/program/src/processor.rs | 10 +-
.../pinocchio/program/tests/test.rs | 8 +-
.../pinocchio/program/src/lib.rs | 9 +-
.../program/src/instructions/create.rs | 16 +-
.../program/src/instructions/increment.rs | 6 +-
.../pinocchio/program/src/processor.rs | 8 +-
.../program/src/instructions/create.rs | 14 +-
.../program/src/instructions/reallocate.rs | 17 +-
.../pinocchio/program/src/processor.rs | 8 +-
basics/rent/pinocchio/program/src/lib.rs | 17 +-
.../transfer-sol/pinocchio/program/src/lib.rs | 15 +-
33 files changed, 463 insertions(+), 323 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index fe1356c23..252fc5ca5 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -31,7 +31,7 @@ name = "account-data-pinocchio-program"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio",
+ "pinocchio 0.10.1",
"pinocchio-log",
"pinocchio-system",
"solana-keypair",
@@ -879,7 +879,7 @@ name = "checking-accounts-pinocchio-program"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio",
+ "pinocchio 0.10.1",
"pinocchio-log",
"pinocchio-system",
"solana-keypair",
@@ -930,8 +930,9 @@ name = "close-account-pinocchio-program"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio",
+ "pinocchio 0.10.1",
"pinocchio-log",
+ "pinocchio-pubkey",
"pinocchio-system",
"solana-instruction 3.0.0",
"solana-keypair",
@@ -1026,7 +1027,7 @@ name = "counter-solana-pinocchio"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio",
+ "pinocchio 0.10.1",
"pinocchio-log",
"pinocchio-pubkey",
"solana-instruction 3.0.0",
@@ -1059,7 +1060,7 @@ name = "create-account-pinocchio-program"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio",
+ "pinocchio 0.10.1",
"pinocchio-log",
"pinocchio-pubkey",
"pinocchio-system",
@@ -1417,8 +1418,9 @@ name = "favorites-pinocchio"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio",
+ "pinocchio 0.10.1",
"pinocchio-log",
+ "pinocchio-pubkey",
"pinocchio-system",
"solana-instruction 3.0.0",
"solana-keypair",
@@ -1459,6 +1461,15 @@ dependencies = [
"five8_core",
]
+[[package]]
+name = "five8"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23f76610e969fa1784327ded240f1e28a3fd9520c9cec93b636fcf62dd37f772"
+dependencies = [
+ "five8_core",
+]
+
[[package]]
name = "five8_const"
version = "0.1.4"
@@ -1468,6 +1479,15 @@ dependencies = [
"five8_core",
]
+[[package]]
+name = "five8_const"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a0f1728185f277989ca573a402716ae0beaaea3f76a8ff87ef9dd8fb19436c5"
+dependencies = [
+ "five8_core",
+]
+
[[package]]
name = "five8_core"
version = "0.1.2"
@@ -1626,7 +1646,7 @@ dependencies = [
name = "hello-solana-program-pinocchio"
version = "0.1.0"
dependencies = [
- "pinocchio",
+ "pinocchio 0.10.1",
"pinocchio-log",
]
@@ -2175,8 +2195,9 @@ name = "pda-rent-payer-pinocchio-program"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio",
+ "pinocchio 0.10.1",
"pinocchio-log",
+ "pinocchio-pubkey",
"pinocchio-system",
"solana-instruction 3.0.0",
"solana-keypair",
@@ -2223,20 +2244,33 @@ version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b971851087bc3699b001954ad02389d50c41405ece3548cbcafc88b3e20017a"
+[[package]]
+name = "pinocchio"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfad955b2fe8f736e1ea276ebb31820d778ee69c1161146054e9b31be2e73326"
+dependencies = [
+ "solana-account-view",
+ "solana-address 2.0.0",
+ "solana-define-syscall 4.0.1",
+ "solana-instruction-view",
+ "solana-program-error 3.0.0",
+]
+
[[package]]
name = "pinocchio-log"
-version = "0.4.0"
+version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f89f8ffd986174cefe59448295a004aaf70c3605f30de066f42d27b06188f267"
+checksum = "cd11022408f312e6179ece321c1f7dc0d1b2aa7765fddd39b2a7378d65a899e8"
dependencies = [
"pinocchio-log-macro",
]
[[package]]
name = "pinocchio-log-macro"
-version = "0.4.1"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6edac6ac2c9c456b850d3e908b7f224a54623f6c5b75906b9e48a4e248fb332b"
+checksum = "69fb52edb3c5736b044cc462b0957b9767d0f574d138f4e2761438c498a4b467"
dependencies = [
"quote",
"regex",
@@ -2249,19 +2283,19 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb0225638cadcbebae8932cb7f49cb5da7c15c21beb19f048f05a5ca7d93f065"
dependencies = [
- "five8_const",
- "pinocchio",
+ "five8_const 0.1.4",
+ "pinocchio 0.9.2",
"sha2-const-stable",
]
[[package]]
name = "pinocchio-system"
-version = "0.4.0"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4be2a6dad40b5e75d1486f021619c4bd504c34c1362c9b94ed7fa525b1cc63cc"
+checksum = "24044a0815753862b558e179e78f03f7344cb755de48617a09d7d23b50883b6c"
dependencies = [
- "pinocchio",
- "pinocchio-pubkey",
+ "pinocchio 0.10.1",
+ "solana-address 2.0.0",
]
[[package]]
@@ -2340,7 +2374,7 @@ name = "processing-instructions-pinocchio-program"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio",
+ "pinocchio 0.10.1",
"pinocchio-log",
"solana-instruction 3.0.0",
"solana-keypair",
@@ -2403,7 +2437,7 @@ name = "program-derived-addresses-pinocchio-program"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio",
+ "pinocchio 0.10.1",
"pinocchio-system",
"solana-instruction 3.0.0",
"solana-keypair",
@@ -2532,7 +2566,7 @@ name = "realloc-pinocchio-program"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio",
+ "pinocchio 0.10.1",
"pinocchio-log",
"pinocchio-system",
"solana-instruction 3.0.0",
@@ -2609,7 +2643,7 @@ name = "rent_pinocchio_program"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio",
+ "pinocchio 0.10.1",
"pinocchio-log",
"pinocchio-system",
"solana-instruction 3.0.0",
@@ -2955,6 +2989,16 @@ dependencies = [
"solana-pubkey 3.0.0",
]
+[[package]]
+name = "solana-account-view"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f37ca34c37f92ee341b73d5ce7c8ef5bb38e9a87955b4bd343c63fa18b149215"
+dependencies = [
+ "solana-address 2.0.0",
+ "solana-program-error 3.0.0",
+]
+
[[package]]
name = "solana-address"
version = "1.0.0"
@@ -2965,8 +3009,8 @@ dependencies = [
"bytemuck",
"bytemuck_derive",
"curve25519-dalek 4.1.3",
- "five8",
- "five8_const",
+ "five8 0.2.1",
+ "five8_const 0.1.4",
"rand 0.8.5",
"serde",
"serde_derive",
@@ -2977,6 +3021,18 @@ dependencies = [
"solana-sha256-hasher 3.0.0",
]
+[[package]]
+name = "solana-address"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e37320fd2945c5d654b2c6210624a52d66c3f1f73b653ed211ab91a703b35bdd"
+dependencies = [
+ "five8 1.0.0",
+ "five8_const 1.0.0",
+ "solana-define-syscall 4.0.1",
+ "solana-program-error 3.0.0",
+]
+
[[package]]
name = "solana-address-lookup-table-interface"
version = "2.2.2"
@@ -3380,6 +3436,12 @@ version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f9697086a4e102d28a156b8d6b521730335d6951bd39a5e766512bbe09007cee"
+[[package]]
+name = "solana-define-syscall"
+version = "4.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57e5b1c0bc1d4a4d10c88a4100499d954c09d3fecfae4912c1a074dff68b1738"
+
[[package]]
name = "solana-derivation-path"
version = "3.0.0"
@@ -3634,7 +3696,7 @@ dependencies = [
"borsh 1.5.7",
"bytemuck",
"bytemuck_derive",
- "five8",
+ "five8 0.2.1",
"js-sys",
"serde",
"serde_derive",
@@ -3652,7 +3714,7 @@ dependencies = [
"borsh 1.5.7",
"bytemuck",
"bytemuck_derive",
- "five8",
+ "five8 0.2.1",
"serde",
"serde_derive",
"solana-atomic-u64 3.0.0",
@@ -3714,6 +3776,18 @@ dependencies = [
"solana-program-error 3.0.0",
]
+[[package]]
+name = "solana-instruction-view"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60147e4d0a4620013df40bf30a86dd299203ff12fcb8b593cd51014fce0875d8"
+dependencies = [
+ "solana-account-view",
+ "solana-address 2.0.0",
+ "solana-define-syscall 4.0.1",
+ "solana-program-error 3.0.0",
+]
+
[[package]]
name = "solana-instructions-sysvar"
version = "2.2.2"
@@ -3793,7 +3867,7 @@ checksum = "952ed9074c12edd2060cb09c2a8c664303f4ab7f7056a407ac37dd1da7bdaa3e"
dependencies = [
"ed25519-dalek 2.2.0",
"ed25519-dalek-bip32",
- "five8",
+ "five8 0.2.1",
"rand 0.8.5",
"solana-derivation-path",
"solana-pubkey 3.0.0",
@@ -3976,7 +4050,7 @@ dependencies = [
"lazy_static",
"serde",
"serde_derive",
- "solana-address",
+ "solana-address 1.0.0",
"solana-hash 3.0.0",
"solana-instruction 3.0.0",
"solana-sanitize 3.0.1",
@@ -4397,8 +4471,8 @@ dependencies = [
"bytemuck",
"bytemuck_derive",
"curve25519-dalek 4.1.3",
- "five8",
- "five8_const",
+ "five8 0.2.1",
+ "five8_const 0.1.4",
"getrandom 0.2.16",
"js-sys",
"num-traits",
@@ -4419,7 +4493,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8909d399deb0851aa524420beeb5646b115fd253ef446e35fe4504c904da3941"
dependencies = [
"rand 0.8.5",
- "solana-address",
+ "solana-address 1.0.0",
]
[[package]]
@@ -4732,7 +4806,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4bb8057cc0e9f7b5e89883d49de6f407df655bb6f3a71d0b7baf9986a2218fd9"
dependencies = [
"ed25519-dalek 2.2.0",
- "five8",
+ "five8 0.2.1",
"rand 0.8.5",
"serde",
"serde-big-array",
@@ -5123,7 +5197,7 @@ dependencies = [
"bincode",
"serde",
"serde_derive",
- "solana-address",
+ "solana-address 1.0.0",
"solana-hash 3.0.0",
"solana-instruction 3.0.0",
"solana-instruction-error",
@@ -5782,7 +5856,7 @@ name = "transfer-sol-pinocchio-program"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio",
+ "pinocchio 0.10.1",
"pinocchio-system",
"solana-instruction 3.0.0",
"solana-keypair",
diff --git a/Cargo.toml b/Cargo.toml
index 9e3984b75..413032468 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -77,9 +77,9 @@ spl-associated-token-account-interface = "2.0.0"
spl-token-2022-interface = "2.0.0"
# pinocchio
-pinocchio = "0.9.2"
-pinocchio-log = "0.4.0"
-pinocchio-system = "0.4.0"
+pinocchio = { version = "0.10.1", features = ["cpi"] }
+pinocchio-log = "0.5.1"
+pinocchio-system = "0.5.0"
pinocchio-pubkey = "0.3.0"
# testing
diff --git a/basics/account-data/pinocchio/package.json b/basics/account-data/pinocchio/package.json
index 0423bc543..9fa753258 100644
--- a/basics/account-data/pinocchio/package.json
+++ b/basics/account-data/pinocchio/package.json
@@ -4,7 +4,7 @@
"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"
+ "deploy": "solana program deploy ./program/target/so/account_data_pinocchio_program.so"
},
"dependencies": {
"@solana/web3.js": "^1.47.3"
@@ -13,10 +13,9 @@
"@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",
+ "litesvm": "^0.3.3",
"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
index 187e1e651..031d4ece3 100644
--- a/basics/account-data/pinocchio/pnpm-lock.yaml
+++ b/basics/account-data/pinocchio/pnpm-lock.yaml
@@ -21,18 +21,15 @@ importers:
'@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
+ litesvm:
+ specifier: ^0.3.3
+ version: 0.3.3(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
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)
@@ -80,6 +77,9 @@ packages:
'@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==}
@@ -152,6 +152,9 @@ packages:
base-x@3.0.11:
resolution: {integrity: sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==}
+ base-x@5.0.1:
+ resolution: {integrity: sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg==}
+
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
@@ -178,6 +181,9 @@ packages:
bs58@4.0.1:
resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==}
+ bs58@6.0.0:
+ resolution: {integrity: sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==}
+
buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
@@ -287,6 +293,9 @@ packages:
fast-stable-stringify@1.0.0:
resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
+ fastestsmallesttextencoderdecoder@1.0.22:
+ resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
+
fill-range@7.1.1:
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
engines: {node: '>=8'}
@@ -399,6 +408,40 @@ packages:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
+ litesvm-darwin-arm64@0.3.3:
+ resolution: {integrity: sha512-81YimsV3ezWjWLgoKixsXfVznaaecbURE3RtECgNb6Din6Za03pKGKGEN4gkyecHkv8uoPaEZv5cl6ARsgeN1Q==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [darwin]
+
+ litesvm-darwin-x64@0.3.3:
+ resolution: {integrity: sha512-pYietuU165Bl+2eDnVp2Eidiedfjt+pljyyBAfJPbYriaFyG577mU364NiNcsfQ8ZZWbe+ygIEAVq4Ol247+1g==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [darwin]
+
+ litesvm-linux-arm64-musl@0.3.3:
+ resolution: {integrity: sha512-mkI15rWtNbaJxVFUfh+qnolqnDCZEqhwSZo/XZ48TZNsQ69vAqY00KhyFhTVJ+jeaYCAZTSNamuFIiRBxqVmNg==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-x64-gnu@0.3.3:
+ resolution: {integrity: sha512-Qai2/E8Eq03w8VKnJDREyiWxwavjykW/H6onE179ayMnBjVVmkj5fN7XF50VV4z73kasx5bpDzBNK8fcaxMdzA==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm-linux-x64-musl@0.3.3:
+ resolution: {integrity: sha512-bpWZ2f506hbfu1y6bkmuZf+qqtnLDxggpOMTQbibjd+q6faEO3sETWwKGlIgHB99P8wyU+aXKwLSGQX2sJEw6Q==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm@0.3.3:
+ resolution: {integrity: sha512-QHXjAIXzvG0uAMOza6aJcYl19yTKz3guwq/z0Zml4KnQxyQvPhjaBpUFc5sf2ey/NxMVdqFhoXmL02CXOOomjw==}
+ engines: {node: '>= 20'}
+
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -509,39 +552,6 @@ packages:
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==}
@@ -756,6 +766,29 @@ snapshots:
- typescript
- utf-8-validate
+ '@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
+ '@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
@@ -822,6 +855,8 @@ snapshots:
dependencies:
safe-buffer: 5.2.1
+ base-x@5.0.1: {}
+
base64-js@1.5.1: {}
binary-extensions@2.3.0: {}
@@ -849,6 +884,10 @@ snapshots:
dependencies:
base-x: 3.0.11
+ bs58@6.0.0:
+ dependencies:
+ base-x: 5.0.1
+
buffer-from@1.1.2: {}
buffer@6.0.3:
@@ -950,6 +989,8 @@ snapshots:
fast-stable-stringify@1.0.0: {}
+ fastestsmallesttextencoderdecoder@1.0.22: {}
+
fill-range@7.1.1:
dependencies:
to-regex-range: 5.0.1
@@ -1055,6 +1096,38 @@ snapshots:
minimist: 1.2.8
optional: true
+ litesvm-darwin-arm64@0.3.3:
+ optional: true
+
+ litesvm-darwin-x64@0.3.3:
+ optional: true
+
+ litesvm-linux-arm64-musl@0.3.3:
+ optional: true
+
+ litesvm-linux-x64-gnu@0.3.3:
+ optional: true
+
+ litesvm-linux-x64-musl@0.3.3:
+ optional: true
+
+ litesvm@0.3.3(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10):
+ dependencies:
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ bs58: 6.0.0
+ fastestsmallesttextencoderdecoder: 1.0.22
+ optionalDependencies:
+ litesvm-darwin-arm64: 0.3.3
+ litesvm-darwin-x64: 0.3.3
+ litesvm-linux-arm64-musl: 0.3.3
+ litesvm-linux-x64-gnu: 0.3.3
+ litesvm-linux-x64-musl: 0.3.3
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1177,37 +1250,6 @@ snapshots:
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
diff --git a/basics/account-data/pinocchio/program/src/lib.rs b/basics/account-data/pinocchio/program/src/lib.rs
index 0cdb75010..937cf3d7c 100644
--- a/basics/account-data/pinocchio/program/src/lib.rs
+++ b/basics/account-data/pinocchio/program/src/lib.rs
@@ -1,12 +1,11 @@
#![no_std]
use pinocchio::{
- account_info::AccountInfo,
- entrypoint, nostd_panic_handler,
- program_error::ProgramError,
- pubkey::Pubkey,
+ entrypoint,
+ error::ProgramError,
+ nostd_panic_handler,
sysvars::{rent::Rent, Sysvar},
- ProgramResult,
+ AccountView, Address, ProgramResult,
};
use pinocchio_system::instructions::CreateAccount;
@@ -14,8 +13,8 @@ entrypoint!(process_instruction);
nostd_panic_handler!();
fn process_instruction(
- program_id: &Pubkey,
- accounts: &[AccountInfo],
+ program_id: &Address,
+ accounts: &[AccountView],
instruction_data: &[u8],
) -> ProgramResult {
match instruction_data.split_first() {
@@ -36,8 +35,8 @@ impl<'a> AddressInfo<'a> {
}
fn process_create(
- program_id: &Pubkey,
- accounts: &[AccountInfo],
+ program_id: &Address,
+ accounts: &[AccountView],
instruction_data: &[u8],
) -> ProgramResult {
let [address_info, payer, system_program] = accounts else {
@@ -52,7 +51,7 @@ fn process_create(
return Err(ProgramError::InvalidAccountData);
};
- if !pinocchio_system::check_id(system_program.key()) {
+ if !pinocchio_system::check_id(system_program.address()) {
return Err(ProgramError::InvalidAccountData);
}
@@ -63,7 +62,7 @@ fn process_create(
let rent = Rent::get()?;
let account_span = AddressInfo::LEN;
- let lamports_required = rent.minimum_balance(account_span);
+ let lamports_required = rent.try_minimum_balance(account_span)?;
CreateAccount {
from: payer,
@@ -74,7 +73,7 @@ fn process_create(
}
.invoke()?;
- let mut address_info_data = address_info.try_borrow_mut_data()?;
+ let mut address_info_data = address_info.try_borrow_mut()?;
address_info_data.copy_from_slice(instruction_data);
Ok(())
diff --git a/basics/account-data/pinocchio/tests/index.test.ts b/basics/account-data/pinocchio/tests/index.test.ts
index 07be2d7d5..1fac4271e 100644
--- a/basics/account-data/pinocchio/tests/index.test.ts
+++ b/basics/account-data/pinocchio/tests/index.test.ts
@@ -1,13 +1,13 @@
-import { Buffer } from "node:buffer";
+import { readFileSync } from "node:fs";
import { describe, test } from "node:test";
import {
Keypair,
- PublicKey,
+ LAMPORTS_PER_SOL,
SystemProgram,
Transaction,
TransactionInstruction,
} from "@solana/web3.js";
-import { start } from "solana-bankrun";
+import { LiteSVM } from "litesvm";
interface AddressInfo {
name: string;
@@ -71,19 +71,34 @@ function fromBytes(buffer: Buffer): AddressInfo {
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;
+describe("Account Data!", () => {
+ // Load the program keypair
+ const programKeypairPath = new URL(
+ "./fixtures/account_data_pinocchio_program-keypair.json",
+ // @ts-ignore
+ import.meta.url,
+ ).pathname;
+ const programKeypairData = JSON.parse(readFileSync(programKeypairPath, "utf-8"));
+ const programKeypair = Keypair.fromSecretKey(new Uint8Array(programKeypairData));
+ const PROGRAM_ID = programKeypair.publicKey;
+
+ // Load the program
+ const programPath = new URL(
+ "./fixtures/account_data_pinocchio_program.so",
+ // @ts-ignore
+ import.meta.url,
+ ).pathname;
+
+ const litesvm = new LiteSVM();
+ litesvm.addProgramFromFile(PROGRAM_ID, programPath);
+
+ const payer = Keypair.generate();
+ litesvm.airdrop(payer.publicKey, BigInt(100 * LAMPORTS_PER_SOL));
- test("Create the address info account", async () => {
- const payer = context.payer;
+ const addressInfoAccount = Keypair.generate();
- console.log(`Program Address : ${PROGRAM_ID}`);
+ test("Create the address info account", () => {
+ console.log(`Program Address : ${PROGRAM_ID}`);
console.log(`Payer Address : ${payer.publicKey}`);
console.log(`Address Info Acct : ${addressInfoAccount.publicKey}`);
@@ -108,16 +123,20 @@ describe("Account Data!", async () => {
data: toBytes(addressInfo),
});
- const blockhash = context.lastBlockhash;
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = litesvm.latestBlockhash();
+ tx.sign(payer, addressInfoAccount);
- const tx = new Transaction();
- tx.recentBlockhash = blockhash;
- tx.add(ix).sign(payer, addressInfoAccount);
- await client.processTransaction(tx);
+ litesvm.sendTransaction(tx);
});
- test("Read the new account's data", async () => {
- const accountInfo = await client.getAccount(addressInfoAccount.publicKey);
+ test("Read the new account's data", () => {
+ const accountInfo = litesvm.getAccount(addressInfoAccount.publicKey);
+
+ if (!accountInfo) {
+ throw new Error("Account not found");
+ }
const readAddressInfo = fromBytes(Buffer.from(accountInfo.data));
diff --git a/basics/checking-accounts/pinocchio/program/src/lib.rs b/basics/checking-accounts/pinocchio/program/src/lib.rs
index 0aa10d413..9640f3b35 100644
--- a/basics/checking-accounts/pinocchio/program/src/lib.rs
+++ b/basics/checking-accounts/pinocchio/program/src/lib.rs
@@ -1,8 +1,7 @@
#![no_std]
use pinocchio::{
- account_info::AccountInfo, entrypoint, nostd_panic_handler, program_error::ProgramError,
- pubkey::Pubkey, ProgramResult,
+ entrypoint, error::ProgramError, nostd_panic_handler, AccountView, Address, ProgramResult,
};
use pinocchio_log::log;
@@ -10,8 +9,8 @@ entrypoint!(process_instruction);
nostd_panic_handler!();
fn process_instruction(
- program_id: &Pubkey,
- accounts: &[AccountInfo],
+ program_id: &Address,
+ accounts: &[AccountView],
_instruction_data: &[u8],
) -> ProgramResult {
// You can verify the list has the correct number of accounts.
@@ -32,7 +31,7 @@ fn process_instruction(
// You can make sure an account has NOT been initialized.
- log!("New account: {}", account_to_create.key());
+ log!("New account: {}", account_to_create.address().as_array());
if account_to_create.lamports() != 0 {
log!("The program expected the account to create to not yet be initialized.");
return Err(ProgramError::AccountAlreadyInitialized);
@@ -40,20 +39,23 @@ fn process_instruction(
// (Create account...)
// You can also make sure an account has been initialized.
- log!("Account to change: {}", account_to_change.key());
+ log!(
+ "Account to change: {}",
+ account_to_change.address().as_array()
+ );
if account_to_change.lamports() == 0 {
log!("The program expected the account to change to be initialized.");
return Err(ProgramError::UninitializedAccount);
};
// If we want to modify an account's data, it must be owned by our program.
- if account_to_change.owner() != program_id {
+ if !account_to_change.owned_by(program_id) {
log!("Account to change does not have the correct program id.");
return Err(ProgramError::IncorrectProgramId);
};
// You can also check pubkeys against constants.
- if system_program.key() != &pinocchio_system::ID {
+ if system_program.address() != &pinocchio_system::ID {
return Err(ProgramError::IncorrectProgramId);
};
diff --git a/basics/close-account/pinocchio/program/Cargo.toml b/basics/close-account/pinocchio/program/Cargo.toml
index a792f896c..e1c7f3307 100644
--- a/basics/close-account/pinocchio/program/Cargo.toml
+++ b/basics/close-account/pinocchio/program/Cargo.toml
@@ -6,6 +6,7 @@ edition = "2021"
[dependencies]
pinocchio.workspace = true
pinocchio-log.workspace = true
+pinocchio-pubkey.workspace = true
pinocchio-system.workspace = true
[dev-dependencies]
diff --git a/basics/close-account/pinocchio/program/src/lib.rs b/basics/close-account/pinocchio/program/src/lib.rs
index a8f3dc361..d63f67b04 100644
--- a/basics/close-account/pinocchio/program/src/lib.rs
+++ b/basics/close-account/pinocchio/program/src/lib.rs
@@ -1,14 +1,12 @@
#![no_std]
use pinocchio::{
- account_info::AccountInfo,
+ cpi::{Seed, Signer},
entrypoint,
- instruction::{Seed, Signer},
+ error::ProgramError,
nostd_panic_handler,
- program_error::ProgramError,
- pubkey::Pubkey,
sysvars::{rent::Rent, Sysvar},
- ProgramResult,
+ AccountView, Address, ProgramResult,
};
use pinocchio_system::instructions::CreateAccount;
@@ -16,8 +14,8 @@ entrypoint!(process_instruction);
nostd_panic_handler!();
fn process_instruction(
- program_id: &Pubkey,
- accounts: &[AccountInfo],
+ program_id: &Address,
+ accounts: &[AccountView],
instruction_data: &[u8],
) -> ProgramResult {
match instruction_data.split_first() {
@@ -40,8 +38,8 @@ impl<'a> User<'a> {
}
fn process_user(
- program_id: &Pubkey,
- accounts: &[AccountInfo],
+ program_id: &Address,
+ accounts: &[AccountView],
instruction_data: &[u8],
) -> ProgramResult {
let [target_account, payer, _system_program] = accounts else {
@@ -51,17 +49,13 @@ fn process_user(
let rent = Rent::get()?;
let account_span = User::LEN;
- let lamports_required = rent.minimum_balance(account_span);
+ let lamports_required = rent.try_minimum_balance(account_span)?;
- let (_, bump) = pinocchio::pubkey::find_program_address(
- &[User::SEED_PREFIX.as_bytes(), payer.key()],
- program_id,
- );
- let bump_bytes = bump.to_le_bytes();
+ let bump_bytes = instruction_data[0].to_le_bytes();
let seeds = [
Seed::from(User::SEED_PREFIX.as_bytes()),
- Seed::from(payer.key().as_ref()),
+ Seed::from(payer.address().as_ref()),
Seed::from(&bump_bytes),
];
let signers = [Signer::from(&seeds)];
@@ -75,13 +69,13 @@ fn process_user(
}
.invoke_signed(&signers)?;
- let mut address_info_data = target_account.try_borrow_mut_data()?;
- address_info_data.copy_from_slice(instruction_data);
+ let mut address_info_data = target_account.try_borrow_mut()?;
+ address_info_data.copy_from_slice(&instruction_data[1..]);
Ok(())
}
-fn process_close(accounts: &[AccountInfo]) -> ProgramResult {
+fn process_close(accounts: &[AccountView]) -> ProgramResult {
let [target_account, payer, system_program] = accounts else {
return Err(ProgramError::NotEnoughAccountKeys);
};
@@ -89,17 +83,17 @@ fn process_close(accounts: &[AccountInfo]) -> ProgramResult {
let rent = Rent::get()?;
let account_span = 0usize;
- let lamports_required = rent.minimum_balance(account_span);
+ let lamports_required = rent.try_minimum_balance(account_span)?;
let diff = target_account.lamports() - lamports_required;
- *target_account.try_borrow_mut_lamports()? -= diff;
- *payer.try_borrow_mut_lamports()? += diff;
+ target_account.set_lamports(target_account.lamports() - diff);
+ payer.set_lamports(payer.lamports() + diff);
target_account.resize(account_span)?;
unsafe {
- target_account.assign(system_program.key());
+ target_account.assign(system_program.address());
}
Ok(())
diff --git a/basics/close-account/pinocchio/program/tests/tests.rs b/basics/close-account/pinocchio/program/tests/tests.rs
index 41e51bf93..9814b4d4d 100644
--- a/basics/close-account/pinocchio/program/tests/tests.rs
+++ b/basics/close-account/pinocchio/program/tests/tests.rs
@@ -22,8 +22,16 @@ fn test_close_account() {
let test_account_pubkey =
Pubkey::find_program_address(&[b"USER".as_ref(), &payer.pubkey().as_ref()], &program_id).0;
+ let bump = Pubkey::find_program_address(
+ &[User::SEED_PREFIX.as_bytes(), payer.pubkey().as_ref()],
+ &program_id,
+ )
+ .1;
+
+ // process_user
let mut data = Vec::new();
data.push(CREATE_DISCRIMINATOR);
+ data.push(bump);
let mut name = [0u8; User::LEN];
let name_len = b"Jacob".len().min(User::LEN);
name[..name_len].copy_from_slice(&b"Jacob"[..name_len]);
@@ -54,6 +62,7 @@ fn test_close_account() {
assert_eq!(account.owner, program_id);
assert_eq!(&account.data[..5], b"Jacob");
+ // process_close
let mut data = Vec::new();
data.push(CLOSE_DISCRIMINATOR);
diff --git a/basics/counter/pinocchio/program/src/lib.rs b/basics/counter/pinocchio/program/src/lib.rs
index 53bb40c9c..ed0a0de8d 100644
--- a/basics/counter/pinocchio/program/src/lib.rs
+++ b/basics/counter/pinocchio/program/src/lib.rs
@@ -1,9 +1,6 @@
#![no_std]
-use pinocchio::{
- account_info::AccountInfo, nostd_panic_handler, program_error::ProgramError, pubkey::Pubkey,
- ProgramResult,
-};
+use pinocchio::{error::ProgramError, nostd_panic_handler, AccountView, Address, ProgramResult};
use pinocchio_log::log;
mod state;
@@ -20,8 +17,8 @@ entrypoint!(process_instruction);
nostd_panic_handler!();
pub fn process_instruction(
- _program_id: &Pubkey,
- accounts: &[AccountInfo],
+ _program_id: &Address,
+ accounts: &[AccountView],
instruction_data: &[u8],
) -> ProgramResult {
let (instruction_discriminant, instruction_data_inner) = instruction_data.split_at(1);
@@ -38,7 +35,7 @@ pub fn process_instruction(
}
pub fn process_increment_counter(
- accounts: &[AccountInfo],
+ accounts: &[AccountView],
_instruction_data: &[u8],
) -> Result<(), ProgramError> {
let [counter_account] = accounts else {
@@ -50,7 +47,7 @@ pub fn process_increment_counter(
"Counter account must be writable"
);
- let mut counter_account_data = counter_account.try_borrow_mut_data()?;
+ let mut counter_account_data = counter_account.try_borrow_mut()?;
// Read the current counter value (first 8 bytes)
let counter_bytes: [u8; 8] = counter_account_data[0..8]
diff --git a/basics/create-account/pinocchio/program/src/lib.rs b/basics/create-account/pinocchio/program/src/lib.rs
index 7f2bc0b9e..ea66cfd75 100644
--- a/basics/create-account/pinocchio/program/src/lib.rs
+++ b/basics/create-account/pinocchio/program/src/lib.rs
@@ -1,8 +1,7 @@
#![no_std]
use pinocchio::{
- account_info::AccountInfo, entrypoint, nostd_panic_handler, program_error::ProgramError,
- pubkey::Pubkey, ProgramResult,
+ entrypoint, error::ProgramError, nostd_panic_handler, AccountView, Address, ProgramResult,
};
use pinocchio_log::log;
@@ -14,8 +13,8 @@ nostd_panic_handler!();
const LAMPORTS_PER_SOL: u64 = 1_000_000_000;
fn process_instruction(
- _program_id: &Pubkey,
- accounts: &[AccountInfo],
+ _program_id: &Address,
+ accounts: &[AccountView],
_instruction_data: &[u8],
) -> ProgramResult {
let [payer, new_account, _system_program] = accounts else {
@@ -24,7 +23,7 @@ fn process_instruction(
log!("Program invoked. Creating a system account...");
log!(" New public key will be:");
- pinocchio::pubkey::log(new_account.key());
+ log!("{}", new_account.address().as_array());
CreateAccount {
from: payer,
diff --git a/basics/favorites/pinocchio/program/Cargo.toml b/basics/favorites/pinocchio/program/Cargo.toml
index ffdefcf1c..576a8c916 100644
--- a/basics/favorites/pinocchio/program/Cargo.toml
+++ b/basics/favorites/pinocchio/program/Cargo.toml
@@ -6,6 +6,7 @@ edition = "2021"
[dependencies]
pinocchio.workspace = true
pinocchio-log.workspace = true
+pinocchio-pubkey.workspace = true
pinocchio-system.workspace = true
diff --git a/basics/favorites/pinocchio/program/src/instructions/create_pda.rs b/basics/favorites/pinocchio/program/src/instructions/create_pda.rs
index 89192a9ae..8140b2aea 100644
--- a/basics/favorites/pinocchio/program/src/instructions/create_pda.rs
+++ b/basics/favorites/pinocchio/program/src/instructions/create_pda.rs
@@ -1,43 +1,46 @@
use crate::state::Favorites;
use pinocchio::{
- account_info::AccountInfo,
- instruction::{Seed, Signer},
- program_error::ProgramError,
- pubkey::{find_program_address, Pubkey},
+ cpi::{Seed, Signer},
+ error::ProgramError,
sysvars::{rent::Rent, Sysvar},
- ProgramResult,
+ AccountView, Address, ProgramResult,
};
+use pinocchio_pubkey::derive_address;
use pinocchio_system::instructions::CreateAccount;
-pub fn create_pda(program_id: &Pubkey, accounts: &[AccountInfo], data: &[u8]) -> ProgramResult {
+pub fn create_pda(program_id: &Address, accounts: &[AccountView], data: &[u8]) -> ProgramResult {
let [user, favorite_account, _] = accounts else {
return Err(ProgramError::NotEnoughAccountKeys);
};
// deriving the favorite pda
- let (favorite_pda, favorite_bump) =
- find_program_address(&[b"favorite", user.key().as_ref()], program_id);
+ let bump = data[0];
+ let favorite_pda = derive_address(
+ &[b"favorite", user.address().as_ref()],
+ Some(bump),
+ program_id.as_array(),
+ );
// Checking if the favorite account is same as the derived favorite pda
- if favorite_account.key() != &favorite_pda {
+ if favorite_account.address().as_array() != &favorite_pda {
return Err(ProgramError::IncorrectProgramId);
}
// Checking if the pda is already initialized
- if favorite_account.try_borrow_data()?.is_empty() {
+ if favorite_account.try_borrow()?.is_empty() {
let rent = Rent::get()?;
// Initialize the favorite account if it's not initialized
let space = size_of::();
- let lamports = rent.minimum_balance(space);
+ let lamports = rent.try_minimum_balance(space)?;
- let bump_bytes = favorite_bump.to_le_bytes();
+ let bump_bytes = bump.to_le_bytes();
let seeds = [
Seed::from(b"favorite"),
- Seed::from(user.key()),
+ Seed::from(user.address().as_ref()),
Seed::from(&bump_bytes),
];
@@ -53,8 +56,8 @@ pub fn create_pda(program_id: &Pubkey, accounts: &[AccountInfo], data: &[u8]) ->
.invoke_signed(&signers)?;
// Serialize and store the data
- let mut favrite_account_data = favorite_account.try_borrow_mut_data()?;
- favrite_account_data.copy_from_slice(data);
+ let mut favrite_account_data = favorite_account.try_borrow_mut()?;
+ favrite_account_data.copy_from_slice(&data[1..]);
} else {
return Err(ProgramError::AccountAlreadyInitialized);
}
diff --git a/basics/favorites/pinocchio/program/src/instructions/get_pda.rs b/basics/favorites/pinocchio/program/src/instructions/get_pda.rs
index 033c4f37c..88ea00cb3 100644
--- a/basics/favorites/pinocchio/program/src/instructions/get_pda.rs
+++ b/basics/favorites/pinocchio/program/src/instructions/get_pda.rs
@@ -1,25 +1,26 @@
-use pinocchio::{
- account_info::AccountInfo,
- program_error::ProgramError,
- pubkey::{find_program_address, Pubkey},
- ProgramResult,
-};
+use pinocchio::{error::ProgramError, AccountView, Address, ProgramResult};
use pinocchio_log::log;
+use pinocchio_pubkey::derive_address;
-pub fn get_pda(program_id: &Pubkey, accounts: &[AccountInfo]) -> ProgramResult {
+pub fn get_pda(program_id: &Address, accounts: &[AccountView], data: &[u8]) -> ProgramResult {
let [user, favorite_account] = accounts else {
return Err(ProgramError::NotEnoughAccountKeys);
};
// deriving the favorite pda
- let (favorite_pda, _) = find_program_address(&[b"favorite", user.key().as_ref()], program_id);
+ let bump = data[0];
+ let favorite_pda = derive_address(
+ &[b"favorite", user.address().as_ref()],
+ Some(bump),
+ program_id.as_array(),
+ );
// Checking if the favorite account is same as the derived favorite pda
- if favorite_account.key() != &favorite_pda {
+ if favorite_account.address().as_array() != &favorite_pda {
return Err(ProgramError::IncorrectProgramId);
};
- let favorites = favorite_account.try_borrow_data()?;
+ let favorites = favorite_account.try_borrow()?;
let number = u64::from_le_bytes(
favorites[0..8]
@@ -44,7 +45,7 @@ pub fn get_pda(program_id: &Pubkey, accounts: &[AccountInfo]) -> ProgramResult {
log!(
300,
"User {}'s favorite number is {}, favorite color is: {}, and their hobbies are {} {} {} {}",
- user.key(),
+ user.address().as_array(),
number,
color,
hobby1,
diff --git a/basics/favorites/pinocchio/program/src/processor.rs b/basics/favorites/pinocchio/program/src/processor.rs
index 808e68202..57cf6e702 100644
--- a/basics/favorites/pinocchio/program/src/processor.rs
+++ b/basics/favorites/pinocchio/program/src/processor.rs
@@ -1,20 +1,18 @@
-use pinocchio::{
- account_info::AccountInfo, program_error::ProgramError, pubkey::Pubkey, ProgramResult,
-};
+use pinocchio::{error::ProgramError, AccountView, Address, ProgramResult};
use crate::instructions::{create_pda::*, get_pda::*};
pub use crate::state::Favorites;
pub fn process_instruction(
- program_id: &Pubkey,
- accounts: &[AccountInfo],
+ program_id: &Address,
+ accounts: &[AccountView],
instruction_data: &[u8],
) -> ProgramResult {
let (discriminator, ix_data) = instruction_data.split_first().unwrap();
match discriminator {
1 => create_pda(program_id, accounts, ix_data),
- 2 => get_pda(program_id, accounts),
+ 2 => get_pda(program_id, accounts, ix_data),
_ => Err(ProgramError::InvalidInstructionData),
}?;
diff --git a/basics/favorites/pinocchio/program/tests/test.rs b/basics/favorites/pinocchio/program/tests/test.rs
index b6c29c87f..8b3eddeac 100644
--- a/basics/favorites/pinocchio/program/tests/test.rs
+++ b/basics/favorites/pinocchio/program/tests/test.rs
@@ -17,12 +17,13 @@ fn test_favorites() {
svm.airdrop(&payer.pubkey(), LAMPORTS_PER_SOL * 10).unwrap();
- let favorites_pda =
- Pubkey::find_program_address(&[b"favorite", payer.pubkey().as_ref()], &program_id).0;
+ let (favorites_pda, favorites_bump) =
+ Pubkey::find_program_address(&[b"favorite", payer.pubkey().as_ref()], &program_id);
let mut data = Vec::new();
data.push(1);
+ data.push(favorites_bump);
data.extend_from_slice(&u64::to_le_bytes(42));
@@ -73,6 +74,7 @@ fn test_favorites() {
let mut data = Vec::new();
data.push(2);
+ data.push(favorites_bump);
let ix = Instruction {
program_id,
diff --git a/basics/hello-solana/pinocchio/program/src/lib.rs b/basics/hello-solana/pinocchio/program/src/lib.rs
index a313b1965..2044eded4 100644
--- a/basics/hello-solana/pinocchio/program/src/lib.rs
+++ b/basics/hello-solana/pinocchio/program/src/lib.rs
@@ -1,8 +1,5 @@
use pinocchio::{
- account_info::AccountInfo,
- default_panic_handler, no_allocator, program_entrypoint,
- pubkey::{self, Pubkey},
- ProgramResult,
+ default_panic_handler, no_allocator, program_entrypoint, AccountView, Address, ProgramResult,
};
use pinocchio_log::log;
@@ -15,13 +12,13 @@ default_panic_handler!();
#[inline(always)]
fn process_instruction(
- program_id: &Pubkey,
- _accounts: &[AccountInfo],
+ program_id: &Address,
+ _accounts: &[AccountView],
_instruction_data: &[u8],
) -> ProgramResult {
log!("Hello, Solana!");
- pubkey::log(program_id);
+ log!("{}", program_id.as_array());
Ok(())
}
diff --git a/basics/hello-solana/pinocchio/tests/index.test.ts b/basics/hello-solana/pinocchio/tests/index.test.ts
index 8bddf0509..734bad24f 100644
--- a/basics/hello-solana/pinocchio/tests/index.test.ts
+++ b/basics/hello-solana/pinocchio/tests/index.test.ts
@@ -31,7 +31,7 @@ describe('hello-solana', () => {
assert(transaction.logMessages[0].startsWith(`Program ${PROGRAM_ID}`));
assert(transaction.logMessages[1] === 'Program log: Hello, Solana!');
- assert(transaction.logMessages[2] === `Program log: ${PROGRAM_ID}`);
+ assert(transaction.logMessages[2] === `Program log: [${Array.from(PROGRAM_ID.toBytes()).join(', ')}]`);
assert(transaction.logMessages[3].startsWith(`Program ${PROGRAM_ID} consumed`));
assert(transaction.logMessages[4] === `Program ${PROGRAM_ID} success`);
assert(transaction.logMessages.length === 5);
diff --git a/basics/pda-rent-payer/pinocchio/program/Cargo.toml b/basics/pda-rent-payer/pinocchio/program/Cargo.toml
index afca652bc..acb1dee0b 100644
--- a/basics/pda-rent-payer/pinocchio/program/Cargo.toml
+++ b/basics/pda-rent-payer/pinocchio/program/Cargo.toml
@@ -6,6 +6,7 @@ edition = "2021"
[dependencies]
pinocchio.workspace = true
pinocchio-log.workspace = true
+pinocchio-pubkey.workspace = true
pinocchio-system.workspace = true
diff --git a/basics/pda-rent-payer/pinocchio/program/src/instructions/create_new_account.rs b/basics/pda-rent-payer/pinocchio/program/src/instructions/create_new_account.rs
index 2991fdf39..0b746188d 100644
--- a/basics/pda-rent-payer/pinocchio/program/src/instructions/create_new_account.rs
+++ b/basics/pda-rent-payer/pinocchio/program/src/instructions/create_new_account.rs
@@ -1,28 +1,37 @@
use pinocchio::{
- account_info::AccountInfo,
- program_error::ProgramError,
- pubkey::{find_program_address, Pubkey},
+ error::ProgramError,
sysvars::{rent::Rent, Sysvar},
- ProgramResult,
+ AccountView, Address, ProgramResult,
};
+use pinocchio_pubkey::derive_address;
use crate::state::RentVault;
-pub fn create_new_account(program_id: &Pubkey, accounts: &[AccountInfo]) -> ProgramResult {
+pub fn create_new_account(
+ program_id: &Address,
+ accounts: &[AccountView],
+ instruction_data: &[u8],
+) -> ProgramResult {
let [new_account, rent_vault, _] = accounts else {
return Err(ProgramError::NotEnoughAccountKeys);
};
- let (rent_vault_pda, _rent_vault_bump) =
- find_program_address(&[RentVault::SEED_PREFIX.as_bytes()], program_id);
- assert!(rent_vault.key().eq(&rent_vault_pda));
+ let bump = instruction_data[0];
+
+ let rent_vault_pda = derive_address(
+ &[RentVault::SEED_PREFIX.as_bytes()],
+ Some(bump),
+ program_id.as_array(),
+ );
+
+ assert!(rent_vault.address().as_array().eq(&rent_vault_pda));
// Assuming this account has no inner data (size 0)
//
- let lamports_required_for_rent = (Rent::get()?).minimum_balance(0);
+ let lamports_required_for_rent = (Rent::get()?).try_minimum_balance(0)?;
- *rent_vault.try_borrow_mut_lamports()? -= lamports_required_for_rent;
- *new_account.try_borrow_mut_lamports()? += lamports_required_for_rent;
+ rent_vault.set_lamports(rent_vault.lamports() - lamports_required_for_rent);
+ new_account.set_lamports(new_account.lamports() + lamports_required_for_rent);
Ok(())
}
diff --git a/basics/pda-rent-payer/pinocchio/program/src/instructions/init_rent_vault.rs b/basics/pda-rent-payer/pinocchio/program/src/instructions/init_rent_vault.rs
index 3622075c2..28d28e6df 100644
--- a/basics/pda-rent-payer/pinocchio/program/src/instructions/init_rent_vault.rs
+++ b/basics/pda-rent-payer/pinocchio/program/src/instructions/init_rent_vault.rs
@@ -1,11 +1,10 @@
use pinocchio::{
- account_info::AccountInfo,
- instruction::{Seed, Signer},
- program_error::ProgramError,
- pubkey::{find_program_address, Pubkey},
+ cpi::{Seed, Signer},
+ error::ProgramError,
sysvars::{rent::Rent, Sysvar},
- ProgramResult,
+ AccountView, Address, ProgramResult,
};
+use pinocchio_pubkey::derive_address;
use pinocchio_system::instructions::CreateAccount;
use crate::state::RentVault;
@@ -15,28 +14,34 @@ pub struct InitRentVaultArgs {
}
pub fn init_rent_vault(
- program_id: &Pubkey,
- accounts: &[AccountInfo],
+ program_id: &Address,
+ accounts: &[AccountView],
instruction_data: &[u8],
) -> ProgramResult {
let [rent_vault, payer, _] = accounts else {
return Err(ProgramError::NotEnoughAccountKeys);
};
- let (rent_vault_pda, rent_vault_bump) =
- find_program_address(&[RentVault::SEED_PREFIX.as_bytes()], program_id);
- assert!(rent_vault.key().eq(&rent_vault_pda));
+ let bump = instruction_data[0];
+
+ let rent_vault_pda = derive_address(
+ &[RentVault::SEED_PREFIX.as_bytes()],
+ Some(bump),
+ program_id.as_array(),
+ );
+
+ assert!(rent_vault.address().as_array().eq(&rent_vault_pda));
// Lamports for rent on the vault, plus the desired additional funding
//
let fund_lamports = u64::from_le_bytes(
- instruction_data[0..8]
+ instruction_data[1..9]
.try_into()
.map_err(|_| ProgramError::InvalidInstructionData)?,
);
- let lamports_required = (Rent::get()?).minimum_balance(0) + fund_lamports;
+ let lamports_required = (Rent::get()?).try_minimum_balance(0)? + fund_lamports;
- let bump_bytes = rent_vault_bump.to_le_bytes();
+ let bump_bytes = bump.to_le_bytes();
let seeds = [
Seed::from(RentVault::SEED_PREFIX.as_bytes()),
diff --git a/basics/pda-rent-payer/pinocchio/program/src/processor.rs b/basics/pda-rent-payer/pinocchio/program/src/processor.rs
index a65d599e4..b1ee364c1 100644
--- a/basics/pda-rent-payer/pinocchio/program/src/processor.rs
+++ b/basics/pda-rent-payer/pinocchio/program/src/processor.rs
@@ -1,6 +1,4 @@
-use pinocchio::{
- account_info::AccountInfo, program_error::ProgramError, pubkey::Pubkey, ProgramResult,
-};
+use pinocchio::{error::ProgramError, AccountView, Address, ProgramResult};
use crate::instructions::{
create_new_account::create_new_account,
@@ -13,13 +11,13 @@ pub enum MyInstruction {
}
pub fn process_instruction(
- program_id: &Pubkey,
- accounts: &[AccountInfo],
+ program_id: &Address,
+ accounts: &[AccountView],
instruction_data: &[u8],
) -> ProgramResult {
match instruction_data.split_first() {
Some((0, data)) => init_rent_vault(program_id, accounts, data),
- Some((1, _)) => create_new_account(program_id, accounts),
+ Some((1, data)) => create_new_account(program_id, accounts, data),
_ => Err(ProgramError::InvalidInstructionData),
}
}
diff --git a/basics/pda-rent-payer/pinocchio/program/tests/test.rs b/basics/pda-rent-payer/pinocchio/program/tests/test.rs
index 741927c41..ce542922f 100644
--- a/basics/pda-rent-payer/pinocchio/program/tests/test.rs
+++ b/basics/pda-rent-payer/pinocchio/program/tests/test.rs
@@ -16,10 +16,12 @@ fn test_pda_rent_payer() {
let payer = Keypair::new();
svm.airdrop(&payer.pubkey(), LAMPORTS_PER_SOL * 10).unwrap();
- let rent_value_pda = Pubkey::find_program_address(&[b"rent_vault"], &program_id).0;
+ let (rent_value_pda, bump) = Pubkey::find_program_address(&[b"rent_vault"], &program_id);
+ // init_rent_vault
let mut data = Vec::new();
data.push(0);
+ data.push(bump);
data.extend_from_slice(&u64::to_le_bytes(1000000000));
let ix = Instruction {
@@ -42,9 +44,11 @@ fn test_pda_rent_payer() {
let res = svm.send_transaction(tx);
assert!(res.is_ok());
+ // create_new_account
let new_account = Keypair::new();
- let data = vec![1];
+ let mut data = vec![1];
+ data.push(bump);
let ix = Instruction {
program_id,
diff --git a/basics/processing-instructions/pinocchio/program/src/lib.rs b/basics/processing-instructions/pinocchio/program/src/lib.rs
index 49e61decb..64296ff80 100644
--- a/basics/processing-instructions/pinocchio/program/src/lib.rs
+++ b/basics/processing-instructions/pinocchio/program/src/lib.rs
@@ -1,14 +1,11 @@
-use pinocchio::{
- account_info::AccountInfo, entrypoint, program_error::ProgramError, pubkey::Pubkey,
- ProgramResult,
-};
+use pinocchio::{entrypoint, error::ProgramError, AccountView, Address, ProgramResult};
use pinocchio_log::log;
entrypoint!(process_instruction);
fn process_instruction(
- _program_id: &Pubkey,
- _accounts: &[AccountInfo],
+ _program_id: &Address,
+ _accounts: &[AccountView],
instruction_data: &[u8],
) -> ProgramResult {
let name = core::str::from_utf8(&instruction_data[0..8])
diff --git a/basics/program-derived-addresses/pinocchio/program/src/instructions/create.rs b/basics/program-derived-addresses/pinocchio/program/src/instructions/create.rs
index 23c129e90..b0a8ed288 100644
--- a/basics/program-derived-addresses/pinocchio/program/src/instructions/create.rs
+++ b/basics/program-derived-addresses/pinocchio/program/src/instructions/create.rs
@@ -1,10 +1,8 @@
use pinocchio::{
- account_info::AccountInfo,
- instruction::{Seed, Signer},
- program_error::ProgramError,
- pubkey::Pubkey,
+ cpi::{Seed, Signer},
+ error::ProgramError,
sysvars::{rent::Rent, Sysvar},
- ProgramResult,
+ AccountView, Address, ProgramResult,
};
use pinocchio_system::instructions::CreateAccount;
@@ -12,8 +10,8 @@ use pinocchio_system::instructions::CreateAccount;
use crate::state::PageVisits;
pub fn create_page_visits(
- program_id: &Pubkey,
- accounts: &[AccountInfo],
+ program_id: &Address,
+ accounts: &[AccountView],
instruction_data: &[u8],
) -> ProgramResult {
let [page_visits_account, user, payer, _] = accounts else {
@@ -21,13 +19,13 @@ pub fn create_page_visits(
};
let account_span = PageVisits::ACCOUNT_SPACE;
- let lamports_required = (Rent::get()?).minimum_balance(account_span);
+ let lamports_required = (Rent::get()?).try_minimum_balance(account_span)?;
let bump_bytes = &instruction_data[4..5];
let seeds = [
Seed::from(PageVisits::SEED_PREFIX.as_bytes()),
- Seed::from(user.key().as_ref()),
+ Seed::from(user.address().as_ref()),
Seed::from(bump_bytes),
];
diff --git a/basics/program-derived-addresses/pinocchio/program/src/instructions/increment.rs b/basics/program-derived-addresses/pinocchio/program/src/instructions/increment.rs
index 9ac4a67e8..45da69ef9 100644
--- a/basics/program-derived-addresses/pinocchio/program/src/instructions/increment.rs
+++ b/basics/program-derived-addresses/pinocchio/program/src/instructions/increment.rs
@@ -1,11 +1,11 @@
-use pinocchio::{account_info::AccountInfo, program_error::ProgramError, ProgramResult};
+use pinocchio::{error::ProgramError, AccountView, ProgramResult};
-pub fn increment_page_visits(accounts: &[AccountInfo]) -> ProgramResult {
+pub fn increment_page_visits(accounts: &[AccountView]) -> ProgramResult {
let [page_visits_account] = accounts else {
return Err(ProgramError::NotEnoughAccountKeys);
};
- let mut page_visits_bytes = page_visits_account.try_borrow_mut_data()?;
+ let mut page_visits_bytes = page_visits_account.try_borrow_mut()?;
let mut page_visits = u32::from_le_bytes(
page_visits_bytes[0..4]
diff --git a/basics/program-derived-addresses/pinocchio/program/src/processor.rs b/basics/program-derived-addresses/pinocchio/program/src/processor.rs
index eb5f75718..1fc614d5a 100644
--- a/basics/program-derived-addresses/pinocchio/program/src/processor.rs
+++ b/basics/program-derived-addresses/pinocchio/program/src/processor.rs
@@ -1,12 +1,10 @@
-use pinocchio::{
- account_info::AccountInfo, program_error::ProgramError, pubkey::Pubkey, ProgramResult,
-};
+use pinocchio::{error::ProgramError, AccountView, Address, ProgramResult};
use crate::instructions;
pub fn process_instruction(
- program_id: &Pubkey,
- accounts: &[AccountInfo],
+ program_id: &Address,
+ accounts: &[AccountView],
instruction_data: &[u8],
) -> ProgramResult {
match instruction_data.split_first() {
diff --git a/basics/realloc/pinocchio/program/src/instructions/create.rs b/basics/realloc/pinocchio/program/src/instructions/create.rs
index 5a69113bf..9de50e129 100644
--- a/basics/realloc/pinocchio/program/src/instructions/create.rs
+++ b/basics/realloc/pinocchio/program/src/instructions/create.rs
@@ -1,17 +1,15 @@
use pinocchio::{
- account_info::AccountInfo,
- program_error::ProgramError,
- pubkey::Pubkey,
+ error::ProgramError,
sysvars::{rent::Rent, Sysvar},
- ProgramResult,
+ AccountView, Address, ProgramResult,
};
use pinocchio_system::instructions::CreateAccount;
use crate::state::AddressInfo;
pub fn create_address_info(
- program_id: &Pubkey,
- accounts: &[AccountInfo],
+ program_id: &Address,
+ accounts: &[AccountView],
instruction_data: &[u8],
) -> ProgramResult {
let [target_account, payer, _] = accounts else {
@@ -19,7 +17,7 @@ pub fn create_address_info(
};
let account_span = AddressInfo::LEN;
- let lamports_required = (Rent::get()?).minimum_balance(account_span);
+ let lamports_required = (Rent::get()?).try_minimum_balance(account_span)?;
CreateAccount {
from: payer,
@@ -30,7 +28,7 @@ pub fn create_address_info(
}
.invoke()?;
- let mut data = target_account.try_borrow_mut_data()?;
+ let mut data = target_account.try_borrow_mut()?;
data.copy_from_slice(instruction_data);
Ok(())
diff --git a/basics/realloc/pinocchio/program/src/instructions/reallocate.rs b/basics/realloc/pinocchio/program/src/instructions/reallocate.rs
index 3eb13c73a..5001e36c1 100644
--- a/basics/realloc/pinocchio/program/src/instructions/reallocate.rs
+++ b/basics/realloc/pinocchio/program/src/instructions/reallocate.rs
@@ -1,15 +1,14 @@
use pinocchio::{
- account_info::AccountInfo,
- program_error::ProgramError,
+ error::ProgramError,
sysvars::{rent::Rent, Sysvar},
- ProgramResult,
+ AccountView, ProgramResult,
};
use pinocchio_system::instructions::Transfer;
use crate::state::{EnhancedAddressInfo, WorkInfo};
pub fn reallocate_without_zero_init(
- accounts: &[AccountInfo],
+ accounts: &[AccountView],
instruction_data: &[u8],
) -> ProgramResult {
let [target_account, payer, _] = accounts else {
@@ -17,9 +16,9 @@ pub fn reallocate_without_zero_init(
};
let account_span = EnhancedAddressInfo::LEN;
- let lamports_required = (Rent::get()?).minimum_balance(account_span);
+ let lamports_required = (Rent::get()?).try_minimum_balance(account_span)?;
- let diff = lamports_required - *target_account.try_borrow_lamports()?;
+ let diff = lamports_required - target_account.lamports();
Transfer {
from: payer,
@@ -30,13 +29,13 @@ pub fn reallocate_without_zero_init(
target_account.resize(account_span)?;
- let mut target_account_data = target_account.try_borrow_mut_data()?;
+ let mut target_account_data = target_account.try_borrow_mut()?;
target_account_data[25..37].copy_from_slice(instruction_data);
Ok(())
}
-pub fn reallocate_zero_init(accounts: &[AccountInfo], data: &[u8]) -> ProgramResult {
+pub fn reallocate_zero_init(accounts: &[AccountView], data: &[u8]) -> ProgramResult {
let [target_account] = accounts else {
return Err(ProgramError::NotEnoughAccountKeys);
};
@@ -45,7 +44,7 @@ pub fn reallocate_zero_init(accounts: &[AccountInfo], data: &[u8]) -> ProgramRes
target_account.resize(account_span)?;
- let mut target_account_data = target_account.try_borrow_mut_data()?;
+ let mut target_account_data = target_account.try_borrow_mut()?;
target_account_data.copy_from_slice(data);
Ok(())
diff --git a/basics/realloc/pinocchio/program/src/processor.rs b/basics/realloc/pinocchio/program/src/processor.rs
index 9b33aaac2..544c0d117 100644
--- a/basics/realloc/pinocchio/program/src/processor.rs
+++ b/basics/realloc/pinocchio/program/src/processor.rs
@@ -1,11 +1,9 @@
use crate::instructions::*;
-use pinocchio::{
- account_info::AccountInfo, program_error::ProgramError, pubkey::Pubkey, ProgramResult,
-};
+use pinocchio::{error::ProgramError, AccountView, Address, ProgramResult};
pub fn process_instruction(
- program_id: &Pubkey,
- accounts: &[AccountInfo],
+ program_id: &Address,
+ accounts: &[AccountView],
instruction_data: &[u8],
) -> ProgramResult {
match instruction_data.split_first() {
diff --git a/basics/rent/pinocchio/program/src/lib.rs b/basics/rent/pinocchio/program/src/lib.rs
index b3883db55..e57f6923a 100644
--- a/basics/rent/pinocchio/program/src/lib.rs
+++ b/basics/rent/pinocchio/program/src/lib.rs
@@ -1,12 +1,11 @@
#![no_std]
use pinocchio::{
- account_info::AccountInfo,
- entrypoint, nostd_panic_handler,
- program_error::ProgramError,
- pubkey::Pubkey,
+ entrypoint,
+ error::ProgramError,
+ nostd_panic_handler,
sysvars::{rent::Rent, Sysvar},
- ProgramResult,
+ AccountView, Address, ProgramResult,
};
use pinocchio_log::log;
use pinocchio_system::instructions::CreateAccount;
@@ -15,8 +14,8 @@ entrypoint!(process_instruction);
nostd_panic_handler!();
fn process_instruction(
- program_id: &Pubkey,
- accounts: &[AccountInfo],
+ program_id: &Address,
+ accounts: &[AccountView],
instruction_data: &[u8],
) -> ProgramResult {
let [payer, new_account, _system_program] = accounts else {
@@ -25,14 +24,14 @@ fn process_instruction(
log!("Program invoked. Creating a system account...");
log!(" New public key will be: ");
- pinocchio::pubkey::log(new_account.key());
+ log!("{}", new_account.address().as_array());
let rent = Rent::get()?;
// Determine the necessary minimum rent by calculating the account's size
//
let account_span = instruction_data.len();
- let lamports_required = rent.minimum_balance(account_span);
+ let lamports_required = rent.try_minimum_balance(account_span)?;
log!(50, "Account span: {}", account_span);
log!(50, "Lamports required: {}", lamports_required);
diff --git a/basics/transfer-sol/pinocchio/program/src/lib.rs b/basics/transfer-sol/pinocchio/program/src/lib.rs
index 5b27c4f42..c3ed5d7f1 100644
--- a/basics/transfer-sol/pinocchio/program/src/lib.rs
+++ b/basics/transfer-sol/pinocchio/program/src/lib.rs
@@ -1,8 +1,7 @@
#![no_std]
use pinocchio::{
- account_info::AccountInfo, entrypoint, nostd_panic_handler, program_error::ProgramError,
- pubkey::Pubkey, ProgramResult,
+ entrypoint, error::ProgramError, nostd_panic_handler, AccountView, Address, ProgramResult,
};
use pinocchio_system::instructions::Transfer;
@@ -10,8 +9,8 @@ entrypoint!(process_instruction);
nostd_panic_handler!();
fn process_instruction(
- _program_id: &Pubkey,
- accounts: &[AccountInfo],
+ _program_id: &Address,
+ accounts: &[AccountView],
instruction_data: &[u8],
) -> ProgramResult {
match instruction_data.split_first() {
@@ -24,7 +23,7 @@ fn process_instruction(
pub const CPI_TRANSFER_DISCRIMINATOR: u8 = 0;
pub const PROGRAM_TRANSFER_DISCRIMINATOR: u8 = 1;
-fn transfer_sol_with_cpi(accounts: &[AccountInfo], instruction_data: &[u8]) -> ProgramResult {
+fn transfer_sol_with_cpi(accounts: &[AccountView], instruction_data: &[u8]) -> ProgramResult {
let [payer, recipient, _system_program] = accounts else {
return Err(ProgramError::NotEnoughAccountKeys);
};
@@ -44,7 +43,7 @@ fn transfer_sol_with_cpi(accounts: &[AccountInfo], instruction_data: &[u8]) -> P
Ok(())
}
-fn transfer_sol_with_program(accounts: &[AccountInfo], instruction_data: &[u8]) -> ProgramResult {
+fn transfer_sol_with_program(accounts: &[AccountView], instruction_data: &[u8]) -> ProgramResult {
let [payer, recipient] = accounts else {
return Err(ProgramError::NotEnoughAccountKeys);
};
@@ -54,8 +53,8 @@ fn transfer_sol_with_program(accounts: &[AccountInfo], instruction_data: &[u8])
.map_err(|_| ProgramError::InvalidInstructionData)?;
let amount = u64::from_le_bytes(amount_bytes);
- *payer.try_borrow_mut_lamports()? -= amount;
- *recipient.try_borrow_mut_lamports()? += amount;
+ payer.set_lamports(payer.lamports() - amount);
+ recipient.set_lamports(recipient.lamports() + amount);
Ok(())
}
From 48500a22202601e1d390c6b88021163e8a9ec66f Mon Sep 17 00:00:00 2001
From: Perelyn <64838956+Perelyn-sama@users.noreply.github.com>
Date: Sat, 24 Jan 2026 08:21:40 +0100
Subject: [PATCH 30/49] Feat: use litesvm in create account native ts test
(#511)
---
basics/create-account/native/package.json | 2 +-
basics/create-account/native/pnpm-lock.yaml | 179 ++++++++++++--------
basics/create-account/native/tests/test.ts | 63 +++++--
3 files changed, 158 insertions(+), 86 deletions(-)
diff --git a/basics/create-account/native/package.json b/basics/create-account/native/package.json
index 3cc45dbd5..cfbc95243 100644
--- a/basics/create-account/native/package.json
+++ b/basics/create-account/native/package.json
@@ -14,8 +14,8 @@
"@types/chai": "^4.3.1",
"@types/mocha": "^9.1.1",
"chai": "^4.3.4",
+ "litesvm": "^0.3.3",
"mocha": "^9.0.3",
- "solana-bankrun": "^0.3.0",
"ts-mocha": "^10.0.0",
"typescript": "^4.3.5"
}
diff --git a/basics/create-account/native/pnpm-lock.yaml b/basics/create-account/native/pnpm-lock.yaml
index 315de63a2..e995bc365 100644
--- a/basics/create-account/native/pnpm-lock.yaml
+++ b/basics/create-account/native/pnpm-lock.yaml
@@ -24,12 +24,12 @@ importers:
chai:
specifier: ^4.3.4
version: 4.5.0
+ litesvm:
+ specifier: ^0.3.3
+ version: 0.3.3(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
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)
@@ -77,6 +77,9 @@ packages:
'@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==}
@@ -149,6 +152,9 @@ packages:
base-x@3.0.11:
resolution: {integrity: sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==}
+ base-x@5.0.1:
+ resolution: {integrity: sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg==}
+
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
@@ -175,6 +181,9 @@ packages:
bs58@4.0.1:
resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==}
+ bs58@6.0.0:
+ resolution: {integrity: sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==}
+
buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
@@ -284,6 +293,9 @@ packages:
fast-stable-stringify@1.0.0:
resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
+ fastestsmallesttextencoderdecoder@1.0.22:
+ resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
+
fill-range@7.1.1:
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
engines: {node: '>=8'}
@@ -396,6 +408,40 @@ packages:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
+ litesvm-darwin-arm64@0.3.3:
+ resolution: {integrity: sha512-81YimsV3ezWjWLgoKixsXfVznaaecbURE3RtECgNb6Din6Za03pKGKGEN4gkyecHkv8uoPaEZv5cl6ARsgeN1Q==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [darwin]
+
+ litesvm-darwin-x64@0.3.3:
+ resolution: {integrity: sha512-pYietuU165Bl+2eDnVp2Eidiedfjt+pljyyBAfJPbYriaFyG577mU364NiNcsfQ8ZZWbe+ygIEAVq4Ol247+1g==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [darwin]
+
+ litesvm-linux-arm64-musl@0.3.3:
+ resolution: {integrity: sha512-mkI15rWtNbaJxVFUfh+qnolqnDCZEqhwSZo/XZ48TZNsQ69vAqY00KhyFhTVJ+jeaYCAZTSNamuFIiRBxqVmNg==}
+ engines: {node: '>= 20'}
+ cpu: [arm64]
+ os: [linux]
+
+ litesvm-linux-x64-gnu@0.3.3:
+ resolution: {integrity: sha512-Qai2/E8Eq03w8VKnJDREyiWxwavjykW/H6onE179ayMnBjVVmkj5fN7XF50VV4z73kasx5bpDzBNK8fcaxMdzA==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm-linux-x64-musl@0.3.3:
+ resolution: {integrity: sha512-bpWZ2f506hbfu1y6bkmuZf+qqtnLDxggpOMTQbibjd+q6faEO3sETWwKGlIgHB99P8wyU+aXKwLSGQX2sJEw6Q==}
+ engines: {node: '>= 20'}
+ cpu: [x64]
+ os: [linux]
+
+ litesvm@0.3.3:
+ resolution: {integrity: sha512-QHXjAIXzvG0uAMOza6aJcYl19yTKz3guwq/z0Zml4KnQxyQvPhjaBpUFc5sf2ey/NxMVdqFhoXmL02CXOOomjw==}
+ engines: {node: '>= 20'}
+
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -503,39 +549,6 @@ packages:
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==}
@@ -748,6 +761,29 @@ snapshots:
- typescript
- utf-8-validate
+ '@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.1
+ '@noble/curves': 1.9.1
+ '@noble/hashes': 1.8.0
+ '@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.1.1(typescript@4.9.5)
+ agentkeepalive: 4.6.0
+ 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
+ superstruct: 2.0.2
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
'@swc/helpers@0.5.17':
dependencies:
tslib: 2.8.1
@@ -814,6 +850,8 @@ snapshots:
dependencies:
safe-buffer: 5.2.1
+ base-x@5.0.1: {}
+
base64-js@1.5.1: {}
binary-extensions@2.3.0: {}
@@ -841,6 +879,10 @@ snapshots:
dependencies:
base-x: 3.0.11
+ bs58@6.0.0:
+ dependencies:
+ base-x: 5.0.1
+
buffer-from@1.1.2: {}
buffer@6.0.3:
@@ -942,6 +984,8 @@ snapshots:
fast-stable-stringify@1.0.0: {}
+ fastestsmallesttextencoderdecoder@1.0.22: {}
+
fill-range@7.1.1:
dependencies:
to-regex-range: 5.0.1
@@ -1047,6 +1091,38 @@ snapshots:
minimist: 1.2.8
optional: true
+ litesvm-darwin-arm64@0.3.3:
+ optional: true
+
+ litesvm-darwin-x64@0.3.3:
+ optional: true
+
+ litesvm-linux-arm64-musl@0.3.3:
+ optional: true
+
+ litesvm-linux-x64-gnu@0.3.3:
+ optional: true
+
+ litesvm-linux-x64-musl@0.3.3:
+ optional: true
+
+ litesvm@0.3.3(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10):
+ dependencies:
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ bs58: 6.0.0
+ fastestsmallesttextencoderdecoder: 1.0.22
+ optionalDependencies:
+ litesvm-darwin-arm64: 0.3.3
+ litesvm-darwin-x64: 0.3.3
+ litesvm-linux-arm64-musl: 0.3.3
+ litesvm-linux-x64-gnu: 0.3.3
+ litesvm-linux-x64-musl: 0.3.3
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1167,37 +1243,6 @@ snapshots:
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
diff --git a/basics/create-account/native/tests/test.ts b/basics/create-account/native/tests/test.ts
index 951aade69..91e2e6410 100644
--- a/basics/create-account/native/tests/test.ts
+++ b/basics/create-account/native/tests/test.ts
@@ -1,16 +1,35 @@
+import { readFileSync } from 'node:fs';
import { describe, test } from 'node:test';
import { Keypair, LAMPORTS_PER_SOL, PublicKey, SystemProgram, Transaction, TransactionInstruction } from '@solana/web3.js';
-import { start } from 'solana-bankrun';
+import { LiteSVM } from 'litesvm';
-describe('Create a system account', async () => {
- const PROGRAM_ID = PublicKey.unique();
- const context = await start([{ name: 'create_account_program', programId: PROGRAM_ID }], []);
- const client = context.banksClient;
- const payer = context.payer;
+describe('Create a system account', () => {
+ // Load the program keypair
+ const programKeypairPath = new URL(
+ './fixtures/create_account_program-keypair.json',
+ // @ts-ignore
+ import.meta.url,
+ ).pathname;
+ const programKeypairData = JSON.parse(readFileSync(programKeypairPath, 'utf-8'));
+ const programKeypair = Keypair.fromSecretKey(new Uint8Array(programKeypairData));
+ const PROGRAM_ID = programKeypair.publicKey;
- test('Create the account via a cross program invocation', async () => {
+ const litesvm = new LiteSVM();
+ const payer = Keypair.generate();
+
+ // Load the program
+ const programPath = new URL(
+ './fixtures/create_account_program.so',
+ // @ts-ignore
+ import.meta.url,
+ ).pathname;
+ litesvm.addProgramFromFile(PROGRAM_ID, programPath);
+
+ // Fund the payer account
+ litesvm.airdrop(payer.publicKey, BigInt(100 * LAMPORTS_PER_SOL));
+
+ test('Create the account via a cross program invocation', () => {
const newKeypair = Keypair.generate();
- const blockhash = context.lastBlockhash;
const ix = new TransactionInstruction({
keys: [
@@ -22,16 +41,20 @@ describe('Create a system account', async () => {
data: Buffer.alloc(0),
});
- const tx = new Transaction();
- tx.recentBlockhash = blockhash;
- tx.add(ix).sign(payer, newKeypair);
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = litesvm.latestBlockhash();
+ tx.sign(payer, newKeypair);
- await client.processTransaction(tx);
+ litesvm.sendTransaction(tx);
+
+ // Verify the account was created
+ const accountInfo = litesvm.getAccount(newKeypair.publicKey);
+ console.log(`Account with public key ${newKeypair.publicKey} successfully created via CPI`);
});
- test('Create the account via direct call to system program', async () => {
+ test('Create the account via direct call to system program', () => {
const newKeypair = Keypair.generate();
- const blockhash = context.lastBlockhash;
const ix = SystemProgram.createAccount({
fromPubkey: payer.publicKey,
@@ -41,11 +64,15 @@ describe('Create a system account', async () => {
programId: SystemProgram.programId,
});
- const tx = new Transaction();
- tx.recentBlockhash = blockhash;
- tx.add(ix).sign(payer, newKeypair);
+ const tx = new Transaction().add(ix);
+ tx.feePayer = payer.publicKey;
+ tx.recentBlockhash = litesvm.latestBlockhash();
+ tx.sign(payer, newKeypair);
+
+ litesvm.sendTransaction(tx);
- await client.processTransaction(tx);
+ // Verify the account was created
+ const accountInfo = litesvm.getAccount(newKeypair.publicKey);
console.log(`Account with public key ${newKeypair.publicKey} successfully created`);
});
});
From 7500cc74b6e0094d041e27fca8e64a685bd70047 Mon Sep 17 00:00:00 2001
From: Abdullateef1x <113116151+Abdullateef1x@users.noreply.github.com>
Date: Sat, 24 Jan 2026 18:20:06 +0100
Subject: [PATCH 31/49] docs: clarify pnpm as required package manager (#485)
* docs: clarify pnpm as required package manager
* docs: replace deprecated solana-bankrun with litesvm
---
README.md | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index a26a2974d..f724bb1d5 100644
--- a/README.md
+++ b/README.md
@@ -9,10 +9,20 @@ This repo contains Solana onchain programs (referred to as 'Smart Contracts' in
> [!NOTE]
> If you're new to Solana, you don't need to create your own programs to perform basic things like making accounts, creating tokens, sending tokens, or minting NFTs. These common tasks are handled with existing programs, for example the System Program (for making account or transferring SOL) or the token program (for creating tokens and NFTs). See the [Solana Developer site](https://solana.com/developers) to learn more.
+> ⚠️ This repository uses **pnpm** as the default package manager.
+> Ensure pnpm is installed before running any examples.
+
+
Each folder includes examples for one or more of the following:
-- `anchor` - Written using [Anchor](https://www.anchor-lang.com/), the most popular framework for Solana Development, which uses Rust. Use `anchor build && anchor deploy` to build & deploy the program. Run `anchor run test` to test it.
-- `native` - Written using Solana's native Rust crates and vanilla Rust. Use `cicd.sh` to build & deploy the program. Run `yarn run test` to test it.
+- `anchor` - Written using [Anchor](https://www.anchor-lang.com/), the most popular framework for Solana development, which uses Rust.
+ Use `anchor build` and `anchor deploy` to build and deploy the program.
+ Tests should be executed using `pnpm test` as defined in the `Anchor.toml` scripts section.
+
+- `native` - Written using Solana's native Rust crates and vanilla Rust.
+ Build and test commands are defined via pnpm scripts and use `litesvm` for testing.
+ Run `pnpm test` to execute tests.
+
**If a given example is missing, please send us a PR to add it!** Our aim is to have every example available in every option. We'd also love to see more programs involving staking, wrapped tokens, oracles, compression and VRF. Follow the [contributing guidelines](./CONTRIBUTING.md) to keep things consistent.
From 5f941cab2362920bef34e4f2c7fcef9b12dcfa6d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 30 Jan 2026 23:52:49 +0100
Subject: [PATCH 32/49] chore(deps): bump solana-rent from 3.0.0 to 3.1.0
(#518)
Bumps [solana-rent](https://github.com/anza-xyz/solana-sdk) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/anza-xyz/solana-sdk/releases)
- [Commits](https://github.com/anza-xyz/solana-sdk/compare/sdk@v3.0.0...cpi@v3.1.0)
---
updated-dependencies:
- dependency-name: solana-rent
dependency-version: 3.1.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Cargo.lock | 34 +++++++++----------
basics/counter/native/program/Cargo.toml | 2 +-
basics/counter/pinocchio/program/Cargo.toml | 2 +-
.../native/program/Cargo.toml | 2 +-
.../pinocchio/program/Cargo.toml | 2 +-
basics/rent/native/program/Cargo.toml | 2 +-
basics/rent/pinocchio/program/Cargo.toml | 2 +-
7 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index 252fc5ca5..36361781c 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1017,7 +1017,7 @@ dependencies = [
"solana-native-token 3.0.0",
"solana-program 3.0.0",
"solana-pubkey 3.0.0",
- "solana-rent 3.0.0",
+ "solana-rent 3.1.0",
"solana-system-interface 2.0.0",
"solana-transaction",
]
@@ -1034,7 +1034,7 @@ dependencies = [
"solana-keypair",
"solana-native-token 3.0.0",
"solana-pubkey 3.0.0",
- "solana-rent 3.0.0",
+ "solana-rent 3.1.0",
"solana-system-interface 2.0.0",
"solana-transaction",
]
@@ -1892,7 +1892,7 @@ dependencies = [
"solana-program-error 3.0.0",
"solana-program-runtime",
"solana-pubkey 3.0.0",
- "solana-rent 3.0.0",
+ "solana-rent 3.1.0",
"solana-sdk-ids 3.0.0",
"solana-sha256-hasher 3.0.0",
"solana-signature",
@@ -2410,7 +2410,7 @@ dependencies = [
"solana-native-token 3.0.0",
"solana-program 3.0.0",
"solana-pubkey 3.0.0",
- "solana-rent 3.0.0",
+ "solana-rent 3.1.0",
"solana-system-interface 2.0.0",
"solana-transaction",
]
@@ -2427,7 +2427,7 @@ dependencies = [
"solana-native-token 3.0.0",
"solana-program 3.0.0",
"solana-pubkey 3.0.0",
- "solana-rent 3.0.0",
+ "solana-rent 3.1.0",
"solana-system-interface 2.0.0",
"solana-transaction",
]
@@ -2443,7 +2443,7 @@ dependencies = [
"solana-keypair",
"solana-native-token 3.0.0",
"solana-pubkey 3.0.0",
- "solana-rent 3.0.0",
+ "solana-rent 3.1.0",
"solana-system-interface 2.0.0",
"solana-transaction",
]
@@ -2650,7 +2650,7 @@ dependencies = [
"solana-keypair",
"solana-native-token 3.0.0",
"solana-pubkey 3.0.0",
- "solana-rent 3.0.0",
+ "solana-rent 3.1.0",
"solana-system-interface 2.0.0",
"solana-transaction",
]
@@ -3673,7 +3673,7 @@ dependencies = [
"solana-keypair",
"solana-poh-config",
"solana-pubkey 3.0.0",
- "solana-rent 3.0.0",
+ "solana-rent 3.1.0",
"solana-sdk-ids 3.0.0",
"solana-sha256-hasher 3.0.0",
"solana-shred-version",
@@ -4305,7 +4305,7 @@ dependencies = [
"solana-program-option 3.0.0",
"solana-program-pack 3.0.0",
"solana-pubkey 3.0.0",
- "solana-rent 3.0.0",
+ "solana-rent 3.1.0",
"solana-sdk-ids 3.0.0",
"solana-secp256k1-recover 3.0.0",
"solana-serde-varint 3.0.0",
@@ -4442,7 +4442,7 @@ dependencies = [
"solana-last-restart-slot 3.0.0",
"solana-program-entrypoint 3.1.0",
"solana-pubkey 3.0.0",
- "solana-rent 3.0.0",
+ "solana-rent 3.1.0",
"solana-sbpf",
"solana-sdk-ids 3.0.0",
"solana-slot-hashes 3.0.0",
@@ -4511,9 +4511,9 @@ dependencies = [
[[package]]
name = "solana-rent"
-version = "3.0.0"
+version = "3.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b702d8c43711e3c8a9284a4f1bbc6a3de2553deb25b0c8142f9a44ef0ce5ddc1"
+checksum = "e860d5499a705369778647e97d760f7670adfb6fc8419dd3d568deccd46d5487"
dependencies = [
"serde",
"serde_derive",
@@ -4956,7 +4956,7 @@ dependencies = [
"solana-packet",
"solana-program-runtime",
"solana-pubkey 3.0.0",
- "solana-rent 3.0.0",
+ "solana-rent 3.1.0",
"solana-sdk-ids 3.0.0",
"solana-stake-interface 2.0.1",
"solana-svm-log-collector",
@@ -5154,7 +5154,7 @@ dependencies = [
"solana-program-error 3.0.0",
"solana-program-memory 3.0.0",
"solana-pubkey 3.0.0",
- "solana-rent 3.0.0",
+ "solana-rent 3.1.0",
"solana-sdk-ids 3.0.0",
"solana-sdk-macro 3.0.0",
"solana-slot-hashes 3.0.0",
@@ -5223,7 +5223,7 @@ dependencies = [
"solana-instruction 3.0.0",
"solana-instructions-sysvar 3.0.0",
"solana-pubkey 3.0.0",
- "solana-rent 3.0.0",
+ "solana-rent 3.1.0",
"solana-sbpf",
"solana-sdk-ids 3.0.0",
]
@@ -5292,7 +5292,7 @@ dependencies = [
"solana-instruction 3.0.0",
"solana-instruction-error",
"solana-pubkey 3.0.0",
- "solana-rent 3.0.0",
+ "solana-rent 3.1.0",
"solana-sdk-ids 3.0.0",
"solana-serde-varint 3.0.0",
"solana-serialize-utils 3.1.0",
@@ -5323,7 +5323,7 @@ dependencies = [
"solana-packet",
"solana-program-runtime",
"solana-pubkey 3.0.0",
- "solana-rent 3.0.0",
+ "solana-rent 3.1.0",
"solana-sdk-ids 3.0.0",
"solana-signer",
"solana-slot-hashes 3.0.0",
diff --git a/basics/counter/native/program/Cargo.toml b/basics/counter/native/program/Cargo.toml
index 5a4d4051c..48521177e 100644
--- a/basics/counter/native/program/Cargo.toml
+++ b/basics/counter/native/program/Cargo.toml
@@ -28,5 +28,5 @@ solana-keypair = "3.0.1"
solana-native-token = "3.0.0"
solana-pubkey = "3.0.0"
solana-transaction = "3.0.1"
-solana-rent = "3.0.0"
+solana-rent = "3.1.0"
solana-system-interface.workspace = true
diff --git a/basics/counter/pinocchio/program/Cargo.toml b/basics/counter/pinocchio/program/Cargo.toml
index 28257f62a..31ad2accb 100644
--- a/basics/counter/pinocchio/program/Cargo.toml
+++ b/basics/counter/pinocchio/program/Cargo.toml
@@ -28,5 +28,5 @@ solana-keypair = "3.0.1"
solana-native-token = "3.0.0"
solana-pubkey = "3.0.0"
solana-transaction = "3.0.1"
-solana-rent = "3.0.0"
+solana-rent = "3.1.0"
solana-system-interface.workspace = true
diff --git a/basics/program-derived-addresses/native/program/Cargo.toml b/basics/program-derived-addresses/native/program/Cargo.toml
index 41e42c0ad..7459e92f0 100644
--- a/basics/program-derived-addresses/native/program/Cargo.toml
+++ b/basics/program-derived-addresses/native/program/Cargo.toml
@@ -26,4 +26,4 @@ solana-keypair = "3.0.1"
solana-pubkey = "3.0.0"
solana-transaction = "3.0.1"
solana-native-token = "3.0.0"
-solana-rent = "3.0.0"
+solana-rent = "3.1.0"
diff --git a/basics/program-derived-addresses/pinocchio/program/Cargo.toml b/basics/program-derived-addresses/pinocchio/program/Cargo.toml
index b3e69c8e1..4706d4e2d 100644
--- a/basics/program-derived-addresses/pinocchio/program/Cargo.toml
+++ b/basics/program-derived-addresses/pinocchio/program/Cargo.toml
@@ -25,5 +25,5 @@ solana-keypair = "3.0.1"
solana-pubkey = "3.0.0"
solana-transaction = "3.0.1"
solana-native-token = "3.0.0"
-solana-rent = "3.0.0"
+solana-rent = "3.1.0"
solana-system-interface.workspace = true
diff --git a/basics/rent/native/program/Cargo.toml b/basics/rent/native/program/Cargo.toml
index 034c693a7..b9e7c7845 100644
--- a/basics/rent/native/program/Cargo.toml
+++ b/basics/rent/native/program/Cargo.toml
@@ -25,5 +25,5 @@ solana-instruction = "3.0.0"
solana-keypair = "3.0.1"
solana-native-token = "3.0.0"
solana-pubkey = "3.0.0"
-solana-rent = "3.0.0"
+solana-rent = "3.1.0"
solana-transaction = "3.0.1"
diff --git a/basics/rent/pinocchio/program/Cargo.toml b/basics/rent/pinocchio/program/Cargo.toml
index 53a3f7ab3..c629d8ee1 100644
--- a/basics/rent/pinocchio/program/Cargo.toml
+++ b/basics/rent/pinocchio/program/Cargo.toml
@@ -24,6 +24,6 @@ solana-instruction = "3.0.0"
solana-keypair = "3.0.1"
solana-native-token = "3.0.0"
solana-pubkey = "3.0.0"
-solana-rent = "3.0.0"
+solana-rent = "3.1.0"
solana-transaction = "3.0.1"
solana-system-interface .workspace = true
From 03c9b75d82e4514cc5031621e5b1cfdd036eaf42 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 30 Jan 2026 23:56:24 +0100
Subject: [PATCH 33/49] chore(deps): bump shank from 0.0.8 to 0.4.6 (#499)
Bumps [shank](https://github.com/metaplex-foundation/shank) from 0.0.8 to 0.4.6.
- [Changelog](https://github.com/metaplex-foundation/shank/blob/master/release.toml)
- [Commits](https://github.com/metaplex-foundation/shank/compare/shank@v0.0.8...shank@v0.4.6)
---
updated-dependencies:
- dependency-name: shank
dependency-version: 0.4.6
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Cargo.lock | 24 ++++++++++++++++++------
basics/counter/mpl-stack/Cargo.toml | 2 +-
2 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index 36361781c..8a754cb0c 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2866,30 +2866,31 @@ dependencies = [
[[package]]
name = "shank"
-version = "0.0.8"
+version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2935c06d5a141ad2854622a014e30c5eeaa40096667df6bdd682dba9f8f81819"
+checksum = "ae936f51a1ab23dd7f8a81b0b13ab4af3fc71f1c56438a07cb54a0f7eb5436fd"
dependencies = [
"shank_macro",
]
[[package]]
name = "shank_macro"
-version = "0.0.8"
+version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ab8a1eb550845e36c88007f4c00175eeeb436d2fc6c70d05207a338cba7519f"
+checksum = "db4463f65133e69fe6c69d5c30e9cc6d2bde50e0fac61db1c2fb6a43fc499b67"
dependencies = [
"proc-macro2",
"quote",
"shank_macro_impl",
+ "shank_render",
"syn 1.0.109",
]
[[package]]
name = "shank_macro_impl"
-version = "0.0.8"
+version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23ec51b35f2336faaeff44daf8952ddee4fe3e3693a313804ae7366f18a9967d"
+checksum = "d7c08958b4ba24f8289481c0d8b377c63a8205fc037b59fc80643c491ec1f487"
dependencies = [
"anyhow",
"proc-macro2",
@@ -2898,6 +2899,17 @@ dependencies = [
"syn 1.0.109",
]
+[[package]]
+name = "shank_render"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ed873b8e62792442e944dc94c4ebbfab63e5c46eac09b7dcf3a2e274dde1524"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "shank_macro_impl",
+]
+
[[package]]
name = "shlex"
version = "1.3.0"
diff --git a/basics/counter/mpl-stack/Cargo.toml b/basics/counter/mpl-stack/Cargo.toml
index c33d48a9b..a5ee97f7a 100644
--- a/basics/counter/mpl-stack/Cargo.toml
+++ b/basics/counter/mpl-stack/Cargo.toml
@@ -15,7 +15,7 @@ custom-panic = []
[dependencies]
borsh = "0.9"
-shank = "0.0.8"
+shank = "0.4.6"
solana-program = "2.1"
[lints.rust]
From 12790a03575bf2af482fe696a08b10241c776c54 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 9 Feb 2026 16:00:55 +0100
Subject: [PATCH 34/49] chore(deps): bump shank from 0.4.6 to 0.4.7 (#528)
Bumps [shank](https://github.com/metaplex-foundation/shank) from 0.4.6 to 0.4.7.
- [Changelog](https://github.com/metaplex-foundation/shank/blob/master/release.toml)
- [Commits](https://github.com/metaplex-foundation/shank/compare/shank@v0.4.6...shank@v0.4.7)
---
updated-dependencies:
- dependency-name: shank
dependency-version: 0.4.7
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Cargo.lock | 16 ++++++++--------
basics/counter/mpl-stack/Cargo.toml | 2 +-
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index 8a754cb0c..dcda52f5b 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2866,18 +2866,18 @@ dependencies = [
[[package]]
name = "shank"
-version = "0.4.6"
+version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae936f51a1ab23dd7f8a81b0b13ab4af3fc71f1c56438a07cb54a0f7eb5436fd"
+checksum = "627209e7d8985baf8de0d7af53e1cf75abce14f323f212e754e74aeed110bd65"
dependencies = [
"shank_macro",
]
[[package]]
name = "shank_macro"
-version = "0.4.6"
+version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db4463f65133e69fe6c69d5c30e9cc6d2bde50e0fac61db1c2fb6a43fc499b67"
+checksum = "881f4fa31d60102c7960418d4739f16562a350ace6d51bdb8da55cd66dcd9a5b"
dependencies = [
"proc-macro2",
"quote",
@@ -2888,9 +2888,9 @@ dependencies = [
[[package]]
name = "shank_macro_impl"
-version = "0.4.6"
+version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7c08958b4ba24f8289481c0d8b377c63a8205fc037b59fc80643c491ec1f487"
+checksum = "aab0b29f9717ebb2430ef424627e0fc234c832363955cbac2997c2973743990d"
dependencies = [
"anyhow",
"proc-macro2",
@@ -2901,9 +2901,9 @@ dependencies = [
[[package]]
name = "shank_render"
-version = "0.4.6"
+version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ed873b8e62792442e944dc94c4ebbfab63e5c46eac09b7dcf3a2e274dde1524"
+checksum = "6ccd3198c738fe7e087e7ab45252575ce344577ec0f8011599cf00bcffedfb3c"
dependencies = [
"proc-macro2",
"quote",
diff --git a/basics/counter/mpl-stack/Cargo.toml b/basics/counter/mpl-stack/Cargo.toml
index a5ee97f7a..917aaeebc 100644
--- a/basics/counter/mpl-stack/Cargo.toml
+++ b/basics/counter/mpl-stack/Cargo.toml
@@ -15,7 +15,7 @@ custom-panic = []
[dependencies]
borsh = "0.9"
-shank = "0.4.6"
+shank = "0.4.7"
solana-program = "2.1"
[lints.rust]
From 4babc04f7bb94b5b3f45bc9c9da42aa7d275b785 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 9 Feb 2026 16:01:51 +0100
Subject: [PATCH 35/49] chore(deps): bump pinocchio from 0.10.1 to 0.10.2
(#529)
Bumps [pinocchio](https://github.com/anza-xyz/pinocchio) from 0.10.1 to 0.10.2.
- [Release notes](https://github.com/anza-xyz/pinocchio/releases)
- [Commits](https://github.com/anza-xyz/pinocchio/compare/pinocchio@v0.10.1...pinocchio@v0.10.2)
---
updated-dependencies:
- dependency-name: pinocchio
dependency-version: 0.10.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Cargo.lock | 32 ++++++++++++++++----------------
Cargo.toml | 2 +-
2 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index dcda52f5b..14efc8bc6 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -31,7 +31,7 @@ name = "account-data-pinocchio-program"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio 0.10.1",
+ "pinocchio 0.10.2",
"pinocchio-log",
"pinocchio-system",
"solana-keypair",
@@ -879,7 +879,7 @@ name = "checking-accounts-pinocchio-program"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio 0.10.1",
+ "pinocchio 0.10.2",
"pinocchio-log",
"pinocchio-system",
"solana-keypair",
@@ -930,7 +930,7 @@ name = "close-account-pinocchio-program"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio 0.10.1",
+ "pinocchio 0.10.2",
"pinocchio-log",
"pinocchio-pubkey",
"pinocchio-system",
@@ -1027,7 +1027,7 @@ name = "counter-solana-pinocchio"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio 0.10.1",
+ "pinocchio 0.10.2",
"pinocchio-log",
"pinocchio-pubkey",
"solana-instruction 3.0.0",
@@ -1060,7 +1060,7 @@ name = "create-account-pinocchio-program"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio 0.10.1",
+ "pinocchio 0.10.2",
"pinocchio-log",
"pinocchio-pubkey",
"pinocchio-system",
@@ -1418,7 +1418,7 @@ name = "favorites-pinocchio"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio 0.10.1",
+ "pinocchio 0.10.2",
"pinocchio-log",
"pinocchio-pubkey",
"pinocchio-system",
@@ -1646,7 +1646,7 @@ dependencies = [
name = "hello-solana-program-pinocchio"
version = "0.1.0"
dependencies = [
- "pinocchio 0.10.1",
+ "pinocchio 0.10.2",
"pinocchio-log",
]
@@ -2195,7 +2195,7 @@ name = "pda-rent-payer-pinocchio-program"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio 0.10.1",
+ "pinocchio 0.10.2",
"pinocchio-log",
"pinocchio-pubkey",
"pinocchio-system",
@@ -2246,9 +2246,9 @@ checksum = "5b971851087bc3699b001954ad02389d50c41405ece3548cbcafc88b3e20017a"
[[package]]
name = "pinocchio"
-version = "0.10.1"
+version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dfad955b2fe8f736e1ea276ebb31820d778ee69c1161146054e9b31be2e73326"
+checksum = "c06810dac15a4ef83d3dabdb4f2f22fb39c9adff669cd2781da4f716510a647c"
dependencies = [
"solana-account-view",
"solana-address 2.0.0",
@@ -2294,7 +2294,7 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24044a0815753862b558e179e78f03f7344cb755de48617a09d7d23b50883b6c"
dependencies = [
- "pinocchio 0.10.1",
+ "pinocchio 0.10.2",
"solana-address 2.0.0",
]
@@ -2374,7 +2374,7 @@ name = "processing-instructions-pinocchio-program"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio 0.10.1",
+ "pinocchio 0.10.2",
"pinocchio-log",
"solana-instruction 3.0.0",
"solana-keypair",
@@ -2437,7 +2437,7 @@ name = "program-derived-addresses-pinocchio-program"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio 0.10.1",
+ "pinocchio 0.10.2",
"pinocchio-system",
"solana-instruction 3.0.0",
"solana-keypair",
@@ -2566,7 +2566,7 @@ name = "realloc-pinocchio-program"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio 0.10.1",
+ "pinocchio 0.10.2",
"pinocchio-log",
"pinocchio-system",
"solana-instruction 3.0.0",
@@ -2643,7 +2643,7 @@ name = "rent_pinocchio_program"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio 0.10.1",
+ "pinocchio 0.10.2",
"pinocchio-log",
"pinocchio-system",
"solana-instruction 3.0.0",
@@ -5868,7 +5868,7 @@ name = "transfer-sol-pinocchio-program"
version = "0.1.0"
dependencies = [
"litesvm",
- "pinocchio 0.10.1",
+ "pinocchio 0.10.2",
"pinocchio-system",
"solana-instruction 3.0.0",
"solana-keypair",
diff --git a/Cargo.toml b/Cargo.toml
index 413032468..66c8b33cb 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -77,7 +77,7 @@ spl-associated-token-account-interface = "2.0.0"
spl-token-2022-interface = "2.0.0"
# pinocchio
-pinocchio = { version = "0.10.1", features = ["cpi"] }
+pinocchio = { version = "0.10.2", features = ["cpi"] }
pinocchio-log = "0.5.1"
pinocchio-system = "0.5.0"
pinocchio-pubkey = "0.3.0"
From 0a207940c7b287108f60b6edcd5119e426b30faa Mon Sep 17 00:00:00 2001
From: Mike MacCana
Date: Sun, 15 Feb 2026 22:36:15 +0000
Subject: [PATCH 36/49] fix: fix all broken builds and tests across the repo
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Native tests (16/16 passing):
- counter/native & escrow/native: add bn.js as explicit dependency.
pnpm's strict dependency resolution does not hoist transitive deps
(unlike npm), so bn.js from @solana/web3.js is not accessible directly.
- All native tests using borsh: migrate from borsh v0.7 class-based API
to borsh v2 object schema API. The v0.7 API (Map schemas, Assignable
classes, 3-arg deserialize) is incompatible with borsh v1+. Updated 19
test files and 14 package.json files. Introduced a shared
borshSerialize(schema, data) helper to replace the repeated
Buffer.from(borsh.serialize(...)) pattern. Removed per-schema typed
wrappers in favour of exporting schemas directly.
- create-account/native: replace litesvm with solana-bankrun. litesvm's
native binary crashes with SIGABRT on Linux x64
(https://github.com/LiteSVM/litesvm/issues/171). This was the only
native test using litesvm — all others use solana-bankrun, the
recommended framework per CONTRIBUTING.md.
- Upgrade TypeScript 4.x to 5.x in 10 token projects. TS4 can't parse
@solana/codecs-data-structures type definitions. Also fix
Keypair.fromSecretKey(Buffer.from(...)) to use Uint8Array.from() for
TS5 compatibility.
Anchor builds (39/39 passing):
- Set solana_version = "3.1.8" in all 49 Anchor.toml files. Anchor's
default BPF toolchain ships rustc 1.79, but anchor-lang 0.32.1's
dependency tree requires rustc 1.82+ (indexmap 2.13.0) and Cargo's
edition2024 feature. Solana 3.1.8 platform-tools v1.52 (rustc 1.89)
resolves both. All projects now use a consistent toolchain version.
- allow-block-list-token: bump spl-transfer-hook-interface 0.8.2 -> 2.1.0,
spl-tlv-account-resolution 0.8.1 -> 0.11.1, spl-discriminator 0.3 -> 0.5.1.
Old SPL versions used solana-program v1, causing type mismatches with
anchor-lang 0.32.1's v2 types. litesvm Rust test moved to tests-rs/
because litesvm pins solana-account-info =2.2.1 but anchor-lang 0.32.1
needs >=2.3.0 for AccountInfo::resize(). See tests-rs/README.md.
Compression projects (3/3 building):
- Rewrite cnft-burn, cnft-vault, cutils from anchor-lang 0.26.0 to 0.32.1.
Upgrade to mpl-bubblegum 2.1.1 + spl-account-compression 1.0.0 (both
use solana-program v2, matching anchor-lang 0.32.1). cnft-vault: manual
invoke_signed rewritten to TransferCpi. cutils verify: raw invoke because
spl-account-compression 1.0.0's CPI module is built against anchor-lang
0.31, which has incompatible traits with 0.32.1. Discriminator computed
from sha256("global:verify_leaf") rather than hardcoded. Comment
documents when this workaround can be removed.
Documentation:
- README: remove TypeScript/Poseidon references (none exist in repo),
Anchor before Native in badges, fix typos.
- CONTRIBUTING: remove Steel/Python/Solidity/Poseidon references (none
exist in repo), fix markdown, renumber sections.
---
CONTRIBUTING.md | 56 +-
README.md | 10 +-
basics/account-data/anchor/Anchor.toml | 3 +
basics/account-data/native/package.json | 3 +-
basics/account-data/native/pnpm-lock.yaml | 10 +
basics/account-data/native/tests/test.ts | 54 +-
basics/checking-accounts/anchor/Anchor.toml | 3 +
basics/close-account/anchor/Anchor.toml | 3 +
basics/close-account/native/pnpm-lock.yaml | 2 +
basics/counter/anchor/Anchor.toml | 3 +
basics/counter/native/package.json | 3 +-
basics/counter/native/pnpm-lock.yaml | 15 +-
basics/create-account/anchor/Anchor.toml | 3 +
basics/create-account/native/package.json | 2 +-
basics/create-account/native/pnpm-lock.yaml | 155 +-
basics/create-account/native/tests/test.ts | 67 +-
.../anchor/Anchor.toml | 1 +
.../native/package.json | 2 +-
.../native/pnpm-lock.yaml | 9 +-
.../native/tests/test.ts | 31 +-
basics/favorites/anchor/Anchor.toml | 1 +
basics/favorites/native/tests/test.ts | 87 +-
basics/hello-solana/anchor/Anchor.toml | 3 +
basics/pda-rent-payer/anchor/Anchor.toml | 3 +
basics/pda-rent-payer/native/package.json | 3 +-
basics/pda-rent-payer/native/pnpm-lock.yaml | 10 +
basics/pda-rent-payer/native/tests/test.ts | 60 +-
.../anchor/Anchor.toml | 3 +
.../native/package.json | 3 +-
.../native/pnpm-lock.yaml | 10 +
.../native/tests/test.ts | 49 +-
.../anchor/Anchor.toml | 3 +
.../native/package.json | 3 +-
.../native/pnpm-lock.yaml | 10 +
.../native/tests/test.ts | 63 +-
basics/realloc/anchor/Anchor.toml | 3 +
basics/rent/anchor/Anchor.toml | 3 +
basics/rent/native/package.json | 2 +-
basics/rent/native/pnpm-lock.yaml | 11 +-
basics/rent/native/tests/test.ts | 40 +-
basics/rent/pinocchio/package.json | 2 +-
basics/rent/pinocchio/pnpm-lock.yaml | 11 +-
basics/repository-layout/anchor/Anchor.toml | 3 +
basics/repository-layout/native/package.json | 3 +-
.../repository-layout/native/pnpm-lock.yaml | 10 +
basics/repository-layout/native/tests/test.ts | 144 +-
basics/transfer-sol/anchor/Anchor.toml | 3 +
basics/transfer-sol/native/package.json | 1 +
basics/transfer-sol/native/pnpm-lock.yaml | 10 +
.../transfer-sol/native/tests/instruction.ts | 57 +-
compression/cnft-burn/anchor/Anchor.toml | 5 +-
.../anchor/programs/cnft-burn/Cargo.toml | 4 +-
.../anchor/programs/cnft-burn/src/lib.rs | 2 +-
compression/cnft-vault/anchor/Anchor.toml | 10 +-
.../anchor/programs/cnft-vault/Cargo.toml | 13 +-
.../anchor/programs/cnft-vault/src/lib.rs | 288 ++-
compression/cutils/anchor/Anchor.toml | 8 +-
compression/cutils/anchor/Cargo.toml | 9 +
.../cutils/anchor/programs/cutils/Cargo.toml | 19 +-
.../programs/cutils/src/actions/mint.rs | 154 +-
.../programs/cutils/src/actions/verify.rs | 68 +-
.../cutils/anchor/programs/cutils/src/lib.rs | 10 +-
oracles/pyth/anchor/Anchor.toml | 1 +
tokens/create-token/anchor/Anchor.toml | 1 +
tokens/create-token/native/package.json | 4 +-
tokens/create-token/native/pnpm-lock.yaml | 145 +-
tokens/create-token/native/tests/test.ts | 47 +-
tokens/escrow/anchor/Anchor.toml | 1 +
tokens/escrow/native/package.json | 5 +-
tokens/escrow/native/pnpm-lock.yaml | 24 +-
tokens/escrow/native/tests/account.ts | 77 +-
tokens/escrow/native/tests/instruction.ts | 190 +-
tokens/escrow/native/tests/test.ts | 5 +-
.../anchor/Anchor.toml | 3 +
tokens/nft-minter/anchor/Anchor.toml | 1 +
tokens/nft-minter/native/package.json | 4 +-
tokens/nft-minter/native/pnpm-lock.yaml | 1881 +++++++++++++++++
.../nft-minter/native/tests/instructions.ts | 52 +-
tokens/nft-minter/native/tests/test.ts | 12 +-
tokens/nft-operations/anchor/Anchor.toml | 1 +
tokens/pda-mint-authority/anchor/Anchor.toml | 1 +
tokens/pda-mint-authority/native/package.json | 4 +-
.../pda-mint-authority/native/pnpm-lock.yaml | 23 +-
.../native/tests/instructions.ts | 67 +-
.../pda-mint-authority/native/tests/test.ts | 16 +-
tokens/spl-token-minter/anchor/Anchor.toml | 1 +
tokens/spl-token-minter/native/package.json | 4 +-
tokens/spl-token-minter/native/pnpm-lock.yaml | 1881 +++++++++++++++++
.../native/tests/instructions.ts | 60 +-
tokens/spl-token-minter/native/tests/test.ts | 12 +-
tokens/token-2022/basics/anchor/Anchor.toml | 3 +
.../token-2022/cpi-guard/anchor/Anchor.toml | 1 +
.../default-account-state/anchor/Anchor.toml | 1 +
.../default-account-state/native/package.json | 4 +-
.../native/pnpm-lock.yaml | 23 +-
.../native/tests/test.ts | 28 +-
tokens/token-2022/group/anchor/Anchor.toml | 1 +
.../immutable-owner/anchor/Anchor.toml | 1 +
.../interest-bearing/anchor/Anchor.toml | 1 +
.../memo-transfer/anchor/Anchor.toml | 1 +
tokens/token-2022/metadata/anchor/Anchor.toml | 1 +
.../mint-close-authority/anchor/Anchor.toml | 1 +
.../mint-close-authority/native/package.json | 4 +-
.../native/pnpm-lock.yaml | 23 +-
.../mint-close-authority/native/tests/test.ts | 28 +-
.../multiple-extensions/native/package.json | 4 +-
.../multiple-extensions/native/pnpm-lock.yaml | 23 +-
.../multiple-extensions/native/tests/test.ts | 28 +-
.../anchor-example/anchor/Anchor.toml | 3 +
.../non-transferable/anchor/Anchor.toml | 1 +
.../non-transferable/native/package.json | 4 +-
.../non-transferable/native/pnpm-lock.yaml | 23 +-
.../non-transferable/native/tests/test.ts | 28 +-
.../permanent-delegate/anchor/Anchor.toml | 1 +
.../transfer-fee/anchor/Anchor.toml | 1 +
.../transfer-fee/native/package.json | 4 +-
.../transfer-fee/native/pnpm-lock.yaml | 23 +-
.../transfer-fee/native/tests/test.ts | 28 +-
.../account-data-as-seed/anchor/Anchor.toml | 2 +-
.../allow-block-list-token/anchor/Anchor.toml | 1 +
.../anchor/programs/abl-token/Cargo.toml | 19 +-
.../src/instructions/attach_to_mint.rs | 3 +-
.../abl-token/src/instructions/init_mint.rs | 3 +-
.../anchor/programs/abl-token/src/utils.rs | 4 +-
.../anchor/tests-rs/README.md | 26 +
.../abl-token/tests => tests-rs}/test.rs | 6 +
.../transfer-hook/counter/anchor/Anchor.toml | 2 +-
.../hello-world/anchor/Anchor.toml | 1 +
.../transfer-cost/anchor/Anchor.toml | 1 +
.../transfer-switch/anchor/Anchor.toml | 1 +
.../whitelist/anchor/Anchor.toml | 1 +
tokens/token-fundraiser/anchor/Anchor.toml | 1 +
tokens/token-swap/anchor/Anchor.toml | 1 +
tokens/transfer-tokens/anchor/Anchor.toml | 1 +
tokens/transfer-tokens/native/package.json | 4 +-
tokens/transfer-tokens/native/pnpm-lock.yaml | 1881 +++++++++++++++++
.../native/tests/instructions.ts | 100 +-
tokens/transfer-tokens/native/tests/test.ts | 28 +-
138 files changed, 6857 insertions(+), 1683 deletions(-)
create mode 100644 tokens/nft-minter/native/pnpm-lock.yaml
create mode 100644 tokens/spl-token-minter/native/pnpm-lock.yaml
create mode 100644 tokens/token-2022/transfer-hook/allow-block-list-token/anchor/tests-rs/README.md
rename tokens/token-2022/transfer-hook/allow-block-list-token/anchor/{programs/abl-token/tests => tests-rs}/test.rs (89%)
create mode 100644 tokens/transfer-tokens/native/pnpm-lock.yaml
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 1edae2936..7c401b4ba 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -10,7 +10,7 @@ To ensure a smooth and effective contribution process, please take a moment to r
We welcome contributions in the form of code, documentation, bug reports, feature requests, and other forms of feedback. Here are some ways you can contribute:
-- **Code Contributions:** You can contribute code examples in Rust, Python, or Solidity that demonstrate various Solana program functionalities. You can also contribute improvements to existing examples, such as bug fixes, optimizations, or additional features.
+- **Code Contributions:** You can contribute code examples in Rust that demonstrate various Solana program functionalities. You can also contribute improvements to existing examples, such as bug fixes, optimizations, or additional features.
- **Bug Reports, Ideas or Feedback:** If you encounter any issues or have ideas for new examples, please submit a bug report or feature request. Your feedback is valuable and helps us improve the quality and relevance of the examples.
@@ -22,40 +22,13 @@ Specifically for code in this repo:
1. Use pnpm as the default package manager for the project. You can [install pnpm by following the instructions](https://pnpm.io/installation). Commit `pnpm-lock.yaml` to the repository.
-2. Solana Programs written for Anchor framework should be in directory (`anchor`)[https://www.anchor-lang.com], Solana Native in (`native`)[https://solana.com/developers/guides/getstarted/intro-to-native-rust], Steel Framework in (`steel`)[https://github.com/regolith-labs/steel], TypeScript in (`poseidon`)[https://github.com/Turbin3/poseidon], respectively.
+2. Solana Programs written for the Anchor framework should be in directory [`anchor`](https://www.anchor-lang.com), Solana Native in [`native`](https://solana.com/developers/guides/getstarted/intro-to-native-rust), respectively.
- Project path structure: `/program-examples/category/example-name/`
- Project path structure example for anchor: `/program-examples/category/example-name/anchor`
-3. Tests for Solana native programs, steel framework programs, and Anchor should be written with [solana-bankrun](https://kevinheavey.github.io/solana-bankrun)
+3. Tests for Anchor and Solana native programs should be written with [solana-bankrun](https://kevinheavey.github.io/solana-bankrun).
-4. Steel framework programs must be organized as a Cargo workspace with separate projects for API and program:
- - Project path structure: `/program-examples/category/example-name/steel`
- - Initialise project using `steel new `
- - Must be a Cargo workspace with two separate projects:
- - `api`: Contains API-related code
- - `program`: Contains the program implementation
- - Steel projects should NOT be added in the root [`Cargo.toml` file](https://github.com/solana-developers/program-examples/blob/main/Cargo.toml)
-
- This structure ensures proper organization and separation of concerns.
-
-5. For Steel framework programs:
- - Steel CLI is the recommended way to build and test programs:
- ```bash
- # Install Steel CLI (one-time setup)
- cargo install steel-cli
-
- # Create a new Steel project
- steel new
-
- # Build the program
- steel build
-
- # Run tests
- steel test
- ```
- - Alternatively, you can use package.json scripts if you need custom build/test configurations as Solana native one described below.
-
-6. For Solana native programs ensure adding these mandatory pnpm run scripts to your `package.json` file for successful CI/CD builds:
+4. For Solana native programs ensure adding these mandatory pnpm run scripts to your `package.json` file for successful CI/CD builds:
```json
"scripts": {
@@ -66,35 +39,22 @@ Specifically for code in this repo:
},
```
-Alternatively, You can add `steel test` and `steel build` as commands according to your project.
-
-"scripts": {
- "test": "steel test",
- "build-and-test": "steel build && steel test",
- "build": "steel build",
- "deploy": "solana program deploy ./program/target/so/program.so"
-},
-
-7. Test command for Anchor should execute `pnpm test` instead of `yarn run test` for anchor programs. Replace `yarn` with `pnpm` in `[script]` table inside [Anchor.toml file.](https://www.anchor-lang.com/docs/manifest#scripts-required-for-testing)
+5. Test command for Anchor should execute `pnpm test` instead of `yarn run test` for anchor programs. Replace `yarn` with `pnpm` in `[script]` table inside [Anchor.toml file.](https://www.anchor-lang.com/docs/manifest#scripts-required-for-testing)
```
[scripts]
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
```
-8. TypeScript, JavaScript and JSON files are formatted and linted using
+6. TypeScript, JavaScript and JSON files are formatted and linted using
[Biome](https://biomejs.dev/). Execute the following command to format and lint your code at the root of this project before submitting a pull request:
-8. Some projects can be ignored from the building and testing process by adding the project name to the `.ghaignore` file.
-When removing or updating an example, please ensure that the example is removed from the `.ghaignore` file
-and there's a change in that example's directory.
-
```bash
pnpm fix
```
-9. Some projects can be ignored from the building and testing process by adding the project name to the `.gitignore` file.
-When removing or updating an example, please ensure that the example is removed from the `.gitignore` file
+7. Some projects can be ignored from the building and testing process by adding the project name to the `.ghaignore` file.
+When removing or updating an example, please ensure that the example is removed from the `.ghaignore` file
and there's a change in that example's directory.
## Code of Conduct
diff --git a/README.md b/README.md
index f724bb1d5..e9bce444c 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,8 @@
# Program Examples
-## Onchain program examples for :anchor: Anchor :crab: Native Rust, and [TS] TypeScript.
+## Onchain program examples for :anchor: Anchor and :crab: Native Rust.
-[](https://github.com/solana-developers/program-examples/actions/workflows/solana-native.yml) [](https://github.com/solana-developers/program-examples/actions/workflows/anchor.yml)
+[](https://github.com/solana-developers/program-examples/actions/workflows/anchor.yml) [](https://github.com/solana-developers/program-examples/actions/workflows/solana-native.yml)
This repo contains Solana onchain programs (referred to as 'Smart Contracts' in other blockchains).
@@ -175,7 +175,7 @@ Allow two users to swap digital assets with each other, each getting 100% of wha
### Basics - create token mints, mint tokens, and transfer tokens with Token Extensions
-Create token mints, mint tokens, and transferr tokens using Token Extensions.
+Create token mints, mint tokens, and transfer tokens using Token Extensions.
[anchor](./tokens/token-2022/basics/anchor)
@@ -221,13 +221,13 @@ Create tokens that store their onchain metadata inside the token mint, without n
[anchor](./tokens/token-2022/metadata/anchor)
-### Allow a designedated account to close a mint
+### Allow a designated account to close a mint
Allow a designated account to close a Mint.
[anchor](./tokens/token-2022/mint-close-authority/anchor) [native](./tokens/token-2022/mint-close-authority/native)
-### Usng multiple token extensions
+### Using multiple token extensions
Use multiple Token Extensions at once.
diff --git a/basics/account-data/anchor/Anchor.toml b/basics/account-data/anchor/Anchor.toml
index 0d651e522..1669d98df 100644
--- a/basics/account-data/anchor/Anchor.toml
+++ b/basics/account-data/anchor/Anchor.toml
@@ -1,3 +1,6 @@
+[toolchain]
+solana_version = "3.1.8"
+
[features]
seeds = false
skip-lint = false
diff --git a/basics/account-data/native/package.json b/basics/account-data/native/package.json
index f549ed083..c3b917d53 100644
--- a/basics/account-data/native/package.json
+++ b/basics/account-data/native/package.json
@@ -8,7 +8,8 @@
},
"dependencies": {
"@solana/web3.js": "^1.47.3",
- "fs": "^0.0.1-security"
+ "fs": "^0.0.1-security",
+ "borsh": "^2.0.0"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
diff --git a/basics/account-data/native/pnpm-lock.yaml b/basics/account-data/native/pnpm-lock.yaml
index be457d58e..9671e031d 100644
--- a/basics/account-data/native/pnpm-lock.yaml
+++ b/basics/account-data/native/pnpm-lock.yaml
@@ -11,6 +11,9 @@ importers:
'@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)
+ borsh:
+ specifier: ^2.0.0
+ version: 2.0.0
fs:
specifier: ^0.0.1-security
version: 0.0.1-security
@@ -165,6 +168,9 @@ packages:
borsh@0.7.0:
resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
+ borsh@2.0.0:
+ resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==}
+
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
@@ -531,12 +537,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.1:
resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.1:
resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
@@ -832,6 +840,8 @@ snapshots:
bs58: 4.0.1
text-encoding-utf-8: 1.0.2
+ borsh@2.0.0: {}
+
brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
diff --git a/basics/account-data/native/tests/test.ts b/basics/account-data/native/tests/test.ts
index 22b48f990..3965804f5 100644
--- a/basics/account-data/native/tests/test.ts
+++ b/basics/account-data/native/tests/test.ts
@@ -10,41 +10,25 @@ import {
import * as borsh from "borsh";
import { start } from "solana-bankrun";
-class Assignable {
- constructor(properties) {
- for (const [key, value] of Object.entries(properties)) {
- this[key] = value;
- }
- }
-}
+const AddressInfoSchema = {
+ struct: {
+ name: "string",
+ house_number: "u8",
+ street: "string",
+ city: "string",
+ },
+};
-class AddressInfo extends Assignable {
- street: string;
- city: string;
+type AddressInfo = {
name: string;
house_number: number;
- toBuffer() {
- return Buffer.from(borsh.serialize(AddressInfoSchema, this));
- }
+ street: string;
+ city: string;
+};
- static fromBuffer(buffer: Buffer) {
- return borsh.deserialize(AddressInfoSchema, AddressInfo, buffer);
- }
+function borshSerialize(schema: borsh.Schema, data: object): Buffer {
+ return Buffer.from(borsh.serialize(schema, data));
}
-const AddressInfoSchema = new Map([
- [
- AddressInfo,
- {
- kind: "struct",
- fields: [
- ["name", "string"],
- ["house_number", "u8"],
- ["street", "string"],
- ["city", "string"],
- ],
- },
- ],
-]);
describe("Account Data!", async () => {
const addressInfoAccount = Keypair.generate();
@@ -73,12 +57,12 @@ describe("Account Data!", async () => {
{ pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
],
programId: PROGRAM_ID,
- data: new AddressInfo({
+ data: borshSerialize(AddressInfoSchema, {
name: "Joe C",
house_number: 136,
street: "Mile High Dr.",
city: "Solana Beach",
- }).toBuffer(),
+ }),
});
const blockhash = context.lastBlockhash;
@@ -92,13 +76,13 @@ describe("Account Data!", async () => {
test("Read the new account's data", async () => {
const accountInfo = await client.getAccount(addressInfoAccount.publicKey);
- const readAddressInfo = AddressInfo.fromBuffer(
+ const readAddressInfo = borsh.deserialize(
+ AddressInfoSchema,
Buffer.from(accountInfo.data),
- );
+ ) as AddressInfo;
console.log(`Name : ${readAddressInfo.name}`);
console.log(`House Num: ${readAddressInfo.house_number}`);
console.log(`Street : ${readAddressInfo.street}`);
console.log(`City : ${readAddressInfo.city}`);
});
});
-
diff --git a/basics/checking-accounts/anchor/Anchor.toml b/basics/checking-accounts/anchor/Anchor.toml
index f71235ba3..c66fb6e73 100644
--- a/basics/checking-accounts/anchor/Anchor.toml
+++ b/basics/checking-accounts/anchor/Anchor.toml
@@ -1,3 +1,6 @@
+[toolchain]
+solana_version = "3.1.8"
+
[features]
seeds = false
[programs.localnet]
diff --git a/basics/close-account/anchor/Anchor.toml b/basics/close-account/anchor/Anchor.toml
index dd81fc487..7f4e0a29e 100644
--- a/basics/close-account/anchor/Anchor.toml
+++ b/basics/close-account/anchor/Anchor.toml
@@ -1,3 +1,6 @@
+[toolchain]
+solana_version = "3.1.8"
+
[features]
seeds = false
skip-lint = false
diff --git a/basics/close-account/native/pnpm-lock.yaml b/basics/close-account/native/pnpm-lock.yaml
index 6ce07e029..d81b4a0d5 100644
--- a/basics/close-account/native/pnpm-lock.yaml
+++ b/basics/close-account/native/pnpm-lock.yaml
@@ -525,12 +525,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.1:
resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.1:
resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
diff --git a/basics/counter/anchor/Anchor.toml b/basics/counter/anchor/Anchor.toml
index 644ecc21e..383b84bb1 100644
--- a/basics/counter/anchor/Anchor.toml
+++ b/basics/counter/anchor/Anchor.toml
@@ -1,3 +1,6 @@
+[toolchain]
+solana_version = "3.1.8"
+
[features]
seeds = false
skip-lint = false
diff --git a/basics/counter/native/package.json b/basics/counter/native/package.json
index 69dc2b9de..c0febb79f 100644
--- a/basics/counter/native/package.json
+++ b/basics/counter/native/package.json
@@ -24,6 +24,7 @@
"typescript": "^4.3.5"
},
"dependencies": {
- "@solana/web3.js": "^1.91.4"
+ "@solana/web3.js": "^1.91.4",
+ "bn.js": "^5.2.2"
}
}
diff --git a/basics/counter/native/pnpm-lock.yaml b/basics/counter/native/pnpm-lock.yaml
index 5d5d40850..9fbd637f8 100644
--- a/basics/counter/native/pnpm-lock.yaml
+++ b/basics/counter/native/pnpm-lock.yaml
@@ -11,6 +11,9 @@ importers:
'@solana/web3.js':
specifier: ^1.91.4
version: 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ bn.js:
+ specifier: ^5.2.2
+ version: 5.2.2
devDependencies:
'@types/bn.js':
specifier: ^5.1.0
@@ -138,8 +141,8 @@ packages:
bindings@1.5.0:
resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
- 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==}
@@ -507,12 +510,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.0:
resolution: {integrity: sha512-xsS2CS2xb1Sw4ivNXM0gPz/qpW9BX0neSvt/pnok5L330Nu9xlTnKAY8FhzzqOP9P9sJlGRM787Y6d0yYwt6xQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.0:
resolution: {integrity: sha512-YkH7sa8TB/AoRPzG17CXJtYsRIQHEkEqGLz1Vwc13taXhDBkjO7z6NI5JYw7n0ybRymDHwMYTc7sd+5J40TyVQ==}
@@ -693,7 +698,7 @@ snapshots:
'@solana/buffer-layout': 4.0.1
agentkeepalive: 4.5.0
bigint-buffer: 1.1.5
- bn.js: 5.2.1
+ bn.js: 5.2.2
borsh: 0.7.0
bs58: 4.0.1
buffer: 6.0.3
@@ -780,11 +785,11 @@ snapshots:
dependencies:
file-uri-to-path: 1.0.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
diff --git a/basics/create-account/anchor/Anchor.toml b/basics/create-account/anchor/Anchor.toml
index b2d99674b..da7c43b15 100644
--- a/basics/create-account/anchor/Anchor.toml
+++ b/basics/create-account/anchor/Anchor.toml
@@ -1,3 +1,6 @@
+[toolchain]
+solana_version = "3.1.8"
+
[features]
seeds = false
skip-lint = false
diff --git a/basics/create-account/native/package.json b/basics/create-account/native/package.json
index cfbc95243..2de53b461 100644
--- a/basics/create-account/native/package.json
+++ b/basics/create-account/native/package.json
@@ -14,7 +14,7 @@
"@types/chai": "^4.3.1",
"@types/mocha": "^9.1.1",
"chai": "^4.3.4",
- "litesvm": "^0.3.3",
+ "solana-bankrun": "^0.3.0",
"mocha": "^9.0.3",
"ts-mocha": "^10.0.0",
"typescript": "^4.3.5"
diff --git a/basics/create-account/native/pnpm-lock.yaml b/basics/create-account/native/pnpm-lock.yaml
index e995bc365..0498adfb0 100644
--- a/basics/create-account/native/pnpm-lock.yaml
+++ b/basics/create-account/native/pnpm-lock.yaml
@@ -24,12 +24,12 @@ importers:
chai:
specifier: ^4.3.4
version: 4.5.0
- litesvm:
- specifier: ^0.3.3
- version: 0.3.3(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
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)
@@ -152,9 +152,6 @@ packages:
base-x@3.0.11:
resolution: {integrity: sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==}
- base-x@5.0.1:
- resolution: {integrity: sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg==}
-
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
@@ -181,9 +178,6 @@ packages:
bs58@4.0.1:
resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==}
- bs58@6.0.0:
- resolution: {integrity: sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==}
-
buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
@@ -293,9 +287,6 @@ packages:
fast-stable-stringify@1.0.0:
resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
- fastestsmallesttextencoderdecoder@1.0.22:
- resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
-
fill-range@7.1.1:
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
engines: {node: '>=8'}
@@ -408,40 +399,6 @@ packages:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
- litesvm-darwin-arm64@0.3.3:
- resolution: {integrity: sha512-81YimsV3ezWjWLgoKixsXfVznaaecbURE3RtECgNb6Din6Za03pKGKGEN4gkyecHkv8uoPaEZv5cl6ARsgeN1Q==}
- engines: {node: '>= 20'}
- cpu: [arm64]
- os: [darwin]
-
- litesvm-darwin-x64@0.3.3:
- resolution: {integrity: sha512-pYietuU165Bl+2eDnVp2Eidiedfjt+pljyyBAfJPbYriaFyG577mU364NiNcsfQ8ZZWbe+ygIEAVq4Ol247+1g==}
- engines: {node: '>= 20'}
- cpu: [x64]
- os: [darwin]
-
- litesvm-linux-arm64-musl@0.3.3:
- resolution: {integrity: sha512-mkI15rWtNbaJxVFUfh+qnolqnDCZEqhwSZo/XZ48TZNsQ69vAqY00KhyFhTVJ+jeaYCAZTSNamuFIiRBxqVmNg==}
- engines: {node: '>= 20'}
- cpu: [arm64]
- os: [linux]
-
- litesvm-linux-x64-gnu@0.3.3:
- resolution: {integrity: sha512-Qai2/E8Eq03w8VKnJDREyiWxwavjykW/H6onE179ayMnBjVVmkj5fN7XF50VV4z73kasx5bpDzBNK8fcaxMdzA==}
- engines: {node: '>= 20'}
- cpu: [x64]
- os: [linux]
-
- litesvm-linux-x64-musl@0.3.3:
- resolution: {integrity: sha512-bpWZ2f506hbfu1y6bkmuZf+qqtnLDxggpOMTQbibjd+q6faEO3sETWwKGlIgHB99P8wyU+aXKwLSGQX2sJEw6Q==}
- engines: {node: '>= 20'}
- cpu: [x64]
- os: [linux]
-
- litesvm@0.3.3:
- resolution: {integrity: sha512-QHXjAIXzvG0uAMOza6aJcYl19yTKz3guwq/z0Zml4KnQxyQvPhjaBpUFc5sf2ey/NxMVdqFhoXmL02CXOOomjw==}
- engines: {node: '>= 20'}
-
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -549,6 +506,41 @@ packages:
serialize-javascript@6.0.0:
resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
+ solana-bankrun-darwin-arm64@0.3.1:
+ resolution: {integrity: sha512-9LWtH/3/WR9fs8Ve/srdo41mpSqVHmRqDoo69Dv1Cupi+o1zMU6HiEPUHEvH2Tn/6TDbPEDf18MYNfReLUqE6A==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ solana-bankrun-darwin-universal@0.3.1:
+ resolution: {integrity: sha512-muGHpVYWT7xCd8ZxEjs/bmsbMp8XBqroYGbE4lQPMDUuLvsJEIrjGqs3MbxEFr71sa58VpyvgywWd5ifI7sGIg==}
+ engines: {node: '>= 10'}
+ os: [darwin]
+
+ solana-bankrun-darwin-x64@0.3.1:
+ resolution: {integrity: sha512-oCaxfHyt7RC3ZMldrh5AbKfy4EH3YRMl8h6fSlMZpxvjQx7nK7PxlRwMeflMnVdkKKp7U8WIDak1lilIPd3/lg==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ solana-bankrun-linux-x64-gnu@0.3.1:
+ resolution: {integrity: sha512-PfRFhr7igGFNt2Ecfdzh3li9eFPB3Xhmk0Eib17EFIB62YgNUg3ItRnQQFaf0spazFjjJLnglY1TRKTuYlgSVA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ solana-bankrun-linux-x64-musl@0.3.1:
+ resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ solana-bankrun@0.3.1:
+ resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
+ engines: {node: '>= 10'}
+
source-map-support@0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
@@ -850,8 +842,6 @@ snapshots:
dependencies:
safe-buffer: 5.2.1
- base-x@5.0.1: {}
-
base64-js@1.5.1: {}
binary-extensions@2.3.0: {}
@@ -879,10 +869,6 @@ snapshots:
dependencies:
base-x: 3.0.11
- bs58@6.0.0:
- dependencies:
- base-x: 5.0.1
-
buffer-from@1.1.2: {}
buffer@6.0.3:
@@ -984,8 +970,6 @@ snapshots:
fast-stable-stringify@1.0.0: {}
- fastestsmallesttextencoderdecoder@1.0.22: {}
-
fill-range@7.1.1:
dependencies:
to-regex-range: 5.0.1
@@ -1091,38 +1075,6 @@ snapshots:
minimist: 1.2.8
optional: true
- litesvm-darwin-arm64@0.3.3:
- optional: true
-
- litesvm-darwin-x64@0.3.3:
- optional: true
-
- litesvm-linux-arm64-musl@0.3.3:
- optional: true
-
- litesvm-linux-x64-gnu@0.3.3:
- optional: true
-
- litesvm-linux-x64-musl@0.3.3:
- optional: true
-
- litesvm@0.3.3(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10):
- dependencies:
- '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
- bs58: 6.0.0
- fastestsmallesttextencoderdecoder: 1.0.22
- optionalDependencies:
- litesvm-darwin-arm64: 0.3.3
- litesvm-darwin-x64: 0.3.3
- litesvm-linux-arm64-musl: 0.3.3
- litesvm-linux-x64-gnu: 0.3.3
- litesvm-linux-x64-musl: 0.3.3
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - typescript
- - utf-8-validate
-
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1243,6 +1195,37 @@ snapshots:
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.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
+ 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
diff --git a/basics/create-account/native/tests/test.ts b/basics/create-account/native/tests/test.ts
index 91e2e6410..4c1068abb 100644
--- a/basics/create-account/native/tests/test.ts
+++ b/basics/create-account/native/tests/test.ts
@@ -1,34 +1,25 @@
-import { readFileSync } from 'node:fs';
import { describe, test } from 'node:test';
-import { Keypair, LAMPORTS_PER_SOL, PublicKey, SystemProgram, Transaction, TransactionInstruction } from '@solana/web3.js';
-import { LiteSVM } from 'litesvm';
+import {
+ Keypair,
+ LAMPORTS_PER_SOL,
+ PublicKey,
+ SystemProgram,
+ Transaction,
+ TransactionInstruction,
+} from '@solana/web3.js';
+import { start } from 'solana-bankrun';
-describe('Create a system account', () => {
- // Load the program keypair
- const programKeypairPath = new URL(
- './fixtures/create_account_program-keypair.json',
- // @ts-ignore
- import.meta.url,
- ).pathname;
- const programKeypairData = JSON.parse(readFileSync(programKeypairPath, 'utf-8'));
- const programKeypair = Keypair.fromSecretKey(new Uint8Array(programKeypairData));
- const PROGRAM_ID = programKeypair.publicKey;
+describe('Create a system account', async () => {
+ const PROGRAM_ID = PublicKey.unique();
- const litesvm = new LiteSVM();
- const payer = Keypair.generate();
+ const context = await start(
+ [{ name: 'create_account_program', programId: PROGRAM_ID }],
+ [],
+ );
+ const client = context.banksClient;
+ const payer = context.payer;
- // Load the program
- const programPath = new URL(
- './fixtures/create_account_program.so',
- // @ts-ignore
- import.meta.url,
- ).pathname;
- litesvm.addProgramFromFile(PROGRAM_ID, programPath);
-
- // Fund the payer account
- litesvm.airdrop(payer.publicKey, BigInt(100 * LAMPORTS_PER_SOL));
-
- test('Create the account via a cross program invocation', () => {
+ test('Create the account via a cross program invocation', async () => {
const newKeypair = Keypair.generate();
const ix = new TransactionInstruction({
@@ -41,19 +32,19 @@ describe('Create a system account', () => {
data: Buffer.alloc(0),
});
- const tx = new Transaction().add(ix);
- tx.feePayer = payer.publicKey;
- tx.recentBlockhash = litesvm.latestBlockhash();
+ const tx = new Transaction();
+ tx.recentBlockhash = context.lastBlockhash;
+ tx.add(ix);
tx.sign(payer, newKeypair);
- litesvm.sendTransaction(tx);
+ await client.processTransaction(tx);
// Verify the account was created
- const accountInfo = litesvm.getAccount(newKeypair.publicKey);
+ const accountInfo = await client.getAccount(newKeypair.publicKey);
console.log(`Account with public key ${newKeypair.publicKey} successfully created via CPI`);
});
- test('Create the account via direct call to system program', () => {
+ test('Create the account via direct call to system program', async () => {
const newKeypair = Keypair.generate();
const ix = SystemProgram.createAccount({
@@ -64,15 +55,15 @@ describe('Create a system account', () => {
programId: SystemProgram.programId,
});
- const tx = new Transaction().add(ix);
- tx.feePayer = payer.publicKey;
- tx.recentBlockhash = litesvm.latestBlockhash();
+ const tx = new Transaction();
+ tx.recentBlockhash = context.lastBlockhash;
+ tx.add(ix);
tx.sign(payer, newKeypair);
- litesvm.sendTransaction(tx);
+ await client.processTransaction(tx);
// Verify the account was created
- const accountInfo = litesvm.getAccount(newKeypair.publicKey);
+ const accountInfo = await client.getAccount(newKeypair.publicKey);
console.log(`Account with public key ${newKeypair.publicKey} successfully created`);
});
});
diff --git a/basics/cross-program-invocation/anchor/Anchor.toml b/basics/cross-program-invocation/anchor/Anchor.toml
index a9d5b8c8c..aabd6ae06 100644
--- a/basics/cross-program-invocation/anchor/Anchor.toml
+++ b/basics/cross-program-invocation/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/basics/cross-program-invocation/native/package.json b/basics/cross-program-invocation/native/package.json
index a7943f79f..406e55b92 100644
--- a/basics/cross-program-invocation/native/package.json
+++ b/basics/cross-program-invocation/native/package.json
@@ -8,7 +8,7 @@
},
"dependencies": {
"@solana/web3.js": "^1.47.3",
- "borsh": "^0.7.0",
+ "borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
},
diff --git a/basics/cross-program-invocation/native/pnpm-lock.yaml b/basics/cross-program-invocation/native/pnpm-lock.yaml
index 144f2a383..746a20a2d 100644
--- a/basics/cross-program-invocation/native/pnpm-lock.yaml
+++ b/basics/cross-program-invocation/native/pnpm-lock.yaml
@@ -12,8 +12,8 @@ importers:
specifier: ^1.47.3
version: 1.98.2(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
borsh:
- specifier: ^0.7.0
- version: 0.7.0
+ specifier: ^2.0.0
+ version: 2.0.0
buffer:
specifier: ^6.0.3
version: 6.0.3
@@ -168,6 +168,9 @@ packages:
borsh@0.7.0:
resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
+ borsh@2.0.0:
+ resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==}
+
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
@@ -802,6 +805,8 @@ snapshots:
bs58: 4.0.1
text-encoding-utf-8: 1.0.2
+ borsh@2.0.0: {}
+
brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
diff --git a/basics/cross-program-invocation/native/tests/test.ts b/basics/cross-program-invocation/native/tests/test.ts
index 8112b62aa..efbca8062 100644
--- a/basics/cross-program-invocation/native/tests/test.ts
+++ b/basics/cross-program-invocation/native/tests/test.ts
@@ -3,7 +3,7 @@ import { Connection, Keypair, SystemProgram, sendAndConfirmTransaction, Transact
import * as borsh from 'borsh';
function createKeypairFromFile(path: string): Keypair {
- return Keypair.fromSecretKey(Buffer.from(JSON.parse(require('node:fs').readFileSync(path, 'utf-8'))));
+ return Keypair.fromSecretKey(Uint8Array.from(JSON.parse(require('node:fs').readFileSync(path, 'utf-8'))));
}
describe('CPI Example', () => {
@@ -12,27 +12,12 @@ describe('CPI Example', () => {
const hand = createKeypairFromFile('./target/so/hand-keypair.json');
const lever = createKeypairFromFile('./target/so/lever-keypair.json');
- class Assignable {
- constructor(properties) {
- for (const [key, value] of Object.entries(properties)) {
- this[key] = value;
- }
- }
- }
-
- class PowerStatus extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(PowerStatusSchema, this));
- }
- }
- const PowerStatusSchema = new Map([[PowerStatus, { kind: 'struct', fields: [['is_on', 'u8']] }]]);
+ const PowerStatusSchema = { struct: { is_on: 'u8' } };
+ const SetPowerStatusSchema = { struct: { name: 'string' } };
- class SetPowerStatus extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(SetPowerStatusSchema, this));
- }
+ function borshSerialize(schema: borsh.Schema, data: object): Buffer {
+ return Buffer.from(borsh.serialize(schema, data));
}
- const SetPowerStatusSchema = new Map([[SetPowerStatus, { kind: 'struct', fields: [['name', 'string']] }]]);
const powerAccount = Keypair.generate();
@@ -44,7 +29,7 @@ describe('CPI Example', () => {
{ pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
],
programId: lever.publicKey,
- data: new PowerStatus({ is_on: true }).toBuffer(),
+ data: borshSerialize(PowerStatusSchema, { is_on: true }),
});
await sendAndConfirmTransaction(connection, new Transaction().add(ix), [payer, powerAccount]);
@@ -57,7 +42,7 @@ describe('CPI Example', () => {
{ pubkey: lever.publicKey, isSigner: false, isWritable: false },
],
programId: hand.publicKey,
- data: new SetPowerStatus({ name: 'Chris' }).toBuffer(),
+ data: borshSerialize(SetPowerStatusSchema, { name: 'Chris' }),
});
await sendAndConfirmTransaction(connection, new Transaction().add(ix), [payer]);
@@ -70,7 +55,7 @@ describe('CPI Example', () => {
{ pubkey: lever.publicKey, isSigner: false, isWritable: false },
],
programId: hand.publicKey,
- data: new SetPowerStatus({ name: 'Ashley' }).toBuffer(),
+ data: borshSerialize(SetPowerStatusSchema, { name: 'Ashley' }),
});
await sendAndConfirmTransaction(connection, new Transaction().add(ix), [payer]);
diff --git a/basics/favorites/anchor/Anchor.toml b/basics/favorites/anchor/Anchor.toml
index 94bbb8a8b..d0db73e59 100644
--- a/basics/favorites/anchor/Anchor.toml
+++ b/basics/favorites/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/basics/favorites/native/tests/test.ts b/basics/favorites/native/tests/test.ts
index 81059eb98..0027bb7bb 100644
--- a/basics/favorites/native/tests/test.ts
+++ b/basics/favorites/native/tests/test.ts
@@ -12,71 +12,44 @@ import { assert, expect } from "chai";
import { describe, test } from "mocha";
import { BanksClient, ProgramTestContext, start } from "solana-bankrun";
-// This is a helper class to assign properties to the class
-class Assignable {
- constructor(properties) {
- for (const [key, value] of Object.entries(properties)) {
- this[key] = value;
- }
- }
-}
-
const MyInstruction = {
CreateFav: 0,
GetFav: 1,
} as const;
-class CreateFav extends Assignable {
- number: number;
- instruction: MyInstruction;
- color: string;
- hobbies: string[];
-
- toBuffer() {
- return Buffer.from(borsh.serialize(CreateNewAccountSchema, this));
- }
-
- static fromBuffer(buffer: Buffer): CreateFav {
- return borsh.deserialize(
- {
- struct: {
- number: "u64",
- color: "string",
- hobbies: {
- array: {
- type: "string",
- },
- },
- },
- },
- buffer,
- ) as CreateFav;
- }
-}
-const CreateNewAccountSchema = {
+const CreateFavSchema = {
struct: {
instruction: "u8",
number: "u64",
color: "string",
- hobbies: {
- array: {
- type: "string",
- },
- },
+ hobbies: { array: { type: "string" } },
+ },
+};
+
+const FavoritesDataSchema = {
+ struct: {
+ number: "u64",
+ color: "string",
+ hobbies: { array: { type: "string" } },
},
};
-class GetFav extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(GetFavSchema, this));
- }
-}
const GetFavSchema = {
struct: {
instruction: "u8",
},
};
+type FavoritesData = {
+ number: number | bigint;
+ color: string;
+ hobbies: string[];
+};
+
+function borshSerialize(schema: borsh.Schema, data: object): Buffer {
+ return Buffer.from(borsh.serialize(schema, data));
+}
+
describe("Favorites Solana Native", () => {
// Randomly generate the program keypair and load the program to solana-bankrun
const programId = PublicKey.unique();
@@ -105,7 +78,6 @@ describe("Favorites Solana Native", () => {
color: "blue",
hobbies: ["coding", "reading", "traveling"],
};
- const favorites = new CreateFav(favData);
const ix = new TransactionInstruction({
keys: [
@@ -114,11 +86,10 @@ describe("Favorites Solana Native", () => {
{ pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
],
programId,
- data: favorites.toBuffer(),
+ data: borshSerialize(CreateFavSchema, favData),
});
const tx = new Transaction().add(ix);
-
tx.feePayer = payer.publicKey;
tx.recentBlockhash = blockhash;
tx.sign(payer);
@@ -128,7 +99,7 @@ describe("Favorites Solana Native", () => {
const account = await client.getAccount(favoritesPda);
const data = Buffer.from(account.data);
- const favoritesData = CreateFav.fromBuffer(data);
+ const favoritesData = borsh.deserialize(FavoritesDataSchema, data) as FavoritesData;
console.log("Deserialized data:", favoritesData);
@@ -151,7 +122,6 @@ describe("Favorites Solana Native", () => {
color: "blue",
hobbies: ["coding", "reading", "traveling"],
};
- const favorites = new CreateFav(favData);
const ix = new TransactionInstruction({
keys: [
@@ -160,11 +130,10 @@ describe("Favorites Solana Native", () => {
{ pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
],
programId,
- data: favorites.toBuffer(),
+ data: borshSerialize(CreateFavSchema, favData),
});
const tx = new Transaction().add(ix);
-
tx.feePayer = payer.publicKey;
tx.recentBlockhash = blockhash;
tx.sign(payer);
@@ -189,7 +158,6 @@ describe("Favorites Solana Native", () => {
color: "hazel",
hobbies: ["singing", "dancing", "skydiving"],
};
- const favorites = new CreateFav(favData);
const ix = new TransactionInstruction({
keys: [
@@ -198,11 +166,10 @@ describe("Favorites Solana Native", () => {
{ pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
],
programId,
- data: favorites.toBuffer(),
+ data: borshSerialize(CreateFavSchema, favData),
});
const tx1 = new Transaction().add(ix);
-
tx1.feePayer = payer.publicKey;
tx1.recentBlockhash = blockhash;
tx1.sign(payer);
@@ -210,20 +177,16 @@ describe("Favorites Solana Native", () => {
await client.processTransaction(tx1);
// Getting the user's data through the get_pda instruction
- const getfavData = { instruction: MyInstruction.GetFav };
- const getfavorites = new GetFav(getfavData);
-
const ix2 = new TransactionInstruction({
keys: [
{ pubkey: payer.publicKey, isSigner: true, isWritable: true },
{ pubkey: favoritesPda, isSigner: false, isWritable: false },
],
programId,
- data: getfavorites.toBuffer(),
+ data: borshSerialize(GetFavSchema, { instruction: MyInstruction.GetFav }),
});
const tx = new Transaction().add(ix2);
-
tx.feePayer = payer.publicKey;
tx.recentBlockhash = blockhash;
tx.sign(payer);
diff --git a/basics/hello-solana/anchor/Anchor.toml b/basics/hello-solana/anchor/Anchor.toml
index ef9757f65..5cbd0e4d8 100644
--- a/basics/hello-solana/anchor/Anchor.toml
+++ b/basics/hello-solana/anchor/Anchor.toml
@@ -1,3 +1,6 @@
+[toolchain]
+solana_version = "3.1.8"
+
[features]
seeds = false
skip-lint = false
diff --git a/basics/pda-rent-payer/anchor/Anchor.toml b/basics/pda-rent-payer/anchor/Anchor.toml
index f1015a867..9dbb3e07a 100644
--- a/basics/pda-rent-payer/anchor/Anchor.toml
+++ b/basics/pda-rent-payer/anchor/Anchor.toml
@@ -1,3 +1,6 @@
+[toolchain]
+solana_version = "3.1.8"
+
[features]
seeds = false
[programs.localnet]
diff --git a/basics/pda-rent-payer/native/package.json b/basics/pda-rent-payer/native/package.json
index 3cc45dbd5..cce7ba710 100644
--- a/basics/pda-rent-payer/native/package.json
+++ b/basics/pda-rent-payer/native/package.json
@@ -7,7 +7,8 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.47.3"
+ "@solana/web3.js": "^1.47.3",
+ "borsh": "^2.0.0"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
diff --git a/basics/pda-rent-payer/native/pnpm-lock.yaml b/basics/pda-rent-payer/native/pnpm-lock.yaml
index 315de63a2..01f48eb3f 100644
--- a/basics/pda-rent-payer/native/pnpm-lock.yaml
+++ b/basics/pda-rent-payer/native/pnpm-lock.yaml
@@ -11,6 +11,9 @@ importers:
'@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)
+ borsh:
+ specifier: ^2.0.0
+ version: 2.0.0
devDependencies:
'@types/bn.js':
specifier: ^5.1.0
@@ -162,6 +165,9 @@ packages:
borsh@0.7.0:
resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
+ borsh@2.0.0:
+ resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==}
+
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
@@ -525,12 +531,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.1:
resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.1:
resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
@@ -826,6 +834,8 @@ snapshots:
bs58: 4.0.1
text-encoding-utf-8: 1.0.2
+ borsh@2.0.0: {}
+
brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
diff --git a/basics/pda-rent-payer/native/tests/test.ts b/basics/pda-rent-payer/native/tests/test.ts
index eb4c73dcb..03f17ca03 100644
--- a/basics/pda-rent-payer/native/tests/test.ts
+++ b/basics/pda-rent-payer/native/tests/test.ts
@@ -19,51 +19,27 @@ describe("PDA Rent-Payer", async () => {
const client = context.banksClient;
const payer = context.payer;
- class Assignable {
- constructor(properties) {
- for (const [key, value] of Object.entries(properties)) {
- this[key] = value;
- }
- }
- }
-
const MyInstruction = {
InitRentVault: 0,
CreateNewAccount: 1,
} as const;
- class InitRentVault extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(InitRentVaultSchema, this));
- }
- }
- const InitRentVaultSchema = new Map([
- [
- InitRentVault,
- {
- kind: "struct",
- fields: [
- ["instruction", "u8"],
- ["fund_lamports", "u64"],
- ],
- },
- ],
- ]);
+ const InitRentVaultSchema = {
+ struct: {
+ instruction: "u8",
+ fund_lamports: "u64",
+ },
+ };
+
+ const CreateNewAccountSchema = {
+ struct: {
+ instruction: "u8",
+ },
+ };
- class CreateNewAccount extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(CreateNewAccountSchema, this));
- }
+ function borshSerialize(schema: borsh.Schema, data: object): Buffer {
+ return Buffer.from(borsh.serialize(schema, data));
}
- const CreateNewAccountSchema = new Map([
- [
- CreateNewAccount,
- {
- kind: "struct",
- fields: [["instruction", "u8"]],
- },
- ],
- ]);
function deriveRentVaultPda() {
const pda = PublicKey.findProgramAddressSync(
@@ -84,10 +60,10 @@ describe("PDA Rent-Payer", async () => {
{ pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
],
programId: PROGRAM_ID,
- data: new InitRentVault({
+ data: borshSerialize(InitRentVaultSchema, {
instruction: MyInstruction.InitRentVault,
fund_lamports: 1000000000,
- }).toBuffer(),
+ }),
});
const tx = new Transaction();
@@ -108,9 +84,9 @@ describe("PDA Rent-Payer", async () => {
{ pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
],
programId: PROGRAM_ID,
- data: new CreateNewAccount({
+ data: borshSerialize(CreateNewAccountSchema, {
instruction: MyInstruction.CreateNewAccount,
- }).toBuffer(),
+ }),
});
const tx = new Transaction();
diff --git a/basics/processing-instructions/anchor/Anchor.toml b/basics/processing-instructions/anchor/Anchor.toml
index e214f6440..4d0a28640 100644
--- a/basics/processing-instructions/anchor/Anchor.toml
+++ b/basics/processing-instructions/anchor/Anchor.toml
@@ -1,3 +1,6 @@
+[toolchain]
+solana_version = "3.1.8"
+
[features]
seeds = false
[programs.localnet]
diff --git a/basics/processing-instructions/native/package.json b/basics/processing-instructions/native/package.json
index 3cc45dbd5..cce7ba710 100644
--- a/basics/processing-instructions/native/package.json
+++ b/basics/processing-instructions/native/package.json
@@ -7,7 +7,8 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.47.3"
+ "@solana/web3.js": "^1.47.3",
+ "borsh": "^2.0.0"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
diff --git a/basics/processing-instructions/native/pnpm-lock.yaml b/basics/processing-instructions/native/pnpm-lock.yaml
index 315de63a2..01f48eb3f 100644
--- a/basics/processing-instructions/native/pnpm-lock.yaml
+++ b/basics/processing-instructions/native/pnpm-lock.yaml
@@ -11,6 +11,9 @@ importers:
'@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)
+ borsh:
+ specifier: ^2.0.0
+ version: 2.0.0
devDependencies:
'@types/bn.js':
specifier: ^5.1.0
@@ -162,6 +165,9 @@ packages:
borsh@0.7.0:
resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
+ borsh@2.0.0:
+ resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==}
+
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
@@ -525,12 +531,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.1:
resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.1:
resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
@@ -826,6 +834,8 @@ snapshots:
bs58: 4.0.1
text-encoding-utf-8: 1.0.2
+ borsh@2.0.0: {}
+
brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
diff --git a/basics/processing-instructions/native/tests/test.ts b/basics/processing-instructions/native/tests/test.ts
index e8b80427a..3964cc912 100644
--- a/basics/processing-instructions/native/tests/test.ts
+++ b/basics/processing-instructions/native/tests/test.ts
@@ -10,55 +10,32 @@ describe('custom-instruction-data', async () => {
const client = context.banksClient;
const payer = context.payer;
- class Assignable {
- constructor(properties) {
- for (const [key, value] of Object.entries(properties)) {
- this[key] = value;
- }
- }
+ const InstructionDataSchema = {
+ struct: {
+ name: 'string',
+ height: 'u32',
+ },
+ };
+
+ function borshSerialize(schema: borsh.Schema, data: object): Buffer {
+ return Buffer.from(borsh.serialize(schema, data));
}
- class InstructionData extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(InstructionDataSchema, this));
- }
- }
-
- const InstructionDataSchema = new Map([
- [
- InstructionData,
- {
- kind: 'struct',
- fields: [
- ['name', 'string'],
- ['height', 'u32'],
- ],
- },
- ],
- ]);
-
test('Go to the park!', async () => {
const blockhash = context.lastBlockhash;
- const jimmy = new InstructionData({
- name: 'Jimmy',
- height: 3,
- });
-
- const mary = new InstructionData({
- name: 'Mary',
- height: 10,
- });
+ const jimmy = borshSerialize(InstructionDataSchema, { name: 'Jimmy', height: 3 });
+ const mary = borshSerialize(InstructionDataSchema, { name: 'Mary', height: 10 });
const ix1 = new TransactionInstruction({
keys: [{ pubkey: payer.publicKey, isSigner: true, isWritable: true }],
programId: PROGRAM_ID,
- data: jimmy.toBuffer(),
+ data: jimmy,
});
const ix2 = new TransactionInstruction({
...ix1,
- data: mary.toBuffer(),
+ data: mary,
});
const tx = new Transaction();
diff --git a/basics/program-derived-addresses/anchor/Anchor.toml b/basics/program-derived-addresses/anchor/Anchor.toml
index fc6bf387c..e215bbe56 100644
--- a/basics/program-derived-addresses/anchor/Anchor.toml
+++ b/basics/program-derived-addresses/anchor/Anchor.toml
@@ -1,3 +1,6 @@
+[toolchain]
+solana_version = "3.1.8"
+
[features]
seeds = false
[programs.localnet]
diff --git a/basics/program-derived-addresses/native/package.json b/basics/program-derived-addresses/native/package.json
index d0fc0112a..076e970e4 100644
--- a/basics/program-derived-addresses/native/package.json
+++ b/basics/program-derived-addresses/native/package.json
@@ -8,7 +8,8 @@
},
"dependencies": {
"@solana/web3.js": "^1.47.3",
- "fs": "^0.0.1-security"
+ "fs": "^0.0.1-security",
+ "borsh": "^2.0.0"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
diff --git a/basics/program-derived-addresses/native/pnpm-lock.yaml b/basics/program-derived-addresses/native/pnpm-lock.yaml
index 5382ba0a9..51cd0bb57 100644
--- a/basics/program-derived-addresses/native/pnpm-lock.yaml
+++ b/basics/program-derived-addresses/native/pnpm-lock.yaml
@@ -11,6 +11,9 @@ importers:
'@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)
+ borsh:
+ specifier: ^2.0.0
+ version: 2.0.0
fs:
specifier: ^0.0.1-security
version: 0.0.1-security
@@ -159,6 +162,9 @@ packages:
borsh@0.7.0:
resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
+ borsh@2.0.0:
+ resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==}
+
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
@@ -505,12 +511,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.1:
resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.1:
resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
@@ -800,6 +808,8 @@ snapshots:
bs58: 4.0.1
text-encoding-utf-8: 1.0.2
+ borsh@2.0.0: {}
+
brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
diff --git a/basics/program-derived-addresses/native/tests/test.ts b/basics/program-derived-addresses/native/tests/test.ts
index fb5c99189..805bc7083 100644
--- a/basics/program-derived-addresses/native/tests/test.ts
+++ b/basics/program-derived-addresses/native/tests/test.ts
@@ -11,51 +11,20 @@ describe('PDAs', async () => {
const payer = context.payer;
const rent = await client.getRent();
- class Assignable {
- constructor(properties) {
- for (const [key, value] of Object.entries(properties)) {
- this[key] = value;
- }
- }
+ const PageVisitsSchema = {
+ struct: {
+ page_visits: 'u32',
+ bump: 'u8',
+ },
+ };
+
+ // Empty struct — just needs to serialize to zero bytes
+ const IncrementPageVisitsSchema = { struct: {} };
+
+ function borshSerialize(schema: borsh.Schema, data: object): Buffer {
+ return Buffer.from(borsh.serialize(schema, data));
}
- class PageVisits extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(PageVisitsSchema, this));
- }
-
- static fromBuffer(buffer: Buffer) {
- return borsh.deserialize(PageVisitsSchema, PageVisits, buffer);
- }
- }
- const PageVisitsSchema = new Map([
- [
- PageVisits,
- {
- kind: 'struct',
- fields: [
- ['page_visits', 'u32'],
- ['bump', 'u8'],
- ],
- },
- ],
- ]);
-
- class IncrementPageVisits extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(IncrementPageVisitsSchema, this));
- }
- }
- const IncrementPageVisitsSchema = new Map([
- [
- IncrementPageVisits,
- {
- kind: 'struct',
- fields: [],
- },
- ],
- ]);
-
const testUser = Keypair.generate();
test('Create a test user', async () => {
@@ -91,7 +60,7 @@ describe('PDAs', async () => {
{ pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
],
programId: PROGRAM_ID,
- data: new PageVisits({ page_visits: 0, bump: pageVisitsBump }).toBuffer(),
+ data: borshSerialize(PageVisitsSchema, { page_visits: 0, bump: pageVisitsBump }),
});
const tx = new Transaction();
const blockhash = context.lastBlockhash;
@@ -109,7 +78,7 @@ describe('PDAs', async () => {
{ pubkey: payer.publicKey, isSigner: true, isWritable: true },
],
programId: PROGRAM_ID,
- data: new IncrementPageVisits({}).toBuffer(),
+ data: borshSerialize(IncrementPageVisitsSchema, {}),
});
const tx = new Transaction();
const blockhash = context.lastBlockhash;
@@ -127,7 +96,7 @@ describe('PDAs', async () => {
{ pubkey: payer.publicKey, isSigner: true, isWritable: true },
],
programId: PROGRAM_ID,
- data: new IncrementPageVisits({}).toBuffer(),
+ data: borshSerialize(IncrementPageVisitsSchema, {}),
});
const tx = new Transaction();
const [blockhash, _block_height] = await client.getLatestBlockhash();
@@ -140,7 +109,7 @@ describe('PDAs', async () => {
test('Read page visits', async () => {
const [pageVisitsPda, _] = derivePageVisitsPda(testUser.publicKey);
const accountInfo = await client.getAccount(pageVisitsPda);
- const readPageVisits = PageVisits.fromBuffer(Buffer.from(accountInfo.data));
+ const readPageVisits = borsh.deserialize(PageVisitsSchema, Buffer.from(accountInfo.data)) as { page_visits: number; bump: number };
console.log(`Number of page visits: ${readPageVisits.page_visits}`);
});
});
diff --git a/basics/realloc/anchor/Anchor.toml b/basics/realloc/anchor/Anchor.toml
index 3c37422ce..a0f3a9588 100644
--- a/basics/realloc/anchor/Anchor.toml
+++ b/basics/realloc/anchor/Anchor.toml
@@ -1,3 +1,6 @@
+[toolchain]
+solana_version = "3.1.8"
+
[features]
seeds = false
skip-lint = false
diff --git a/basics/rent/anchor/Anchor.toml b/basics/rent/anchor/Anchor.toml
index 2bfb35a38..f2a16eef2 100644
--- a/basics/rent/anchor/Anchor.toml
+++ b/basics/rent/anchor/Anchor.toml
@@ -1,3 +1,6 @@
+[toolchain]
+solana_version = "3.1.8"
+
[features]
seeds = false
[programs.localnet]
diff --git a/basics/rent/native/package.json b/basics/rent/native/package.json
index 1979f007e..d2b3a4172 100644
--- a/basics/rent/native/package.json
+++ b/basics/rent/native/package.json
@@ -8,7 +8,7 @@
},
"dependencies": {
"@solana/web3.js": "^1.47.3",
- "borsh": "^0.7.0",
+ "borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
},
diff --git a/basics/rent/native/pnpm-lock.yaml b/basics/rent/native/pnpm-lock.yaml
index a8f0ba2ef..1b0915b48 100644
--- a/basics/rent/native/pnpm-lock.yaml
+++ b/basics/rent/native/pnpm-lock.yaml
@@ -12,8 +12,8 @@ importers:
specifier: ^1.47.3
version: 1.98.2(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
borsh:
- specifier: ^0.7.0
- version: 0.7.0
+ specifier: ^2.0.0
+ version: 2.0.0
buffer:
specifier: ^6.0.3
version: 6.0.3
@@ -171,6 +171,9 @@ packages:
borsh@0.7.0:
resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
+ borsh@2.0.0:
+ resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==}
+
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
@@ -537,12 +540,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.1:
resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.1:
resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
@@ -838,6 +843,8 @@ snapshots:
bs58: 4.0.1
text-encoding-utf-8: 1.0.2
+ borsh@2.0.0: {}
+
brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
diff --git a/basics/rent/native/tests/test.ts b/basics/rent/native/tests/test.ts
index b2a7fddec..b07f32f79 100644
--- a/basics/rent/native/tests/test.ts
+++ b/basics/rent/native/tests/test.ts
@@ -10,44 +10,28 @@ describe('Create a system account', async () => {
const client = context.banksClient;
const payer = context.payer;
- class Assignable {
- constructor(properties) {
- for (const [key, value] of Object.entries(properties)) {
- this[key] = value;
- }
- }
+ const AddressDataSchema = {
+ struct: {
+ name: 'string',
+ address: 'string',
+ },
+ };
+
+ function borshSerialize(schema: borsh.Schema, data: object): Buffer {
+ return Buffer.from(borsh.serialize(schema, data));
}
- class AddressData extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(AddressDataSchema, this));
- }
- }
-
- const AddressDataSchema = new Map([
- [
- AddressData,
- {
- kind: 'struct',
- fields: [
- ['name', 'string'],
- ['address', 'string'],
- ],
- },
- ],
- ]);
-
test('Create the account', async () => {
const newKeypair = Keypair.generate();
- const addressData = new AddressData({
+ const addressData = {
name: 'Marcus',
address: '123 Main St. San Francisco, CA',
- });
+ };
// We're just going to serialize our object here so we can check
// the size on the client side against the program logs
- const addressDataBuffer = addressData.toBuffer();
+ const addressDataBuffer = borshSerialize(AddressDataSchema, addressData);
console.log(`Address data buffer length: ${addressDataBuffer.length}`);
const ix = new TransactionInstruction({
diff --git a/basics/rent/pinocchio/package.json b/basics/rent/pinocchio/package.json
index 1979f007e..d2b3a4172 100644
--- a/basics/rent/pinocchio/package.json
+++ b/basics/rent/pinocchio/package.json
@@ -8,7 +8,7 @@
},
"dependencies": {
"@solana/web3.js": "^1.47.3",
- "borsh": "^0.7.0",
+ "borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
},
diff --git a/basics/rent/pinocchio/pnpm-lock.yaml b/basics/rent/pinocchio/pnpm-lock.yaml
index a8f0ba2ef..1b0915b48 100644
--- a/basics/rent/pinocchio/pnpm-lock.yaml
+++ b/basics/rent/pinocchio/pnpm-lock.yaml
@@ -12,8 +12,8 @@ importers:
specifier: ^1.47.3
version: 1.98.2(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
borsh:
- specifier: ^0.7.0
- version: 0.7.0
+ specifier: ^2.0.0
+ version: 2.0.0
buffer:
specifier: ^6.0.3
version: 6.0.3
@@ -171,6 +171,9 @@ packages:
borsh@0.7.0:
resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
+ borsh@2.0.0:
+ resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==}
+
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
@@ -537,12 +540,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.1:
resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.1:
resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
@@ -838,6 +843,8 @@ snapshots:
bs58: 4.0.1
text-encoding-utf-8: 1.0.2
+ borsh@2.0.0: {}
+
brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
diff --git a/basics/repository-layout/anchor/Anchor.toml b/basics/repository-layout/anchor/Anchor.toml
index f02487b1a..6e2f543ef 100644
--- a/basics/repository-layout/anchor/Anchor.toml
+++ b/basics/repository-layout/anchor/Anchor.toml
@@ -1,3 +1,6 @@
+[toolchain]
+solana_version = "3.1.8"
+
[features]
seeds = false
[programs.localnet]
diff --git a/basics/repository-layout/native/package.json b/basics/repository-layout/native/package.json
index f549ed083..c3b917d53 100644
--- a/basics/repository-layout/native/package.json
+++ b/basics/repository-layout/native/package.json
@@ -8,7 +8,8 @@
},
"dependencies": {
"@solana/web3.js": "^1.47.3",
- "fs": "^0.0.1-security"
+ "fs": "^0.0.1-security",
+ "borsh": "^2.0.0"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
diff --git a/basics/repository-layout/native/pnpm-lock.yaml b/basics/repository-layout/native/pnpm-lock.yaml
index 09e100fde..957167dbc 100644
--- a/basics/repository-layout/native/pnpm-lock.yaml
+++ b/basics/repository-layout/native/pnpm-lock.yaml
@@ -11,6 +11,9 @@ importers:
'@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)
+ borsh:
+ specifier: ^2.0.0
+ version: 2.0.0
fs:
specifier: ^0.0.1-security
version: 0.0.1-security
@@ -165,6 +168,9 @@ packages:
borsh@0.7.0:
resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
+ borsh@2.0.0:
+ resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==}
+
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
@@ -531,12 +537,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.1:
resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.1:
resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
@@ -832,6 +840,8 @@ snapshots:
bs58: 4.0.1
text-encoding-utf-8: 1.0.2
+ borsh@2.0.0: {}
+
brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
diff --git a/basics/repository-layout/native/tests/test.ts b/basics/repository-layout/native/tests/test.ts
index 758a5c9ec..db8b6dedd 100644
--- a/basics/repository-layout/native/tests/test.ts
+++ b/basics/repository-layout/native/tests/test.ts
@@ -10,35 +10,27 @@ describe('Carnival', async () => {
const client = context.banksClient;
const payer = context.payer;
- class Assignable {
- constructor(properties) {
- for (const [key, value] of Object.entries(properties)) {
- this[key] = value;
- }
- }
- }
+ const CarnivalInstructionSchema = {
+ struct: {
+ name: 'string',
+ height: 'u32',
+ ticket_count: 'u32',
+ attraction: 'string',
+ attraction_name: 'string',
+ },
+ };
- class CarnivalInstruction extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(CarnivalInstructionSchema, this));
- }
- }
+ type CarnivalInstruction = {
+ name: string;
+ height: number;
+ ticket_count: number;
+ attraction: string;
+ attraction_name: string;
+ };
- const CarnivalInstructionSchema = new Map([
- [
- CarnivalInstruction,
- {
- kind: 'struct',
- fields: [
- ['name', 'string'],
- ['height', 'u32'],
- ['ticket_count', 'u32'],
- ['attraction', 'string'],
- ['attraction_name', 'string'],
- ],
- },
- ],
- ]);
+ function borshSerialize(schema: borsh.Schema, data: object): Buffer {
+ return Buffer.from(borsh.serialize(schema, data));
+ }
async function sendCarnivalInstructions(instructionsList: CarnivalInstruction[]) {
const tx = new Transaction();
@@ -48,7 +40,7 @@ describe('Carnival', async () => {
new TransactionInstruction({
keys: [{ pubkey: payer.publicKey, isSigner: true, isWritable: true }],
programId: PROGRAM_ID,
- data: ix.toBuffer(),
+ data: borshSerialize(CarnivalInstructionSchema, ix),
}),
).sign(payer);
}
@@ -57,100 +49,28 @@ describe('Carnival', async () => {
test('Go on some rides!', async () => {
await sendCarnivalInstructions([
- new CarnivalInstruction({
- name: 'Jimmy',
- height: 36,
- ticket_count: 15,
- attraction: 'ride',
- attraction_name: 'Scrambler',
- }),
- new CarnivalInstruction({
- name: 'Mary',
- height: 52,
- ticket_count: 1,
- attraction: 'ride',
- attraction_name: 'Ferris Wheel',
- }),
- new CarnivalInstruction({
- name: 'Alice',
- height: 56,
- ticket_count: 15,
- attraction: 'ride',
- attraction_name: 'Scrambler',
- }),
- new CarnivalInstruction({
- name: 'Bob',
- height: 49,
- ticket_count: 6,
- attraction: 'ride',
- attraction_name: 'Tilt-a-Whirl',
- }),
+ { name: 'Jimmy', height: 36, ticket_count: 15, attraction: 'ride', attraction_name: 'Scrambler' },
+ { name: 'Mary', height: 52, ticket_count: 1, attraction: 'ride', attraction_name: 'Ferris Wheel' },
+ { name: 'Alice', height: 56, ticket_count: 15, attraction: 'ride', attraction_name: 'Scrambler' },
+ { name: 'Bob', height: 49, ticket_count: 6, attraction: 'ride', attraction_name: 'Tilt-a-Whirl' },
]);
});
test('Play some games!', async () => {
await sendCarnivalInstructions([
- new CarnivalInstruction({
- name: 'Jimmy',
- height: 36,
- ticket_count: 15,
- attraction: 'game',
- attraction_name: 'I Got It!',
- }),
- new CarnivalInstruction({
- name: 'Mary',
- height: 52,
- ticket_count: 1,
- attraction: 'game',
- attraction_name: 'Ring Toss',
- }),
- new CarnivalInstruction({
- name: 'Alice',
- height: 56,
- ticket_count: 15,
- attraction: 'game',
- attraction_name: 'Ladder Climb',
- }),
- new CarnivalInstruction({
- name: 'Bob',
- height: 49,
- ticket_count: 6,
- attraction: 'game',
- attraction_name: 'Ring Toss',
- }),
+ { name: 'Jimmy', height: 36, ticket_count: 15, attraction: 'game', attraction_name: 'I Got It!' },
+ { name: 'Mary', height: 52, ticket_count: 1, attraction: 'game', attraction_name: 'Ring Toss' },
+ { name: 'Alice', height: 56, ticket_count: 15, attraction: 'game', attraction_name: 'Ladder Climb' },
+ { name: 'Bob', height: 49, ticket_count: 6, attraction: 'game', attraction_name: 'Ring Toss' },
]);
});
test('Eat some food!', async () => {
await sendCarnivalInstructions([
- new CarnivalInstruction({
- name: 'Jimmy',
- height: 36,
- ticket_count: 15,
- attraction: 'food',
- attraction_name: 'Taco Shack',
- }),
- new CarnivalInstruction({
- name: 'Mary',
- height: 52,
- ticket_count: 1,
- attraction: 'food',
- attraction_name: "Larry's Pizza",
- }),
- new CarnivalInstruction({
- name: 'Alice',
- height: 56,
- ticket_count: 15,
- attraction: 'food',
- attraction_name: "Dough Boy's",
- }),
- new CarnivalInstruction({
- name: 'Bob',
- height: 49,
- ticket_count: 6,
- attraction: 'food',
- attraction_name: "Dough Boy's",
- }),
+ { name: 'Jimmy', height: 36, ticket_count: 15, attraction: 'food', attraction_name: 'Taco Shack' },
+ { name: 'Mary', height: 52, ticket_count: 1, attraction: 'food', attraction_name: "Larry's Pizza" },
+ { name: 'Alice', height: 56, ticket_count: 15, attraction: 'food', attraction_name: "Dough Boy's" },
+ { name: 'Bob', height: 49, ticket_count: 6, attraction: 'food', attraction_name: "Dough Boy's" },
]);
});
});
diff --git a/basics/transfer-sol/anchor/Anchor.toml b/basics/transfer-sol/anchor/Anchor.toml
index a8e16fd9b..82ff8f1df 100644
--- a/basics/transfer-sol/anchor/Anchor.toml
+++ b/basics/transfer-sol/anchor/Anchor.toml
@@ -1,3 +1,6 @@
+[toolchain]
+solana_version = "3.1.8"
+
[features]
seeds = false
[programs.localnet]
diff --git a/basics/transfer-sol/native/package.json b/basics/transfer-sol/native/package.json
index b11e23edd..7740a8bb7 100644
--- a/basics/transfer-sol/native/package.json
+++ b/basics/transfer-sol/native/package.json
@@ -8,6 +8,7 @@
},
"dependencies": {
"@solana/web3.js": "^1.47.3",
+ "borsh": "^2.0.0",
"buffer-layout": "^1.2.2",
"fs": "^0.0.1-security"
},
diff --git a/basics/transfer-sol/native/pnpm-lock.yaml b/basics/transfer-sol/native/pnpm-lock.yaml
index 6901d9d9d..26ad80001 100644
--- a/basics/transfer-sol/native/pnpm-lock.yaml
+++ b/basics/transfer-sol/native/pnpm-lock.yaml
@@ -11,6 +11,9 @@ importers:
'@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)
+ borsh:
+ specifier: ^2.0.0
+ version: 2.0.0
buffer-layout:
specifier: ^1.2.2
version: 1.2.2
@@ -168,6 +171,9 @@ packages:
borsh@0.7.0:
resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
+ borsh@2.0.0:
+ resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==}
+
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
@@ -538,12 +544,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.1:
resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.1:
resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
@@ -839,6 +847,8 @@ snapshots:
bs58: 4.0.1
text-encoding-utf-8: 1.0.2
+ borsh@2.0.0: {}
+
brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
diff --git a/basics/transfer-sol/native/tests/instruction.ts b/basics/transfer-sol/native/tests/instruction.ts
index d8a74bf60..311a35188 100644
--- a/basics/transfer-sol/native/tests/instruction.ts
+++ b/basics/transfer-sol/native/tests/instruction.ts
@@ -7,39 +7,12 @@ export enum InstructionType {
ProgramTransfer = 1,
}
-export class TransferInstruction {
- instruction: InstructionType;
- amount: number;
-
- constructor(props: {
- instruction: InstructionType;
- amount: number;
- }) {
- this.instruction = props.instruction;
- this.amount = props.amount;
- }
-
- toBuffer() {
- return Buffer.from(borsh.serialize(TransferInstructionSchema, this));
- }
-
- static fromBuffer(buffer: Buffer) {
- return borsh.deserialize(TransferInstructionSchema, TransferInstruction, buffer);
- }
-}
-
-export const TransferInstructionSchema = new Map([
- [
- TransferInstruction,
- {
- kind: 'struct',
- fields: [
- ['instruction', 'u8'],
- ['amount', 'u64'],
- ],
- },
- ],
-]);
+const TransferInstructionSchema = {
+ struct: {
+ instruction: 'u8',
+ amount: 'u64',
+ },
+};
export function createTransferInstruction(
payerPubkey: PublicKey,
@@ -48,20 +21,20 @@ export function createTransferInstruction(
instruction: InstructionType,
amount: number,
): TransactionInstruction {
- const instructionObject = new TransferInstruction({
- instruction,
- amount,
- });
-
- const ix = new TransactionInstruction({
+ const data = Buffer.from(
+ borsh.serialize(TransferInstructionSchema, {
+ instruction,
+ amount,
+ }),
+ );
+
+ return new TransactionInstruction({
keys: [
{ pubkey: payerPubkey, isSigner: true, isWritable: true },
{ pubkey: recipientPubkey, isSigner: false, isWritable: true },
{ pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
],
programId,
- data: instructionObject.toBuffer(),
+ data,
});
-
- return ix;
}
diff --git a/compression/cnft-burn/anchor/Anchor.toml b/compression/cnft-burn/anchor/Anchor.toml
index 2fc2e1511..b0f7e9190 100644
--- a/compression/cnft-burn/anchor/Anchor.toml
+++ b/compression/cnft-burn/anchor/Anchor.toml
@@ -1,17 +1,18 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
skip-lint = false
[programs.devnet]
-cnft_burn = "FcLCJkSvwQQTDfCde5LdC4DSZAqSyb2AWM9US3wF5Fp7"
+cnft_burn = "C6qxH8n6mZxrrbtMtYWYSp8JR8vkQ55X1o4EBg7twnMv"
[registry]
url = "https://api.apr.dev"
[provider]
-cluster = "Devnet"
+cluster = "devnet"
wallet = "~/.config/solana/id.json"
[scripts]
diff --git a/compression/cnft-burn/anchor/programs/cnft-burn/Cargo.toml b/compression/cnft-burn/anchor/programs/cnft-burn/Cargo.toml
index c6831bb29..fd6933b4d 100644
--- a/compression/cnft-burn/anchor/programs/cnft-burn/Cargo.toml
+++ b/compression/cnft-burn/anchor/programs/cnft-burn/Cargo.toml
@@ -21,8 +21,8 @@ custom-panic = []
[dependencies]
anchor-lang = "0.32.1"
-mpl-bubblegum = "1.3.0"
-spl-account-compression = { version="0.3.0",features = ["no-entrypoint","cpi"] }
+mpl-bubblegum = "2.1.1"
+spl-account-compression = { version = "1.0.0", features = ["no-entrypoint", "cpi"] }
ahash = "=0.8.7"
[lints.rust]
diff --git a/compression/cnft-burn/anchor/programs/cnft-burn/src/lib.rs b/compression/cnft-burn/anchor/programs/cnft-burn/src/lib.rs
index 81bf97db5..086058545 100644
--- a/compression/cnft-burn/anchor/programs/cnft-burn/src/lib.rs
+++ b/compression/cnft-burn/anchor/programs/cnft-burn/src/lib.rs
@@ -1,6 +1,6 @@
use anchor_lang::prelude::*;
-declare_id!("FcLCJkSvwQQTDfCde5LdC4DSZAqSyb2AWM9US3wF5Fp7");
+declare_id!("C6qxH8n6mZxrrbtMtYWYSp8JR8vkQ55X1o4EBg7twnMv");
#[derive(Clone)]
pub struct SPLCompression;
diff --git a/compression/cnft-vault/anchor/Anchor.toml b/compression/cnft-vault/anchor/Anchor.toml
index d52ad2b4c..1173cac4a 100644
--- a/compression/cnft-vault/anchor/Anchor.toml
+++ b/compression/cnft-vault/anchor/Anchor.toml
@@ -1,14 +1,18 @@
+[toolchain]
+solana_version = "3.1.8"
+
[features]
-seeds = false
+resolution = true
skip-lint = false
+
[programs.devnet]
-cnft_vault = "CNftyK7T8udPwYRzZUMWzbh79rKrz9a5GwV2wv7iEHpk"
+cnft_vault = "Fd4iwpPWaCU8BNwGQGtvvrcvG4Tfizq3RgLm8YLBJX6D"
[registry]
url = "https://api.apr.dev"
[provider]
-cluster = "Devnet"
+cluster = "devnet"
wallet = "~/.config/solana/id.json"
[scripts]
diff --git a/compression/cnft-vault/anchor/programs/cnft-vault/Cargo.toml b/compression/cnft-vault/anchor/programs/cnft-vault/Cargo.toml
index 9b924d170..2d49fbd3e 100644
--- a/compression/cnft-vault/anchor/programs/cnft-vault/Cargo.toml
+++ b/compression/cnft-vault/anchor/programs/cnft-vault/Cargo.toml
@@ -9,20 +9,21 @@ crate-type = ["cdylib", "lib"]
name = "cnft_vault"
[features]
+default = []
+cpi = ["no-entrypoint"]
no-entrypoint = []
no-idl = []
no-log-ix-name = []
-cpi = ["no-entrypoint"]
-default = []
+idl-build = ["anchor-lang/idl-build"]
anchor-debug = []
custom-heap = []
custom-panic = []
[dependencies]
-anchor-lang = "0.26.0"
-solana-program = "1.14"
-spl-account-compression = { version="0.1.8", features = ["cpi"] }
-mpl-bubblegum = { version = "0.7.0", features = ["no-entrypoint", "cpi"] }
+anchor-lang = "0.32.1"
+mpl-bubblegum = "2.1.1"
+spl-account-compression = { version = "1.0.0", features = ["no-entrypoint", "cpi"] }
+ahash = "=0.8.7"
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] }
diff --git a/compression/cnft-vault/anchor/programs/cnft-vault/src/lib.rs b/compression/cnft-vault/anchor/programs/cnft-vault/src/lib.rs
index c82c43867..2d1f69e30 100644
--- a/compression/cnft-vault/anchor/programs/cnft-vault/src/lib.rs
+++ b/compression/cnft-vault/anchor/programs/cnft-vault/src/lib.rs
@@ -1,25 +1,18 @@
use anchor_lang::prelude::*;
-use mpl_bubblegum::state::TreeConfig;
-use solana_program::pubkey::Pubkey;
-use spl_account_compression::{program::SplAccountCompression, Noop};
-declare_id!("CNftyK7T8udPwYRzZUMWzbh79rKrz9a5GwV2wv7iEHpk");
+declare_id!("Fd4iwpPWaCU8BNwGQGtvvrcvG4Tfizq3RgLm8YLBJX6D");
#[derive(Clone)]
-pub struct MplBubblegum;
+pub struct SPLCompression;
-impl anchor_lang::Id for MplBubblegum {
+impl anchor_lang::Id for SPLCompression {
fn id() -> Pubkey {
- mpl_bubblegum::id()
+ spl_account_compression::id()
}
}
-// first 8 bytes of SHA256("global:transfer")
-const TRANSFER_DISCRIMINATOR: &[u8; 8] = &[163, 52, 200, 231, 140, 3, 69, 186];
-
#[program]
pub mod cnft_vault {
-
use super::*;
pub fn withdraw_cnft<'info>(
@@ -36,53 +29,45 @@ pub mod cnft_vault {
ctx.accounts.merkle_tree.key()
);
- let mut accounts: Vec = vec![
- AccountMeta::new_readonly(ctx.accounts.tree_authority.key(), false),
- AccountMeta::new_readonly(ctx.accounts.leaf_owner.key(), true),
- AccountMeta::new_readonly(ctx.accounts.leaf_owner.key(), false),
- AccountMeta::new_readonly(ctx.accounts.new_leaf_owner.key(), false),
- AccountMeta::new(ctx.accounts.merkle_tree.key(), false),
- AccountMeta::new_readonly(ctx.accounts.log_wrapper.key(), false),
- AccountMeta::new_readonly(ctx.accounts.compression_program.key(), false),
- AccountMeta::new_readonly(ctx.accounts.system_program.key(), false),
- ];
-
- let mut data: Vec = vec![];
- data.extend(TRANSFER_DISCRIMINATOR);
- data.extend(root);
- data.extend(data_hash);
- data.extend(creator_hash);
- data.extend(nonce.to_le_bytes());
- data.extend(index.to_le_bytes());
-
- let mut account_infos: Vec = vec![
- ctx.accounts.tree_authority.to_account_info(),
- ctx.accounts.leaf_owner.to_account_info(),
- ctx.accounts.leaf_owner.to_account_info(),
- ctx.accounts.new_leaf_owner.to_account_info(),
- ctx.accounts.merkle_tree.to_account_info(),
- ctx.accounts.log_wrapper.to_account_info(),
- ctx.accounts.compression_program.to_account_info(),
- ctx.accounts.system_program.to_account_info(),
- ];
+ let tree_config = ctx.accounts.tree_authority.to_account_info();
+ let leaf_owner = ctx.accounts.leaf_owner.to_account_info();
+ let new_leaf_owner = ctx.accounts.new_leaf_owner.to_account_info();
+ let merkle_tree = ctx.accounts.merkle_tree.to_account_info();
+ let log_wrapper = ctx.accounts.log_wrapper.to_account_info();
+ let compression_program = ctx.accounts.compression_program.to_account_info();
+ let system_program = ctx.accounts.system_program.to_account_info();
+
+ let transfer_cpi = mpl_bubblegum::instructions::TransferCpi::new(
+ &ctx.accounts.bubblegum_program,
+ mpl_bubblegum::instructions::TransferCpiAccounts {
+ tree_config: &tree_config,
+ leaf_owner: (&leaf_owner, true),
+ leaf_delegate: (&leaf_owner, false),
+ new_leaf_owner: &new_leaf_owner,
+ merkle_tree: &merkle_tree,
+ log_wrapper: &log_wrapper,
+ compression_program: &compression_program,
+ system_program: &system_program,
+ },
+ mpl_bubblegum::instructions::TransferInstructionArgs {
+ root,
+ data_hash,
+ creator_hash,
+ nonce,
+ index,
+ },
+ );
- // add "accounts" (hashes) that make up the merkle proof
- for acc in ctx.remaining_accounts.iter() {
- accounts.push(AccountMeta::new_readonly(acc.key(), false));
- account_infos.push(acc.to_account_info());
- }
+ transfer_cpi.invoke_signed_with_remaining_accounts(
+ &[&[b"cNFT-vault", &[ctx.bumps.leaf_owner]]],
+ ctx.remaining_accounts
+ .iter()
+ .map(|account| (account, false, false))
+ .collect::>()
+ .as_slice(),
+ )?;
- msg!("manual cpi call");
- solana_program::program::invoke_signed(
- &solana_program::instruction::Instruction {
- program_id: ctx.accounts.bubblegum_program.key(),
- accounts,
- data,
- },
- &account_infos[..],
- &[&[b"cNFT-vault", &[*ctx.bumps.get("leaf_owner").unwrap()]]],
- )
- .map_err(Into::into)
+ Ok(())
}
#[allow(clippy::too_many_arguments)]
@@ -99,7 +84,7 @@ pub mod cnft_vault {
creator_hash2: [u8; 32],
nonce2: u64,
index2: u32,
- _proof_2_length: u8, // we don't actually need this (proof_2_length = remaining_accounts_len - proof_1_length)
+ _proof_2_length: u8,
) -> Result<()> {
let merkle_tree1 = ctx.accounts.merkle_tree1.key();
let merkle_tree2 = ctx.accounts.merkle_tree2.key();
@@ -112,94 +97,83 @@ pub mod cnft_vault {
// Note: in this example anyone can withdraw any NFT from the vault
// in productions you should check if nft transfers are valid (correct NFT, correct authority)
- let mut accounts1: Vec = vec![
- AccountMeta::new_readonly(ctx.accounts.tree_authority1.key(), false),
- AccountMeta::new_readonly(ctx.accounts.leaf_owner.key(), true),
- AccountMeta::new_readonly(ctx.accounts.leaf_owner.key(), false),
- AccountMeta::new_readonly(ctx.accounts.new_leaf_owner1.key(), false),
- AccountMeta::new(ctx.accounts.merkle_tree1.key(), false),
- AccountMeta::new_readonly(ctx.accounts.log_wrapper.key(), false),
- AccountMeta::new_readonly(ctx.accounts.compression_program.key(), false),
- AccountMeta::new_readonly(ctx.accounts.system_program.key(), false),
- ];
-
- let mut accounts2: Vec = vec![
- AccountMeta::new_readonly(ctx.accounts.tree_authority2.key(), false),
- AccountMeta::new_readonly(ctx.accounts.leaf_owner.key(), true),
- AccountMeta::new_readonly(ctx.accounts.leaf_owner.key(), false),
- AccountMeta::new_readonly(ctx.accounts.new_leaf_owner2.key(), false),
- AccountMeta::new(ctx.accounts.merkle_tree2.key(), false),
- AccountMeta::new_readonly(ctx.accounts.log_wrapper.key(), false),
- AccountMeta::new_readonly(ctx.accounts.compression_program.key(), false),
- AccountMeta::new_readonly(ctx.accounts.system_program.key(), false),
- ];
-
- let mut data1: Vec = vec![];
- data1.extend(TRANSFER_DISCRIMINATOR);
- data1.extend(root1);
- data1.extend(data_hash1);
- data1.extend(creator_hash1);
- data1.extend(nonce1.to_le_bytes());
- data1.extend(index1.to_le_bytes());
- let mut data2: Vec = vec![];
- data2.extend(TRANSFER_DISCRIMINATOR);
- data2.extend(root2);
- data2.extend(data_hash2);
- data2.extend(creator_hash2);
- data2.extend(nonce2.to_le_bytes());
- data2.extend(index2.to_le_bytes());
+ let tree_config1 = ctx.accounts.tree_authority1.to_account_info();
+ let tree_config2 = ctx.accounts.tree_authority2.to_account_info();
+ let leaf_owner = ctx.accounts.leaf_owner.to_account_info();
+ let new_leaf_owner1 = ctx.accounts.new_leaf_owner1.to_account_info();
+ let new_leaf_owner2 = ctx.accounts.new_leaf_owner2.to_account_info();
+ let merkle_tree1_info = ctx.accounts.merkle_tree1.to_account_info();
+ let merkle_tree2_info = ctx.accounts.merkle_tree2.to_account_info();
+ let log_wrapper = ctx.accounts.log_wrapper.to_account_info();
+ let compression_program = ctx.accounts.compression_program.to_account_info();
+ let system_program = ctx.accounts.system_program.to_account_info();
- let mut account_infos1: Vec = vec![
- ctx.accounts.tree_authority1.to_account_info(),
- ctx.accounts.leaf_owner.to_account_info(),
- ctx.accounts.leaf_owner.to_account_info(),
- ctx.accounts.new_leaf_owner1.to_account_info(),
- ctx.accounts.merkle_tree1.to_account_info(),
- ctx.accounts.log_wrapper.to_account_info(),
- ctx.accounts.compression_program.to_account_info(),
- ctx.accounts.system_program.to_account_info(),
- ];
- let mut account_infos2: Vec = vec![
- ctx.accounts.tree_authority2.to_account_info(),
- ctx.accounts.leaf_owner.to_account_info(),
- ctx.accounts.leaf_owner.to_account_info(),
- ctx.accounts.new_leaf_owner2.to_account_info(),
- ctx.accounts.merkle_tree2.to_account_info(),
- ctx.accounts.log_wrapper.to_account_info(),
- ctx.accounts.compression_program.to_account_info(),
- ctx.accounts.system_program.to_account_info(),
- ];
+ let signer_seeds: &[&[u8]] = &[b"cNFT-vault", &[ctx.bumps.leaf_owner]];
- for (i, acc) in ctx.remaining_accounts.iter().enumerate() {
- if i < proof_1_length as usize {
- accounts1.push(AccountMeta::new_readonly(acc.key(), false));
- account_infos1.push(acc.to_account_info());
- } else {
- accounts2.push(AccountMeta::new_readonly(acc.key(), false));
- account_infos2.push(acc.to_account_info());
- }
- }
+ // Split remaining accounts into proof1 and proof2
+ let (proof1_accounts, proof2_accounts) =
+ ctx.remaining_accounts.split_at(proof_1_length as usize);
msg!("withdrawing cNFT#1");
- solana_program::program::invoke_signed(
- &solana_program::instruction::Instruction {
- program_id: ctx.accounts.bubblegum_program.key(),
- accounts: accounts1,
- data: data1,
+ let transfer_cpi1 = mpl_bubblegum::instructions::TransferCpi::new(
+ &ctx.accounts.bubblegum_program,
+ mpl_bubblegum::instructions::TransferCpiAccounts {
+ tree_config: &tree_config1,
+ leaf_owner: (&leaf_owner, true),
+ leaf_delegate: (&leaf_owner, false),
+ new_leaf_owner: &new_leaf_owner1,
+ merkle_tree: &merkle_tree1_info,
+ log_wrapper: &log_wrapper,
+ compression_program: &compression_program,
+ system_program: &system_program,
},
- &account_infos1[..],
- &[&[b"cNFT-vault", &[*ctx.bumps.get("leaf_owner").unwrap()]]],
+ mpl_bubblegum::instructions::TransferInstructionArgs {
+ root: root1,
+ data_hash: data_hash1,
+ creator_hash: creator_hash1,
+ nonce: nonce1,
+ index: index1,
+ },
+ );
+
+ transfer_cpi1.invoke_signed_with_remaining_accounts(
+ &[signer_seeds],
+ proof1_accounts
+ .iter()
+ .map(|account| (account, false, false))
+ .collect::>()
+ .as_slice(),
)?;
msg!("withdrawing cNFT#2");
- solana_program::program::invoke_signed(
- &solana_program::instruction::Instruction {
- program_id: ctx.accounts.bubblegum_program.key(),
- accounts: accounts2,
- data: data2,
+ let transfer_cpi2 = mpl_bubblegum::instructions::TransferCpi::new(
+ &ctx.accounts.bubblegum_program,
+ mpl_bubblegum::instructions::TransferCpiAccounts {
+ tree_config: &tree_config2,
+ leaf_owner: (&leaf_owner, true),
+ leaf_delegate: (&leaf_owner, false),
+ new_leaf_owner: &new_leaf_owner2,
+ merkle_tree: &merkle_tree2_info,
+ log_wrapper: &log_wrapper,
+ compression_program: &compression_program,
+ system_program: &system_program,
+ },
+ mpl_bubblegum::instructions::TransferInstructionArgs {
+ root: root2,
+ data_hash: data_hash2,
+ creator_hash: creator_hash2,
+ nonce: nonce2,
+ index: index2,
},
- &account_infos2[..],
- &[&[b"cNFT-vault", &[*ctx.bumps.get("leaf_owner").unwrap()]]],
+ );
+
+ transfer_cpi2.invoke_signed_with_remaining_accounts(
+ &[signer_seeds],
+ proof2_accounts
+ .iter()
+ .map(|account| (account, false, false))
+ .collect::>()
+ .as_slice(),
)?;
msg!("successfully sent cNFTs");
@@ -209,67 +183,73 @@ pub mod cnft_vault {
#[derive(Accounts)]
pub struct Withdraw<'info> {
+ #[account(mut)]
#[account(
seeds = [merkle_tree.key().as_ref()],
bump,
seeds::program = bubblegum_program.key()
)]
- /// CHECK: This account is neither written to nor read from.
- pub tree_authority: Account<'info, TreeConfig>,
-
+ /// CHECK: This account is modified in the downstream program
+ pub tree_authority: UncheckedAccount<'info>,
#[account(
seeds = [b"cNFT-vault"],
bump,
)]
/// CHECK: This account doesnt even exist (it is just the pda to sign)
- pub leaf_owner: UncheckedAccount<'info>, // sender (the vault in our case)
+ pub leaf_owner: UncheckedAccount<'info>,
/// CHECK: This account is neither written to nor read from.
- pub new_leaf_owner: UncheckedAccount<'info>, // receiver
+ pub new_leaf_owner: UncheckedAccount<'info>,
#[account(mut)]
/// CHECK: This account is modified in the downstream program
pub merkle_tree: UncheckedAccount<'info>,
- pub log_wrapper: Program<'info, Noop>,
- pub compression_program: Program<'info, SplAccountCompression>,
- pub bubblegum_program: Program<'info, MplBubblegum>,
+ /// CHECK: This account is neither written to nor read from.
+ pub log_wrapper: UncheckedAccount<'info>,
+ pub compression_program: Program<'info, SPLCompression>,
+ /// CHECK: This account is neither written to nor read from.
+ pub bubblegum_program: UncheckedAccount<'info>,
pub system_program: Program<'info, System>,
}
#[derive(Accounts)]
pub struct WithdrawTwo<'info> {
+ #[account(mut)]
#[account(
seeds = [merkle_tree1.key().as_ref()],
bump,
seeds::program = bubblegum_program.key()
)]
- /// CHECK: This account is neither written to nor read from.
- pub tree_authority1: Account<'info, TreeConfig>,
+ /// CHECK: This account is modified in the downstream program
+ pub tree_authority1: UncheckedAccount<'info>,
#[account(
seeds = [b"cNFT-vault"],
bump,
)]
/// CHECK: This account doesnt even exist (it is just the pda to sign)
- pub leaf_owner: UncheckedAccount<'info>, // you might need two accounts if the nfts are owned by two different PDAs
+ pub leaf_owner: UncheckedAccount<'info>,
/// CHECK: This account is neither written to nor read from.
- pub new_leaf_owner1: UncheckedAccount<'info>, // receiver
+ pub new_leaf_owner1: UncheckedAccount<'info>,
#[account(mut)]
/// CHECK: This account is modified in the downstream program
pub merkle_tree1: UncheckedAccount<'info>,
+ #[account(mut)]
#[account(
seeds = [merkle_tree2.key().as_ref()],
bump,
seeds::program = bubblegum_program.key()
)]
+ /// CHECK: This account is modified in the downstream program
+ pub tree_authority2: UncheckedAccount<'info>,
/// CHECK: This account is neither written to nor read from.
- pub tree_authority2: Account<'info, TreeConfig>,
- /// CHECK: This account is neither written to nor read from.
- pub new_leaf_owner2: UncheckedAccount<'info>, // receiver
+ pub new_leaf_owner2: UncheckedAccount<'info>,
#[account(mut)]
/// CHECK: This account is modified in the downstream program
pub merkle_tree2: UncheckedAccount<'info>,
- pub log_wrapper: Program<'info, Noop>,
- pub compression_program: Program<'info, SplAccountCompression>,
- pub bubblegum_program: Program<'info, MplBubblegum>,
+ /// CHECK: This account is neither written to nor read from.
+ pub log_wrapper: UncheckedAccount<'info>,
+ pub compression_program: Program<'info, SPLCompression>,
+ /// CHECK: This account is neither written to nor read from.
+ pub bubblegum_program: UncheckedAccount<'info>,
pub system_program: Program<'info, System>,
}
diff --git a/compression/cutils/anchor/Anchor.toml b/compression/cutils/anchor/Anchor.toml
index b9839d2b7..743be3156 100644
--- a/compression/cutils/anchor/Anchor.toml
+++ b/compression/cutils/anchor/Anchor.toml
@@ -1,8 +1,12 @@
+[toolchain]
+solana_version = "3.1.8"
+
[features]
-seeds = false
+resolution = true
skip-lint = false
+
[programs.devnet]
-cutils = "burZc1SfqbrAP35XG63YZZ82C9Zd22QUwhCXoEUZWNF"
+cutils = "BuFyrgRYzg2nPhqYrxZ7d9uYUs4VXtxH71U8EcoAfTQZ"
[registry]
url = "https://api.apr.dev"
diff --git a/compression/cutils/anchor/Cargo.toml b/compression/cutils/anchor/Cargo.toml
index 946f3922e..f39770481 100644
--- a/compression/cutils/anchor/Cargo.toml
+++ b/compression/cutils/anchor/Cargo.toml
@@ -3,3 +3,12 @@ members = [
"programs/*"
]
resolver = "2"
+
+[profile.release]
+overflow-checks = true
+lto = "fat"
+codegen-units = 1
+[profile.release.build-override]
+opt-level = 3
+incremental = false
+codegen-units = 1
diff --git a/compression/cutils/anchor/programs/cutils/Cargo.toml b/compression/cutils/anchor/programs/cutils/Cargo.toml
index 85d33bd9f..836b55a65 100644
--- a/compression/cutils/anchor/programs/cutils/Cargo.toml
+++ b/compression/cutils/anchor/programs/cutils/Cargo.toml
@@ -9,25 +9,22 @@ crate-type = ["cdylib", "lib"]
name = "cutils"
[features]
+default = []
+cpi = ["no-entrypoint"]
no-entrypoint = []
no-idl = []
no-log-ix-name = []
-cpi = ["no-entrypoint"]
-default = []
+idl-build = ["anchor-lang/idl-build"]
anchor-debug = []
custom-heap = []
custom-panic = []
[dependencies]
-anchor-lang = "0.26.0"
-solana-program = "1.14.18"
-spl-account-compression = { version="0.1.8", features = ["cpi"] }
-mpl-bubblegum = { version = "0.7.0", features = ["no-entrypoint", "cpi"] }
-
-# Added due to anchor and solana-cli wonkyness as of late
-getrandom = { version = "0.2.10", features = ["custom"] }
-winnow = "=0.4.1"
-toml_datetime = "=0.6.1"
+anchor-lang = "0.32.1"
+mpl-bubblegum = "2.1.1"
+spl-account-compression = { version = "1.0.0", features = ["no-entrypoint", "cpi"] }
+sha2 = "0.10"
+ahash = "=0.8.7"
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] }
diff --git a/compression/cutils/anchor/programs/cutils/src/actions/mint.rs b/compression/cutils/anchor/programs/cutils/src/actions/mint.rs
index 528740bdc..a9d8a33a5 100644
--- a/compression/cutils/anchor/programs/cutils/src/actions/mint.rs
+++ b/compression/cutils/anchor/programs/cutils/src/actions/mint.rs
@@ -1,36 +1,19 @@
use crate::*;
-use mpl_bubblegum::state::{
- metaplex_adapter::{Collection, Creator, MetadataArgs, TokenProgramVersion, TokenStandard},
- metaplex_anchor::{MplTokenMetadata, TokenMetadata},
- TreeConfig, COLLECTION_CPI_PREFIX,
-};
+use mpl_bubblegum::types::{Collection, Creator, MetadataArgs, TokenProgramVersion, TokenStandard};
#[derive(Accounts)]
#[instruction(params: MintParams)]
pub struct Mint<'info> {
- // #[account(
- // init,
- // seeds = [
- // SEED_DATA,
- // data.tree,
- // data.tree_nonce
- // // assetId directly?
- // ],
- // bump,
- // payer = payer,
- // space = Data::LEN,
- // )]
- // pub data: Account<'info, Data>,
pub payer: Signer<'info>,
- // Bubblegum cNFT stuff MintToCollectionV1
#[account(
mut,
seeds = [merkle_tree.key().as_ref()],
seeds::program = bubblegum_program.key(),
bump,
)]
- pub tree_authority: Box>,
+ /// CHECK: This account is modified in the downstream program
+ pub tree_authority: UncheckedAccount<'info>,
/// CHECK: This account is neither written to nor read from.
pub leaf_owner: AccountInfo<'info>,
@@ -47,7 +30,7 @@ pub struct Mint<'info> {
pub collection_authority: Signer<'info>,
/// CHECK: Optional collection authority record PDA.
- /// If there is no collecton authority record PDA then
+ /// If there is no collection authority record PDA then
/// this must be the Bubblegum program address.
pub collection_authority_record_pda: UncheckedAccount<'info>,
@@ -55,22 +38,22 @@ pub struct Mint<'info> {
pub collection_mint: UncheckedAccount<'info>,
#[account(mut)]
- pub collection_metadata: Box>,
+ /// CHECK: This account is checked in the instruction
+ pub collection_metadata: UncheckedAccount<'info>,
/// CHECK: This account is checked in the instruction
pub edition_account: UncheckedAccount<'info>,
/// CHECK: This is just used as a signing PDA.
- #[account(
- seeds = [COLLECTION_CPI_PREFIX.as_ref()],
- seeds::program = bubblegum_program.key(),
- bump,
- )]
pub bubblegum_signer: UncheckedAccount<'info>,
- pub log_wrapper: Program<'info, Noop>,
- pub compression_program: Program<'info, SplAccountCompression>,
- pub token_metadata_program: Program<'info, MplTokenMetadata>,
- pub bubblegum_program: Program<'info, MplBubblegum>,
+
+ /// CHECK: This account is neither written to nor read from.
+ pub log_wrapper: UncheckedAccount<'info>,
+ pub compression_program: Program<'info, SPLCompression>,
+ /// CHECK: This account is neither written to nor read from.
+ pub token_metadata_program: UncheckedAccount<'info>,
+ /// CHECK: This account is neither written to nor read from.
+ pub bubblegum_program: UncheckedAccount<'info>,
pub system_program: Program<'info, System>,
}
@@ -88,53 +71,72 @@ impl Mint<'_> {
ctx: Context<'_, '_, '_, 'info, Mint<'info>>,
params: MintParams,
) -> Result<()> {
- mpl_bubblegum::cpi::mint_to_collection_v1(
- CpiContext::new(
- ctx.accounts.bubblegum_program.to_account_info(),
- mpl_bubblegum::cpi::accounts::MintToCollectionV1 {
- tree_authority: ctx.accounts.tree_authority.to_account_info(),
- leaf_owner: ctx.accounts.leaf_owner.to_account_info(),
- leaf_delegate: ctx.accounts.leaf_delegate.to_account_info(),
- merkle_tree: ctx.accounts.merkle_tree.to_account_info(),
- payer: ctx.accounts.payer.to_account_info(),
- tree_delegate: ctx.accounts.tree_delegate.to_account_info(),
- collection_authority: ctx.accounts.collection_authority.to_account_info(),
- collection_authority_record_pda: ctx
- .accounts
- .collection_authority_record_pda
- .to_account_info(),
- collection_mint: ctx.accounts.collection_mint.to_account_info(),
- collection_metadata: ctx.accounts.collection_metadata.to_account_info(),
- edition_account: ctx.accounts.edition_account.to_account_info(),
- bubblegum_signer: ctx.accounts.bubblegum_signer.to_account_info(),
- log_wrapper: ctx.accounts.log_wrapper.to_account_info(),
- compression_program: ctx.accounts.compression_program.to_account_info(),
- token_metadata_program: ctx.accounts.token_metadata_program.to_account_info(),
- system_program: ctx.accounts.system_program.to_account_info(),
+ let tree_authority = ctx.accounts.tree_authority.to_account_info();
+ let leaf_owner = ctx.accounts.leaf_owner.to_account_info();
+ let leaf_delegate = ctx.accounts.leaf_delegate.to_account_info();
+ let merkle_tree = ctx.accounts.merkle_tree.to_account_info();
+ let payer = ctx.accounts.payer.to_account_info();
+ let tree_delegate = ctx.accounts.tree_delegate.to_account_info();
+ let collection_authority = ctx.accounts.collection_authority.to_account_info();
+ let collection_authority_record_pda = ctx
+ .accounts
+ .collection_authority_record_pda
+ .to_account_info();
+ let collection_mint = ctx.accounts.collection_mint.to_account_info();
+ let collection_metadata = ctx.accounts.collection_metadata.to_account_info();
+ let edition_account = ctx.accounts.edition_account.to_account_info();
+ let bubblegum_signer = ctx.accounts.bubblegum_signer.to_account_info();
+ let log_wrapper = ctx.accounts.log_wrapper.to_account_info();
+ let compression_program = ctx.accounts.compression_program.to_account_info();
+ let token_metadata_program = ctx.accounts.token_metadata_program.to_account_info();
+ let system_program = ctx.accounts.system_program.to_account_info();
+
+ let mint_cpi = mpl_bubblegum::instructions::MintToCollectionV1Cpi::new(
+ &ctx.accounts.bubblegum_program,
+ mpl_bubblegum::instructions::MintToCollectionV1CpiAccounts {
+ tree_config: &tree_authority,
+ leaf_owner: &leaf_owner,
+ leaf_delegate: &leaf_delegate,
+ merkle_tree: &merkle_tree,
+ payer: &payer,
+ tree_creator_or_delegate: &tree_delegate,
+ collection_authority: &collection_authority,
+ collection_authority_record_pda: Some(&collection_authority_record_pda),
+ collection_mint: &collection_mint,
+ collection_metadata: &collection_metadata,
+ collection_edition: &edition_account,
+ bubblegum_signer: &bubblegum_signer,
+ log_wrapper: &log_wrapper,
+ compression_program: &compression_program,
+ token_metadata_program: &token_metadata_program,
+ system_program: &system_program,
+ },
+ mpl_bubblegum::instructions::MintToCollectionV1InstructionArgs {
+ metadata: MetadataArgs {
+ name: "BURGER".to_string(),
+ symbol: "BURG".to_string(),
+ uri: params.uri,
+ creators: vec![Creator {
+ address: ctx.accounts.collection_authority.key(),
+ verified: false,
+ share: 100,
+ }],
+ seller_fee_basis_points: 0,
+ primary_sale_happened: false,
+ is_mutable: false,
+ edition_nonce: Some(0),
+ uses: None,
+ collection: Some(Collection {
+ verified: false,
+ key: ctx.accounts.collection_mint.key(),
+ }),
+ token_program_version: TokenProgramVersion::Original,
+ token_standard: Some(TokenStandard::NonFungible),
},
- ),
- MetadataArgs {
- name: "BURGER".to_string(),
- symbol: "BURG".to_string(),
- uri: params.uri,
- creators: vec![Creator {
- address: ctx.accounts.collection_authority.key(),
- verified: false,
- share: 100,
- }],
- seller_fee_basis_points: 0,
- primary_sale_happened: false,
- is_mutable: false,
- edition_nonce: Some(0),
- uses: None,
- collection: Some(Collection {
- verified: false,
- key: ctx.accounts.collection_mint.key(),
- }),
- token_program_version: TokenProgramVersion::Original,
- token_standard: Some(TokenStandard::NonFungible),
},
- )?;
+ );
+
+ mint_cpi.invoke()?;
Ok(())
}
diff --git a/compression/cutils/anchor/programs/cutils/src/actions/verify.rs b/compression/cutils/anchor/programs/cutils/src/actions/verify.rs
index 8d5cd6332..7ee691c2e 100644
--- a/compression/cutils/anchor/programs/cutils/src/actions/verify.rs
+++ b/compression/cutils/anchor/programs/cutils/src/actions/verify.rs
@@ -1,7 +1,6 @@
use crate::*;
-use mpl_bubblegum::state::leaf_schema::LeafSchema;
+use mpl_bubblegum::types::LeafSchema;
use mpl_bubblegum::utils::get_asset_id;
-use spl_account_compression::program::SplAccountCompression;
#[derive(Accounts)]
#[instruction(params: VerifyParams)]
@@ -14,7 +13,7 @@ pub struct Verify<'info> {
/// CHECK: unsafe
pub merkle_tree: UncheckedAccount<'info>,
- pub compression_program: Program<'info, SplAccountCompression>,
+ pub compression_program: Program<'info, SPLCompression>,
}
#[derive(Clone, AnchorSerialize, AnchorDeserialize)]
@@ -36,28 +35,51 @@ impl Verify<'_> {
params: &VerifyParams,
) -> Result<()> {
let asset_id = get_asset_id(&ctx.accounts.merkle_tree.key(), params.nonce);
- let leaf = LeafSchema::new_v0(
- asset_id,
- ctx.accounts.leaf_owner.key(),
- ctx.accounts.leaf_delegate.key(),
- params.nonce,
- params.data_hash,
- params.creator_hash,
- );
+ let leaf = LeafSchema::V1 {
+ id: asset_id,
+ owner: ctx.accounts.leaf_owner.key(),
+ delegate: ctx.accounts.leaf_delegate.key(),
+ nonce: params.nonce,
+ data_hash: params.data_hash,
+ creator_hash: params.creator_hash,
+ };
- let cpi_ctx = CpiContext::new(
- ctx.accounts.compression_program.to_account_info(),
- spl_account_compression::cpi::accounts::VerifyLeaf {
- merkle_tree: ctx.accounts.merkle_tree.to_account_info(),
- },
- )
- .with_remaining_accounts(ctx.remaining_accounts.to_vec());
+ // Build verify_leaf instruction manually because spl-account-compression 1.0.0's
+ // CPI module is built against anchor-lang 0.31, which has incompatible traits with
+ // anchor-lang 0.32.1. Once spl-account-compression rebuilds against 0.32.1+, replace
+ // this with spl_account_compression::cpi::verify_leaf().
+ use anchor_lang::solana_program::instruction::{AccountMeta, Instruction};
+ use sha2::{Digest, Sha256};
+
+ let mut accounts = vec![AccountMeta::new_readonly(
+ ctx.accounts.merkle_tree.key(),
+ false,
+ )];
+ for acc in ctx.remaining_accounts.iter() {
+ accounts.push(AccountMeta::new_readonly(acc.key(), false));
+ }
+
+ // Compute the Anchor instruction discriminator: sha256("global:verify_leaf")[..8]
+ let discriminator: [u8; 8] = Sha256::digest(b"global:verify_leaf")[..8]
+ .try_into()
+ .unwrap();
+ let mut data = discriminator.to_vec();
+ data.extend_from_slice(¶ms.root);
+ data.extend_from_slice(&leaf.hash());
+ data.extend_from_slice(¶ms.index.to_le_bytes());
- spl_account_compression::cpi::verify_leaf(
- cpi_ctx,
- params.root,
- leaf.to_node(),
- params.index,
+ let mut account_infos = vec![ctx.accounts.merkle_tree.to_account_info()];
+ for acc in ctx.remaining_accounts.iter() {
+ account_infos.push(acc.to_account_info());
+ }
+
+ anchor_lang::solana_program::program::invoke(
+ &Instruction {
+ program_id: ctx.accounts.compression_program.key(),
+ accounts,
+ data,
+ },
+ &account_infos,
)?;
Ok(())
diff --git a/compression/cutils/anchor/programs/cutils/src/lib.rs b/compression/cutils/anchor/programs/cutils/src/lib.rs
index 2bf31bb53..a2cf0c61d 100644
--- a/compression/cutils/anchor/programs/cutils/src/lib.rs
+++ b/compression/cutils/anchor/programs/cutils/src/lib.rs
@@ -5,19 +5,17 @@ pub mod state;
pub use state::*;
use anchor_lang::prelude::*;
-use solana_program::pubkey::Pubkey;
-use spl_account_compression::{program::SplAccountCompression, Noop};
#[derive(Clone)]
-pub struct MplBubblegum;
+pub struct SPLCompression;
-impl anchor_lang::Id for MplBubblegum {
+impl anchor_lang::Id for SPLCompression {
fn id() -> Pubkey {
- mpl_bubblegum::id()
+ spl_account_compression::id()
}
}
-declare_id!("burZc1SfqbrAP35XG63YZZ82C9Zd22QUwhCXoEUZWNF");
+declare_id!("BuFyrgRYzg2nPhqYrxZ7d9uYUs4VXtxH71U8EcoAfTQZ");
#[program]
pub mod cutils {
diff --git a/oracles/pyth/anchor/Anchor.toml b/oracles/pyth/anchor/Anchor.toml
index 647df9653..0e44326bc 100644
--- a/oracles/pyth/anchor/Anchor.toml
+++ b/oracles/pyth/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/tokens/create-token/anchor/Anchor.toml b/tokens/create-token/anchor/Anchor.toml
index a6670f65b..eb2dbf13e 100644
--- a/tokens/create-token/anchor/Anchor.toml
+++ b/tokens/create-token/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/tokens/create-token/native/package.json b/tokens/create-token/native/package.json
index df47f36c1..efc7b7091 100644
--- a/tokens/create-token/native/package.json
+++ b/tokens/create-token/native/package.json
@@ -9,7 +9,7 @@
"@metaplex-foundation/mpl-token-metadata": "^2.5.2",
"@solana/spl-token": "^0.3.7",
"@solana/web3.js": "^1.73.0",
- "borsh": "^0.7.0",
+ "borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
},
@@ -20,7 +20,7 @@
"chai": "^4.3.4",
"mocha": "^9.0.3",
"ts-mocha": "^10.0.0",
- "typescript": "^4.3.5"
+ "typescript": "^5"
},
"type": "module"
}
diff --git a/tokens/create-token/native/pnpm-lock.yaml b/tokens/create-token/native/pnpm-lock.yaml
index 35425fb15..132d8ed9e 100644
--- a/tokens/create-token/native/pnpm-lock.yaml
+++ b/tokens/create-token/native/pnpm-lock.yaml
@@ -10,16 +10,16 @@ importers:
dependencies:
'@metaplex-foundation/mpl-token-metadata':
specifier: ^2.5.2
- version: 2.13.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ version: 2.13.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)
'@solana/spl-token':
specifier: ^0.3.7
- version: 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ version: 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)
'@solana/web3.js':
specifier: ^1.73.0
- version: 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ version: 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
borsh:
- specifier: ^0.7.0
- version: 0.7.0
+ specifier: ^2.0.0
+ version: 2.0.0
buffer:
specifier: ^6.0.3
version: 6.0.3
@@ -46,8 +46,8 @@ importers:
specifier: ^10.0.0
version: 10.1.0(mocha@9.2.2)
typescript:
- specifier: ^4.3.5
- version: 4.9.5
+ specifier: ^5
+ version: 5.9.3
packages:
@@ -262,6 +262,9 @@ packages:
borsh@0.7.0:
resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
+ borsh@2.0.0:
+ resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==}
+
brace-expansion@1.1.12:
resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
@@ -827,9 +830,9 @@ packages:
resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==}
engines: {node: '>=4'}
- typescript@4.9.5:
- resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
- engines: {node: '>=4.2.0'}
+ typescript@5.9.3:
+ resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
+ engines: {node: '>=14.17'}
hasBin: true
undici-types@7.16.0:
@@ -923,10 +926,10 @@ snapshots:
'@babel/runtime@7.28.4': {}
- '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)':
dependencies:
'@metaplex-foundation/beet': 0.7.2
- '@solana/web3.js': 1.98.4(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@5.9.3)(utf-8-validate@5.0.10)
bs58: 5.0.0
debug: 4.4.3
transitivePeerDependencies:
@@ -947,13 +950,13 @@ snapshots:
'@metaplex-foundation/cusper@0.0.2': {}
- '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)':
dependencies:
'@metaplex-foundation/beet': 0.7.2
- '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
'@metaplex-foundation/cusper': 0.0.2
- '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(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)
+ '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
bn.js: 5.2.2
debug: 4.4.3
transitivePeerDependencies:
@@ -970,10 +973,10 @@ snapshots:
'@noble/hashes@1.8.0': {}
- '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)':
+ '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
bigint-buffer: 1.1.5
bignumber.js: 9.3.1
transitivePeerDependencies:
@@ -986,91 +989,91 @@ snapshots:
dependencies:
buffer: 6.0.3
- '@solana/codecs-core@2.0.0-rc.1(typescript@4.9.5)':
+ '@solana/codecs-core@2.0.0-rc.1(typescript@5.9.3)':
dependencies:
- '@solana/errors': 2.0.0-rc.1(typescript@4.9.5)
- typescript: 4.9.5
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
+ typescript: 5.9.3
- '@solana/codecs-core@2.3.0(typescript@4.9.5)':
+ '@solana/codecs-core@2.3.0(typescript@5.9.3)':
dependencies:
- '@solana/errors': 2.3.0(typescript@4.9.5)
- typescript: 4.9.5
+ '@solana/errors': 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
- '@solana/codecs-data-structures@2.0.0-rc.1(typescript@4.9.5)':
+ '@solana/codecs-data-structures@2.0.0-rc.1(typescript@5.9.3)':
dependencies:
- '@solana/codecs-core': 2.0.0-rc.1(typescript@4.9.5)
- '@solana/codecs-numbers': 2.0.0-rc.1(typescript@4.9.5)
- '@solana/errors': 2.0.0-rc.1(typescript@4.9.5)
- typescript: 4.9.5
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
+ typescript: 5.9.3
- '@solana/codecs-numbers@2.0.0-rc.1(typescript@4.9.5)':
+ '@solana/codecs-numbers@2.0.0-rc.1(typescript@5.9.3)':
dependencies:
- '@solana/codecs-core': 2.0.0-rc.1(typescript@4.9.5)
- '@solana/errors': 2.0.0-rc.1(typescript@4.9.5)
- typescript: 4.9.5
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
+ typescript: 5.9.3
- '@solana/codecs-numbers@2.3.0(typescript@4.9.5)':
+ '@solana/codecs-numbers@2.3.0(typescript@5.9.3)':
dependencies:
- '@solana/codecs-core': 2.3.0(typescript@4.9.5)
- '@solana/errors': 2.3.0(typescript@4.9.5)
- typescript: 4.9.5
+ '@solana/codecs-core': 2.3.0(typescript@5.9.3)
+ '@solana/errors': 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
- '@solana/codecs-strings@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)':
+ '@solana/codecs-strings@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
dependencies:
- '@solana/codecs-core': 2.0.0-rc.1(typescript@4.9.5)
- '@solana/codecs-numbers': 2.0.0-rc.1(typescript@4.9.5)
- '@solana/errors': 2.0.0-rc.1(typescript@4.9.5)
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
fastestsmallesttextencoderdecoder: 1.0.22
- typescript: 4.9.5
+ typescript: 5.9.3
- '@solana/codecs@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)':
+ '@solana/codecs@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
dependencies:
- '@solana/codecs-core': 2.0.0-rc.1(typescript@4.9.5)
- '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@4.9.5)
- '@solana/codecs-numbers': 2.0.0-rc.1(typescript@4.9.5)
- '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)
- '@solana/options': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)
- typescript: 4.9.5
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/options': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ typescript: 5.9.3
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- '@solana/errors@2.0.0-rc.1(typescript@4.9.5)':
+ '@solana/errors@2.0.0-rc.1(typescript@5.9.3)':
dependencies:
chalk: 5.6.2
commander: 12.1.0
- typescript: 4.9.5
+ typescript: 5.9.3
- '@solana/errors@2.3.0(typescript@4.9.5)':
+ '@solana/errors@2.3.0(typescript@5.9.3)':
dependencies:
chalk: 5.6.2
commander: 14.0.1
- typescript: 4.9.5
+ typescript: 5.9.3
- '@solana/options@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)':
+ '@solana/options@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
dependencies:
- '@solana/codecs-core': 2.0.0-rc.1(typescript@4.9.5)
- '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@4.9.5)
- '@solana/codecs-numbers': 2.0.0-rc.1(typescript@4.9.5)
- '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)
- '@solana/errors': 2.0.0-rc.1(typescript@4.9.5)
- typescript: 4.9.5
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
+ typescript: 5.9.3
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)':
+ '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
dependencies:
- '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)
- '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- typescript
- '@solana/spl-token@0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@5.0.10)':
+ '@solana/spl-token@0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
- '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)
- '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
buffer: 6.0.3
transitivePeerDependencies:
- bufferutil
@@ -1079,13 +1082,13 @@ snapshots:
- typescript
- utf-8-validate
- '@solana/web3.js@1.98.4(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@5.9.3)(utf-8-validate@5.0.10)':
dependencies:
'@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.3.0(typescript@4.9.5)
+ '@solana/codecs-numbers': 2.3.0(typescript@5.9.3)
agentkeepalive: 4.6.0
bn.js: 5.2.2
borsh: 0.7.0
@@ -1206,6 +1209,8 @@ snapshots:
bs58: 4.0.1
text-encoding-utf-8: 1.0.2
+ borsh@2.0.0: {}
+
brace-expansion@1.1.12:
dependencies:
balanced-match: 1.0.2
@@ -1790,7 +1795,7 @@ snapshots:
type-detect@4.1.0: {}
- typescript@4.9.5: {}
+ typescript@5.9.3: {}
undici-types@7.16.0: {}
diff --git a/tokens/create-token/native/tests/test.ts b/tokens/create-token/native/tests/test.ts
index 98a376200..d583c7798 100644
--- a/tokens/create-token/native/tests/test.ts
+++ b/tokens/create-token/native/tests/test.ts
@@ -14,37 +14,22 @@ import {
import * as borsh from 'borsh';
function createKeypairFromFile(path: string): Keypair {
- return Keypair.fromSecretKey(Buffer.from(JSON.parse(require('node:fs').readFileSync(path, 'utf-8'))));
+ return Keypair.fromSecretKey(Uint8Array.from(JSON.parse(require('node:fs').readFileSync(path, 'utf-8'))));
}
-class Assignable {
- constructor(properties) {
- for (const [key, value] of Object.entries(properties)) {
- this[key] = value;
- }
- }
+const CreateTokenArgsSchema = {
+ struct: {
+ token_title: 'string',
+ token_symbol: 'string',
+ token_uri: 'string',
+ token_decimals: 'u8',
+ },
+};
+
+function borshSerialize(schema: borsh.Schema, data: object): Buffer {
+ return Buffer.from(borsh.serialize(schema, data));
}
-class CreateTokenArgs extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(CreateTokenArgsSchema, this));
- }
-}
-const CreateTokenArgsSchema = new Map([
- [
- CreateTokenArgs,
- {
- kind: 'struct',
- fields: [
- ['token_title', 'string'],
- ['token_symbol', 'string'],
- ['token_uri', 'string'],
- ['token_decimals', 'u8'],
- ],
- },
- ],
-]);
-
describe('Create Tokens!', async () => {
// const connection = new Connection(`http://localhost:8899`, 'confirmed');
const connection = new Connection('https://api.devnet.solana.com/', 'confirmed');
@@ -61,7 +46,7 @@ describe('Create Tokens!', async () => {
// SPL Token default = 9 decimals
//
- const instructionData = new CreateTokenArgs({
+ const instructionData = borshSerialize(CreateTokenArgsSchema, {
token_title: 'Solana Gold',
token_symbol: 'GOLDSOL',
token_uri: 'https://raw.githubusercontent.com/solana-developers/program-examples/new-examples/tokens/tokens/.assets/spl-token.json',
@@ -84,7 +69,7 @@ describe('Create Tokens!', async () => {
}, // Token metadata program
],
programId: program.publicKey,
- data: instructionData.toBuffer(),
+ data: instructionData,
});
const sx = await sendAndConfirmTransaction(connection, new Transaction().add(ix), [payer, mintKeypair]);
@@ -104,7 +89,7 @@ describe('Create Tokens!', async () => {
// NFT default = 0 decimals
//
- const instructionData = new CreateTokenArgs({
+ const instructionData = borshSerialize(CreateTokenArgsSchema, {
token_title: 'Homer NFT',
token_symbol: 'HOMR',
token_uri: 'https://raw.githubusercontent.com/solana-developers/program-examples/new-examples/tokens/tokens/.assets/nft.json',
@@ -127,7 +112,7 @@ describe('Create Tokens!', async () => {
}, // Token metadata program
],
programId: program.publicKey,
- data: instructionData.toBuffer(),
+ data: instructionData,
});
const sx = await sendAndConfirmTransaction(connection, new Transaction().add(ix), [payer, mintKeypair]);
diff --git a/tokens/escrow/anchor/Anchor.toml b/tokens/escrow/anchor/Anchor.toml
index c3ccc6438..7a60c0311 100644
--- a/tokens/escrow/anchor/Anchor.toml
+++ b/tokens/escrow/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/tokens/escrow/native/package.json b/tokens/escrow/native/package.json
index 184bfe818..f84d15dd1 100644
--- a/tokens/escrow/native/package.json
+++ b/tokens/escrow/native/package.json
@@ -6,15 +6,16 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
+ "@solana/spl-token": "^0.4.9",
"@solana/web3.js": "^1.95.4",
- "@solana/spl-token": "^0.4.9"
+ "bn.js": "^5.2.2"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
"@types/chai": "^4.3.1",
"@types/mocha": "^10.0.9",
"@types/node": "^22.8.6",
- "borsh": "0.7.0",
+ "borsh": "^2.0.0",
"chai": "^4.3.4",
"mocha": "^10.8.2",
"solana-bankrun": "^0.4.0",
diff --git a/tokens/escrow/native/pnpm-lock.yaml b/tokens/escrow/native/pnpm-lock.yaml
index 7c6e8b5f1..e712ceb12 100644
--- a/tokens/escrow/native/pnpm-lock.yaml
+++ b/tokens/escrow/native/pnpm-lock.yaml
@@ -14,6 +14,9 @@ importers:
'@solana/web3.js':
specifier: ^1.95.4
version: 1.95.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ bn.js:
+ specifier: ^5.2.2
+ version: 5.2.2
devDependencies:
'@types/bn.js':
specifier: ^5.1.0
@@ -28,8 +31,8 @@ importers:
specifier: ^22.8.6
version: 22.8.6
borsh:
- specifier: 0.7.0
- version: 0.7.0
+ specifier: ^2.0.0
+ version: 2.0.0
chai:
specifier: ^4.3.4
version: 4.5.0
@@ -216,12 +219,15 @@ packages:
bindings@1.5.0:
resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
- 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==}
+ borsh@2.0.0:
+ resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==}
+
brace-expansion@2.0.1:
resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
@@ -574,12 +580,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.4.0:
resolution: {integrity: sha512-Nv328ZanmURdYfcLL+jwB1oMzX4ZzK57NwIcuJjGlf0XSNLq96EoaO5buEiUTo4Ls7MqqMyLbClHcrPE7/aKyA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.4.0:
resolution: {integrity: sha512-NMmXUipPBkt8NgnyNO3SCnPERP6xT/AMNMBooljGA3+rG6NN8lmXJsKeLqQTiFsDeWD74U++QM/DgcueSWvrIg==}
@@ -855,7 +863,7 @@ snapshots:
'@solana/buffer-layout': 4.0.1
agentkeepalive: 4.5.0
bigint-buffer: 1.1.5
- bn.js: 5.2.1
+ bn.js: 5.2.2
borsh: 0.7.0
bs58: 4.0.1
buffer: 6.0.3
@@ -952,14 +960,16 @@ snapshots:
dependencies:
file-uri-to-path: 1.0.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
+ borsh@2.0.0: {}
+
brace-expansion@2.0.1:
dependencies:
balanced-match: 1.0.2
diff --git a/tokens/escrow/native/tests/account.ts b/tokens/escrow/native/tests/account.ts
index 207789a6c..3eda3b785 100644
--- a/tokens/escrow/native/tests/account.ts
+++ b/tokens/escrow/native/tests/account.ts
@@ -1,62 +1,16 @@
-import { PublicKey } from '@solana/web3.js';
import * as borsh from 'borsh';
-export class OfferAccount {
- id: bigint;
- maker: Uint8Array;
- token_mint_a: Uint8Array;
- token_mint_b: Uint8Array;
- token_b_wanted_amount: bigint;
- bump: number;
-
- constructor(offer: OfferRaw) {
- this.id = offer.id;
- this.maker = offer.maker;
- this.token_b_wanted_amount = offer.token_b_wanted_amount;
- this.token_mint_a = offer.token_mint_a;
- this.token_mint_b = offer.token_mint_b;
- this.bump = this.bump;
- }
-
- toBuffer() {
- return Buffer.from(borsh.serialize(OfferSchema, this));
- }
-
- static fromBuffer(buffer: Uint8Array) {
- return borsh.deserialize(OfferSchema, OfferAccount, Buffer.from(buffer));
- }
-
- toData(): Offer {
- return {
- id: this.id,
- maker: new PublicKey(this.maker),
- token_mint_a: new PublicKey(this.token_mint_a),
- token_mint_b: new PublicKey(this.token_mint_b),
- token_b_wanted_amount: this.token_b_wanted_amount,
- bump: this.bump,
- };
- }
-}
-
-const OfferSchema = new Map([
- [
- OfferAccount,
- {
- kind: 'struct',
- fields: [
- ['id', 'u64'],
- ['maker', [32]],
- ['token_mint_a', [32]],
- ['token_mint_b', [32]],
- ['token_b_wanted_amount', 'u64'],
- ['bump', 'u8'],
- ],
- },
- ],
-]);
+export const OfferSchema = {
+ struct: {
+ maker: { array: { type: 'u8', len: 32 } },
+ token_mint_a: { array: { type: 'u8', len: 32 } },
+ token_mint_b: { array: { type: 'u8', len: 32 } },
+ token_b_wanted_amount: 'u64',
+ bump: 'u8',
+ },
+};
-type OfferRaw = {
- id: bigint;
+export type OfferRaw = {
maker: Uint8Array;
token_mint_a: Uint8Array;
token_mint_b: Uint8Array;
@@ -64,11 +18,6 @@ type OfferRaw = {
bump: number;
};
-type Offer = {
- id: bigint;
- maker: PublicKey;
- token_mint_a: PublicKey;
- token_mint_b: PublicKey;
- token_b_wanted_amount: bigint;
- bump: number;
-};
+export function borshSerialize(schema: borsh.Schema, data: object): Buffer {
+ return Buffer.from(borsh.serialize(schema, data));
+}
diff --git a/tokens/escrow/native/tests/instruction.ts b/tokens/escrow/native/tests/instruction.ts
index 54a3874d4..7b033c089 100644
--- a/tokens/escrow/native/tests/instruction.ts
+++ b/tokens/escrow/native/tests/instruction.ts
@@ -3,56 +3,30 @@ import { PublicKey, SystemProgram, TransactionInstruction } from '@solana/web3.j
import BN from 'bn.js';
import * as borsh from 'borsh';
-class Assignable {
- constructor(properties) {
- for (const [key, value] of Object.entries(properties)) {
- this[key] = value;
- }
- }
-}
-
enum EscrowInstruction {
MakeOffer = 0,
TakeOffer = 1,
}
-class MakeOffer extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(MakeOfferSchema, this));
- }
-}
+const MakeOfferSchema = {
+ struct: {
+ instruction: 'u8',
+ id: 'u64',
+ token_a_offered_amount: 'u64',
+ token_b_wanted_amount: 'u64',
+ },
+};
-const MakeOfferSchema = new Map([
- [
- MakeOffer,
- {
- kind: 'struct',
- fields: [
- ['instruction', 'u8'],
- ['id', 'u64'],
- ['token_a_offered_amount', 'u64'],
- ['token_b_wanted_amount', 'u64'],
- ],
- },
- ],
-]);
+const TakeOfferSchema = {
+ struct: {
+ instruction: 'u8',
+ },
+};
-class TakeOffer extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(TakeOfferSchema, this));
- }
+function borshSerialize(schema: borsh.Schema, data: object): Buffer {
+ return Buffer.from(borsh.serialize(schema, data));
}
-const TakeOfferSchema = new Map([
- [
- TakeOffer,
- {
- kind: 'struct',
- fields: [['instruction', 'u8']],
- },
- ],
-]);
-
export function buildMakeOffer(props: {
id: BN;
token_a_offered_amount: BN;
@@ -66,7 +40,7 @@ export function buildMakeOffer(props: {
payer: PublicKey;
programId: PublicKey;
}) {
- const ix = new MakeOffer({
+ const data = borshSerialize(MakeOfferSchema, {
instruction: EscrowInstruction.MakeOffer,
id: props.id,
token_a_offered_amount: props.token_a_offered_amount,
@@ -75,55 +49,19 @@ export function buildMakeOffer(props: {
return new TransactionInstruction({
keys: [
- {
- pubkey: props.offer,
- isSigner: false,
- isWritable: true,
- },
- {
- pubkey: props.mint_a,
- isSigner: false,
- isWritable: false,
- },
- {
- pubkey: props.mint_b,
- isSigner: false,
- isWritable: false,
- },
- {
- pubkey: props.maker_token_a,
- isSigner: false,
- isWritable: true,
- },
- {
- pubkey: props.vault,
- isSigner: false,
- isWritable: true,
- },
- {
- pubkey: props.maker,
- isSigner: true,
- isWritable: true,
- },
- {
- pubkey: props.payer,
- isSigner: true,
- isWritable: true,
- },
- {
- pubkey: TOKEN_PROGRAM_ID,
- isSigner: false,
- isWritable: false,
- },
- {
- pubkey: ASSOCIATED_TOKEN_PROGRAM_ID,
- isSigner: false,
- isWritable: false,
- },
+ { pubkey: props.offer, isSigner: false, isWritable: true },
+ { pubkey: props.mint_a, isSigner: false, isWritable: false },
+ { pubkey: props.mint_b, isSigner: false, isWritable: false },
+ { pubkey: props.maker_token_a, isSigner: false, isWritable: true },
+ { pubkey: props.vault, isSigner: false, isWritable: true },
+ { pubkey: props.maker, isSigner: true, isWritable: true },
+ { pubkey: props.payer, isSigner: true, isWritable: true },
+ { pubkey: TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
+ { pubkey: ASSOCIATED_TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
{ pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
],
programId: props.programId,
- data: ix.toBuffer(),
+ data,
});
}
@@ -140,75 +78,27 @@ export function buildTakeOffer(props: {
payer: PublicKey;
programId: PublicKey;
}) {
- const ix = new TakeOffer({
+ const data = borshSerialize(TakeOfferSchema, {
instruction: EscrowInstruction.TakeOffer,
});
return new TransactionInstruction({
keys: [
- {
- pubkey: props.offer,
- isSigner: false,
- isWritable: true,
- },
- {
- pubkey: props.mint_a,
- isSigner: false,
- isWritable: false,
- },
- {
- pubkey: props.mint_b,
- isSigner: false,
- isWritable: false,
- },
- {
- pubkey: props.maker_token_b,
- isSigner: false,
- isWritable: true,
- },
- {
- pubkey: props.taker_token_a,
- isSigner: false,
- isWritable: true,
- },
- {
- pubkey: props.taker_token_b,
- isSigner: false,
- isWritable: true,
- },
- {
- pubkey: props.vault,
- isSigner: false,
- isWritable: true,
- },
- {
- pubkey: props.maker,
- isSigner: false,
- isWritable: false,
- },
- {
- pubkey: props.taker,
- isSigner: true,
- isWritable: true,
- },
- {
- pubkey: props.payer,
- isSigner: true,
- isWritable: true,
- },
- {
- pubkey: TOKEN_PROGRAM_ID,
- isSigner: false,
- isWritable: false,
- },
- {
- pubkey: ASSOCIATED_TOKEN_PROGRAM_ID,
- isSigner: false,
- isWritable: false,
- },
+ { pubkey: props.offer, isSigner: false, isWritable: true },
+ { pubkey: props.mint_a, isSigner: false, isWritable: false },
+ { pubkey: props.mint_b, isSigner: false, isWritable: false },
+ { pubkey: props.maker_token_b, isSigner: false, isWritable: true },
+ { pubkey: props.taker_token_a, isSigner: false, isWritable: true },
+ { pubkey: props.taker_token_b, isSigner: false, isWritable: true },
+ { pubkey: props.vault, isSigner: false, isWritable: true },
+ { pubkey: props.maker, isSigner: false, isWritable: false },
+ { pubkey: props.taker, isSigner: true, isWritable: true },
+ { pubkey: props.payer, isSigner: true, isWritable: true },
+ { pubkey: TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
+ { pubkey: ASSOCIATED_TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
{ pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
],
programId: props.programId,
- data: ix.toBuffer(),
+ data,
});
}
diff --git a/tokens/escrow/native/tests/test.ts b/tokens/escrow/native/tests/test.ts
index 0ae394509..a36bd38ba 100644
--- a/tokens/escrow/native/tests/test.ts
+++ b/tokens/escrow/native/tests/test.ts
@@ -3,7 +3,8 @@ import { AccountLayout } from '@solana/spl-token';
import { Transaction } from '@solana/web3.js';
import { assert } from 'chai';
import { start } from 'solana-bankrun';
-import { OfferAccount } from './account';
+import * as borsh from 'borsh';
+import { OfferSchema, type OfferRaw } from './account';
import { buildMakeOffer, buildTakeOffer } from './instruction';
import { createValues, mintingTokens } from './utils';
@@ -57,7 +58,7 @@ describe('Escrow!', async () => {
await client.processTransaction(tx);
const offerInfo = await client.getAccount(values.offer);
- const offer = OfferAccount.fromBuffer(offerInfo.data).toData();
+ const offer = borsh.deserialize(OfferSchema, Buffer.from(offerInfo.data)) as OfferRaw;
const vaultInfo = await client.getAccount(values.vault);
const vaultTokenAccount = AccountLayout.decode(vaultInfo.data);
diff --git a/tokens/external-delegate-token-master/anchor/Anchor.toml b/tokens/external-delegate-token-master/anchor/Anchor.toml
index a3838dbb6..924d0ae8a 100644
--- a/tokens/external-delegate-token-master/anchor/Anchor.toml
+++ b/tokens/external-delegate-token-master/anchor/Anchor.toml
@@ -1,3 +1,6 @@
+[toolchain]
+solana_version = "3.1.8"
+
[features]
seeds = false
skip-lint = false
diff --git a/tokens/nft-minter/anchor/Anchor.toml b/tokens/nft-minter/anchor/Anchor.toml
index 505e661f1..d342c438a 100644
--- a/tokens/nft-minter/anchor/Anchor.toml
+++ b/tokens/nft-minter/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/tokens/nft-minter/native/package.json b/tokens/nft-minter/native/package.json
index 654051c13..e74d35ad3 100644
--- a/tokens/nft-minter/native/package.json
+++ b/tokens/nft-minter/native/package.json
@@ -6,7 +6,7 @@
"@metaplex-foundation/mpl-token-metadata": "^2.5.2",
"@solana/spl-token": "^0.3.7",
"@solana/web3.js": "^1.73.0",
- "borsh": "^0.7.0",
+ "borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
},
@@ -17,6 +17,6 @@
"chai": "^4.3.4",
"mocha": "^9.0.3",
"ts-mocha": "^10.0.0",
- "typescript": "^4.3.5"
+ "typescript": "^5"
}
}
diff --git a/tokens/nft-minter/native/pnpm-lock.yaml b/tokens/nft-minter/native/pnpm-lock.yaml
new file mode 100644
index 000000000..5967dbc21
--- /dev/null
+++ b/tokens/nft-minter/native/pnpm-lock.yaml
@@ -0,0 +1,1881 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ dependencies:
+ '@metaplex-foundation/mpl-token-metadata':
+ specifier: ^2.5.2
+ version: 2.13.0(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/spl-token':
+ specifier: ^0.3.7
+ version: 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/web3.js':
+ specifier: ^1.73.0
+ version: 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ borsh:
+ specifier: ^2.0.0
+ version: 2.0.0
+ buffer:
+ specifier: ^6.0.3
+ version: 6.0.3
+ fs:
+ specifier: ^0.0.1-security
+ version: 0.0.1-security
+ devDependencies:
+ '@types/bn.js':
+ specifier: ^5.1.0
+ version: 5.2.0
+ '@types/chai':
+ specifier: ^4.3.1
+ version: 4.3.20
+ '@types/mocha':
+ specifier: ^9.1.1
+ version: 9.1.1
+ chai:
+ specifier: ^4.3.4
+ version: 4.5.0
+ mocha:
+ specifier: ^9.0.3
+ version: 9.2.2
+ ts-mocha:
+ specifier: ^10.0.0
+ version: 10.1.0(mocha@9.2.2)
+ typescript:
+ specifier: ^5
+ version: 5.9.3
+
+packages:
+
+ '@babel/runtime@7.28.6':
+ resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==}
+ engines: {node: '>=6.9.0'}
+
+ '@metaplex-foundation/beet-solana@0.4.1':
+ resolution: {integrity: sha512-/6o32FNUtwK8tjhotrvU/vorP7umBuRFvBZrC6XCk51aKidBHe5LPVPA5AjGPbV3oftMfRuXPNd9yAGeEqeCDQ==}
+
+ '@metaplex-foundation/beet@0.7.2':
+ resolution: {integrity: sha512-K+g3WhyFxKPc0xIvcIjNyV1eaTVJTiuaHZpig7Xx0MuYRMoJLLvhLTnUXhFdR5Tu2l2QSyKwfyXDgZlzhULqFg==}
+
+ '@metaplex-foundation/cusper@0.0.2':
+ resolution: {integrity: sha512-S9RulC2fFCFOQraz61bij+5YCHhSO9llJegK8c8Y6731fSi6snUSQJdCUqYS8AIgR0TKbQvdvgSyIIdbDFZbBA==}
+
+ '@metaplex-foundation/mpl-token-metadata@2.13.0':
+ resolution: {integrity: sha512-Fl/8I0L9rv4bKTV/RAl5YIbJe9SnQPInKvLz+xR1fEc4/VQkuCn3RPgypfUMEKWmCznzaw4sApDxy6CFS4qmJw==}
+
+ '@noble/curves@1.9.7':
+ resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==}
+ engines: {node: ^14.21.3 || >=16}
+
+ '@noble/hashes@1.8.0':
+ resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
+ engines: {node: ^14.21.3 || >=16}
+
+ '@solana/buffer-layout-utils@0.2.0':
+ resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==}
+ engines: {node: '>= 10'}
+
+ '@solana/buffer-layout@4.0.1':
+ resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
+ engines: {node: '>=5.10'}
+
+ '@solana/codecs-core@2.0.0-rc.1':
+ resolution: {integrity: sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-data-structures@2.0.0-rc.1':
+ resolution: {integrity: sha512-rinCv0RrAVJ9rE/rmaibWJQxMwC5lSaORSZuwjopSUE6T0nb/MVg6Z1siNCXhh/HFTOg0l8bNvZHgBcN/yvXog==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/codecs-numbers@2.0.0-rc.1':
+ resolution: {integrity: sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-strings@2.0.0-rc.1':
+ resolution: {integrity: sha512-9/wPhw8TbGRTt6mHC4Zz1RqOnuPTqq1Nb4EyuvpZ39GW6O2t2Q7Q0XxiB3+BdoEjwA2XgPw6e2iRfvYgqty44g==}
+ peerDependencies:
+ fastestsmallesttextencoderdecoder: ^1.0.22
+ typescript: '>=5'
+
+ '@solana/codecs@2.0.0-rc.1':
+ resolution: {integrity: sha512-qxoR7VybNJixV51L0G1RD2boZTcxmwUWnKCaJJExQ5qNKwbpSyDdWfFJfM5JhGyKe9DnPVOZB+JHWXnpbZBqrQ==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/errors@2.0.0-rc.1':
+ resolution: {integrity: sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ==}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/options@2.0.0-rc.1':
+ resolution: {integrity: sha512-mLUcR9mZ3qfHlmMnREdIFPf9dpMc/Bl66tLSOOWxw4ml5xMT2ohFn7WGqoKcu/UHkT9CrC6+amEdqCNvUqI7AA==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/spl-token-metadata@0.1.6':
+ resolution: {integrity: sha512-7sMt1rsm/zQOQcUWllQX9mD2O6KhSAtY1hFR2hfFwgqfFWzSY9E9GDvFVNYUI1F0iQKcm6HmePU9QbKRXTEBiA==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ '@solana/web3.js': ^1.95.3
+
+ '@solana/spl-token@0.3.11':
+ resolution: {integrity: sha512-bvohO3rIMSVL24Pb+I4EYTJ6cL82eFpInEXD/I8K8upOGjpqHsKUoAempR/RnUlI1qSFNyFlWJfu6MNUgfbCQQ==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ '@solana/web3.js': ^1.88.0
+
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
+
+ '@swc/helpers@0.5.18':
+ resolution: {integrity: sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ==}
+
+ '@types/bn.js@5.2.0':
+ resolution: {integrity: sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q==}
+
+ '@types/chai@4.3.20':
+ resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==}
+
+ '@types/connect@3.4.38':
+ resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
+
+ '@types/json5@0.0.29':
+ resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
+
+ '@types/mocha@9.1.1':
+ resolution: {integrity: sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==}
+
+ '@types/node@12.20.55':
+ resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
+
+ '@types/node@25.2.3':
+ resolution: {integrity: sha512-m0jEgYlYz+mDJZ2+F4v8D1AyQb+QzsNqRuI7xg1VQX/KlKS0qT9r1Mo16yo5F/MtifXFgaofIFsdFMox2SxIbQ==}
+
+ '@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'}
+
+ ansicolors@0.3.2:
+ resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==}
+
+ 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'}
+
+ assert@2.1.0:
+ resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==}
+
+ assertion-error@1.1.0:
+ resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
+
+ available-typed-arrays@1.0.7:
+ resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
+ engines: {node: '>= 0.4'}
+
+ balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+ base-x@3.0.11:
+ resolution: {integrity: sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==}
+
+ base-x@4.0.1:
+ resolution: {integrity: sha512-uAZ8x6r6S3aUM9rbHGVOIsR15U/ZSc82b3ymnCPsT45Gk1DDvhDPdIgB5MrhirZWt+5K0EEPQH985kNqZgNPFw==}
+
+ base64-js@1.5.1:
+ resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+
+ bigint-buffer@1.1.5:
+ resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==}
+ engines: {node: '>= 10.0.0'}
+
+ bignumber.js@9.3.1:
+ resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==}
+
+ binary-extensions@2.3.0:
+ resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
+ engines: {node: '>=8'}
+
+ bindings@1.5.0:
+ resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
+
+ bn.js@5.2.2:
+ resolution: {integrity: sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==}
+
+ borsh@0.7.0:
+ resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
+
+ borsh@2.0.0:
+ resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==}
+
+ brace-expansion@1.1.12:
+ resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
+
+ 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==}
+
+ bs58@5.0.0:
+ resolution: {integrity: sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==}
+
+ buffer-from@1.1.2:
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+
+ buffer@6.0.3:
+ resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
+
+ bufferutil@4.1.0:
+ resolution: {integrity: sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw==}
+ engines: {node: '>=6.14.2'}
+
+ call-bind-apply-helpers@1.0.2:
+ resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
+ engines: {node: '>= 0.4'}
+
+ call-bind@1.0.8:
+ resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==}
+ engines: {node: '>= 0.4'}
+
+ call-bound@1.0.4:
+ resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
+ engines: {node: '>= 0.4'}
+
+ camelcase@6.3.0:
+ resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
+ engines: {node: '>=10'}
+
+ chai@4.5.0:
+ resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==}
+ engines: {node: '>=4'}
+
+ chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
+ check-error@1.0.3:
+ resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
+
+ chokidar@3.5.3:
+ resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
+ engines: {node: '>= 8.10.0'}
+
+ cliui@7.0.4:
+ resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
+
+ color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+
+ color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
+ commander@12.1.0:
+ resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
+ engines: {node: '>=18'}
+
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
+ commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+
+ concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+ debug@4.3.3:
+ resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ debug@4.4.3:
+ resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
+ 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'}
+
+ define-data-property@1.1.4:
+ resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
+ engines: {node: '>= 0.4'}
+
+ define-properties@1.2.1:
+ resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
+ engines: {node: '>= 0.4'}
+
+ delay@5.0.0:
+ resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==}
+ engines: {node: '>=10'}
+
+ diff@3.5.1:
+ resolution: {integrity: sha512-Z3u54A8qGyqFOSr2pk0ijYs8mOE9Qz8kTvtKeBI+upoG9j04Sq+oI7W8zAJiQybDcESET8/uIdHzs0p3k4fZlw==}
+ engines: {node: '>=0.3.1'}
+
+ diff@5.0.0:
+ resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
+ engines: {node: '>=0.3.1'}
+
+ dunder-proto@1.0.1:
+ resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
+ engines: {node: '>= 0.4'}
+
+ emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+
+ es-define-property@1.0.1:
+ resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
+ engines: {node: '>= 0.4'}
+
+ es-errors@1.3.0:
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
+ engines: {node: '>= 0.4'}
+
+ es-object-atoms@1.1.1:
+ resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
+ engines: {node: '>= 0.4'}
+
+ es6-promise@4.2.8:
+ resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==}
+
+ es6-promisify@5.0.0:
+ resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==}
+
+ escalade@3.2.0:
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+ engines: {node: '>=6'}
+
+ escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+
+ eventemitter3@5.0.4:
+ resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==}
+
+ eyes@0.1.8:
+ resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==}
+ engines: {node: '> 0.1.90'}
+
+ fast-stable-stringify@1.0.0:
+ resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
+
+ fastestsmallesttextencoderdecoder@1.0.22:
+ resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
+
+ file-uri-to-path@1.0.0:
+ resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
+
+ 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
+
+ for-each@0.3.5:
+ resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
+ engines: {node: '>= 0.4'}
+
+ fs.realpath@1.0.0:
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+
+ fs@0.0.1-security:
+ resolution: {integrity: sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==}
+
+ fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
+ function-bind@1.1.2:
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+
+ generator-function@2.0.1:
+ resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==}
+ engines: {node: '>= 0.4'}
+
+ 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==}
+
+ get-intrinsic@1.3.0:
+ resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
+ engines: {node: '>= 0.4'}
+
+ get-proto@1.0.1:
+ resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
+ engines: {node: '>= 0.4'}
+
+ glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+
+ glob@7.2.0:
+ resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==}
+ deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
+
+ gopd@1.2.0:
+ resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
+ engines: {node: '>= 0.4'}
+
+ 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'}
+
+ has-property-descriptors@1.0.2:
+ resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
+
+ has-symbols@1.1.0:
+ resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
+ engines: {node: '>= 0.4'}
+
+ has-tostringtag@1.0.2:
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
+ engines: {node: '>= 0.4'}
+
+ hasown@2.0.2:
+ resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
+ engines: {node: '>= 0.4'}
+
+ 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-arguments@1.2.0:
+ resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==}
+ engines: {node: '>= 0.4'}
+
+ is-binary-path@2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+
+ is-callable@1.2.7:
+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
+ engines: {node: '>= 0.4'}
+
+ 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-generator-function@1.1.2:
+ resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==}
+ engines: {node: '>= 0.4'}
+
+ is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+
+ is-nan@1.3.2:
+ resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==}
+ engines: {node: '>= 0.4'}
+
+ 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-regex@1.2.1:
+ resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
+ engines: {node: '>= 0.4'}
+
+ is-typed-array@1.1.15:
+ resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
+ engines: {node: '>= 0.4'}
+
+ is-unicode-supported@0.1.0:
+ resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
+ engines: {node: '>=10'}
+
+ isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+
+ isomorphic-ws@4.0.1:
+ resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==}
+ peerDependencies:
+ ws: '*'
+
+ jayson@4.3.0:
+ resolution: {integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==}
+ engines: {node: '>=8'}
+ hasBin: true
+
+ js-yaml@4.1.0:
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
+
+ json-stringify-safe@5.0.1:
+ resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
+
+ json5@1.0.2:
+ resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
+ hasBin: true
+
+ locate-path@6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+
+ log-symbols@4.1.0:
+ resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
+ engines: {node: '>=10'}
+
+ loupe@2.3.7:
+ resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==}
+
+ make-error@1.3.6:
+ resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
+
+ math-intrinsics@1.1.0:
+ resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
+ engines: {node: '>= 0.4'}
+
+ 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'}
+
+ object-is@1.1.6:
+ resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
+ engines: {node: '>= 0.4'}
+
+ object-keys@1.1.1:
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+ engines: {node: '>= 0.4'}
+
+ object.assign@4.1.7:
+ resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
+ engines: {node: '>= 0.4'}
+
+ 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'}
+
+ possible-typed-array-names@1.1.0:
+ resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
+ engines: {node: '>= 0.4'}
+
+ randombytes@2.1.0:
+ resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
+
+ readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+
+ require-directory@2.1.1:
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+ engines: {node: '>=0.10.0'}
+
+ rpc-websockets@9.3.3:
+ resolution: {integrity: sha512-OkCsBBzrwxX4DoSv4Zlf9DgXKRB0MzVfCFg5MC+fNnf9ktr4SMWjsri0VNZQlDbCnGcImT6KNEv4ZoxktQhdpA==}
+
+ safe-buffer@5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+
+ safe-regex-test@1.1.0:
+ resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
+ engines: {node: '>= 0.4'}
+
+ serialize-javascript@6.0.0:
+ resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
+
+ set-function-length@1.2.2:
+ resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
+ engines: {node: '>= 0.4'}
+
+ 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@5.9.3:
+ resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
+ undici-types@7.16.0:
+ resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==}
+
+ utf-8-validate@5.0.10:
+ resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==}
+ engines: {node: '>=6.14.2'}
+
+ util@0.12.5:
+ resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==}
+
+ 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-typed-array@1.1.20:
+ resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==}
+ engines: {node: '>= 0.4'}
+
+ 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.19.0:
+ resolution: {integrity: sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==}
+ 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.28.6': {}
+
+ '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@metaplex-foundation/beet': 0.7.2
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ bs58: 5.0.0
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - typescript
+ - utf-8-validate
+
+ '@metaplex-foundation/beet@0.7.2':
+ dependencies:
+ ansicolors: 0.3.2
+ assert: 2.1.0
+ bn.js: 5.2.2
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@metaplex-foundation/cusper@0.0.2': {}
+
+ '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@metaplex-foundation/beet': 0.7.2
+ '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/cusper': 0.0.2
+ '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ bn.js: 5.2.2
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - fastestsmallesttextencoderdecoder
+ - supports-color
+ - typescript
+ - utf-8-validate
+
+ '@noble/curves@1.9.7':
+ dependencies:
+ '@noble/hashes': 1.8.0
+
+ '@noble/hashes@1.8.0': {}
+
+ '@solana/buffer-layout-utils@0.2.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@solana/buffer-layout': 4.0.1
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ bigint-buffer: 1.1.5
+ bignumber.js: 9.3.1
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
+ '@solana/buffer-layout@4.0.1':
+ dependencies:
+ buffer: 6.0.3
+
+ '@solana/codecs-core@2.0.0-rc.1(typescript@5.9.3)':
+ dependencies:
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
+ typescript: 5.9.3
+
+ '@solana/codecs-core@2.3.0(typescript@5.9.3)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
+
+ '@solana/codecs-data-structures@2.0.0-rc.1(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
+ typescript: 5.9.3
+
+ '@solana/codecs-numbers@2.0.0-rc.1(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
+ typescript: 5.9.3
+
+ '@solana/codecs-numbers@2.3.0(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@5.9.3)
+ '@solana/errors': 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
+
+ '@solana/codecs-strings@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
+ fastestsmallesttextencoderdecoder: 1.0.22
+ typescript: 5.9.3
+
+ '@solana/codecs@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/options': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - fastestsmallesttextencoderdecoder
+
+ '@solana/errors@2.0.0-rc.1(typescript@5.9.3)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 12.1.0
+ typescript: 5.9.3
+
+ '@solana/errors@2.3.0(typescript@5.9.3)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.3
+ typescript: 5.9.3
+
+ '@solana/options@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - fastestsmallesttextencoderdecoder
+
+ '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ transitivePeerDependencies:
+ - fastestsmallesttextencoderdecoder
+ - typescript
+
+ '@solana/spl-token@0.3.11(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@solana/buffer-layout': 4.0.1
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ buffer: 6.0.3
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - fastestsmallesttextencoderdecoder
+ - typescript
+ - utf-8-validate
+
+ '@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@babel/runtime': 7.28.6
+ '@noble/curves': 1.9.7
+ '@noble/hashes': 1.8.0
+ '@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@5.9.3)
+ agentkeepalive: 4.6.0
+ 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.3.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)
+ node-fetch: 2.7.0
+ rpc-websockets: 9.3.3
+ superstruct: 2.0.2
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
+ '@swc/helpers@0.5.18':
+ dependencies:
+ tslib: 2.8.1
+
+ '@types/bn.js@5.2.0':
+ dependencies:
+ '@types/node': 25.2.3
+
+ '@types/chai@4.3.20': {}
+
+ '@types/connect@3.4.38':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@types/json5@0.0.29':
+ optional: true
+
+ '@types/mocha@9.1.1': {}
+
+ '@types/node@12.20.55': {}
+
+ '@types/node@25.2.3':
+ dependencies:
+ undici-types: 7.16.0
+
+ '@types/uuid@8.3.4': {}
+
+ '@types/ws@7.4.7':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@types/ws@8.18.1':
+ dependencies:
+ '@types/node': 25.2.3
+
+ '@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
+
+ ansicolors@0.3.2: {}
+
+ anymatch@3.1.3:
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+
+ argparse@2.0.1: {}
+
+ arrify@1.0.1: {}
+
+ assert@2.1.0:
+ dependencies:
+ call-bind: 1.0.8
+ is-nan: 1.3.2
+ object-is: 1.1.6
+ object.assign: 4.1.7
+ util: 0.12.5
+
+ assertion-error@1.1.0: {}
+
+ available-typed-arrays@1.0.7:
+ dependencies:
+ possible-typed-array-names: 1.1.0
+
+ balanced-match@1.0.2: {}
+
+ base-x@3.0.11:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ base-x@4.0.1: {}
+
+ base64-js@1.5.1: {}
+
+ bigint-buffer@1.1.5:
+ dependencies:
+ bindings: 1.5.0
+
+ bignumber.js@9.3.1: {}
+
+ binary-extensions@2.3.0: {}
+
+ bindings@1.5.0:
+ dependencies:
+ file-uri-to-path: 1.0.0
+
+ bn.js@5.2.2: {}
+
+ borsh@0.7.0:
+ dependencies:
+ bn.js: 5.2.2
+ bs58: 4.0.1
+ text-encoding-utf-8: 1.0.2
+
+ borsh@2.0.0: {}
+
+ brace-expansion@1.1.12:
+ 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
+
+ bs58@5.0.0:
+ dependencies:
+ base-x: 4.0.1
+
+ buffer-from@1.1.2: {}
+
+ buffer@6.0.3:
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
+ bufferutil@4.1.0:
+ dependencies:
+ node-gyp-build: 4.8.4
+ optional: true
+
+ call-bind-apply-helpers@1.0.2:
+ dependencies:
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+
+ call-bind@1.0.8:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ get-intrinsic: 1.3.0
+ set-function-length: 1.2.2
+
+ call-bound@1.0.4:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ get-intrinsic: 1.3.0
+
+ camelcase@6.3.0: {}
+
+ chai@4.5.0:
+ dependencies:
+ assertion-error: 1.1.0
+ check-error: 1.0.3
+ deep-eql: 4.1.4
+ get-func-name: 2.0.2
+ loupe: 2.3.7
+ pathval: 1.1.1
+ type-detect: 4.1.0
+
+ chalk@4.1.2:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ chalk@5.6.2: {}
+
+ check-error@1.0.3:
+ dependencies:
+ get-func-name: 2.0.2
+
+ chokidar@3.5.3:
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.3
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ cliui@7.0.4:
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+
+ color-convert@2.0.1:
+ dependencies:
+ color-name: 1.1.4
+
+ color-name@1.1.4: {}
+
+ commander@12.1.0: {}
+
+ commander@14.0.3: {}
+
+ commander@2.20.3: {}
+
+ concat-map@0.0.1: {}
+
+ debug@4.3.3(supports-color@8.1.1):
+ dependencies:
+ ms: 2.1.2
+ optionalDependencies:
+ supports-color: 8.1.1
+
+ debug@4.4.3:
+ dependencies:
+ ms: 2.1.3
+
+ decamelize@4.0.0: {}
+
+ deep-eql@4.1.4:
+ dependencies:
+ type-detect: 4.1.0
+
+ define-data-property@1.1.4:
+ dependencies:
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ define-properties@1.2.1:
+ dependencies:
+ define-data-property: 1.1.4
+ has-property-descriptors: 1.0.2
+ object-keys: 1.1.1
+
+ delay@5.0.0: {}
+
+ diff@3.5.1: {}
+
+ diff@5.0.0: {}
+
+ dunder-proto@1.0.1:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ emoji-regex@8.0.0: {}
+
+ es-define-property@1.0.1: {}
+
+ es-errors@1.3.0: {}
+
+ es-object-atoms@1.1.1:
+ dependencies:
+ es-errors: 1.3.0
+
+ es6-promise@4.2.8: {}
+
+ es6-promisify@5.0.0:
+ dependencies:
+ es6-promise: 4.2.8
+
+ escalade@3.2.0: {}
+
+ escape-string-regexp@4.0.0: {}
+
+ eventemitter3@5.0.4: {}
+
+ eyes@0.1.8: {}
+
+ fast-stable-stringify@1.0.0: {}
+
+ fastestsmallesttextencoderdecoder@1.0.22: {}
+
+ file-uri-to-path@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: {}
+
+ for-each@0.3.5:
+ dependencies:
+ is-callable: 1.2.7
+
+ fs.realpath@1.0.0: {}
+
+ fs@0.0.1-security: {}
+
+ fsevents@2.3.3:
+ optional: true
+
+ function-bind@1.1.2: {}
+
+ generator-function@2.0.1: {}
+
+ get-caller-file@2.0.5: {}
+
+ get-func-name@2.0.2: {}
+
+ get-intrinsic@1.3.0:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ function-bind: 1.1.2
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.2
+ math-intrinsics: 1.1.0
+
+ get-proto@1.0.1:
+ dependencies:
+ dunder-proto: 1.0.1
+ es-object-atoms: 1.1.1
+
+ 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
+
+ gopd@1.2.0: {}
+
+ growl@1.10.5: {}
+
+ has-flag@4.0.0: {}
+
+ has-property-descriptors@1.0.2:
+ dependencies:
+ es-define-property: 1.0.1
+
+ has-symbols@1.1.0: {}
+
+ has-tostringtag@1.0.2:
+ dependencies:
+ has-symbols: 1.1.0
+
+ hasown@2.0.2:
+ dependencies:
+ function-bind: 1.1.2
+
+ 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-arguments@1.2.0:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-binary-path@2.1.0:
+ dependencies:
+ binary-extensions: 2.3.0
+
+ is-callable@1.2.7: {}
+
+ is-extglob@2.1.1: {}
+
+ is-fullwidth-code-point@3.0.0: {}
+
+ is-generator-function@1.1.2:
+ dependencies:
+ call-bound: 1.0.4
+ generator-function: 2.0.1
+ get-proto: 1.0.1
+ has-tostringtag: 1.0.2
+ safe-regex-test: 1.1.0
+
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
+
+ is-nan@1.3.2:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+
+ is-number@7.0.0: {}
+
+ is-plain-obj@2.1.0: {}
+
+ is-regex@1.2.1:
+ dependencies:
+ call-bound: 1.0.4
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.2
+
+ is-typed-array@1.1.15:
+ dependencies:
+ which-typed-array: 1.1.20
+
+ is-unicode-supported@0.1.0: {}
+
+ isexe@2.0.0: {}
+
+ isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.1.0)(utf-8-validate@5.0.10)):
+ dependencies:
+ ws: 7.5.10(bufferutil@4.1.0)(utf-8-validate@5.0.10)
+
+ jayson@4.3.0(bufferutil@4.1.0)(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.1.0)(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.1.0)(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: {}
+
+ math-intrinsics@1.1.0: {}
+
+ minimatch@3.1.2:
+ dependencies:
+ brace-expansion: 1.1.12
+
+ minimatch@4.2.1:
+ dependencies:
+ brace-expansion: 1.1.12
+
+ 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: {}
+
+ object-is@1.1.6:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+
+ object-keys@1.1.1: {}
+
+ object.assign@4.1.7:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ es-object-atoms: 1.1.1
+ has-symbols: 1.1.0
+ object-keys: 1.1.1
+
+ 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: {}
+
+ possible-typed-array-names@1.1.0: {}
+
+ randombytes@2.1.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ readdirp@3.6.0:
+ dependencies:
+ picomatch: 2.3.1
+
+ require-directory@2.1.1: {}
+
+ rpc-websockets@9.3.3:
+ dependencies:
+ '@swc/helpers': 0.5.18
+ '@types/uuid': 8.3.4
+ '@types/ws': 8.18.1
+ buffer: 6.0.3
+ eventemitter3: 5.0.4
+ uuid: 8.3.2
+ ws: 8.19.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)
+ optionalDependencies:
+ bufferutil: 4.1.0
+ utf-8-validate: 5.0.10
+
+ safe-buffer@5.2.1: {}
+
+ safe-regex-test@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-regex: 1.2.1
+
+ serialize-javascript@6.0.0:
+ dependencies:
+ randombytes: 2.1.0
+
+ set-function-length@1.2.2:
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ get-intrinsic: 1.3.0
+ gopd: 1.2.0
+ has-property-descriptors: 1.0.2
+
+ source-map-support@0.5.21:
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+
+ source-map@0.6.1: {}
+
+ stream-chain@2.2.5: {}
+
+ stream-json@1.9.1:
+ dependencies:
+ stream-chain: 2.2.5
+
+ string-width@4.2.3:
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+
+ strip-ansi@6.0.1:
+ dependencies:
+ ansi-regex: 5.0.1
+
+ strip-bom@3.0.0:
+ optional: true
+
+ strip-json-comments@3.1.1: {}
+
+ superstruct@2.0.2: {}
+
+ supports-color@7.2.0:
+ dependencies:
+ has-flag: 4.0.0
+
+ supports-color@8.1.1:
+ dependencies:
+ has-flag: 4.0.0
+
+ text-encoding-utf-8@1.0.2: {}
+
+ to-regex-range@5.0.1:
+ dependencies:
+ is-number: 7.0.0
+
+ tr46@0.0.3: {}
+
+ ts-mocha@10.1.0(mocha@9.2.2):
+ dependencies:
+ mocha: 9.2.2
+ ts-node: 7.0.1
+ optionalDependencies:
+ tsconfig-paths: 3.15.0
+
+ ts-node@7.0.1:
+ dependencies:
+ arrify: 1.0.1
+ buffer-from: 1.1.2
+ diff: 3.5.1
+ make-error: 1.3.6
+ minimist: 1.2.8
+ mkdirp: 0.5.6
+ source-map-support: 0.5.21
+ yn: 2.0.0
+
+ tsconfig-paths@3.15.0:
+ dependencies:
+ '@types/json5': 0.0.29
+ json5: 1.0.2
+ minimist: 1.2.8
+ strip-bom: 3.0.0
+ optional: true
+
+ tslib@2.8.1: {}
+
+ type-detect@4.1.0: {}
+
+ typescript@5.9.3: {}
+
+ undici-types@7.16.0: {}
+
+ utf-8-validate@5.0.10:
+ dependencies:
+ node-gyp-build: 4.8.4
+ optional: true
+
+ util@0.12.5:
+ dependencies:
+ inherits: 2.0.4
+ is-arguments: 1.2.0
+ is-generator-function: 1.1.2
+ is-typed-array: 1.1.15
+ which-typed-array: 1.1.20
+
+ 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-typed-array@1.1.20:
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ for-each: 0.3.5
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+
+ 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.1.0)(utf-8-validate@5.0.10):
+ optionalDependencies:
+ bufferutil: 4.1.0
+ utf-8-validate: 5.0.10
+
+ ws@8.19.0(bufferutil@4.1.0)(utf-8-validate@5.0.10):
+ optionalDependencies:
+ bufferutil: 4.1.0
+ 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/tokens/nft-minter/native/tests/instructions.ts b/tokens/nft-minter/native/tests/instructions.ts
index 39ccae97b..72e047d58 100644
--- a/tokens/nft-minter/native/tests/instructions.ts
+++ b/tokens/nft-minter/native/tests/instructions.ts
@@ -1,49 +1,21 @@
import * as borsh from 'borsh';
-class Assignable {
- constructor(properties) {
- for (const [key, value] of Object.entries(properties)) {
- this[key] = value;
- }
- }
-}
-
export enum NftMinterInstruction {
Create = 0,
Mint = 1,
}
-export class CreateTokenArgs extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(CreateTokenArgsSchema, this));
- }
-}
-const CreateTokenArgsSchema = new Map([
- [
- CreateTokenArgs,
- {
- kind: 'struct',
- fields: [
- ['instruction', 'u8'],
- ['nft_title', 'string'],
- ['nft_symbol', 'string'],
- ['nft_uri', 'string'],
- ],
- },
- ],
-]);
+export const CreateTokenArgsSchema = {
+ struct: {
+ instruction: 'u8',
+ token_title: 'string',
+ token_symbol: 'string',
+ token_uri: 'string',
+ },
+};
+
+export const MintToArgsSchema = { struct: { instruction: 'u8' } };
-export class MintToArgs extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(MintToArgsSchema, this));
- }
+export function borshSerialize(schema: borsh.Schema, data: object): Buffer {
+ return Buffer.from(borsh.serialize(schema, data));
}
-const MintToArgsSchema = new Map([
- [
- MintToArgs,
- {
- kind: 'struct',
- fields: [['instruction', 'u8']],
- },
- ],
-]);
diff --git a/tokens/nft-minter/native/tests/test.ts b/tokens/nft-minter/native/tests/test.ts
index 3e124bacf..cc26800f9 100644
--- a/tokens/nft-minter/native/tests/test.ts
+++ b/tokens/nft-minter/native/tests/test.ts
@@ -11,10 +11,10 @@ import {
Transaction,
TransactionInstruction,
} from '@solana/web3.js';
-import { CreateTokenArgs, MintToArgs, NftMinterInstruction } from './instructions';
+import { borshSerialize, CreateTokenArgsSchema, MintToArgsSchema, NftMinterInstruction } from './instructions';
function createKeypairFromFile(path: string): Keypair {
- return Keypair.fromSecretKey(Buffer.from(JSON.parse(require('node:fs').readFileSync(path, 'utf-8'))));
+ return Keypair.fromSecretKey(Uint8Array.from(JSON.parse(require('node:fs').readFileSync(path, 'utf-8'))));
}
describe('NFT Minter', async () => {
@@ -31,7 +31,7 @@ describe('NFT Minter', async () => {
TOKEN_METADATA_PROGRAM_ID,
)[0];
- const instructionData = new CreateTokenArgs({
+ const instructionData = borshSerialize(CreateTokenArgsSchema, {
instruction: NftMinterInstruction.Create,
nft_title: 'Homer NFT',
nft_symbol: 'HOMR',
@@ -54,7 +54,7 @@ describe('NFT Minter', async () => {
}, // Token metadata program
],
programId: program.publicKey,
- data: instructionData.toBuffer(),
+ data: instructionData,
});
const sx = await sendAndConfirmTransaction(connection, new Transaction().add(ix), [payer, mintKeypair]);
@@ -77,7 +77,7 @@ describe('NFT Minter', async () => {
const associatedTokenAccountAddress = await getAssociatedTokenAddress(mintKeypair.publicKey, payer.publicKey);
- const instructionData = new MintToArgs({
+ const instructionData = borshSerialize(MintToArgsSchema, {
instruction: NftMinterInstruction.Mint,
});
@@ -108,7 +108,7 @@ describe('NFT Minter', async () => {
}, // Token metadata program
],
programId: program.publicKey,
- data: instructionData.toBuffer(),
+ data: instructionData,
});
const sx = await sendAndConfirmTransaction(connection, new Transaction().add(ix), [payer]);
diff --git a/tokens/nft-operations/anchor/Anchor.toml b/tokens/nft-operations/anchor/Anchor.toml
index c6ceb4e19..df1dc1094 100644
--- a/tokens/nft-operations/anchor/Anchor.toml
+++ b/tokens/nft-operations/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
seeds = false
diff --git a/tokens/pda-mint-authority/anchor/Anchor.toml b/tokens/pda-mint-authority/anchor/Anchor.toml
index 08710c2d2..ad289a0d5 100644
--- a/tokens/pda-mint-authority/anchor/Anchor.toml
+++ b/tokens/pda-mint-authority/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/tokens/pda-mint-authority/native/package.json b/tokens/pda-mint-authority/native/package.json
index c40574d38..6f489697e 100644
--- a/tokens/pda-mint-authority/native/package.json
+++ b/tokens/pda-mint-authority/native/package.json
@@ -9,7 +9,7 @@
"@metaplex-foundation/mpl-token-metadata": "^2.5.2",
"@solana/spl-token": "^0.3.7",
"@solana/web3.js": "^1.73.0",
- "borsh": "^0.7.0",
+ "borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
},
@@ -21,6 +21,6 @@
"mocha": "^9.0.3",
"solana-bankrun": "^0.3.0",
"ts-mocha": "^10.0.0",
- "typescript": "^4.3.5"
+ "typescript": "^5"
}
}
diff --git a/tokens/pda-mint-authority/native/pnpm-lock.yaml b/tokens/pda-mint-authority/native/pnpm-lock.yaml
index de38e9e59..e0c0337b5 100644
--- a/tokens/pda-mint-authority/native/pnpm-lock.yaml
+++ b/tokens/pda-mint-authority/native/pnpm-lock.yaml
@@ -18,8 +18,8 @@ importers:
specifier: ^1.73.0
version: 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
borsh:
- specifier: ^0.7.0
- version: 0.7.0
+ specifier: ^2.0.0
+ version: 2.0.0
buffer:
specifier: ^6.0.3
version: 6.0.3
@@ -49,8 +49,8 @@ importers:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
typescript:
- specifier: ^4.3.5
- version: 4.9.5
+ specifier: ^5
+ version: 5.9.3
packages:
@@ -231,6 +231,9 @@ packages:
borsh@0.7.0:
resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
+ borsh@2.0.0:
+ resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==}
+
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
@@ -713,12 +716,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.0:
resolution: {integrity: sha512-xsS2CS2xb1Sw4ivNXM0gPz/qpW9BX0neSvt/pnok5L330Nu9xlTnKAY8FhzzqOP9P9sJlGRM787Y6d0yYwt6xQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.0:
resolution: {integrity: sha512-YkH7sa8TB/AoRPzG17CXJtYsRIQHEkEqGLz1Vwc13taXhDBkjO7z6NI5JYw7n0ybRymDHwMYTc7sd+5J40TyVQ==}
@@ -790,9 +795,9 @@ packages:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
- typescript@4.9.5:
- resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
- engines: {node: '>=4.2.0'}
+ typescript@5.9.3:
+ resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
+ engines: {node: '>=14.17'}
hasBin: true
undici-types@5.26.5:
@@ -1136,6 +1141,8 @@ snapshots:
bs58: 4.0.1
text-encoding-utf-8: 1.0.2
+ borsh@2.0.0: {}
+
brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
@@ -1696,7 +1703,7 @@ snapshots:
type-detect@4.0.8: {}
- typescript@4.9.5: {}
+ typescript@5.9.3: {}
undici-types@5.26.5: {}
diff --git a/tokens/pda-mint-authority/native/tests/instructions.ts b/tokens/pda-mint-authority/native/tests/instructions.ts
index 00871d08d..c06932ef9 100644
--- a/tokens/pda-mint-authority/native/tests/instructions.ts
+++ b/tokens/pda-mint-authority/native/tests/instructions.ts
@@ -1,65 +1,24 @@
import * as borsh from 'borsh';
-class Assignable {
- constructor(properties) {
- for (const [key, value] of Object.entries(properties)) {
- this[key] = value;
- }
- }
-}
-
export enum NftMinterInstruction {
Init = 0,
Create = 1,
Mint = 2,
}
-export class InitArgs extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(InitArgsSchema, this));
- }
-}
-const InitArgsSchema = new Map([
- [
- InitArgs,
- {
- kind: 'struct',
- fields: [['instruction', 'u8']],
- },
- ],
-]);
+export const InitArgsSchema = { struct: { instruction: 'u8' } };
-export class CreateTokenArgs extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(CreateTokenArgsSchema, this));
- }
-}
-const CreateTokenArgsSchema = new Map([
- [
- CreateTokenArgs,
- {
- kind: 'struct',
- fields: [
- ['instruction', 'u8'],
- ['nft_title', 'string'],
- ['nft_symbol', 'string'],
- ['nft_uri', 'string'],
- ],
- },
- ],
-]);
+export const CreateTokenArgsSchema = {
+ struct: {
+ instruction: 'u8',
+ nft_title: 'string',
+ nft_symbol: 'string',
+ nft_uri: 'string',
+ },
+};
+
+export const MintToArgsSchema = { struct: { instruction: 'u8' } };
-export class MintToArgs extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(MintToArgsSchema, this));
- }
+export function borshSerialize(schema: borsh.Schema, data: object): Buffer {
+ return Buffer.from(borsh.serialize(schema, data));
}
-const MintToArgsSchema = new Map([
- [
- MintToArgs,
- {
- kind: 'struct',
- fields: [['instruction', 'u8']],
- },
- ],
-]);
diff --git a/tokens/pda-mint-authority/native/tests/test.ts b/tokens/pda-mint-authority/native/tests/test.ts
index 509e063be..5528d3c11 100644
--- a/tokens/pda-mint-authority/native/tests/test.ts
+++ b/tokens/pda-mint-authority/native/tests/test.ts
@@ -11,10 +11,10 @@ import {
Transaction,
TransactionInstruction,
} from '@solana/web3.js';
-import { CreateTokenArgs, InitArgs, MintToArgs, NftMinterInstruction } from './instructions';
+import { borshSerialize, InitArgsSchema, CreateTokenArgsSchema, MintToArgsSchema, NftMinterInstruction } from './instructions';
function createKeypairFromFile(path: string): Keypair {
- return Keypair.fromSecretKey(Buffer.from(JSON.parse(require('node:fs').readFileSync(path, 'utf-8'))));
+ return Keypair.fromSecretKey(Uint8Array.from(JSON.parse(require('node:fs').readFileSync(path, 'utf-8'))));
}
describe('NFT Minter', async () => {
@@ -28,7 +28,7 @@ describe('NFT Minter', async () => {
const mintKeypair: Keypair = Keypair.generate();
it('Init Mint Authority PDA', async () => {
- const instructionData = new InitArgs({
+ const instructionData = borshSerialize(InitArgsSchema, {
instruction: NftMinterInstruction.Init,
});
@@ -39,7 +39,7 @@ describe('NFT Minter', async () => {
{ pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
],
programId: program.publicKey,
- data: instructionData.toBuffer(),
+ data: instructionData,
});
const sx = await sendAndConfirmTransaction(connection, new Transaction().add(ix), [payer], { skipPreflight: true });
@@ -55,7 +55,7 @@ describe('NFT Minter', async () => {
TOKEN_METADATA_PROGRAM_ID,
)[0];
- const instructionData = new CreateTokenArgs({
+ const instructionData = borshSerialize(CreateTokenArgsSchema, {
instruction: NftMinterInstruction.Create,
nft_title: 'Homer NFT',
nft_symbol: 'HOMR',
@@ -78,7 +78,7 @@ describe('NFT Minter', async () => {
}, // Token metadata program
],
programId: program.publicKey,
- data: instructionData.toBuffer(),
+ data: instructionData,
});
const sx = await sendAndConfirmTransaction(connection, new Transaction().add(ix), [payer, mintKeypair], { skipPreflight: true });
@@ -101,7 +101,7 @@ describe('NFT Minter', async () => {
const associatedTokenAccountAddress = await getAssociatedTokenAddress(mintKeypair.publicKey, payer.publicKey);
- const instructionData = new MintToArgs({
+ const instructionData = borshSerialize(MintToArgsSchema, {
instruction: NftMinterInstruction.Mint,
});
@@ -132,7 +132,7 @@ describe('NFT Minter', async () => {
}, // Token metadata program
],
programId: program.publicKey,
- data: instructionData.toBuffer(),
+ data: instructionData,
});
const sx = await sendAndConfirmTransaction(connection, new Transaction().add(ix), [payer]);
diff --git a/tokens/spl-token-minter/anchor/Anchor.toml b/tokens/spl-token-minter/anchor/Anchor.toml
index 7b3d4e968..5f5ab7321 100644
--- a/tokens/spl-token-minter/anchor/Anchor.toml
+++ b/tokens/spl-token-minter/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/tokens/spl-token-minter/native/package.json b/tokens/spl-token-minter/native/package.json
index 654051c13..e74d35ad3 100644
--- a/tokens/spl-token-minter/native/package.json
+++ b/tokens/spl-token-minter/native/package.json
@@ -6,7 +6,7 @@
"@metaplex-foundation/mpl-token-metadata": "^2.5.2",
"@solana/spl-token": "^0.3.7",
"@solana/web3.js": "^1.73.0",
- "borsh": "^0.7.0",
+ "borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
},
@@ -17,6 +17,6 @@
"chai": "^4.3.4",
"mocha": "^9.0.3",
"ts-mocha": "^10.0.0",
- "typescript": "^4.3.5"
+ "typescript": "^5"
}
}
diff --git a/tokens/spl-token-minter/native/pnpm-lock.yaml b/tokens/spl-token-minter/native/pnpm-lock.yaml
new file mode 100644
index 000000000..5967dbc21
--- /dev/null
+++ b/tokens/spl-token-minter/native/pnpm-lock.yaml
@@ -0,0 +1,1881 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ dependencies:
+ '@metaplex-foundation/mpl-token-metadata':
+ specifier: ^2.5.2
+ version: 2.13.0(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/spl-token':
+ specifier: ^0.3.7
+ version: 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/web3.js':
+ specifier: ^1.73.0
+ version: 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ borsh:
+ specifier: ^2.0.0
+ version: 2.0.0
+ buffer:
+ specifier: ^6.0.3
+ version: 6.0.3
+ fs:
+ specifier: ^0.0.1-security
+ version: 0.0.1-security
+ devDependencies:
+ '@types/bn.js':
+ specifier: ^5.1.0
+ version: 5.2.0
+ '@types/chai':
+ specifier: ^4.3.1
+ version: 4.3.20
+ '@types/mocha':
+ specifier: ^9.1.1
+ version: 9.1.1
+ chai:
+ specifier: ^4.3.4
+ version: 4.5.0
+ mocha:
+ specifier: ^9.0.3
+ version: 9.2.2
+ ts-mocha:
+ specifier: ^10.0.0
+ version: 10.1.0(mocha@9.2.2)
+ typescript:
+ specifier: ^5
+ version: 5.9.3
+
+packages:
+
+ '@babel/runtime@7.28.6':
+ resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==}
+ engines: {node: '>=6.9.0'}
+
+ '@metaplex-foundation/beet-solana@0.4.1':
+ resolution: {integrity: sha512-/6o32FNUtwK8tjhotrvU/vorP7umBuRFvBZrC6XCk51aKidBHe5LPVPA5AjGPbV3oftMfRuXPNd9yAGeEqeCDQ==}
+
+ '@metaplex-foundation/beet@0.7.2':
+ resolution: {integrity: sha512-K+g3WhyFxKPc0xIvcIjNyV1eaTVJTiuaHZpig7Xx0MuYRMoJLLvhLTnUXhFdR5Tu2l2QSyKwfyXDgZlzhULqFg==}
+
+ '@metaplex-foundation/cusper@0.0.2':
+ resolution: {integrity: sha512-S9RulC2fFCFOQraz61bij+5YCHhSO9llJegK8c8Y6731fSi6snUSQJdCUqYS8AIgR0TKbQvdvgSyIIdbDFZbBA==}
+
+ '@metaplex-foundation/mpl-token-metadata@2.13.0':
+ resolution: {integrity: sha512-Fl/8I0L9rv4bKTV/RAl5YIbJe9SnQPInKvLz+xR1fEc4/VQkuCn3RPgypfUMEKWmCznzaw4sApDxy6CFS4qmJw==}
+
+ '@noble/curves@1.9.7':
+ resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==}
+ engines: {node: ^14.21.3 || >=16}
+
+ '@noble/hashes@1.8.0':
+ resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
+ engines: {node: ^14.21.3 || >=16}
+
+ '@solana/buffer-layout-utils@0.2.0':
+ resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==}
+ engines: {node: '>= 10'}
+
+ '@solana/buffer-layout@4.0.1':
+ resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
+ engines: {node: '>=5.10'}
+
+ '@solana/codecs-core@2.0.0-rc.1':
+ resolution: {integrity: sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-data-structures@2.0.0-rc.1':
+ resolution: {integrity: sha512-rinCv0RrAVJ9rE/rmaibWJQxMwC5lSaORSZuwjopSUE6T0nb/MVg6Z1siNCXhh/HFTOg0l8bNvZHgBcN/yvXog==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/codecs-numbers@2.0.0-rc.1':
+ resolution: {integrity: sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-strings@2.0.0-rc.1':
+ resolution: {integrity: sha512-9/wPhw8TbGRTt6mHC4Zz1RqOnuPTqq1Nb4EyuvpZ39GW6O2t2Q7Q0XxiB3+BdoEjwA2XgPw6e2iRfvYgqty44g==}
+ peerDependencies:
+ fastestsmallesttextencoderdecoder: ^1.0.22
+ typescript: '>=5'
+
+ '@solana/codecs@2.0.0-rc.1':
+ resolution: {integrity: sha512-qxoR7VybNJixV51L0G1RD2boZTcxmwUWnKCaJJExQ5qNKwbpSyDdWfFJfM5JhGyKe9DnPVOZB+JHWXnpbZBqrQ==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/errors@2.0.0-rc.1':
+ resolution: {integrity: sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ==}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/options@2.0.0-rc.1':
+ resolution: {integrity: sha512-mLUcR9mZ3qfHlmMnREdIFPf9dpMc/Bl66tLSOOWxw4ml5xMT2ohFn7WGqoKcu/UHkT9CrC6+amEdqCNvUqI7AA==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/spl-token-metadata@0.1.6':
+ resolution: {integrity: sha512-7sMt1rsm/zQOQcUWllQX9mD2O6KhSAtY1hFR2hfFwgqfFWzSY9E9GDvFVNYUI1F0iQKcm6HmePU9QbKRXTEBiA==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ '@solana/web3.js': ^1.95.3
+
+ '@solana/spl-token@0.3.11':
+ resolution: {integrity: sha512-bvohO3rIMSVL24Pb+I4EYTJ6cL82eFpInEXD/I8K8upOGjpqHsKUoAempR/RnUlI1qSFNyFlWJfu6MNUgfbCQQ==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ '@solana/web3.js': ^1.88.0
+
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
+
+ '@swc/helpers@0.5.18':
+ resolution: {integrity: sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ==}
+
+ '@types/bn.js@5.2.0':
+ resolution: {integrity: sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q==}
+
+ '@types/chai@4.3.20':
+ resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==}
+
+ '@types/connect@3.4.38':
+ resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
+
+ '@types/json5@0.0.29':
+ resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
+
+ '@types/mocha@9.1.1':
+ resolution: {integrity: sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==}
+
+ '@types/node@12.20.55':
+ resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
+
+ '@types/node@25.2.3':
+ resolution: {integrity: sha512-m0jEgYlYz+mDJZ2+F4v8D1AyQb+QzsNqRuI7xg1VQX/KlKS0qT9r1Mo16yo5F/MtifXFgaofIFsdFMox2SxIbQ==}
+
+ '@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'}
+
+ ansicolors@0.3.2:
+ resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==}
+
+ 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'}
+
+ assert@2.1.0:
+ resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==}
+
+ assertion-error@1.1.0:
+ resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
+
+ available-typed-arrays@1.0.7:
+ resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
+ engines: {node: '>= 0.4'}
+
+ balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+ base-x@3.0.11:
+ resolution: {integrity: sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==}
+
+ base-x@4.0.1:
+ resolution: {integrity: sha512-uAZ8x6r6S3aUM9rbHGVOIsR15U/ZSc82b3ymnCPsT45Gk1DDvhDPdIgB5MrhirZWt+5K0EEPQH985kNqZgNPFw==}
+
+ base64-js@1.5.1:
+ resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+
+ bigint-buffer@1.1.5:
+ resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==}
+ engines: {node: '>= 10.0.0'}
+
+ bignumber.js@9.3.1:
+ resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==}
+
+ binary-extensions@2.3.0:
+ resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
+ engines: {node: '>=8'}
+
+ bindings@1.5.0:
+ resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
+
+ bn.js@5.2.2:
+ resolution: {integrity: sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==}
+
+ borsh@0.7.0:
+ resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
+
+ borsh@2.0.0:
+ resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==}
+
+ brace-expansion@1.1.12:
+ resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
+
+ 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==}
+
+ bs58@5.0.0:
+ resolution: {integrity: sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==}
+
+ buffer-from@1.1.2:
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+
+ buffer@6.0.3:
+ resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
+
+ bufferutil@4.1.0:
+ resolution: {integrity: sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw==}
+ engines: {node: '>=6.14.2'}
+
+ call-bind-apply-helpers@1.0.2:
+ resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
+ engines: {node: '>= 0.4'}
+
+ call-bind@1.0.8:
+ resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==}
+ engines: {node: '>= 0.4'}
+
+ call-bound@1.0.4:
+ resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
+ engines: {node: '>= 0.4'}
+
+ camelcase@6.3.0:
+ resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
+ engines: {node: '>=10'}
+
+ chai@4.5.0:
+ resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==}
+ engines: {node: '>=4'}
+
+ chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
+ check-error@1.0.3:
+ resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
+
+ chokidar@3.5.3:
+ resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
+ engines: {node: '>= 8.10.0'}
+
+ cliui@7.0.4:
+ resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
+
+ color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+
+ color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
+ commander@12.1.0:
+ resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
+ engines: {node: '>=18'}
+
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
+ commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+
+ concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+ debug@4.3.3:
+ resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ debug@4.4.3:
+ resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
+ 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'}
+
+ define-data-property@1.1.4:
+ resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
+ engines: {node: '>= 0.4'}
+
+ define-properties@1.2.1:
+ resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
+ engines: {node: '>= 0.4'}
+
+ delay@5.0.0:
+ resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==}
+ engines: {node: '>=10'}
+
+ diff@3.5.1:
+ resolution: {integrity: sha512-Z3u54A8qGyqFOSr2pk0ijYs8mOE9Qz8kTvtKeBI+upoG9j04Sq+oI7W8zAJiQybDcESET8/uIdHzs0p3k4fZlw==}
+ engines: {node: '>=0.3.1'}
+
+ diff@5.0.0:
+ resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
+ engines: {node: '>=0.3.1'}
+
+ dunder-proto@1.0.1:
+ resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
+ engines: {node: '>= 0.4'}
+
+ emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+
+ es-define-property@1.0.1:
+ resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
+ engines: {node: '>= 0.4'}
+
+ es-errors@1.3.0:
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
+ engines: {node: '>= 0.4'}
+
+ es-object-atoms@1.1.1:
+ resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
+ engines: {node: '>= 0.4'}
+
+ es6-promise@4.2.8:
+ resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==}
+
+ es6-promisify@5.0.0:
+ resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==}
+
+ escalade@3.2.0:
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+ engines: {node: '>=6'}
+
+ escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+
+ eventemitter3@5.0.4:
+ resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==}
+
+ eyes@0.1.8:
+ resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==}
+ engines: {node: '> 0.1.90'}
+
+ fast-stable-stringify@1.0.0:
+ resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
+
+ fastestsmallesttextencoderdecoder@1.0.22:
+ resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
+
+ file-uri-to-path@1.0.0:
+ resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
+
+ 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
+
+ for-each@0.3.5:
+ resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
+ engines: {node: '>= 0.4'}
+
+ fs.realpath@1.0.0:
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+
+ fs@0.0.1-security:
+ resolution: {integrity: sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==}
+
+ fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
+ function-bind@1.1.2:
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+
+ generator-function@2.0.1:
+ resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==}
+ engines: {node: '>= 0.4'}
+
+ 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==}
+
+ get-intrinsic@1.3.0:
+ resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
+ engines: {node: '>= 0.4'}
+
+ get-proto@1.0.1:
+ resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
+ engines: {node: '>= 0.4'}
+
+ glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+
+ glob@7.2.0:
+ resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==}
+ deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
+
+ gopd@1.2.0:
+ resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
+ engines: {node: '>= 0.4'}
+
+ 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'}
+
+ has-property-descriptors@1.0.2:
+ resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
+
+ has-symbols@1.1.0:
+ resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
+ engines: {node: '>= 0.4'}
+
+ has-tostringtag@1.0.2:
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
+ engines: {node: '>= 0.4'}
+
+ hasown@2.0.2:
+ resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
+ engines: {node: '>= 0.4'}
+
+ 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-arguments@1.2.0:
+ resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==}
+ engines: {node: '>= 0.4'}
+
+ is-binary-path@2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+
+ is-callable@1.2.7:
+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
+ engines: {node: '>= 0.4'}
+
+ 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-generator-function@1.1.2:
+ resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==}
+ engines: {node: '>= 0.4'}
+
+ is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+
+ is-nan@1.3.2:
+ resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==}
+ engines: {node: '>= 0.4'}
+
+ 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-regex@1.2.1:
+ resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
+ engines: {node: '>= 0.4'}
+
+ is-typed-array@1.1.15:
+ resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
+ engines: {node: '>= 0.4'}
+
+ is-unicode-supported@0.1.0:
+ resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
+ engines: {node: '>=10'}
+
+ isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+
+ isomorphic-ws@4.0.1:
+ resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==}
+ peerDependencies:
+ ws: '*'
+
+ jayson@4.3.0:
+ resolution: {integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==}
+ engines: {node: '>=8'}
+ hasBin: true
+
+ js-yaml@4.1.0:
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
+
+ json-stringify-safe@5.0.1:
+ resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
+
+ json5@1.0.2:
+ resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
+ hasBin: true
+
+ locate-path@6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+
+ log-symbols@4.1.0:
+ resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
+ engines: {node: '>=10'}
+
+ loupe@2.3.7:
+ resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==}
+
+ make-error@1.3.6:
+ resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
+
+ math-intrinsics@1.1.0:
+ resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
+ engines: {node: '>= 0.4'}
+
+ 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'}
+
+ object-is@1.1.6:
+ resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
+ engines: {node: '>= 0.4'}
+
+ object-keys@1.1.1:
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+ engines: {node: '>= 0.4'}
+
+ object.assign@4.1.7:
+ resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
+ engines: {node: '>= 0.4'}
+
+ 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'}
+
+ possible-typed-array-names@1.1.0:
+ resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
+ engines: {node: '>= 0.4'}
+
+ randombytes@2.1.0:
+ resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
+
+ readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+
+ require-directory@2.1.1:
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+ engines: {node: '>=0.10.0'}
+
+ rpc-websockets@9.3.3:
+ resolution: {integrity: sha512-OkCsBBzrwxX4DoSv4Zlf9DgXKRB0MzVfCFg5MC+fNnf9ktr4SMWjsri0VNZQlDbCnGcImT6KNEv4ZoxktQhdpA==}
+
+ safe-buffer@5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+
+ safe-regex-test@1.1.0:
+ resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
+ engines: {node: '>= 0.4'}
+
+ serialize-javascript@6.0.0:
+ resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
+
+ set-function-length@1.2.2:
+ resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
+ engines: {node: '>= 0.4'}
+
+ 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@5.9.3:
+ resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
+ undici-types@7.16.0:
+ resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==}
+
+ utf-8-validate@5.0.10:
+ resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==}
+ engines: {node: '>=6.14.2'}
+
+ util@0.12.5:
+ resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==}
+
+ 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-typed-array@1.1.20:
+ resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==}
+ engines: {node: '>= 0.4'}
+
+ 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.19.0:
+ resolution: {integrity: sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==}
+ 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.28.6': {}
+
+ '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@metaplex-foundation/beet': 0.7.2
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ bs58: 5.0.0
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - typescript
+ - utf-8-validate
+
+ '@metaplex-foundation/beet@0.7.2':
+ dependencies:
+ ansicolors: 0.3.2
+ assert: 2.1.0
+ bn.js: 5.2.2
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@metaplex-foundation/cusper@0.0.2': {}
+
+ '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@metaplex-foundation/beet': 0.7.2
+ '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/cusper': 0.0.2
+ '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ bn.js: 5.2.2
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - fastestsmallesttextencoderdecoder
+ - supports-color
+ - typescript
+ - utf-8-validate
+
+ '@noble/curves@1.9.7':
+ dependencies:
+ '@noble/hashes': 1.8.0
+
+ '@noble/hashes@1.8.0': {}
+
+ '@solana/buffer-layout-utils@0.2.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@solana/buffer-layout': 4.0.1
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ bigint-buffer: 1.1.5
+ bignumber.js: 9.3.1
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
+ '@solana/buffer-layout@4.0.1':
+ dependencies:
+ buffer: 6.0.3
+
+ '@solana/codecs-core@2.0.0-rc.1(typescript@5.9.3)':
+ dependencies:
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
+ typescript: 5.9.3
+
+ '@solana/codecs-core@2.3.0(typescript@5.9.3)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
+
+ '@solana/codecs-data-structures@2.0.0-rc.1(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
+ typescript: 5.9.3
+
+ '@solana/codecs-numbers@2.0.0-rc.1(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
+ typescript: 5.9.3
+
+ '@solana/codecs-numbers@2.3.0(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@5.9.3)
+ '@solana/errors': 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
+
+ '@solana/codecs-strings@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
+ fastestsmallesttextencoderdecoder: 1.0.22
+ typescript: 5.9.3
+
+ '@solana/codecs@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/options': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - fastestsmallesttextencoderdecoder
+
+ '@solana/errors@2.0.0-rc.1(typescript@5.9.3)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 12.1.0
+ typescript: 5.9.3
+
+ '@solana/errors@2.3.0(typescript@5.9.3)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.3
+ typescript: 5.9.3
+
+ '@solana/options@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - fastestsmallesttextencoderdecoder
+
+ '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ transitivePeerDependencies:
+ - fastestsmallesttextencoderdecoder
+ - typescript
+
+ '@solana/spl-token@0.3.11(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@solana/buffer-layout': 4.0.1
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ buffer: 6.0.3
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - fastestsmallesttextencoderdecoder
+ - typescript
+ - utf-8-validate
+
+ '@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@babel/runtime': 7.28.6
+ '@noble/curves': 1.9.7
+ '@noble/hashes': 1.8.0
+ '@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@5.9.3)
+ agentkeepalive: 4.6.0
+ 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.3.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)
+ node-fetch: 2.7.0
+ rpc-websockets: 9.3.3
+ superstruct: 2.0.2
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
+ '@swc/helpers@0.5.18':
+ dependencies:
+ tslib: 2.8.1
+
+ '@types/bn.js@5.2.0':
+ dependencies:
+ '@types/node': 25.2.3
+
+ '@types/chai@4.3.20': {}
+
+ '@types/connect@3.4.38':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@types/json5@0.0.29':
+ optional: true
+
+ '@types/mocha@9.1.1': {}
+
+ '@types/node@12.20.55': {}
+
+ '@types/node@25.2.3':
+ dependencies:
+ undici-types: 7.16.0
+
+ '@types/uuid@8.3.4': {}
+
+ '@types/ws@7.4.7':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@types/ws@8.18.1':
+ dependencies:
+ '@types/node': 25.2.3
+
+ '@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
+
+ ansicolors@0.3.2: {}
+
+ anymatch@3.1.3:
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+
+ argparse@2.0.1: {}
+
+ arrify@1.0.1: {}
+
+ assert@2.1.0:
+ dependencies:
+ call-bind: 1.0.8
+ is-nan: 1.3.2
+ object-is: 1.1.6
+ object.assign: 4.1.7
+ util: 0.12.5
+
+ assertion-error@1.1.0: {}
+
+ available-typed-arrays@1.0.7:
+ dependencies:
+ possible-typed-array-names: 1.1.0
+
+ balanced-match@1.0.2: {}
+
+ base-x@3.0.11:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ base-x@4.0.1: {}
+
+ base64-js@1.5.1: {}
+
+ bigint-buffer@1.1.5:
+ dependencies:
+ bindings: 1.5.0
+
+ bignumber.js@9.3.1: {}
+
+ binary-extensions@2.3.0: {}
+
+ bindings@1.5.0:
+ dependencies:
+ file-uri-to-path: 1.0.0
+
+ bn.js@5.2.2: {}
+
+ borsh@0.7.0:
+ dependencies:
+ bn.js: 5.2.2
+ bs58: 4.0.1
+ text-encoding-utf-8: 1.0.2
+
+ borsh@2.0.0: {}
+
+ brace-expansion@1.1.12:
+ 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
+
+ bs58@5.0.0:
+ dependencies:
+ base-x: 4.0.1
+
+ buffer-from@1.1.2: {}
+
+ buffer@6.0.3:
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
+ bufferutil@4.1.0:
+ dependencies:
+ node-gyp-build: 4.8.4
+ optional: true
+
+ call-bind-apply-helpers@1.0.2:
+ dependencies:
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+
+ call-bind@1.0.8:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ get-intrinsic: 1.3.0
+ set-function-length: 1.2.2
+
+ call-bound@1.0.4:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ get-intrinsic: 1.3.0
+
+ camelcase@6.3.0: {}
+
+ chai@4.5.0:
+ dependencies:
+ assertion-error: 1.1.0
+ check-error: 1.0.3
+ deep-eql: 4.1.4
+ get-func-name: 2.0.2
+ loupe: 2.3.7
+ pathval: 1.1.1
+ type-detect: 4.1.0
+
+ chalk@4.1.2:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ chalk@5.6.2: {}
+
+ check-error@1.0.3:
+ dependencies:
+ get-func-name: 2.0.2
+
+ chokidar@3.5.3:
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.3
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ cliui@7.0.4:
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+
+ color-convert@2.0.1:
+ dependencies:
+ color-name: 1.1.4
+
+ color-name@1.1.4: {}
+
+ commander@12.1.0: {}
+
+ commander@14.0.3: {}
+
+ commander@2.20.3: {}
+
+ concat-map@0.0.1: {}
+
+ debug@4.3.3(supports-color@8.1.1):
+ dependencies:
+ ms: 2.1.2
+ optionalDependencies:
+ supports-color: 8.1.1
+
+ debug@4.4.3:
+ dependencies:
+ ms: 2.1.3
+
+ decamelize@4.0.0: {}
+
+ deep-eql@4.1.4:
+ dependencies:
+ type-detect: 4.1.0
+
+ define-data-property@1.1.4:
+ dependencies:
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ define-properties@1.2.1:
+ dependencies:
+ define-data-property: 1.1.4
+ has-property-descriptors: 1.0.2
+ object-keys: 1.1.1
+
+ delay@5.0.0: {}
+
+ diff@3.5.1: {}
+
+ diff@5.0.0: {}
+
+ dunder-proto@1.0.1:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ emoji-regex@8.0.0: {}
+
+ es-define-property@1.0.1: {}
+
+ es-errors@1.3.0: {}
+
+ es-object-atoms@1.1.1:
+ dependencies:
+ es-errors: 1.3.0
+
+ es6-promise@4.2.8: {}
+
+ es6-promisify@5.0.0:
+ dependencies:
+ es6-promise: 4.2.8
+
+ escalade@3.2.0: {}
+
+ escape-string-regexp@4.0.0: {}
+
+ eventemitter3@5.0.4: {}
+
+ eyes@0.1.8: {}
+
+ fast-stable-stringify@1.0.0: {}
+
+ fastestsmallesttextencoderdecoder@1.0.22: {}
+
+ file-uri-to-path@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: {}
+
+ for-each@0.3.5:
+ dependencies:
+ is-callable: 1.2.7
+
+ fs.realpath@1.0.0: {}
+
+ fs@0.0.1-security: {}
+
+ fsevents@2.3.3:
+ optional: true
+
+ function-bind@1.1.2: {}
+
+ generator-function@2.0.1: {}
+
+ get-caller-file@2.0.5: {}
+
+ get-func-name@2.0.2: {}
+
+ get-intrinsic@1.3.0:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ function-bind: 1.1.2
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.2
+ math-intrinsics: 1.1.0
+
+ get-proto@1.0.1:
+ dependencies:
+ dunder-proto: 1.0.1
+ es-object-atoms: 1.1.1
+
+ 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
+
+ gopd@1.2.0: {}
+
+ growl@1.10.5: {}
+
+ has-flag@4.0.0: {}
+
+ has-property-descriptors@1.0.2:
+ dependencies:
+ es-define-property: 1.0.1
+
+ has-symbols@1.1.0: {}
+
+ has-tostringtag@1.0.2:
+ dependencies:
+ has-symbols: 1.1.0
+
+ hasown@2.0.2:
+ dependencies:
+ function-bind: 1.1.2
+
+ 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-arguments@1.2.0:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-binary-path@2.1.0:
+ dependencies:
+ binary-extensions: 2.3.0
+
+ is-callable@1.2.7: {}
+
+ is-extglob@2.1.1: {}
+
+ is-fullwidth-code-point@3.0.0: {}
+
+ is-generator-function@1.1.2:
+ dependencies:
+ call-bound: 1.0.4
+ generator-function: 2.0.1
+ get-proto: 1.0.1
+ has-tostringtag: 1.0.2
+ safe-regex-test: 1.1.0
+
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
+
+ is-nan@1.3.2:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+
+ is-number@7.0.0: {}
+
+ is-plain-obj@2.1.0: {}
+
+ is-regex@1.2.1:
+ dependencies:
+ call-bound: 1.0.4
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.2
+
+ is-typed-array@1.1.15:
+ dependencies:
+ which-typed-array: 1.1.20
+
+ is-unicode-supported@0.1.0: {}
+
+ isexe@2.0.0: {}
+
+ isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.1.0)(utf-8-validate@5.0.10)):
+ dependencies:
+ ws: 7.5.10(bufferutil@4.1.0)(utf-8-validate@5.0.10)
+
+ jayson@4.3.0(bufferutil@4.1.0)(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.1.0)(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.1.0)(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: {}
+
+ math-intrinsics@1.1.0: {}
+
+ minimatch@3.1.2:
+ dependencies:
+ brace-expansion: 1.1.12
+
+ minimatch@4.2.1:
+ dependencies:
+ brace-expansion: 1.1.12
+
+ 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: {}
+
+ object-is@1.1.6:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+
+ object-keys@1.1.1: {}
+
+ object.assign@4.1.7:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ es-object-atoms: 1.1.1
+ has-symbols: 1.1.0
+ object-keys: 1.1.1
+
+ 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: {}
+
+ possible-typed-array-names@1.1.0: {}
+
+ randombytes@2.1.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ readdirp@3.6.0:
+ dependencies:
+ picomatch: 2.3.1
+
+ require-directory@2.1.1: {}
+
+ rpc-websockets@9.3.3:
+ dependencies:
+ '@swc/helpers': 0.5.18
+ '@types/uuid': 8.3.4
+ '@types/ws': 8.18.1
+ buffer: 6.0.3
+ eventemitter3: 5.0.4
+ uuid: 8.3.2
+ ws: 8.19.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)
+ optionalDependencies:
+ bufferutil: 4.1.0
+ utf-8-validate: 5.0.10
+
+ safe-buffer@5.2.1: {}
+
+ safe-regex-test@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-regex: 1.2.1
+
+ serialize-javascript@6.0.0:
+ dependencies:
+ randombytes: 2.1.0
+
+ set-function-length@1.2.2:
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ get-intrinsic: 1.3.0
+ gopd: 1.2.0
+ has-property-descriptors: 1.0.2
+
+ source-map-support@0.5.21:
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+
+ source-map@0.6.1: {}
+
+ stream-chain@2.2.5: {}
+
+ stream-json@1.9.1:
+ dependencies:
+ stream-chain: 2.2.5
+
+ string-width@4.2.3:
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+
+ strip-ansi@6.0.1:
+ dependencies:
+ ansi-regex: 5.0.1
+
+ strip-bom@3.0.0:
+ optional: true
+
+ strip-json-comments@3.1.1: {}
+
+ superstruct@2.0.2: {}
+
+ supports-color@7.2.0:
+ dependencies:
+ has-flag: 4.0.0
+
+ supports-color@8.1.1:
+ dependencies:
+ has-flag: 4.0.0
+
+ text-encoding-utf-8@1.0.2: {}
+
+ to-regex-range@5.0.1:
+ dependencies:
+ is-number: 7.0.0
+
+ tr46@0.0.3: {}
+
+ ts-mocha@10.1.0(mocha@9.2.2):
+ dependencies:
+ mocha: 9.2.2
+ ts-node: 7.0.1
+ optionalDependencies:
+ tsconfig-paths: 3.15.0
+
+ ts-node@7.0.1:
+ dependencies:
+ arrify: 1.0.1
+ buffer-from: 1.1.2
+ diff: 3.5.1
+ make-error: 1.3.6
+ minimist: 1.2.8
+ mkdirp: 0.5.6
+ source-map-support: 0.5.21
+ yn: 2.0.0
+
+ tsconfig-paths@3.15.0:
+ dependencies:
+ '@types/json5': 0.0.29
+ json5: 1.0.2
+ minimist: 1.2.8
+ strip-bom: 3.0.0
+ optional: true
+
+ tslib@2.8.1: {}
+
+ type-detect@4.1.0: {}
+
+ typescript@5.9.3: {}
+
+ undici-types@7.16.0: {}
+
+ utf-8-validate@5.0.10:
+ dependencies:
+ node-gyp-build: 4.8.4
+ optional: true
+
+ util@0.12.5:
+ dependencies:
+ inherits: 2.0.4
+ is-arguments: 1.2.0
+ is-generator-function: 1.1.2
+ is-typed-array: 1.1.15
+ which-typed-array: 1.1.20
+
+ 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-typed-array@1.1.20:
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ for-each: 0.3.5
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+
+ 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.1.0)(utf-8-validate@5.0.10):
+ optionalDependencies:
+ bufferutil: 4.1.0
+ utf-8-validate: 5.0.10
+
+ ws@8.19.0(bufferutil@4.1.0)(utf-8-validate@5.0.10):
+ optionalDependencies:
+ bufferutil: 4.1.0
+ 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/tokens/spl-token-minter/native/tests/instructions.ts b/tokens/spl-token-minter/native/tests/instructions.ts
index 03479b679..e62cde477 100644
--- a/tokens/spl-token-minter/native/tests/instructions.ts
+++ b/tokens/spl-token-minter/native/tests/instructions.ts
@@ -1,52 +1,26 @@
import * as borsh from 'borsh';
-class Assignable {
- constructor(properties) {
- for (const [key, value] of Object.entries(properties)) {
- this[key] = value;
- }
- }
-}
-
export enum SplMinterInstruction {
Create = 0,
Mint = 1,
}
-export class CreateTokenArgs extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(CreateTokenArgsSchema, this));
- }
-}
-const CreateTokenArgsSchema = new Map([
- [
- CreateTokenArgs,
- {
- kind: 'struct',
- fields: [
- ['instruction', 'u8'],
- ['token_title', 'string'],
- ['token_symbol', 'string'],
- ['token_uri', 'string'],
- ],
- },
- ],
-]);
+export const CreateTokenArgsSchema = {
+ struct: {
+ instruction: 'u8',
+ token_title: 'string',
+ token_symbol: 'string',
+ token_uri: 'string',
+ },
+};
+
+export const MintToArgsSchema = {
+ struct: {
+ instruction: 'u8',
+ quantity: 'u64',
+ },
+};
-export class MintToArgs extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(MintToArgsSchema, this));
- }
+export function borshSerialize(schema: borsh.Schema, data: object): Buffer {
+ return Buffer.from(borsh.serialize(schema, data));
}
-const MintToArgsSchema = new Map([
- [
- MintToArgs,
- {
- kind: 'struct',
- fields: [
- ['instruction', 'u8'],
- ['quantity', 'u64'],
- ],
- },
- ],
-]);
diff --git a/tokens/spl-token-minter/native/tests/test.ts b/tokens/spl-token-minter/native/tests/test.ts
index 724c82350..9a9c956ab 100644
--- a/tokens/spl-token-minter/native/tests/test.ts
+++ b/tokens/spl-token-minter/native/tests/test.ts
@@ -12,10 +12,10 @@ import {
TransactionInstruction,
} from '@solana/web3.js';
import { BN } from 'bn.js';
-import { CreateTokenArgs, MintToArgs, SplMinterInstruction } from './instructions';
+import { borshSerialize, CreateTokenArgsSchema, MintToArgsSchema, SplMinterInstruction } from './instructions';
function createKeypairFromFile(path: string): Keypair {
- return Keypair.fromSecretKey(Buffer.from(JSON.parse(require('node:fs').readFileSync(path, 'utf-8'))));
+ return Keypair.fromSecretKey(Uint8Array.from(JSON.parse(require('node:fs').readFileSync(path, 'utf-8'))));
}
describe('SPL Token Minter', async () => {
@@ -32,7 +32,7 @@ describe('SPL Token Minter', async () => {
TOKEN_METADATA_PROGRAM_ID,
)[0];
- const instructionData = new CreateTokenArgs({
+ const instructionData = borshSerialize(CreateTokenArgsSchema, {
instruction: SplMinterInstruction.Create,
token_title: 'Solana Gold',
token_symbol: 'GOLDSOL',
@@ -55,7 +55,7 @@ describe('SPL Token Minter', async () => {
}, // Token metadata program
],
programId: program.publicKey,
- data: instructionData.toBuffer(),
+ data: instructionData,
});
const sx = await sendAndConfirmTransaction(connection, new Transaction().add(ix), [payer, mintKeypair]);
@@ -68,7 +68,7 @@ describe('SPL Token Minter', async () => {
it('Mint some tokens to your wallet!', async () => {
const associatedTokenAccountAddress = await getAssociatedTokenAddress(mintKeypair.publicKey, payer.publicKey);
- const instructionData = new MintToArgs({
+ const instructionData = borshSerialize(MintToArgsSchema, {
instruction: SplMinterInstruction.Mint,
quantity: new BN(150),
});
@@ -92,7 +92,7 @@ describe('SPL Token Minter', async () => {
}, // Token metadata program
],
programId: program.publicKey,
- data: instructionData.toBuffer(),
+ data: instructionData,
});
const sx = await sendAndConfirmTransaction(connection, new Transaction().add(ix), [payer]);
diff --git a/tokens/token-2022/basics/anchor/Anchor.toml b/tokens/token-2022/basics/anchor/Anchor.toml
index 587cfe596..2bc505b70 100644
--- a/tokens/token-2022/basics/anchor/Anchor.toml
+++ b/tokens/token-2022/basics/anchor/Anchor.toml
@@ -1,3 +1,6 @@
+[toolchain]
+solana_version = "3.1.8"
+
[features]
seeds = false
skip-lint = false
diff --git a/tokens/token-2022/cpi-guard/anchor/Anchor.toml b/tokens/token-2022/cpi-guard/anchor/Anchor.toml
index 4f03eaa3e..b6112f9b5 100644
--- a/tokens/token-2022/cpi-guard/anchor/Anchor.toml
+++ b/tokens/token-2022/cpi-guard/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/tokens/token-2022/default-account-state/anchor/Anchor.toml b/tokens/token-2022/default-account-state/anchor/Anchor.toml
index a2de4a2d4..5a89dd659 100644
--- a/tokens/token-2022/default-account-state/anchor/Anchor.toml
+++ b/tokens/token-2022/default-account-state/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/tokens/token-2022/default-account-state/native/package.json b/tokens/token-2022/default-account-state/native/package.json
index 48fb3d18f..dd64d2a55 100644
--- a/tokens/token-2022/default-account-state/native/package.json
+++ b/tokens/token-2022/default-account-state/native/package.json
@@ -9,7 +9,7 @@
"@metaplex-foundation/mpl-token-metadata": "^2.5.2",
"@solana/spl-token": "^0.3.7",
"@solana/web3.js": "^1.73.0",
- "borsh": "^0.7.0",
+ "borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
},
@@ -21,6 +21,6 @@
"mocha": "^9.0.3",
"solana-bankrun": "^0.3.0",
"ts-mocha": "^10.0.0",
- "typescript": "^4.3.5"
+ "typescript": "^5"
}
}
diff --git a/tokens/token-2022/default-account-state/native/pnpm-lock.yaml b/tokens/token-2022/default-account-state/native/pnpm-lock.yaml
index 164085a92..bb1f1ae50 100644
--- a/tokens/token-2022/default-account-state/native/pnpm-lock.yaml
+++ b/tokens/token-2022/default-account-state/native/pnpm-lock.yaml
@@ -18,8 +18,8 @@ importers:
specifier: ^1.73.0
version: 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
borsh:
- specifier: ^0.7.0
- version: 0.7.0
+ specifier: ^2.0.0
+ version: 2.0.0
buffer:
specifier: ^6.0.3
version: 6.0.3
@@ -49,8 +49,8 @@ importers:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
typescript:
- specifier: ^4.3.5
- version: 4.9.5
+ specifier: ^5
+ version: 5.9.3
packages:
@@ -231,6 +231,9 @@ packages:
borsh@0.7.0:
resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
+ borsh@2.0.0:
+ resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==}
+
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
@@ -713,12 +716,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.0:
resolution: {integrity: sha512-xsS2CS2xb1Sw4ivNXM0gPz/qpW9BX0neSvt/pnok5L330Nu9xlTnKAY8FhzzqOP9P9sJlGRM787Y6d0yYwt6xQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.0:
resolution: {integrity: sha512-YkH7sa8TB/AoRPzG17CXJtYsRIQHEkEqGLz1Vwc13taXhDBkjO7z6NI5JYw7n0ybRymDHwMYTc7sd+5J40TyVQ==}
@@ -790,9 +795,9 @@ packages:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
- typescript@4.9.5:
- resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
- engines: {node: '>=4.2.0'}
+ typescript@5.9.3:
+ resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
+ engines: {node: '>=14.17'}
hasBin: true
undici-types@5.26.5:
@@ -1136,6 +1141,8 @@ snapshots:
bs58: 4.0.1
text-encoding-utf-8: 1.0.2
+ borsh@2.0.0: {}
+
brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
@@ -1696,7 +1703,7 @@ snapshots:
type-detect@4.0.8: {}
- typescript@4.9.5: {}
+ typescript@5.9.3: {}
undici-types@5.26.5: {}
diff --git a/tokens/token-2022/default-account-state/native/tests/test.ts b/tokens/token-2022/default-account-state/native/tests/test.ts
index 4b6373f52..01631bd34 100644
--- a/tokens/token-2022/default-account-state/native/tests/test.ts
+++ b/tokens/token-2022/default-account-state/native/tests/test.ts
@@ -6,28 +6,12 @@ import * as borsh from 'borsh';
import { assert } from 'chai';
import { start } from 'solana-bankrun';
-class Assignable {
- constructor(properties) {
- for (const [key, value] of Object.entries(properties)) {
- this[key] = value;
- }
- }
-}
-class CreateTokenArgs extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(CreateTokenArgsSchema, this));
- }
+const CreateTokenArgsSchema = { struct: { token_decimals: 'u8' } };
+
+function borshSerialize(schema: borsh.Schema, data: object): Buffer {
+ return Buffer.from(borsh.serialize(schema, data));
}
-const CreateTokenArgsSchema = new Map([
- [
- CreateTokenArgs,
- {
- kind: 'struct',
- fields: [['token_decimals', 'u8']],
- },
- ],
-]);
describe('Create Token', async () => {
const PROGRAM_ID = PublicKey.unique();
@@ -48,7 +32,7 @@ describe('Create Token', async () => {
const mintKeypair: Keypair = Keypair.generate();
- const instructionData = new CreateTokenArgs({
+ const instructionData = borshSerialize(CreateTokenArgsSchema, {
token_decimals: 9,
});
@@ -62,7 +46,7 @@ describe('Create Token', async () => {
{ pubkey: TOKEN_2022_PROGRAM_ID, isSigner: false, isWritable: false }, // Token program
],
programId: PROGRAM_ID,
- data: instructionData.toBuffer(),
+ data: instructionData,
});
const tx = new Transaction();
diff --git a/tokens/token-2022/group/anchor/Anchor.toml b/tokens/token-2022/group/anchor/Anchor.toml
index 96bbf1d28..b83d7a1b6 100644
--- a/tokens/token-2022/group/anchor/Anchor.toml
+++ b/tokens/token-2022/group/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/tokens/token-2022/immutable-owner/anchor/Anchor.toml b/tokens/token-2022/immutable-owner/anchor/Anchor.toml
index 9dced3874..9bfbe6a9b 100644
--- a/tokens/token-2022/immutable-owner/anchor/Anchor.toml
+++ b/tokens/token-2022/immutable-owner/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/tokens/token-2022/interest-bearing/anchor/Anchor.toml b/tokens/token-2022/interest-bearing/anchor/Anchor.toml
index 27e5bd4eb..235bf97d8 100644
--- a/tokens/token-2022/interest-bearing/anchor/Anchor.toml
+++ b/tokens/token-2022/interest-bearing/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/tokens/token-2022/memo-transfer/anchor/Anchor.toml b/tokens/token-2022/memo-transfer/anchor/Anchor.toml
index 0947ebb69..0c8ca56fd 100644
--- a/tokens/token-2022/memo-transfer/anchor/Anchor.toml
+++ b/tokens/token-2022/memo-transfer/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/tokens/token-2022/metadata/anchor/Anchor.toml b/tokens/token-2022/metadata/anchor/Anchor.toml
index d592393cc..5abe426b1 100644
--- a/tokens/token-2022/metadata/anchor/Anchor.toml
+++ b/tokens/token-2022/metadata/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/tokens/token-2022/mint-close-authority/anchor/Anchor.toml b/tokens/token-2022/mint-close-authority/anchor/Anchor.toml
index c5bda972b..5e0362ca3 100644
--- a/tokens/token-2022/mint-close-authority/anchor/Anchor.toml
+++ b/tokens/token-2022/mint-close-authority/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/tokens/token-2022/mint-close-authority/native/package.json b/tokens/token-2022/mint-close-authority/native/package.json
index 5de902719..beb5150cf 100644
--- a/tokens/token-2022/mint-close-authority/native/package.json
+++ b/tokens/token-2022/mint-close-authority/native/package.json
@@ -9,7 +9,7 @@
"@metaplex-foundation/mpl-token-metadata": "^2.5.2",
"@solana/spl-token": "^0.3.7",
"@solana/web3.js": "^1.73.0",
- "borsh": "^0.7.0",
+ "borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
},
@@ -21,6 +21,6 @@
"mocha": "^9.0.3",
"solana-bankrun": "^0.3.0",
"ts-mocha": "^10.0.0",
- "typescript": "^4.3.5"
+ "typescript": "^5"
}
}
diff --git a/tokens/token-2022/mint-close-authority/native/pnpm-lock.yaml b/tokens/token-2022/mint-close-authority/native/pnpm-lock.yaml
index 164085a92..bb1f1ae50 100644
--- a/tokens/token-2022/mint-close-authority/native/pnpm-lock.yaml
+++ b/tokens/token-2022/mint-close-authority/native/pnpm-lock.yaml
@@ -18,8 +18,8 @@ importers:
specifier: ^1.73.0
version: 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
borsh:
- specifier: ^0.7.0
- version: 0.7.0
+ specifier: ^2.0.0
+ version: 2.0.0
buffer:
specifier: ^6.0.3
version: 6.0.3
@@ -49,8 +49,8 @@ importers:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
typescript:
- specifier: ^4.3.5
- version: 4.9.5
+ specifier: ^5
+ version: 5.9.3
packages:
@@ -231,6 +231,9 @@ packages:
borsh@0.7.0:
resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
+ borsh@2.0.0:
+ resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==}
+
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
@@ -713,12 +716,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.0:
resolution: {integrity: sha512-xsS2CS2xb1Sw4ivNXM0gPz/qpW9BX0neSvt/pnok5L330Nu9xlTnKAY8FhzzqOP9P9sJlGRM787Y6d0yYwt6xQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.0:
resolution: {integrity: sha512-YkH7sa8TB/AoRPzG17CXJtYsRIQHEkEqGLz1Vwc13taXhDBkjO7z6NI5JYw7n0ybRymDHwMYTc7sd+5J40TyVQ==}
@@ -790,9 +795,9 @@ packages:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
- typescript@4.9.5:
- resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
- engines: {node: '>=4.2.0'}
+ typescript@5.9.3:
+ resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
+ engines: {node: '>=14.17'}
hasBin: true
undici-types@5.26.5:
@@ -1136,6 +1141,8 @@ snapshots:
bs58: 4.0.1
text-encoding-utf-8: 1.0.2
+ borsh@2.0.0: {}
+
brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
@@ -1696,7 +1703,7 @@ snapshots:
type-detect@4.0.8: {}
- typescript@4.9.5: {}
+ typescript@5.9.3: {}
undici-types@5.26.5: {}
diff --git a/tokens/token-2022/mint-close-authority/native/tests/test.ts b/tokens/token-2022/mint-close-authority/native/tests/test.ts
index fd16b9635..8d4ce50f2 100644
--- a/tokens/token-2022/mint-close-authority/native/tests/test.ts
+++ b/tokens/token-2022/mint-close-authority/native/tests/test.ts
@@ -6,28 +6,12 @@ import * as borsh from 'borsh';
import { assert } from 'chai';
import { start } from 'solana-bankrun';
-class Assignable {
- constructor(properties) {
- for (const [key, value] of Object.entries(properties)) {
- this[key] = value;
- }
- }
-}
-class CreateTokenArgs extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(CreateTokenArgsSchema, this));
- }
+const CreateTokenArgsSchema = { struct: { token_decimals: 'u8' } };
+
+function borshSerialize(schema: borsh.Schema, data: object): Buffer {
+ return Buffer.from(borsh.serialize(schema, data));
}
-const CreateTokenArgsSchema = new Map([
- [
- CreateTokenArgs,
- {
- kind: 'struct',
- fields: [['token_decimals', 'u8']],
- },
- ],
-]);
describe('Create Token', async () => {
const PROGRAM_ID = PublicKey.unique();
@@ -46,7 +30,7 @@ describe('Create Token', async () => {
test('Create a Token-22 SPL-Token !', async () => {
const mintKeypair: Keypair = Keypair.generate();
- const instructionData = new CreateTokenArgs({
+ const instructionData = borshSerialize(CreateTokenArgsSchema, {
token_decimals: 9,
});
@@ -61,7 +45,7 @@ describe('Create Token', async () => {
{ pubkey: TOKEN_2022_PROGRAM_ID, isSigner: false, isWritable: false }, // Token program
],
programId: PROGRAM_ID,
- data: instructionData.toBuffer(),
+ data: instructionData,
});
const blockhash = context.lastBlockhash;
diff --git a/tokens/token-2022/multiple-extensions/native/package.json b/tokens/token-2022/multiple-extensions/native/package.json
index 48fb3d18f..dd64d2a55 100644
--- a/tokens/token-2022/multiple-extensions/native/package.json
+++ b/tokens/token-2022/multiple-extensions/native/package.json
@@ -9,7 +9,7 @@
"@metaplex-foundation/mpl-token-metadata": "^2.5.2",
"@solana/spl-token": "^0.3.7",
"@solana/web3.js": "^1.73.0",
- "borsh": "^0.7.0",
+ "borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
},
@@ -21,6 +21,6 @@
"mocha": "^9.0.3",
"solana-bankrun": "^0.3.0",
"ts-mocha": "^10.0.0",
- "typescript": "^4.3.5"
+ "typescript": "^5"
}
}
diff --git a/tokens/token-2022/multiple-extensions/native/pnpm-lock.yaml b/tokens/token-2022/multiple-extensions/native/pnpm-lock.yaml
index 164085a92..bb1f1ae50 100644
--- a/tokens/token-2022/multiple-extensions/native/pnpm-lock.yaml
+++ b/tokens/token-2022/multiple-extensions/native/pnpm-lock.yaml
@@ -18,8 +18,8 @@ importers:
specifier: ^1.73.0
version: 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
borsh:
- specifier: ^0.7.0
- version: 0.7.0
+ specifier: ^2.0.0
+ version: 2.0.0
buffer:
specifier: ^6.0.3
version: 6.0.3
@@ -49,8 +49,8 @@ importers:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
typescript:
- specifier: ^4.3.5
- version: 4.9.5
+ specifier: ^5
+ version: 5.9.3
packages:
@@ -231,6 +231,9 @@ packages:
borsh@0.7.0:
resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
+ borsh@2.0.0:
+ resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==}
+
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
@@ -713,12 +716,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.0:
resolution: {integrity: sha512-xsS2CS2xb1Sw4ivNXM0gPz/qpW9BX0neSvt/pnok5L330Nu9xlTnKAY8FhzzqOP9P9sJlGRM787Y6d0yYwt6xQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.0:
resolution: {integrity: sha512-YkH7sa8TB/AoRPzG17CXJtYsRIQHEkEqGLz1Vwc13taXhDBkjO7z6NI5JYw7n0ybRymDHwMYTc7sd+5J40TyVQ==}
@@ -790,9 +795,9 @@ packages:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
- typescript@4.9.5:
- resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
- engines: {node: '>=4.2.0'}
+ typescript@5.9.3:
+ resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
+ engines: {node: '>=14.17'}
hasBin: true
undici-types@5.26.5:
@@ -1136,6 +1141,8 @@ snapshots:
bs58: 4.0.1
text-encoding-utf-8: 1.0.2
+ borsh@2.0.0: {}
+
brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
@@ -1696,7 +1703,7 @@ snapshots:
type-detect@4.0.8: {}
- typescript@4.9.5: {}
+ typescript@5.9.3: {}
undici-types@5.26.5: {}
diff --git a/tokens/token-2022/multiple-extensions/native/tests/test.ts b/tokens/token-2022/multiple-extensions/native/tests/test.ts
index c73deed04..94757d648 100644
--- a/tokens/token-2022/multiple-extensions/native/tests/test.ts
+++ b/tokens/token-2022/multiple-extensions/native/tests/test.ts
@@ -6,28 +6,12 @@ import * as borsh from 'borsh';
import { assert } from 'chai';
import { start } from 'solana-bankrun';
-class Assignable {
- constructor(properties) {
- for (const [key, value] of Object.entries(properties)) {
- this[key] = value;
- }
- }
-}
-class CreateTokenArgs extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(CreateTokenArgsSchema, this));
- }
+const CreateTokenArgsSchema = { struct: { token_decimals: 'u8' } };
+
+function borshSerialize(schema: borsh.Schema, data: object): Buffer {
+ return Buffer.from(borsh.serialize(schema, data));
}
-const CreateTokenArgsSchema = new Map([
- [
- CreateTokenArgs,
- {
- kind: 'struct',
- fields: [['token_decimals', 'u8']],
- },
- ],
-]);
describe('Create Token', async () => {
const PROGRAM_ID = PublicKey.unique();
@@ -39,7 +23,7 @@ describe('Create Token', async () => {
const blockhash = context.lastBlockhash;
const mintKeypair: Keypair = Keypair.generate();
- const instructionData = new CreateTokenArgs({
+ const instructionData = borshSerialize(CreateTokenArgsSchema, {
token_decimals: 9,
});
@@ -54,7 +38,7 @@ describe('Create Token', async () => {
{ pubkey: TOKEN_2022_PROGRAM_ID, isSigner: false, isWritable: false }, // Token program
],
programId: PROGRAM_ID,
- data: instructionData.toBuffer(),
+ data: instructionData,
});
const tx = new Transaction();
diff --git a/tokens/token-2022/nft-meta-data-pointer/anchor-example/anchor/Anchor.toml b/tokens/token-2022/nft-meta-data-pointer/anchor-example/anchor/Anchor.toml
index 9f3f4f967..4d5cc7caf 100644
--- a/tokens/token-2022/nft-meta-data-pointer/anchor-example/anchor/Anchor.toml
+++ b/tokens/token-2022/nft-meta-data-pointer/anchor-example/anchor/Anchor.toml
@@ -1,3 +1,6 @@
+[toolchain]
+solana_version = "3.1.8"
+
[features]
seeds = false
[programs.localnet]
diff --git a/tokens/token-2022/non-transferable/anchor/Anchor.toml b/tokens/token-2022/non-transferable/anchor/Anchor.toml
index 3945bdc96..2c54ba3a5 100644
--- a/tokens/token-2022/non-transferable/anchor/Anchor.toml
+++ b/tokens/token-2022/non-transferable/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/tokens/token-2022/non-transferable/native/package.json b/tokens/token-2022/non-transferable/native/package.json
index 48fb3d18f..dd64d2a55 100644
--- a/tokens/token-2022/non-transferable/native/package.json
+++ b/tokens/token-2022/non-transferable/native/package.json
@@ -9,7 +9,7 @@
"@metaplex-foundation/mpl-token-metadata": "^2.5.2",
"@solana/spl-token": "^0.3.7",
"@solana/web3.js": "^1.73.0",
- "borsh": "^0.7.0",
+ "borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
},
@@ -21,6 +21,6 @@
"mocha": "^9.0.3",
"solana-bankrun": "^0.3.0",
"ts-mocha": "^10.0.0",
- "typescript": "^4.3.5"
+ "typescript": "^5"
}
}
diff --git a/tokens/token-2022/non-transferable/native/pnpm-lock.yaml b/tokens/token-2022/non-transferable/native/pnpm-lock.yaml
index 164085a92..bb1f1ae50 100644
--- a/tokens/token-2022/non-transferable/native/pnpm-lock.yaml
+++ b/tokens/token-2022/non-transferable/native/pnpm-lock.yaml
@@ -18,8 +18,8 @@ importers:
specifier: ^1.73.0
version: 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
borsh:
- specifier: ^0.7.0
- version: 0.7.0
+ specifier: ^2.0.0
+ version: 2.0.0
buffer:
specifier: ^6.0.3
version: 6.0.3
@@ -49,8 +49,8 @@ importers:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
typescript:
- specifier: ^4.3.5
- version: 4.9.5
+ specifier: ^5
+ version: 5.9.3
packages:
@@ -231,6 +231,9 @@ packages:
borsh@0.7.0:
resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
+ borsh@2.0.0:
+ resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==}
+
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
@@ -713,12 +716,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.0:
resolution: {integrity: sha512-xsS2CS2xb1Sw4ivNXM0gPz/qpW9BX0neSvt/pnok5L330Nu9xlTnKAY8FhzzqOP9P9sJlGRM787Y6d0yYwt6xQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.0:
resolution: {integrity: sha512-YkH7sa8TB/AoRPzG17CXJtYsRIQHEkEqGLz1Vwc13taXhDBkjO7z6NI5JYw7n0ybRymDHwMYTc7sd+5J40TyVQ==}
@@ -790,9 +795,9 @@ packages:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
- typescript@4.9.5:
- resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
- engines: {node: '>=4.2.0'}
+ typescript@5.9.3:
+ resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
+ engines: {node: '>=14.17'}
hasBin: true
undici-types@5.26.5:
@@ -1136,6 +1141,8 @@ snapshots:
bs58: 4.0.1
text-encoding-utf-8: 1.0.2
+ borsh@2.0.0: {}
+
brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
@@ -1696,7 +1703,7 @@ snapshots:
type-detect@4.0.8: {}
- typescript@4.9.5: {}
+ typescript@5.9.3: {}
undici-types@5.26.5: {}
diff --git a/tokens/token-2022/non-transferable/native/tests/test.ts b/tokens/token-2022/non-transferable/native/tests/test.ts
index b2ca6aa53..8b67b66b2 100644
--- a/tokens/token-2022/non-transferable/native/tests/test.ts
+++ b/tokens/token-2022/non-transferable/native/tests/test.ts
@@ -6,28 +6,12 @@ import * as borsh from 'borsh';
import { assert } from 'chai';
import { start } from 'solana-bankrun';
-class Assignable {
- constructor(properties) {
- for (const [key, value] of Object.entries(properties)) {
- this[key] = value;
- }
- }
-}
-class CreateTokenArgs extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(CreateTokenArgsSchema, this));
- }
+const CreateTokenArgsSchema = { struct: { token_decimals: 'u8' } };
+
+function borshSerialize(schema: borsh.Schema, data: object): Buffer {
+ return Buffer.from(borsh.serialize(schema, data));
}
-const CreateTokenArgsSchema = new Map([
- [
- CreateTokenArgs,
- {
- kind: 'struct',
- fields: [['token_decimals', 'u8']],
- },
- ],
-]);
describe('Create Token', async () => {
const PROGRAM_ID = PublicKey.unique();
@@ -39,7 +23,7 @@ describe('Create Token', async () => {
const blockhash = context.lastBlockhash;
const mintKeypair: Keypair = Keypair.generate();
- const instructionData = new CreateTokenArgs({
+ const instructionData = borshSerialize(CreateTokenArgsSchema, {
token_decimals: 9,
});
@@ -53,7 +37,7 @@ describe('Create Token', async () => {
{ pubkey: TOKEN_2022_PROGRAM_ID, isSigner: false, isWritable: false }, // Token program
],
programId: PROGRAM_ID,
- data: instructionData.toBuffer(),
+ data: instructionData,
});
const tx = new Transaction();
diff --git a/tokens/token-2022/permanent-delegate/anchor/Anchor.toml b/tokens/token-2022/permanent-delegate/anchor/Anchor.toml
index bc98c6b43..35d7414ff 100644
--- a/tokens/token-2022/permanent-delegate/anchor/Anchor.toml
+++ b/tokens/token-2022/permanent-delegate/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/tokens/token-2022/transfer-fee/anchor/Anchor.toml b/tokens/token-2022/transfer-fee/anchor/Anchor.toml
index c2396e5f6..a104ba9d9 100644
--- a/tokens/token-2022/transfer-fee/anchor/Anchor.toml
+++ b/tokens/token-2022/transfer-fee/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/tokens/token-2022/transfer-fee/native/package.json b/tokens/token-2022/transfer-fee/native/package.json
index 48fb3d18f..dd64d2a55 100644
--- a/tokens/token-2022/transfer-fee/native/package.json
+++ b/tokens/token-2022/transfer-fee/native/package.json
@@ -9,7 +9,7 @@
"@metaplex-foundation/mpl-token-metadata": "^2.5.2",
"@solana/spl-token": "^0.3.7",
"@solana/web3.js": "^1.73.0",
- "borsh": "^0.7.0",
+ "borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
},
@@ -21,6 +21,6 @@
"mocha": "^9.0.3",
"solana-bankrun": "^0.3.0",
"ts-mocha": "^10.0.0",
- "typescript": "^4.3.5"
+ "typescript": "^5"
}
}
diff --git a/tokens/token-2022/transfer-fee/native/pnpm-lock.yaml b/tokens/token-2022/transfer-fee/native/pnpm-lock.yaml
index 164085a92..bb1f1ae50 100644
--- a/tokens/token-2022/transfer-fee/native/pnpm-lock.yaml
+++ b/tokens/token-2022/transfer-fee/native/pnpm-lock.yaml
@@ -18,8 +18,8 @@ importers:
specifier: ^1.73.0
version: 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
borsh:
- specifier: ^0.7.0
- version: 0.7.0
+ specifier: ^2.0.0
+ version: 2.0.0
buffer:
specifier: ^6.0.3
version: 6.0.3
@@ -49,8 +49,8 @@ importers:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
typescript:
- specifier: ^4.3.5
- version: 4.9.5
+ specifier: ^5
+ version: 5.9.3
packages:
@@ -231,6 +231,9 @@ packages:
borsh@0.7.0:
resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
+ borsh@2.0.0:
+ resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==}
+
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
@@ -713,12 +716,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.0:
resolution: {integrity: sha512-xsS2CS2xb1Sw4ivNXM0gPz/qpW9BX0neSvt/pnok5L330Nu9xlTnKAY8FhzzqOP9P9sJlGRM787Y6d0yYwt6xQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.0:
resolution: {integrity: sha512-YkH7sa8TB/AoRPzG17CXJtYsRIQHEkEqGLz1Vwc13taXhDBkjO7z6NI5JYw7n0ybRymDHwMYTc7sd+5J40TyVQ==}
@@ -790,9 +795,9 @@ packages:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
- typescript@4.9.5:
- resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
- engines: {node: '>=4.2.0'}
+ typescript@5.9.3:
+ resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
+ engines: {node: '>=14.17'}
hasBin: true
undici-types@5.26.5:
@@ -1136,6 +1141,8 @@ snapshots:
bs58: 4.0.1
text-encoding-utf-8: 1.0.2
+ borsh@2.0.0: {}
+
brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
@@ -1696,7 +1703,7 @@ snapshots:
type-detect@4.0.8: {}
- typescript@4.9.5: {}
+ typescript@5.9.3: {}
undici-types@5.26.5: {}
diff --git a/tokens/token-2022/transfer-fee/native/tests/test.ts b/tokens/token-2022/transfer-fee/native/tests/test.ts
index 566dd98e3..c0f846883 100644
--- a/tokens/token-2022/transfer-fee/native/tests/test.ts
+++ b/tokens/token-2022/transfer-fee/native/tests/test.ts
@@ -6,28 +6,12 @@ import * as borsh from 'borsh';
import { assert } from 'chai';
import { start } from 'solana-bankrun';
-class Assignable {
- constructor(properties) {
- for (const [key, value] of Object.entries(properties)) {
- this[key] = value;
- }
- }
-}
-class CreateTokenArgs extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(CreateTokenArgsSchema, this));
- }
+const CreateTokenArgsSchema = { struct: { token_decimals: 'u8' } };
+
+function borshSerialize(schema: borsh.Schema, data: object): Buffer {
+ return Buffer.from(borsh.serialize(schema, data));
}
-const CreateTokenArgsSchema = new Map([
- [
- CreateTokenArgs,
- {
- kind: 'struct',
- fields: [['token_decimals', 'u8']],
- },
- ],
-]);
describe('Create Token', async () => {
const PROGRAM_ID = PublicKey.unique();
@@ -39,7 +23,7 @@ describe('Create Token', async () => {
const blockhash = context.lastBlockhash;
const mintKeypair: Keypair = Keypair.generate();
- const instructionData = new CreateTokenArgs({
+ const instructionData = borshSerialize(CreateTokenArgsSchema, {
token_decimals: 9,
});
@@ -53,7 +37,7 @@ describe('Create Token', async () => {
{ pubkey: TOKEN_2022_PROGRAM_ID, isSigner: false, isWritable: false }, // Token program
],
programId: PROGRAM_ID,
- data: instructionData.toBuffer(),
+ data: instructionData,
});
const tx = new Transaction();
diff --git a/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/Anchor.toml
index daee4d775..5faa62aae 100644
--- a/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/Anchor.toml
+++ b/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/Anchor.toml
@@ -1,6 +1,6 @@
[toolchain]
anchor_version = "0.32.1"
-solana_version = "2.1.15"
+solana_version = "3.1.8"
[programs.localnet]
transfer_hook = "1qahDxKHeCLZhbBU2NyMU6vQCQmEUmdeSEBrG5drffK"
diff --git a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/Anchor.toml
index 3de1ef86b..66e9fd32d 100644
--- a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/Anchor.toml
+++ b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
package_manager = "yarn"
[features]
diff --git a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/Cargo.toml b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/Cargo.toml
index 07f49490d..98e8be9db 100644
--- a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/Cargo.toml
+++ b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/Cargo.toml
@@ -28,24 +28,11 @@ anchor-spl = { version = "0.32.1", features = [
] }
-spl-tlv-account-resolution = "0.8.1"
-spl-transfer-hook-interface = { version = "0.8.2" }
-spl-discriminator = "0.3"
+spl-tlv-account-resolution = "0.11.1"
+spl-transfer-hook-interface = { version = "2.1.0" }
+spl-discriminator = "0.5.1"
[dev-dependencies]
-litesvm = "0.6.1"
-
-
-solana-instruction = "2.2.1"
-solana-keypair = "2.2.1"
-solana-native-token = "2.2.1"
-solana-pubkey = "2.2.1"
-solana-signer = "2.2.1"
-solana-system-interface = "1.0.0"
-solana-transaction = "2.2.1"
-solana-message = "2.2.1"
-solana-sdk-ids = "2.2.1"
-spl-token-2022 = { version = "8.0.1", features = ["no-entrypoint"]}
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] }
diff --git a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/instructions/attach_to_mint.rs b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/instructions/attach_to_mint.rs
index a6dc42679..74fb29138 100644
--- a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/instructions/attach_to_mint.rs
+++ b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/instructions/attach_to_mint.rs
@@ -51,7 +51,8 @@ impl AttachToMint<'_> {
let extra_metas_account = &self.extra_metas_account;
let metas = get_extra_account_metas()?;
let mut data = extra_metas_account.try_borrow_mut_data()?;
- ExtraAccountMetaList::init::(&mut data, &metas)?;
+ ExtraAccountMetaList::init::(&mut data, &metas)
+ .map_err(|_| ProgramError::InvalidAccountData)?;
Ok(())
}
diff --git a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/instructions/init_mint.rs b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/instructions/init_mint.rs
index 445dd03c4..027b45434 100644
--- a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/instructions/init_mint.rs
+++ b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/instructions/init_mint.rs
@@ -108,7 +108,8 @@ impl InitMint<'_> {
let extra_metas_account = &self.extra_metas_account;
let metas = get_extra_account_metas()?;
let mut data = extra_metas_account.try_borrow_mut_data()?;
- ExtraAccountMetaList::init::(&mut data, &metas)?;
+ ExtraAccountMetaList::init::(&mut data, &metas)
+ .map_err(|_| ProgramError::InvalidAccountData)?;
Ok(())
}
diff --git a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/utils.rs b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/utils.rs
index e647df985..7ffc952ad 100644
--- a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/utils.rs
+++ b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/utils.rs
@@ -7,7 +7,7 @@ use spl_tlv_account_resolution::{
use crate::AB_WALLET_SEED;
pub fn get_meta_list_size() -> Result {
- Ok(ExtraAccountMetaList::size_of(1).unwrap())
+ Ok(ExtraAccountMetaList::size_of(1).map_err(|_| ProgramError::InvalidArgument)?)
}
pub fn get_extra_account_metas() -> Result> {
@@ -26,6 +26,6 @@ pub fn get_extra_account_metas() -> Result> {
],
false,
false,
- )?, // [2] destination token account
+ ).map_err(|_| ProgramError::InvalidArgument)?, // [2] destination token account
])
}
diff --git a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/tests-rs/README.md b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/tests-rs/README.md
new file mode 100644
index 000000000..4305f3c1b
--- /dev/null
+++ b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/tests-rs/README.md
@@ -0,0 +1,26 @@
+# Temporarily relocated Rust tests
+
+`test.rs` was moved here from `programs/abl-token/tests/test.rs` because it
+cannot currently compile alongside anchor-lang 0.32.1.
+
+## Why
+
+The test uses **litesvm**, which pins `solana-account-info` to an exact 2.2.x
+version. However, anchor-lang 0.32.1 requires `solana-account-info >=2.3.0`
+for the `AccountInfo::resize()` method (renamed from `realloc` in 2.3.0).
+
+This creates an unresolvable dependency conflict:
+
+- **litesvm <=0.6** → pins `solana-account-info =2.2.1` (too old, no `resize()`)
+- **litesvm 0.9+** → uses `solana-account-info 3.x` (type mismatch with anchor-lang's 2.x types)
+
+No litesvm release currently targets the `solana-account-info 2.3+` range
+that anchor-lang 0.32.1 needs.
+
+## When to move it back
+
+Move `test.rs` back to `programs/abl-token/tests/test.rs` and restore the
+`[dev-dependencies]` in `Cargo.toml` when **either**:
+
+1. **anchor-lang upgrades to solana 3.x** (likely 0.33+), so litesvm 0.9+ types match, or
+2. **litesvm releases a version** targeting `solana-account-info >=2.3, <3`
diff --git a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/tests/test.rs b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/tests-rs/test.rs
similarity index 89%
rename from tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/tests/test.rs
rename to tokens/token-2022/transfer-hook/allow-block-list-token/anchor/tests-rs/test.rs
index f484dd968..17194a6f5 100644
--- a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/tests/test.rs
+++ b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/tests-rs/test.rs
@@ -1,3 +1,9 @@
+// TODO: Move this test back to programs/abl-token/tests/test.rs once the litesvm
+// version gap is resolved. Currently litesvm <=0.6 pins solana-account-info to
+// =2.2.1, but anchor-lang 0.32.1 needs >=2.3.0 (for AccountInfo::resize).
+// litesvm 0.9+ uses solana 3.x which has type mismatches with anchor-lang's v2 types.
+// This will resolve when anchor-lang upgrades to solana 3.x (likely anchor 0.33+).
+
use {
abl_token::{accounts::InitConfig, accounts::InitMint, instructions::InitMintArgs, Mode},
anchor_lang::InstructionData,
diff --git a/tokens/token-2022/transfer-hook/counter/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/counter/anchor/Anchor.toml
index daee4d775..5faa62aae 100644
--- a/tokens/token-2022/transfer-hook/counter/anchor/Anchor.toml
+++ b/tokens/token-2022/transfer-hook/counter/anchor/Anchor.toml
@@ -1,6 +1,6 @@
[toolchain]
anchor_version = "0.32.1"
-solana_version = "2.1.15"
+solana_version = "3.1.8"
[programs.localnet]
transfer_hook = "1qahDxKHeCLZhbBU2NyMU6vQCQmEUmdeSEBrG5drffK"
diff --git a/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml
index b8aa6f036..db4e407e6 100644
--- a/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml
+++ b/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/tokens/token-2022/transfer-hook/transfer-cost/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/transfer-cost/anchor/Anchor.toml
index b37211a1d..5aaa6cf81 100644
--- a/tokens/token-2022/transfer-hook/transfer-cost/anchor/Anchor.toml
+++ b/tokens/token-2022/transfer-hook/transfer-cost/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/tokens/token-2022/transfer-hook/transfer-switch/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/transfer-switch/anchor/Anchor.toml
index 0933e58d9..0610aa05a 100644
--- a/tokens/token-2022/transfer-hook/transfer-switch/anchor/Anchor.toml
+++ b/tokens/token-2022/transfer-hook/transfer-switch/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml
index 5b6f96522..a8c780707 100644
--- a/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml
+++ b/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
seeds = false
diff --git a/tokens/token-fundraiser/anchor/Anchor.toml b/tokens/token-fundraiser/anchor/Anchor.toml
index 7222a8e6a..cf128d70d 100644
--- a/tokens/token-fundraiser/anchor/Anchor.toml
+++ b/tokens/token-fundraiser/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/tokens/token-swap/anchor/Anchor.toml b/tokens/token-swap/anchor/Anchor.toml
index df4d35a74..98677722e 100644
--- a/tokens/token-swap/anchor/Anchor.toml
+++ b/tokens/token-swap/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/tokens/transfer-tokens/anchor/Anchor.toml b/tokens/transfer-tokens/anchor/Anchor.toml
index 1e6439a5f..2847b5ab4 100644
--- a/tokens/transfer-tokens/anchor/Anchor.toml
+++ b/tokens/transfer-tokens/anchor/Anchor.toml
@@ -1,4 +1,5 @@
[toolchain]
+solana_version = "3.1.8"
[features]
resolution = true
diff --git a/tokens/transfer-tokens/native/package.json b/tokens/transfer-tokens/native/package.json
index 654051c13..e74d35ad3 100644
--- a/tokens/transfer-tokens/native/package.json
+++ b/tokens/transfer-tokens/native/package.json
@@ -6,7 +6,7 @@
"@metaplex-foundation/mpl-token-metadata": "^2.5.2",
"@solana/spl-token": "^0.3.7",
"@solana/web3.js": "^1.73.0",
- "borsh": "^0.7.0",
+ "borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
},
@@ -17,6 +17,6 @@
"chai": "^4.3.4",
"mocha": "^9.0.3",
"ts-mocha": "^10.0.0",
- "typescript": "^4.3.5"
+ "typescript": "^5"
}
}
diff --git a/tokens/transfer-tokens/native/pnpm-lock.yaml b/tokens/transfer-tokens/native/pnpm-lock.yaml
new file mode 100644
index 000000000..5967dbc21
--- /dev/null
+++ b/tokens/transfer-tokens/native/pnpm-lock.yaml
@@ -0,0 +1,1881 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ dependencies:
+ '@metaplex-foundation/mpl-token-metadata':
+ specifier: ^2.5.2
+ version: 2.13.0(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/spl-token':
+ specifier: ^0.3.7
+ version: 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/web3.js':
+ specifier: ^1.73.0
+ version: 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ borsh:
+ specifier: ^2.0.0
+ version: 2.0.0
+ buffer:
+ specifier: ^6.0.3
+ version: 6.0.3
+ fs:
+ specifier: ^0.0.1-security
+ version: 0.0.1-security
+ devDependencies:
+ '@types/bn.js':
+ specifier: ^5.1.0
+ version: 5.2.0
+ '@types/chai':
+ specifier: ^4.3.1
+ version: 4.3.20
+ '@types/mocha':
+ specifier: ^9.1.1
+ version: 9.1.1
+ chai:
+ specifier: ^4.3.4
+ version: 4.5.0
+ mocha:
+ specifier: ^9.0.3
+ version: 9.2.2
+ ts-mocha:
+ specifier: ^10.0.0
+ version: 10.1.0(mocha@9.2.2)
+ typescript:
+ specifier: ^5
+ version: 5.9.3
+
+packages:
+
+ '@babel/runtime@7.28.6':
+ resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==}
+ engines: {node: '>=6.9.0'}
+
+ '@metaplex-foundation/beet-solana@0.4.1':
+ resolution: {integrity: sha512-/6o32FNUtwK8tjhotrvU/vorP7umBuRFvBZrC6XCk51aKidBHe5LPVPA5AjGPbV3oftMfRuXPNd9yAGeEqeCDQ==}
+
+ '@metaplex-foundation/beet@0.7.2':
+ resolution: {integrity: sha512-K+g3WhyFxKPc0xIvcIjNyV1eaTVJTiuaHZpig7Xx0MuYRMoJLLvhLTnUXhFdR5Tu2l2QSyKwfyXDgZlzhULqFg==}
+
+ '@metaplex-foundation/cusper@0.0.2':
+ resolution: {integrity: sha512-S9RulC2fFCFOQraz61bij+5YCHhSO9llJegK8c8Y6731fSi6snUSQJdCUqYS8AIgR0TKbQvdvgSyIIdbDFZbBA==}
+
+ '@metaplex-foundation/mpl-token-metadata@2.13.0':
+ resolution: {integrity: sha512-Fl/8I0L9rv4bKTV/RAl5YIbJe9SnQPInKvLz+xR1fEc4/VQkuCn3RPgypfUMEKWmCznzaw4sApDxy6CFS4qmJw==}
+
+ '@noble/curves@1.9.7':
+ resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==}
+ engines: {node: ^14.21.3 || >=16}
+
+ '@noble/hashes@1.8.0':
+ resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
+ engines: {node: ^14.21.3 || >=16}
+
+ '@solana/buffer-layout-utils@0.2.0':
+ resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==}
+ engines: {node: '>= 10'}
+
+ '@solana/buffer-layout@4.0.1':
+ resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
+ engines: {node: '>=5.10'}
+
+ '@solana/codecs-core@2.0.0-rc.1':
+ resolution: {integrity: sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-data-structures@2.0.0-rc.1':
+ resolution: {integrity: sha512-rinCv0RrAVJ9rE/rmaibWJQxMwC5lSaORSZuwjopSUE6T0nb/MVg6Z1siNCXhh/HFTOg0l8bNvZHgBcN/yvXog==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/codecs-numbers@2.0.0-rc.1':
+ resolution: {integrity: sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-strings@2.0.0-rc.1':
+ resolution: {integrity: sha512-9/wPhw8TbGRTt6mHC4Zz1RqOnuPTqq1Nb4EyuvpZ39GW6O2t2Q7Q0XxiB3+BdoEjwA2XgPw6e2iRfvYgqty44g==}
+ peerDependencies:
+ fastestsmallesttextencoderdecoder: ^1.0.22
+ typescript: '>=5'
+
+ '@solana/codecs@2.0.0-rc.1':
+ resolution: {integrity: sha512-qxoR7VybNJixV51L0G1RD2boZTcxmwUWnKCaJJExQ5qNKwbpSyDdWfFJfM5JhGyKe9DnPVOZB+JHWXnpbZBqrQ==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/errors@2.0.0-rc.1':
+ resolution: {integrity: sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ==}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/options@2.0.0-rc.1':
+ resolution: {integrity: sha512-mLUcR9mZ3qfHlmMnREdIFPf9dpMc/Bl66tLSOOWxw4ml5xMT2ohFn7WGqoKcu/UHkT9CrC6+amEdqCNvUqI7AA==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/spl-token-metadata@0.1.6':
+ resolution: {integrity: sha512-7sMt1rsm/zQOQcUWllQX9mD2O6KhSAtY1hFR2hfFwgqfFWzSY9E9GDvFVNYUI1F0iQKcm6HmePU9QbKRXTEBiA==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ '@solana/web3.js': ^1.95.3
+
+ '@solana/spl-token@0.3.11':
+ resolution: {integrity: sha512-bvohO3rIMSVL24Pb+I4EYTJ6cL82eFpInEXD/I8K8upOGjpqHsKUoAempR/RnUlI1qSFNyFlWJfu6MNUgfbCQQ==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ '@solana/web3.js': ^1.88.0
+
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
+
+ '@swc/helpers@0.5.18':
+ resolution: {integrity: sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ==}
+
+ '@types/bn.js@5.2.0':
+ resolution: {integrity: sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q==}
+
+ '@types/chai@4.3.20':
+ resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==}
+
+ '@types/connect@3.4.38':
+ resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
+
+ '@types/json5@0.0.29':
+ resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
+
+ '@types/mocha@9.1.1':
+ resolution: {integrity: sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==}
+
+ '@types/node@12.20.55':
+ resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
+
+ '@types/node@25.2.3':
+ resolution: {integrity: sha512-m0jEgYlYz+mDJZ2+F4v8D1AyQb+QzsNqRuI7xg1VQX/KlKS0qT9r1Mo16yo5F/MtifXFgaofIFsdFMox2SxIbQ==}
+
+ '@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'}
+
+ ansicolors@0.3.2:
+ resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==}
+
+ 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'}
+
+ assert@2.1.0:
+ resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==}
+
+ assertion-error@1.1.0:
+ resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
+
+ available-typed-arrays@1.0.7:
+ resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
+ engines: {node: '>= 0.4'}
+
+ balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+ base-x@3.0.11:
+ resolution: {integrity: sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==}
+
+ base-x@4.0.1:
+ resolution: {integrity: sha512-uAZ8x6r6S3aUM9rbHGVOIsR15U/ZSc82b3ymnCPsT45Gk1DDvhDPdIgB5MrhirZWt+5K0EEPQH985kNqZgNPFw==}
+
+ base64-js@1.5.1:
+ resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+
+ bigint-buffer@1.1.5:
+ resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==}
+ engines: {node: '>= 10.0.0'}
+
+ bignumber.js@9.3.1:
+ resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==}
+
+ binary-extensions@2.3.0:
+ resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
+ engines: {node: '>=8'}
+
+ bindings@1.5.0:
+ resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
+
+ bn.js@5.2.2:
+ resolution: {integrity: sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==}
+
+ borsh@0.7.0:
+ resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
+
+ borsh@2.0.0:
+ resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==}
+
+ brace-expansion@1.1.12:
+ resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
+
+ 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==}
+
+ bs58@5.0.0:
+ resolution: {integrity: sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==}
+
+ buffer-from@1.1.2:
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+
+ buffer@6.0.3:
+ resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
+
+ bufferutil@4.1.0:
+ resolution: {integrity: sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw==}
+ engines: {node: '>=6.14.2'}
+
+ call-bind-apply-helpers@1.0.2:
+ resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
+ engines: {node: '>= 0.4'}
+
+ call-bind@1.0.8:
+ resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==}
+ engines: {node: '>= 0.4'}
+
+ call-bound@1.0.4:
+ resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
+ engines: {node: '>= 0.4'}
+
+ camelcase@6.3.0:
+ resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
+ engines: {node: '>=10'}
+
+ chai@4.5.0:
+ resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==}
+ engines: {node: '>=4'}
+
+ chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
+ check-error@1.0.3:
+ resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
+
+ chokidar@3.5.3:
+ resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
+ engines: {node: '>= 8.10.0'}
+
+ cliui@7.0.4:
+ resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
+
+ color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+
+ color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
+ commander@12.1.0:
+ resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
+ engines: {node: '>=18'}
+
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
+ commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+
+ concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+ debug@4.3.3:
+ resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ debug@4.4.3:
+ resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
+ 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'}
+
+ define-data-property@1.1.4:
+ resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
+ engines: {node: '>= 0.4'}
+
+ define-properties@1.2.1:
+ resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
+ engines: {node: '>= 0.4'}
+
+ delay@5.0.0:
+ resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==}
+ engines: {node: '>=10'}
+
+ diff@3.5.1:
+ resolution: {integrity: sha512-Z3u54A8qGyqFOSr2pk0ijYs8mOE9Qz8kTvtKeBI+upoG9j04Sq+oI7W8zAJiQybDcESET8/uIdHzs0p3k4fZlw==}
+ engines: {node: '>=0.3.1'}
+
+ diff@5.0.0:
+ resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
+ engines: {node: '>=0.3.1'}
+
+ dunder-proto@1.0.1:
+ resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
+ engines: {node: '>= 0.4'}
+
+ emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+
+ es-define-property@1.0.1:
+ resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
+ engines: {node: '>= 0.4'}
+
+ es-errors@1.3.0:
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
+ engines: {node: '>= 0.4'}
+
+ es-object-atoms@1.1.1:
+ resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
+ engines: {node: '>= 0.4'}
+
+ es6-promise@4.2.8:
+ resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==}
+
+ es6-promisify@5.0.0:
+ resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==}
+
+ escalade@3.2.0:
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+ engines: {node: '>=6'}
+
+ escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+
+ eventemitter3@5.0.4:
+ resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==}
+
+ eyes@0.1.8:
+ resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==}
+ engines: {node: '> 0.1.90'}
+
+ fast-stable-stringify@1.0.0:
+ resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
+
+ fastestsmallesttextencoderdecoder@1.0.22:
+ resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
+
+ file-uri-to-path@1.0.0:
+ resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
+
+ 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
+
+ for-each@0.3.5:
+ resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
+ engines: {node: '>= 0.4'}
+
+ fs.realpath@1.0.0:
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+
+ fs@0.0.1-security:
+ resolution: {integrity: sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==}
+
+ fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
+ function-bind@1.1.2:
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+
+ generator-function@2.0.1:
+ resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==}
+ engines: {node: '>= 0.4'}
+
+ 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==}
+
+ get-intrinsic@1.3.0:
+ resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
+ engines: {node: '>= 0.4'}
+
+ get-proto@1.0.1:
+ resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
+ engines: {node: '>= 0.4'}
+
+ glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+
+ glob@7.2.0:
+ resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==}
+ deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
+
+ gopd@1.2.0:
+ resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
+ engines: {node: '>= 0.4'}
+
+ 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'}
+
+ has-property-descriptors@1.0.2:
+ resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
+
+ has-symbols@1.1.0:
+ resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
+ engines: {node: '>= 0.4'}
+
+ has-tostringtag@1.0.2:
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
+ engines: {node: '>= 0.4'}
+
+ hasown@2.0.2:
+ resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
+ engines: {node: '>= 0.4'}
+
+ 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-arguments@1.2.0:
+ resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==}
+ engines: {node: '>= 0.4'}
+
+ is-binary-path@2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+
+ is-callable@1.2.7:
+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
+ engines: {node: '>= 0.4'}
+
+ 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-generator-function@1.1.2:
+ resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==}
+ engines: {node: '>= 0.4'}
+
+ is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+
+ is-nan@1.3.2:
+ resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==}
+ engines: {node: '>= 0.4'}
+
+ 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-regex@1.2.1:
+ resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
+ engines: {node: '>= 0.4'}
+
+ is-typed-array@1.1.15:
+ resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
+ engines: {node: '>= 0.4'}
+
+ is-unicode-supported@0.1.0:
+ resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
+ engines: {node: '>=10'}
+
+ isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+
+ isomorphic-ws@4.0.1:
+ resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==}
+ peerDependencies:
+ ws: '*'
+
+ jayson@4.3.0:
+ resolution: {integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==}
+ engines: {node: '>=8'}
+ hasBin: true
+
+ js-yaml@4.1.0:
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
+
+ json-stringify-safe@5.0.1:
+ resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
+
+ json5@1.0.2:
+ resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
+ hasBin: true
+
+ locate-path@6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+
+ log-symbols@4.1.0:
+ resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
+ engines: {node: '>=10'}
+
+ loupe@2.3.7:
+ resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==}
+
+ make-error@1.3.6:
+ resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
+
+ math-intrinsics@1.1.0:
+ resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
+ engines: {node: '>= 0.4'}
+
+ 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'}
+
+ object-is@1.1.6:
+ resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
+ engines: {node: '>= 0.4'}
+
+ object-keys@1.1.1:
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+ engines: {node: '>= 0.4'}
+
+ object.assign@4.1.7:
+ resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
+ engines: {node: '>= 0.4'}
+
+ 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'}
+
+ possible-typed-array-names@1.1.0:
+ resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
+ engines: {node: '>= 0.4'}
+
+ randombytes@2.1.0:
+ resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
+
+ readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+
+ require-directory@2.1.1:
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+ engines: {node: '>=0.10.0'}
+
+ rpc-websockets@9.3.3:
+ resolution: {integrity: sha512-OkCsBBzrwxX4DoSv4Zlf9DgXKRB0MzVfCFg5MC+fNnf9ktr4SMWjsri0VNZQlDbCnGcImT6KNEv4ZoxktQhdpA==}
+
+ safe-buffer@5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+
+ safe-regex-test@1.1.0:
+ resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
+ engines: {node: '>= 0.4'}
+
+ serialize-javascript@6.0.0:
+ resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
+
+ set-function-length@1.2.2:
+ resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
+ engines: {node: '>= 0.4'}
+
+ 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@5.9.3:
+ resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
+ undici-types@7.16.0:
+ resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==}
+
+ utf-8-validate@5.0.10:
+ resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==}
+ engines: {node: '>=6.14.2'}
+
+ util@0.12.5:
+ resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==}
+
+ 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-typed-array@1.1.20:
+ resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==}
+ engines: {node: '>= 0.4'}
+
+ 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.19.0:
+ resolution: {integrity: sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==}
+ 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.28.6': {}
+
+ '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@metaplex-foundation/beet': 0.7.2
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ bs58: 5.0.0
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - typescript
+ - utf-8-validate
+
+ '@metaplex-foundation/beet@0.7.2':
+ dependencies:
+ ansicolors: 0.3.2
+ assert: 2.1.0
+ bn.js: 5.2.2
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@metaplex-foundation/cusper@0.0.2': {}
+
+ '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@metaplex-foundation/beet': 0.7.2
+ '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/cusper': 0.0.2
+ '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ bn.js: 5.2.2
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - fastestsmallesttextencoderdecoder
+ - supports-color
+ - typescript
+ - utf-8-validate
+
+ '@noble/curves@1.9.7':
+ dependencies:
+ '@noble/hashes': 1.8.0
+
+ '@noble/hashes@1.8.0': {}
+
+ '@solana/buffer-layout-utils@0.2.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@solana/buffer-layout': 4.0.1
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ bigint-buffer: 1.1.5
+ bignumber.js: 9.3.1
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
+ '@solana/buffer-layout@4.0.1':
+ dependencies:
+ buffer: 6.0.3
+
+ '@solana/codecs-core@2.0.0-rc.1(typescript@5.9.3)':
+ dependencies:
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
+ typescript: 5.9.3
+
+ '@solana/codecs-core@2.3.0(typescript@5.9.3)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
+
+ '@solana/codecs-data-structures@2.0.0-rc.1(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
+ typescript: 5.9.3
+
+ '@solana/codecs-numbers@2.0.0-rc.1(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
+ typescript: 5.9.3
+
+ '@solana/codecs-numbers@2.3.0(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@5.9.3)
+ '@solana/errors': 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
+
+ '@solana/codecs-strings@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
+ fastestsmallesttextencoderdecoder: 1.0.22
+ typescript: 5.9.3
+
+ '@solana/codecs@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/options': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - fastestsmallesttextencoderdecoder
+
+ '@solana/errors@2.0.0-rc.1(typescript@5.9.3)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 12.1.0
+ typescript: 5.9.3
+
+ '@solana/errors@2.3.0(typescript@5.9.3)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.3
+ typescript: 5.9.3
+
+ '@solana/options@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.9.3)
+ '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - fastestsmallesttextencoderdecoder
+
+ '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ transitivePeerDependencies:
+ - fastestsmallesttextencoderdecoder
+ - typescript
+
+ '@solana/spl-token@0.3.11(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@solana/buffer-layout': 4.0.1
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ buffer: 6.0.3
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - fastestsmallesttextencoderdecoder
+ - typescript
+ - utf-8-validate
+
+ '@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@babel/runtime': 7.28.6
+ '@noble/curves': 1.9.7
+ '@noble/hashes': 1.8.0
+ '@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@5.9.3)
+ agentkeepalive: 4.6.0
+ 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.3.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)
+ node-fetch: 2.7.0
+ rpc-websockets: 9.3.3
+ superstruct: 2.0.2
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - typescript
+ - utf-8-validate
+
+ '@swc/helpers@0.5.18':
+ dependencies:
+ tslib: 2.8.1
+
+ '@types/bn.js@5.2.0':
+ dependencies:
+ '@types/node': 25.2.3
+
+ '@types/chai@4.3.20': {}
+
+ '@types/connect@3.4.38':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@types/json5@0.0.29':
+ optional: true
+
+ '@types/mocha@9.1.1': {}
+
+ '@types/node@12.20.55': {}
+
+ '@types/node@25.2.3':
+ dependencies:
+ undici-types: 7.16.0
+
+ '@types/uuid@8.3.4': {}
+
+ '@types/ws@7.4.7':
+ dependencies:
+ '@types/node': 12.20.55
+
+ '@types/ws@8.18.1':
+ dependencies:
+ '@types/node': 25.2.3
+
+ '@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
+
+ ansicolors@0.3.2: {}
+
+ anymatch@3.1.3:
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+
+ argparse@2.0.1: {}
+
+ arrify@1.0.1: {}
+
+ assert@2.1.0:
+ dependencies:
+ call-bind: 1.0.8
+ is-nan: 1.3.2
+ object-is: 1.1.6
+ object.assign: 4.1.7
+ util: 0.12.5
+
+ assertion-error@1.1.0: {}
+
+ available-typed-arrays@1.0.7:
+ dependencies:
+ possible-typed-array-names: 1.1.0
+
+ balanced-match@1.0.2: {}
+
+ base-x@3.0.11:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ base-x@4.0.1: {}
+
+ base64-js@1.5.1: {}
+
+ bigint-buffer@1.1.5:
+ dependencies:
+ bindings: 1.5.0
+
+ bignumber.js@9.3.1: {}
+
+ binary-extensions@2.3.0: {}
+
+ bindings@1.5.0:
+ dependencies:
+ file-uri-to-path: 1.0.0
+
+ bn.js@5.2.2: {}
+
+ borsh@0.7.0:
+ dependencies:
+ bn.js: 5.2.2
+ bs58: 4.0.1
+ text-encoding-utf-8: 1.0.2
+
+ borsh@2.0.0: {}
+
+ brace-expansion@1.1.12:
+ 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
+
+ bs58@5.0.0:
+ dependencies:
+ base-x: 4.0.1
+
+ buffer-from@1.1.2: {}
+
+ buffer@6.0.3:
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
+ bufferutil@4.1.0:
+ dependencies:
+ node-gyp-build: 4.8.4
+ optional: true
+
+ call-bind-apply-helpers@1.0.2:
+ dependencies:
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+
+ call-bind@1.0.8:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ get-intrinsic: 1.3.0
+ set-function-length: 1.2.2
+
+ call-bound@1.0.4:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ get-intrinsic: 1.3.0
+
+ camelcase@6.3.0: {}
+
+ chai@4.5.0:
+ dependencies:
+ assertion-error: 1.1.0
+ check-error: 1.0.3
+ deep-eql: 4.1.4
+ get-func-name: 2.0.2
+ loupe: 2.3.7
+ pathval: 1.1.1
+ type-detect: 4.1.0
+
+ chalk@4.1.2:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ chalk@5.6.2: {}
+
+ check-error@1.0.3:
+ dependencies:
+ get-func-name: 2.0.2
+
+ chokidar@3.5.3:
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.3
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ cliui@7.0.4:
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+
+ color-convert@2.0.1:
+ dependencies:
+ color-name: 1.1.4
+
+ color-name@1.1.4: {}
+
+ commander@12.1.0: {}
+
+ commander@14.0.3: {}
+
+ commander@2.20.3: {}
+
+ concat-map@0.0.1: {}
+
+ debug@4.3.3(supports-color@8.1.1):
+ dependencies:
+ ms: 2.1.2
+ optionalDependencies:
+ supports-color: 8.1.1
+
+ debug@4.4.3:
+ dependencies:
+ ms: 2.1.3
+
+ decamelize@4.0.0: {}
+
+ deep-eql@4.1.4:
+ dependencies:
+ type-detect: 4.1.0
+
+ define-data-property@1.1.4:
+ dependencies:
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ define-properties@1.2.1:
+ dependencies:
+ define-data-property: 1.1.4
+ has-property-descriptors: 1.0.2
+ object-keys: 1.1.1
+
+ delay@5.0.0: {}
+
+ diff@3.5.1: {}
+
+ diff@5.0.0: {}
+
+ dunder-proto@1.0.1:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ emoji-regex@8.0.0: {}
+
+ es-define-property@1.0.1: {}
+
+ es-errors@1.3.0: {}
+
+ es-object-atoms@1.1.1:
+ dependencies:
+ es-errors: 1.3.0
+
+ es6-promise@4.2.8: {}
+
+ es6-promisify@5.0.0:
+ dependencies:
+ es6-promise: 4.2.8
+
+ escalade@3.2.0: {}
+
+ escape-string-regexp@4.0.0: {}
+
+ eventemitter3@5.0.4: {}
+
+ eyes@0.1.8: {}
+
+ fast-stable-stringify@1.0.0: {}
+
+ fastestsmallesttextencoderdecoder@1.0.22: {}
+
+ file-uri-to-path@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: {}
+
+ for-each@0.3.5:
+ dependencies:
+ is-callable: 1.2.7
+
+ fs.realpath@1.0.0: {}
+
+ fs@0.0.1-security: {}
+
+ fsevents@2.3.3:
+ optional: true
+
+ function-bind@1.1.2: {}
+
+ generator-function@2.0.1: {}
+
+ get-caller-file@2.0.5: {}
+
+ get-func-name@2.0.2: {}
+
+ get-intrinsic@1.3.0:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ function-bind: 1.1.2
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.2
+ math-intrinsics: 1.1.0
+
+ get-proto@1.0.1:
+ dependencies:
+ dunder-proto: 1.0.1
+ es-object-atoms: 1.1.1
+
+ 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
+
+ gopd@1.2.0: {}
+
+ growl@1.10.5: {}
+
+ has-flag@4.0.0: {}
+
+ has-property-descriptors@1.0.2:
+ dependencies:
+ es-define-property: 1.0.1
+
+ has-symbols@1.1.0: {}
+
+ has-tostringtag@1.0.2:
+ dependencies:
+ has-symbols: 1.1.0
+
+ hasown@2.0.2:
+ dependencies:
+ function-bind: 1.1.2
+
+ 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-arguments@1.2.0:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-binary-path@2.1.0:
+ dependencies:
+ binary-extensions: 2.3.0
+
+ is-callable@1.2.7: {}
+
+ is-extglob@2.1.1: {}
+
+ is-fullwidth-code-point@3.0.0: {}
+
+ is-generator-function@1.1.2:
+ dependencies:
+ call-bound: 1.0.4
+ generator-function: 2.0.1
+ get-proto: 1.0.1
+ has-tostringtag: 1.0.2
+ safe-regex-test: 1.1.0
+
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
+
+ is-nan@1.3.2:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+
+ is-number@7.0.0: {}
+
+ is-plain-obj@2.1.0: {}
+
+ is-regex@1.2.1:
+ dependencies:
+ call-bound: 1.0.4
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.2
+
+ is-typed-array@1.1.15:
+ dependencies:
+ which-typed-array: 1.1.20
+
+ is-unicode-supported@0.1.0: {}
+
+ isexe@2.0.0: {}
+
+ isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.1.0)(utf-8-validate@5.0.10)):
+ dependencies:
+ ws: 7.5.10(bufferutil@4.1.0)(utf-8-validate@5.0.10)
+
+ jayson@4.3.0(bufferutil@4.1.0)(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.1.0)(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.1.0)(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: {}
+
+ math-intrinsics@1.1.0: {}
+
+ minimatch@3.1.2:
+ dependencies:
+ brace-expansion: 1.1.12
+
+ minimatch@4.2.1:
+ dependencies:
+ brace-expansion: 1.1.12
+
+ 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: {}
+
+ object-is@1.1.6:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+
+ object-keys@1.1.1: {}
+
+ object.assign@4.1.7:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ es-object-atoms: 1.1.1
+ has-symbols: 1.1.0
+ object-keys: 1.1.1
+
+ 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: {}
+
+ possible-typed-array-names@1.1.0: {}
+
+ randombytes@2.1.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ readdirp@3.6.0:
+ dependencies:
+ picomatch: 2.3.1
+
+ require-directory@2.1.1: {}
+
+ rpc-websockets@9.3.3:
+ dependencies:
+ '@swc/helpers': 0.5.18
+ '@types/uuid': 8.3.4
+ '@types/ws': 8.18.1
+ buffer: 6.0.3
+ eventemitter3: 5.0.4
+ uuid: 8.3.2
+ ws: 8.19.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)
+ optionalDependencies:
+ bufferutil: 4.1.0
+ utf-8-validate: 5.0.10
+
+ safe-buffer@5.2.1: {}
+
+ safe-regex-test@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-regex: 1.2.1
+
+ serialize-javascript@6.0.0:
+ dependencies:
+ randombytes: 2.1.0
+
+ set-function-length@1.2.2:
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ get-intrinsic: 1.3.0
+ gopd: 1.2.0
+ has-property-descriptors: 1.0.2
+
+ source-map-support@0.5.21:
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+
+ source-map@0.6.1: {}
+
+ stream-chain@2.2.5: {}
+
+ stream-json@1.9.1:
+ dependencies:
+ stream-chain: 2.2.5
+
+ string-width@4.2.3:
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+
+ strip-ansi@6.0.1:
+ dependencies:
+ ansi-regex: 5.0.1
+
+ strip-bom@3.0.0:
+ optional: true
+
+ strip-json-comments@3.1.1: {}
+
+ superstruct@2.0.2: {}
+
+ supports-color@7.2.0:
+ dependencies:
+ has-flag: 4.0.0
+
+ supports-color@8.1.1:
+ dependencies:
+ has-flag: 4.0.0
+
+ text-encoding-utf-8@1.0.2: {}
+
+ to-regex-range@5.0.1:
+ dependencies:
+ is-number: 7.0.0
+
+ tr46@0.0.3: {}
+
+ ts-mocha@10.1.0(mocha@9.2.2):
+ dependencies:
+ mocha: 9.2.2
+ ts-node: 7.0.1
+ optionalDependencies:
+ tsconfig-paths: 3.15.0
+
+ ts-node@7.0.1:
+ dependencies:
+ arrify: 1.0.1
+ buffer-from: 1.1.2
+ diff: 3.5.1
+ make-error: 1.3.6
+ minimist: 1.2.8
+ mkdirp: 0.5.6
+ source-map-support: 0.5.21
+ yn: 2.0.0
+
+ tsconfig-paths@3.15.0:
+ dependencies:
+ '@types/json5': 0.0.29
+ json5: 1.0.2
+ minimist: 1.2.8
+ strip-bom: 3.0.0
+ optional: true
+
+ tslib@2.8.1: {}
+
+ type-detect@4.1.0: {}
+
+ typescript@5.9.3: {}
+
+ undici-types@7.16.0: {}
+
+ utf-8-validate@5.0.10:
+ dependencies:
+ node-gyp-build: 4.8.4
+ optional: true
+
+ util@0.12.5:
+ dependencies:
+ inherits: 2.0.4
+ is-arguments: 1.2.0
+ is-generator-function: 1.1.2
+ is-typed-array: 1.1.15
+ which-typed-array: 1.1.20
+
+ 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-typed-array@1.1.20:
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ for-each: 0.3.5
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+
+ 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.1.0)(utf-8-validate@5.0.10):
+ optionalDependencies:
+ bufferutil: 4.1.0
+ utf-8-validate: 5.0.10
+
+ ws@8.19.0(bufferutil@4.1.0)(utf-8-validate@5.0.10):
+ optionalDependencies:
+ bufferutil: 4.1.0
+ 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/tokens/transfer-tokens/native/tests/instructions.ts b/tokens/transfer-tokens/native/tests/instructions.ts
index 67769eed1..c9fa9b36d 100644
--- a/tokens/transfer-tokens/native/tests/instructions.ts
+++ b/tokens/transfer-tokens/native/tests/instructions.ts
@@ -1,13 +1,5 @@
import * as borsh from 'borsh';
-class Assignable {
- constructor(properties) {
- for (const [key, value] of Object.entries(properties)) {
- this[key] = value;
- }
- }
-}
-
export enum MyInstruction {
Create = 0,
MintNft = 1,
@@ -15,74 +7,32 @@ export enum MyInstruction {
TransferTokens = 3,
}
-export class CreateTokenArgs extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(CreateTokenArgsSchema, this));
- }
-}
-const CreateTokenArgsSchema = new Map([
- [
- CreateTokenArgs,
- {
- kind: 'struct',
- fields: [
- ['instruction', 'u8'],
- ['token_title', 'string'],
- ['token_symbol', 'string'],
- ['token_uri', 'string'],
- ['decimals', 'u8'],
- ],
- },
- ],
-]);
+export const CreateTokenArgsSchema = {
+ struct: {
+ instruction: 'u8',
+ token_title: 'string',
+ token_symbol: 'string',
+ token_uri: 'string',
+ decimals: 'u8',
+ },
+};
-export class MintNftArgs extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(MintNftArgsSchema, this));
- }
-}
-const MintNftArgsSchema = new Map([
- [
- MintNftArgs,
- {
- kind: 'struct',
- fields: [['instruction', 'u8']],
- },
- ],
-]);
+export const MintNftArgsSchema = { struct: { instruction: 'u8' } };
-export class MintSplArgs extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(MintSplArgsSchema, this));
- }
-}
-const MintSplArgsSchema = new Map([
- [
- MintSplArgs,
- {
- kind: 'struct',
- fields: [
- ['instruction', 'u8'],
- ['quantity', 'u64'],
- ],
- },
- ],
-]);
+export const MintSplArgsSchema = {
+ struct: {
+ instruction: 'u8',
+ quantity: 'u64',
+ },
+};
+
+export const TransferTokensArgsSchema = {
+ struct: {
+ instruction: 'u8',
+ quantity: 'u64',
+ },
+};
-export class TransferTokensArgs extends Assignable {
- toBuffer() {
- return Buffer.from(borsh.serialize(TransferTokensArgsSchema, this));
- }
+export function borshSerialize(schema: borsh.Schema, data: object): Buffer {
+ return Buffer.from(borsh.serialize(schema, data));
}
-const TransferTokensArgsSchema = new Map([
- [
- TransferTokensArgs,
- {
- kind: 'struct',
- fields: [
- ['instruction', 'u8'],
- ['quantity', 'u64'],
- ],
- },
- ],
-]);
diff --git a/tokens/transfer-tokens/native/tests/test.ts b/tokens/transfer-tokens/native/tests/test.ts
index 62775d40a..10a225c23 100644
--- a/tokens/transfer-tokens/native/tests/test.ts
+++ b/tokens/transfer-tokens/native/tests/test.ts
@@ -12,10 +12,10 @@ import {
TransactionInstruction,
} from '@solana/web3.js';
import { BN } from 'bn.js';
-import { CreateTokenArgs, MintNftArgs, MintSplArgs, MyInstruction, TransferTokensArgs } from './instructions';
+import { borshSerialize, CreateTokenArgsSchema, MintNftArgsSchema, MintSplArgsSchema, TransferTokensArgsSchema, MyInstruction } from './instructions';
function createKeypairFromFile(path: string): Keypair {
- return Keypair.fromSecretKey(Buffer.from(JSON.parse(require('node:fs').readFileSync(path, 'utf-8'))));
+ return Keypair.fromSecretKey(Uint8Array.from(JSON.parse(require('node:fs').readFileSync(path, 'utf-8'))));
}
describe('Transferring Tokens', async () => {
@@ -35,7 +35,7 @@ describe('Transferring Tokens', async () => {
TOKEN_METADATA_PROGRAM_ID,
)[0];
- const instructionData = new CreateTokenArgs({
+ const instructionData = borshSerialize(CreateTokenArgsSchema, {
instruction: MyInstruction.Create,
token_title: 'Solana Gold',
token_symbol: 'GOLDSOL',
@@ -63,7 +63,7 @@ describe('Transferring Tokens', async () => {
}, // Token metadata program
],
programId: program.publicKey,
- data: instructionData.toBuffer(),
+ data: instructionData,
});
const sx = await sendAndConfirmTransaction(connection, new Transaction().add(ix), [payer, tokenMintKeypair]);
@@ -79,7 +79,7 @@ describe('Transferring Tokens', async () => {
TOKEN_METADATA_PROGRAM_ID,
)[0];
- const instructionData = new CreateTokenArgs({
+ const instructionData = borshSerialize(CreateTokenArgsSchema, {
instruction: MyInstruction.Create,
token_title: 'Homer NFT',
token_symbol: 'HOMR',
@@ -103,7 +103,7 @@ describe('Transferring Tokens', async () => {
}, // Token metadata program
],
programId: program.publicKey,
- data: instructionData.toBuffer(),
+ data: instructionData,
});
const sx = await sendAndConfirmTransaction(connection, new Transaction().add(ix), [payer, nftMintKeypair]);
@@ -116,7 +116,7 @@ describe('Transferring Tokens', async () => {
it('Mint some tokens to your wallet!', async () => {
const associatedTokenAccountAddress = await getAssociatedTokenAddress(tokenMintKeypair.publicKey, payer.publicKey);
- const instructionData = new MintSplArgs({
+ const instructionData = borshSerialize(MintSplArgsSchema, {
instruction: MyInstruction.MintSpl,
quantity: new BN(150),
});
@@ -144,7 +144,7 @@ describe('Transferring Tokens', async () => {
}, // Token metadata program
],
programId: program.publicKey,
- data: instructionData.toBuffer(),
+ data: instructionData,
});
const sx = await sendAndConfirmTransaction(connection, new Transaction().add(ix), [payer]);
@@ -167,7 +167,7 @@ describe('Transferring Tokens', async () => {
const associatedTokenAccountAddress = await getAssociatedTokenAddress(nftMintKeypair.publicKey, payer.publicKey);
- const instructionData = new MintNftArgs({
+ const instructionData = borshSerialize(MintNftArgsSchema, {
instruction: MyInstruction.MintNft,
});
@@ -198,7 +198,7 @@ describe('Transferring Tokens', async () => {
}, // Token metadata program
],
programId: program.publicKey,
- data: instructionData.toBuffer(),
+ data: instructionData,
});
const sx = await sendAndConfirmTransaction(connection, new Transaction().add(ix), [payer]);
@@ -221,7 +221,7 @@ describe('Transferring Tokens', async () => {
const toAssociatedTokenAddress = await getAssociatedTokenAddress(tokenMintKeypair.publicKey, recipientWallet.publicKey);
console.log(`Recipient Token Address: ${toAssociatedTokenAddress}`);
- const transferToInstructionData = new TransferTokensArgs({
+ const transferToInstructionData = borshSerialize(TransferTokensArgsSchema, {
instruction: MyInstruction.TransferTokens,
quantity: new BN(15),
});
@@ -251,7 +251,7 @@ describe('Transferring Tokens', async () => {
}, // Associated token program
],
programId: program.publicKey,
- data: transferToInstructionData.toBuffer(),
+ data: transferToInstructionData,
});
await sendAndConfirmTransaction(connection, new Transaction().add(ix), [payer, recipientWallet], { skipPreflight: true });
@@ -263,7 +263,7 @@ describe('Transferring Tokens', async () => {
const toAssociatedTokenAddress = await getAssociatedTokenAddress(nftMintKeypair.publicKey, recipientWallet.publicKey);
console.log(`Recipient Token Address: ${toAssociatedTokenAddress}`);
- const transferToInstructionData = new TransferTokensArgs({
+ const transferToInstructionData = borshSerialize(TransferTokensArgsSchema, {
instruction: MyInstruction.TransferTokens,
quantity: new BN(1),
});
@@ -289,7 +289,7 @@ describe('Transferring Tokens', async () => {
}, // Associated token program
],
programId: program.publicKey,
- data: transferToInstructionData.toBuffer(),
+ data: transferToInstructionData,
});
await sendAndConfirmTransaction(connection, new Transaction().add(ix), [payer, recipientWallet], { skipPreflight: true });
From b7658b368b991bc2a315c16ce28ce8f091700137 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 16 Feb 2026 18:26:13 +0100
Subject: [PATCH 37/49] chore(deps): bump shank from 0.4.7 to 0.4.8 (#536)
Bumps [shank](https://github.com/metaplex-foundation/shank) from 0.4.7 to 0.4.8.
- [Changelog](https://github.com/metaplex-foundation/shank/blob/master/release.toml)
- [Commits](https://github.com/metaplex-foundation/shank/commits)
---
updated-dependencies:
- dependency-name: shank
dependency-version: 0.4.8
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Cargo.lock | 16 ++++++++--------
basics/counter/mpl-stack/Cargo.toml | 2 +-
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index 14efc8bc6..d756a5882 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2866,18 +2866,18 @@ dependencies = [
[[package]]
name = "shank"
-version = "0.4.7"
+version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "627209e7d8985baf8de0d7af53e1cf75abce14f323f212e754e74aeed110bd65"
+checksum = "2a1dc1d3af4ba5f02190110598b2abac0d13ce9dc58408aba4549e1c0f91a24c"
dependencies = [
"shank_macro",
]
[[package]]
name = "shank_macro"
-version = "0.4.7"
+version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "881f4fa31d60102c7960418d4739f16562a350ace6d51bdb8da55cd66dcd9a5b"
+checksum = "63dbf105335507ad339dccacf3b1ea20e4c0b70d992b4de7cc11d5c0b91b0747"
dependencies = [
"proc-macro2",
"quote",
@@ -2888,9 +2888,9 @@ dependencies = [
[[package]]
name = "shank_macro_impl"
-version = "0.4.7"
+version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aab0b29f9717ebb2430ef424627e0fc234c832363955cbac2997c2973743990d"
+checksum = "346563412da6d1a53bc53c81f9d8b102f177952b95fd8de00e5d2203a4685635"
dependencies = [
"anyhow",
"proc-macro2",
@@ -2901,9 +2901,9 @@ dependencies = [
[[package]]
name = "shank_render"
-version = "0.4.7"
+version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ccd3198c738fe7e087e7ab45252575ce344577ec0f8011599cf00bcffedfb3c"
+checksum = "8358067ec1787814d2577e76d9ddcc980559ad821e6bd04584f4847f4d1d955c"
dependencies = [
"proc-macro2",
"quote",
diff --git a/basics/counter/mpl-stack/Cargo.toml b/basics/counter/mpl-stack/Cargo.toml
index 917aaeebc..f21dbd5e5 100644
--- a/basics/counter/mpl-stack/Cargo.toml
+++ b/basics/counter/mpl-stack/Cargo.toml
@@ -15,7 +15,7 @@ custom-panic = []
[dependencies]
borsh = "0.9"
-shank = "0.4.7"
+shank = "0.4.8"
solana-program = "2.1"
[lints.rust]
From 470954bb0b2645df041c0b1cba444c1b0689db9c Mon Sep 17 00:00:00 2001
From: Mike MacCana
Date: Wed, 18 Feb 2026 15:26:28 +0000
Subject: [PATCH 38/49] fix: fix 9 remaining CI failures in token projects
Anchor test failures (8 projects):
- Remove 'import { describe, it } from "node:test"' from 7 bankrun test
files. These tests run via ts-mocha which provides describe/it globally.
Importing from node:test creates a conflict where mocha can't see the
test registrations.
- Increase startup_wait from 5000ms to 25000ms in 9 Anchor.toml files.
The default 5s is too short for CI where the test validator takes longer
to start due to shared compute.
Native build failure (1 project):
- tokens/escrow/native: blake3 1.8.3 requires Rust edition 2024 which
the Cargo bundled with solana-program 1.18.17's platform-tools doesn't
support. Added Cargo.lock pinning blake3 to 1.5.5 (last edition-2021-
compatible version).
---
tokens/create-token/anchor/Anchor.toml | 2 +-
.../create-token/anchor/tests/bankrun.test.ts | 1 -
tokens/escrow/native/Cargo.lock | 2438 +++++++++++++++++
tokens/escrow/native/program/Cargo.toml | 2 +-
tokens/escrow/native/tests/account.ts | 2 +
tokens/nft-minter/anchor/Anchor.toml | 2 +-
.../nft-minter/anchor/tests/bankrun.test.ts | 1 -
tokens/nft-operations/anchor/Anchor.toml | 3 +
.../anchor/tests/bankrun.test.ts | 1 -
tokens/pda-mint-authority/anchor/Anchor.toml | 2 +-
.../anchor/tests/bankrun.test.ts | 1 -
tokens/spl-token-minter/anchor/Anchor.toml | 2 +-
.../anchor/tests/bankrun.test.ts | 1 -
tokens/token-2022/basics/anchor/Anchor.toml | 3 +
.../basics/anchor/tests/bankrun.test.ts | 1 -
.../hello-world/anchor/Anchor.toml | 2 +-
.../whitelist/anchor/Anchor.toml | 3 +
tokens/transfer-tokens/anchor/Anchor.toml | 2 +-
.../anchor/tests/bankrun.test.ts | 1 -
19 files changed, 2456 insertions(+), 14 deletions(-)
create mode 100644 tokens/escrow/native/Cargo.lock
diff --git a/tokens/create-token/anchor/Anchor.toml b/tokens/create-token/anchor/Anchor.toml
index eb2dbf13e..40d5c003b 100644
--- a/tokens/create-token/anchor/Anchor.toml
+++ b/tokens/create-token/anchor/Anchor.toml
@@ -19,7 +19,7 @@ wallet = "~/.config/solana/id.json"
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
[test]
-startup_wait = 5000
+startup_wait = 25000
shutdown_wait = 2000
upgradeable = false
diff --git a/tokens/create-token/anchor/tests/bankrun.test.ts b/tokens/create-token/anchor/tests/bankrun.test.ts
index 1f6c35b7c..f72f93aee 100644
--- a/tokens/create-token/anchor/tests/bankrun.test.ts
+++ b/tokens/create-token/anchor/tests/bankrun.test.ts
@@ -1,4 +1,3 @@
-import { describe, it } from "node:test";
import * as anchor from "@coral-xyz/anchor";
import { Keypair, PublicKey } from "@solana/web3.js";
import { BankrunProvider } from "anchor-bankrun";
diff --git a/tokens/escrow/native/Cargo.lock b/tokens/escrow/native/Cargo.lock
new file mode 100644
index 000000000..6ed277713
--- /dev/null
+++ b/tokens/escrow/native/Cargo.lock
@@ -0,0 +1,2438 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 4
+
+[[package]]
+name = "aead"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "aes"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8"
+dependencies = [
+ "cfg-if",
+ "cipher",
+ "cpufeatures",
+ "opaque-debug",
+]
+
+[[package]]
+name = "aes-gcm-siv"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "589c637f0e68c877bbd59a4599bbe849cac8e5f3e4b5a3ebae8f528cd218dcdc"
+dependencies = [
+ "aead",
+ "aes",
+ "cipher",
+ "ctr",
+ "polyval",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "ahash"
+version = "0.7.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
+dependencies = [
+ "getrandom 0.2.17",
+ "once_cell",
+ "version_check",
+]
+
+[[package]]
+name = "ahash"
+version = "0.8.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+ "version_check",
+ "zerocopy",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "allocator-api2"
+version = "0.2.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
+
+[[package]]
+name = "anyhow"
+version = "1.0.101"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea"
+
+[[package]]
+name = "ark-bn254"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f"
+dependencies = [
+ "ark-ec",
+ "ark-ff",
+ "ark-std",
+]
+
+[[package]]
+name = "ark-ec"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba"
+dependencies = [
+ "ark-ff",
+ "ark-poly",
+ "ark-serialize",
+ "ark-std",
+ "derivative",
+ "hashbrown 0.13.2",
+ "itertools",
+ "num-traits",
+ "zeroize",
+]
+
+[[package]]
+name = "ark-ff"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba"
+dependencies = [
+ "ark-ff-asm",
+ "ark-ff-macros",
+ "ark-serialize",
+ "ark-std",
+ "derivative",
+ "digest 0.10.7",
+ "itertools",
+ "num-bigint",
+ "num-traits",
+ "paste",
+ "rustc_version",
+ "zeroize",
+]
+
+[[package]]
+name = "ark-ff-asm"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348"
+dependencies = [
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "ark-ff-macros"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565"
+dependencies = [
+ "num-bigint",
+ "num-traits",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "ark-poly"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf"
+dependencies = [
+ "ark-ff",
+ "ark-serialize",
+ "ark-std",
+ "derivative",
+ "hashbrown 0.13.2",
+]
+
+[[package]]
+name = "ark-serialize"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5"
+dependencies = [
+ "ark-serialize-derive",
+ "ark-std",
+ "digest 0.10.7",
+ "num-bigint",
+]
+
+[[package]]
+name = "ark-serialize-derive"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "ark-std"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185"
+dependencies = [
+ "num-traits",
+ "rand 0.8.5",
+]
+
+[[package]]
+name = "arrayref"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb"
+
+[[package]]
+name = "arrayvec"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
+
+[[package]]
+name = "assert_matches"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
+
+[[package]]
+name = "base64"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
+
+[[package]]
+name = "base64"
+version = "0.21.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+
+[[package]]
+name = "bincode"
+version = "1.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "bitflags"
+version = "2.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af"
+dependencies = [
+ "serde_core",
+]
+
+[[package]]
+name = "bitmaps"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2"
+dependencies = [
+ "typenum",
+]
+
+[[package]]
+name = "blake3"
+version = "1.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d"
+dependencies = [
+ "arrayref",
+ "arrayvec",
+ "cc",
+ "cfg-if",
+ "constant_time_eq",
+ "cpufeatures",
+ "digest 0.10.7",
+]
+
+[[package]]
+name = "block-buffer"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
+dependencies = [
+ "block-padding",
+ "generic-array",
+]
+
+[[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "block-padding"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
+
+[[package]]
+name = "borsh"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15bf3650200d8bffa99015595e10f1fbd17de07abbc25bb067da79e769939bfa"
+dependencies = [
+ "borsh-derive 0.9.3",
+ "hashbrown 0.11.2",
+]
+
+[[package]]
+name = "borsh"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "115e54d64eb62cdebad391c19efc9dce4981c690c85a33a12199d99bb9546fee"
+dependencies = [
+ "borsh-derive 0.10.4",
+ "hashbrown 0.13.2",
+]
+
+[[package]]
+name = "borsh"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d1da5ab77c1437701eeff7c88d968729e7766172279eab0676857b3d63af7a6f"
+dependencies = [
+ "borsh-derive 1.6.0",
+ "cfg_aliases",
+]
+
+[[package]]
+name = "borsh-derive"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775"
+dependencies = [
+ "borsh-derive-internal 0.9.3",
+ "borsh-schema-derive-internal 0.9.3",
+ "proc-macro-crate 0.1.5",
+ "proc-macro2",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "borsh-derive"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "831213f80d9423998dd696e2c5345aba6be7a0bd8cd19e31c5243e13df1cef89"
+dependencies = [
+ "borsh-derive-internal 0.10.4",
+ "borsh-schema-derive-internal 0.10.4",
+ "proc-macro-crate 0.1.5",
+ "proc-macro2",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "borsh-derive"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0686c856aa6aac0c4498f936d7d6a02df690f614c03e4d906d1018062b5c5e2c"
+dependencies = [
+ "once_cell",
+ "proc-macro-crate 3.4.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.116",
+]
+
+[[package]]
+name = "borsh-derive-internal"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "borsh-derive-internal"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "65d6ba50644c98714aa2a70d13d7df3cd75cd2b523a2b452bf010443800976b3"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "borsh-schema-derive-internal"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "borsh-schema-derive-internal"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "276691d96f063427be83e6692b86148e488ebba9f48f77788724ca027ba3b6d4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "bs58"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3"
+
+[[package]]
+name = "bumpalo"
+version = "3.19.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510"
+
+[[package]]
+name = "bv"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8834bb1d8ee5dc048ee3124f2c7c1afcc6bc9aed03f11e9dfd8c69470a5db340"
+dependencies = [
+ "feature-probe",
+ "serde",
+]
+
+[[package]]
+name = "bytemuck"
+version = "1.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec"
+dependencies = [
+ "bytemuck_derive",
+]
+
+[[package]]
+name = "bytemuck_derive"
+version = "1.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.116",
+]
+
+[[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
+name = "cc"
+version = "1.2.56"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2"
+dependencies = [
+ "find-msvc-tools",
+ "jobserver",
+ "libc",
+ "shlex",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
+
+[[package]]
+name = "cfg_aliases"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
+
+[[package]]
+name = "chrono"
+version = "0.4.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "cipher"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "console_error_panic_hook"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "console_log"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e89f72f65e8501878b8a004d5a1afb780987e2ce2b4532c562e367a72c57499f"
+dependencies = [
+ "log",
+ "web-sys",
+]
+
+[[package]]
+name = "constant_time_eq"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b"
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
+
+[[package]]
+name = "crunchy"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "typenum",
+]
+
+[[package]]
+name = "crypto-mac"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab"
+dependencies = [
+ "generic-array",
+ "subtle",
+]
+
+[[package]]
+name = "ctr"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea"
+dependencies = [
+ "cipher",
+]
+
+[[package]]
+name = "curve25519-dalek"
+version = "3.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90f9d052967f590a76e62eb387bd0bbb1b000182c3cefe5364db6b7211651bc0"
+dependencies = [
+ "byteorder",
+ "digest 0.9.0",
+ "rand_core 0.5.1",
+ "serde",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "darling"
+version = "0.20.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.20.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim",
+ "syn 2.0.116",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.20.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn 2.0.116",
+]
+
+[[package]]
+name = "derivation-path"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e5c37193a1db1d8ed868c03ec7b152175f26160a5b740e5e484143877e0adf0"
+
+[[package]]
+name = "derivative"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "digest"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "digest"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+dependencies = [
+ "block-buffer 0.10.4",
+ "crypto-common",
+ "subtle",
+]
+
+[[package]]
+name = "ed25519"
+version = "1.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7"
+dependencies = [
+ "signature",
+]
+
+[[package]]
+name = "ed25519-dalek"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d"
+dependencies = [
+ "curve25519-dalek",
+ "ed25519",
+ "rand 0.7.3",
+ "serde",
+ "sha2 0.9.9",
+ "zeroize",
+]
+
+[[package]]
+name = "ed25519-dalek-bip32"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d2be62a4061b872c8c0873ee4fc6f101ce7b889d039f019c5fa2af471a59908"
+dependencies = [
+ "derivation-path",
+ "ed25519-dalek",
+ "hmac 0.12.1",
+ "sha2 0.10.9",
+]
+
+[[package]]
+name = "either"
+version = "1.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
+
+[[package]]
+name = "env_logger"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7"
+dependencies = [
+ "atty",
+ "humantime",
+ "log",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
+
+[[package]]
+name = "escrow-native-program"
+version = "0.1.0"
+dependencies = [
+ "borsh 1.6.0",
+ "solana-program",
+ "spl-associated-token-account",
+ "spl-token",
+ "thiserror",
+]
+
+[[package]]
+name = "feature-probe"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da"
+
+[[package]]
+name = "find-msvc-tools"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "foldhash"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
+
+[[package]]
+name = "generic-array"
+version = "0.14.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2"
+dependencies = [
+ "serde",
+ "typenum",
+ "version_check",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "libc",
+ "wasi 0.9.0+wasi-snapshot-preview1",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "libc",
+ "wasi 0.11.1+wasi-snapshot-preview1",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "r-efi",
+ "wasip2",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
+dependencies = [
+ "ahash 0.7.8",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
+dependencies = [
+ "ahash 0.8.12",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"
+dependencies = [
+ "allocator-api2",
+ "equivalent",
+ "foldhash",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.16.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hmac"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840"
+dependencies = [
+ "crypto-mac",
+ "digest 0.9.0",
+]
+
+[[package]]
+name = "hmac"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
+dependencies = [
+ "digest 0.10.7",
+]
+
+[[package]]
+name = "hmac-drbg"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1"
+dependencies = [
+ "digest 0.9.0",
+ "generic-array",
+ "hmac 0.8.1",
+]
+
+[[package]]
+name = "humantime"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424"
+
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
+[[package]]
+name = "im"
+version = "15.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9"
+dependencies = [
+ "bitmaps",
+ "rand_core 0.6.4",
+ "rand_xoshiro",
+ "rayon",
+ "serde",
+ "sized-chunks",
+ "typenum",
+ "version_check",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.16.1",
+]
+
+[[package]]
+name = "itertools"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
+
+[[package]]
+name = "jobserver"
+version = "0.1.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33"
+dependencies = [
+ "getrandom 0.3.4",
+ "libc",
+]
+
+[[package]]
+name = "js-sys"
+version = "0.3.85"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3"
+dependencies = [
+ "once_cell",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "keccak"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653"
+dependencies = [
+ "cpufeatures",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
+
+[[package]]
+name = "libc"
+version = "0.2.182"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112"
+
+[[package]]
+name = "libsecp256k1"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9d220bc1feda2ac231cb78c3d26f27676b8cf82c96971f7aeef3d0cf2797c73"
+dependencies = [
+ "arrayref",
+ "base64 0.12.3",
+ "digest 0.9.0",
+ "hmac-drbg",
+ "libsecp256k1-core",
+ "libsecp256k1-gen-ecmult",
+ "libsecp256k1-gen-genmult",
+ "rand 0.7.3",
+ "serde",
+ "sha2 0.9.9",
+ "typenum",
+]
+
+[[package]]
+name = "libsecp256k1-core"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0f6ab710cec28cef759c5f18671a27dae2a5f952cdaaee1d8e2908cb2478a80"
+dependencies = [
+ "crunchy",
+ "digest 0.9.0",
+ "subtle",
+]
+
+[[package]]
+name = "libsecp256k1-gen-ecmult"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3"
+dependencies = [
+ "libsecp256k1-core",
+]
+
+[[package]]
+name = "libsecp256k1-gen-genmult"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d"
+dependencies = [
+ "libsecp256k1-core",
+]
+
+[[package]]
+name = "light-poseidon"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c9a85a9752c549ceb7578064b4ed891179d20acd85f27318573b64d2d7ee7ee"
+dependencies = [
+ "ark-bn254",
+ "ark-ff",
+ "num-bigint",
+ "thiserror",
+]
+
+[[package]]
+name = "lock_api"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
+dependencies = [
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
+
+[[package]]
+name = "memchr"
+version = "2.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
+
+[[package]]
+name = "memmap2"
+version = "0.5.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "merlin"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d"
+dependencies = [
+ "byteorder",
+ "keccak",
+ "rand_core 0.6.4",
+ "zeroize",
+]
+
+[[package]]
+name = "num-bigint"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
+dependencies = [
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-derive"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.116",
+]
+
+[[package]]
+name = "num-integer"
+version = "0.1.46"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_enum"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c"
+dependencies = [
+ "num_enum_derive",
+ "rustversion",
+]
+
+[[package]]
+name = "num_enum_derive"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7"
+dependencies = [
+ "proc-macro-crate 3.4.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.116",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.21.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
+
+[[package]]
+name = "opaque-debug"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
+
+[[package]]
+name = "parking_lot"
+version = "0.12.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-link",
+]
+
+[[package]]
+name = "paste"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
+
+[[package]]
+name = "pbkdf2"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbd"
+dependencies = [
+ "crypto-mac",
+]
+
+[[package]]
+name = "pbkdf2"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917"
+dependencies = [
+ "digest 0.10.7",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
+
+[[package]]
+name = "polyval"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "opaque-debug",
+ "universal-hash",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
+dependencies = [
+ "zerocopy",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
+dependencies = [
+ "toml",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983"
+dependencies = [
+ "toml_edit",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.106"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "qstring"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d464fae65fff2680baf48019211ce37aaec0c78e9264c84a3e484717f965104e"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "qualifier_attr"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e2e25ee72f5b24d773cae88422baddefff7714f97aab68d96fe2b6fc4a28fb2"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.116",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "r-efi"
+version = "5.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom 0.1.16",
+ "libc",
+ "rand_chacha 0.2.2",
+ "rand_core 0.5.1",
+ "rand_hc",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha 0.3.1",
+ "rand_core 0.6.4",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.5.1",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.6.4",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom 0.1.16",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom 0.2.17",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core 0.5.1",
+]
+
+[[package]]
+name = "rand_xoshiro"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa"
+dependencies = [
+ "rand_core 0.6.4",
+]
+
+[[package]]
+name = "rayon"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.5.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "regex"
+version = "1.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c"
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustc_version"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "semver"
+version = "1.0.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
+
+[[package]]
+name = "serde"
+version = "1.0.228"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
+dependencies = [
+ "serde_core",
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_bytes"
+version = "0.11.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8"
+dependencies = [
+ "serde",
+ "serde_core",
+]
+
+[[package]]
+name = "serde_core"
+version = "1.0.228"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.228"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.116",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.149"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
+dependencies = [
+ "itoa",
+ "memchr",
+ "serde",
+ "serde_core",
+ "zmij",
+]
+
+[[package]]
+name = "serde_with"
+version = "2.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe"
+dependencies = [
+ "serde",
+ "serde_with_macros",
+]
+
+[[package]]
+name = "serde_with_macros"
+version = "2.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f"
+dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.116",
+]
+
+[[package]]
+name = "sha2"
+version = "0.9.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800"
+dependencies = [
+ "block-buffer 0.9.0",
+ "cfg-if",
+ "cpufeatures",
+ "digest 0.9.0",
+ "opaque-debug",
+]
+
+[[package]]
+name = "sha2"
+version = "0.10.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest 0.10.7",
+]
+
+[[package]]
+name = "sha3"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809"
+dependencies = [
+ "block-buffer 0.9.0",
+ "digest 0.9.0",
+ "keccak",
+ "opaque-debug",
+]
+
+[[package]]
+name = "sha3"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60"
+dependencies = [
+ "digest 0.10.7",
+ "keccak",
+]
+
+[[package]]
+name = "shlex"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
+[[package]]
+name = "signature"
+version = "1.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c"
+
+[[package]]
+name = "siphasher"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
+name = "sized-chunks"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e"
+dependencies = [
+ "bitmaps",
+ "typenum",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
+
+[[package]]
+name = "solana-frozen-abi"
+version = "1.18.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4867f66e9527fa44451c861c1dc6d9b2a7c7a668d7c6a297cdefbe39f4395b33"
+dependencies = [
+ "block-buffer 0.10.4",
+ "bs58",
+ "bv",
+ "either",
+ "generic-array",
+ "im",
+ "lazy_static",
+ "log",
+ "memmap2",
+ "rustc_version",
+ "serde",
+ "serde_bytes",
+ "serde_derive",
+ "sha2 0.10.9",
+ "solana-frozen-abi-macro",
+ "subtle",
+ "thiserror",
+]
+
+[[package]]
+name = "solana-frozen-abi-macro"
+version = "1.18.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "168f24d97347b85f05192df58d6be3e3047a4aadc4001bc1b9e711a5ec878eea"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "rustc_version",
+ "syn 2.0.116",
+]
+
+[[package]]
+name = "solana-logger"
+version = "1.18.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0511082fc62f2d086520fff5aa1917c389d8c840930c08ad255ae05952c08a2"
+dependencies = [
+ "env_logger",
+ "lazy_static",
+ "log",
+]
+
+[[package]]
+name = "solana-program"
+version = "1.18.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bc5a636dc75e5c25651e34f7a36afc9ae60d38166687c5b0375abb580ac81a2"
+dependencies = [
+ "ark-bn254",
+ "ark-ec",
+ "ark-ff",
+ "ark-serialize",
+ "base64 0.21.7",
+ "bincode",
+ "bitflags",
+ "blake3",
+ "borsh 0.10.4",
+ "borsh 0.9.3",
+ "borsh 1.6.0",
+ "bs58",
+ "bv",
+ "bytemuck",
+ "cc",
+ "console_error_panic_hook",
+ "console_log",
+ "curve25519-dalek",
+ "getrandom 0.2.17",
+ "itertools",
+ "js-sys",
+ "lazy_static",
+ "libc",
+ "libsecp256k1",
+ "light-poseidon",
+ "log",
+ "memoffset",
+ "num-bigint",
+ "num-derive",
+ "num-traits",
+ "parking_lot",
+ "rand 0.8.5",
+ "rustc_version",
+ "rustversion",
+ "serde",
+ "serde_bytes",
+ "serde_derive",
+ "serde_json",
+ "sha2 0.10.9",
+ "sha3 0.10.8",
+ "solana-frozen-abi",
+ "solana-frozen-abi-macro",
+ "solana-sdk-macro",
+ "thiserror",
+ "tiny-bip39",
+ "wasm-bindgen",
+ "zeroize",
+]
+
+[[package]]
+name = "solana-sdk"
+version = "1.18.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df43d3a1e1637397ab43cbc216a5a8f977ec8a3cc3f3ae8c3851c83a3255dbcf"
+dependencies = [
+ "assert_matches",
+ "base64 0.21.7",
+ "bincode",
+ "bitflags",
+ "borsh 1.6.0",
+ "bs58",
+ "bytemuck",
+ "byteorder",
+ "chrono",
+ "derivation-path",
+ "digest 0.10.7",
+ "ed25519-dalek",
+ "ed25519-dalek-bip32",
+ "generic-array",
+ "hmac 0.12.1",
+ "itertools",
+ "js-sys",
+ "lazy_static",
+ "libsecp256k1",
+ "log",
+ "memmap2",
+ "num-derive",
+ "num-traits",
+ "num_enum",
+ "pbkdf2 0.11.0",
+ "qstring",
+ "qualifier_attr",
+ "rand 0.7.3",
+ "rand 0.8.5",
+ "rustc_version",
+ "rustversion",
+ "serde",
+ "serde_bytes",
+ "serde_derive",
+ "serde_json",
+ "serde_with",
+ "sha2 0.10.9",
+ "sha3 0.10.8",
+ "siphasher",
+ "solana-frozen-abi",
+ "solana-frozen-abi-macro",
+ "solana-logger",
+ "solana-program",
+ "solana-sdk-macro",
+ "thiserror",
+ "uriparse",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "solana-sdk-macro"
+version = "1.18.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86c76414183a325038ff020b22c07d1e9d2da0703ddc0244acfed37ee2921d96"
+dependencies = [
+ "bs58",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn 2.0.116",
+]
+
+[[package]]
+name = "solana-security-txt"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "156bb61a96c605fa124e052d630dba2f6fb57e08c7d15b757e1e958b3ed7b3fe"
+dependencies = [
+ "hashbrown 0.15.2",
+]
+
+[[package]]
+name = "solana-zk-token-sdk"
+version = "1.18.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "513407f88394e437b4ff5aad892bc5bf51a655ae2401e6e63549734d3695c46f"
+dependencies = [
+ "aes-gcm-siv",
+ "base64 0.21.7",
+ "bincode",
+ "bytemuck",
+ "byteorder",
+ "curve25519-dalek",
+ "getrandom 0.1.16",
+ "itertools",
+ "lazy_static",
+ "merlin",
+ "num-derive",
+ "num-traits",
+ "rand 0.7.3",
+ "serde",
+ "serde_json",
+ "sha3 0.9.1",
+ "solana-program",
+ "solana-sdk",
+ "subtle",
+ "thiserror",
+ "zeroize",
+]
+
+[[package]]
+name = "spl-associated-token-account"
+version = "3.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "143109d789171379e6143ef23191786dfaac54289ad6e7917cfb26b36c432b10"
+dependencies = [
+ "assert_matches",
+ "borsh 1.6.0",
+ "num-derive",
+ "num-traits",
+ "solana-program",
+ "spl-token",
+ "spl-token-2022",
+ "thiserror",
+]
+
+[[package]]
+name = "spl-discriminator"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "210101376962bb22bb13be6daea34656ea1cbc248fce2164b146e39203b55e03"
+dependencies = [
+ "bytemuck",
+ "solana-program",
+ "spl-discriminator-derive",
+]
+
+[[package]]
+name = "spl-discriminator-derive"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9e8418ea6269dcfb01c712f0444d2c75542c04448b480e87de59d2865edc750"
+dependencies = [
+ "quote",
+ "spl-discriminator-syn",
+ "syn 2.0.116",
+]
+
+[[package]]
+name = "spl-discriminator-syn"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d1dbc82ab91422345b6df40a79e2b78c7bce1ebb366da323572dd60b7076b67"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "sha2 0.10.9",
+ "syn 2.0.116",
+ "thiserror",
+]
+
+[[package]]
+name = "spl-memo"
+version = "4.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a49f49f95f2d02111ded31696ab38a081fab623d4c76bd4cb074286db4560836"
+dependencies = [
+ "solana-program",
+]
+
+[[package]]
+name = "spl-pod"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c52d84c55efeef8edcc226743dc089d7e3888b8e3474569aa3eff152b37b9996"
+dependencies = [
+ "borsh 1.6.0",
+ "bytemuck",
+ "solana-program",
+ "solana-zk-token-sdk",
+ "spl-program-error",
+]
+
+[[package]]
+name = "spl-program-error"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e45a49acb925db68aa501b926096b2164adbdcade7a0c24152af9f0742d0a602"
+dependencies = [
+ "num-derive",
+ "num-traits",
+ "solana-program",
+ "spl-program-error-derive",
+ "thiserror",
+]
+
+[[package]]
+name = "spl-program-error-derive"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6d375dd76c517836353e093c2dbb490938ff72821ab568b545fd30ab3256b3e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "sha2 0.10.9",
+ "syn 2.0.116",
+]
+
+[[package]]
+name = "spl-tlv-account-resolution"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fab8edfd37be5fa17c9e42c1bff86abbbaf0494b031b37957f2728ad2ff842ba"
+dependencies = [
+ "bytemuck",
+ "solana-program",
+ "spl-discriminator",
+ "spl-pod",
+ "spl-program-error",
+ "spl-type-length-value",
+]
+
+[[package]]
+name = "spl-token"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9eb465e4bf5ce1d498f05204c8089378c1ba34ef2777ea95852fc53a1fd4fb2"
+dependencies = [
+ "arrayref",
+ "bytemuck",
+ "num-derive",
+ "num-traits",
+ "num_enum",
+ "solana-program",
+ "thiserror",
+]
+
+[[package]]
+name = "spl-token-2022"
+version = "3.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c39e416aeb1ea0b22f3b2bbecaf7e38a92a1aa8f4a0c5785c94179694e846a0"
+dependencies = [
+ "arrayref",
+ "bytemuck",
+ "num-derive",
+ "num-traits",
+ "num_enum",
+ "solana-program",
+ "solana-security-txt",
+ "solana-zk-token-sdk",
+ "spl-memo",
+ "spl-pod",
+ "spl-token",
+ "spl-token-group-interface",
+ "spl-token-metadata-interface",
+ "spl-transfer-hook-interface",
+ "spl-type-length-value",
+ "thiserror",
+]
+
+[[package]]
+name = "spl-token-group-interface"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "014817d6324b1e20c4bbc883e8ee30a5faa13e59d91d1b2b95df98b920150c17"
+dependencies = [
+ "bytemuck",
+ "solana-program",
+ "spl-discriminator",
+ "spl-pod",
+ "spl-program-error",
+]
+
+[[package]]
+name = "spl-token-metadata-interface"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3da00495b602ebcf5d8ba8b3ecff1ee454ce4c125c9077747be49c2d62335ba"
+dependencies = [
+ "borsh 1.6.0",
+ "solana-program",
+ "spl-discriminator",
+ "spl-pod",
+ "spl-program-error",
+ "spl-type-length-value",
+]
+
+[[package]]
+name = "spl-transfer-hook-interface"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9b5c08a89838e5a2931f79b17f611857f281a14a2100968a3ccef352cb7414b"
+dependencies = [
+ "arrayref",
+ "bytemuck",
+ "solana-program",
+ "spl-discriminator",
+ "spl-pod",
+ "spl-program-error",
+ "spl-tlv-account-resolution",
+ "spl-type-length-value",
+]
+
+[[package]]
+name = "spl-type-length-value"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c872f93d0600e743116501eba2d53460e73a12c9a496875a42a7d70e034fe06d"
+dependencies = [
+ "bytemuck",
+ "solana-program",
+ "spl-discriminator",
+ "spl-pod",
+ "spl-program-error",
+]
+
+[[package]]
+name = "strsim"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+
+[[package]]
+name = "subtle"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.116"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3df424c70518695237746f84cede799c9c58fcb37450d7b23716568cc8bc69cb"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.116",
+]
+
+[[package]]
+name = "tiny-bip39"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffc59cb9dfc85bb312c3a78fd6aa8a8582e310b0fa885d5bb877f6dcc601839d"
+dependencies = [
+ "anyhow",
+ "hmac 0.8.1",
+ "once_cell",
+ "pbkdf2 0.4.0",
+ "rand 0.7.3",
+ "rustc-hash",
+ "sha2 0.9.9",
+ "thiserror",
+ "unicode-normalization",
+ "wasm-bindgen",
+ "zeroize",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "toml"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.7.5+spec-1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347"
+dependencies = [
+ "serde_core",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.23.10+spec-1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "toml_parser",
+ "winnow",
+]
+
+[[package]]
+name = "toml_parser"
+version = "1.0.9+spec-1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4"
+dependencies = [
+ "winnow",
+]
+
+[[package]]
+name = "typenum"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "universal-hash"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05"
+dependencies = [
+ "generic-array",
+ "subtle",
+]
+
+[[package]]
+name = "uriparse"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0200d0fc04d809396c2ad43f3c95da3582a2556eba8d453c1087f4120ee352ff"
+dependencies = [
+ "fnv",
+ "lazy_static",
+]
+
+[[package]]
+name = "version_check"
+version = "0.9.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
+
+[[package]]
+name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "wasi"
+version = "0.11.1+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
+
+[[package]]
+name = "wasip2"
+version = "1.0.2+wasi-0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
+dependencies = [
+ "wit-bindgen",
+]
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.108"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+ "rustversion",
+ "wasm-bindgen-macro",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.108"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.108"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55"
+dependencies = [
+ "bumpalo",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.116",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.108"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "web-sys"
+version = "0.3.85"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
+dependencies = [
+ "windows-sys",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-link"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
+
+[[package]]
+name = "windows-sys"
+version = "0.61.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
+dependencies = [
+ "windows-link",
+]
+
+[[package]]
+name = "winnow"
+version = "0.7.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "wit-bindgen"
+version = "0.51.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
+
+[[package]]
+name = "zerocopy"
+version = "0.8.39"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.8.39"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.116",
+]
+
+[[package]]
+name = "zeroize"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd"
+dependencies = [
+ "zeroize_derive",
+]
+
+[[package]]
+name = "zeroize_derive"
+version = "1.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.116",
+]
+
+[[package]]
+name = "zmij"
+version = "1.0.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
diff --git a/tokens/escrow/native/program/Cargo.toml b/tokens/escrow/native/program/Cargo.toml
index 2c7628e2b..70d3b8c6d 100644
--- a/tokens/escrow/native/program/Cargo.toml
+++ b/tokens/escrow/native/program/Cargo.toml
@@ -8,7 +8,7 @@ borsh = "1.5.1"
solana-program = "=1.18.17"
spl-token = { version = "4.0.0", features = [ "no-entrypoint" ] }
spl-associated-token-account = { version = "3.0.4", features = [ "no-entrypoint" ] }
-thiserror="1.0.0"
+thiserror = "1.0.0"
[lib]
crate-type = ["cdylib", "lib"]
diff --git a/tokens/escrow/native/tests/account.ts b/tokens/escrow/native/tests/account.ts
index 3eda3b785..507ad647c 100644
--- a/tokens/escrow/native/tests/account.ts
+++ b/tokens/escrow/native/tests/account.ts
@@ -2,6 +2,7 @@ import * as borsh from 'borsh';
export const OfferSchema = {
struct: {
+ id: 'u64',
maker: { array: { type: 'u8', len: 32 } },
token_mint_a: { array: { type: 'u8', len: 32 } },
token_mint_b: { array: { type: 'u8', len: 32 } },
@@ -11,6 +12,7 @@ export const OfferSchema = {
};
export type OfferRaw = {
+ id: bigint;
maker: Uint8Array;
token_mint_a: Uint8Array;
token_mint_b: Uint8Array;
diff --git a/tokens/nft-minter/anchor/Anchor.toml b/tokens/nft-minter/anchor/Anchor.toml
index d342c438a..3ab8550cf 100644
--- a/tokens/nft-minter/anchor/Anchor.toml
+++ b/tokens/nft-minter/anchor/Anchor.toml
@@ -20,7 +20,7 @@ wallet = "~/.config/solana/id.json"
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
[test]
-startup_wait = 5000
+startup_wait = 25000
shutdown_wait = 2000
upgradeable = false
diff --git a/tokens/nft-minter/anchor/tests/bankrun.test.ts b/tokens/nft-minter/anchor/tests/bankrun.test.ts
index 9337be703..a19c3be0f 100644
--- a/tokens/nft-minter/anchor/tests/bankrun.test.ts
+++ b/tokens/nft-minter/anchor/tests/bankrun.test.ts
@@ -1,4 +1,3 @@
-import { describe, it } from "node:test";
import * as anchor from "@coral-xyz/anchor";
import { getAssociatedTokenAddressSync } from "@solana/spl-token";
import { Keypair, PublicKey } from "@solana/web3.js";
diff --git a/tokens/nft-operations/anchor/Anchor.toml b/tokens/nft-operations/anchor/Anchor.toml
index df1dc1094..14af31d18 100644
--- a/tokens/nft-operations/anchor/Anchor.toml
+++ b/tokens/nft-operations/anchor/Anchor.toml
@@ -18,6 +18,9 @@ url = "https://api.apr.dev"
cluster = "localnet"
wallet = "~/.config/solana/id.json"
+[test]
+startup_wait = 25000
+
[scripts]
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
diff --git a/tokens/nft-operations/anchor/tests/bankrun.test.ts b/tokens/nft-operations/anchor/tests/bankrun.test.ts
index a5e9f1e98..85725af41 100644
--- a/tokens/nft-operations/anchor/tests/bankrun.test.ts
+++ b/tokens/nft-operations/anchor/tests/bankrun.test.ts
@@ -1,4 +1,3 @@
-import { describe, it } from "node:test";
import * as anchor from "@coral-xyz/anchor";
import { ASSOCIATED_PROGRAM_ID } from "@coral-xyz/anchor/dist/cjs/utils/token";
import {
diff --git a/tokens/pda-mint-authority/anchor/Anchor.toml b/tokens/pda-mint-authority/anchor/Anchor.toml
index ad289a0d5..5d5fe454b 100644
--- a/tokens/pda-mint-authority/anchor/Anchor.toml
+++ b/tokens/pda-mint-authority/anchor/Anchor.toml
@@ -19,7 +19,7 @@ wallet = "~/.config/solana/id.json"
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
[test]
-startup_wait = 5000
+startup_wait = 25000
shutdown_wait = 2000
upgradeable = false
diff --git a/tokens/pda-mint-authority/anchor/tests/bankrun.test.ts b/tokens/pda-mint-authority/anchor/tests/bankrun.test.ts
index bc0e8799c..40ba63926 100644
--- a/tokens/pda-mint-authority/anchor/tests/bankrun.test.ts
+++ b/tokens/pda-mint-authority/anchor/tests/bankrun.test.ts
@@ -1,4 +1,3 @@
-import { describe, it } from "node:test";
import * as anchor from "@coral-xyz/anchor";
import { getAssociatedTokenAddressSync } from "@solana/spl-token";
import { PublicKey } from "@solana/web3.js";
diff --git a/tokens/spl-token-minter/anchor/Anchor.toml b/tokens/spl-token-minter/anchor/Anchor.toml
index 5f5ab7321..94d837e6a 100644
--- a/tokens/spl-token-minter/anchor/Anchor.toml
+++ b/tokens/spl-token-minter/anchor/Anchor.toml
@@ -19,7 +19,7 @@ wallet = "~/.config/solana/id.json"
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
[test]
-startup_wait = 5000
+startup_wait = 25000
shutdown_wait = 2000
upgradeable = false
diff --git a/tokens/spl-token-minter/anchor/tests/bankrun.test.ts b/tokens/spl-token-minter/anchor/tests/bankrun.test.ts
index 0b4a661ab..182a0e5e5 100644
--- a/tokens/spl-token-minter/anchor/tests/bankrun.test.ts
+++ b/tokens/spl-token-minter/anchor/tests/bankrun.test.ts
@@ -1,4 +1,3 @@
-import { describe, it } from "node:test";
import * as anchor from "@coral-xyz/anchor";
import { getAssociatedTokenAddressSync } from "@solana/spl-token";
import { Keypair, PublicKey } from "@solana/web3.js";
diff --git a/tokens/token-2022/basics/anchor/Anchor.toml b/tokens/token-2022/basics/anchor/Anchor.toml
index 2bc505b70..0e1ec75ef 100644
--- a/tokens/token-2022/basics/anchor/Anchor.toml
+++ b/tokens/token-2022/basics/anchor/Anchor.toml
@@ -14,5 +14,8 @@ url = "https://api.apr.dev"
cluster = "Localnet"
wallet = "~/.config/solana/id.json"
+[test]
+startup_wait = 25000
+
[scripts]
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
diff --git a/tokens/token-2022/basics/anchor/tests/bankrun.test.ts b/tokens/token-2022/basics/anchor/tests/bankrun.test.ts
index dbce23762..669fe5a1b 100644
--- a/tokens/token-2022/basics/anchor/tests/bankrun.test.ts
+++ b/tokens/token-2022/basics/anchor/tests/bankrun.test.ts
@@ -1,4 +1,3 @@
-import { describe, it } from "node:test";
import * as anchor from "@coral-xyz/anchor";
import { PublicKey } from "@solana/web3.js";
import { BankrunProvider } from "anchor-bankrun";
diff --git a/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml
index db4e407e6..890f85aa4 100644
--- a/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml
+++ b/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml
@@ -19,7 +19,7 @@ wallet = "~/.config/solana/id.json"
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
[test]
-startup_wait = 5000
+startup_wait = 25000
shutdown_wait = 2000
upgradeable = false
diff --git a/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml
index a8c780707..815e8f4e5 100644
--- a/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml
+++ b/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml
@@ -15,6 +15,9 @@ url = "https://api.apr.dev"
cluster = "Localnet"
wallet = "~/.config/solana/id.json"
+[test]
+startup_wait = 25000
+
[scripts]
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
diff --git a/tokens/transfer-tokens/anchor/Anchor.toml b/tokens/transfer-tokens/anchor/Anchor.toml
index 2847b5ab4..146674724 100644
--- a/tokens/transfer-tokens/anchor/Anchor.toml
+++ b/tokens/transfer-tokens/anchor/Anchor.toml
@@ -19,7 +19,7 @@ wallet = "~/.config/solana/id.json"
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
[test]
-startup_wait = 5000
+startup_wait = 25000
shutdown_wait = 2000
upgradeable = false
diff --git a/tokens/transfer-tokens/anchor/tests/bankrun.test.ts b/tokens/transfer-tokens/anchor/tests/bankrun.test.ts
index 77aca4d95..d58200cfc 100644
--- a/tokens/transfer-tokens/anchor/tests/bankrun.test.ts
+++ b/tokens/transfer-tokens/anchor/tests/bankrun.test.ts
@@ -1,4 +1,3 @@
-import { describe, it } from "node:test";
import * as anchor from "@coral-xyz/anchor";
import { getAssociatedTokenAddressSync } from "@solana/spl-token";
import { Keypair, PublicKey } from "@solana/web3.js";
From aa5a8e5358e04f2ba23a63def2cde29b8dcbe137 Mon Sep 17 00:00:00 2001
From: Mike MacCana
Date: Thu, 19 Feb 2026 03:23:46 +0000
Subject: [PATCH 39/49] fix: fix remaining CI failures (validator startup,
blake3 pin)
Anchor test failures (7 bankrun projects):
- Remove [test.validator] and [[test.validator.clone]] sections from
bankrun projects. These tests use solana-bankrun (in-process simulation)
and don't need a local validator. The validator was cloning the token
metadata program from mainnet/devnet, causing >25s startup times that
exceeded the timeout.
- Affected: create-token, transfer-tokens, nft-minter, nft-operations,
pda-mint-authority, spl-token-minter, token-2022/basics
Anchor test failures (2 real-validator projects):
- Bump startup_wait from 25000ms to 120000ms (2 min) for transfer-hook
whitelist and hello-world. These clone from devnet and need more time
in CI.
Native build failure (escrow):
- Fix Cargo.lock to actually pin blake3 to 1.5.5 and constant_time_eq
to 0.3.1. Previous commit had a stale Cargo.lock that still resolved
to the edition-2024-requiring versions.
- Fix escrow test: wrap deserialized pubkey bytes in new PublicKey()
since borsh returns raw byte arrays, not PublicKey objects.
---
tokens/create-token/anchor/Anchor.toml | 9 ---------
tokens/escrow/native/Cargo.lock | 13 ++++++-------
tokens/escrow/native/tests/test.ts | 8 ++++----
tokens/nft-minter/anchor/Anchor.toml | 9 ---------
tokens/nft-operations/anchor/Anchor.toml | 6 ------
tokens/pda-mint-authority/anchor/Anchor.toml | 9 ---------
tokens/spl-token-minter/anchor/Anchor.toml | 9 ---------
.../transfer-hook/hello-world/anchor/Anchor.toml | 2 +-
.../transfer-hook/whitelist/anchor/Anchor.toml | 2 +-
tokens/transfer-tokens/anchor/Anchor.toml | 9 ---------
10 files changed, 12 insertions(+), 64 deletions(-)
diff --git a/tokens/create-token/anchor/Anchor.toml b/tokens/create-token/anchor/Anchor.toml
index 40d5c003b..afbecc90a 100644
--- a/tokens/create-token/anchor/Anchor.toml
+++ b/tokens/create-token/anchor/Anchor.toml
@@ -22,12 +22,3 @@ test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
startup_wait = 25000
shutdown_wait = 2000
upgradeable = false
-
-[test.validator]
-bind_address = "0.0.0.0"
-url = "https://api.mainnet-beta.solana.com"
-ledger = ".anchor/test-ledger"
-rpc_port = 8899
-
-[[test.validator.clone]]
-address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
diff --git a/tokens/escrow/native/Cargo.lock b/tokens/escrow/native/Cargo.lock
index 6ed277713..80a2e2b0f 100644
--- a/tokens/escrow/native/Cargo.lock
+++ b/tokens/escrow/native/Cargo.lock
@@ -275,16 +275,15 @@ dependencies = [
[[package]]
name = "blake3"
-version = "1.8.3"
+version = "1.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d"
+checksum = "b8ee0c1824c4dea5b5f81736aff91bae041d2c07ee1192bec91054e10e3e601e"
dependencies = [
"arrayref",
"arrayvec",
"cc",
"cfg-if",
"constant_time_eq",
- "cpufeatures",
"digest 0.10.7",
]
@@ -434,9 +433,9 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3"
[[package]]
name = "bumpalo"
-version = "3.19.1"
+version = "3.20.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510"
+checksum = "5c6f81257d10a0f602a294ae4182251151ff97dbb504ef9afcdda4a64b24d9b4"
[[package]]
name = "bv"
@@ -538,9 +537,9 @@ dependencies = [
[[package]]
name = "constant_time_eq"
-version = "0.4.2"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b"
+checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6"
[[package]]
name = "cpufeatures"
diff --git a/tokens/escrow/native/tests/test.ts b/tokens/escrow/native/tests/test.ts
index a36bd38ba..f274ec2f6 100644
--- a/tokens/escrow/native/tests/test.ts
+++ b/tokens/escrow/native/tests/test.ts
@@ -1,6 +1,6 @@
import { describe, test } from 'node:test';
import { AccountLayout } from '@solana/spl-token';
-import { Transaction } from '@solana/web3.js';
+import { PublicKey, Transaction } from '@solana/web3.js';
import { assert } from 'chai';
import { start } from 'solana-bankrun';
import * as borsh from 'borsh';
@@ -64,9 +64,9 @@ describe('Escrow!', async () => {
const vaultTokenAccount = AccountLayout.decode(vaultInfo.data);
assert(offer.id.toString() === values.id.toString(), 'wrong id');
- assert(offer.maker.toBase58() === values.maker.publicKey.toBase58(), 'maker key does not match');
- assert(offer.token_mint_a.toBase58() === values.mintAKeypair.publicKey.toBase58(), 'wrong mint A');
- assert(offer.token_mint_b.toBase58() === values.mintBKeypair.publicKey.toBase58(), 'wrong mint B');
+ assert(new PublicKey(offer.maker).toBase58() === values.maker.publicKey.toBase58(), 'maker key does not match');
+ assert(new PublicKey(offer.token_mint_a).toBase58() === values.mintAKeypair.publicKey.toBase58(), 'wrong mint A');
+ assert(new PublicKey(offer.token_mint_b).toBase58() === values.mintBKeypair.publicKey.toBase58(), 'wrong mint B');
assert(offer.token_b_wanted_amount.toString() === values.amountB.toString(), 'unexpected amount B');
assert(vaultTokenAccount.amount.toString() === values.amountA.toString(), 'unexpected amount A');
});
diff --git a/tokens/nft-minter/anchor/Anchor.toml b/tokens/nft-minter/anchor/Anchor.toml
index 3ab8550cf..002c7c62d 100644
--- a/tokens/nft-minter/anchor/Anchor.toml
+++ b/tokens/nft-minter/anchor/Anchor.toml
@@ -23,12 +23,3 @@ test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
startup_wait = 25000
shutdown_wait = 2000
upgradeable = false
-
-[test.validator]
-bind_address = "0.0.0.0"
-url = "https://api.mainnet-beta.solana.com"
-ledger = ".anchor/test-ledger"
-rpc_port = 8899
-
-[[test.validator.clone]]
-address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
diff --git a/tokens/nft-operations/anchor/Anchor.toml b/tokens/nft-operations/anchor/Anchor.toml
index 14af31d18..130b8090b 100644
--- a/tokens/nft-operations/anchor/Anchor.toml
+++ b/tokens/nft-operations/anchor/Anchor.toml
@@ -23,9 +23,3 @@ startup_wait = 25000
[scripts]
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
-
-[test.validator]
-url = "https://api.mainnet-beta.solana.com"
-
-[[test.validator.clone]]
-address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
diff --git a/tokens/pda-mint-authority/anchor/Anchor.toml b/tokens/pda-mint-authority/anchor/Anchor.toml
index 5d5fe454b..f4f1ea989 100644
--- a/tokens/pda-mint-authority/anchor/Anchor.toml
+++ b/tokens/pda-mint-authority/anchor/Anchor.toml
@@ -22,12 +22,3 @@ test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
startup_wait = 25000
shutdown_wait = 2000
upgradeable = false
-
-[test.validator]
-bind_address = "0.0.0.0"
-url = "https://api.mainnet-beta.solana.com"
-ledger = ".anchor/test-ledger"
-rpc_port = 8899
-
-[[test.validator.clone]]
-address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
diff --git a/tokens/spl-token-minter/anchor/Anchor.toml b/tokens/spl-token-minter/anchor/Anchor.toml
index 94d837e6a..55326b68f 100644
--- a/tokens/spl-token-minter/anchor/Anchor.toml
+++ b/tokens/spl-token-minter/anchor/Anchor.toml
@@ -22,12 +22,3 @@ test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
startup_wait = 25000
shutdown_wait = 2000
upgradeable = false
-
-[test.validator]
-bind_address = "0.0.0.0"
-url = "https://api.mainnet-beta.solana.com"
-ledger = ".anchor/test-ledger"
-rpc_port = 8899
-
-[[test.validator.clone]]
-address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
diff --git a/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml
index 890f85aa4..b1b281534 100644
--- a/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml
+++ b/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml
@@ -19,7 +19,7 @@ wallet = "~/.config/solana/id.json"
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
[test]
-startup_wait = 25000
+startup_wait = 120000
shutdown_wait = 2000
upgradeable = false
diff --git a/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml
index 815e8f4e5..c80d40e9d 100644
--- a/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml
+++ b/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml
@@ -16,7 +16,7 @@ cluster = "Localnet"
wallet = "~/.config/solana/id.json"
[test]
-startup_wait = 25000
+startup_wait = 120000
[scripts]
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
diff --git a/tokens/transfer-tokens/anchor/Anchor.toml b/tokens/transfer-tokens/anchor/Anchor.toml
index 146674724..2109778c0 100644
--- a/tokens/transfer-tokens/anchor/Anchor.toml
+++ b/tokens/transfer-tokens/anchor/Anchor.toml
@@ -22,12 +22,3 @@ test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
startup_wait = 25000
shutdown_wait = 2000
upgradeable = false
-
-[test.validator]
-bind_address = "0.0.0.0"
-url = "https://api.mainnet-beta.solana.com"
-ledger = ".anchor/test-ledger"
-rpc_port = 8899
-
-[[test.validator.clone]]
-address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
From da153544eb1a684d63baf45a75de70a5f31fbfaa Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 19 Feb 2026 21:09:32 +0100
Subject: [PATCH 40/49] chore(deps): bump solana-rent from 3.1.0 to 4.0.0
(#522)
Bumps [solana-rent](https://github.com/anza-xyz/solana-sdk) from 3.1.0 to 4.0.0.
- [Release notes](https://github.com/anza-xyz/solana-sdk/releases)
- [Commits](https://github.com/anza-xyz/solana-sdk/compare/cpi@v3.1.0...hash@v4.0.0)
---
updated-dependencies:
- dependency-name: solana-rent
dependency-version: 4.0.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Cargo.lock | 21 +++++++++++++------
basics/counter/native/program/Cargo.toml | 2 +-
basics/counter/pinocchio/program/Cargo.toml | 2 +-
.../native/program/Cargo.toml | 2 +-
.../pinocchio/program/Cargo.toml | 2 +-
basics/rent/native/program/Cargo.toml | 2 +-
basics/rent/pinocchio/program/Cargo.toml | 2 +-
7 files changed, 21 insertions(+), 12 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index d756a5882..336bf0d1b 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1017,7 +1017,7 @@ dependencies = [
"solana-native-token 3.0.0",
"solana-program 3.0.0",
"solana-pubkey 3.0.0",
- "solana-rent 3.1.0",
+ "solana-rent 4.0.0",
"solana-system-interface 2.0.0",
"solana-transaction",
]
@@ -1034,7 +1034,7 @@ dependencies = [
"solana-keypair",
"solana-native-token 3.0.0",
"solana-pubkey 3.0.0",
- "solana-rent 3.1.0",
+ "solana-rent 4.0.0",
"solana-system-interface 2.0.0",
"solana-transaction",
]
@@ -2410,7 +2410,7 @@ dependencies = [
"solana-native-token 3.0.0",
"solana-program 3.0.0",
"solana-pubkey 3.0.0",
- "solana-rent 3.1.0",
+ "solana-rent 4.0.0",
"solana-system-interface 2.0.0",
"solana-transaction",
]
@@ -2427,7 +2427,7 @@ dependencies = [
"solana-native-token 3.0.0",
"solana-program 3.0.0",
"solana-pubkey 3.0.0",
- "solana-rent 3.1.0",
+ "solana-rent 4.0.0",
"solana-system-interface 2.0.0",
"solana-transaction",
]
@@ -2443,7 +2443,7 @@ dependencies = [
"solana-keypair",
"solana-native-token 3.0.0",
"solana-pubkey 3.0.0",
- "solana-rent 3.1.0",
+ "solana-rent 4.0.0",
"solana-system-interface 2.0.0",
"solana-transaction",
]
@@ -2650,7 +2650,7 @@ dependencies = [
"solana-keypair",
"solana-native-token 3.0.0",
"solana-pubkey 3.0.0",
- "solana-rent 3.1.0",
+ "solana-rent 4.0.0",
"solana-system-interface 2.0.0",
"solana-transaction",
]
@@ -4534,6 +4534,15 @@ dependencies = [
"solana-sysvar-id 3.0.0",
]
+[[package]]
+name = "solana-rent"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "763fe5c88a76ce18235db595b21d38b7aebf6db56b324cdf9fc96059f4410823"
+dependencies = [
+ "solana-sdk-macro 3.0.0",
+]
+
[[package]]
name = "solana-sanitize"
version = "2.2.1"
diff --git a/basics/counter/native/program/Cargo.toml b/basics/counter/native/program/Cargo.toml
index 48521177e..8836a2683 100644
--- a/basics/counter/native/program/Cargo.toml
+++ b/basics/counter/native/program/Cargo.toml
@@ -28,5 +28,5 @@ solana-keypair = "3.0.1"
solana-native-token = "3.0.0"
solana-pubkey = "3.0.0"
solana-transaction = "3.0.1"
-solana-rent = "3.1.0"
+solana-rent = "4.0.0"
solana-system-interface.workspace = true
diff --git a/basics/counter/pinocchio/program/Cargo.toml b/basics/counter/pinocchio/program/Cargo.toml
index 31ad2accb..e40f4aa10 100644
--- a/basics/counter/pinocchio/program/Cargo.toml
+++ b/basics/counter/pinocchio/program/Cargo.toml
@@ -28,5 +28,5 @@ solana-keypair = "3.0.1"
solana-native-token = "3.0.0"
solana-pubkey = "3.0.0"
solana-transaction = "3.0.1"
-solana-rent = "3.1.0"
+solana-rent = "4.0.0"
solana-system-interface.workspace = true
diff --git a/basics/program-derived-addresses/native/program/Cargo.toml b/basics/program-derived-addresses/native/program/Cargo.toml
index 7459e92f0..9cb9c54bd 100644
--- a/basics/program-derived-addresses/native/program/Cargo.toml
+++ b/basics/program-derived-addresses/native/program/Cargo.toml
@@ -26,4 +26,4 @@ solana-keypair = "3.0.1"
solana-pubkey = "3.0.0"
solana-transaction = "3.0.1"
solana-native-token = "3.0.0"
-solana-rent = "3.1.0"
+solana-rent = "4.0.0"
diff --git a/basics/program-derived-addresses/pinocchio/program/Cargo.toml b/basics/program-derived-addresses/pinocchio/program/Cargo.toml
index 4706d4e2d..7c039a33a 100644
--- a/basics/program-derived-addresses/pinocchio/program/Cargo.toml
+++ b/basics/program-derived-addresses/pinocchio/program/Cargo.toml
@@ -25,5 +25,5 @@ solana-keypair = "3.0.1"
solana-pubkey = "3.0.0"
solana-transaction = "3.0.1"
solana-native-token = "3.0.0"
-solana-rent = "3.1.0"
+solana-rent = "4.0.0"
solana-system-interface.workspace = true
diff --git a/basics/rent/native/program/Cargo.toml b/basics/rent/native/program/Cargo.toml
index b9e7c7845..e81418a1d 100644
--- a/basics/rent/native/program/Cargo.toml
+++ b/basics/rent/native/program/Cargo.toml
@@ -25,5 +25,5 @@ solana-instruction = "3.0.0"
solana-keypair = "3.0.1"
solana-native-token = "3.0.0"
solana-pubkey = "3.0.0"
-solana-rent = "3.1.0"
+solana-rent = "4.0.0"
solana-transaction = "3.0.1"
diff --git a/basics/rent/pinocchio/program/Cargo.toml b/basics/rent/pinocchio/program/Cargo.toml
index c629d8ee1..430dd967a 100644
--- a/basics/rent/pinocchio/program/Cargo.toml
+++ b/basics/rent/pinocchio/program/Cargo.toml
@@ -24,6 +24,6 @@ solana-instruction = "3.0.0"
solana-keypair = "3.0.1"
solana-native-token = "3.0.0"
solana-pubkey = "3.0.0"
-solana-rent = "3.1.0"
+solana-rent = "4.0.0"
solana-transaction = "3.0.1"
solana-system-interface .workspace = true
From aa88946f6f4b0d5b2a3eae2a0b41a6e338d082b4 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 25 Feb 2026 00:52:03 +0100
Subject: [PATCH 41/49] chore(deps): bump solana-rent from 4.0.0 to 4.1.0
(#537)
Bumps [solana-rent](https://github.com/anza-xyz/solana-sdk) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/anza-xyz/solana-sdk/releases)
- [Commits](https://github.com/anza-xyz/solana-sdk/compare/sdk@v4.0.0...hash@v4.1.0)
---
updated-dependencies:
- dependency-name: solana-rent
dependency-version: 4.1.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Cargo.lock | 94 +++++++++----------
basics/counter/native/program/Cargo.toml | 2 +-
basics/counter/pinocchio/program/Cargo.toml | 2 +-
.../native/program/Cargo.toml | 2 +-
.../pinocchio/program/Cargo.toml | 2 +-
basics/rent/native/program/Cargo.toml | 2 +-
basics/rent/pinocchio/program/Cargo.toml | 2 +-
7 files changed, 53 insertions(+), 53 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index 336bf0d1b..0eaa3c5cd 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -706,7 +706,7 @@ dependencies = [
"proc-macro-crate 3.3.0",
"proc-macro2",
"quote",
- "syn 2.0.101",
+ "syn 2.0.117",
]
[[package]]
@@ -795,7 +795,7 @@ checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.101",
+ "syn 2.0.117",
]
[[package]]
@@ -850,7 +850,7 @@ checksum = "45565fc9416b9896014f5732ac776f810ee53a66730c17e4020c3ec064a8f88f"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.101",
+ "syn 2.0.117",
]
[[package]]
@@ -1017,7 +1017,7 @@ dependencies = [
"solana-native-token 3.0.0",
"solana-program 3.0.0",
"solana-pubkey 3.0.0",
- "solana-rent 4.0.0",
+ "solana-rent 4.1.0",
"solana-system-interface 2.0.0",
"solana-transaction",
]
@@ -1034,7 +1034,7 @@ dependencies = [
"solana-keypair",
"solana-native-token 3.0.0",
"solana-pubkey 3.0.0",
- "solana-rent 4.0.0",
+ "solana-rent 4.1.0",
"solana-system-interface 2.0.0",
"solana-transaction",
]
@@ -1180,7 +1180,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.101",
+ "syn 2.0.117",
]
[[package]]
@@ -1204,7 +1204,7 @@ dependencies = [
"proc-macro2",
"quote",
"strsim",
- "syn 2.0.101",
+ "syn 2.0.117",
]
[[package]]
@@ -1215,7 +1215,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81"
dependencies = [
"darling_core",
"quote",
- "syn 2.0.101",
+ "syn 2.0.117",
]
[[package]]
@@ -1388,7 +1388,7 @@ checksum = "685adfa4d6f3d765a26bc5dbc936577de9abf756c1feeb3089b01dd395034842"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.101",
+ "syn 2.0.117",
]
[[package]]
@@ -2019,7 +2019,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.101",
+ "syn 2.0.117",
]
[[package]]
@@ -2082,7 +2082,7 @@ dependencies = [
"proc-macro-crate 3.3.0",
"proc-macro2",
"quote",
- "syn 2.0.101",
+ "syn 2.0.117",
]
[[package]]
@@ -2120,7 +2120,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.101",
+ "syn 2.0.117",
]
[[package]]
@@ -2355,9 +2355,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
-version = "1.0.95"
+version = "1.0.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778"
+checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
dependencies = [
"unicode-ident",
]
@@ -2410,7 +2410,7 @@ dependencies = [
"solana-native-token 3.0.0",
"solana-program 3.0.0",
"solana-pubkey 3.0.0",
- "solana-rent 4.0.0",
+ "solana-rent 4.1.0",
"solana-system-interface 2.0.0",
"solana-transaction",
]
@@ -2427,7 +2427,7 @@ dependencies = [
"solana-native-token 3.0.0",
"solana-program 3.0.0",
"solana-pubkey 3.0.0",
- "solana-rent 4.0.0",
+ "solana-rent 4.1.0",
"solana-system-interface 2.0.0",
"solana-transaction",
]
@@ -2443,7 +2443,7 @@ dependencies = [
"solana-keypair",
"solana-native-token 3.0.0",
"solana-pubkey 3.0.0",
- "solana-rent 4.0.0",
+ "solana-rent 4.1.0",
"solana-system-interface 2.0.0",
"solana-transaction",
]
@@ -2472,14 +2472,14 @@ checksum = "9e2e25ee72f5b24d773cae88422baddefff7714f97aab68d96fe2b6fc4a28fb2"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.101",
+ "syn 2.0.117",
]
[[package]]
name = "quote"
-version = "1.0.40"
+version = "1.0.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d"
+checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
dependencies = [
"proc-macro2",
]
@@ -2650,7 +2650,7 @@ dependencies = [
"solana-keypair",
"solana-native-token 3.0.0",
"solana-pubkey 3.0.0",
- "solana-rent 4.0.0",
+ "solana-rent 4.1.0",
"solana-system-interface 2.0.0",
"solana-transaction",
]
@@ -2778,7 +2778,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.101",
+ "syn 2.0.117",
]
[[package]]
@@ -2821,7 +2821,7 @@ dependencies = [
"darling",
"proc-macro2",
"quote",
- "syn 2.0.101",
+ "syn 2.0.117",
]
[[package]]
@@ -3290,7 +3290,7 @@ dependencies = [
"serde",
"serde_derive",
"solana-sdk-ids 3.0.0",
- "solana-sdk-macro 3.0.0",
+ "solana-sdk-macro 3.0.1",
"solana-sysvar-id 3.0.0",
]
@@ -3511,7 +3511,7 @@ dependencies = [
"serde_derive",
"solana-hash 3.0.0",
"solana-sdk-ids 3.0.0",
- "solana-sdk-macro 3.0.0",
+ "solana-sdk-macro 3.0.1",
"solana-sysvar-id 3.0.0",
]
@@ -3548,7 +3548,7 @@ dependencies = [
"serde",
"serde_derive",
"solana-sdk-ids 3.0.0",
- "solana-sdk-macro 3.0.0",
+ "solana-sdk-macro 3.0.1",
"solana-sysvar-id 3.0.0",
]
@@ -3911,7 +3911,7 @@ dependencies = [
"serde",
"serde_derive",
"solana-sdk-ids 3.0.0",
- "solana-sdk-macro 3.0.0",
+ "solana-sdk-macro 3.0.1",
"solana-sysvar-id 3.0.0",
]
@@ -4530,17 +4530,17 @@ dependencies = [
"serde",
"serde_derive",
"solana-sdk-ids 3.0.0",
- "solana-sdk-macro 3.0.0",
+ "solana-sdk-macro 3.0.1",
"solana-sysvar-id 3.0.0",
]
[[package]]
name = "solana-rent"
-version = "4.0.0"
+version = "4.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "763fe5c88a76ce18235db595b21d38b7aebf6db56b324cdf9fc96059f4410823"
+checksum = "a1771d726d4854f1818c750e14aff40b19d84720d0b1b6d53e50e8f16cb6bd62"
dependencies = [
- "solana-sdk-macro 3.0.0",
+ "solana-sdk-macro 3.0.1",
]
[[package]]
@@ -4595,7 +4595,7 @@ dependencies = [
"solana-pubkey 3.0.0",
"solana-sanitize 3.0.1",
"solana-sdk-ids 3.0.0",
- "solana-sdk-macro 3.0.0",
+ "solana-sdk-macro 3.0.1",
"solana-seed-derivable",
"solana-seed-phrase",
"solana-serde",
@@ -4637,19 +4637,19 @@ dependencies = [
"bs58",
"proc-macro2",
"quote",
- "syn 2.0.101",
+ "syn 2.0.117",
]
[[package]]
name = "solana-sdk-macro"
-version = "3.0.0"
+version = "3.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6430000e97083460b71d9fbadc52a2ab2f88f53b3a4c5e58c5ae3640a0e8c00"
+checksum = "8765316242300c48242d84a41614cb3388229ec353ba464f6fe62a733e41806f"
dependencies = [
"bs58",
"proc-macro2",
"quote",
- "syn 2.0.101",
+ "syn 2.0.117",
]
[[package]]
@@ -5177,7 +5177,7 @@ dependencies = [
"solana-pubkey 3.0.0",
"solana-rent 3.1.0",
"solana-sdk-ids 3.0.0",
- "solana-sdk-macro 3.0.0",
+ "solana-sdk-macro 3.0.1",
"solana-slot-hashes 3.0.0",
"solana-slot-history 3.0.0",
"solana-sysvar-id 3.0.0",
@@ -5500,7 +5500,7 @@ checksum = "d9e8418ea6269dcfb01c712f0444d2c75542c04448b480e87de59d2865edc750"
dependencies = [
"quote",
"spl-discriminator-syn",
- "syn 2.0.101",
+ "syn 2.0.117",
]
[[package]]
@@ -5512,7 +5512,7 @@ dependencies = [
"proc-macro2",
"quote",
"sha2 0.10.9",
- "syn 2.0.101",
+ "syn 2.0.117",
"thiserror 1.0.69",
]
@@ -5694,9 +5694,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "2.0.101"
+version = "2.0.117"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf"
+checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
dependencies = [
"proc-macro2",
"quote",
@@ -5729,7 +5729,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.101",
+ "syn 2.0.117",
]
[[package]]
@@ -5740,7 +5740,7 @@ checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.101",
+ "syn 2.0.117",
]
[[package]]
@@ -6012,7 +6012,7 @@ dependencies = [
"log",
"proc-macro2",
"quote",
- "syn 2.0.101",
+ "syn 2.0.117",
"wasm-bindgen-shared",
]
@@ -6034,7 +6034,7 @@ checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.101",
+ "syn 2.0.117",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@@ -6176,7 +6176,7 @@ checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.101",
+ "syn 2.0.117",
]
[[package]]
@@ -6196,5 +6196,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.101",
+ "syn 2.0.117",
]
diff --git a/basics/counter/native/program/Cargo.toml b/basics/counter/native/program/Cargo.toml
index 8836a2683..0180bb481 100644
--- a/basics/counter/native/program/Cargo.toml
+++ b/basics/counter/native/program/Cargo.toml
@@ -28,5 +28,5 @@ solana-keypair = "3.0.1"
solana-native-token = "3.0.0"
solana-pubkey = "3.0.0"
solana-transaction = "3.0.1"
-solana-rent = "4.0.0"
+solana-rent = "4.1.0"
solana-system-interface.workspace = true
diff --git a/basics/counter/pinocchio/program/Cargo.toml b/basics/counter/pinocchio/program/Cargo.toml
index e40f4aa10..54ffc5008 100644
--- a/basics/counter/pinocchio/program/Cargo.toml
+++ b/basics/counter/pinocchio/program/Cargo.toml
@@ -28,5 +28,5 @@ solana-keypair = "3.0.1"
solana-native-token = "3.0.0"
solana-pubkey = "3.0.0"
solana-transaction = "3.0.1"
-solana-rent = "4.0.0"
+solana-rent = "4.1.0"
solana-system-interface.workspace = true
diff --git a/basics/program-derived-addresses/native/program/Cargo.toml b/basics/program-derived-addresses/native/program/Cargo.toml
index 9cb9c54bd..097ef4d8a 100644
--- a/basics/program-derived-addresses/native/program/Cargo.toml
+++ b/basics/program-derived-addresses/native/program/Cargo.toml
@@ -26,4 +26,4 @@ solana-keypair = "3.0.1"
solana-pubkey = "3.0.0"
solana-transaction = "3.0.1"
solana-native-token = "3.0.0"
-solana-rent = "4.0.0"
+solana-rent = "4.1.0"
diff --git a/basics/program-derived-addresses/pinocchio/program/Cargo.toml b/basics/program-derived-addresses/pinocchio/program/Cargo.toml
index 7c039a33a..4b255c5eb 100644
--- a/basics/program-derived-addresses/pinocchio/program/Cargo.toml
+++ b/basics/program-derived-addresses/pinocchio/program/Cargo.toml
@@ -25,5 +25,5 @@ solana-keypair = "3.0.1"
solana-pubkey = "3.0.0"
solana-transaction = "3.0.1"
solana-native-token = "3.0.0"
-solana-rent = "4.0.0"
+solana-rent = "4.1.0"
solana-system-interface.workspace = true
diff --git a/basics/rent/native/program/Cargo.toml b/basics/rent/native/program/Cargo.toml
index e81418a1d..018875285 100644
--- a/basics/rent/native/program/Cargo.toml
+++ b/basics/rent/native/program/Cargo.toml
@@ -25,5 +25,5 @@ solana-instruction = "3.0.0"
solana-keypair = "3.0.1"
solana-native-token = "3.0.0"
solana-pubkey = "3.0.0"
-solana-rent = "4.0.0"
+solana-rent = "4.1.0"
solana-transaction = "3.0.1"
diff --git a/basics/rent/pinocchio/program/Cargo.toml b/basics/rent/pinocchio/program/Cargo.toml
index 430dd967a..f58109e0b 100644
--- a/basics/rent/pinocchio/program/Cargo.toml
+++ b/basics/rent/pinocchio/program/Cargo.toml
@@ -24,6 +24,6 @@ solana-instruction = "3.0.0"
solana-keypair = "3.0.1"
solana-native-token = "3.0.0"
solana-pubkey = "3.0.0"
-solana-rent = "4.0.0"
+solana-rent = "4.1.0"
solana-transaction = "3.0.1"
solana-system-interface .workspace = true
From 00428e90ea8847f65c1409e7da286803bfae0971 Mon Sep 17 00:00:00 2001
From: Mike MacCana
Date: Thu, 19 Feb 2026 04:21:33 +0000
Subject: [PATCH 42/49] docs: add rationale comments to test configuration
changes
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- Bankrun projects (7): explain why [test.validator] was removed — these
use in-process simulation and don't need the local validator
- Real-validator projects (2): explain why startup_wait is 120s — they
clone programs from devnet which is slow in CI
- Escrow native: explain why Cargo.lock is committed and blake3 is pinned
(edition 2024 incompatibility with solana-program 1.18.17's toolchain)
- Escrow test: comment explaining borsh deserializes pubkeys as byte arrays
- .gitignore: exception for escrow Cargo.lock with explanation
---
.gitignore | 2 ++
tokens/create-token/anchor/Anchor.toml | 4 ++++
tokens/escrow/native/Cargo.toml | 6 ++++++
tokens/escrow/native/tests/test.ts | 1 +
tokens/nft-minter/anchor/Anchor.toml | 4 ++++
tokens/nft-operations/anchor/Anchor.toml | 4 ++++
tokens/pda-mint-authority/anchor/Anchor.toml | 4 ++++
tokens/spl-token-minter/anchor/Anchor.toml | 4 ++++
tokens/token-2022/basics/anchor/Anchor.toml | 4 ++++
.../token-2022/transfer-hook/hello-world/anchor/Anchor.toml | 3 +++
.../token-2022/transfer-hook/whitelist/anchor/Anchor.toml | 3 +++
tokens/transfer-tokens/anchor/Anchor.toml | 4 ++++
12 files changed, 43 insertions(+)
diff --git a/.gitignore b/.gitignore
index 4a859951f..8a05c56b2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,6 +8,8 @@ node_modules/
**/*/node_modules
**/*/package-lock.json
**/*/Cargo.lock
+# Exception: escrow native needs Cargo.lock to pin blake3 (see tokens/escrow/native/Cargo.toml)
+!tokens/escrow/native/Cargo.lock
**/*/.anchor
**/*/.DS_Store
diff --git a/tokens/create-token/anchor/Anchor.toml b/tokens/create-token/anchor/Anchor.toml
index afbecc90a..3e6befcfb 100644
--- a/tokens/create-token/anchor/Anchor.toml
+++ b/tokens/create-token/anchor/Anchor.toml
@@ -18,6 +18,10 @@ wallet = "~/.config/solana/id.json"
[scripts]
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
+# Tests use solana-bankrun (in-process simulation), not the local validator.
+# No [test.validator] section needed — adding one (e.g. to clone programs from
+# mainnet) would slow down validator startup without benefit, since bankrun
+# loads programs directly from the local build.
[test]
startup_wait = 25000
shutdown_wait = 2000
diff --git a/tokens/escrow/native/Cargo.toml b/tokens/escrow/native/Cargo.toml
index 39fc8ab65..bb42cf5e1 100644
--- a/tokens/escrow/native/Cargo.toml
+++ b/tokens/escrow/native/Cargo.toml
@@ -1,3 +1,9 @@
[workspace]
members = ["program"]
resolver = "2"
+
+# Cargo.lock is committed to pin blake3 to 1.5.5 (and constant_time_eq to 0.3.1).
+# blake3 >= 1.8.3 requires Rust edition 2024, which the Cargo bundled with
+# solana-program 1.18.17's platform-tools (Cargo 1.84.0) doesn't support.
+# When solana-program is upgraded to a version with edition 2024 support,
+# this Cargo.lock pin can be removed and the crate re-resolved freely.
diff --git a/tokens/escrow/native/tests/test.ts b/tokens/escrow/native/tests/test.ts
index f274ec2f6..5ae49b304 100644
--- a/tokens/escrow/native/tests/test.ts
+++ b/tokens/escrow/native/tests/test.ts
@@ -64,6 +64,7 @@ describe('Escrow!', async () => {
const vaultTokenAccount = AccountLayout.decode(vaultInfo.data);
assert(offer.id.toString() === values.id.toString(), 'wrong id');
+ // borsh deserializes pubkeys as raw byte arrays, wrap in PublicKey for comparison
assert(new PublicKey(offer.maker).toBase58() === values.maker.publicKey.toBase58(), 'maker key does not match');
assert(new PublicKey(offer.token_mint_a).toBase58() === values.mintAKeypair.publicKey.toBase58(), 'wrong mint A');
assert(new PublicKey(offer.token_mint_b).toBase58() === values.mintBKeypair.publicKey.toBase58(), 'wrong mint B');
diff --git a/tokens/nft-minter/anchor/Anchor.toml b/tokens/nft-minter/anchor/Anchor.toml
index 002c7c62d..7cc3b1801 100644
--- a/tokens/nft-minter/anchor/Anchor.toml
+++ b/tokens/nft-minter/anchor/Anchor.toml
@@ -19,6 +19,10 @@ wallet = "~/.config/solana/id.json"
[scripts]
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
+# Tests use solana-bankrun (in-process simulation), not the local validator.
+# No [test.validator] section needed — adding one (e.g. to clone programs from
+# mainnet) would slow down validator startup without benefit, since bankrun
+# loads programs directly from the local build.
[test]
startup_wait = 25000
shutdown_wait = 2000
diff --git a/tokens/nft-operations/anchor/Anchor.toml b/tokens/nft-operations/anchor/Anchor.toml
index 130b8090b..0c779d951 100644
--- a/tokens/nft-operations/anchor/Anchor.toml
+++ b/tokens/nft-operations/anchor/Anchor.toml
@@ -18,6 +18,10 @@ url = "https://api.apr.dev"
cluster = "localnet"
wallet = "~/.config/solana/id.json"
+# Tests use solana-bankrun (in-process simulation), not the local validator.
+# No [test.validator] section needed — adding one (e.g. to clone programs from
+# mainnet) would slow down validator startup without benefit, since bankrun
+# loads programs directly from the local build.
[test]
startup_wait = 25000
diff --git a/tokens/pda-mint-authority/anchor/Anchor.toml b/tokens/pda-mint-authority/anchor/Anchor.toml
index f4f1ea989..66b1aafd3 100644
--- a/tokens/pda-mint-authority/anchor/Anchor.toml
+++ b/tokens/pda-mint-authority/anchor/Anchor.toml
@@ -18,6 +18,10 @@ wallet = "~/.config/solana/id.json"
[scripts]
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
+# Tests use solana-bankrun (in-process simulation), not the local validator.
+# No [test.validator] section needed — adding one (e.g. to clone programs from
+# mainnet) would slow down validator startup without benefit, since bankrun
+# loads programs directly from the local build.
[test]
startup_wait = 25000
shutdown_wait = 2000
diff --git a/tokens/spl-token-minter/anchor/Anchor.toml b/tokens/spl-token-minter/anchor/Anchor.toml
index 55326b68f..ae94f1784 100644
--- a/tokens/spl-token-minter/anchor/Anchor.toml
+++ b/tokens/spl-token-minter/anchor/Anchor.toml
@@ -18,6 +18,10 @@ wallet = "~/.config/solana/id.json"
[scripts]
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
+# Tests use solana-bankrun (in-process simulation), not the local validator.
+# No [test.validator] section needed — adding one (e.g. to clone programs from
+# mainnet) would slow down validator startup without benefit, since bankrun
+# loads programs directly from the local build.
[test]
startup_wait = 25000
shutdown_wait = 2000
diff --git a/tokens/token-2022/basics/anchor/Anchor.toml b/tokens/token-2022/basics/anchor/Anchor.toml
index 0e1ec75ef..907f0598c 100644
--- a/tokens/token-2022/basics/anchor/Anchor.toml
+++ b/tokens/token-2022/basics/anchor/Anchor.toml
@@ -14,6 +14,10 @@ url = "https://api.apr.dev"
cluster = "Localnet"
wallet = "~/.config/solana/id.json"
+# Tests use solana-bankrun (in-process simulation), not the local validator.
+# No [test.validator] section needed — adding one (e.g. to clone programs from
+# mainnet) would slow down validator startup without benefit, since bankrun
+# loads programs directly from the local build.
[test]
startup_wait = 25000
diff --git a/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml
index b1b281534..cb9003e50 100644
--- a/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml
+++ b/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml
@@ -18,6 +18,9 @@ wallet = "~/.config/solana/id.json"
[scripts]
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
+# Tests use the real local validator (not bankrun) because transfer-hook
+# tests need the actual validator runtime. startup_wait is 120s because the
+# validator clones programs from devnet which is slow in CI.
[test]
startup_wait = 120000
shutdown_wait = 2000
diff --git a/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml
index c80d40e9d..cb4a0c707 100644
--- a/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml
+++ b/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml
@@ -15,6 +15,9 @@ url = "https://api.apr.dev"
cluster = "Localnet"
wallet = "~/.config/solana/id.json"
+# Tests use the real local validator (not bankrun) because transfer-hook
+# tests need the actual validator runtime. startup_wait is 120s because the
+# validator clones programs from devnet which is slow in CI.
[test]
startup_wait = 120000
diff --git a/tokens/transfer-tokens/anchor/Anchor.toml b/tokens/transfer-tokens/anchor/Anchor.toml
index 2109778c0..b5c6a3e26 100644
--- a/tokens/transfer-tokens/anchor/Anchor.toml
+++ b/tokens/transfer-tokens/anchor/Anchor.toml
@@ -18,6 +18,10 @@ wallet = "~/.config/solana/id.json"
[scripts]
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
+# Tests use solana-bankrun (in-process simulation), not the local validator.
+# No [test.validator] section needed — adding one (e.g. to clone programs from
+# mainnet) would slow down validator startup without benefit, since bankrun
+# loads programs directly from the local build.
[test]
startup_wait = 25000
shutdown_wait = 2000
From 3ce6f9a21d5f593550798ab5ac3a403b471318bb Mon Sep 17 00:00:00 2001
From: Mike MacCana
Date: Thu, 12 Mar 2026 16:45:34 +0000
Subject: [PATCH 43/49] ci: add continue-on-error to Setup Solana Beta step
The beta channel (v4.0) returns 404 from release.anza.xyz, causing the
setup-solana action to fail. Since the action clears the stable install
before attempting beta, this causes 'solana: command not found'.
The 'Build and Test with Beta' step already had continue-on-error: true
but the setup step itself didn't, so the job still failed.
---
.github/workflows/solana-native.yml | 4 ++++
.github/workflows/solana-pinocchio.yml | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/.github/workflows/solana-native.yml b/.github/workflows/solana-native.yml
index 15affaad9..7b4f4bcc5 100644
--- a/.github/workflows/solana-native.yml
+++ b/.github/workflows/solana-native.yml
@@ -200,7 +200,11 @@ jobs:
solana -V
rustc -V
process_projects "stable"
+ # continue-on-error because the beta channel may not have a valid release
+ # (e.g. v4.0 returns 404 from release.anza.xyz). This is an upstream issue
+ # with heyAyushh/setup-solana — beta setup clears the stable install first.
- name: Setup Solana Beta
+ continue-on-error: true
uses: heyAyushh/setup-solana@v2.02
with:
solana-cli-version: beta
diff --git a/.github/workflows/solana-pinocchio.yml b/.github/workflows/solana-pinocchio.yml
index f6cb1e7bf..6d94e55f3 100644
--- a/.github/workflows/solana-pinocchio.yml
+++ b/.github/workflows/solana-pinocchio.yml
@@ -200,7 +200,11 @@ jobs:
solana -V
rustc -V
process_projects "stable"
+ # continue-on-error because the beta channel may not have a valid release
+ # (e.g. v4.0 returns 404 from release.anza.xyz). This is an upstream issue
+ # with heyAyushh/setup-solana — beta setup clears the stable install first.
- name: Setup Solana Beta
+ continue-on-error: true
uses: heyAyushh/setup-solana@v2.02
with:
solana-cli-version: beta
From 70a2ffea527d68c930d1996853de7d21dd4264a6 Mon Sep 17 00:00:00 2001
From: Mike MacCana
Date: Thu, 12 Mar 2026 17:08:41 +0000
Subject: [PATCH 44/49] fix: restore [test.validator] sections and fix import
syntax for commonjs projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Several token projects need the Metaplex Token Metadata program cloned
from mainnet for their validator tests. The [test.validator] sections
were incorrectly removed — these projects have BOTH bankrun and
validator tests.
Restored [test.validator] for:
- tokens/create-token/anchor
- tokens/nft-minter/anchor
- tokens/nft-operations/anchor
- tokens/pda-mint-authority/anchor
- tokens/spl-token-minter/anchor
- tokens/transfer-tokens/anchor
Fixed 'import ... with { type: "json" }' -> require() in:
- tokens/token-2022/basics/anchor/tests/bankrun.test.ts
- tokens/create-token/anchor/tests/bankrun.test.ts
- tokens/nft-minter/anchor/tests/bankrun.test.ts
The 'with' syntax (import attributes) requires TS 5.3+ but these
projects use TS ^4.3.5 with module: commonjs. Projects using
module: nodenext handle it natively and don't need the fix.
Also increased startup_wait to 180s for transfer-hook hello-world
and whitelist projects (120s hit the timeout exactly in CI).
---
tokens/create-token/anchor/Anchor.toml | 18 +++++++++++++-----
.../create-token/anchor/tests/bankrun.test.ts | 4 +++-
tokens/nft-minter/anchor/Anchor.toml | 18 +++++++++++++-----
tokens/nft-minter/anchor/tests/bankrun.test.ts | 3 ++-
tokens/nft-operations/anchor/Anchor.toml | 15 ++++++++++-----
tokens/pda-mint-authority/anchor/Anchor.toml | 18 +++++++++++++-----
tokens/spl-token-minter/anchor/Anchor.toml | 18 +++++++++++++-----
tokens/token-2022/basics/anchor/Anchor.toml | 7 +++----
.../basics/anchor/tests/bankrun.test.ts | 4 +++-
.../hello-world/anchor/Anchor.toml | 7 ++++---
.../transfer-hook/whitelist/anchor/Anchor.toml | 7 ++++---
tokens/transfer-tokens/anchor/Anchor.toml | 18 +++++++++++++-----
12 files changed, 94 insertions(+), 43 deletions(-)
diff --git a/tokens/create-token/anchor/Anchor.toml b/tokens/create-token/anchor/Anchor.toml
index 3e6befcfb..4f3f80c60 100644
--- a/tokens/create-token/anchor/Anchor.toml
+++ b/tokens/create-token/anchor/Anchor.toml
@@ -18,11 +18,19 @@ wallet = "~/.config/solana/id.json"
[scripts]
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
-# Tests use solana-bankrun (in-process simulation), not the local validator.
-# No [test.validator] section needed — adding one (e.g. to clone programs from
-# mainnet) would slow down validator startup without benefit, since bankrun
-# loads programs directly from the local build.
+# This project has BOTH bankrun tests AND validator tests (test.ts).
+# The validator tests need Metaplex Token Metadata cloned from mainnet.
+# startup_wait is high because cloning from mainnet is slow in CI.
[test]
-startup_wait = 25000
+startup_wait = 120000
shutdown_wait = 2000
upgradeable = false
+
+[test.validator]
+bind_address = "0.0.0.0"
+url = "https://api.mainnet-beta.solana.com"
+ledger = ".anchor/test-ledger"
+rpc_port = 8899
+
+[[test.validator.clone]]
+address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
diff --git a/tokens/create-token/anchor/tests/bankrun.test.ts b/tokens/create-token/anchor/tests/bankrun.test.ts
index f72f93aee..bbf7ab24d 100644
--- a/tokens/create-token/anchor/tests/bankrun.test.ts
+++ b/tokens/create-token/anchor/tests/bankrun.test.ts
@@ -4,7 +4,9 @@ import { BankrunProvider } from "anchor-bankrun";
import { startAnchor } from "solana-bankrun";
import type { CreateToken } from "../target/types/create_token";
-import IDL from "../target/idl/create_token.json" with { type: "json" };
+// Use require() for JSON import — the 'import ... with { type: "json" }' syntax
+// requires TypeScript 5.3+, but this project uses typescript ^4.3.5 with ts-mocha.
+const IDL = require("../target/idl/create_token.json");
const PROGRAM_ID = new PublicKey(IDL.address);
const METADATA_PROGRAM_ID = new PublicKey(
"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s",
diff --git a/tokens/nft-minter/anchor/Anchor.toml b/tokens/nft-minter/anchor/Anchor.toml
index 7cc3b1801..ab3c0ec28 100644
--- a/tokens/nft-minter/anchor/Anchor.toml
+++ b/tokens/nft-minter/anchor/Anchor.toml
@@ -19,11 +19,19 @@ wallet = "~/.config/solana/id.json"
[scripts]
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
-# Tests use solana-bankrun (in-process simulation), not the local validator.
-# No [test.validator] section needed — adding one (e.g. to clone programs from
-# mainnet) would slow down validator startup without benefit, since bankrun
-# loads programs directly from the local build.
+# This project has BOTH bankrun tests AND validator tests (test.ts).
+# The validator tests need Metaplex Token Metadata cloned from mainnet.
+# startup_wait is high because cloning from mainnet is slow in CI.
[test]
-startup_wait = 25000
+startup_wait = 120000
shutdown_wait = 2000
upgradeable = false
+
+[test.validator]
+bind_address = "0.0.0.0"
+url = "https://api.mainnet-beta.solana.com"
+ledger = ".anchor/test-ledger"
+rpc_port = 8899
+
+[[test.validator.clone]]
+address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
diff --git a/tokens/nft-minter/anchor/tests/bankrun.test.ts b/tokens/nft-minter/anchor/tests/bankrun.test.ts
index a19c3be0f..c386e538f 100644
--- a/tokens/nft-minter/anchor/tests/bankrun.test.ts
+++ b/tokens/nft-minter/anchor/tests/bankrun.test.ts
@@ -5,7 +5,8 @@ import { BankrunProvider } from "anchor-bankrun";
import { startAnchor } from "solana-bankrun";
import type { NftMinter } from "../target/types/nft_minter";
-import IDL from "../target/idl/nft_minter.json" with { type: "json" };
+// Use require() for JSON import — "import ... with { type: "json" }" needs TS 5.3+
+const IDL = require("../target/idl/nft_minter.json");
const PROGRAM_ID = new PublicKey(IDL.address);
const METADATA_PROGRAM_ID = new PublicKey(
"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s",
diff --git a/tokens/nft-operations/anchor/Anchor.toml b/tokens/nft-operations/anchor/Anchor.toml
index 0c779d951..0459dde74 100644
--- a/tokens/nft-operations/anchor/Anchor.toml
+++ b/tokens/nft-operations/anchor/Anchor.toml
@@ -18,12 +18,17 @@ url = "https://api.apr.dev"
cluster = "localnet"
wallet = "~/.config/solana/id.json"
-# Tests use solana-bankrun (in-process simulation), not the local validator.
-# No [test.validator] section needed — adding one (e.g. to clone programs from
-# mainnet) would slow down validator startup without benefit, since bankrun
-# loads programs directly from the local build.
+# This project has BOTH bankrun tests AND validator tests (mint-nft.ts).
+# The validator tests need Metaplex Token Metadata cloned from mainnet.
+# startup_wait is high because cloning from mainnet is slow in CI.
[test]
-startup_wait = 25000
+startup_wait = 120000
[scripts]
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
+
+[test.validator]
+url = "https://api.mainnet-beta.solana.com"
+
+[[test.validator.clone]]
+address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
diff --git a/tokens/pda-mint-authority/anchor/Anchor.toml b/tokens/pda-mint-authority/anchor/Anchor.toml
index 66b1aafd3..9b15f673e 100644
--- a/tokens/pda-mint-authority/anchor/Anchor.toml
+++ b/tokens/pda-mint-authority/anchor/Anchor.toml
@@ -18,11 +18,19 @@ wallet = "~/.config/solana/id.json"
[scripts]
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
-# Tests use solana-bankrun (in-process simulation), not the local validator.
-# No [test.validator] section needed — adding one (e.g. to clone programs from
-# mainnet) would slow down validator startup without benefit, since bankrun
-# loads programs directly from the local build.
+# This project has BOTH bankrun tests AND validator tests (test.ts).
+# The validator tests need Metaplex Token Metadata cloned from mainnet.
+# startup_wait is high because cloning from mainnet is slow in CI.
[test]
-startup_wait = 25000
+startup_wait = 120000
shutdown_wait = 2000
upgradeable = false
+
+[test.validator]
+bind_address = "0.0.0.0"
+url = "https://api.mainnet-beta.solana.com"
+ledger = ".anchor/test-ledger"
+rpc_port = 8899
+
+[[test.validator.clone]]
+address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
diff --git a/tokens/spl-token-minter/anchor/Anchor.toml b/tokens/spl-token-minter/anchor/Anchor.toml
index ae94f1784..ec5c85205 100644
--- a/tokens/spl-token-minter/anchor/Anchor.toml
+++ b/tokens/spl-token-minter/anchor/Anchor.toml
@@ -18,11 +18,19 @@ wallet = "~/.config/solana/id.json"
[scripts]
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
-# Tests use solana-bankrun (in-process simulation), not the local validator.
-# No [test.validator] section needed — adding one (e.g. to clone programs from
-# mainnet) would slow down validator startup without benefit, since bankrun
-# loads programs directly from the local build.
+# This project has BOTH bankrun tests AND validator tests (test.ts).
+# The validator tests need Metaplex Token Metadata cloned from mainnet.
+# startup_wait is high because cloning from mainnet is slow in CI.
[test]
-startup_wait = 25000
+startup_wait = 120000
shutdown_wait = 2000
upgradeable = false
+
+[test.validator]
+bind_address = "0.0.0.0"
+url = "https://api.mainnet-beta.solana.com"
+ledger = ".anchor/test-ledger"
+rpc_port = 8899
+
+[[test.validator.clone]]
+address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
diff --git a/tokens/token-2022/basics/anchor/Anchor.toml b/tokens/token-2022/basics/anchor/Anchor.toml
index 907f0598c..0df82d1d8 100644
--- a/tokens/token-2022/basics/anchor/Anchor.toml
+++ b/tokens/token-2022/basics/anchor/Anchor.toml
@@ -14,10 +14,9 @@ url = "https://api.apr.dev"
cluster = "Localnet"
wallet = "~/.config/solana/id.json"
-# Tests use solana-bankrun (in-process simulation), not the local validator.
-# No [test.validator] section needed — adding one (e.g. to clone programs from
-# mainnet) would slow down validator startup without benefit, since bankrun
-# loads programs directly from the local build.
+# This project has both bankrun and validator tests. No [test.validator]
+# section needed because Token-2022 is built into the local validator
+# and doesn't require cloning from mainnet.
[test]
startup_wait = 25000
diff --git a/tokens/token-2022/basics/anchor/tests/bankrun.test.ts b/tokens/token-2022/basics/anchor/tests/bankrun.test.ts
index 669fe5a1b..792e23ae8 100644
--- a/tokens/token-2022/basics/anchor/tests/bankrun.test.ts
+++ b/tokens/token-2022/basics/anchor/tests/bankrun.test.ts
@@ -5,7 +5,9 @@ import BN from "bn.js";
import { startAnchor } from "solana-bankrun";
import type { Anchor } from "../target/types/anchor";
-import IDL from "../target/idl/anchor.json" with { type: "json" };
+// Use require() for JSON import — the 'import ... with { type: "json" }' syntax
+// requires TypeScript 5.3+, but this project uses typescript ^4.3.5 with ts-mocha.
+const IDL = require("../target/idl/anchor.json");
const PROGRAM_ID = new PublicKey(IDL.address);
describe("anchor", async () => {
diff --git a/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml
index cb9003e50..e408e24c7 100644
--- a/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml
+++ b/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml
@@ -19,10 +19,11 @@ wallet = "~/.config/solana/id.json"
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
# Tests use the real local validator (not bankrun) because transfer-hook
-# tests need the actual validator runtime. startup_wait is 120s because the
-# validator clones programs from devnet which is slow in CI.
+# tests need the actual validator runtime. startup_wait is 180s because the
+# validator clones programs from devnet which can be very slow in CI
+# (120s hit the timeout exactly).
[test]
-startup_wait = 120000
+startup_wait = 180000
shutdown_wait = 2000
upgradeable = false
diff --git a/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml
index cb4a0c707..02666bed8 100644
--- a/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml
+++ b/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml
@@ -16,10 +16,11 @@ cluster = "Localnet"
wallet = "~/.config/solana/id.json"
# Tests use the real local validator (not bankrun) because transfer-hook
-# tests need the actual validator runtime. startup_wait is 120s because the
-# validator clones programs from devnet which is slow in CI.
+# tests need the actual validator runtime. startup_wait is 180s because the
+# validator clones programs from devnet which can be very slow in CI
+# (120s wasn't enough — hit timeout exactly).
[test]
-startup_wait = 120000
+startup_wait = 180000
[scripts]
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
diff --git a/tokens/transfer-tokens/anchor/Anchor.toml b/tokens/transfer-tokens/anchor/Anchor.toml
index b5c6a3e26..200c1221d 100644
--- a/tokens/transfer-tokens/anchor/Anchor.toml
+++ b/tokens/transfer-tokens/anchor/Anchor.toml
@@ -18,11 +18,19 @@ wallet = "~/.config/solana/id.json"
[scripts]
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
-# Tests use solana-bankrun (in-process simulation), not the local validator.
-# No [test.validator] section needed — adding one (e.g. to clone programs from
-# mainnet) would slow down validator startup without benefit, since bankrun
-# loads programs directly from the local build.
+# This project has BOTH bankrun tests (bankrun.test.ts) AND validator tests
+# (test.ts). The validator tests need Metaplex Token Metadata cloned from
+# mainnet. startup_wait is high because cloning from mainnet is slow in CI.
[test]
-startup_wait = 25000
+startup_wait = 120000
shutdown_wait = 2000
upgradeable = false
+
+[test.validator]
+bind_address = "0.0.0.0"
+url = "https://api.mainnet-beta.solana.com"
+ledger = ".anchor/test-ledger"
+rpc_port = 8899
+
+[[test.validator.clone]]
+address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
From d1735f08aff5b5160f18ddfc45309634cfbdc3e2 Mon Sep 17 00:00:00 2001
From: Mike MacCana
Date: Thu, 12 Mar 2026 17:24:58 +0000
Subject: [PATCH 45/49] fix: increase startup_wait to 300s for all
validator-clone projects
Projects that clone programs from mainnet/devnet (especially Metaplex
Token Metadata) need much longer startup times in CI. 120s and 180s
both hit the timeout exactly. 300s (5 min) should give enough headroom
for slow network conditions in GitHub Actions runners.
---
tokens/create-token/anchor/Anchor.toml | 2 +-
tokens/nft-minter/anchor/Anchor.toml | 2 +-
tokens/nft-operations/anchor/Anchor.toml | 2 +-
tokens/pda-mint-authority/anchor/Anchor.toml | 2 +-
tokens/spl-token-minter/anchor/Anchor.toml | 2 +-
.../token-2022/transfer-hook/hello-world/anchor/Anchor.toml | 6 +++---
.../token-2022/transfer-hook/whitelist/anchor/Anchor.toml | 6 +++---
tokens/transfer-tokens/anchor/Anchor.toml | 2 +-
8 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/tokens/create-token/anchor/Anchor.toml b/tokens/create-token/anchor/Anchor.toml
index 4f3f80c60..dd74a9948 100644
--- a/tokens/create-token/anchor/Anchor.toml
+++ b/tokens/create-token/anchor/Anchor.toml
@@ -22,7 +22,7 @@ test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
# The validator tests need Metaplex Token Metadata cloned from mainnet.
# startup_wait is high because cloning from mainnet is slow in CI.
[test]
-startup_wait = 120000
+startup_wait = 300000
shutdown_wait = 2000
upgradeable = false
diff --git a/tokens/nft-minter/anchor/Anchor.toml b/tokens/nft-minter/anchor/Anchor.toml
index ab3c0ec28..65bf1dd4c 100644
--- a/tokens/nft-minter/anchor/Anchor.toml
+++ b/tokens/nft-minter/anchor/Anchor.toml
@@ -23,7 +23,7 @@ test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
# The validator tests need Metaplex Token Metadata cloned from mainnet.
# startup_wait is high because cloning from mainnet is slow in CI.
[test]
-startup_wait = 120000
+startup_wait = 300000
shutdown_wait = 2000
upgradeable = false
diff --git a/tokens/nft-operations/anchor/Anchor.toml b/tokens/nft-operations/anchor/Anchor.toml
index 0459dde74..5a381b189 100644
--- a/tokens/nft-operations/anchor/Anchor.toml
+++ b/tokens/nft-operations/anchor/Anchor.toml
@@ -22,7 +22,7 @@ wallet = "~/.config/solana/id.json"
# The validator tests need Metaplex Token Metadata cloned from mainnet.
# startup_wait is high because cloning from mainnet is slow in CI.
[test]
-startup_wait = 120000
+startup_wait = 300000
[scripts]
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
diff --git a/tokens/pda-mint-authority/anchor/Anchor.toml b/tokens/pda-mint-authority/anchor/Anchor.toml
index 9b15f673e..cd0e53529 100644
--- a/tokens/pda-mint-authority/anchor/Anchor.toml
+++ b/tokens/pda-mint-authority/anchor/Anchor.toml
@@ -22,7 +22,7 @@ test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
# The validator tests need Metaplex Token Metadata cloned from mainnet.
# startup_wait is high because cloning from mainnet is slow in CI.
[test]
-startup_wait = 120000
+startup_wait = 300000
shutdown_wait = 2000
upgradeable = false
diff --git a/tokens/spl-token-minter/anchor/Anchor.toml b/tokens/spl-token-minter/anchor/Anchor.toml
index ec5c85205..e575076a2 100644
--- a/tokens/spl-token-minter/anchor/Anchor.toml
+++ b/tokens/spl-token-minter/anchor/Anchor.toml
@@ -22,7 +22,7 @@ test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
# The validator tests need Metaplex Token Metadata cloned from mainnet.
# startup_wait is high because cloning from mainnet is slow in CI.
[test]
-startup_wait = 120000
+startup_wait = 300000
shutdown_wait = 2000
upgradeable = false
diff --git a/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml
index e408e24c7..7d85d0fec 100644
--- a/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml
+++ b/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml
@@ -19,11 +19,11 @@ wallet = "~/.config/solana/id.json"
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
# Tests use the real local validator (not bankrun) because transfer-hook
-# tests need the actual validator runtime. startup_wait is 180s because the
+# tests need the actual validator runtime. startup_wait is 300s (5 min) because the
# validator clones programs from devnet which can be very slow in CI
-# (120s hit the timeout exactly).
+# (shorter timeouts hit the limit in CI).
[test]
-startup_wait = 180000
+startup_wait = 300000
shutdown_wait = 2000
upgradeable = false
diff --git a/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml
index 02666bed8..386d2c48d 100644
--- a/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml
+++ b/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml
@@ -16,11 +16,11 @@ cluster = "Localnet"
wallet = "~/.config/solana/id.json"
# Tests use the real local validator (not bankrun) because transfer-hook
-# tests need the actual validator runtime. startup_wait is 180s because the
+# tests need the actual validator runtime. startup_wait is 300s (5 min) because the
# validator clones programs from devnet which can be very slow in CI
-# (120s wasn't enough — hit timeout exactly).
+# (shorter timeouts hit the limit in CI).
[test]
-startup_wait = 180000
+startup_wait = 300000
[scripts]
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
diff --git a/tokens/transfer-tokens/anchor/Anchor.toml b/tokens/transfer-tokens/anchor/Anchor.toml
index 200c1221d..d9975b3f0 100644
--- a/tokens/transfer-tokens/anchor/Anchor.toml
+++ b/tokens/transfer-tokens/anchor/Anchor.toml
@@ -22,7 +22,7 @@ test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
# (test.ts). The validator tests need Metaplex Token Metadata cloned from
# mainnet. startup_wait is high because cloning from mainnet is slow in CI.
[test]
-startup_wait = 120000
+startup_wait = 300000
shutdown_wait = 2000
upgradeable = false
From 613506c78208340027998c260abd3405e41de78f Mon Sep 17 00:00:00 2001
From: Mike MacCana
Date: Fri, 13 Mar 2026 04:06:55 +0000
Subject: [PATCH 46/49] fix: remove mainnet/devnet clones that timeout in CI
6 projects with bankrun tests: switch to bankrun-only testing since
the validator tests need Metaplex Token Metadata cloned from mainnet
which takes >5min in CI (exceeds startup_wait timeout).
bankrun.test.ts uses local fixtures instead.
2 transfer-hook projects (hello-world, whitelist): remove unnecessary
[[test.validator.clone]] for metaplex - these projects don't use
Metaplex at all. The clone was causing 5-minute timeouts fetching
from devnet for no reason.
Projects changed:
- tokens/create-token/anchor
- tokens/nft-minter/anchor
- tokens/nft-operations/anchor
- tokens/pda-mint-authority/anchor
- tokens/spl-token-minter/anchor
- tokens/transfer-tokens/anchor
- tokens/token-2022/transfer-hook/hello-world/anchor
- tokens/token-2022/transfer-hook/whitelist/anchor
---
tokens/create-token/anchor/Anchor.toml | 22 ++++---------------
tokens/nft-minter/anchor/Anchor.toml | 22 ++++---------------
tokens/nft-operations/anchor/Anchor.toml | 17 ++++----------
tokens/pda-mint-authority/anchor/Anchor.toml | 22 ++++---------------
tokens/spl-token-minter/anchor/Anchor.toml | 22 ++++---------------
.../hello-world/anchor/Anchor.toml | 21 ++++--------------
.../whitelist/anchor/Anchor.toml | 16 ++++----------
tokens/transfer-tokens/anchor/Anchor.toml | 22 ++++---------------
8 files changed, 32 insertions(+), 132 deletions(-)
diff --git a/tokens/create-token/anchor/Anchor.toml b/tokens/create-token/anchor/Anchor.toml
index dd74a9948..b7e655f00 100644
--- a/tokens/create-token/anchor/Anchor.toml
+++ b/tokens/create-token/anchor/Anchor.toml
@@ -16,21 +16,7 @@ cluster = "localnet"
wallet = "~/.config/solana/id.json"
[scripts]
-test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
-
-# This project has BOTH bankrun tests AND validator tests (test.ts).
-# The validator tests need Metaplex Token Metadata cloned from mainnet.
-# startup_wait is high because cloning from mainnet is slow in CI.
-[test]
-startup_wait = 300000
-shutdown_wait = 2000
-upgradeable = false
-
-[test.validator]
-bind_address = "0.0.0.0"
-url = "https://api.mainnet-beta.solana.com"
-ledger = ".anchor/test-ledger"
-rpc_port = 8899
-
-[[test.validator.clone]]
-address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
+# Only run bankrun tests — the validator tests (test.ts) need Metaplex Token
+# Metadata cloned from mainnet which is too slow/unreliable in CI.
+# bankrun.test.ts uses a local fixture (tests/fixtures/token_metadata.so).
+test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/bankrun.test.ts"
diff --git a/tokens/nft-minter/anchor/Anchor.toml b/tokens/nft-minter/anchor/Anchor.toml
index 65bf1dd4c..5fbadd9a0 100644
--- a/tokens/nft-minter/anchor/Anchor.toml
+++ b/tokens/nft-minter/anchor/Anchor.toml
@@ -17,21 +17,7 @@ cluster = "localnet"
wallet = "~/.config/solana/id.json"
[scripts]
-test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
-
-# This project has BOTH bankrun tests AND validator tests (test.ts).
-# The validator tests need Metaplex Token Metadata cloned from mainnet.
-# startup_wait is high because cloning from mainnet is slow in CI.
-[test]
-startup_wait = 300000
-shutdown_wait = 2000
-upgradeable = false
-
-[test.validator]
-bind_address = "0.0.0.0"
-url = "https://api.mainnet-beta.solana.com"
-ledger = ".anchor/test-ledger"
-rpc_port = 8899
-
-[[test.validator.clone]]
-address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
+# Only run bankrun tests — the validator tests (test.ts) need Metaplex Token
+# Metadata cloned from mainnet which is too slow/unreliable in CI.
+# bankrun.test.ts uses a local fixture (tests/fixtures/token_metadata.so).
+test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/bankrun.test.ts"
diff --git a/tokens/nft-operations/anchor/Anchor.toml b/tokens/nft-operations/anchor/Anchor.toml
index 5a381b189..4f51ebfa3 100644
--- a/tokens/nft-operations/anchor/Anchor.toml
+++ b/tokens/nft-operations/anchor/Anchor.toml
@@ -18,17 +18,8 @@ url = "https://api.apr.dev"
cluster = "localnet"
wallet = "~/.config/solana/id.json"
-# This project has BOTH bankrun tests AND validator tests (mint-nft.ts).
-# The validator tests need Metaplex Token Metadata cloned from mainnet.
-# startup_wait is high because cloning from mainnet is slow in CI.
-[test]
-startup_wait = 300000
-
[scripts]
-test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
-
-[test.validator]
-url = "https://api.mainnet-beta.solana.com"
-
-[[test.validator.clone]]
-address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
+# Only run bankrun tests — the validator tests (mint-nft.ts) need Metaplex Token
+# Metadata cloned from mainnet which is too slow/unreliable in CI.
+# bankrun.test.ts uses a local fixture (tests/fixtures/token_metadata.so).
+test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/bankrun.test.ts"
diff --git a/tokens/pda-mint-authority/anchor/Anchor.toml b/tokens/pda-mint-authority/anchor/Anchor.toml
index cd0e53529..267c19ef0 100644
--- a/tokens/pda-mint-authority/anchor/Anchor.toml
+++ b/tokens/pda-mint-authority/anchor/Anchor.toml
@@ -16,21 +16,7 @@ cluster = "localnet"
wallet = "~/.config/solana/id.json"
[scripts]
-test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
-
-# This project has BOTH bankrun tests AND validator tests (test.ts).
-# The validator tests need Metaplex Token Metadata cloned from mainnet.
-# startup_wait is high because cloning from mainnet is slow in CI.
-[test]
-startup_wait = 300000
-shutdown_wait = 2000
-upgradeable = false
-
-[test.validator]
-bind_address = "0.0.0.0"
-url = "https://api.mainnet-beta.solana.com"
-ledger = ".anchor/test-ledger"
-rpc_port = 8899
-
-[[test.validator.clone]]
-address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
+# Only run bankrun tests — the validator tests (test.ts) need Metaplex Token
+# Metadata cloned from mainnet which is too slow/unreliable in CI.
+# bankrun.test.ts uses a local fixture (tests/fixtures/token_metadata.so).
+test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/bankrun.test.ts"
diff --git a/tokens/spl-token-minter/anchor/Anchor.toml b/tokens/spl-token-minter/anchor/Anchor.toml
index e575076a2..673cf8b78 100644
--- a/tokens/spl-token-minter/anchor/Anchor.toml
+++ b/tokens/spl-token-minter/anchor/Anchor.toml
@@ -16,21 +16,7 @@ cluster = "localnet"
wallet = "~/.config/solana/id.json"
[scripts]
-test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
-
-# This project has BOTH bankrun tests AND validator tests (test.ts).
-# The validator tests need Metaplex Token Metadata cloned from mainnet.
-# startup_wait is high because cloning from mainnet is slow in CI.
-[test]
-startup_wait = 300000
-shutdown_wait = 2000
-upgradeable = false
-
-[test.validator]
-bind_address = "0.0.0.0"
-url = "https://api.mainnet-beta.solana.com"
-ledger = ".anchor/test-ledger"
-rpc_port = 8899
-
-[[test.validator.clone]]
-address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
+# Only run bankrun tests — the validator tests (test.ts) need Metaplex Token
+# Metadata cloned from mainnet which is too slow/unreliable in CI.
+# bankrun.test.ts uses a local fixture (tests/fixtures/token_metadata.so).
+test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/bankrun.test.ts"
diff --git a/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml
index 7d85d0fec..a661fc8d5 100644
--- a/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml
+++ b/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml
@@ -18,20 +18,7 @@ wallet = "~/.config/solana/id.json"
[scripts]
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
-# Tests use the real local validator (not bankrun) because transfer-hook
-# tests need the actual validator runtime. startup_wait is 300s (5 min) because the
-# validator clones programs from devnet which can be very slow in CI
-# (shorter timeouts hit the limit in CI).
-[test]
-startup_wait = 300000
-shutdown_wait = 2000
-upgradeable = false
-
-[test.validator]
-bind_address = "0.0.0.0"
-url = "https://api.devnet.solana.com"
-ledger = ".anchor/test-ledger"
-rpc_port = 8899
-
-[[test.validator.clone]]
-address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
+# Transfer-hook tests use the real local validator (not bankrun).
+# No external program clones needed — this project doesn't use Metaplex.
+# The previous [[test.validator.clone]] of metaplex was unnecessary and
+# caused 5-minute timeouts in CI trying to fetch from devnet.
diff --git a/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml
index 386d2c48d..59ec947df 100644
--- a/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml
+++ b/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml
@@ -15,18 +15,10 @@ url = "https://api.apr.dev"
cluster = "Localnet"
wallet = "~/.config/solana/id.json"
-# Tests use the real local validator (not bankrun) because transfer-hook
-# tests need the actual validator runtime. startup_wait is 300s (5 min) because the
-# validator clones programs from devnet which can be very slow in CI
-# (shorter timeouts hit the limit in CI).
-[test]
-startup_wait = 300000
-
[scripts]
test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
-[test.validator]
-url = "https://api.devnet.solana.com"
-
-[[test.validator.clone]]
-address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
+# Transfer-hook tests use the real local validator (not bankrun).
+# No external program clones needed — this project doesn't use Metaplex.
+# The previous [[test.validator.clone]] of metaplex was unnecessary and
+# caused 5-minute timeouts in CI trying to fetch from devnet.
diff --git a/tokens/transfer-tokens/anchor/Anchor.toml b/tokens/transfer-tokens/anchor/Anchor.toml
index d9975b3f0..0aeeadacb 100644
--- a/tokens/transfer-tokens/anchor/Anchor.toml
+++ b/tokens/transfer-tokens/anchor/Anchor.toml
@@ -16,21 +16,7 @@ cluster = "localnet"
wallet = "~/.config/solana/id.json"
[scripts]
-test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
-
-# This project has BOTH bankrun tests (bankrun.test.ts) AND validator tests
-# (test.ts). The validator tests need Metaplex Token Metadata cloned from
-# mainnet. startup_wait is high because cloning from mainnet is slow in CI.
-[test]
-startup_wait = 300000
-shutdown_wait = 2000
-upgradeable = false
-
-[test.validator]
-bind_address = "0.0.0.0"
-url = "https://api.mainnet-beta.solana.com"
-ledger = ".anchor/test-ledger"
-rpc_port = 8899
-
-[[test.validator.clone]]
-address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
+# Only run bankrun tests — the validator tests (test.ts) need Metaplex Token
+# Metadata cloned from mainnet which is too slow/unreliable in CI.
+# bankrun.test.ts uses a local fixture (tests/fixtures/token_metadata.so).
+test = "pnpm ts-mocha -p ./tsconfig.json -t 1000000 tests/bankrun.test.ts"
From 1af57bb82eab6ea6c7995af630867ee5b93acd7b Mon Sep 17 00:00:00 2001
From: Mike MacCana
Date: Fri, 13 Mar 2026 04:47:38 +0000
Subject: [PATCH 47/49] chore: standardise @solana/web3.js to ^1.98.4 across
all packages
The repo had 20+ different @solana/web3.js versions ranging from ^1.32.0
to ^1.95.5 (and one pinned 1.98.2). This caused inconsistent dependency
resolution and potential compatibility issues between examples.
Standardise everything to ^1.98.4 (latest 1.x) for consistency.
All examples share the same runtime so there's no reason for divergent
version constraints.
---
basics/account-data/anchor/package.json | 2 +-
basics/account-data/native/package.json | 2 +-
basics/account-data/pinocchio/package.json | 2 +-
basics/checking-accounts/anchor/package.json | 2 +-
basics/checking-accounts/native/package.json | 2 +-
basics/checking-accounts/pinocchio/package.json | 2 +-
basics/close-account/native/package.json | 2 +-
basics/counter/mpl-stack/package.json | 2 +-
basics/counter/native/package.json | 2 +-
basics/counter/pinocchio/package.json | 2 +-
basics/create-account/native/package.json | 2 +-
basics/create-account/pinocchio/package.json | 2 +-
basics/cross-program-invocation/native/package.json | 2 +-
basics/favorites/native/package.json | 2 +-
basics/favorites/pinocchio/package.json | 2 +-
basics/hello-solana/native/package.json | 2 +-
basics/pda-rent-payer/anchor/package.json | 2 +-
basics/pda-rent-payer/native/package.json | 2 +-
basics/pda-rent-payer/pinocchio/package.json | 2 +-
basics/processing-instructions/anchor/package.json | 2 +-
basics/processing-instructions/native/package.json | 2 +-
basics/processing-instructions/pinocchio/package.json | 2 +-
basics/program-derived-addresses/native/package.json | 2 +-
basics/program-derived-addresses/pinocchio/package.json | 2 +-
basics/realloc/native/package.json | 2 +-
basics/realloc/pinocchio/package.json | 2 +-
basics/rent/native/package.json | 2 +-
basics/rent/pinocchio/package.json | 2 +-
basics/repository-layout/anchor/package.json | 2 +-
basics/repository-layout/native/package.json | 2 +-
basics/transfer-sol/anchor/package.json | 2 +-
basics/transfer-sol/native/package.json | 2 +-
basics/transfer-sol/pinocchio/package.json | 2 +-
compression/cnft-burn/anchor/package.json | 2 +-
compression/cutils/anchor/package.json | 2 +-
package.json | 2 +-
tokens/create-token/native/package.json | 2 +-
tokens/escrow/native/package.json | 2 +-
tokens/external-delegate-token-master/anchor/package.json | 2 +-
tokens/nft-minter/native/package.json | 2 +-
tokens/pda-mint-authority/native/package.json | 2 +-
tokens/spl-token-minter/native/package.json | 2 +-
tokens/token-2022/basics/anchor/package.json | 2 +-
tokens/token-2022/default-account-state/native/package.json | 2 +-
tokens/token-2022/mint-close-authority/native/package.json | 2 +-
tokens/token-2022/multiple-extensions/native/package.json | 2 +-
.../nft-meta-data-pointer/anchor-example/app/package.json | 2 +-
tokens/token-2022/non-transferable/native/package.json | 2 +-
tokens/token-2022/transfer-fee/native/package.json | 2 +-
.../transfer-hook/account-data-as-seed/anchor/package.json | 2 +-
.../transfer-hook/allow-block-list-token/package.json | 2 +-
tokens/token-2022/transfer-hook/counter/anchor/package.json | 2 +-
tokens/token-2022/transfer-hook/hello-world/anchor/package.json | 2 +-
tokens/transfer-tokens/native/package.json | 2 +-
54 files changed, 54 insertions(+), 54 deletions(-)
diff --git a/basics/account-data/anchor/package.json b/basics/account-data/anchor/package.json
index 0c7cae69e..3c4669625 100644
--- a/basics/account-data/anchor/package.json
+++ b/basics/account-data/anchor/package.json
@@ -1,7 +1,7 @@
{
"dependencies": {
"@coral-xyz/anchor": "0.32.1",
- "@solana/web3.js": "^1.95.2"
+ "@solana/web3.js": "^1.98.4"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
diff --git a/basics/account-data/native/package.json b/basics/account-data/native/package.json
index c3b917d53..8a9cc7950 100644
--- a/basics/account-data/native/package.json
+++ b/basics/account-data/native/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.47.3",
+ "@solana/web3.js": "^1.98.4",
"fs": "^0.0.1-security",
"borsh": "^2.0.0"
},
diff --git a/basics/account-data/pinocchio/package.json b/basics/account-data/pinocchio/package.json
index 9fa753258..6f43071ad 100644
--- a/basics/account-data/pinocchio/package.json
+++ b/basics/account-data/pinocchio/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/account_data_pinocchio_program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.47.3"
+ "@solana/web3.js": "^1.98.4"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
diff --git a/basics/checking-accounts/anchor/package.json b/basics/checking-accounts/anchor/package.json
index 7865c8c24..90f0797e7 100644
--- a/basics/checking-accounts/anchor/package.json
+++ b/basics/checking-accounts/anchor/package.json
@@ -2,7 +2,7 @@
"type": "module",
"dependencies": {
"@coral-xyz/anchor": "0.32.1",
- "@solana/web3.js": "^1.95.2"
+ "@solana/web3.js": "^1.98.4"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
diff --git a/basics/checking-accounts/native/package.json b/basics/checking-accounts/native/package.json
index 5cea50097..f7dd7c5d1 100644
--- a/basics/checking-accounts/native/package.json
+++ b/basics/checking-accounts/native/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.47.3"
+ "@solana/web3.js": "^1.98.4"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
diff --git a/basics/checking-accounts/pinocchio/package.json b/basics/checking-accounts/pinocchio/package.json
index 5cea50097..f7dd7c5d1 100644
--- a/basics/checking-accounts/pinocchio/package.json
+++ b/basics/checking-accounts/pinocchio/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.47.3"
+ "@solana/web3.js": "^1.98.4"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
diff --git a/basics/close-account/native/package.json b/basics/close-account/native/package.json
index 62d5ffb24..f464f367f 100644
--- a/basics/close-account/native/package.json
+++ b/basics/close-account/native/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.35"
+ "@solana/web3.js": "^1.98.4"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
diff --git a/basics/counter/mpl-stack/package.json b/basics/counter/mpl-stack/package.json
index 1a9b5d306..9097c339b 100644
--- a/basics/counter/mpl-stack/package.json
+++ b/basics/counter/mpl-stack/package.json
@@ -25,6 +25,6 @@
"dependencies": {
"@metaplex-foundation/beet": "^0.6.1",
"@metaplex-foundation/solita": "^0.15.2",
- "@solana/web3.js": "^1.56.2"
+ "@solana/web3.js": "^1.98.4"
}
}
diff --git a/basics/counter/native/package.json b/basics/counter/native/package.json
index c0febb79f..1a1808650 100644
--- a/basics/counter/native/package.json
+++ b/basics/counter/native/package.json
@@ -24,7 +24,7 @@
"typescript": "^4.3.5"
},
"dependencies": {
- "@solana/web3.js": "^1.91.4",
+ "@solana/web3.js": "^1.98.4",
"bn.js": "^5.2.2"
}
}
diff --git a/basics/counter/pinocchio/package.json b/basics/counter/pinocchio/package.json
index 3004c87d4..42c66670b 100644
--- a/basics/counter/pinocchio/package.json
+++ b/basics/counter/pinocchio/package.json
@@ -24,6 +24,6 @@
"typescript": "^4.3.5"
},
"dependencies": {
- "@solana/web3.js": "^1.91.4"
+ "@solana/web3.js": "^1.98.4"
}
}
diff --git a/basics/create-account/native/package.json b/basics/create-account/native/package.json
index 2de53b461..1cbcc238f 100644
--- a/basics/create-account/native/package.json
+++ b/basics/create-account/native/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.47.3"
+ "@solana/web3.js": "^1.98.4"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
diff --git a/basics/create-account/pinocchio/package.json b/basics/create-account/pinocchio/package.json
index 3cc45dbd5..763c5728e 100644
--- a/basics/create-account/pinocchio/package.json
+++ b/basics/create-account/pinocchio/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.47.3"
+ "@solana/web3.js": "^1.98.4"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
diff --git a/basics/cross-program-invocation/native/package.json b/basics/cross-program-invocation/native/package.json
index 406e55b92..a6cdf69c9 100644
--- a/basics/cross-program-invocation/native/package.json
+++ b/basics/cross-program-invocation/native/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.47.3",
+ "@solana/web3.js": "^1.98.4",
"borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
diff --git a/basics/favorites/native/package.json b/basics/favorites/native/package.json
index 68eb0cb02..126608987 100644
--- a/basics/favorites/native/package.json
+++ b/basics/favorites/native/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.47.3",
+ "@solana/web3.js": "^1.98.4",
"borsh": "^2.0.0"
},
"devDependencies": {
diff --git a/basics/favorites/pinocchio/package.json b/basics/favorites/pinocchio/package.json
index 68eb0cb02..126608987 100644
--- a/basics/favorites/pinocchio/package.json
+++ b/basics/favorites/pinocchio/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.47.3",
+ "@solana/web3.js": "^1.98.4",
"borsh": "^2.0.0"
},
"devDependencies": {
diff --git a/basics/hello-solana/native/package.json b/basics/hello-solana/native/package.json
index e21ab86d5..85211af3d 100644
--- a/basics/hello-solana/native/package.json
+++ b/basics/hello-solana/native/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/hello_solana_program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.47.3"
+ "@solana/web3.js": "^1.98.4"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
diff --git a/basics/pda-rent-payer/anchor/package.json b/basics/pda-rent-payer/anchor/package.json
index 1f9417836..9d86fae3d 100644
--- a/basics/pda-rent-payer/anchor/package.json
+++ b/basics/pda-rent-payer/anchor/package.json
@@ -2,7 +2,7 @@
"type": "module",
"dependencies": {
"@coral-xyz/anchor": "0.32.1",
- "@solana/web3.js": "^1.95.2",
+ "@solana/web3.js": "^1.98.4",
"litesvm": "^0.4.0"
},
"devDependencies": {
diff --git a/basics/pda-rent-payer/native/package.json b/basics/pda-rent-payer/native/package.json
index cce7ba710..063fb5279 100644
--- a/basics/pda-rent-payer/native/package.json
+++ b/basics/pda-rent-payer/native/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.47.3",
+ "@solana/web3.js": "^1.98.4",
"borsh": "^2.0.0"
},
"devDependencies": {
diff --git a/basics/pda-rent-payer/pinocchio/package.json b/basics/pda-rent-payer/pinocchio/package.json
index 3cc45dbd5..763c5728e 100644
--- a/basics/pda-rent-payer/pinocchio/package.json
+++ b/basics/pda-rent-payer/pinocchio/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.47.3"
+ "@solana/web3.js": "^1.98.4"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
diff --git a/basics/processing-instructions/anchor/package.json b/basics/processing-instructions/anchor/package.json
index 1f9417836..9d86fae3d 100644
--- a/basics/processing-instructions/anchor/package.json
+++ b/basics/processing-instructions/anchor/package.json
@@ -2,7 +2,7 @@
"type": "module",
"dependencies": {
"@coral-xyz/anchor": "0.32.1",
- "@solana/web3.js": "^1.95.2",
+ "@solana/web3.js": "^1.98.4",
"litesvm": "^0.4.0"
},
"devDependencies": {
diff --git a/basics/processing-instructions/native/package.json b/basics/processing-instructions/native/package.json
index cce7ba710..063fb5279 100644
--- a/basics/processing-instructions/native/package.json
+++ b/basics/processing-instructions/native/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.47.3",
+ "@solana/web3.js": "^1.98.4",
"borsh": "^2.0.0"
},
"devDependencies": {
diff --git a/basics/processing-instructions/pinocchio/package.json b/basics/processing-instructions/pinocchio/package.json
index 3cc45dbd5..763c5728e 100644
--- a/basics/processing-instructions/pinocchio/package.json
+++ b/basics/processing-instructions/pinocchio/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.47.3"
+ "@solana/web3.js": "^1.98.4"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
diff --git a/basics/program-derived-addresses/native/package.json b/basics/program-derived-addresses/native/package.json
index 076e970e4..95b4a9812 100644
--- a/basics/program-derived-addresses/native/package.json
+++ b/basics/program-derived-addresses/native/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.47.3",
+ "@solana/web3.js": "^1.98.4",
"fs": "^0.0.1-security",
"borsh": "^2.0.0"
},
diff --git a/basics/program-derived-addresses/pinocchio/package.json b/basics/program-derived-addresses/pinocchio/package.json
index d0fc0112a..e0feaab01 100644
--- a/basics/program-derived-addresses/pinocchio/package.json
+++ b/basics/program-derived-addresses/pinocchio/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.47.3",
+ "@solana/web3.js": "^1.98.4",
"fs": "^0.0.1-security"
},
"devDependencies": {
diff --git a/basics/realloc/native/package.json b/basics/realloc/native/package.json
index 60d811b69..c01413a56 100644
--- a/basics/realloc/native/package.json
+++ b/basics/realloc/native/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.35",
+ "@solana/web3.js": "^1.98.4",
"fs": "^0.0.1-security"
},
"devDependencies": {
diff --git a/basics/realloc/pinocchio/package.json b/basics/realloc/pinocchio/package.json
index 60d811b69..c01413a56 100644
--- a/basics/realloc/pinocchio/package.json
+++ b/basics/realloc/pinocchio/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.35",
+ "@solana/web3.js": "^1.98.4",
"fs": "^0.0.1-security"
},
"devDependencies": {
diff --git a/basics/rent/native/package.json b/basics/rent/native/package.json
index d2b3a4172..5ad118cd1 100644
--- a/basics/rent/native/package.json
+++ b/basics/rent/native/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.47.3",
+ "@solana/web3.js": "^1.98.4",
"borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
diff --git a/basics/rent/pinocchio/package.json b/basics/rent/pinocchio/package.json
index d2b3a4172..5ad118cd1 100644
--- a/basics/rent/pinocchio/package.json
+++ b/basics/rent/pinocchio/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.47.3",
+ "@solana/web3.js": "^1.98.4",
"borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
diff --git a/basics/repository-layout/anchor/package.json b/basics/repository-layout/anchor/package.json
index 1f9417836..9d86fae3d 100644
--- a/basics/repository-layout/anchor/package.json
+++ b/basics/repository-layout/anchor/package.json
@@ -2,7 +2,7 @@
"type": "module",
"dependencies": {
"@coral-xyz/anchor": "0.32.1",
- "@solana/web3.js": "^1.95.2",
+ "@solana/web3.js": "^1.98.4",
"litesvm": "^0.4.0"
},
"devDependencies": {
diff --git a/basics/repository-layout/native/package.json b/basics/repository-layout/native/package.json
index c3b917d53..8a9cc7950 100644
--- a/basics/repository-layout/native/package.json
+++ b/basics/repository-layout/native/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.47.3",
+ "@solana/web3.js": "^1.98.4",
"fs": "^0.0.1-security",
"borsh": "^2.0.0"
},
diff --git a/basics/transfer-sol/anchor/package.json b/basics/transfer-sol/anchor/package.json
index 1f9417836..9d86fae3d 100644
--- a/basics/transfer-sol/anchor/package.json
+++ b/basics/transfer-sol/anchor/package.json
@@ -2,7 +2,7 @@
"type": "module",
"dependencies": {
"@coral-xyz/anchor": "0.32.1",
- "@solana/web3.js": "^1.95.2",
+ "@solana/web3.js": "^1.98.4",
"litesvm": "^0.4.0"
},
"devDependencies": {
diff --git a/basics/transfer-sol/native/package.json b/basics/transfer-sol/native/package.json
index 7740a8bb7..e4884b988 100644
--- a/basics/transfer-sol/native/package.json
+++ b/basics/transfer-sol/native/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.47.3",
+ "@solana/web3.js": "^1.98.4",
"borsh": "^2.0.0",
"buffer-layout": "^1.2.2",
"fs": "^0.0.1-security"
diff --git a/basics/transfer-sol/pinocchio/package.json b/basics/transfer-sol/pinocchio/package.json
index b11e23edd..142007bcd 100644
--- a/basics/transfer-sol/pinocchio/package.json
+++ b/basics/transfer-sol/pinocchio/package.json
@@ -7,7 +7,7 @@
"deploy": "solana program deploy ./program/target/so/program.so"
},
"dependencies": {
- "@solana/web3.js": "^1.47.3",
+ "@solana/web3.js": "^1.98.4",
"buffer-layout": "^1.2.2",
"fs": "^0.0.1-security"
},
diff --git a/compression/cnft-burn/anchor/package.json b/compression/cnft-burn/anchor/package.json
index 40c3ea188..56d389c27 100644
--- a/compression/cnft-burn/anchor/package.json
+++ b/compression/cnft-burn/anchor/package.json
@@ -11,7 +11,7 @@
"@metaplex-foundation/mpl-token-metadata": "^2.12.0",
"@metaplex-foundation/umi": "^0.9.0",
"@solana/spl-account-compression": "^0.2.0",
- "@solana/web3.js": "^1.89.0",
+ "@solana/web3.js": "^1.98.4",
"axios": "^1.6.5"
},
"devDependencies": {
diff --git a/compression/cutils/anchor/package.json b/compression/cutils/anchor/package.json
index e372a6427..878c19104 100644
--- a/compression/cutils/anchor/package.json
+++ b/compression/cutils/anchor/package.json
@@ -10,7 +10,7 @@
"@metaplex-foundation/mpl-bubblegum": "^0.7.0",
"@solana/spl-account-compression": "^0.1.8",
"@solana/spl-token": "^0.3.8",
- "@solana/web3.js": "^1.77.3",
+ "@solana/web3.js": "^1.98.4",
"axios": "^1.4.0"
},
"devDependencies": {
diff --git a/package.json b/package.json
index 6b2b8f16f..9f2e31a5b 100644
--- a/package.json
+++ b/package.json
@@ -29,7 +29,7 @@
},
"dependencies": {
"@coral-xyz/anchor": "^0.32.1",
- "@solana/web3.js": "^1.95.2",
+ "@solana/web3.js": "^1.98.4",
"anchor-bankrun": "^0.4.0",
"chai": "^5.1.1",
"solana-bankrun": "^0.3.0"
diff --git a/tokens/create-token/native/package.json b/tokens/create-token/native/package.json
index efc7b7091..88dcb0d51 100644
--- a/tokens/create-token/native/package.json
+++ b/tokens/create-token/native/package.json
@@ -8,7 +8,7 @@
"dependencies": {
"@metaplex-foundation/mpl-token-metadata": "^2.5.2",
"@solana/spl-token": "^0.3.7",
- "@solana/web3.js": "^1.73.0",
+ "@solana/web3.js": "^1.98.4",
"borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
diff --git a/tokens/escrow/native/package.json b/tokens/escrow/native/package.json
index f84d15dd1..f4b1d26d2 100644
--- a/tokens/escrow/native/package.json
+++ b/tokens/escrow/native/package.json
@@ -7,7 +7,7 @@
},
"dependencies": {
"@solana/spl-token": "^0.4.9",
- "@solana/web3.js": "^1.95.4",
+ "@solana/web3.js": "^1.98.4",
"bn.js": "^5.2.2"
},
"devDependencies": {
diff --git a/tokens/external-delegate-token-master/anchor/package.json b/tokens/external-delegate-token-master/anchor/package.json
index cd44d15cc..39317e279 100644
--- a/tokens/external-delegate-token-master/anchor/package.json
+++ b/tokens/external-delegate-token-master/anchor/package.json
@@ -13,7 +13,7 @@
"dependencies": {
"@coral-xyz/anchor": "^0.32.1",
"@solana/spl-token": "^0.3.9",
- "@solana/web3.js": "^1.90.0",
+ "@solana/web3.js": "^1.98.4",
"ethers": "^5.7.2"
},
"devDependencies": {
diff --git a/tokens/nft-minter/native/package.json b/tokens/nft-minter/native/package.json
index e74d35ad3..fc0ff32f7 100644
--- a/tokens/nft-minter/native/package.json
+++ b/tokens/nft-minter/native/package.json
@@ -5,7 +5,7 @@
"dependencies": {
"@metaplex-foundation/mpl-token-metadata": "^2.5.2",
"@solana/spl-token": "^0.3.7",
- "@solana/web3.js": "^1.73.0",
+ "@solana/web3.js": "^1.98.4",
"borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
diff --git a/tokens/pda-mint-authority/native/package.json b/tokens/pda-mint-authority/native/package.json
index 6f489697e..1acaada12 100644
--- a/tokens/pda-mint-authority/native/package.json
+++ b/tokens/pda-mint-authority/native/package.json
@@ -8,7 +8,7 @@
"dependencies": {
"@metaplex-foundation/mpl-token-metadata": "^2.5.2",
"@solana/spl-token": "^0.3.7",
- "@solana/web3.js": "^1.73.0",
+ "@solana/web3.js": "^1.98.4",
"borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
diff --git a/tokens/spl-token-minter/native/package.json b/tokens/spl-token-minter/native/package.json
index e74d35ad3..fc0ff32f7 100644
--- a/tokens/spl-token-minter/native/package.json
+++ b/tokens/spl-token-minter/native/package.json
@@ -5,7 +5,7 @@
"dependencies": {
"@metaplex-foundation/mpl-token-metadata": "^2.5.2",
"@solana/spl-token": "^0.3.7",
- "@solana/web3.js": "^1.73.0",
+ "@solana/web3.js": "^1.98.4",
"borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
diff --git a/tokens/token-2022/basics/anchor/package.json b/tokens/token-2022/basics/anchor/package.json
index f6441cc95..72d1a242d 100644
--- a/tokens/token-2022/basics/anchor/package.json
+++ b/tokens/token-2022/basics/anchor/package.json
@@ -6,7 +6,7 @@
},
"dependencies": {
"@coral-xyz/anchor": "0.32.1",
- "@solana/web3.js": "^1.95.2"
+ "@solana/web3.js": "^1.98.4"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
diff --git a/tokens/token-2022/default-account-state/native/package.json b/tokens/token-2022/default-account-state/native/package.json
index dd64d2a55..375fa1281 100644
--- a/tokens/token-2022/default-account-state/native/package.json
+++ b/tokens/token-2022/default-account-state/native/package.json
@@ -8,7 +8,7 @@
"dependencies": {
"@metaplex-foundation/mpl-token-metadata": "^2.5.2",
"@solana/spl-token": "^0.3.7",
- "@solana/web3.js": "^1.73.0",
+ "@solana/web3.js": "^1.98.4",
"borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
diff --git a/tokens/token-2022/mint-close-authority/native/package.json b/tokens/token-2022/mint-close-authority/native/package.json
index beb5150cf..675c97490 100644
--- a/tokens/token-2022/mint-close-authority/native/package.json
+++ b/tokens/token-2022/mint-close-authority/native/package.json
@@ -8,7 +8,7 @@
"dependencies": {
"@metaplex-foundation/mpl-token-metadata": "^2.5.2",
"@solana/spl-token": "^0.3.7",
- "@solana/web3.js": "^1.73.0",
+ "@solana/web3.js": "^1.98.4",
"borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
diff --git a/tokens/token-2022/multiple-extensions/native/package.json b/tokens/token-2022/multiple-extensions/native/package.json
index dd64d2a55..375fa1281 100644
--- a/tokens/token-2022/multiple-extensions/native/package.json
+++ b/tokens/token-2022/multiple-extensions/native/package.json
@@ -8,7 +8,7 @@
"dependencies": {
"@metaplex-foundation/mpl-token-metadata": "^2.5.2",
"@solana/spl-token": "^0.3.7",
- "@solana/web3.js": "^1.73.0",
+ "@solana/web3.js": "^1.98.4",
"borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
diff --git a/tokens/token-2022/nft-meta-data-pointer/anchor-example/app/package.json b/tokens/token-2022/nft-meta-data-pointer/anchor-example/app/package.json
index 51b4fbc41..204e8ad6e 100644
--- a/tokens/token-2022/nft-meta-data-pointer/anchor-example/app/package.json
+++ b/tokens/token-2022/nft-meta-data-pointer/anchor-example/app/package.json
@@ -23,7 +23,7 @@
"@solana/wallet-adapter-react": "^0.15.35",
"@solana/wallet-adapter-react-ui": "^0.9.35",
"@solana/wallet-adapter-wallets": "^0.19.26",
- "@solana/web3.js": "^1.77.1",
+ "@solana/web3.js": "^1.98.4",
"@types/node": "20.2.5",
"@types/react": "18.2.7",
"@types/react-dom": "18.2.4",
diff --git a/tokens/token-2022/non-transferable/native/package.json b/tokens/token-2022/non-transferable/native/package.json
index dd64d2a55..375fa1281 100644
--- a/tokens/token-2022/non-transferable/native/package.json
+++ b/tokens/token-2022/non-transferable/native/package.json
@@ -8,7 +8,7 @@
"dependencies": {
"@metaplex-foundation/mpl-token-metadata": "^2.5.2",
"@solana/spl-token": "^0.3.7",
- "@solana/web3.js": "^1.73.0",
+ "@solana/web3.js": "^1.98.4",
"borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
diff --git a/tokens/token-2022/transfer-fee/native/package.json b/tokens/token-2022/transfer-fee/native/package.json
index dd64d2a55..375fa1281 100644
--- a/tokens/token-2022/transfer-fee/native/package.json
+++ b/tokens/token-2022/transfer-fee/native/package.json
@@ -8,7 +8,7 @@
"dependencies": {
"@metaplex-foundation/mpl-token-metadata": "^2.5.2",
"@solana/spl-token": "^0.3.7",
- "@solana/web3.js": "^1.73.0",
+ "@solana/web3.js": "^1.98.4",
"borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
diff --git a/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/package.json b/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/package.json
index bb0b4edbb..3a8551de1 100644
--- a/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/package.json
+++ b/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/package.json
@@ -7,7 +7,7 @@
"dependencies": {
"@coral-xyz/anchor": "0.32.1",
"@solana/spl-token": "^0.4.0",
- "@solana/web3.js": "^1.92.3"
+ "@solana/web3.js": "^1.98.4"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
diff --git a/tokens/token-2022/transfer-hook/allow-block-list-token/package.json b/tokens/token-2022/transfer-hook/allow-block-list-token/package.json
index 54e3dbb8c..4bb92fda3 100644
--- a/tokens/token-2022/transfer-hook/allow-block-list-token/package.json
+++ b/tokens/token-2022/transfer-hook/allow-block-list-token/package.json
@@ -25,7 +25,7 @@
"@solana/wallet-adapter-base": "0.9.27",
"@solana/wallet-adapter-react": "0.15.39",
"@solana/wallet-adapter-react-ui": "0.9.39",
- "@solana/web3.js": "1.98.2",
+ "@solana/web3.js": "^1.98.4",
"@tanstack/react-query": "^5.82.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
diff --git a/tokens/token-2022/transfer-hook/counter/anchor/package.json b/tokens/token-2022/transfer-hook/counter/anchor/package.json
index d1c5e106c..88d262ee7 100644
--- a/tokens/token-2022/transfer-hook/counter/anchor/package.json
+++ b/tokens/token-2022/transfer-hook/counter/anchor/package.json
@@ -7,7 +7,7 @@
"dependencies": {
"@coral-xyz/anchor": "^0.32.1",
"@solana/spl-token": "^0.4.0",
- "@solana/web3.js": "^1.92.3"
+ "@solana/web3.js": "^1.98.4"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
diff --git a/tokens/token-2022/transfer-hook/hello-world/anchor/package.json b/tokens/token-2022/transfer-hook/hello-world/anchor/package.json
index d1c5e106c..88d262ee7 100644
--- a/tokens/token-2022/transfer-hook/hello-world/anchor/package.json
+++ b/tokens/token-2022/transfer-hook/hello-world/anchor/package.json
@@ -7,7 +7,7 @@
"dependencies": {
"@coral-xyz/anchor": "^0.32.1",
"@solana/spl-token": "^0.4.0",
- "@solana/web3.js": "^1.92.3"
+ "@solana/web3.js": "^1.98.4"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
diff --git a/tokens/transfer-tokens/native/package.json b/tokens/transfer-tokens/native/package.json
index e74d35ad3..fc0ff32f7 100644
--- a/tokens/transfer-tokens/native/package.json
+++ b/tokens/transfer-tokens/native/package.json
@@ -5,7 +5,7 @@
"dependencies": {
"@metaplex-foundation/mpl-token-metadata": "^2.5.2",
"@solana/spl-token": "^0.3.7",
- "@solana/web3.js": "^1.73.0",
+ "@solana/web3.js": "^1.98.4",
"borsh": "^2.0.0",
"buffer": "^6.0.3",
"fs": "^0.0.1-security"
From 68fea8907c58244e48d3a53bea799a25826724c8 Mon Sep 17 00:00:00 2001
From: Mike MacCana
Date: Wed, 18 Mar 2026 16:39:20 +0000
Subject: [PATCH 48/49] fix: update pnpm-lock.yaml files after web3.js version
standardisation
The previous commit updated @solana/web3.js to ^1.98.4 in all package.json
files but didn't regenerate the lockfiles. CI uses frozen-lockfile installs,
so all projects with stale lockfiles failed with ERR_PNPM_OUTDATED_LOCKFILE.
---
basics/account-data/anchor/pnpm-lock.yaml | 72 +--
basics/account-data/native/pnpm-lock.yaml | 16 +-
basics/account-data/pinocchio/pnpm-lock.yaml | 33 +-
.../checking-accounts/anchor/pnpm-lock.yaml | 124 +++--
.../checking-accounts/native/pnpm-lock.yaml | 18 +-
.../pinocchio/pnpm-lock.yaml | 14 +-
basics/close-account/native/pnpm-lock.yaml | 16 +-
basics/counter/native/pnpm-lock.yaml | 257 ++++++----
basics/counter/pinocchio/pnpm-lock.yaml | 259 ++++++----
basics/create-account/native/pnpm-lock.yaml | 34 +-
.../create-account/pinocchio/pnpm-lock.yaml | 18 +-
.../native/pnpm-lock.yaml | 14 +-
basics/favorites/native/pnpm-lock.yaml | 14 +-
basics/favorites/pinocchio/pnpm-lock.yaml | 14 +-
basics/hello-solana/native/pnpm-lock.yaml | 18 +-
basics/pda-rent-payer/anchor/pnpm-lock.yaml | 10 +-
basics/pda-rent-payer/native/pnpm-lock.yaml | 16 +-
.../pda-rent-payer/pinocchio/pnpm-lock.yaml | 18 +-
.../anchor/pnpm-lock.yaml | 73 +--
.../native/pnpm-lock.yaml | 16 +-
.../pinocchio/pnpm-lock.yaml | 18 +-
.../native/pnpm-lock.yaml | 16 +-
.../pinocchio/pnpm-lock.yaml | 18 +-
basics/realloc/native/pnpm-lock.yaml | 18 +-
basics/realloc/pinocchio/pnpm-lock.yaml | 18 +-
basics/rent/native/pnpm-lock.yaml | 16 +-
basics/rent/pinocchio/pnpm-lock.yaml | 16 +-
.../repository-layout/anchor/pnpm-lock.yaml | 73 +--
.../repository-layout/native/pnpm-lock.yaml | 16 +-
basics/transfer-sol/anchor/pnpm-lock.yaml | 10 +-
basics/transfer-sol/native/pnpm-lock.yaml | 16 +-
basics/transfer-sol/pinocchio/pnpm-lock.yaml | 18 +-
compression/cnft-burn/anchor/pnpm-lock.yaml | 445 +++++++++++-------
compression/cutils/anchor/pnpm-lock.yaml | 433 ++++++++++-------
pnpm-lock.yaml | 128 +++--
tokens/create-token/native/pnpm-lock.yaml | 6 +-
tokens/escrow/native/pnpm-lock.yaml | 93 +++-
.../anchor/pnpm-lock.yaml | 36 +-
tokens/nft-minter/native/pnpm-lock.yaml | 6 +-
.../pda-mint-authority/native/pnpm-lock.yaml | 273 +++++++----
tokens/spl-token-minter/native/pnpm-lock.yaml | 6 +-
.../token-2022/basics/anchor/pnpm-lock.yaml | 8 +-
.../native/pnpm-lock.yaml | 273 +++++++----
.../native/pnpm-lock.yaml | 273 +++++++----
.../multiple-extensions/native/pnpm-lock.yaml | 273 +++++++----
.../non-transferable/native/pnpm-lock.yaml | 273 +++++++----
.../transfer-fee/native/pnpm-lock.yaml | 273 +++++++----
.../anchor/pnpm-lock.yaml | 274 +++++++----
.../allow-block-list-token/pnpm-lock.yaml | 154 +++---
.../counter/anchor/pnpm-lock.yaml | 274 +++++++----
.../hello-world/anchor/pnpm-lock.yaml | 274 +++++++----
tokens/transfer-tokens/native/pnpm-lock.yaml | 6 +-
52 files changed, 3050 insertions(+), 2038 deletions(-)
diff --git a/basics/account-data/anchor/pnpm-lock.yaml b/basics/account-data/anchor/pnpm-lock.yaml
index d5ab0a603..c6b359806 100644
--- a/basics/account-data/anchor/pnpm-lock.yaml
+++ b/basics/account-data/anchor/pnpm-lock.yaml
@@ -10,10 +10,10 @@ importers:
dependencies:
'@coral-xyz/anchor':
specifier: 0.32.1
- version: 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.95.2
- version: 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
devDependencies:
'@types/bn.js':
specifier: ^5.1.0
@@ -94,9 +94,6 @@ packages:
peerDependencies:
typescript: '>=5.3.3'
- '@solana/web3.js@1.95.2':
- resolution: {integrity: sha512-SjlHp0G4qhuhkQQc+YXdGkI8EerCqwxvgytMgBpzMUQTafrkNant3e7pgilBGgjy/iM40ICvWBLgASTPMrQU7w==}
-
'@solana/web3.js@1.98.4':
resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
@@ -182,20 +179,10 @@ packages:
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- bigint-buffer@1.1.5:
- resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==}
- engines: {node: '>= 10.0.0'}
-
binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
- bindings@1.5.0:
- resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
-
- 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==}
@@ -340,9 +327,6 @@ packages:
fastestsmallesttextencoderdecoder@1.0.22:
resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
- file-uri-to-path@1.0.0:
- resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
-
fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
@@ -474,18 +458,21 @@ packages:
engines: {node: '>= 20'}
cpu: [arm64]
os: [linux]
+ libc: [musl]
litesvm-linux-x64-gnu@0.3.3:
resolution: {integrity: sha512-Qai2/E8Eq03w8VKnJDREyiWxwavjykW/H6onE179ayMnBjVVmkj5fN7XF50VV4z73kasx5bpDzBNK8fcaxMdzA==}
engines: {node: '>= 20'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
litesvm-linux-x64-musl@0.3.3:
resolution: {integrity: sha512-bpWZ2f506hbfu1y6bkmuZf+qqtnLDxggpOMTQbibjd+q6faEO3sETWwKGlIgHB99P8wyU+aXKwLSGQX2sJEw6Q==}
engines: {node: '>= 20'}
cpu: [x64]
os: [linux]
+ libc: [musl]
litesvm@0.3.3:
resolution: {integrity: sha512-QHXjAIXzvG0uAMOza6aJcYl19yTKz3guwq/z0Zml4KnQxyQvPhjaBpUFc5sf2ey/NxMVdqFhoXmL02CXOOomjw==}
@@ -773,12 +760,12 @@ snapshots:
'@coral-xyz/anchor-errors@0.31.1': {}
- '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@coral-xyz/anchor-errors': 0.31.1
- '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))
'@noble/hashes': 1.8.0
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
bs58: 4.0.1
buffer-layout: 1.2.2
@@ -791,11 +778,12 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))':
dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
buffer-layout: 1.2.2
@@ -828,28 +816,6 @@ snapshots:
commander: 14.0.2
typescript: 4.9.5
- '@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
- dependencies:
- '@babel/runtime': 7.25.0
- '@noble/curves': 1.4.2
- '@noble/hashes': 1.4.0
- '@solana/buffer-layout': 4.0.1
- agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
- bn.js: 5.2.1
- borsh: 0.7.0
- bs58: 4.0.1
- buffer: 6.0.3
- fast-stable-stringify: 1.0.0
- jayson: 4.1.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- node-fetch: 2.7.0
- rpc-websockets: 9.0.2
- superstruct: 2.0.2
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - utf-8-validate
-
'@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@babel/runtime': 7.25.0
@@ -948,23 +914,13 @@ snapshots:
base64-js@1.5.1: {}
- bigint-buffer@1.1.5:
- dependencies:
- bindings: 1.5.0
-
binary-extensions@2.3.0: {}
- bindings@1.5.0:
- dependencies:
- file-uri-to-path: 1.0.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
@@ -1100,8 +1056,6 @@ snapshots:
fastestsmallesttextencoderdecoder@1.0.22: {}
- file-uri-to-path@1.0.0: {}
-
fill-range@7.0.1:
dependencies:
to-regex-range: 5.0.1
diff --git a/basics/account-data/native/pnpm-lock.yaml b/basics/account-data/native/pnpm-lock.yaml
index 9671e031d..684a5c5f5 100644
--- a/basics/account-data/native/pnpm-lock.yaml
+++ b/basics/account-data/native/pnpm-lock.yaml
@@ -9,8 +9,8 @@ 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)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
borsh:
specifier: ^2.0.0
version: 2.0.0
@@ -80,8 +80,8 @@ packages:
peerDependencies:
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==}
@@ -739,7 +739,7 @@ snapshots:
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)':
+ '@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.1
'@noble/curves': 1.9.1
@@ -774,7 +774,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.18
'@types/json5@0.0.29':
optional: true
@@ -791,7 +791,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.18
'@types/ws@8.18.1':
dependencies:
@@ -1202,7 +1202,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
diff --git a/basics/account-data/pinocchio/pnpm-lock.yaml b/basics/account-data/pinocchio/pnpm-lock.yaml
index 031d4ece3..1599428b6 100644
--- a/basics/account-data/pinocchio/pnpm-lock.yaml
+++ b/basics/account-data/pinocchio/pnpm-lock.yaml
@@ -9,8 +9,8 @@ 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)
+ 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
@@ -74,9 +74,6 @@ packages:
peerDependencies:
typescript: '>=5'
- '@solana/web3.js@1.98.2':
- resolution: {integrity: sha512-BqVwEG+TaG2yCkBMbD3C4hdpustR4FpuUFRPUmqRZYYlPI9Hg4XMWxHWOWRzHE9Lkc9NDjzXFX7lDXSgzC7R1A==}
-
'@solana/web3.js@1.98.4':
resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
@@ -425,18 +422,21 @@ packages:
engines: {node: '>= 20'}
cpu: [arm64]
os: [linux]
+ libc: [musl]
litesvm-linux-x64-gnu@0.3.3:
resolution: {integrity: sha512-Qai2/E8Eq03w8VKnJDREyiWxwavjykW/H6onE179ayMnBjVVmkj5fN7XF50VV4z73kasx5bpDzBNK8fcaxMdzA==}
engines: {node: '>= 20'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
litesvm-linux-x64-musl@0.3.3:
resolution: {integrity: sha512-bpWZ2f506hbfu1y6bkmuZf+qqtnLDxggpOMTQbibjd+q6faEO3sETWwKGlIgHB99P8wyU+aXKwLSGQX2sJEw6Q==}
engines: {node: '>= 20'}
cpu: [x64]
os: [linux]
+ libc: [musl]
litesvm@0.3.3:
resolution: {integrity: sha512-QHXjAIXzvG0uAMOza6aJcYl19yTKz3guwq/z0Zml4KnQxyQvPhjaBpUFc5sf2ey/NxMVdqFhoXmL02CXOOomjw==}
@@ -743,29 +743,6 @@ snapshots:
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
-
'@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
diff --git a/basics/checking-accounts/anchor/pnpm-lock.yaml b/basics/checking-accounts/anchor/pnpm-lock.yaml
index aae81ea51..e3a408a13 100644
--- a/basics/checking-accounts/anchor/pnpm-lock.yaml
+++ b/basics/checking-accounts/anchor/pnpm-lock.yaml
@@ -10,10 +10,10 @@ importers:
dependencies:
'@coral-xyz/anchor':
specifier: 0.32.1
- version: 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.95.2
- version: 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
devDependencies:
'@types/bn.js':
specifier: ^5.1.0
@@ -26,7 +26,7 @@ importers:
version: 9.1.1
anchor-bankrun:
specifier: ^0.4.0
- version: 0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ version: 0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))
chai:
specifier: ^4.3.4
version: 4.4.1
@@ -35,7 +35,7 @@ importers:
version: 9.2.2
solana-bankrun:
specifier: ^0.3.0
- version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.3.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
ts-mocha:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
@@ -78,8 +78,27 @@ packages:
resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
engines: {node: '>=5.10'}
- '@solana/web3.js@1.95.2':
- resolution: {integrity: sha512-SjlHp0G4qhuhkQQc+YXdGkI8EerCqwxvgytMgBpzMUQTafrkNant3e7pgilBGgjy/iM40ICvWBLgASTPMrQU7w==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
'@swc/helpers@0.5.12':
resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==}
@@ -168,20 +187,10 @@ packages:
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- bigint-buffer@1.1.5:
- resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==}
- engines: {node: '>= 10.0.0'}
-
binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
- bindings@1.5.0:
- resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
-
- 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==}
@@ -227,6 +236,10 @@ packages:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -244,6 +257,10 @@ packages:
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@@ -312,9 +329,6 @@ packages:
fast-stable-stringify@1.0.0:
resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
- file-uri-to-path@1.0.0:
- resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
-
fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
@@ -564,12 +578,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.0:
resolution: {integrity: sha512-xsS2CS2xb1Sw4ivNXM0gPz/qpW9BX0neSvt/pnok5L330Nu9xlTnKAY8FhzzqOP9P9sJlGRM787Y6d0yYwt6xQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.0:
resolution: {integrity: sha512-YkH7sa8TB/AoRPzG17CXJtYsRIQHEkEqGLz1Vwc13taXhDBkjO7z6NI5JYw7n0ybRymDHwMYTc7sd+5J40TyVQ==}
@@ -744,12 +760,12 @@ snapshots:
'@coral-xyz/anchor-errors@0.31.1': {}
- '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@coral-xyz/anchor-errors': 0.31.1
- '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))
'@noble/hashes': 1.8.0
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
bs58: 4.0.1
buffer-layout: 1.2.2
@@ -762,11 +778,12 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))':
dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
buffer-layout: 1.2.2
@@ -782,15 +799,32 @@ snapshots:
dependencies:
buffer: 6.0.3
- '@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/codecs-core@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@4.9.5)
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.3.0(typescript@4.9.5)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.3
+ typescript: 4.9.5
+
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@babel/runtime': 7.25.0
'@noble/curves': 1.4.2
- '@noble/hashes': 1.4.0
+ '@noble/hashes': 1.8.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@4.9.5)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
- bn.js: 5.2.1
+ bn.js: 5.2.2
borsh: 0.7.0
bs58: 4.0.1
buffer: 6.0.3
@@ -802,6 +836,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@swc/helpers@0.5.12':
@@ -850,11 +885,11 @@ snapshots:
dependencies:
humanize-ms: 1.2.1
- anchor-bankrun@0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
+ anchor-bankrun@0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)):
dependencies:
- '@coral-xyz/anchor': 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- solana-bankrun: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@coral-xyz/anchor': 0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ solana-bankrun: 0.3.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
ansi-colors@4.1.1: {}
@@ -883,23 +918,13 @@ snapshots:
base64-js@1.5.1: {}
- bigint-buffer@1.1.5:
- dependencies:
- bindings: 1.5.0
-
binary-extensions@2.3.0: {}
- bindings@1.5.0:
- dependencies:
- file-uri-to-path: 1.0.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
@@ -949,6 +974,8 @@ snapshots:
ansi-styles: 4.3.0
supports-color: 7.2.0
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -977,6 +1004,8 @@ snapshots:
color-name@1.1.4: {}
+ commander@14.0.3: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -1025,8 +1054,6 @@ snapshots:
fast-stable-stringify@1.0.0: {}
- file-uri-to-path@1.0.0: {}
-
fill-range@7.0.1:
dependencies:
to-regex-range: 5.0.1
@@ -1273,9 +1300,9 @@ snapshots:
solana-bankrun-linux-x64-musl@0.3.0:
optional: true
- solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ solana-bankrun@0.3.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10):
dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bs58: 4.0.1
optionalDependencies:
solana-bankrun-darwin-arm64: 0.3.0
@@ -1286,6 +1313,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
source-map-support@0.5.21:
diff --git a/basics/checking-accounts/native/pnpm-lock.yaml b/basics/checking-accounts/native/pnpm-lock.yaml
index 315de63a2..6f8339c0b 100644
--- a/basics/checking-accounts/native/pnpm-lock.yaml
+++ b/basics/checking-accounts/native/pnpm-lock.yaml
@@ -9,8 +9,8 @@ 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)
+ 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
@@ -74,8 +74,8 @@ packages:
peerDependencies:
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==}
@@ -525,12 +525,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.1:
resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.1:
resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
@@ -725,7 +727,7 @@ snapshots:
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)':
+ '@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.1
'@noble/curves': 1.9.1
@@ -760,7 +762,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/json5@0.0.29':
optional: true
@@ -777,7 +779,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/ws@8.18.1':
dependencies:
@@ -1184,7 +1186,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
diff --git a/basics/checking-accounts/pinocchio/pnpm-lock.yaml b/basics/checking-accounts/pinocchio/pnpm-lock.yaml
index b70de678a..40c420431 100644
--- a/basics/checking-accounts/pinocchio/pnpm-lock.yaml
+++ b/basics/checking-accounts/pinocchio/pnpm-lock.yaml
@@ -9,8 +9,8 @@ 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)
+ 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
@@ -74,8 +74,8 @@ packages:
peerDependencies:
typescript: '>=5'
- '@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==}
@@ -528,12 +528,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.1:
resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.1:
resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
@@ -730,7 +732,7 @@ snapshots:
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)':
+ '@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
@@ -1191,7 +1193,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
diff --git a/basics/close-account/native/pnpm-lock.yaml b/basics/close-account/native/pnpm-lock.yaml
index d81b4a0d5..6f8339c0b 100644
--- a/basics/close-account/native/pnpm-lock.yaml
+++ b/basics/close-account/native/pnpm-lock.yaml
@@ -9,8 +9,8 @@ importers:
.:
dependencies:
'@solana/web3.js':
- specifier: ^1.35
- version: 1.98.2(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ 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
@@ -74,8 +74,8 @@ packages:
peerDependencies:
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==}
@@ -727,7 +727,7 @@ snapshots:
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)':
+ '@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.1
'@noble/curves': 1.9.1
@@ -762,7 +762,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/json5@0.0.29':
optional: true
@@ -779,7 +779,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/ws@8.18.1':
dependencies:
@@ -1186,7 +1186,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
diff --git a/basics/counter/native/pnpm-lock.yaml b/basics/counter/native/pnpm-lock.yaml
index 9fbd637f8..01f3d4a54 100644
--- a/basics/counter/native/pnpm-lock.yaml
+++ b/basics/counter/native/pnpm-lock.yaml
@@ -9,8 +9,8 @@ importers:
.:
dependencies:
'@solana/web3.js':
- specifier: ^1.91.4
- version: 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bn.js:
specifier: ^5.2.2
version: 5.2.2
@@ -32,7 +32,7 @@ importers:
version: 9.2.2
solana-bankrun:
specifier: ^0.3.0
- version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.3.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
ts-mocha:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
@@ -42,23 +42,50 @@ importers:
packages:
- '@babel/runtime@7.24.5':
- resolution: {integrity: sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==}
+ '@babel/runtime@7.28.6':
+ resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==}
engines: {node: '>=6.9.0'}
- '@noble/curves@1.4.0':
- resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==}
+ '@noble/curves@1.9.7':
+ resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==}
+ engines: {node: ^14.21.3 || >=16}
'@noble/hashes@1.4.0':
resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==}
engines: {node: '>= 16'}
+ '@noble/hashes@1.8.0':
+ resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
+ engines: {node: ^14.21.3 || >=16}
+
'@solana/buffer-layout@4.0.1':
resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
engines: {node: '>=5.10'}
- '@solana/web3.js@1.91.8':
- resolution: {integrity: sha512-USa6OS1jbh8zOapRJ/CBZImZ8Xb7AJjROZl5adql9TpOoBN9BUzyyouS5oPuZHft7S7eB8uJPuXWYjMi6BHgOw==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
+
+ '@swc/helpers@0.5.19':
+ resolution: {integrity: sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==}
'@types/bn.js@5.1.5':
resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==}
@@ -81,16 +108,18 @@ packages:
'@types/node@20.12.11':
resolution: {integrity: sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==}
+ '@types/uuid@10.0.0':
+ resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
+
'@types/ws@7.4.7':
resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
+ '@types/ws@8.18.1':
+ resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
+
'@ungap/promise-all-settled@1.1.2':
resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==}
- JSONStream@1.3.5:
- resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
- hasBin: true
-
agentkeepalive@4.5.0:
resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
engines: {node: '>= 8.0.0'}
@@ -130,17 +159,10 @@ packages:
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- bigint-buffer@1.1.5:
- resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==}
- engines: {node: '>= 10.0.0'}
-
binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
- bindings@1.5.0:
- resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
-
bn.js@5.2.2:
resolution: {integrity: sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==}
@@ -182,6 +204,10 @@ packages:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -199,6 +225,10 @@ packages:
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@@ -251,8 +281,8 @@ packages:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
- eventemitter3@4.0.7:
- resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
+ eventemitter3@5.0.4:
+ resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==}
eyes@0.1.8:
resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==}
@@ -261,9 +291,6 @@ packages:
fast-stable-stringify@1.0.0:
resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
- file-uri-to-path@1.0.0:
- resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
-
fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
@@ -358,8 +385,8 @@ packages:
peerDependencies:
ws: '*'
- jayson@4.1.0:
- resolution: {integrity: sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==}
+ jayson@4.3.0:
+ resolution: {integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==}
engines: {node: '>=8'}
hasBin: true
@@ -374,10 +401,6 @@ packages:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
- jsonparse@1.3.1:
- resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
- engines: {'0': node >= 0.2.0}
-
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -472,15 +495,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@7.11.0:
- resolution: {integrity: sha512-IkLYjayPv6Io8C/TdCL5gwgzd1hFz2vmBZrjMw/SPEXo51ETOhnzgS4Qy5GWi2JQN7HKHa66J3+2mv0fgNh/7w==}
+ rpc-websockets@9.3.5:
+ resolution: {integrity: sha512-4mAmr+AEhPYJ9TmDtxF3r3ZcbWy7W8kvZ4PoZYw/Xgp2J7WixjwTgiQZsoTDvch5nimmg3Ay6/0Kuh9oIvVs9A==}
safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
@@ -530,6 +550,12 @@ packages:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
+ stream-chain@2.2.5:
+ resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==}
+
+ stream-json@1.9.1:
+ resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==}
+
string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
@@ -546,8 +572,9 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
- superstruct@0.14.2:
- resolution: {integrity: sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==}
+ 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==}
@@ -560,9 +587,6 @@ packages:
text-encoding-utf-8@1.0.2:
resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==}
- through@2.3.8:
- resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
-
to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
@@ -585,6 +609,9 @@ packages:
tsconfig-paths@3.15.0:
resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
type-detect@4.0.8:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
@@ -597,10 +624,14 @@ packages:
undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
- utf-8-validate@5.0.10:
- resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==}
+ utf-8-validate@6.0.6:
+ resolution: {integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==}
engines: {node: '>=6.14.2'}
+ uuid@11.1.0:
+ resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==}
+ hasBin: true
+
uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
@@ -626,8 +657,8 @@ packages:
wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
- ws@7.5.9:
- resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
+ ws@7.5.10:
+ resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==}
engines: {node: '>=8.3.0'}
peerDependencies:
bufferutil: ^4.0.1
@@ -676,42 +707,64 @@ packages:
snapshots:
- '@babel/runtime@7.24.5':
- dependencies:
- regenerator-runtime: 0.14.1
+ '@babel/runtime@7.28.6': {}
- '@noble/curves@1.4.0':
+ '@noble/curves@1.9.7':
dependencies:
- '@noble/hashes': 1.4.0
+ '@noble/hashes': 1.8.0
'@noble/hashes@1.4.0': {}
+ '@noble/hashes@1.8.0': {}
+
'@solana/buffer-layout@4.0.1':
dependencies:
buffer: 6.0.3
- '@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/codecs-core@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@4.9.5)
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.3.0(typescript@4.9.5)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.3
+ typescript: 4.9.5
+
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
- '@babel/runtime': 7.24.5
- '@noble/curves': 1.4.0
+ '@babel/runtime': 7.28.6
+ '@noble/curves': 1.9.7
'@noble/hashes': 1.4.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@4.9.5)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
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.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ jayson: 4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
node-fetch: 2.7.0
- rpc-websockets: 7.11.0
- superstruct: 0.14.2
+ rpc-websockets: 9.3.5
+ superstruct: 2.0.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
+ '@swc/helpers@0.5.19':
+ dependencies:
+ tslib: 2.8.1
+
'@types/bn.js@5.1.5':
dependencies:
'@types/node': 20.12.11
@@ -720,7 +773,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 20.12.11
'@types/json5@0.0.29':
optional: true
@@ -733,16 +786,17 @@ snapshots:
dependencies:
undici-types: 5.26.5
+ '@types/uuid@10.0.0': {}
+
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
-
- '@ungap/promise-all-settled@1.1.2': {}
+ '@types/node': 20.12.11
- JSONStream@1.3.5:
+ '@types/ws@8.18.1':
dependencies:
- jsonparse: 1.3.1
- through: 2.3.8
+ '@types/node': 20.12.11
+
+ '@ungap/promise-all-settled@1.1.2': {}
agentkeepalive@4.5.0:
dependencies:
@@ -775,16 +829,8 @@ snapshots:
base64-js@1.5.1: {}
- bigint-buffer@1.1.5:
- dependencies:
- bindings: 1.5.0
-
binary-extensions@2.3.0: {}
- bindings@1.5.0:
- dependencies:
- file-uri-to-path: 1.0.0
-
bn.js@5.2.2: {}
borsh@0.7.0:
@@ -837,6 +883,8 @@ snapshots:
ansi-styles: 4.3.0
supports-color: 7.2.0
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -865,6 +913,8 @@ snapshots:
color-name@1.1.4: {}
+ commander@14.0.3: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -899,14 +949,12 @@ snapshots:
escape-string-regexp@4.0.0: {}
- eventemitter3@4.0.7: {}
+ eventemitter3@5.0.4: {}
eyes@0.1.8: {}
fast-stable-stringify@1.0.0: {}
- file-uri-to-path@1.0.0: {}
-
fill-range@7.0.1:
dependencies:
to-regex-range: 5.0.1
@@ -979,24 +1027,24 @@ snapshots:
isexe@2.0.0: {}
- isomorphic-ws@4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
+ isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)):
dependencies:
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
- jayson@4.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ jayson@4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
dependencies:
'@types/connect': 3.4.38
'@types/node': 12.20.55
'@types/ws': 7.4.7
- JSONStream: 1.3.5
commander: 2.20.3
delay: 5.0.0
es6-promisify: 5.0.0
eyes: 0.1.8
- isomorphic-ws: 4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6))
json-stringify-safe: 5.0.1
+ stream-json: 1.9.1
uuid: 8.3.2
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- bufferutil
- utf-8-validate
@@ -1012,8 +1060,6 @@ snapshots:
minimist: 1.2.8
optional: true
- jsonparse@1.3.1: {}
-
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1113,18 +1159,20 @@ snapshots:
dependencies:
picomatch: 2.3.1
- regenerator-runtime@0.14.1: {}
-
require-directory@2.1.1: {}
- rpc-websockets@7.11.0:
+ rpc-websockets@9.3.5:
dependencies:
- eventemitter3: 4.0.7
- uuid: 8.3.2
- ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@swc/helpers': 0.5.19
+ '@types/uuid': 10.0.0
+ '@types/ws': 8.18.1
+ buffer: 6.0.3
+ eventemitter3: 5.0.4
+ uuid: 11.1.0
+ ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
safe-buffer@5.2.1: {}
@@ -1147,9 +1195,9 @@ snapshots:
solana-bankrun-linux-x64-musl@0.3.0:
optional: true
- solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ solana-bankrun@0.3.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6):
dependencies:
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bs58: 4.0.1
optionalDependencies:
solana-bankrun-darwin-arm64: 0.3.0
@@ -1160,6 +1208,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
source-map-support@0.5.21:
@@ -1169,6 +1218,12 @@ snapshots:
source-map@0.6.1: {}
+ stream-chain@2.2.5: {}
+
+ stream-json@1.9.1:
+ dependencies:
+ stream-chain: 2.2.5
+
string-width@4.2.3:
dependencies:
emoji-regex: 8.0.0
@@ -1184,7 +1239,7 @@ snapshots:
strip-json-comments@3.1.1: {}
- superstruct@0.14.2: {}
+ superstruct@2.0.2: {}
supports-color@7.2.0:
dependencies:
@@ -1196,8 +1251,6 @@ snapshots:
text-encoding-utf-8@1.0.2: {}
- through@2.3.8: {}
-
to-regex-range@5.0.1:
dependencies:
is-number: 7.0.0
@@ -1230,17 +1283,21 @@ snapshots:
strip-bom: 3.0.0
optional: true
+ tslib@2.8.1: {}
+
type-detect@4.0.8: {}
typescript@4.9.5: {}
undici-types@5.26.5: {}
- utf-8-validate@5.0.10:
+ utf-8-validate@6.0.6:
dependencies:
node-gyp-build: 4.8.1
optional: true
+ uuid@11.1.0: {}
+
uuid@8.3.2: {}
webidl-conversions@3.0.1: {}
@@ -1264,15 +1321,15 @@ snapshots:
wrappy@1.0.2: {}
- ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
- ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
y18n@5.0.8: {}
diff --git a/basics/counter/pinocchio/pnpm-lock.yaml b/basics/counter/pinocchio/pnpm-lock.yaml
index 5d5d40850..ed2f0a0c9 100644
--- a/basics/counter/pinocchio/pnpm-lock.yaml
+++ b/basics/counter/pinocchio/pnpm-lock.yaml
@@ -9,8 +9,8 @@ importers:
.:
dependencies:
'@solana/web3.js':
- specifier: ^1.91.4
- version: 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
devDependencies:
'@types/bn.js':
specifier: ^5.1.0
@@ -29,7 +29,7 @@ importers:
version: 9.2.2
solana-bankrun:
specifier: ^0.3.0
- version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.3.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
ts-mocha:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
@@ -39,23 +39,50 @@ importers:
packages:
- '@babel/runtime@7.24.5':
- resolution: {integrity: sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==}
+ '@babel/runtime@7.28.6':
+ resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==}
engines: {node: '>=6.9.0'}
- '@noble/curves@1.4.0':
- resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==}
+ '@noble/curves@1.9.7':
+ resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==}
+ engines: {node: ^14.21.3 || >=16}
'@noble/hashes@1.4.0':
resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==}
engines: {node: '>= 16'}
+ '@noble/hashes@1.8.0':
+ resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
+ engines: {node: ^14.21.3 || >=16}
+
'@solana/buffer-layout@4.0.1':
resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
engines: {node: '>=5.10'}
- '@solana/web3.js@1.91.8':
- resolution: {integrity: sha512-USa6OS1jbh8zOapRJ/CBZImZ8Xb7AJjROZl5adql9TpOoBN9BUzyyouS5oPuZHft7S7eB8uJPuXWYjMi6BHgOw==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
+
+ '@swc/helpers@0.5.19':
+ resolution: {integrity: sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==}
'@types/bn.js@5.1.5':
resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==}
@@ -78,16 +105,18 @@ packages:
'@types/node@20.12.11':
resolution: {integrity: sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==}
+ '@types/uuid@10.0.0':
+ resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
+
'@types/ws@7.4.7':
resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
+ '@types/ws@8.18.1':
+ resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
+
'@ungap/promise-all-settled@1.1.2':
resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==}
- JSONStream@1.3.5:
- resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
- hasBin: true
-
agentkeepalive@4.5.0:
resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
engines: {node: '>= 8.0.0'}
@@ -127,17 +156,10 @@ packages:
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- bigint-buffer@1.1.5:
- resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==}
- engines: {node: '>= 10.0.0'}
-
binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
- bindings@1.5.0:
- resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
-
bn.js@5.2.1:
resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==}
@@ -179,6 +201,10 @@ packages:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -196,6 +222,10 @@ packages:
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@@ -248,8 +278,8 @@ packages:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
- eventemitter3@4.0.7:
- resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
+ eventemitter3@5.0.4:
+ resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==}
eyes@0.1.8:
resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==}
@@ -258,9 +288,6 @@ packages:
fast-stable-stringify@1.0.0:
resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
- file-uri-to-path@1.0.0:
- resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
-
fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
@@ -355,8 +382,8 @@ packages:
peerDependencies:
ws: '*'
- jayson@4.1.0:
- resolution: {integrity: sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==}
+ jayson@4.3.0:
+ resolution: {integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==}
engines: {node: '>=8'}
hasBin: true
@@ -371,10 +398,6 @@ packages:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
- jsonparse@1.3.1:
- resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
- engines: {'0': node >= 0.2.0}
-
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -469,15 +492,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@7.11.0:
- resolution: {integrity: sha512-IkLYjayPv6Io8C/TdCL5gwgzd1hFz2vmBZrjMw/SPEXo51ETOhnzgS4Qy5GWi2JQN7HKHa66J3+2mv0fgNh/7w==}
+ rpc-websockets@9.3.5:
+ resolution: {integrity: sha512-4mAmr+AEhPYJ9TmDtxF3r3ZcbWy7W8kvZ4PoZYw/Xgp2J7WixjwTgiQZsoTDvch5nimmg3Ay6/0Kuh9oIvVs9A==}
safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
@@ -507,12 +527,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.0:
resolution: {integrity: sha512-xsS2CS2xb1Sw4ivNXM0gPz/qpW9BX0neSvt/pnok5L330Nu9xlTnKAY8FhzzqOP9P9sJlGRM787Y6d0yYwt6xQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.0:
resolution: {integrity: sha512-YkH7sa8TB/AoRPzG17CXJtYsRIQHEkEqGLz1Vwc13taXhDBkjO7z6NI5JYw7n0ybRymDHwMYTc7sd+5J40TyVQ==}
@@ -525,6 +547,12 @@ packages:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
+ stream-chain@2.2.5:
+ resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==}
+
+ stream-json@1.9.1:
+ resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==}
+
string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
@@ -541,8 +569,9 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
- superstruct@0.14.2:
- resolution: {integrity: sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==}
+ 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==}
@@ -555,9 +584,6 @@ packages:
text-encoding-utf-8@1.0.2:
resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==}
- through@2.3.8:
- resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
-
to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
@@ -580,6 +606,9 @@ packages:
tsconfig-paths@3.15.0:
resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
type-detect@4.0.8:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
@@ -592,10 +621,14 @@ packages:
undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
- utf-8-validate@5.0.10:
- resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==}
+ utf-8-validate@6.0.6:
+ resolution: {integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==}
engines: {node: '>=6.14.2'}
+ uuid@11.1.0:
+ resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==}
+ hasBin: true
+
uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
@@ -621,8 +654,8 @@ packages:
wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
- ws@7.5.9:
- resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
+ ws@7.5.10:
+ resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==}
engines: {node: '>=8.3.0'}
peerDependencies:
bufferutil: ^4.0.1
@@ -671,42 +704,64 @@ packages:
snapshots:
- '@babel/runtime@7.24.5':
- dependencies:
- regenerator-runtime: 0.14.1
+ '@babel/runtime@7.28.6': {}
- '@noble/curves@1.4.0':
+ '@noble/curves@1.9.7':
dependencies:
- '@noble/hashes': 1.4.0
+ '@noble/hashes': 1.8.0
'@noble/hashes@1.4.0': {}
+ '@noble/hashes@1.8.0': {}
+
'@solana/buffer-layout@4.0.1':
dependencies:
buffer: 6.0.3
- '@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/codecs-core@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/codecs-numbers@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@4.9.5)
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
+ '@solana/errors@2.3.0(typescript@4.9.5)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.3
+ typescript: 4.9.5
+
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
- '@babel/runtime': 7.24.5
- '@noble/curves': 1.4.0
+ '@babel/runtime': 7.28.6
+ '@noble/curves': 1.9.7
'@noble/hashes': 1.4.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@4.9.5)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
bn.js: 5.2.1
borsh: 0.7.0
bs58: 4.0.1
buffer: 6.0.3
fast-stable-stringify: 1.0.0
- jayson: 4.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ jayson: 4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
node-fetch: 2.7.0
- rpc-websockets: 7.11.0
- superstruct: 0.14.2
+ rpc-websockets: 9.3.5
+ superstruct: 2.0.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
+ '@swc/helpers@0.5.19':
+ dependencies:
+ tslib: 2.8.1
+
'@types/bn.js@5.1.5':
dependencies:
'@types/node': 20.12.11
@@ -715,7 +770,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 20.12.11
'@types/json5@0.0.29':
optional: true
@@ -728,16 +783,17 @@ snapshots:
dependencies:
undici-types: 5.26.5
+ '@types/uuid@10.0.0': {}
+
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
-
- '@ungap/promise-all-settled@1.1.2': {}
+ '@types/node': 20.12.11
- JSONStream@1.3.5:
+ '@types/ws@8.18.1':
dependencies:
- jsonparse: 1.3.1
- through: 2.3.8
+ '@types/node': 20.12.11
+
+ '@ungap/promise-all-settled@1.1.2': {}
agentkeepalive@4.5.0:
dependencies:
@@ -770,16 +826,8 @@ snapshots:
base64-js@1.5.1: {}
- bigint-buffer@1.1.5:
- dependencies:
- bindings: 1.5.0
-
binary-extensions@2.3.0: {}
- bindings@1.5.0:
- dependencies:
- file-uri-to-path: 1.0.0
-
bn.js@5.2.1: {}
borsh@0.7.0:
@@ -832,6 +880,8 @@ snapshots:
ansi-styles: 4.3.0
supports-color: 7.2.0
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -860,6 +910,8 @@ snapshots:
color-name@1.1.4: {}
+ commander@14.0.3: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -894,14 +946,12 @@ snapshots:
escape-string-regexp@4.0.0: {}
- eventemitter3@4.0.7: {}
+ eventemitter3@5.0.4: {}
eyes@0.1.8: {}
fast-stable-stringify@1.0.0: {}
- file-uri-to-path@1.0.0: {}
-
fill-range@7.0.1:
dependencies:
to-regex-range: 5.0.1
@@ -974,24 +1024,24 @@ snapshots:
isexe@2.0.0: {}
- isomorphic-ws@4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
+ isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)):
dependencies:
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
- jayson@4.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ jayson@4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
dependencies:
'@types/connect': 3.4.38
'@types/node': 12.20.55
'@types/ws': 7.4.7
- JSONStream: 1.3.5
commander: 2.20.3
delay: 5.0.0
es6-promisify: 5.0.0
eyes: 0.1.8
- isomorphic-ws: 4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6))
json-stringify-safe: 5.0.1
+ stream-json: 1.9.1
uuid: 8.3.2
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- bufferutil
- utf-8-validate
@@ -1007,8 +1057,6 @@ snapshots:
minimist: 1.2.8
optional: true
- jsonparse@1.3.1: {}
-
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1108,18 +1156,20 @@ snapshots:
dependencies:
picomatch: 2.3.1
- regenerator-runtime@0.14.1: {}
-
require-directory@2.1.1: {}
- rpc-websockets@7.11.0:
+ rpc-websockets@9.3.5:
dependencies:
- eventemitter3: 4.0.7
- uuid: 8.3.2
- ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@swc/helpers': 0.5.19
+ '@types/uuid': 10.0.0
+ '@types/ws': 8.18.1
+ buffer: 6.0.3
+ eventemitter3: 5.0.4
+ uuid: 11.1.0
+ ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
safe-buffer@5.2.1: {}
@@ -1142,9 +1192,9 @@ snapshots:
solana-bankrun-linux-x64-musl@0.3.0:
optional: true
- solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ solana-bankrun@0.3.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6):
dependencies:
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bs58: 4.0.1
optionalDependencies:
solana-bankrun-darwin-arm64: 0.3.0
@@ -1155,6 +1205,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
source-map-support@0.5.21:
@@ -1164,6 +1215,12 @@ snapshots:
source-map@0.6.1: {}
+ stream-chain@2.2.5: {}
+
+ stream-json@1.9.1:
+ dependencies:
+ stream-chain: 2.2.5
+
string-width@4.2.3:
dependencies:
emoji-regex: 8.0.0
@@ -1179,7 +1236,7 @@ snapshots:
strip-json-comments@3.1.1: {}
- superstruct@0.14.2: {}
+ superstruct@2.0.2: {}
supports-color@7.2.0:
dependencies:
@@ -1191,8 +1248,6 @@ snapshots:
text-encoding-utf-8@1.0.2: {}
- through@2.3.8: {}
-
to-regex-range@5.0.1:
dependencies:
is-number: 7.0.0
@@ -1225,17 +1280,21 @@ snapshots:
strip-bom: 3.0.0
optional: true
+ tslib@2.8.1: {}
+
type-detect@4.0.8: {}
typescript@4.9.5: {}
undici-types@5.26.5: {}
- utf-8-validate@5.0.10:
+ utf-8-validate@6.0.6:
dependencies:
node-gyp-build: 4.8.1
optional: true
+ uuid@11.1.0: {}
+
uuid@8.3.2: {}
webidl-conversions@3.0.1: {}
@@ -1259,15 +1318,15 @@ snapshots:
wrappy@1.0.2: {}
- ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
- ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
y18n@5.0.8: {}
diff --git a/basics/create-account/native/pnpm-lock.yaml b/basics/create-account/native/pnpm-lock.yaml
index 0498adfb0..6f8339c0b 100644
--- a/basics/create-account/native/pnpm-lock.yaml
+++ b/basics/create-account/native/pnpm-lock.yaml
@@ -9,8 +9,8 @@ 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)
+ 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
@@ -74,9 +74,6 @@ packages:
peerDependencies:
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==}
@@ -730,29 +727,6 @@ snapshots:
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.1
- '@noble/curves': 1.9.1
- '@noble/hashes': 1.8.0
- '@solana/buffer-layout': 4.0.1
- '@solana/codecs-numbers': 2.1.1(typescript@4.9.5)
- agentkeepalive: 4.6.0
- 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
- superstruct: 2.0.2
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - typescript
- - utf-8-validate
-
'@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.1
@@ -788,7 +762,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/json5@0.0.29':
optional: true
@@ -805,7 +779,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/ws@8.18.1':
dependencies:
diff --git a/basics/create-account/pinocchio/pnpm-lock.yaml b/basics/create-account/pinocchio/pnpm-lock.yaml
index 315de63a2..6f8339c0b 100644
--- a/basics/create-account/pinocchio/pnpm-lock.yaml
+++ b/basics/create-account/pinocchio/pnpm-lock.yaml
@@ -9,8 +9,8 @@ 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)
+ 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
@@ -74,8 +74,8 @@ packages:
peerDependencies:
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==}
@@ -525,12 +525,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.1:
resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.1:
resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
@@ -725,7 +727,7 @@ snapshots:
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)':
+ '@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.1
'@noble/curves': 1.9.1
@@ -760,7 +762,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/json5@0.0.29':
optional: true
@@ -777,7 +779,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/ws@8.18.1':
dependencies:
@@ -1184,7 +1186,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
diff --git a/basics/cross-program-invocation/native/pnpm-lock.yaml b/basics/cross-program-invocation/native/pnpm-lock.yaml
index 746a20a2d..6206710d1 100644
--- a/basics/cross-program-invocation/native/pnpm-lock.yaml
+++ b/basics/cross-program-invocation/native/pnpm-lock.yaml
@@ -9,8 +9,8 @@ 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)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
borsh:
specifier: ^2.0.0
version: 2.0.0
@@ -80,8 +80,8 @@ packages:
peerDependencies:
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==}
@@ -704,7 +704,7 @@ snapshots:
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)':
+ '@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.1
'@noble/curves': 1.9.1
@@ -739,7 +739,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/json5@0.0.29':
optional: true
@@ -756,7 +756,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/ws@8.18.1':
dependencies:
diff --git a/basics/favorites/native/pnpm-lock.yaml b/basics/favorites/native/pnpm-lock.yaml
index a2611a893..67b55d158 100644
--- a/basics/favorites/native/pnpm-lock.yaml
+++ b/basics/favorites/native/pnpm-lock.yaml
@@ -9,8 +9,8 @@ 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)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
borsh:
specifier: ^2.0.0
version: 2.0.0
@@ -80,8 +80,8 @@ packages:
peerDependencies:
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==}
@@ -534,12 +534,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.1:
resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.1:
resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
@@ -734,7 +736,7 @@ snapshots:
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)':
+ '@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.1
'@noble/curves': 1.9.1
@@ -1195,7 +1197,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
diff --git a/basics/favorites/pinocchio/pnpm-lock.yaml b/basics/favorites/pinocchio/pnpm-lock.yaml
index a2611a893..67b55d158 100644
--- a/basics/favorites/pinocchio/pnpm-lock.yaml
+++ b/basics/favorites/pinocchio/pnpm-lock.yaml
@@ -9,8 +9,8 @@ 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)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
borsh:
specifier: ^2.0.0
version: 2.0.0
@@ -80,8 +80,8 @@ packages:
peerDependencies:
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==}
@@ -534,12 +534,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.1:
resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.1:
resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
@@ -734,7 +736,7 @@ snapshots:
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)':
+ '@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.1
'@noble/curves': 1.9.1
@@ -1195,7 +1197,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
diff --git a/basics/hello-solana/native/pnpm-lock.yaml b/basics/hello-solana/native/pnpm-lock.yaml
index 315de63a2..6f8339c0b 100644
--- a/basics/hello-solana/native/pnpm-lock.yaml
+++ b/basics/hello-solana/native/pnpm-lock.yaml
@@ -9,8 +9,8 @@ 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)
+ 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
@@ -74,8 +74,8 @@ packages:
peerDependencies:
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==}
@@ -525,12 +525,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.1:
resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.1:
resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
@@ -725,7 +727,7 @@ snapshots:
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)':
+ '@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.1
'@noble/curves': 1.9.1
@@ -760,7 +762,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/json5@0.0.29':
optional: true
@@ -777,7 +779,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/ws@8.18.1':
dependencies:
@@ -1184,7 +1186,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
diff --git a/basics/pda-rent-payer/anchor/pnpm-lock.yaml b/basics/pda-rent-payer/anchor/pnpm-lock.yaml
index b423a72a4..bd5613822 100644
--- a/basics/pda-rent-payer/anchor/pnpm-lock.yaml
+++ b/basics/pda-rent-payer/anchor/pnpm-lock.yaml
@@ -12,7 +12,7 @@ importers:
specifier: 0.32.1
version: 0.32.1(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.95.2
+ specifier: ^1.98.4
version: 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
litesvm:
specifier: ^0.4.0
@@ -443,24 +443,28 @@ packages:
engines: {node: '>= 20'}
cpu: [arm64]
os: [linux]
+ libc: [glibc]
litesvm-linux-arm64-musl@0.4.0:
resolution: {integrity: sha512-YMMqwEWJUSWwL0Rwp8dFwl3jvgNU21eI7Qc+BpH9u2yeIRYQTn3rNGDnsK8v3QIZPHQdMo7NrPhzk4XoB1aKPg==}
engines: {node: '>= 20'}
cpu: [arm64]
os: [linux]
+ libc: [musl]
litesvm-linux-x64-gnu@0.4.0:
resolution: {integrity: sha512-brZ3tFABDVQEYCgci7AO8iVYLw10UXVo97/lpTy75bTzNoqkggg8wFQOrbgCdb9NRwt06Y4Zf8cpIZAoDQq2mw==}
engines: {node: '>= 20'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
litesvm-linux-x64-musl@0.4.0:
resolution: {integrity: sha512-D98qdIOuWg4fOewIIiH1D23AtM4I7/3vLKXIL8uQz06D5ev5fsBzNp2gM7libAywTkCYy/u666xgD6PsWhrTaw==}
engines: {node: '>= 20'}
cpu: [x64]
os: [linux]
+ libc: [musl]
litesvm@0.4.0:
resolution: {integrity: sha512-ySr5mB2ap4SzJpmVR2I5+gjzTH8NJbkg7DYPormzA2U9F4LhfvTTrD17X/k5N3Bn4b5Db6/CwSyX2qc0HrJtNA==}
@@ -835,7 +839,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 24.7.2
'@types/json5@0.0.29':
optional: true
@@ -852,7 +856,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 24.7.2
'@types/ws@8.18.1':
dependencies:
diff --git a/basics/pda-rent-payer/native/pnpm-lock.yaml b/basics/pda-rent-payer/native/pnpm-lock.yaml
index 01f48eb3f..0c029978a 100644
--- a/basics/pda-rent-payer/native/pnpm-lock.yaml
+++ b/basics/pda-rent-payer/native/pnpm-lock.yaml
@@ -9,8 +9,8 @@ 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)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
borsh:
specifier: ^2.0.0
version: 2.0.0
@@ -77,8 +77,8 @@ packages:
peerDependencies:
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==}
@@ -733,7 +733,7 @@ snapshots:
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)':
+ '@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.1
'@noble/curves': 1.9.1
@@ -768,7 +768,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/json5@0.0.29':
optional: true
@@ -785,7 +785,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/ws@8.18.1':
dependencies:
@@ -1194,7 +1194,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
diff --git a/basics/pda-rent-payer/pinocchio/pnpm-lock.yaml b/basics/pda-rent-payer/pinocchio/pnpm-lock.yaml
index 315de63a2..6f8339c0b 100644
--- a/basics/pda-rent-payer/pinocchio/pnpm-lock.yaml
+++ b/basics/pda-rent-payer/pinocchio/pnpm-lock.yaml
@@ -9,8 +9,8 @@ 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)
+ 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
@@ -74,8 +74,8 @@ packages:
peerDependencies:
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==}
@@ -525,12 +525,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.1:
resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.1:
resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
@@ -725,7 +727,7 @@ snapshots:
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)':
+ '@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.1
'@noble/curves': 1.9.1
@@ -760,7 +762,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/json5@0.0.29':
optional: true
@@ -777,7 +779,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/ws@8.18.1':
dependencies:
@@ -1184,7 +1186,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
diff --git a/basics/processing-instructions/anchor/pnpm-lock.yaml b/basics/processing-instructions/anchor/pnpm-lock.yaml
index de2bbf7e1..aba807736 100644
--- a/basics/processing-instructions/anchor/pnpm-lock.yaml
+++ b/basics/processing-instructions/anchor/pnpm-lock.yaml
@@ -10,10 +10,10 @@ importers:
dependencies:
'@coral-xyz/anchor':
specifier: 0.32.1
- version: 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.95.2
- version: 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
litesvm:
specifier: ^0.4.0
version: 0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
@@ -94,9 +94,6 @@ packages:
peerDependencies:
typescript: '>=5.3.3'
- '@solana/web3.js@1.95.2':
- resolution: {integrity: sha512-SjlHp0G4qhuhkQQc+YXdGkI8EerCqwxvgytMgBpzMUQTafrkNant3e7pgilBGgjy/iM40ICvWBLgASTPMrQU7w==}
-
'@solana/web3.js@1.98.4':
resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
@@ -179,20 +176,10 @@ packages:
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- bigint-buffer@1.1.5:
- resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==}
- engines: {node: '>= 10.0.0'}
-
binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
- bindings@1.5.0:
- resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
-
- 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==}
@@ -334,9 +321,6 @@ packages:
fastestsmallesttextencoderdecoder@1.0.22:
resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
- file-uri-to-path@1.0.0:
- resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
-
fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
@@ -468,24 +452,28 @@ packages:
engines: {node: '>= 20'}
cpu: [arm64]
os: [linux]
+ libc: [glibc]
litesvm-linux-arm64-musl@0.4.0:
resolution: {integrity: sha512-YMMqwEWJUSWwL0Rwp8dFwl3jvgNU21eI7Qc+BpH9u2yeIRYQTn3rNGDnsK8v3QIZPHQdMo7NrPhzk4XoB1aKPg==}
engines: {node: '>= 20'}
cpu: [arm64]
os: [linux]
+ libc: [musl]
litesvm-linux-x64-gnu@0.4.0:
resolution: {integrity: sha512-brZ3tFABDVQEYCgci7AO8iVYLw10UXVo97/lpTy75bTzNoqkggg8wFQOrbgCdb9NRwt06Y4Zf8cpIZAoDQq2mw==}
engines: {node: '>= 20'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
litesvm-linux-x64-musl@0.4.0:
resolution: {integrity: sha512-D98qdIOuWg4fOewIIiH1D23AtM4I7/3vLKXIL8uQz06D5ev5fsBzNp2gM7libAywTkCYy/u666xgD6PsWhrTaw==}
engines: {node: '>= 20'}
cpu: [x64]
os: [linux]
+ libc: [musl]
litesvm@0.4.0:
resolution: {integrity: sha512-ySr5mB2ap4SzJpmVR2I5+gjzTH8NJbkg7DYPormzA2U9F4LhfvTTrD17X/k5N3Bn4b5Db6/CwSyX2qc0HrJtNA==}
@@ -773,12 +761,12 @@ snapshots:
'@coral-xyz/anchor-errors@0.31.1': {}
- '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@coral-xyz/anchor-errors': 0.31.1
- '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))
'@noble/hashes': 1.8.0
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
bs58: 4.0.1
buffer-layout: 1.2.2
@@ -791,11 +779,12 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))':
dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
buffer-layout: 1.2.2
@@ -828,28 +817,6 @@ snapshots:
commander: 14.0.2
typescript: 4.9.5
- '@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
- dependencies:
- '@babel/runtime': 7.25.0
- '@noble/curves': 1.4.2
- '@noble/hashes': 1.4.0
- '@solana/buffer-layout': 4.0.1
- agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
- bn.js: 5.2.1
- borsh: 0.7.0
- bs58: 4.0.1
- buffer: 6.0.3
- fast-stable-stringify: 1.0.0
- jayson: 4.1.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- node-fetch: 2.7.0
- rpc-websockets: 9.0.2
- superstruct: 2.0.2
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - utf-8-validate
-
'@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@babel/runtime': 7.25.0
@@ -946,23 +913,13 @@ snapshots:
base64-js@1.5.1: {}
- bigint-buffer@1.1.5:
- dependencies:
- bindings: 1.5.0
-
binary-extensions@2.3.0: {}
- bindings@1.5.0:
- dependencies:
- file-uri-to-path: 1.0.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
@@ -1094,8 +1051,6 @@ snapshots:
fastestsmallesttextencoderdecoder@1.0.22: {}
- file-uri-to-path@1.0.0: {}
-
fill-range@7.0.1:
dependencies:
to-regex-range: 5.0.1
diff --git a/basics/processing-instructions/native/pnpm-lock.yaml b/basics/processing-instructions/native/pnpm-lock.yaml
index 01f48eb3f..0c029978a 100644
--- a/basics/processing-instructions/native/pnpm-lock.yaml
+++ b/basics/processing-instructions/native/pnpm-lock.yaml
@@ -9,8 +9,8 @@ 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)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
borsh:
specifier: ^2.0.0
version: 2.0.0
@@ -77,8 +77,8 @@ packages:
peerDependencies:
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==}
@@ -733,7 +733,7 @@ snapshots:
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)':
+ '@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.1
'@noble/curves': 1.9.1
@@ -768,7 +768,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/json5@0.0.29':
optional: true
@@ -785,7 +785,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/ws@8.18.1':
dependencies:
@@ -1194,7 +1194,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
diff --git a/basics/processing-instructions/pinocchio/pnpm-lock.yaml b/basics/processing-instructions/pinocchio/pnpm-lock.yaml
index 315de63a2..6f8339c0b 100644
--- a/basics/processing-instructions/pinocchio/pnpm-lock.yaml
+++ b/basics/processing-instructions/pinocchio/pnpm-lock.yaml
@@ -9,8 +9,8 @@ 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)
+ 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
@@ -74,8 +74,8 @@ packages:
peerDependencies:
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==}
@@ -525,12 +525,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.1:
resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.1:
resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
@@ -725,7 +727,7 @@ snapshots:
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)':
+ '@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.1
'@noble/curves': 1.9.1
@@ -760,7 +762,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/json5@0.0.29':
optional: true
@@ -777,7 +779,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/ws@8.18.1':
dependencies:
@@ -1184,7 +1186,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
diff --git a/basics/program-derived-addresses/native/pnpm-lock.yaml b/basics/program-derived-addresses/native/pnpm-lock.yaml
index 51cd0bb57..35eeafff5 100644
--- a/basics/program-derived-addresses/native/pnpm-lock.yaml
+++ b/basics/program-derived-addresses/native/pnpm-lock.yaml
@@ -9,8 +9,8 @@ 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)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
borsh:
specifier: ^2.0.0
version: 2.0.0
@@ -77,8 +77,8 @@ packages:
peerDependencies:
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==}
@@ -709,7 +709,7 @@ snapshots:
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)':
+ '@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.1
'@noble/curves': 1.9.1
@@ -744,7 +744,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/json5@0.0.29':
optional: true
@@ -761,7 +761,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/ws@8.18.1':
dependencies:
@@ -1144,7 +1144,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
diff --git a/basics/program-derived-addresses/pinocchio/pnpm-lock.yaml b/basics/program-derived-addresses/pinocchio/pnpm-lock.yaml
index 5382ba0a9..78f9a6774 100644
--- a/basics/program-derived-addresses/pinocchio/pnpm-lock.yaml
+++ b/basics/program-derived-addresses/pinocchio/pnpm-lock.yaml
@@ -9,8 +9,8 @@ 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)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
fs:
specifier: ^0.0.1-security
version: 0.0.1-security
@@ -74,8 +74,8 @@ packages:
peerDependencies:
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==}
@@ -505,12 +505,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.1:
resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.1:
resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
@@ -701,7 +703,7 @@ snapshots:
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)':
+ '@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.1
'@noble/curves': 1.9.1
@@ -736,7 +738,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/json5@0.0.29':
optional: true
@@ -753,7 +755,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/ws@8.18.1':
dependencies:
@@ -1134,7 +1136,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
diff --git a/basics/realloc/native/pnpm-lock.yaml b/basics/realloc/native/pnpm-lock.yaml
index 5db256a7e..a79f68d42 100644
--- a/basics/realloc/native/pnpm-lock.yaml
+++ b/basics/realloc/native/pnpm-lock.yaml
@@ -9,8 +9,8 @@ importers:
.:
dependencies:
'@solana/web3.js':
- specifier: ^1.35
- version: 1.98.2(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
fs:
specifier: ^0.0.1-security
version: 0.0.1-security
@@ -77,8 +77,8 @@ packages:
peerDependencies:
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==}
@@ -531,12 +531,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.1:
resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.1:
resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
@@ -731,7 +733,7 @@ snapshots:
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)':
+ '@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.1
'@noble/curves': 1.9.1
@@ -766,7 +768,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/json5@0.0.29':
optional: true
@@ -783,7 +785,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/ws@8.18.1':
dependencies:
@@ -1192,7 +1194,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
diff --git a/basics/realloc/pinocchio/pnpm-lock.yaml b/basics/realloc/pinocchio/pnpm-lock.yaml
index 5db256a7e..a79f68d42 100644
--- a/basics/realloc/pinocchio/pnpm-lock.yaml
+++ b/basics/realloc/pinocchio/pnpm-lock.yaml
@@ -9,8 +9,8 @@ importers:
.:
dependencies:
'@solana/web3.js':
- specifier: ^1.35
- version: 1.98.2(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
fs:
specifier: ^0.0.1-security
version: 0.0.1-security
@@ -77,8 +77,8 @@ packages:
peerDependencies:
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==}
@@ -531,12 +531,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.1:
resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.1:
resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
@@ -731,7 +733,7 @@ snapshots:
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)':
+ '@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.1
'@noble/curves': 1.9.1
@@ -766,7 +768,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/json5@0.0.29':
optional: true
@@ -783,7 +785,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/ws@8.18.1':
dependencies:
@@ -1192,7 +1194,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
diff --git a/basics/rent/native/pnpm-lock.yaml b/basics/rent/native/pnpm-lock.yaml
index 1b0915b48..4d6d07c99 100644
--- a/basics/rent/native/pnpm-lock.yaml
+++ b/basics/rent/native/pnpm-lock.yaml
@@ -9,8 +9,8 @@ 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)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
borsh:
specifier: ^2.0.0
version: 2.0.0
@@ -83,8 +83,8 @@ packages:
peerDependencies:
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==}
@@ -742,7 +742,7 @@ snapshots:
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)':
+ '@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.1
'@noble/curves': 1.9.1
@@ -777,7 +777,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/json5@0.0.29':
optional: true
@@ -794,7 +794,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/ws@8.18.1':
dependencies:
@@ -1205,7 +1205,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
diff --git a/basics/rent/pinocchio/pnpm-lock.yaml b/basics/rent/pinocchio/pnpm-lock.yaml
index 1b0915b48..4d6d07c99 100644
--- a/basics/rent/pinocchio/pnpm-lock.yaml
+++ b/basics/rent/pinocchio/pnpm-lock.yaml
@@ -9,8 +9,8 @@ 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)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
borsh:
specifier: ^2.0.0
version: 2.0.0
@@ -83,8 +83,8 @@ packages:
peerDependencies:
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==}
@@ -742,7 +742,7 @@ snapshots:
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)':
+ '@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.1
'@noble/curves': 1.9.1
@@ -777,7 +777,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/json5@0.0.29':
optional: true
@@ -794,7 +794,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/ws@8.18.1':
dependencies:
@@ -1205,7 +1205,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
diff --git a/basics/repository-layout/anchor/pnpm-lock.yaml b/basics/repository-layout/anchor/pnpm-lock.yaml
index 9a2850e68..8f04ca0d3 100644
--- a/basics/repository-layout/anchor/pnpm-lock.yaml
+++ b/basics/repository-layout/anchor/pnpm-lock.yaml
@@ -10,10 +10,10 @@ importers:
dependencies:
'@coral-xyz/anchor':
specifier: 0.32.1
- version: 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.95.2
- version: 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
litesvm:
specifier: ^0.4.0
version: 0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
@@ -94,9 +94,6 @@ packages:
peerDependencies:
typescript: '>=5.3.3'
- '@solana/web3.js@1.95.2':
- resolution: {integrity: sha512-SjlHp0G4qhuhkQQc+YXdGkI8EerCqwxvgytMgBpzMUQTafrkNant3e7pgilBGgjy/iM40ICvWBLgASTPMrQU7w==}
-
'@solana/web3.js@1.98.4':
resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
@@ -179,20 +176,10 @@ packages:
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- bigint-buffer@1.1.5:
- resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==}
- engines: {node: '>= 10.0.0'}
-
binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
- bindings@1.5.0:
- resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
-
- 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==}
@@ -334,9 +321,6 @@ packages:
fastestsmallesttextencoderdecoder@1.0.22:
resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
- file-uri-to-path@1.0.0:
- resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
-
fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
@@ -468,24 +452,28 @@ packages:
engines: {node: '>= 20'}
cpu: [arm64]
os: [linux]
+ libc: [glibc]
litesvm-linux-arm64-musl@0.4.0:
resolution: {integrity: sha512-YMMqwEWJUSWwL0Rwp8dFwl3jvgNU21eI7Qc+BpH9u2yeIRYQTn3rNGDnsK8v3QIZPHQdMo7NrPhzk4XoB1aKPg==}
engines: {node: '>= 20'}
cpu: [arm64]
os: [linux]
+ libc: [musl]
litesvm-linux-x64-gnu@0.4.0:
resolution: {integrity: sha512-brZ3tFABDVQEYCgci7AO8iVYLw10UXVo97/lpTy75bTzNoqkggg8wFQOrbgCdb9NRwt06Y4Zf8cpIZAoDQq2mw==}
engines: {node: '>= 20'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
litesvm-linux-x64-musl@0.4.0:
resolution: {integrity: sha512-D98qdIOuWg4fOewIIiH1D23AtM4I7/3vLKXIL8uQz06D5ev5fsBzNp2gM7libAywTkCYy/u666xgD6PsWhrTaw==}
engines: {node: '>= 20'}
cpu: [x64]
os: [linux]
+ libc: [musl]
litesvm@0.4.0:
resolution: {integrity: sha512-ySr5mB2ap4SzJpmVR2I5+gjzTH8NJbkg7DYPormzA2U9F4LhfvTTrD17X/k5N3Bn4b5Db6/CwSyX2qc0HrJtNA==}
@@ -773,12 +761,12 @@ snapshots:
'@coral-xyz/anchor-errors@0.31.1': {}
- '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@coral-xyz/anchor-errors': 0.31.1
- '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))
'@noble/hashes': 1.8.0
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
bs58: 4.0.1
buffer-layout: 1.2.2
@@ -791,11 +779,12 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))':
dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
buffer-layout: 1.2.2
@@ -828,28 +817,6 @@ snapshots:
commander: 14.0.2
typescript: 4.9.5
- '@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
- dependencies:
- '@babel/runtime': 7.25.0
- '@noble/curves': 1.5.0
- '@noble/hashes': 1.4.0
- '@solana/buffer-layout': 4.0.1
- agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
- bn.js: 5.2.1
- borsh: 0.7.0
- bs58: 4.0.1
- buffer: 6.0.3
- fast-stable-stringify: 1.0.0
- jayson: 4.1.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- node-fetch: 2.7.0
- rpc-websockets: 9.0.2
- superstruct: 2.0.2
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - utf-8-validate
-
'@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@babel/runtime': 7.25.0
@@ -946,23 +913,13 @@ snapshots:
base64-js@1.5.1: {}
- bigint-buffer@1.1.5:
- dependencies:
- bindings: 1.5.0
-
binary-extensions@2.3.0: {}
- bindings@1.5.0:
- dependencies:
- file-uri-to-path: 1.0.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
@@ -1094,8 +1051,6 @@ snapshots:
fastestsmallesttextencoderdecoder@1.0.22: {}
- file-uri-to-path@1.0.0: {}
-
fill-range@7.0.1:
dependencies:
to-regex-range: 5.0.1
diff --git a/basics/repository-layout/native/pnpm-lock.yaml b/basics/repository-layout/native/pnpm-lock.yaml
index 957167dbc..288b405f3 100644
--- a/basics/repository-layout/native/pnpm-lock.yaml
+++ b/basics/repository-layout/native/pnpm-lock.yaml
@@ -9,8 +9,8 @@ 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)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
borsh:
specifier: ^2.0.0
version: 2.0.0
@@ -80,8 +80,8 @@ packages:
peerDependencies:
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==}
@@ -739,7 +739,7 @@ snapshots:
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)':
+ '@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.1
'@noble/curves': 1.9.1
@@ -774,7 +774,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/json5@0.0.29':
optional: true
@@ -791,7 +791,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/ws@8.18.1':
dependencies:
@@ -1202,7 +1202,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
diff --git a/basics/transfer-sol/anchor/pnpm-lock.yaml b/basics/transfer-sol/anchor/pnpm-lock.yaml
index b423a72a4..bd5613822 100644
--- a/basics/transfer-sol/anchor/pnpm-lock.yaml
+++ b/basics/transfer-sol/anchor/pnpm-lock.yaml
@@ -12,7 +12,7 @@ importers:
specifier: 0.32.1
version: 0.32.1(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.95.2
+ specifier: ^1.98.4
version: 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
litesvm:
specifier: ^0.4.0
@@ -443,24 +443,28 @@ packages:
engines: {node: '>= 20'}
cpu: [arm64]
os: [linux]
+ libc: [glibc]
litesvm-linux-arm64-musl@0.4.0:
resolution: {integrity: sha512-YMMqwEWJUSWwL0Rwp8dFwl3jvgNU21eI7Qc+BpH9u2yeIRYQTn3rNGDnsK8v3QIZPHQdMo7NrPhzk4XoB1aKPg==}
engines: {node: '>= 20'}
cpu: [arm64]
os: [linux]
+ libc: [musl]
litesvm-linux-x64-gnu@0.4.0:
resolution: {integrity: sha512-brZ3tFABDVQEYCgci7AO8iVYLw10UXVo97/lpTy75bTzNoqkggg8wFQOrbgCdb9NRwt06Y4Zf8cpIZAoDQq2mw==}
engines: {node: '>= 20'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
litesvm-linux-x64-musl@0.4.0:
resolution: {integrity: sha512-D98qdIOuWg4fOewIIiH1D23AtM4I7/3vLKXIL8uQz06D5ev5fsBzNp2gM7libAywTkCYy/u666xgD6PsWhrTaw==}
engines: {node: '>= 20'}
cpu: [x64]
os: [linux]
+ libc: [musl]
litesvm@0.4.0:
resolution: {integrity: sha512-ySr5mB2ap4SzJpmVR2I5+gjzTH8NJbkg7DYPormzA2U9F4LhfvTTrD17X/k5N3Bn4b5Db6/CwSyX2qc0HrJtNA==}
@@ -835,7 +839,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 24.7.2
'@types/json5@0.0.29':
optional: true
@@ -852,7 +856,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 24.7.2
'@types/ws@8.18.1':
dependencies:
diff --git a/basics/transfer-sol/native/pnpm-lock.yaml b/basics/transfer-sol/native/pnpm-lock.yaml
index 26ad80001..fc03a408a 100644
--- a/basics/transfer-sol/native/pnpm-lock.yaml
+++ b/basics/transfer-sol/native/pnpm-lock.yaml
@@ -9,8 +9,8 @@ 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)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
borsh:
specifier: ^2.0.0
version: 2.0.0
@@ -83,8 +83,8 @@ packages:
peerDependencies:
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==}
@@ -746,7 +746,7 @@ snapshots:
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)':
+ '@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.1
'@noble/curves': 1.9.1
@@ -781,7 +781,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/json5@0.0.29':
optional: true
@@ -798,7 +798,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/ws@8.18.1':
dependencies:
@@ -1211,7 +1211,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
diff --git a/basics/transfer-sol/pinocchio/pnpm-lock.yaml b/basics/transfer-sol/pinocchio/pnpm-lock.yaml
index 6901d9d9d..19b111713 100644
--- a/basics/transfer-sol/pinocchio/pnpm-lock.yaml
+++ b/basics/transfer-sol/pinocchio/pnpm-lock.yaml
@@ -9,8 +9,8 @@ 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)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
buffer-layout:
specifier: ^1.2.2
version: 1.2.2
@@ -80,8 +80,8 @@ packages:
peerDependencies:
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==}
@@ -538,12 +538,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.1:
resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.1:
resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
@@ -738,7 +740,7 @@ snapshots:
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)':
+ '@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.1
'@noble/curves': 1.9.1
@@ -773,7 +775,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/json5@0.0.29':
optional: true
@@ -790,7 +792,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.15.19
'@types/ws@8.18.1':
dependencies:
@@ -1201,7 +1203,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
diff --git a/compression/cnft-burn/anchor/pnpm-lock.yaml b/compression/cnft-burn/anchor/pnpm-lock.yaml
index 1234d048e..21188ac2a 100644
--- a/compression/cnft-burn/anchor/pnpm-lock.yaml
+++ b/compression/cnft-burn/anchor/pnpm-lock.yaml
@@ -10,25 +10,25 @@ importers:
dependencies:
'@coral-xyz/anchor':
specifier: ^0.32.1
- version: 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@metaplex-foundation/js':
specifier: ^0.19.4
- version: 0.19.5(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ version: 0.19.5(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@metaplex-foundation/mpl-bubblegum':
specifier: ^0.7.0
- version: 0.7.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ version: 0.7.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@metaplex-foundation/mpl-token-metadata':
specifier: ^2.12.0
- version: 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ version: 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@metaplex-foundation/umi':
specifier: ^0.9.0
version: 0.9.1
'@solana/spl-account-compression':
specifier: ^0.2.0
- version: 0.2.1(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.2.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@solana/web3.js':
- specifier: ^1.89.0
- version: 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
axios:
specifier: ^1.6.5
version: 1.7.2
@@ -64,6 +64,10 @@ packages:
resolution: {integrity: sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==}
engines: {node: '>=6.9.0'}
+ '@babel/runtime@7.29.2':
+ resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==}
+ engines: {node: '>=6.9.0'}
+
'@bundlr-network/client@0.8.9':
resolution: {integrity: sha512-SJ7BAt/KhONeFQ0+nbqrw2DUWrsev6y6cmlXt+3x7fPCkw7OJwudtxV/h2nBteZd65NXjqw8yzkmLiLfZ7CCRA==}
deprecated: Bundlr is now Irys - please switch to @irys/sdk - this package will remain compatible with Irys for the foreseeable future.
@@ -254,8 +258,9 @@ packages:
'@noble/curves@1.3.0':
resolution: {integrity: sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==}
- '@noble/curves@1.4.0':
- resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==}
+ '@noble/curves@1.9.7':
+ resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==}
+ engines: {node: ^14.21.3 || >=16}
'@noble/ed25519@1.7.3':
resolution: {integrity: sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==}
@@ -298,12 +303,24 @@ packages:
'@solana/codecs-core@2.0.0-preview.2':
resolution: {integrity: sha512-gLhCJXieSCrAU7acUJjbXl+IbGnqovvxQLlimztPoGgfLQ1wFYu+XJswrEVQqknZYK1pgxpxH3rZ+OKFs0ndQg==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-data-structures@2.0.0-preview.2':
resolution: {integrity: sha512-Xf5vIfromOZo94Q8HbR04TbgTwzigqrKII0GjYr21K7rb3nba4hUW2ir8kguY7HWFBcjHGlU5x3MevKBOLp3Zg==}
'@solana/codecs-numbers@2.0.0-preview.2':
resolution: {integrity: sha512-aLZnDTf43z4qOnpTcDsUVy1Ci9im1Md8thWipSWbE+WM9ojZAx528oAql+Cv8M8N+6ALKwgVRhPZkto6E59ARw==}
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-strings@2.0.0-preview.2':
resolution: {integrity: sha512-EgBwY+lIaHHgMJIqVOGHfIfpdmmUDNoNO/GAUGeFPf+q0dF+DtwhJPEMShhzh64X2MeCZcmSO6Kinx0Bvmmz2g==}
peerDependencies:
@@ -316,6 +333,13 @@ packages:
resolution: {integrity: sha512-H2DZ1l3iYF5Rp5pPbJpmmtCauWeQXRJapkDg8epQ8BJ7cA2Ut/QEtC3CMmw/iMTcuS6uemFNLcWvlOfoQhvQuA==}
hasBin: true
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/options@2.0.0-preview.2':
resolution: {integrity: sha512-FAHqEeH0cVsUOTzjl5OfUBw2cyT8d5Oekx4xcn5hn+NyPAfQJgM3CEThzgRD6Q/4mM5pVUnND3oK/Mt1RzSE/w==}
@@ -361,13 +385,16 @@ packages:
resolution: {integrity: sha512-tUd9srDLkRpe1BYg7we+c4UhRQkq+XQWswsr/L1xfGmoRDF47BPSXf4zE7ZU2GRBGvxtGt7lwJVAufQyQYhxTQ==}
engines: {node: '>=16'}
- '@solana/web3.js@1.91.8':
- resolution: {integrity: sha512-USa6OS1jbh8zOapRJ/CBZImZ8Xb7AJjROZl5adql9TpOoBN9BUzyyouS5oPuZHft7S7eB8uJPuXWYjMi6BHgOw==}
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
'@supercharge/promise-pool@2.4.0':
resolution: {integrity: sha512-O9CMipBlq5OObdt1uKJGIzm9cdjpPWfj+a+Zw9EgWKxaMNHKC7EU7X9taj3H0EGQNLOSq2jAcOa3EzxlfHsD6w==}
engines: {node: '>=8'}
+ '@swc/helpers@0.5.19':
+ resolution: {integrity: sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==}
+
'@types/bn.js@5.1.5':
resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==}
@@ -392,9 +419,15 @@ packages:
'@types/node@20.12.12':
resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==}
+ '@types/uuid@10.0.0':
+ resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
+
'@types/ws@7.4.7':
resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
+ '@types/ws@8.18.1':
+ resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
+
'@ungap/promise-all-settled@1.1.2':
resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==}
@@ -406,10 +439,6 @@ packages:
resolution: {integrity: sha512-m8475I6W5LTatTZuUz5JJNK42wFRgkJTB0I9tkruMwfqBF2UN2eomkYNVf9RbrsROelCRzSFmugqjKZBFaubsA==}
engines: {node: '>=16'}
- JSONStream@1.3.5:
- resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
- hasBin: true
-
aes-js@3.0.0:
resolution: {integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==}
@@ -628,6 +657,10 @@ packages:
resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
chardet@0.7.0:
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
@@ -675,6 +708,10 @@ packages:
resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
engines: {node: '>=18'}
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@@ -829,6 +866,9 @@ packages:
eventemitter3@4.0.7:
resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
+ eventemitter3@5.0.4:
+ resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==}
+
exponential-backoff@3.1.1:
resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==}
@@ -1046,8 +1086,8 @@ packages:
peerDependencies:
ws: '*'
- jayson@4.1.0:
- resolution: {integrity: sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==}
+ jayson@4.3.0:
+ resolution: {integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==}
engines: {node: '>=8'}
hasBin: true
@@ -1077,10 +1117,6 @@ packages:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
- jsonparse@1.3.1:
- resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
- engines: {'0': node >= 0.2.0}
-
keccak@3.0.4:
resolution: {integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==}
engines: {node: '>=10.0.0'}
@@ -1319,8 +1355,8 @@ packages:
ripemd160@2.0.2:
resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==}
- rpc-websockets@7.11.0:
- resolution: {integrity: sha512-IkLYjayPv6Io8C/TdCL5gwgzd1hFz2vmBZrjMw/SPEXo51ETOhnzgS4Qy5GWi2JQN7HKHa66J3+2mv0fgNh/7w==}
+ rpc-websockets@9.3.5:
+ resolution: {integrity: sha512-4mAmr+AEhPYJ9TmDtxF3r3ZcbWy7W8kvZ4PoZYw/Xgp2J7WixjwTgiQZsoTDvch5nimmg3Ay6/0Kuh9oIvVs9A==}
run-async@2.4.1:
resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
@@ -1370,6 +1406,12 @@ packages:
resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
engines: {node: '>= 0.6'}
+ stream-chain@2.2.5:
+ resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==}
+
+ stream-json@1.9.1:
+ resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==}
+
stream-transform@3.3.2:
resolution: {integrity: sha512-v64PUnPy9Qw94NGuaEMo+9RHQe4jTBYf+NkTtqkCgeuiNo8NlL0LtLR7fkKWNVFtp3RhIm5Dlxkgm5uz7TDimQ==}
@@ -1396,12 +1438,13 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
- superstruct@0.14.2:
- resolution: {integrity: sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==}
-
superstruct@0.15.5:
resolution: {integrity: sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==}
+ 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'}
@@ -1463,6 +1506,9 @@ packages:
tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
tweetnacl@1.0.3:
resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==}
@@ -1488,8 +1534,8 @@ packages:
undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
- utf-8-validate@5.0.10:
- resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==}
+ utf-8-validate@6.0.6:
+ resolution: {integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==}
engines: {node: '>=6.14.2'}
utf8@3.0.0:
@@ -1501,6 +1547,10 @@ packages:
util@0.12.5:
resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==}
+ uuid@11.1.0:
+ resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==}
+ hasBin: true
+
uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
@@ -1556,8 +1606,8 @@ packages:
utf-8-validate:
optional: true
- ws@7.5.9:
- resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
+ ws@7.5.10:
+ resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==}
engines: {node: '>=8.3.0'}
peerDependencies:
bufferutil: ^4.0.1
@@ -1610,13 +1660,15 @@ snapshots:
dependencies:
regenerator-runtime: 0.14.1
- '@bundlr-network/client@0.8.9(bufferutil@4.0.8)(debug@4.3.4)(utf-8-validate@5.0.10)':
+ '@babel/runtime@7.29.2': {}
+
+ '@bundlr-network/client@0.8.9(bufferutil@4.0.8)(debug@4.3.4)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
- '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@supercharge/promise-pool': 2.4.0
algosdk: 1.24.1
- arbundles: 0.6.23(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(debug@4.3.4)(utf-8-validate@5.0.10)
+ arbundles: 0.6.23(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(debug@4.3.4)(utf-8-validate@6.0.6)
arweave: 1.15.1
async-retry: 1.3.3
axios: 0.25.0(debug@4.3.4)
@@ -1625,7 +1677,7 @@ snapshots:
bs58: 4.0.1
commander: 8.3.0
csv: 6.3.9
- ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.6)
inquirer: 8.2.6
js-sha256: 0.9.0
mime-types: 2.1.35
@@ -1635,16 +1687,17 @@ snapshots:
- bufferutil
- debug
- encoding
+ - typescript
- utf-8-validate
'@coral-xyz/anchor-errors@0.31.1': {}
- '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@coral-xyz/anchor-errors': 0.31.1
- '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))
'@noble/hashes': 1.8.0
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bn.js: 5.2.2
bs58: 4.0.1
buffer-layout: 1.2.2
@@ -1657,11 +1710,12 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))':
dependencies:
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bn.js: 5.2.2
buffer-layout: 1.2.2
@@ -1724,7 +1778,7 @@ snapshots:
dependencies:
'@ethersproject/bytes': 5.7.0
'@ethersproject/logger': 5.7.0
- bn.js: 5.2.1
+ bn.js: 5.2.2
'@ethersproject/bytes@5.7.0':
dependencies:
@@ -1810,7 +1864,7 @@ snapshots:
dependencies:
'@ethersproject/logger': 5.7.0
- '@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.6)':
dependencies:
'@ethersproject/abstract-provider': 5.7.0
'@ethersproject/abstract-signer': 5.7.0
@@ -1831,7 +1885,7 @@ snapshots:
'@ethersproject/transactions': 5.7.0
'@ethersproject/web': 5.7.1
bech32: 1.1.4
- ws: 7.4.6(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.4.6(bufferutil@4.0.8)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- bufferutil
- utf-8-validate
@@ -1857,7 +1911,7 @@ snapshots:
'@ethersproject/bytes': 5.7.0
'@ethersproject/logger': 5.7.0
'@ethersproject/properties': 5.7.0
- bn.js: 5.2.1
+ bn.js: 5.2.2
elliptic: 6.5.4
hash.js: 1.1.7
@@ -1928,46 +1982,49 @@ snapshots:
'@ethersproject/properties': 5.7.0
'@ethersproject/strings': 5.7.0
- '@metaplex-foundation/beet-solana@0.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/beet-solana@0.3.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.1
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bs58: 5.0.0
debug: 4.3.4
transitivePeerDependencies:
- bufferutil
- encoding
- supports-color
+ - typescript
- utf-8-validate
- '@metaplex-foundation/beet-solana@0.4.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/beet-solana@0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.1
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bs58: 5.0.0
debug: 4.3.4
transitivePeerDependencies:
- bufferutil
- encoding
- supports-color
+ - typescript
- utf-8-validate
- '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.2
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bs58: 5.0.0
debug: 4.3.4
transitivePeerDependencies:
- bufferutil
- encoding
- supports-color
+ - typescript
- utf-8-validate
'@metaplex-foundation/beet@0.4.0':
dependencies:
ansicolors: 0.3.2
- bn.js: 5.2.1
+ bn.js: 5.2.2
debug: 4.3.4
transitivePeerDependencies:
- supports-color
@@ -1975,7 +2032,7 @@ snapshots:
'@metaplex-foundation/beet@0.6.1':
dependencies:
ansicolors: 0.3.2
- bn.js: 5.2.1
+ bn.js: 5.2.2
debug: 4.3.4
transitivePeerDependencies:
- supports-color
@@ -1983,7 +2040,7 @@ snapshots:
'@metaplex-foundation/beet@0.7.1':
dependencies:
ansicolors: 0.3.2
- bn.js: 5.2.1
+ bn.js: 5.2.2
debug: 4.3.4
transitivePeerDependencies:
- supports-color
@@ -1992,28 +2049,28 @@ snapshots:
dependencies:
ansicolors: 0.3.2
assert: 2.1.0
- bn.js: 5.2.1
+ bn.js: 5.2.2
debug: 4.3.4
transitivePeerDependencies:
- supports-color
'@metaplex-foundation/cusper@0.0.2': {}
- '@metaplex-foundation/js@0.19.5(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/js@0.19.5(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
- '@bundlr-network/client': 0.8.9(bufferutil@4.0.8)(debug@4.3.4)(utf-8-validate@5.0.10)
+ '@bundlr-network/client': 0.8.9(bufferutil@4.0.8)(debug@4.3.4)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@metaplex-foundation/beet': 0.7.1
- '@metaplex-foundation/mpl-auction-house': 2.5.1(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@metaplex-foundation/mpl-bubblegum': 0.6.2(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@metaplex-foundation/mpl-candy-guard': 0.3.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@metaplex-foundation/mpl-candy-machine': 5.1.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@metaplex-foundation/mpl-candy-machine-core': 0.1.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@metaplex-foundation/mpl-token-metadata': 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/mpl-auction-house': 2.5.1(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@metaplex-foundation/mpl-bubblegum': 0.6.2(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@metaplex-foundation/mpl-candy-guard': 0.3.2(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@metaplex-foundation/mpl-candy-machine': 5.1.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@metaplex-foundation/mpl-candy-machine-core': 0.1.2(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@metaplex-foundation/mpl-token-metadata': 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@noble/ed25519': 1.7.3
'@noble/hashes': 1.4.0
- '@solana/spl-account-compression': 0.1.10(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token': 0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/spl-account-compression': 0.1.10(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bignumber.js: 9.1.2
bn.js: 5.2.1
bs58: 5.0.0
@@ -2030,105 +2087,112 @@ snapshots:
- encoding
- fastestsmallesttextencoderdecoder
- supports-color
+ - typescript
- utf-8-validate
- '@metaplex-foundation/mpl-auction-house@2.5.1(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/mpl-auction-house@2.5.1(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.6.1
- '@metaplex-foundation/beet-solana': 0.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.3.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@metaplex-foundation/cusper': 0.0.2
- '@solana/spl-token': 0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- bn.js: 5.2.1
+ '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ bn.js: 5.2.2
transitivePeerDependencies:
- bufferutil
- encoding
- fastestsmallesttextencoderdecoder
- supports-color
+ - typescript
- utf-8-validate
- '@metaplex-foundation/mpl-bubblegum@0.6.2(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/mpl-bubblegum@0.6.2(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.1
- '@metaplex-foundation/beet-solana': 0.4.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@metaplex-foundation/cusper': 0.0.2
- '@metaplex-foundation/mpl-token-metadata': 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@solana/spl-account-compression': 0.1.10(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token': 0.1.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- bn.js: 5.2.1
+ '@metaplex-foundation/mpl-token-metadata': 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/spl-account-compression': 0.1.10(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/spl-token': 0.1.8(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ bn.js: 5.2.2
js-sha3: 0.8.0
transitivePeerDependencies:
- bufferutil
- encoding
- fastestsmallesttextencoderdecoder
- supports-color
+ - typescript
- utf-8-validate
- '@metaplex-foundation/mpl-bubblegum@0.7.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/mpl-bubblegum@0.7.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.1
- '@metaplex-foundation/beet-solana': 0.4.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@metaplex-foundation/cusper': 0.0.2
- '@metaplex-foundation/mpl-token-metadata': 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@solana/spl-account-compression': 0.1.10(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token': 0.1.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/mpl-token-metadata': 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/spl-account-compression': 0.1.10(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/spl-token': 0.1.8(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
js-sha3: 0.8.0
transitivePeerDependencies:
- bufferutil
- encoding
- fastestsmallesttextencoderdecoder
- supports-color
+ - typescript
- utf-8-validate
- '@metaplex-foundation/mpl-candy-guard@0.3.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/mpl-candy-guard@0.3.2(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.4.0
- '@metaplex-foundation/beet-solana': 0.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.3.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@metaplex-foundation/cusper': 0.0.2
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- bn.js: 5.2.1
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ bn.js: 5.2.2
transitivePeerDependencies:
- bufferutil
- encoding
- supports-color
+ - typescript
- utf-8-validate
- '@metaplex-foundation/mpl-candy-machine-core@0.1.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/mpl-candy-machine-core@0.1.2(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.4.0
- '@metaplex-foundation/beet-solana': 0.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.3.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@metaplex-foundation/cusper': 0.0.2
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- bn.js: 5.2.1
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ bn.js: 5.2.2
transitivePeerDependencies:
- bufferutil
- encoding
- supports-color
+ - typescript
- utf-8-validate
- '@metaplex-foundation/mpl-candy-machine@5.1.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/mpl-candy-machine@5.1.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.1
- '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@metaplex-foundation/cusper': 0.0.2
- '@solana/spl-token': 0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- bufferutil
- encoding
- fastestsmallesttextencoderdecoder
- supports-color
+ - typescript
- utf-8-validate
- '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.2
- '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@metaplex-foundation/cusper': 0.0.2
- '@solana/spl-token': 0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bn.js: 5.2.1
debug: 4.3.4
transitivePeerDependencies:
@@ -2136,6 +2200,7 @@ snapshots:
- encoding
- fastestsmallesttextencoderdecoder
- supports-color
+ - typescript
- utf-8-validate
'@metaplex-foundation/umi-options@0.8.9': {}
@@ -2172,9 +2237,9 @@ snapshots:
dependencies:
'@noble/hashes': 1.3.3
- '@noble/curves@1.4.0':
+ '@noble/curves@1.9.7':
dependencies:
- '@noble/hashes': 1.4.0
+ '@noble/hashes': 1.8.0
'@noble/ed25519@1.7.3': {}
@@ -2203,15 +2268,16 @@ snapshots:
'@noble/hashes': 1.3.3
'@scure/base': 1.1.6
- '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bigint-buffer: 1.1.5
bignumber.js: 9.1.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@solana/buffer-layout@4.0.1':
@@ -2222,6 +2288,11 @@ snapshots:
dependencies:
'@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-core@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
'@solana/codecs-data-structures@2.0.0-preview.2':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
@@ -2233,6 +2304,12 @@ snapshots:
'@solana/codecs-core': 2.0.0-preview.2
'@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-numbers@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@4.9.5)
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
'@solana/codecs-strings@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
@@ -2255,17 +2332,23 @@ snapshots:
chalk: 5.3.0
commander: 12.1.0
+ '@solana/errors@2.3.0(typescript@4.9.5)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.3
+ typescript: 4.9.5
+
'@solana/options@2.0.0-preview.2':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
'@solana/codecs-numbers': 2.0.0-preview.2
- '@solana/spl-account-compression@0.1.10(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/spl-account-compression@0.1.10(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.1
- '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- bn.js: 5.2.1
+ '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ bn.js: 5.2.2
borsh: 0.7.0
js-sha3: 0.8.0
typescript-collections: 1.3.3
@@ -2273,13 +2356,14 @@ snapshots:
- bufferutil
- encoding
- supports-color
+ - typescript
- utf-8-validate
- '@solana/spl-account-compression@0.2.1(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/spl-account-compression@0.2.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.2
- '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bn.js: 5.2.1
js-sha3: 0.9.3
typescript-collections: 1.3.3
@@ -2287,20 +2371,21 @@ snapshots:
- bufferutil
- encoding
- supports-color
+ - typescript
- utf-8-validate
- '@solana/spl-token-metadata@0.1.4(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)':
+ '@solana/spl-token-metadata@0.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)
'@solana/spl-type-length-value': 0.1.0
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- '@solana/spl-token@0.1.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/spl-token@0.1.8(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@babel/runtime': 7.24.6
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bn.js: 5.2.2
buffer: 6.0.3
buffer-layout: 1.2.2
@@ -2308,29 +2393,31 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- '@solana/spl-token@0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@solana/spl-token@0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
buffer: 6.0.3
transitivePeerDependencies:
- bufferutil
- encoding
- fastestsmallesttextencoderdecoder
+ - typescript
- utf-8-validate
'@solana/spl-type-length-value@0.1.0':
dependencies:
buffer: 6.0.3
- '@solana/wallet-adapter-base@0.9.23(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@solana/wallet-adapter-base@0.9.23(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))':
dependencies:
'@solana/wallet-standard-features': 1.2.0
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@wallet-standard/base': 1.0.1
'@wallet-standard/features': 1.0.3
eventemitter3: 4.0.7
@@ -2340,30 +2427,35 @@ snapshots:
'@wallet-standard/base': 1.0.1
'@wallet-standard/features': 1.0.3
- '@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
- '@babel/runtime': 7.24.6
- '@noble/curves': 1.4.0
- '@noble/hashes': 1.4.0
+ '@babel/runtime': 7.29.2
+ '@noble/curves': 1.9.7
+ '@noble/hashes': 1.8.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@4.9.5)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
- 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.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ jayson: 4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
node-fetch: 2.7.0
- rpc-websockets: 7.11.0
- superstruct: 0.14.2
+ rpc-websockets: 9.3.5
+ superstruct: 2.0.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@supercharge/promise-pool@2.4.0': {}
+ '@swc/helpers@0.5.19':
+ dependencies:
+ tslib: 2.8.1
+
'@types/bn.js@5.1.5':
dependencies:
'@types/node': 20.12.12
@@ -2372,7 +2464,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 20.12.12
'@types/json5@0.0.29':
optional: true
@@ -2387,9 +2479,15 @@ snapshots:
dependencies:
undici-types: 5.26.5
+ '@types/uuid@10.0.0': {}
+
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 20.12.12
+
+ '@types/ws@8.18.1':
+ dependencies:
+ '@types/node': 20.12.12
'@ungap/promise-all-settled@1.1.2': {}
@@ -2399,11 +2497,6 @@ snapshots:
dependencies:
'@wallet-standard/base': 1.0.1
- JSONStream@1.3.5:
- dependencies:
- jsonparse: 1.3.1
- through: 2.3.8
-
aes-js@3.0.0: {}
agentkeepalive@4.5.0:
@@ -2446,11 +2539,11 @@ snapshots:
normalize-path: 3.0.0
picomatch: 2.3.1
- arbundles@0.6.23(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(debug@4.3.4)(utf-8-validate@5.0.10):
+ arbundles@0.6.23(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(debug@4.3.4)(utf-8-validate@6.0.6):
dependencies:
'@noble/ed25519': 1.7.3
'@randlabs/myalgo-connect': 1.4.2
- '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))
algosdk: 1.24.1
arweave: 1.15.1
arweave-stream-tx: 1.2.2(arweave@1.15.1)
@@ -2458,7 +2551,7 @@ snapshots:
axios: 0.21.4(debug@4.3.4)
base64url: 3.0.1
bs58: 4.0.1
- ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.6)
keccak: 3.0.4
multistream: 4.1.0
process: 0.11.10
@@ -2596,13 +2689,13 @@ snapshots:
borsh@0.6.0:
dependencies:
- bn.js: 5.2.1
+ bn.js: 5.2.2
bs58: 4.0.1
text-encoding-utf-8: 1.0.2
borsh@0.7.0:
dependencies:
- bn.js: 5.2.1
+ bn.js: 5.2.2
bs58: 4.0.1
text-encoding-utf-8: 1.0.2
@@ -2677,6 +2770,8 @@ snapshots:
chalk@5.3.0: {}
+ chalk@5.6.2: {}
+
chardet@0.7.0: {}
check-error@1.0.3:
@@ -2728,6 +2823,8 @@ snapshots:
commander@12.1.0: {}
+ commander@14.0.3: {}
+
commander@2.20.3: {}
commander@8.3.0: {}
@@ -2866,7 +2963,7 @@ snapshots:
ethereum-bloom-filters@1.1.0:
dependencies:
- '@noble/hashes': 1.4.0
+ '@noble/hashes': 1.8.0
ethereum-cryptography@2.1.3:
dependencies:
@@ -2875,7 +2972,7 @@ snapshots:
'@scure/bip32': 1.3.3
'@scure/bip39': 1.2.2
- ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.6):
dependencies:
'@ethersproject/abi': 5.7.0
'@ethersproject/abstract-provider': 5.7.0
@@ -2895,7 +2992,7 @@ snapshots:
'@ethersproject/networks': 5.7.1
'@ethersproject/pbkdf2': 5.7.0
'@ethersproject/properties': 5.7.0
- '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.6)
'@ethersproject/random': 5.7.0
'@ethersproject/rlp': 5.7.0
'@ethersproject/sha2': 5.7.0
@@ -2918,6 +3015,8 @@ snapshots:
eventemitter3@4.0.7: {}
+ eventemitter3@5.0.4: {}
+
exponential-backoff@3.1.1: {}
external-editor@3.1.0:
@@ -3127,24 +3226,24 @@ snapshots:
isexe@2.0.0: {}
- isomorphic-ws@4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
+ isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)):
dependencies:
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
- jayson@4.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ jayson@4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
dependencies:
'@types/connect': 3.4.38
'@types/node': 12.20.55
'@types/ws': 7.4.7
- JSONStream: 1.3.5
commander: 2.20.3
delay: 5.0.0
es6-promisify: 5.0.0
eyes: 0.1.8
- isomorphic-ws: 4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6))
json-stringify-safe: 5.0.1
+ stream-json: 1.9.1
uuid: 8.3.2
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- bufferutil
- utf-8-validate
@@ -3172,8 +3271,6 @@ snapshots:
minimist: 1.2.8
optional: true
- jsonparse@1.3.1: {}
-
keccak@3.0.4:
dependencies:
node-addon-api: 2.0.2
@@ -3435,14 +3532,18 @@ snapshots:
hash-base: 3.1.0
inherits: 2.0.4
- rpc-websockets@7.11.0:
+ rpc-websockets@9.3.5:
dependencies:
- eventemitter3: 4.0.7
- uuid: 8.3.2
- ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@swc/helpers': 0.5.19
+ '@types/uuid': 10.0.0
+ '@types/ws': 8.18.1
+ buffer: 6.0.3
+ eventemitter3: 5.0.4
+ uuid: 11.1.0
+ ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
run-async@2.4.1: {}
@@ -3493,6 +3594,12 @@ snapshots:
statuses@1.5.0: {}
+ stream-chain@2.2.5: {}
+
+ stream-json@1.9.1:
+ dependencies:
+ stream-chain: 2.2.5
+
stream-transform@3.3.2: {}
string-width@4.2.3:
@@ -3518,10 +3625,10 @@ snapshots:
strip-json-comments@3.1.1: {}
- superstruct@0.14.2: {}
-
superstruct@0.15.5: {}
+ superstruct@2.0.2: {}
+
supports-color@7.2.0:
dependencies:
has-flag: 4.0.0
@@ -3584,6 +3691,8 @@ snapshots:
tslib@2.6.2: {}
+ tslib@2.8.1: {}
+
tweetnacl@1.0.3: {}
type-detect@4.0.8: {}
@@ -3598,7 +3707,7 @@ snapshots:
undici-types@5.26.5: {}
- utf-8-validate@5.0.10:
+ utf-8-validate@6.0.6:
dependencies:
node-gyp-build: 4.8.1
optional: true
@@ -3615,6 +3724,8 @@ snapshots:
is-typed-array: 1.1.13
which-typed-array: 1.1.15
+ uuid@11.1.0: {}
+
uuid@8.3.2: {}
vlq@2.0.4: {}
@@ -3626,7 +3737,7 @@ snapshots:
web3-utils@1.10.4:
dependencies:
'@ethereumjs/util': 8.1.0
- bn.js: 5.2.1
+ bn.js: 5.2.2
ethereum-bloom-filters: 1.1.0
ethereum-cryptography: 2.1.3
ethjs-unit: 0.1.6
@@ -3669,20 +3780,20 @@ snapshots:
wrappy@1.0.2: {}
- ws@7.4.6(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@7.4.6(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
- ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
- ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
y18n@5.0.8: {}
diff --git a/compression/cutils/anchor/pnpm-lock.yaml b/compression/cutils/anchor/pnpm-lock.yaml
index 5baaa6bd6..daba6d461 100644
--- a/compression/cutils/anchor/pnpm-lock.yaml
+++ b/compression/cutils/anchor/pnpm-lock.yaml
@@ -10,22 +10,22 @@ importers:
dependencies:
'@coral-xyz/anchor':
specifier: ^0.32.1
- version: 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@metaplex-foundation/js':
specifier: ^0.19.4
- version: 0.19.5(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ version: 0.19.5(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@metaplex-foundation/mpl-bubblegum':
specifier: ^0.7.0
- version: 0.7.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ version: 0.7.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@solana/spl-account-compression':
specifier: ^0.1.8
- version: 0.1.10(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.1.10(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@solana/spl-token':
specifier: ^0.3.8
- version: 0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ version: 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@solana/web3.js':
- specifier: ^1.77.3
- version: 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
axios:
specifier: ^1.4.0
version: 1.7.2
@@ -64,6 +64,10 @@ packages:
resolution: {integrity: sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==}
engines: {node: '>=6.9.0'}
+ '@babel/runtime@7.29.2':
+ resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==}
+ engines: {node: '>=6.9.0'}
+
'@bundlr-network/client@0.8.9':
resolution: {integrity: sha512-SJ7BAt/KhONeFQ0+nbqrw2DUWrsev6y6cmlXt+3x7fPCkw7OJwudtxV/h2nBteZd65NXjqw8yzkmLiLfZ7CCRA==}
deprecated: Bundlr is now Irys - please switch to @irys/sdk - this package will remain compatible with Irys for the foreseeable future.
@@ -247,8 +251,9 @@ packages:
'@noble/curves@1.3.0':
resolution: {integrity: sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==}
- '@noble/curves@1.4.0':
- resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==}
+ '@noble/curves@1.9.7':
+ resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==}
+ engines: {node: ^14.21.3 || >=16}
'@noble/ed25519@1.7.3':
resolution: {integrity: sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==}
@@ -291,12 +296,24 @@ packages:
'@solana/codecs-core@2.0.0-preview.2':
resolution: {integrity: sha512-gLhCJXieSCrAU7acUJjbXl+IbGnqovvxQLlimztPoGgfLQ1wFYu+XJswrEVQqknZYK1pgxpxH3rZ+OKFs0ndQg==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-data-structures@2.0.0-preview.2':
resolution: {integrity: sha512-Xf5vIfromOZo94Q8HbR04TbgTwzigqrKII0GjYr21K7rb3nba4hUW2ir8kguY7HWFBcjHGlU5x3MevKBOLp3Zg==}
'@solana/codecs-numbers@2.0.0-preview.2':
resolution: {integrity: sha512-aLZnDTf43z4qOnpTcDsUVy1Ci9im1Md8thWipSWbE+WM9ojZAx528oAql+Cv8M8N+6ALKwgVRhPZkto6E59ARw==}
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-strings@2.0.0-preview.2':
resolution: {integrity: sha512-EgBwY+lIaHHgMJIqVOGHfIfpdmmUDNoNO/GAUGeFPf+q0dF+DtwhJPEMShhzh64X2MeCZcmSO6Kinx0Bvmmz2g==}
peerDependencies:
@@ -309,6 +326,13 @@ packages:
resolution: {integrity: sha512-H2DZ1l3iYF5Rp5pPbJpmmtCauWeQXRJapkDg8epQ8BJ7cA2Ut/QEtC3CMmw/iMTcuS6uemFNLcWvlOfoQhvQuA==}
hasBin: true
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/options@2.0.0-preview.2':
resolution: {integrity: sha512-FAHqEeH0cVsUOTzjl5OfUBw2cyT8d5Oekx4xcn5hn+NyPAfQJgM3CEThzgRD6Q/4mM5pVUnND3oK/Mt1RzSE/w==}
@@ -348,13 +372,16 @@ packages:
resolution: {integrity: sha512-tUd9srDLkRpe1BYg7we+c4UhRQkq+XQWswsr/L1xfGmoRDF47BPSXf4zE7ZU2GRBGvxtGt7lwJVAufQyQYhxTQ==}
engines: {node: '>=16'}
- '@solana/web3.js@1.91.8':
- resolution: {integrity: sha512-USa6OS1jbh8zOapRJ/CBZImZ8Xb7AJjROZl5adql9TpOoBN9BUzyyouS5oPuZHft7S7eB8uJPuXWYjMi6BHgOw==}
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
'@supercharge/promise-pool@2.4.0':
resolution: {integrity: sha512-O9CMipBlq5OObdt1uKJGIzm9cdjpPWfj+a+Zw9EgWKxaMNHKC7EU7X9taj3H0EGQNLOSq2jAcOa3EzxlfHsD6w==}
engines: {node: '>=8'}
+ '@swc/helpers@0.5.19':
+ resolution: {integrity: sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==}
+
'@tsconfig/node10@1.0.11':
resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==}
@@ -391,9 +418,15 @@ packages:
'@types/node@20.12.12':
resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==}
+ '@types/uuid@10.0.0':
+ resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
+
'@types/ws@7.4.7':
resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
+ '@types/ws@8.18.1':
+ resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
+
'@ungap/promise-all-settled@1.1.2':
resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==}
@@ -405,10 +438,6 @@ packages:
resolution: {integrity: sha512-m8475I6W5LTatTZuUz5JJNK42wFRgkJTB0I9tkruMwfqBF2UN2eomkYNVf9RbrsROelCRzSFmugqjKZBFaubsA==}
engines: {node: '>=16'}
- JSONStream@1.3.5:
- resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
- hasBin: true
-
acorn-walk@8.3.2:
resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==}
engines: {node: '>=0.4.0'}
@@ -559,9 +588,6 @@ packages:
bn.js@4.11.6:
resolution: {integrity: sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==}
- bn.js@4.12.0:
- resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==}
-
bn.js@4.12.2:
resolution: {integrity: sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==}
@@ -642,6 +668,10 @@ packages:
resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
chardet@0.7.0:
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
@@ -689,6 +719,10 @@ packages:
resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
engines: {node: '>=18'}
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@@ -853,6 +887,9 @@ packages:
eventemitter3@4.0.7:
resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
+ eventemitter3@5.0.4:
+ resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==}
+
exponential-backoff@3.1.1:
resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==}
@@ -1070,8 +1107,8 @@ packages:
peerDependencies:
ws: '*'
- jayson@4.1.0:
- resolution: {integrity: sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==}
+ jayson@4.3.0:
+ resolution: {integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==}
engines: {node: '>=8'}
hasBin: true
@@ -1098,10 +1135,6 @@ packages:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
- jsonparse@1.3.1:
- resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
- engines: {'0': node >= 0.2.0}
-
keccak@3.0.4:
resolution: {integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==}
engines: {node: '>=10.0.0'}
@@ -1340,8 +1373,8 @@ packages:
ripemd160@2.0.2:
resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==}
- rpc-websockets@7.11.0:
- resolution: {integrity: sha512-IkLYjayPv6Io8C/TdCL5gwgzd1hFz2vmBZrjMw/SPEXo51ETOhnzgS4Qy5GWi2JQN7HKHa66J3+2mv0fgNh/7w==}
+ rpc-websockets@9.3.5:
+ resolution: {integrity: sha512-4mAmr+AEhPYJ9TmDtxF3r3ZcbWy7W8kvZ4PoZYw/Xgp2J7WixjwTgiQZsoTDvch5nimmg3Ay6/0Kuh9oIvVs9A==}
run-async@2.4.1:
resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
@@ -1391,6 +1424,12 @@ packages:
resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
engines: {node: '>= 0.6'}
+ stream-chain@2.2.5:
+ resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==}
+
+ stream-json@1.9.1:
+ resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==}
+
stream-transform@3.3.2:
resolution: {integrity: sha512-v64PUnPy9Qw94NGuaEMo+9RHQe4jTBYf+NkTtqkCgeuiNo8NlL0LtLR7fkKWNVFtp3RhIm5Dlxkgm5uz7TDimQ==}
@@ -1417,12 +1456,13 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
- superstruct@0.14.2:
- resolution: {integrity: sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==}
-
superstruct@0.15.5:
resolution: {integrity: sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==}
+ 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'}
@@ -1498,6 +1538,9 @@ packages:
tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
tweetnacl@1.0.3:
resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==}
@@ -1523,8 +1566,8 @@ packages:
undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
- utf-8-validate@5.0.10:
- resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==}
+ utf-8-validate@6.0.6:
+ resolution: {integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==}
engines: {node: '>=6.14.2'}
utf8@3.0.0:
@@ -1536,6 +1579,10 @@ packages:
util@0.12.5:
resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==}
+ uuid@11.1.0:
+ resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==}
+ hasBin: true
+
uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
@@ -1594,8 +1641,8 @@ packages:
utf-8-validate:
optional: true
- ws@7.5.9:
- resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
+ ws@7.5.10:
+ resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==}
engines: {node: '>=8.3.0'}
peerDependencies:
bufferutil: ^4.0.1
@@ -1652,13 +1699,15 @@ snapshots:
dependencies:
regenerator-runtime: 0.14.1
- '@bundlr-network/client@0.8.9(bufferutil@4.0.8)(debug@4.3.4)(utf-8-validate@5.0.10)':
+ '@babel/runtime@7.29.2': {}
+
+ '@bundlr-network/client@0.8.9(bufferutil@4.0.8)(debug@4.3.4)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
- '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@supercharge/promise-pool': 2.4.0
algosdk: 1.24.1
- arbundles: 0.6.23(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(debug@4.3.4)(utf-8-validate@5.0.10)
+ arbundles: 0.6.23(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(debug@4.3.4)(utf-8-validate@6.0.6)
arweave: 1.15.1
async-retry: 1.3.3
axios: 0.25.0(debug@4.3.4)
@@ -1667,7 +1716,7 @@ snapshots:
bs58: 4.0.1
commander: 8.3.0
csv: 6.3.9
- ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.6)
inquirer: 8.2.6
js-sha256: 0.9.0
mime-types: 2.1.35
@@ -1677,16 +1726,17 @@ snapshots:
- bufferutil
- debug
- encoding
+ - typescript
- utf-8-validate
'@coral-xyz/anchor-errors@0.31.1': {}
- '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@coral-xyz/anchor-errors': 0.31.1
- '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))
'@noble/hashes': 1.8.0
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bn.js: 5.2.2
bs58: 4.0.1
buffer-layout: 1.2.2
@@ -1699,11 +1749,12 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))':
dependencies:
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bn.js: 5.2.2
buffer-layout: 1.2.2
@@ -1770,7 +1821,7 @@ snapshots:
dependencies:
'@ethersproject/bytes': 5.7.0
'@ethersproject/logger': 5.7.0
- bn.js: 5.2.1
+ bn.js: 5.2.2
'@ethersproject/bytes@5.7.0':
dependencies:
@@ -1856,7 +1907,7 @@ snapshots:
dependencies:
'@ethersproject/logger': 5.7.0
- '@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.6)':
dependencies:
'@ethersproject/abstract-provider': 5.7.0
'@ethersproject/abstract-signer': 5.7.0
@@ -1877,7 +1928,7 @@ snapshots:
'@ethersproject/transactions': 5.7.0
'@ethersproject/web': 5.7.1
bech32: 1.1.4
- ws: 7.4.6(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.4.6(bufferutil@4.0.8)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- bufferutil
- utf-8-validate
@@ -1903,7 +1954,7 @@ snapshots:
'@ethersproject/bytes': 5.7.0
'@ethersproject/logger': 5.7.0
'@ethersproject/properties': 5.7.0
- bn.js: 5.2.1
+ bn.js: 5.2.2
elliptic: 6.5.4
hash.js: 1.1.7
@@ -1983,46 +2034,49 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.4.15
- '@metaplex-foundation/beet-solana@0.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/beet-solana@0.3.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.1
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bs58: 5.0.0
debug: 4.3.4
transitivePeerDependencies:
- bufferutil
- encoding
- supports-color
+ - typescript
- utf-8-validate
- '@metaplex-foundation/beet-solana@0.4.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/beet-solana@0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.1
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bs58: 5.0.0
debug: 4.3.4
transitivePeerDependencies:
- bufferutil
- encoding
- supports-color
+ - typescript
- utf-8-validate
- '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.2
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bs58: 5.0.0
debug: 4.3.4
transitivePeerDependencies:
- bufferutil
- encoding
- supports-color
+ - typescript
- utf-8-validate
'@metaplex-foundation/beet@0.4.0':
dependencies:
ansicolors: 0.3.2
- bn.js: 5.2.1
+ bn.js: 5.2.2
debug: 4.3.4
transitivePeerDependencies:
- supports-color
@@ -2030,7 +2084,7 @@ snapshots:
'@metaplex-foundation/beet@0.6.1':
dependencies:
ansicolors: 0.3.2
- bn.js: 5.2.1
+ bn.js: 5.2.2
debug: 4.3.4
transitivePeerDependencies:
- supports-color
@@ -2054,21 +2108,21 @@ snapshots:
'@metaplex-foundation/cusper@0.0.2': {}
- '@metaplex-foundation/js@0.19.5(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/js@0.19.5(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
- '@bundlr-network/client': 0.8.9(bufferutil@4.0.8)(debug@4.3.4)(utf-8-validate@5.0.10)
+ '@bundlr-network/client': 0.8.9(bufferutil@4.0.8)(debug@4.3.4)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@metaplex-foundation/beet': 0.7.1
- '@metaplex-foundation/mpl-auction-house': 2.5.1(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@metaplex-foundation/mpl-bubblegum': 0.6.2(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@metaplex-foundation/mpl-candy-guard': 0.3.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@metaplex-foundation/mpl-candy-machine': 5.1.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@metaplex-foundation/mpl-candy-machine-core': 0.1.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@metaplex-foundation/mpl-token-metadata': 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/mpl-auction-house': 2.5.1(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@metaplex-foundation/mpl-bubblegum': 0.6.2(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@metaplex-foundation/mpl-candy-guard': 0.3.2(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@metaplex-foundation/mpl-candy-machine': 5.1.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@metaplex-foundation/mpl-candy-machine-core': 0.1.2(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@metaplex-foundation/mpl-token-metadata': 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@noble/ed25519': 1.7.3
'@noble/hashes': 1.4.0
- '@solana/spl-account-compression': 0.1.10(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token': 0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/spl-account-compression': 0.1.10(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bignumber.js: 9.1.2
bn.js: 5.2.1
bs58: 5.0.0
@@ -2085,32 +2139,34 @@ snapshots:
- encoding
- fastestsmallesttextencoderdecoder
- supports-color
+ - typescript
- utf-8-validate
- '@metaplex-foundation/mpl-auction-house@2.5.1(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/mpl-auction-house@2.5.1(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.6.1
- '@metaplex-foundation/beet-solana': 0.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.3.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@metaplex-foundation/cusper': 0.0.2
- '@solana/spl-token': 0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bn.js: 5.2.1
transitivePeerDependencies:
- bufferutil
- encoding
- fastestsmallesttextencoderdecoder
- supports-color
+ - typescript
- utf-8-validate
- '@metaplex-foundation/mpl-bubblegum@0.6.2(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/mpl-bubblegum@0.6.2(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.1
- '@metaplex-foundation/beet-solana': 0.4.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@metaplex-foundation/cusper': 0.0.2
- '@metaplex-foundation/mpl-token-metadata': 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@solana/spl-account-compression': 0.1.10(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token': 0.1.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/mpl-token-metadata': 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/spl-account-compression': 0.1.10(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/spl-token': 0.1.8(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bn.js: 5.2.1
js-sha3: 0.8.0
transitivePeerDependencies:
@@ -2118,72 +2174,77 @@ snapshots:
- encoding
- fastestsmallesttextencoderdecoder
- supports-color
+ - typescript
- utf-8-validate
- '@metaplex-foundation/mpl-bubblegum@0.7.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/mpl-bubblegum@0.7.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.1
- '@metaplex-foundation/beet-solana': 0.4.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@metaplex-foundation/cusper': 0.0.2
- '@metaplex-foundation/mpl-token-metadata': 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@solana/spl-account-compression': 0.1.10(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token': 0.1.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/mpl-token-metadata': 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/spl-account-compression': 0.1.10(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/spl-token': 0.1.8(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
js-sha3: 0.8.0
transitivePeerDependencies:
- bufferutil
- encoding
- fastestsmallesttextencoderdecoder
- supports-color
+ - typescript
- utf-8-validate
- '@metaplex-foundation/mpl-candy-guard@0.3.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/mpl-candy-guard@0.3.2(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.4.0
- '@metaplex-foundation/beet-solana': 0.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.3.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@metaplex-foundation/cusper': 0.0.2
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bn.js: 5.2.1
transitivePeerDependencies:
- bufferutil
- encoding
- supports-color
+ - typescript
- utf-8-validate
- '@metaplex-foundation/mpl-candy-machine-core@0.1.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/mpl-candy-machine-core@0.1.2(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.4.0
- '@metaplex-foundation/beet-solana': 0.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.3.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@metaplex-foundation/cusper': 0.0.2
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bn.js: 5.2.1
transitivePeerDependencies:
- bufferutil
- encoding
- supports-color
+ - typescript
- utf-8-validate
- '@metaplex-foundation/mpl-candy-machine@5.1.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/mpl-candy-machine@5.1.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.1
- '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@metaplex-foundation/cusper': 0.0.2
- '@solana/spl-token': 0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- bufferutil
- encoding
- fastestsmallesttextencoderdecoder
- supports-color
+ - typescript
- utf-8-validate
- '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.1
- '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@metaplex-foundation/cusper': 0.0.2
- '@solana/spl-token': 0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bn.js: 5.2.1
debug: 4.3.4
transitivePeerDependencies:
@@ -2191,15 +2252,16 @@ snapshots:
- encoding
- fastestsmallesttextencoderdecoder
- supports-color
+ - typescript
- utf-8-validate
'@noble/curves@1.3.0':
dependencies:
'@noble/hashes': 1.3.3
- '@noble/curves@1.4.0':
+ '@noble/curves@1.9.7':
dependencies:
- '@noble/hashes': 1.4.0
+ '@noble/hashes': 1.8.0
'@noble/ed25519@1.7.3': {}
@@ -2228,15 +2290,16 @@ snapshots:
'@noble/hashes': 1.3.3
'@scure/base': 1.1.6
- '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bigint-buffer: 1.1.5
bignumber.js: 9.1.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@solana/buffer-layout@4.0.1':
@@ -2247,6 +2310,11 @@ snapshots:
dependencies:
'@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-core@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
'@solana/codecs-data-structures@2.0.0-preview.2':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
@@ -2258,6 +2326,12 @@ snapshots:
'@solana/codecs-core': 2.0.0-preview.2
'@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-numbers@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@4.9.5)
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
'@solana/codecs-strings@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
@@ -2280,16 +2354,22 @@ snapshots:
chalk: 5.3.0
commander: 12.1.0
+ '@solana/errors@2.3.0(typescript@4.9.5)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.3
+ typescript: 4.9.5
+
'@solana/options@2.0.0-preview.2':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
'@solana/codecs-numbers': 2.0.0-preview.2
- '@solana/spl-account-compression@0.1.10(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/spl-account-compression@0.1.10(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.2
- '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bn.js: 5.2.1
borsh: 0.7.0
js-sha3: 0.8.0
@@ -2298,20 +2378,21 @@ snapshots:
- bufferutil
- encoding
- supports-color
+ - typescript
- utf-8-validate
- '@solana/spl-token-metadata@0.1.4(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)':
+ '@solana/spl-token-metadata@0.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)
'@solana/spl-type-length-value': 0.1.0
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- '@solana/spl-token@0.1.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/spl-token@0.1.8(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@babel/runtime': 7.24.6
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bn.js: 5.2.1
buffer: 6.0.3
buffer-layout: 1.2.2
@@ -2319,29 +2400,31 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- '@solana/spl-token@0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@solana/spl-token@0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
buffer: 6.0.3
transitivePeerDependencies:
- bufferutil
- encoding
- fastestsmallesttextencoderdecoder
+ - typescript
- utf-8-validate
'@solana/spl-type-length-value@0.1.0':
dependencies:
buffer: 6.0.3
- '@solana/wallet-adapter-base@0.9.23(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@solana/wallet-adapter-base@0.9.23(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))':
dependencies:
'@solana/wallet-standard-features': 1.2.0
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@wallet-standard/base': 1.0.1
'@wallet-standard/features': 1.0.3
eventemitter3: 4.0.7
@@ -2351,30 +2434,35 @@ snapshots:
'@wallet-standard/base': 1.0.1
'@wallet-standard/features': 1.0.3
- '@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
- '@babel/runtime': 7.24.6
- '@noble/curves': 1.4.0
- '@noble/hashes': 1.4.0
+ '@babel/runtime': 7.29.2
+ '@noble/curves': 1.9.7
+ '@noble/hashes': 1.8.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@4.9.5)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
- 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.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ jayson: 4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
node-fetch: 2.7.0
- rpc-websockets: 7.11.0
- superstruct: 0.14.2
+ rpc-websockets: 9.3.5
+ superstruct: 2.0.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@supercharge/promise-pool@2.4.0': {}
+ '@swc/helpers@0.5.19':
+ dependencies:
+ tslib: 2.8.1
+
'@tsconfig/node10@1.0.11': {}
'@tsconfig/node12@1.0.11': {}
@@ -2391,7 +2479,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 20.12.12
'@types/json5@0.0.29':
optional: true
@@ -2406,9 +2494,15 @@ snapshots:
dependencies:
undici-types: 5.26.5
+ '@types/uuid@10.0.0': {}
+
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 20.12.12
+
+ '@types/ws@8.18.1':
+ dependencies:
+ '@types/node': 20.12.12
'@ungap/promise-all-settled@1.1.2': {}
@@ -2418,11 +2512,6 @@ snapshots:
dependencies:
'@wallet-standard/base': 1.0.1
- JSONStream@1.3.5:
- dependencies:
- jsonparse: 1.3.1
- through: 2.3.8
-
acorn-walk@8.3.2: {}
acorn@8.11.3: {}
@@ -2469,11 +2558,11 @@ snapshots:
normalize-path: 3.0.0
picomatch: 2.3.1
- arbundles@0.6.23(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(debug@4.3.4)(utf-8-validate@5.0.10):
+ arbundles@0.6.23(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(debug@4.3.4)(utf-8-validate@6.0.6):
dependencies:
'@noble/ed25519': 1.7.3
'@randlabs/myalgo-connect': 1.4.2
- '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))
algosdk: 1.24.1
arweave: 1.15.1
arweave-stream-tx: 1.2.2(arweave@1.15.1)
@@ -2481,7 +2570,7 @@ snapshots:
axios: 0.21.4(debug@4.3.4)
base64url: 3.0.1
bs58: 4.0.1
- ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.6)
keccak: 3.0.4
multistream: 4.1.0
process: 0.11.10
@@ -2518,7 +2607,7 @@ snapshots:
asn1.js@5.4.1:
dependencies:
- bn.js: 4.12.0
+ bn.js: 4.12.2
inherits: 2.0.4
minimalistic-assert: 1.0.1
safer-buffer: 2.1.2
@@ -2611,8 +2700,6 @@ snapshots:
bn.js@4.11.6: {}
- bn.js@4.12.0: {}
-
bn.js@4.12.2: {}
bn.js@5.2.0: {}
@@ -2623,13 +2710,13 @@ snapshots:
borsh@0.6.0:
dependencies:
- bn.js: 5.2.1
+ bn.js: 5.2.2
bs58: 4.0.1
text-encoding-utf-8: 1.0.2
borsh@0.7.0:
dependencies:
- bn.js: 5.2.1
+ bn.js: 5.2.2
bs58: 4.0.1
text-encoding-utf-8: 1.0.2
@@ -2704,6 +2791,8 @@ snapshots:
chalk@5.3.0: {}
+ chalk@5.6.2: {}
+
chardet@0.7.0: {}
check-error@1.0.3:
@@ -2755,6 +2844,8 @@ snapshots:
commander@12.1.0: {}
+ commander@14.0.3: {}
+
commander@2.20.3: {}
commander@8.3.0: {}
@@ -2857,7 +2948,7 @@ snapshots:
elliptic@6.5.4:
dependencies:
- bn.js: 4.12.0
+ bn.js: 4.12.2
brorand: 1.1.0
hash.js: 1.1.7
hmac-drbg: 1.0.1
@@ -2903,7 +2994,7 @@ snapshots:
ethereum-bloom-filters@1.1.0:
dependencies:
- '@noble/hashes': 1.4.0
+ '@noble/hashes': 1.8.0
ethereum-cryptography@2.1.3:
dependencies:
@@ -2912,7 +3003,7 @@ snapshots:
'@scure/bip32': 1.3.3
'@scure/bip39': 1.2.2
- ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.6):
dependencies:
'@ethersproject/abi': 5.7.0
'@ethersproject/abstract-provider': 5.7.0
@@ -2932,7 +3023,7 @@ snapshots:
'@ethersproject/networks': 5.7.1
'@ethersproject/pbkdf2': 5.7.0
'@ethersproject/properties': 5.7.0
- '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.6)
'@ethersproject/random': 5.7.0
'@ethersproject/rlp': 5.7.0
'@ethersproject/sha2': 5.7.0
@@ -2955,6 +3046,8 @@ snapshots:
eventemitter3@4.0.7: {}
+ eventemitter3@5.0.4: {}
+
exponential-backoff@3.1.1: {}
external-editor@3.1.0:
@@ -3164,24 +3257,24 @@ snapshots:
isexe@2.0.0: {}
- isomorphic-ws@4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
+ isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)):
dependencies:
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
- jayson@4.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ jayson@4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
dependencies:
'@types/connect': 3.4.38
'@types/node': 12.20.55
'@types/ws': 7.4.7
- JSONStream: 1.3.5
commander: 2.20.3
delay: 5.0.0
es6-promisify: 5.0.0
eyes: 0.1.8
- isomorphic-ws: 4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6))
json-stringify-safe: 5.0.1
+ stream-json: 1.9.1
uuid: 8.3.2
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- bufferutil
- utf-8-validate
@@ -3207,8 +3300,6 @@ snapshots:
minimist: 1.2.8
optional: true
- jsonparse@1.3.1: {}
-
keccak@3.0.4:
dependencies:
node-addon-api: 2.0.2
@@ -3470,14 +3561,18 @@ snapshots:
hash-base: 3.1.0
inherits: 2.0.4
- rpc-websockets@7.11.0:
+ rpc-websockets@9.3.5:
dependencies:
- eventemitter3: 4.0.7
- uuid: 8.3.2
- ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@swc/helpers': 0.5.19
+ '@types/uuid': 10.0.0
+ '@types/ws': 8.18.1
+ buffer: 6.0.3
+ eventemitter3: 5.0.4
+ uuid: 11.1.0
+ ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
run-async@2.4.1: {}
@@ -3528,6 +3623,12 @@ snapshots:
statuses@1.5.0: {}
+ stream-chain@2.2.5: {}
+
+ stream-json@1.9.1:
+ dependencies:
+ stream-chain: 2.2.5
+
stream-transform@3.3.2: {}
string-width@4.2.3:
@@ -3553,10 +3654,10 @@ snapshots:
strip-json-comments@3.1.1: {}
- superstruct@0.14.2: {}
-
superstruct@0.15.5: {}
+ superstruct@2.0.2: {}
+
supports-color@7.2.0:
dependencies:
has-flag: 4.0.0
@@ -3637,6 +3738,8 @@ snapshots:
tslib@2.6.2: {}
+ tslib@2.8.1: {}
+
tweetnacl@1.0.3: {}
type-detect@4.0.8: {}
@@ -3651,7 +3754,7 @@ snapshots:
undici-types@5.26.5: {}
- utf-8-validate@5.0.10:
+ utf-8-validate@6.0.6:
dependencies:
node-gyp-build: 4.8.1
optional: true
@@ -3668,6 +3771,8 @@ snapshots:
is-typed-array: 1.1.13
which-typed-array: 1.1.15
+ uuid@11.1.0: {}
+
uuid@8.3.2: {}
v8-compile-cache-lib@3.0.1: {}
@@ -3681,7 +3786,7 @@ snapshots:
web3-utils@1.10.4:
dependencies:
'@ethereumjs/util': 8.1.0
- bn.js: 5.2.1
+ bn.js: 5.2.2
ethereum-bloom-filters: 1.1.0
ethereum-cryptography: 2.1.3
ethjs-unit: 0.1.6
@@ -3724,20 +3829,20 @@ snapshots:
wrappy@1.0.2: {}
- ws@7.4.6(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@7.4.6(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
- ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
- ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
y18n@5.0.8: {}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 5bfc4af96..80840a8a3 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -10,19 +10,19 @@ importers:
dependencies:
'@coral-xyz/anchor':
specifier: ^0.32.1
- version: 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.32.1(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.95.2
- version: 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)
anchor-bankrun:
specifier: ^0.4.0
- version: 0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ version: 0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10))
chai:
specifier: ^5.1.1
version: 5.1.1
solana-bankrun:
specifier: ^0.3.0
- version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.3.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)
devDependencies:
'@biomejs/biome':
specifier: 1.8.1
@@ -71,24 +71,28 @@ packages:
engines: {node: '>=14.21.3'}
cpu: [arm64]
os: [linux]
+ libc: [musl]
'@biomejs/cli-linux-arm64@1.8.1':
resolution: {integrity: sha512-3SzZRuC/9Oi2P2IBNPsEj0KXxSXUEYRR2kfRF/Ve8QAfGgrt4qnwuWd6QQKKN5R+oYH691qjm+cXBKEcrP1v/Q==}
engines: {node: '>=14.21.3'}
cpu: [arm64]
os: [linux]
+ libc: [glibc]
'@biomejs/cli-linux-x64-musl@1.8.1':
resolution: {integrity: sha512-fYbP/kNu/rtZ4kKzWVocIdqZOtBSUEg9qUhZaao3dy3CRzafR6u6KDtBeSCnt47O+iLnks1eOR1TUxzr5+QuqA==}
engines: {node: '>=14.21.3'}
cpu: [x64]
os: [linux]
+ libc: [musl]
'@biomejs/cli-linux-x64@1.8.1':
resolution: {integrity: sha512-AeBycVdNrTzsyYKEOtR2R0Ph0hCD0sCshcp2aOnfGP0hCZbtFg09D0SdKLbyzKntisY41HxKVrydYiaApp+2uw==}
engines: {node: '>=14.21.3'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
'@biomejs/cli-win32-arm64@1.8.1':
resolution: {integrity: sha512-6tEd1H/iFKpgpE3OIB7oNgW5XkjiVMzMRPL8zYoZ036YfuJ5nMYm9eB9H/y81+8Z76vL48fiYzMPotJwukGPqQ==}
@@ -145,8 +149,27 @@ packages:
resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
engines: {node: '>=5.10'}
- '@solana/web3.js@1.95.2':
- resolution: {integrity: sha512-SjlHp0G4qhuhkQQc+YXdGkI8EerCqwxvgytMgBpzMUQTafrkNant3e7pgilBGgjy/iM40ICvWBLgASTPMrQU7w==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
'@swc/helpers@0.5.12':
resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==}
@@ -219,16 +242,6 @@ packages:
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- bigint-buffer@1.1.5:
- resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==}
- engines: {node: '>= 10.0.0'}
-
- bindings@1.5.0:
- resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
-
- 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==}
@@ -257,10 +270,18 @@ packages:
resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==}
engines: {node: '>=12'}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@2.1.1:
resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
engines: {node: '>= 16'}
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@@ -301,9 +322,6 @@ packages:
fast-stable-stringify@1.0.0:
resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
- file-uri-to-path@1.0.0:
- resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
-
get-func-name@2.0.2:
resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
@@ -398,12 +416,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.0:
resolution: {integrity: sha512-xsS2CS2xb1Sw4ivNXM0gPz/qpW9BX0neSvt/pnok5L330Nu9xlTnKAY8FhzzqOP9P9sJlGRM787Y6d0yYwt6xQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.0:
resolution: {integrity: sha512-YkH7sa8TB/AoRPzG17CXJtYsRIQHEkEqGLz1Vwc13taXhDBkjO7z6NI5JYw7n0ybRymDHwMYTc7sd+5J40TyVQ==}
@@ -541,12 +561,12 @@ snapshots:
'@coral-xyz/anchor-errors@0.31.1': {}
- '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)':
dependencies:
'@coral-xyz/anchor-errors': 0.31.1
- '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10))
'@noble/hashes': 1.8.0
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
bs58: 4.0.1
buffer-layout: 1.2.2
@@ -559,11 +579,12 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10))':
dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)
bn.js: 5.2.2
buffer-layout: 1.2.2
@@ -592,15 +613,32 @@ snapshots:
dependencies:
buffer: 6.0.3
- '@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/codecs-core@2.3.0(typescript@5.4.5)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@5.4.5)
+ typescript: 5.4.5
+
+ '@solana/codecs-numbers@2.3.0(typescript@5.4.5)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@5.4.5)
+ '@solana/errors': 2.3.0(typescript@5.4.5)
+ typescript: 5.4.5
+
+ '@solana/errors@2.3.0(typescript@5.4.5)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.3
+ typescript: 5.4.5
+
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)':
dependencies:
'@babel/runtime': 7.25.0
'@noble/curves': 1.4.2
- '@noble/hashes': 1.4.0
+ '@noble/hashes': 1.8.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@5.4.5)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
- bn.js: 5.2.1
+ bn.js: 5.2.2
borsh: 0.7.0
bs58: 4.0.1
buffer: 6.0.3
@@ -612,6 +650,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@swc/helpers@0.5.12':
@@ -659,11 +698,11 @@ snapshots:
dependencies:
humanize-ms: 1.2.1
- anchor-bankrun@0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
+ anchor-bankrun@0.4.0(@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10))(solana-bankrun@0.3.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)):
dependencies:
- '@coral-xyz/anchor': 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- solana-bankrun: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@coral-xyz/anchor': 0.32.1(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)
+ solana-bankrun: 0.3.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)
arg@4.1.3: {}
@@ -675,21 +714,11 @@ snapshots:
base64-js@1.5.1: {}
- bigint-buffer@1.1.5:
- dependencies:
- bindings: 1.5.0
-
- bindings@1.5.0:
- dependencies:
- file-uri-to-path: 1.0.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
@@ -719,8 +748,12 @@ snapshots:
loupe: 3.1.1
pathval: 2.0.0
+ chalk@5.6.2: {}
+
check-error@2.1.1: {}
+ commander@14.0.3: {}
+
commander@2.20.3: {}
create-require@1.1.1: {}
@@ -751,8 +784,6 @@ snapshots:
fast-stable-stringify@1.0.0: {}
- file-uri-to-path@1.0.0: {}
-
get-func-name@2.0.2: {}
humanize-ms@1.2.1:
@@ -842,9 +873,9 @@ snapshots:
solana-bankrun-linux-x64-musl@0.3.0:
optional: true
- solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ solana-bankrun@0.3.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10):
dependencies:
- '@solana/web3.js': 1.95.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)
bs58: 4.0.1
optionalDependencies:
solana-bankrun-darwin-arm64: 0.3.0
@@ -855,6 +886,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
superstruct@0.15.5: {}
diff --git a/tokens/create-token/native/pnpm-lock.yaml b/tokens/create-token/native/pnpm-lock.yaml
index 132d8ed9e..f7f834f8d 100644
--- a/tokens/create-token/native/pnpm-lock.yaml
+++ b/tokens/create-token/native/pnpm-lock.yaml
@@ -15,7 +15,7 @@ importers:
specifier: ^0.3.7
version: 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.73.0
+ specifier: ^1.98.4
version: 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
borsh:
specifier: ^2.0.0
@@ -1117,7 +1117,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 24.9.1
'@types/json5@0.0.29':
optional: true
@@ -1134,7 +1134,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 24.9.1
'@types/ws@8.18.1':
dependencies:
diff --git a/tokens/escrow/native/pnpm-lock.yaml b/tokens/escrow/native/pnpm-lock.yaml
index e712ceb12..9e82e241f 100644
--- a/tokens/escrow/native/pnpm-lock.yaml
+++ b/tokens/escrow/native/pnpm-lock.yaml
@@ -10,10 +10,10 @@ importers:
dependencies:
'@solana/spl-token':
specifier: ^0.4.9
- version: 0.4.9(@solana/web3.js@1.95.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)
+ version: 0.4.9(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.95.4
- version: 1.95.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)
bn.js:
specifier: ^5.2.2
version: 5.2.2
@@ -41,7 +41,7 @@ importers:
version: 10.8.2
solana-bankrun:
specifier: ^0.4.0
- version: 0.4.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.4.0(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)
ts-mocha:
specifier: ^10.0.0
version: 10.0.0(mocha@10.8.2)
@@ -76,6 +76,12 @@ packages:
peerDependencies:
typescript: '>=5'
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-data-structures@2.0.0-rc.1':
resolution: {integrity: sha512-rinCv0RrAVJ9rE/rmaibWJQxMwC5lSaORSZuwjopSUE6T0nb/MVg6Z1siNCXhh/HFTOg0l8bNvZHgBcN/yvXog==}
peerDependencies:
@@ -86,6 +92,12 @@ packages:
peerDependencies:
typescript: '>=5'
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-strings@2.0.0-rc.1':
resolution: {integrity: sha512-9/wPhw8TbGRTt6mHC4Zz1RqOnuPTqq1Nb4EyuvpZ39GW6O2t2Q7Q0XxiB3+BdoEjwA2XgPw6e2iRfvYgqty44g==}
peerDependencies:
@@ -103,6 +115,13 @@ packages:
peerDependencies:
typescript: '>=5'
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/options@2.0.0-rc.1':
resolution: {integrity: sha512-mLUcR9mZ3qfHlmMnREdIFPf9dpMc/Bl66tLSOOWxw4ml5xMT2ohFn7WGqoKcu/UHkT9CrC6+amEdqCNvUqI7AA==}
peerDependencies:
@@ -126,8 +145,8 @@ packages:
peerDependencies:
'@solana/web3.js': ^1.95.3
- '@solana/web3.js@1.95.4':
- resolution: {integrity: sha512-sdewnNEA42ZSMxqkzdwEWi6fDgzwtJHaQa5ndUGEJYtoOnM6X5cvPmjoTUp7/k7bRrVAxfBgDnvQQHD6yhlLYw==}
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
'@swc/helpers@0.5.13':
resolution: {integrity: sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==}
@@ -267,6 +286,10 @@ packages:
resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -288,6 +311,10 @@ packages:
resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
engines: {node: '>=18'}
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@@ -755,15 +782,16 @@ snapshots:
'@noble/hashes@1.5.0': {}
- '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/web3.js': 1.95.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)
bigint-buffer: 1.1.5
bignumber.js: 9.1.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@solana/buffer-layout@4.0.1':
@@ -775,6 +803,11 @@ snapshots:
'@solana/errors': 2.0.0-rc.1(typescript@5.6.3)
typescript: 5.6.3
+ '@solana/codecs-core@2.3.0(typescript@5.6.3)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@5.6.3)
+ typescript: 5.6.3
+
'@solana/codecs-data-structures@2.0.0-rc.1(typescript@5.6.3)':
dependencies:
'@solana/codecs-core': 2.0.0-rc.1(typescript@5.6.3)
@@ -788,6 +821,12 @@ snapshots:
'@solana/errors': 2.0.0-rc.1(typescript@5.6.3)
typescript: 5.6.3
+ '@solana/codecs-numbers@2.3.0(typescript@5.6.3)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@5.6.3)
+ '@solana/errors': 2.3.0(typescript@5.6.3)
+ typescript: 5.6.3
+
'@solana/codecs-strings@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)':
dependencies:
'@solana/codecs-core': 2.0.0-rc.1(typescript@5.6.3)
@@ -813,6 +852,12 @@ snapshots:
commander: 12.1.0
typescript: 5.6.3
+ '@solana/errors@2.3.0(typescript@5.6.3)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.3
+ typescript: 5.6.3
+
'@solana/options@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)':
dependencies:
'@solana/codecs-core': 2.0.0-rc.1(typescript@5.6.3)
@@ -824,29 +869,29 @@ snapshots:
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- '@solana/spl-token-group@0.0.7(@solana/web3.js@1.95.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)':
+ '@solana/spl-token-group@0.0.7(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)':
dependencies:
'@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)
- '@solana/web3.js': 1.95.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- typescript
- '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.95.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)':
+ '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)':
dependencies:
'@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)
- '@solana/web3.js': 1.95.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- typescript
- '@solana/spl-token@0.4.9(@solana/web3.js@1.95.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+ '@solana/spl-token@0.4.9(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token-group': 0.0.7(@solana/web3.js@1.95.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)
- '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.95.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)
- '@solana/web3.js': 1.95.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)
+ '@solana/spl-token-group': 0.0.7(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)
+ '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)
buffer: 6.0.3
transitivePeerDependencies:
- bufferutil
@@ -855,14 +900,14 @@ snapshots:
- typescript
- utf-8-validate
- '@solana/web3.js@1.95.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)':
dependencies:
'@babel/runtime': 7.26.0
'@noble/curves': 1.6.0
'@noble/hashes': 1.5.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@5.6.3)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
bn.js: 5.2.2
borsh: 0.7.0
bs58: 4.0.1
@@ -875,6 +920,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@swc/helpers@0.5.13':
@@ -1015,6 +1061,8 @@ snapshots:
chalk@5.3.0: {}
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -1045,6 +1093,8 @@ snapshots:
commander@12.1.0: {}
+ commander@14.0.3: {}
+
commander@2.20.3: {}
debug@4.3.7(supports-color@8.1.1):
@@ -1312,9 +1362,9 @@ snapshots:
solana-bankrun-linux-x64-musl@0.4.0:
optional: true
- solana-bankrun@0.4.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ solana-bankrun@0.4.0(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10):
dependencies:
- '@solana/web3.js': 1.95.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)
bs58: 4.0.1
optionalDependencies:
solana-bankrun-darwin-arm64: 0.4.0
@@ -1325,6 +1375,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
source-map-support@0.5.21:
diff --git a/tokens/external-delegate-token-master/anchor/pnpm-lock.yaml b/tokens/external-delegate-token-master/anchor/pnpm-lock.yaml
index ff5dff6b5..fb770e8d6 100644
--- a/tokens/external-delegate-token-master/anchor/pnpm-lock.yaml
+++ b/tokens/external-delegate-token-master/anchor/pnpm-lock.yaml
@@ -13,10 +13,10 @@ importers:
version: 0.32.1(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
'@solana/spl-token':
specifier: ^0.3.9
- version: 0.3.11(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ version: 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.90.0
- version: 1.98.2(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
ethers:
specifier: ^5.7.2
version: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
@@ -947,8 +947,8 @@ packages:
peerDependencies:
'@solana/web3.js': ^1.88.0
- '@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==}
@@ -1997,12 +1997,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.2.0:
resolution: {integrity: sha512-8mtf14ZBoah30+MIJBUwb5BlGLRZyK5cZhCkYnC/ROqaIDN8RxMM44NL63gTUIaNHsFwWGA9xR0KSeljeh3PKQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.2.0:
resolution: {integrity: sha512-TS6vYoO/9YJZng7oiLOVyuz8V7yLow5Hp4SLYWW71XM3702v+z9f1fvUBKudRfa4dfpta4tRNufApSiBIALxJQ==}
@@ -3015,9 +3017,9 @@ snapshots:
'@coral-xyz/anchor@0.32.1(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@coral-xyz/anchor-errors': 0.31.1
- '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10))
+ '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10))
'@noble/hashes': 1.8.0
- '@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)
bn.js: 5.2.2
bs58: 4.0.1
buffer-layout: 1.2.2
@@ -3033,9 +3035,9 @@ snapshots:
- typescript
- utf-8-validate
- '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10))':
+ '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.4(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)
bn.js: 5.2.2
buffer-layout: 1.2.2
@@ -3502,7 +3504,7 @@ snapshots:
'@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@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)
bigint-buffer: 1.1.5
bignumber.js: 9.3.0
transitivePeerDependencies:
@@ -3586,20 +3588,20 @@ snapshots:
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)':
+ '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)':
dependencies:
'@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(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)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- typescript
- '@solana/spl-token@0.3.11(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@5.0.10)':
+ '@solana/spl-token@0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@solana/buffer-layout': 4.0.1
'@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
- '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(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/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
buffer: 6.0.3
transitivePeerDependencies:
- bufferutil
@@ -3608,7 +3610,7 @@ snapshots:
- typescript
- utf-8-validate
- '@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.1
'@noble/curves': 1.9.0
@@ -4875,7 +4877,7 @@ snapshots:
solana-bankrun@0.2.0(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.2.0
diff --git a/tokens/nft-minter/native/pnpm-lock.yaml b/tokens/nft-minter/native/pnpm-lock.yaml
index 5967dbc21..d320451da 100644
--- a/tokens/nft-minter/native/pnpm-lock.yaml
+++ b/tokens/nft-minter/native/pnpm-lock.yaml
@@ -15,7 +15,7 @@ importers:
specifier: ^0.3.7
version: 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.73.0
+ specifier: ^1.98.4
version: 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
borsh:
specifier: ^2.0.0
@@ -1117,7 +1117,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 25.2.3
'@types/json5@0.0.29':
optional: true
@@ -1134,7 +1134,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 25.2.3
'@types/ws@8.18.1':
dependencies:
diff --git a/tokens/pda-mint-authority/native/pnpm-lock.yaml b/tokens/pda-mint-authority/native/pnpm-lock.yaml
index e0c0337b5..2c9ba7a31 100644
--- a/tokens/pda-mint-authority/native/pnpm-lock.yaml
+++ b/tokens/pda-mint-authority/native/pnpm-lock.yaml
@@ -10,13 +10,13 @@ importers:
dependencies:
'@metaplex-foundation/mpl-token-metadata':
specifier: ^2.5.2
- version: 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ version: 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)
'@solana/spl-token':
specifier: ^0.3.7
- version: 0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ version: 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)
'@solana/web3.js':
- specifier: ^1.73.0
- version: 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
borsh:
specifier: ^2.0.0
version: 2.0.0
@@ -44,7 +44,7 @@ importers:
version: 9.2.2
solana-bankrun:
specifier: ^0.3.0
- version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.3.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
ts-mocha:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
@@ -54,8 +54,8 @@ importers:
packages:
- '@babel/runtime@7.24.6':
- resolution: {integrity: sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==}
+ '@babel/runtime@7.29.2':
+ resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==}
engines: {node: '>=6.9.0'}
'@metaplex-foundation/beet-solana@0.4.1':
@@ -70,13 +70,18 @@ packages:
'@metaplex-foundation/mpl-token-metadata@2.13.0':
resolution: {integrity: sha512-Fl/8I0L9rv4bKTV/RAl5YIbJe9SnQPInKvLz+xR1fEc4/VQkuCn3RPgypfUMEKWmCznzaw4sApDxy6CFS4qmJw==}
- '@noble/curves@1.4.0':
- resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==}
+ '@noble/curves@1.9.7':
+ resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==}
+ engines: {node: ^14.21.3 || >=16}
'@noble/hashes@1.4.0':
resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==}
engines: {node: '>= 16'}
+ '@noble/hashes@1.8.0':
+ resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
+ engines: {node: ^14.21.3 || >=16}
+
'@solana/buffer-layout-utils@0.2.0':
resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==}
engines: {node: '>= 10'}
@@ -88,12 +93,24 @@ packages:
'@solana/codecs-core@2.0.0-preview.2':
resolution: {integrity: sha512-gLhCJXieSCrAU7acUJjbXl+IbGnqovvxQLlimztPoGgfLQ1wFYu+XJswrEVQqknZYK1pgxpxH3rZ+OKFs0ndQg==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-data-structures@2.0.0-preview.2':
resolution: {integrity: sha512-Xf5vIfromOZo94Q8HbR04TbgTwzigqrKII0GjYr21K7rb3nba4hUW2ir8kguY7HWFBcjHGlU5x3MevKBOLp3Zg==}
'@solana/codecs-numbers@2.0.0-preview.2':
resolution: {integrity: sha512-aLZnDTf43z4qOnpTcDsUVy1Ci9im1Md8thWipSWbE+WM9ojZAx528oAql+Cv8M8N+6ALKwgVRhPZkto6E59ARw==}
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-strings@2.0.0-preview.2':
resolution: {integrity: sha512-EgBwY+lIaHHgMJIqVOGHfIfpdmmUDNoNO/GAUGeFPf+q0dF+DtwhJPEMShhzh64X2MeCZcmSO6Kinx0Bvmmz2g==}
peerDependencies:
@@ -106,6 +123,13 @@ packages:
resolution: {integrity: sha512-H2DZ1l3iYF5Rp5pPbJpmmtCauWeQXRJapkDg8epQ8BJ7cA2Ut/QEtC3CMmw/iMTcuS6uemFNLcWvlOfoQhvQuA==}
hasBin: true
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/options@2.0.0-preview.2':
resolution: {integrity: sha512-FAHqEeH0cVsUOTzjl5OfUBw2cyT8d5Oekx4xcn5hn+NyPAfQJgM3CEThzgRD6Q/4mM5pVUnND3oK/Mt1RzSE/w==}
@@ -125,8 +149,11 @@ packages:
resolution: {integrity: sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA==}
engines: {node: '>=16'}
- '@solana/web3.js@1.91.8':
- resolution: {integrity: sha512-USa6OS1jbh8zOapRJ/CBZImZ8Xb7AJjROZl5adql9TpOoBN9BUzyyouS5oPuZHft7S7eB8uJPuXWYjMi6BHgOw==}
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
+
+ '@swc/helpers@0.5.19':
+ resolution: {integrity: sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==}
'@types/bn.js@5.1.5':
resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==}
@@ -149,16 +176,18 @@ packages:
'@types/node@20.12.12':
resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==}
+ '@types/uuid@10.0.0':
+ resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
+
'@types/ws@7.4.7':
resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
+ '@types/ws@8.18.1':
+ resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
+
'@ungap/promise-all-settled@1.1.2':
resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==}
- JSONStream@1.3.5:
- resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
- hasBin: true
-
agentkeepalive@4.5.0:
resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
engines: {node: '>= 8.0.0'}
@@ -280,6 +309,10 @@ packages:
resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -301,6 +334,10 @@ packages:
resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
engines: {node: '>=18'}
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@@ -378,8 +415,8 @@ packages:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
- eventemitter3@4.0.7:
- resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
+ eventemitter3@5.0.4:
+ resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==}
eyes@0.1.8:
resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==}
@@ -544,8 +581,8 @@ packages:
peerDependencies:
ws: '*'
- jayson@4.1.0:
- resolution: {integrity: sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==}
+ jayson@4.3.0:
+ resolution: {integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==}
engines: {node: '>=8'}
hasBin: true
@@ -560,10 +597,6 @@ packages:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
- jsonparse@1.3.1:
- resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
- engines: {'0': node >= 0.2.0}
-
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -674,15 +707,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@7.11.0:
- resolution: {integrity: sha512-IkLYjayPv6Io8C/TdCL5gwgzd1hFz2vmBZrjMw/SPEXo51ETOhnzgS4Qy5GWi2JQN7HKHa66J3+2mv0fgNh/7w==}
+ rpc-websockets@9.3.5:
+ resolution: {integrity: sha512-4mAmr+AEhPYJ9TmDtxF3r3ZcbWy7W8kvZ4PoZYw/Xgp2J7WixjwTgiQZsoTDvch5nimmg3Ay6/0Kuh9oIvVs9A==}
safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
@@ -736,6 +766,12 @@ packages:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
+ stream-chain@2.2.5:
+ resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==}
+
+ stream-json@1.9.1:
+ resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==}
+
string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
@@ -752,8 +788,9 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
- superstruct@0.14.2:
- resolution: {integrity: sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==}
+ 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==}
@@ -766,9 +803,6 @@ packages:
text-encoding-utf-8@1.0.2:
resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==}
- through@2.3.8:
- resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
-
to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
@@ -791,6 +825,9 @@ packages:
tsconfig-paths@3.15.0:
resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
type-detect@4.0.8:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
@@ -803,13 +840,17 @@ packages:
undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
- utf-8-validate@5.0.10:
- resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==}
+ utf-8-validate@6.0.6:
+ resolution: {integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==}
engines: {node: '>=6.14.2'}
util@0.12.5:
resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==}
+ uuid@11.1.0:
+ resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==}
+ hasBin: true
+
uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
@@ -839,8 +880,8 @@ packages:
wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
- ws@7.5.9:
- resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
+ ws@7.5.10:
+ resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==}
engines: {node: '>=8.3.0'}
peerDependencies:
bufferutil: ^4.0.1
@@ -889,20 +930,19 @@ packages:
snapshots:
- '@babel/runtime@7.24.6':
- dependencies:
- regenerator-runtime: 0.14.1
+ '@babel/runtime@7.29.2': {}
- '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.2
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bs58: 5.0.0
debug: 4.3.4
transitivePeerDependencies:
- bufferutil
- encoding
- supports-color
+ - typescript
- utf-8-validate
'@metaplex-foundation/beet@0.7.2':
@@ -916,13 +956,13 @@ snapshots:
'@metaplex-foundation/cusper@0.0.2': {}
- '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.2
- '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
'@metaplex-foundation/cusper': 0.0.2
- '@solana/spl-token': 0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bn.js: 5.2.1
debug: 4.3.4
transitivePeerDependencies:
@@ -930,23 +970,27 @@ snapshots:
- encoding
- fastestsmallesttextencoderdecoder
- supports-color
+ - typescript
- utf-8-validate
- '@noble/curves@1.4.0':
+ '@noble/curves@1.9.7':
dependencies:
- '@noble/hashes': 1.4.0
+ '@noble/hashes': 1.8.0
'@noble/hashes@1.4.0': {}
- '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@noble/hashes@1.8.0': {}
+
+ '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bigint-buffer: 1.1.5
bignumber.js: 9.1.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@solana/buffer-layout@4.0.1':
@@ -957,6 +1001,11 @@ snapshots:
dependencies:
'@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-core@2.3.0(typescript@5.9.3)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
+
'@solana/codecs-data-structures@2.0.0-preview.2':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
@@ -968,6 +1017,12 @@ snapshots:
'@solana/codecs-core': 2.0.0-preview.2
'@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-numbers@2.3.0(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@5.9.3)
+ '@solana/errors': 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
+
'@solana/codecs-strings@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
@@ -990,58 +1045,70 @@ snapshots:
chalk: 5.3.0
commander: 12.1.0
+ '@solana/errors@2.3.0(typescript@5.9.3)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.3
+ typescript: 5.9.3
+
'@solana/options@2.0.0-preview.2':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
'@solana/codecs-numbers': 2.0.0-preview.2
- '@solana/spl-token-metadata@0.1.4(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)':
+ '@solana/spl-token-metadata@0.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)
'@solana/spl-type-length-value': 0.1.0
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- '@solana/spl-token@0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@solana/spl-token@0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
+ '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
buffer: 6.0.3
transitivePeerDependencies:
- bufferutil
- encoding
- fastestsmallesttextencoderdecoder
+ - typescript
- utf-8-validate
'@solana/spl-type-length-value@0.1.0':
dependencies:
buffer: 6.0.3
- '@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
- '@babel/runtime': 7.24.6
- '@noble/curves': 1.4.0
+ '@babel/runtime': 7.29.2
+ '@noble/curves': 1.9.7
'@noble/hashes': 1.4.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@5.9.3)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
bn.js: 5.2.1
borsh: 0.7.0
bs58: 4.0.1
buffer: 6.0.3
fast-stable-stringify: 1.0.0
- jayson: 4.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ jayson: 4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
node-fetch: 2.7.0
- rpc-websockets: 7.11.0
- superstruct: 0.14.2
+ rpc-websockets: 9.3.5
+ superstruct: 2.0.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
+ '@swc/helpers@0.5.19':
+ dependencies:
+ tslib: 2.8.1
+
'@types/bn.js@5.1.5':
dependencies:
'@types/node': 20.12.12
@@ -1050,7 +1117,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 20.12.12
'@types/json5@0.0.29':
optional: true
@@ -1063,16 +1130,17 @@ snapshots:
dependencies:
undici-types: 5.26.5
+ '@types/uuid@10.0.0': {}
+
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
-
- '@ungap/promise-all-settled@1.1.2': {}
+ '@types/node': 20.12.12
- JSONStream@1.3.5:
+ '@types/ws@8.18.1':
dependencies:
- jsonparse: 1.3.1
- through: 2.3.8
+ '@types/node': 20.12.12
+
+ '@ungap/promise-all-settled@1.1.2': {}
agentkeepalive@4.5.0:
dependencies:
@@ -1201,6 +1269,8 @@ snapshots:
chalk@5.3.0: {}
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -1231,6 +1301,8 @@ snapshots:
commander@12.1.0: {}
+ commander@14.0.3: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -1287,7 +1359,7 @@ snapshots:
escape-string-regexp@4.0.0: {}
- eventemitter3@4.0.7: {}
+ eventemitter3@5.0.4: {}
eyes@0.1.8: {}
@@ -1425,24 +1497,24 @@ snapshots:
isexe@2.0.0: {}
- isomorphic-ws@4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
+ isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)):
dependencies:
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
- jayson@4.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ jayson@4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
dependencies:
'@types/connect': 3.4.38
'@types/node': 12.20.55
'@types/ws': 7.4.7
- JSONStream: 1.3.5
commander: 2.20.3
delay: 5.0.0
es6-promisify: 5.0.0
eyes: 0.1.8
- isomorphic-ws: 4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6))
json-stringify-safe: 5.0.1
+ stream-json: 1.9.1
uuid: 8.3.2
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- bufferutil
- utf-8-validate
@@ -1458,8 +1530,6 @@ snapshots:
minimist: 1.2.8
optional: true
- jsonparse@1.3.1: {}
-
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1575,18 +1645,20 @@ snapshots:
dependencies:
picomatch: 2.3.1
- regenerator-runtime@0.14.1: {}
-
require-directory@2.1.1: {}
- rpc-websockets@7.11.0:
+ rpc-websockets@9.3.5:
dependencies:
- eventemitter3: 4.0.7
- uuid: 8.3.2
- ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@swc/helpers': 0.5.19
+ '@types/uuid': 10.0.0
+ '@types/ws': 8.18.1
+ buffer: 6.0.3
+ eventemitter3: 5.0.4
+ uuid: 11.1.0
+ ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
safe-buffer@5.2.1: {}
@@ -1618,9 +1690,9 @@ snapshots:
solana-bankrun-linux-x64-musl@0.3.0:
optional: true
- solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ solana-bankrun@0.3.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6):
dependencies:
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bs58: 4.0.1
optionalDependencies:
solana-bankrun-darwin-arm64: 0.3.0
@@ -1631,6 +1703,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
source-map-support@0.5.21:
@@ -1640,6 +1713,12 @@ snapshots:
source-map@0.6.1: {}
+ stream-chain@2.2.5: {}
+
+ stream-json@1.9.1:
+ dependencies:
+ stream-chain: 2.2.5
+
string-width@4.2.3:
dependencies:
emoji-regex: 8.0.0
@@ -1655,7 +1734,7 @@ snapshots:
strip-json-comments@3.1.1: {}
- superstruct@0.14.2: {}
+ superstruct@2.0.2: {}
supports-color@7.2.0:
dependencies:
@@ -1667,8 +1746,6 @@ snapshots:
text-encoding-utf-8@1.0.2: {}
- through@2.3.8: {}
-
to-regex-range@5.0.1:
dependencies:
is-number: 7.0.0
@@ -1701,13 +1778,15 @@ snapshots:
strip-bom: 3.0.0
optional: true
+ tslib@2.8.1: {}
+
type-detect@4.0.8: {}
typescript@5.9.3: {}
undici-types@5.26.5: {}
- utf-8-validate@5.0.10:
+ utf-8-validate@6.0.6:
dependencies:
node-gyp-build: 4.8.1
optional: true
@@ -1720,6 +1799,8 @@ snapshots:
is-typed-array: 1.1.13
which-typed-array: 1.1.15
+ uuid@11.1.0: {}
+
uuid@8.3.2: {}
webidl-conversions@3.0.1: {}
@@ -1751,15 +1832,15 @@ snapshots:
wrappy@1.0.2: {}
- ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
- ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
y18n@5.0.8: {}
diff --git a/tokens/spl-token-minter/native/pnpm-lock.yaml b/tokens/spl-token-minter/native/pnpm-lock.yaml
index 5967dbc21..d320451da 100644
--- a/tokens/spl-token-minter/native/pnpm-lock.yaml
+++ b/tokens/spl-token-minter/native/pnpm-lock.yaml
@@ -15,7 +15,7 @@ importers:
specifier: ^0.3.7
version: 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.73.0
+ specifier: ^1.98.4
version: 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
borsh:
specifier: ^2.0.0
@@ -1117,7 +1117,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 25.2.3
'@types/json5@0.0.29':
optional: true
@@ -1134,7 +1134,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 25.2.3
'@types/ws@8.18.1':
dependencies:
diff --git a/tokens/token-2022/basics/anchor/pnpm-lock.yaml b/tokens/token-2022/basics/anchor/pnpm-lock.yaml
index 9c747ea59..6c091d800 100644
--- a/tokens/token-2022/basics/anchor/pnpm-lock.yaml
+++ b/tokens/token-2022/basics/anchor/pnpm-lock.yaml
@@ -12,7 +12,7 @@ importers:
specifier: 0.32.1
version: 0.32.1(bufferutil@4.0.9)(typescript@4.9.5)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.95.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':
@@ -574,12 +574,14 @@ packages:
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
solana-bankrun-linux-x64-musl@0.3.1:
resolution: {integrity: sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
solana-bankrun@0.3.1:
resolution: {integrity: sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==}
@@ -844,7 +846,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 24.7.2
'@types/json5@0.0.29':
optional: true
@@ -861,7 +863,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 24.7.2
'@types/ws@8.18.1':
dependencies:
diff --git a/tokens/token-2022/default-account-state/native/pnpm-lock.yaml b/tokens/token-2022/default-account-state/native/pnpm-lock.yaml
index bb1f1ae50..8507d821d 100644
--- a/tokens/token-2022/default-account-state/native/pnpm-lock.yaml
+++ b/tokens/token-2022/default-account-state/native/pnpm-lock.yaml
@@ -10,13 +10,13 @@ importers:
dependencies:
'@metaplex-foundation/mpl-token-metadata':
specifier: ^2.5.2
- version: 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ version: 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)
'@solana/spl-token':
specifier: ^0.3.7
- version: 0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ version: 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)
'@solana/web3.js':
- specifier: ^1.73.0
- version: 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
borsh:
specifier: ^2.0.0
version: 2.0.0
@@ -44,7 +44,7 @@ importers:
version: 9.2.2
solana-bankrun:
specifier: ^0.3.0
- version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.3.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
ts-mocha:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
@@ -54,8 +54,8 @@ importers:
packages:
- '@babel/runtime@7.24.6':
- resolution: {integrity: sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==}
+ '@babel/runtime@7.29.2':
+ resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==}
engines: {node: '>=6.9.0'}
'@metaplex-foundation/beet-solana@0.4.1':
@@ -70,13 +70,18 @@ packages:
'@metaplex-foundation/mpl-token-metadata@2.13.0':
resolution: {integrity: sha512-Fl/8I0L9rv4bKTV/RAl5YIbJe9SnQPInKvLz+xR1fEc4/VQkuCn3RPgypfUMEKWmCznzaw4sApDxy6CFS4qmJw==}
- '@noble/curves@1.4.0':
- resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==}
+ '@noble/curves@1.9.7':
+ resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==}
+ engines: {node: ^14.21.3 || >=16}
'@noble/hashes@1.4.0':
resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==}
engines: {node: '>= 16'}
+ '@noble/hashes@1.8.0':
+ resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
+ engines: {node: ^14.21.3 || >=16}
+
'@solana/buffer-layout-utils@0.2.0':
resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==}
engines: {node: '>= 10'}
@@ -88,12 +93,24 @@ packages:
'@solana/codecs-core@2.0.0-preview.2':
resolution: {integrity: sha512-gLhCJXieSCrAU7acUJjbXl+IbGnqovvxQLlimztPoGgfLQ1wFYu+XJswrEVQqknZYK1pgxpxH3rZ+OKFs0ndQg==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-data-structures@2.0.0-preview.2':
resolution: {integrity: sha512-Xf5vIfromOZo94Q8HbR04TbgTwzigqrKII0GjYr21K7rb3nba4hUW2ir8kguY7HWFBcjHGlU5x3MevKBOLp3Zg==}
'@solana/codecs-numbers@2.0.0-preview.2':
resolution: {integrity: sha512-aLZnDTf43z4qOnpTcDsUVy1Ci9im1Md8thWipSWbE+WM9ojZAx528oAql+Cv8M8N+6ALKwgVRhPZkto6E59ARw==}
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-strings@2.0.0-preview.2':
resolution: {integrity: sha512-EgBwY+lIaHHgMJIqVOGHfIfpdmmUDNoNO/GAUGeFPf+q0dF+DtwhJPEMShhzh64X2MeCZcmSO6Kinx0Bvmmz2g==}
peerDependencies:
@@ -106,6 +123,13 @@ packages:
resolution: {integrity: sha512-H2DZ1l3iYF5Rp5pPbJpmmtCauWeQXRJapkDg8epQ8BJ7cA2Ut/QEtC3CMmw/iMTcuS6uemFNLcWvlOfoQhvQuA==}
hasBin: true
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/options@2.0.0-preview.2':
resolution: {integrity: sha512-FAHqEeH0cVsUOTzjl5OfUBw2cyT8d5Oekx4xcn5hn+NyPAfQJgM3CEThzgRD6Q/4mM5pVUnND3oK/Mt1RzSE/w==}
@@ -125,8 +149,11 @@ packages:
resolution: {integrity: sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA==}
engines: {node: '>=16'}
- '@solana/web3.js@1.91.8':
- resolution: {integrity: sha512-USa6OS1jbh8zOapRJ/CBZImZ8Xb7AJjROZl5adql9TpOoBN9BUzyyouS5oPuZHft7S7eB8uJPuXWYjMi6BHgOw==}
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
+
+ '@swc/helpers@0.5.19':
+ resolution: {integrity: sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==}
'@types/bn.js@5.1.5':
resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==}
@@ -149,16 +176,18 @@ packages:
'@types/node@20.12.12':
resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==}
+ '@types/uuid@10.0.0':
+ resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
+
'@types/ws@7.4.7':
resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
+ '@types/ws@8.18.1':
+ resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
+
'@ungap/promise-all-settled@1.1.2':
resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==}
- JSONStream@1.3.5:
- resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
- hasBin: true
-
agentkeepalive@4.5.0:
resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
engines: {node: '>= 8.0.0'}
@@ -280,6 +309,10 @@ packages:
resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -301,6 +334,10 @@ packages:
resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
engines: {node: '>=18'}
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@@ -378,8 +415,8 @@ packages:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
- eventemitter3@4.0.7:
- resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
+ eventemitter3@5.0.4:
+ resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==}
eyes@0.1.8:
resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==}
@@ -544,8 +581,8 @@ packages:
peerDependencies:
ws: '*'
- jayson@4.1.0:
- resolution: {integrity: sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==}
+ jayson@4.3.0:
+ resolution: {integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==}
engines: {node: '>=8'}
hasBin: true
@@ -560,10 +597,6 @@ packages:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
- jsonparse@1.3.1:
- resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
- engines: {'0': node >= 0.2.0}
-
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -674,15 +707,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@7.11.0:
- resolution: {integrity: sha512-IkLYjayPv6Io8C/TdCL5gwgzd1hFz2vmBZrjMw/SPEXo51ETOhnzgS4Qy5GWi2JQN7HKHa66J3+2mv0fgNh/7w==}
+ rpc-websockets@9.3.5:
+ resolution: {integrity: sha512-4mAmr+AEhPYJ9TmDtxF3r3ZcbWy7W8kvZ4PoZYw/Xgp2J7WixjwTgiQZsoTDvch5nimmg3Ay6/0Kuh9oIvVs9A==}
safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
@@ -736,6 +766,12 @@ packages:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
+ stream-chain@2.2.5:
+ resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==}
+
+ stream-json@1.9.1:
+ resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==}
+
string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
@@ -752,8 +788,9 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
- superstruct@0.14.2:
- resolution: {integrity: sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==}
+ 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==}
@@ -766,9 +803,6 @@ packages:
text-encoding-utf-8@1.0.2:
resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==}
- through@2.3.8:
- resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
-
to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
@@ -791,6 +825,9 @@ packages:
tsconfig-paths@3.15.0:
resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
type-detect@4.0.8:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
@@ -803,13 +840,17 @@ packages:
undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
- utf-8-validate@5.0.10:
- resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==}
+ utf-8-validate@6.0.6:
+ resolution: {integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==}
engines: {node: '>=6.14.2'}
util@0.12.5:
resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==}
+ uuid@11.1.0:
+ resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==}
+ hasBin: true
+
uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
@@ -839,8 +880,8 @@ packages:
wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
- ws@7.5.9:
- resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
+ ws@7.5.10:
+ resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==}
engines: {node: '>=8.3.0'}
peerDependencies:
bufferutil: ^4.0.1
@@ -889,20 +930,19 @@ packages:
snapshots:
- '@babel/runtime@7.24.6':
- dependencies:
- regenerator-runtime: 0.14.1
+ '@babel/runtime@7.29.2': {}
- '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.2
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bs58: 5.0.0
debug: 4.3.4
transitivePeerDependencies:
- bufferutil
- encoding
- supports-color
+ - typescript
- utf-8-validate
'@metaplex-foundation/beet@0.7.2':
@@ -916,13 +956,13 @@ snapshots:
'@metaplex-foundation/cusper@0.0.2': {}
- '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.2
- '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
'@metaplex-foundation/cusper': 0.0.2
- '@solana/spl-token': 0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bn.js: 5.2.1
debug: 4.3.4
transitivePeerDependencies:
@@ -930,23 +970,27 @@ snapshots:
- encoding
- fastestsmallesttextencoderdecoder
- supports-color
+ - typescript
- utf-8-validate
- '@noble/curves@1.4.0':
+ '@noble/curves@1.9.7':
dependencies:
- '@noble/hashes': 1.4.0
+ '@noble/hashes': 1.8.0
'@noble/hashes@1.4.0': {}
- '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@noble/hashes@1.8.0': {}
+
+ '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bigint-buffer: 1.1.5
bignumber.js: 9.1.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@solana/buffer-layout@4.0.1':
@@ -957,6 +1001,11 @@ snapshots:
dependencies:
'@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-core@2.3.0(typescript@5.9.3)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
+
'@solana/codecs-data-structures@2.0.0-preview.2':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
@@ -968,6 +1017,12 @@ snapshots:
'@solana/codecs-core': 2.0.0-preview.2
'@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-numbers@2.3.0(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@5.9.3)
+ '@solana/errors': 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
+
'@solana/codecs-strings@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
@@ -990,58 +1045,70 @@ snapshots:
chalk: 5.3.0
commander: 12.1.0
+ '@solana/errors@2.3.0(typescript@5.9.3)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.3
+ typescript: 5.9.3
+
'@solana/options@2.0.0-preview.2':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
'@solana/codecs-numbers': 2.0.0-preview.2
- '@solana/spl-token-metadata@0.1.4(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)':
+ '@solana/spl-token-metadata@0.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)
'@solana/spl-type-length-value': 0.1.0
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- '@solana/spl-token@0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@solana/spl-token@0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
+ '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
buffer: 6.0.3
transitivePeerDependencies:
- bufferutil
- encoding
- fastestsmallesttextencoderdecoder
+ - typescript
- utf-8-validate
'@solana/spl-type-length-value@0.1.0':
dependencies:
buffer: 6.0.3
- '@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
- '@babel/runtime': 7.24.6
- '@noble/curves': 1.4.0
+ '@babel/runtime': 7.29.2
+ '@noble/curves': 1.9.7
'@noble/hashes': 1.4.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@5.9.3)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
bn.js: 5.2.1
borsh: 0.7.0
bs58: 4.0.1
buffer: 6.0.3
fast-stable-stringify: 1.0.0
- jayson: 4.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ jayson: 4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
node-fetch: 2.7.0
- rpc-websockets: 7.11.0
- superstruct: 0.14.2
+ rpc-websockets: 9.3.5
+ superstruct: 2.0.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
+ '@swc/helpers@0.5.19':
+ dependencies:
+ tslib: 2.8.1
+
'@types/bn.js@5.1.5':
dependencies:
'@types/node': 20.12.12
@@ -1050,7 +1117,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 20.12.12
'@types/json5@0.0.29':
optional: true
@@ -1063,16 +1130,17 @@ snapshots:
dependencies:
undici-types: 5.26.5
+ '@types/uuid@10.0.0': {}
+
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
-
- '@ungap/promise-all-settled@1.1.2': {}
+ '@types/node': 20.12.12
- JSONStream@1.3.5:
+ '@types/ws@8.18.1':
dependencies:
- jsonparse: 1.3.1
- through: 2.3.8
+ '@types/node': 20.12.12
+
+ '@ungap/promise-all-settled@1.1.2': {}
agentkeepalive@4.5.0:
dependencies:
@@ -1201,6 +1269,8 @@ snapshots:
chalk@5.3.0: {}
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -1231,6 +1301,8 @@ snapshots:
commander@12.1.0: {}
+ commander@14.0.3: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -1287,7 +1359,7 @@ snapshots:
escape-string-regexp@4.0.0: {}
- eventemitter3@4.0.7: {}
+ eventemitter3@5.0.4: {}
eyes@0.1.8: {}
@@ -1425,24 +1497,24 @@ snapshots:
isexe@2.0.0: {}
- isomorphic-ws@4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
+ isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)):
dependencies:
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
- jayson@4.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ jayson@4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
dependencies:
'@types/connect': 3.4.38
'@types/node': 12.20.55
'@types/ws': 7.4.7
- JSONStream: 1.3.5
commander: 2.20.3
delay: 5.0.0
es6-promisify: 5.0.0
eyes: 0.1.8
- isomorphic-ws: 4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6))
json-stringify-safe: 5.0.1
+ stream-json: 1.9.1
uuid: 8.3.2
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- bufferutil
- utf-8-validate
@@ -1458,8 +1530,6 @@ snapshots:
minimist: 1.2.8
optional: true
- jsonparse@1.3.1: {}
-
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1575,18 +1645,20 @@ snapshots:
dependencies:
picomatch: 2.3.1
- regenerator-runtime@0.14.1: {}
-
require-directory@2.1.1: {}
- rpc-websockets@7.11.0:
+ rpc-websockets@9.3.5:
dependencies:
- eventemitter3: 4.0.7
- uuid: 8.3.2
- ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@swc/helpers': 0.5.19
+ '@types/uuid': 10.0.0
+ '@types/ws': 8.18.1
+ buffer: 6.0.3
+ eventemitter3: 5.0.4
+ uuid: 11.1.0
+ ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
safe-buffer@5.2.1: {}
@@ -1618,9 +1690,9 @@ snapshots:
solana-bankrun-linux-x64-musl@0.3.0:
optional: true
- solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ solana-bankrun@0.3.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6):
dependencies:
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bs58: 4.0.1
optionalDependencies:
solana-bankrun-darwin-arm64: 0.3.0
@@ -1631,6 +1703,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
source-map-support@0.5.21:
@@ -1640,6 +1713,12 @@ snapshots:
source-map@0.6.1: {}
+ stream-chain@2.2.5: {}
+
+ stream-json@1.9.1:
+ dependencies:
+ stream-chain: 2.2.5
+
string-width@4.2.3:
dependencies:
emoji-regex: 8.0.0
@@ -1655,7 +1734,7 @@ snapshots:
strip-json-comments@3.1.1: {}
- superstruct@0.14.2: {}
+ superstruct@2.0.2: {}
supports-color@7.2.0:
dependencies:
@@ -1667,8 +1746,6 @@ snapshots:
text-encoding-utf-8@1.0.2: {}
- through@2.3.8: {}
-
to-regex-range@5.0.1:
dependencies:
is-number: 7.0.0
@@ -1701,13 +1778,15 @@ snapshots:
strip-bom: 3.0.0
optional: true
+ tslib@2.8.1: {}
+
type-detect@4.0.8: {}
typescript@5.9.3: {}
undici-types@5.26.5: {}
- utf-8-validate@5.0.10:
+ utf-8-validate@6.0.6:
dependencies:
node-gyp-build: 4.8.1
optional: true
@@ -1720,6 +1799,8 @@ snapshots:
is-typed-array: 1.1.13
which-typed-array: 1.1.15
+ uuid@11.1.0: {}
+
uuid@8.3.2: {}
webidl-conversions@3.0.1: {}
@@ -1751,15 +1832,15 @@ snapshots:
wrappy@1.0.2: {}
- ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
- ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
y18n@5.0.8: {}
diff --git a/tokens/token-2022/mint-close-authority/native/pnpm-lock.yaml b/tokens/token-2022/mint-close-authority/native/pnpm-lock.yaml
index bb1f1ae50..8507d821d 100644
--- a/tokens/token-2022/mint-close-authority/native/pnpm-lock.yaml
+++ b/tokens/token-2022/mint-close-authority/native/pnpm-lock.yaml
@@ -10,13 +10,13 @@ importers:
dependencies:
'@metaplex-foundation/mpl-token-metadata':
specifier: ^2.5.2
- version: 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ version: 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)
'@solana/spl-token':
specifier: ^0.3.7
- version: 0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ version: 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)
'@solana/web3.js':
- specifier: ^1.73.0
- version: 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
borsh:
specifier: ^2.0.0
version: 2.0.0
@@ -44,7 +44,7 @@ importers:
version: 9.2.2
solana-bankrun:
specifier: ^0.3.0
- version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.3.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
ts-mocha:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
@@ -54,8 +54,8 @@ importers:
packages:
- '@babel/runtime@7.24.6':
- resolution: {integrity: sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==}
+ '@babel/runtime@7.29.2':
+ resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==}
engines: {node: '>=6.9.0'}
'@metaplex-foundation/beet-solana@0.4.1':
@@ -70,13 +70,18 @@ packages:
'@metaplex-foundation/mpl-token-metadata@2.13.0':
resolution: {integrity: sha512-Fl/8I0L9rv4bKTV/RAl5YIbJe9SnQPInKvLz+xR1fEc4/VQkuCn3RPgypfUMEKWmCznzaw4sApDxy6CFS4qmJw==}
- '@noble/curves@1.4.0':
- resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==}
+ '@noble/curves@1.9.7':
+ resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==}
+ engines: {node: ^14.21.3 || >=16}
'@noble/hashes@1.4.0':
resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==}
engines: {node: '>= 16'}
+ '@noble/hashes@1.8.0':
+ resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
+ engines: {node: ^14.21.3 || >=16}
+
'@solana/buffer-layout-utils@0.2.0':
resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==}
engines: {node: '>= 10'}
@@ -88,12 +93,24 @@ packages:
'@solana/codecs-core@2.0.0-preview.2':
resolution: {integrity: sha512-gLhCJXieSCrAU7acUJjbXl+IbGnqovvxQLlimztPoGgfLQ1wFYu+XJswrEVQqknZYK1pgxpxH3rZ+OKFs0ndQg==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-data-structures@2.0.0-preview.2':
resolution: {integrity: sha512-Xf5vIfromOZo94Q8HbR04TbgTwzigqrKII0GjYr21K7rb3nba4hUW2ir8kguY7HWFBcjHGlU5x3MevKBOLp3Zg==}
'@solana/codecs-numbers@2.0.0-preview.2':
resolution: {integrity: sha512-aLZnDTf43z4qOnpTcDsUVy1Ci9im1Md8thWipSWbE+WM9ojZAx528oAql+Cv8M8N+6ALKwgVRhPZkto6E59ARw==}
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-strings@2.0.0-preview.2':
resolution: {integrity: sha512-EgBwY+lIaHHgMJIqVOGHfIfpdmmUDNoNO/GAUGeFPf+q0dF+DtwhJPEMShhzh64X2MeCZcmSO6Kinx0Bvmmz2g==}
peerDependencies:
@@ -106,6 +123,13 @@ packages:
resolution: {integrity: sha512-H2DZ1l3iYF5Rp5pPbJpmmtCauWeQXRJapkDg8epQ8BJ7cA2Ut/QEtC3CMmw/iMTcuS6uemFNLcWvlOfoQhvQuA==}
hasBin: true
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/options@2.0.0-preview.2':
resolution: {integrity: sha512-FAHqEeH0cVsUOTzjl5OfUBw2cyT8d5Oekx4xcn5hn+NyPAfQJgM3CEThzgRD6Q/4mM5pVUnND3oK/Mt1RzSE/w==}
@@ -125,8 +149,11 @@ packages:
resolution: {integrity: sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA==}
engines: {node: '>=16'}
- '@solana/web3.js@1.91.8':
- resolution: {integrity: sha512-USa6OS1jbh8zOapRJ/CBZImZ8Xb7AJjROZl5adql9TpOoBN9BUzyyouS5oPuZHft7S7eB8uJPuXWYjMi6BHgOw==}
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
+
+ '@swc/helpers@0.5.19':
+ resolution: {integrity: sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==}
'@types/bn.js@5.1.5':
resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==}
@@ -149,16 +176,18 @@ packages:
'@types/node@20.12.12':
resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==}
+ '@types/uuid@10.0.0':
+ resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
+
'@types/ws@7.4.7':
resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
+ '@types/ws@8.18.1':
+ resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
+
'@ungap/promise-all-settled@1.1.2':
resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==}
- JSONStream@1.3.5:
- resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
- hasBin: true
-
agentkeepalive@4.5.0:
resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
engines: {node: '>= 8.0.0'}
@@ -280,6 +309,10 @@ packages:
resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -301,6 +334,10 @@ packages:
resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
engines: {node: '>=18'}
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@@ -378,8 +415,8 @@ packages:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
- eventemitter3@4.0.7:
- resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
+ eventemitter3@5.0.4:
+ resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==}
eyes@0.1.8:
resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==}
@@ -544,8 +581,8 @@ packages:
peerDependencies:
ws: '*'
- jayson@4.1.0:
- resolution: {integrity: sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==}
+ jayson@4.3.0:
+ resolution: {integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==}
engines: {node: '>=8'}
hasBin: true
@@ -560,10 +597,6 @@ packages:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
- jsonparse@1.3.1:
- resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
- engines: {'0': node >= 0.2.0}
-
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -674,15 +707,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@7.11.0:
- resolution: {integrity: sha512-IkLYjayPv6Io8C/TdCL5gwgzd1hFz2vmBZrjMw/SPEXo51ETOhnzgS4Qy5GWi2JQN7HKHa66J3+2mv0fgNh/7w==}
+ rpc-websockets@9.3.5:
+ resolution: {integrity: sha512-4mAmr+AEhPYJ9TmDtxF3r3ZcbWy7W8kvZ4PoZYw/Xgp2J7WixjwTgiQZsoTDvch5nimmg3Ay6/0Kuh9oIvVs9A==}
safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
@@ -736,6 +766,12 @@ packages:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
+ stream-chain@2.2.5:
+ resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==}
+
+ stream-json@1.9.1:
+ resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==}
+
string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
@@ -752,8 +788,9 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
- superstruct@0.14.2:
- resolution: {integrity: sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==}
+ 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==}
@@ -766,9 +803,6 @@ packages:
text-encoding-utf-8@1.0.2:
resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==}
- through@2.3.8:
- resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
-
to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
@@ -791,6 +825,9 @@ packages:
tsconfig-paths@3.15.0:
resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
type-detect@4.0.8:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
@@ -803,13 +840,17 @@ packages:
undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
- utf-8-validate@5.0.10:
- resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==}
+ utf-8-validate@6.0.6:
+ resolution: {integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==}
engines: {node: '>=6.14.2'}
util@0.12.5:
resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==}
+ uuid@11.1.0:
+ resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==}
+ hasBin: true
+
uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
@@ -839,8 +880,8 @@ packages:
wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
- ws@7.5.9:
- resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
+ ws@7.5.10:
+ resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==}
engines: {node: '>=8.3.0'}
peerDependencies:
bufferutil: ^4.0.1
@@ -889,20 +930,19 @@ packages:
snapshots:
- '@babel/runtime@7.24.6':
- dependencies:
- regenerator-runtime: 0.14.1
+ '@babel/runtime@7.29.2': {}
- '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.2
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bs58: 5.0.0
debug: 4.3.4
transitivePeerDependencies:
- bufferutil
- encoding
- supports-color
+ - typescript
- utf-8-validate
'@metaplex-foundation/beet@0.7.2':
@@ -916,13 +956,13 @@ snapshots:
'@metaplex-foundation/cusper@0.0.2': {}
- '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.2
- '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
'@metaplex-foundation/cusper': 0.0.2
- '@solana/spl-token': 0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bn.js: 5.2.1
debug: 4.3.4
transitivePeerDependencies:
@@ -930,23 +970,27 @@ snapshots:
- encoding
- fastestsmallesttextencoderdecoder
- supports-color
+ - typescript
- utf-8-validate
- '@noble/curves@1.4.0':
+ '@noble/curves@1.9.7':
dependencies:
- '@noble/hashes': 1.4.0
+ '@noble/hashes': 1.8.0
'@noble/hashes@1.4.0': {}
- '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@noble/hashes@1.8.0': {}
+
+ '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bigint-buffer: 1.1.5
bignumber.js: 9.1.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@solana/buffer-layout@4.0.1':
@@ -957,6 +1001,11 @@ snapshots:
dependencies:
'@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-core@2.3.0(typescript@5.9.3)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
+
'@solana/codecs-data-structures@2.0.0-preview.2':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
@@ -968,6 +1017,12 @@ snapshots:
'@solana/codecs-core': 2.0.0-preview.2
'@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-numbers@2.3.0(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@5.9.3)
+ '@solana/errors': 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
+
'@solana/codecs-strings@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
@@ -990,58 +1045,70 @@ snapshots:
chalk: 5.3.0
commander: 12.1.0
+ '@solana/errors@2.3.0(typescript@5.9.3)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.3
+ typescript: 5.9.3
+
'@solana/options@2.0.0-preview.2':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
'@solana/codecs-numbers': 2.0.0-preview.2
- '@solana/spl-token-metadata@0.1.4(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)':
+ '@solana/spl-token-metadata@0.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)
'@solana/spl-type-length-value': 0.1.0
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- '@solana/spl-token@0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@solana/spl-token@0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
+ '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
buffer: 6.0.3
transitivePeerDependencies:
- bufferutil
- encoding
- fastestsmallesttextencoderdecoder
+ - typescript
- utf-8-validate
'@solana/spl-type-length-value@0.1.0':
dependencies:
buffer: 6.0.3
- '@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
- '@babel/runtime': 7.24.6
- '@noble/curves': 1.4.0
+ '@babel/runtime': 7.29.2
+ '@noble/curves': 1.9.7
'@noble/hashes': 1.4.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@5.9.3)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
bn.js: 5.2.1
borsh: 0.7.0
bs58: 4.0.1
buffer: 6.0.3
fast-stable-stringify: 1.0.0
- jayson: 4.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ jayson: 4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
node-fetch: 2.7.0
- rpc-websockets: 7.11.0
- superstruct: 0.14.2
+ rpc-websockets: 9.3.5
+ superstruct: 2.0.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
+ '@swc/helpers@0.5.19':
+ dependencies:
+ tslib: 2.8.1
+
'@types/bn.js@5.1.5':
dependencies:
'@types/node': 20.12.12
@@ -1050,7 +1117,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 20.12.12
'@types/json5@0.0.29':
optional: true
@@ -1063,16 +1130,17 @@ snapshots:
dependencies:
undici-types: 5.26.5
+ '@types/uuid@10.0.0': {}
+
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
-
- '@ungap/promise-all-settled@1.1.2': {}
+ '@types/node': 20.12.12
- JSONStream@1.3.5:
+ '@types/ws@8.18.1':
dependencies:
- jsonparse: 1.3.1
- through: 2.3.8
+ '@types/node': 20.12.12
+
+ '@ungap/promise-all-settled@1.1.2': {}
agentkeepalive@4.5.0:
dependencies:
@@ -1201,6 +1269,8 @@ snapshots:
chalk@5.3.0: {}
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -1231,6 +1301,8 @@ snapshots:
commander@12.1.0: {}
+ commander@14.0.3: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -1287,7 +1359,7 @@ snapshots:
escape-string-regexp@4.0.0: {}
- eventemitter3@4.0.7: {}
+ eventemitter3@5.0.4: {}
eyes@0.1.8: {}
@@ -1425,24 +1497,24 @@ snapshots:
isexe@2.0.0: {}
- isomorphic-ws@4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
+ isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)):
dependencies:
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
- jayson@4.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ jayson@4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
dependencies:
'@types/connect': 3.4.38
'@types/node': 12.20.55
'@types/ws': 7.4.7
- JSONStream: 1.3.5
commander: 2.20.3
delay: 5.0.0
es6-promisify: 5.0.0
eyes: 0.1.8
- isomorphic-ws: 4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6))
json-stringify-safe: 5.0.1
+ stream-json: 1.9.1
uuid: 8.3.2
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- bufferutil
- utf-8-validate
@@ -1458,8 +1530,6 @@ snapshots:
minimist: 1.2.8
optional: true
- jsonparse@1.3.1: {}
-
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1575,18 +1645,20 @@ snapshots:
dependencies:
picomatch: 2.3.1
- regenerator-runtime@0.14.1: {}
-
require-directory@2.1.1: {}
- rpc-websockets@7.11.0:
+ rpc-websockets@9.3.5:
dependencies:
- eventemitter3: 4.0.7
- uuid: 8.3.2
- ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@swc/helpers': 0.5.19
+ '@types/uuid': 10.0.0
+ '@types/ws': 8.18.1
+ buffer: 6.0.3
+ eventemitter3: 5.0.4
+ uuid: 11.1.0
+ ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
safe-buffer@5.2.1: {}
@@ -1618,9 +1690,9 @@ snapshots:
solana-bankrun-linux-x64-musl@0.3.0:
optional: true
- solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ solana-bankrun@0.3.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6):
dependencies:
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bs58: 4.0.1
optionalDependencies:
solana-bankrun-darwin-arm64: 0.3.0
@@ -1631,6 +1703,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
source-map-support@0.5.21:
@@ -1640,6 +1713,12 @@ snapshots:
source-map@0.6.1: {}
+ stream-chain@2.2.5: {}
+
+ stream-json@1.9.1:
+ dependencies:
+ stream-chain: 2.2.5
+
string-width@4.2.3:
dependencies:
emoji-regex: 8.0.0
@@ -1655,7 +1734,7 @@ snapshots:
strip-json-comments@3.1.1: {}
- superstruct@0.14.2: {}
+ superstruct@2.0.2: {}
supports-color@7.2.0:
dependencies:
@@ -1667,8 +1746,6 @@ snapshots:
text-encoding-utf-8@1.0.2: {}
- through@2.3.8: {}
-
to-regex-range@5.0.1:
dependencies:
is-number: 7.0.0
@@ -1701,13 +1778,15 @@ snapshots:
strip-bom: 3.0.0
optional: true
+ tslib@2.8.1: {}
+
type-detect@4.0.8: {}
typescript@5.9.3: {}
undici-types@5.26.5: {}
- utf-8-validate@5.0.10:
+ utf-8-validate@6.0.6:
dependencies:
node-gyp-build: 4.8.1
optional: true
@@ -1720,6 +1799,8 @@ snapshots:
is-typed-array: 1.1.13
which-typed-array: 1.1.15
+ uuid@11.1.0: {}
+
uuid@8.3.2: {}
webidl-conversions@3.0.1: {}
@@ -1751,15 +1832,15 @@ snapshots:
wrappy@1.0.2: {}
- ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
- ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
y18n@5.0.8: {}
diff --git a/tokens/token-2022/multiple-extensions/native/pnpm-lock.yaml b/tokens/token-2022/multiple-extensions/native/pnpm-lock.yaml
index bb1f1ae50..8507d821d 100644
--- a/tokens/token-2022/multiple-extensions/native/pnpm-lock.yaml
+++ b/tokens/token-2022/multiple-extensions/native/pnpm-lock.yaml
@@ -10,13 +10,13 @@ importers:
dependencies:
'@metaplex-foundation/mpl-token-metadata':
specifier: ^2.5.2
- version: 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ version: 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)
'@solana/spl-token':
specifier: ^0.3.7
- version: 0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ version: 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)
'@solana/web3.js':
- specifier: ^1.73.0
- version: 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
borsh:
specifier: ^2.0.0
version: 2.0.0
@@ -44,7 +44,7 @@ importers:
version: 9.2.2
solana-bankrun:
specifier: ^0.3.0
- version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.3.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
ts-mocha:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
@@ -54,8 +54,8 @@ importers:
packages:
- '@babel/runtime@7.24.6':
- resolution: {integrity: sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==}
+ '@babel/runtime@7.29.2':
+ resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==}
engines: {node: '>=6.9.0'}
'@metaplex-foundation/beet-solana@0.4.1':
@@ -70,13 +70,18 @@ packages:
'@metaplex-foundation/mpl-token-metadata@2.13.0':
resolution: {integrity: sha512-Fl/8I0L9rv4bKTV/RAl5YIbJe9SnQPInKvLz+xR1fEc4/VQkuCn3RPgypfUMEKWmCznzaw4sApDxy6CFS4qmJw==}
- '@noble/curves@1.4.0':
- resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==}
+ '@noble/curves@1.9.7':
+ resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==}
+ engines: {node: ^14.21.3 || >=16}
'@noble/hashes@1.4.0':
resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==}
engines: {node: '>= 16'}
+ '@noble/hashes@1.8.0':
+ resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
+ engines: {node: ^14.21.3 || >=16}
+
'@solana/buffer-layout-utils@0.2.0':
resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==}
engines: {node: '>= 10'}
@@ -88,12 +93,24 @@ packages:
'@solana/codecs-core@2.0.0-preview.2':
resolution: {integrity: sha512-gLhCJXieSCrAU7acUJjbXl+IbGnqovvxQLlimztPoGgfLQ1wFYu+XJswrEVQqknZYK1pgxpxH3rZ+OKFs0ndQg==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-data-structures@2.0.0-preview.2':
resolution: {integrity: sha512-Xf5vIfromOZo94Q8HbR04TbgTwzigqrKII0GjYr21K7rb3nba4hUW2ir8kguY7HWFBcjHGlU5x3MevKBOLp3Zg==}
'@solana/codecs-numbers@2.0.0-preview.2':
resolution: {integrity: sha512-aLZnDTf43z4qOnpTcDsUVy1Ci9im1Md8thWipSWbE+WM9ojZAx528oAql+Cv8M8N+6ALKwgVRhPZkto6E59ARw==}
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-strings@2.0.0-preview.2':
resolution: {integrity: sha512-EgBwY+lIaHHgMJIqVOGHfIfpdmmUDNoNO/GAUGeFPf+q0dF+DtwhJPEMShhzh64X2MeCZcmSO6Kinx0Bvmmz2g==}
peerDependencies:
@@ -106,6 +123,13 @@ packages:
resolution: {integrity: sha512-H2DZ1l3iYF5Rp5pPbJpmmtCauWeQXRJapkDg8epQ8BJ7cA2Ut/QEtC3CMmw/iMTcuS6uemFNLcWvlOfoQhvQuA==}
hasBin: true
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/options@2.0.0-preview.2':
resolution: {integrity: sha512-FAHqEeH0cVsUOTzjl5OfUBw2cyT8d5Oekx4xcn5hn+NyPAfQJgM3CEThzgRD6Q/4mM5pVUnND3oK/Mt1RzSE/w==}
@@ -125,8 +149,11 @@ packages:
resolution: {integrity: sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA==}
engines: {node: '>=16'}
- '@solana/web3.js@1.91.8':
- resolution: {integrity: sha512-USa6OS1jbh8zOapRJ/CBZImZ8Xb7AJjROZl5adql9TpOoBN9BUzyyouS5oPuZHft7S7eB8uJPuXWYjMi6BHgOw==}
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
+
+ '@swc/helpers@0.5.19':
+ resolution: {integrity: sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==}
'@types/bn.js@5.1.5':
resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==}
@@ -149,16 +176,18 @@ packages:
'@types/node@20.12.12':
resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==}
+ '@types/uuid@10.0.0':
+ resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
+
'@types/ws@7.4.7':
resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
+ '@types/ws@8.18.1':
+ resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
+
'@ungap/promise-all-settled@1.1.2':
resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==}
- JSONStream@1.3.5:
- resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
- hasBin: true
-
agentkeepalive@4.5.0:
resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
engines: {node: '>= 8.0.0'}
@@ -280,6 +309,10 @@ packages:
resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -301,6 +334,10 @@ packages:
resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
engines: {node: '>=18'}
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@@ -378,8 +415,8 @@ packages:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
- eventemitter3@4.0.7:
- resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
+ eventemitter3@5.0.4:
+ resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==}
eyes@0.1.8:
resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==}
@@ -544,8 +581,8 @@ packages:
peerDependencies:
ws: '*'
- jayson@4.1.0:
- resolution: {integrity: sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==}
+ jayson@4.3.0:
+ resolution: {integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==}
engines: {node: '>=8'}
hasBin: true
@@ -560,10 +597,6 @@ packages:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
- jsonparse@1.3.1:
- resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
- engines: {'0': node >= 0.2.0}
-
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -674,15 +707,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@7.11.0:
- resolution: {integrity: sha512-IkLYjayPv6Io8C/TdCL5gwgzd1hFz2vmBZrjMw/SPEXo51ETOhnzgS4Qy5GWi2JQN7HKHa66J3+2mv0fgNh/7w==}
+ rpc-websockets@9.3.5:
+ resolution: {integrity: sha512-4mAmr+AEhPYJ9TmDtxF3r3ZcbWy7W8kvZ4PoZYw/Xgp2J7WixjwTgiQZsoTDvch5nimmg3Ay6/0Kuh9oIvVs9A==}
safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
@@ -736,6 +766,12 @@ packages:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
+ stream-chain@2.2.5:
+ resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==}
+
+ stream-json@1.9.1:
+ resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==}
+
string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
@@ -752,8 +788,9 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
- superstruct@0.14.2:
- resolution: {integrity: sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==}
+ 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==}
@@ -766,9 +803,6 @@ packages:
text-encoding-utf-8@1.0.2:
resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==}
- through@2.3.8:
- resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
-
to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
@@ -791,6 +825,9 @@ packages:
tsconfig-paths@3.15.0:
resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
type-detect@4.0.8:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
@@ -803,13 +840,17 @@ packages:
undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
- utf-8-validate@5.0.10:
- resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==}
+ utf-8-validate@6.0.6:
+ resolution: {integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==}
engines: {node: '>=6.14.2'}
util@0.12.5:
resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==}
+ uuid@11.1.0:
+ resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==}
+ hasBin: true
+
uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
@@ -839,8 +880,8 @@ packages:
wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
- ws@7.5.9:
- resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
+ ws@7.5.10:
+ resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==}
engines: {node: '>=8.3.0'}
peerDependencies:
bufferutil: ^4.0.1
@@ -889,20 +930,19 @@ packages:
snapshots:
- '@babel/runtime@7.24.6':
- dependencies:
- regenerator-runtime: 0.14.1
+ '@babel/runtime@7.29.2': {}
- '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.2
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bs58: 5.0.0
debug: 4.3.4
transitivePeerDependencies:
- bufferutil
- encoding
- supports-color
+ - typescript
- utf-8-validate
'@metaplex-foundation/beet@0.7.2':
@@ -916,13 +956,13 @@ snapshots:
'@metaplex-foundation/cusper@0.0.2': {}
- '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.2
- '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
'@metaplex-foundation/cusper': 0.0.2
- '@solana/spl-token': 0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bn.js: 5.2.1
debug: 4.3.4
transitivePeerDependencies:
@@ -930,23 +970,27 @@ snapshots:
- encoding
- fastestsmallesttextencoderdecoder
- supports-color
+ - typescript
- utf-8-validate
- '@noble/curves@1.4.0':
+ '@noble/curves@1.9.7':
dependencies:
- '@noble/hashes': 1.4.0
+ '@noble/hashes': 1.8.0
'@noble/hashes@1.4.0': {}
- '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@noble/hashes@1.8.0': {}
+
+ '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bigint-buffer: 1.1.5
bignumber.js: 9.1.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@solana/buffer-layout@4.0.1':
@@ -957,6 +1001,11 @@ snapshots:
dependencies:
'@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-core@2.3.0(typescript@5.9.3)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
+
'@solana/codecs-data-structures@2.0.0-preview.2':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
@@ -968,6 +1017,12 @@ snapshots:
'@solana/codecs-core': 2.0.0-preview.2
'@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-numbers@2.3.0(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@5.9.3)
+ '@solana/errors': 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
+
'@solana/codecs-strings@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
@@ -990,58 +1045,70 @@ snapshots:
chalk: 5.3.0
commander: 12.1.0
+ '@solana/errors@2.3.0(typescript@5.9.3)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.3
+ typescript: 5.9.3
+
'@solana/options@2.0.0-preview.2':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
'@solana/codecs-numbers': 2.0.0-preview.2
- '@solana/spl-token-metadata@0.1.4(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)':
+ '@solana/spl-token-metadata@0.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)
'@solana/spl-type-length-value': 0.1.0
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- '@solana/spl-token@0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@solana/spl-token@0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
+ '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
buffer: 6.0.3
transitivePeerDependencies:
- bufferutil
- encoding
- fastestsmallesttextencoderdecoder
+ - typescript
- utf-8-validate
'@solana/spl-type-length-value@0.1.0':
dependencies:
buffer: 6.0.3
- '@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
- '@babel/runtime': 7.24.6
- '@noble/curves': 1.4.0
+ '@babel/runtime': 7.29.2
+ '@noble/curves': 1.9.7
'@noble/hashes': 1.4.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@5.9.3)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
bn.js: 5.2.1
borsh: 0.7.0
bs58: 4.0.1
buffer: 6.0.3
fast-stable-stringify: 1.0.0
- jayson: 4.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ jayson: 4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
node-fetch: 2.7.0
- rpc-websockets: 7.11.0
- superstruct: 0.14.2
+ rpc-websockets: 9.3.5
+ superstruct: 2.0.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
+ '@swc/helpers@0.5.19':
+ dependencies:
+ tslib: 2.8.1
+
'@types/bn.js@5.1.5':
dependencies:
'@types/node': 20.12.12
@@ -1050,7 +1117,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 20.12.12
'@types/json5@0.0.29':
optional: true
@@ -1063,16 +1130,17 @@ snapshots:
dependencies:
undici-types: 5.26.5
+ '@types/uuid@10.0.0': {}
+
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
-
- '@ungap/promise-all-settled@1.1.2': {}
+ '@types/node': 20.12.12
- JSONStream@1.3.5:
+ '@types/ws@8.18.1':
dependencies:
- jsonparse: 1.3.1
- through: 2.3.8
+ '@types/node': 20.12.12
+
+ '@ungap/promise-all-settled@1.1.2': {}
agentkeepalive@4.5.0:
dependencies:
@@ -1201,6 +1269,8 @@ snapshots:
chalk@5.3.0: {}
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -1231,6 +1301,8 @@ snapshots:
commander@12.1.0: {}
+ commander@14.0.3: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -1287,7 +1359,7 @@ snapshots:
escape-string-regexp@4.0.0: {}
- eventemitter3@4.0.7: {}
+ eventemitter3@5.0.4: {}
eyes@0.1.8: {}
@@ -1425,24 +1497,24 @@ snapshots:
isexe@2.0.0: {}
- isomorphic-ws@4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
+ isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)):
dependencies:
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
- jayson@4.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ jayson@4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
dependencies:
'@types/connect': 3.4.38
'@types/node': 12.20.55
'@types/ws': 7.4.7
- JSONStream: 1.3.5
commander: 2.20.3
delay: 5.0.0
es6-promisify: 5.0.0
eyes: 0.1.8
- isomorphic-ws: 4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6))
json-stringify-safe: 5.0.1
+ stream-json: 1.9.1
uuid: 8.3.2
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- bufferutil
- utf-8-validate
@@ -1458,8 +1530,6 @@ snapshots:
minimist: 1.2.8
optional: true
- jsonparse@1.3.1: {}
-
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1575,18 +1645,20 @@ snapshots:
dependencies:
picomatch: 2.3.1
- regenerator-runtime@0.14.1: {}
-
require-directory@2.1.1: {}
- rpc-websockets@7.11.0:
+ rpc-websockets@9.3.5:
dependencies:
- eventemitter3: 4.0.7
- uuid: 8.3.2
- ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@swc/helpers': 0.5.19
+ '@types/uuid': 10.0.0
+ '@types/ws': 8.18.1
+ buffer: 6.0.3
+ eventemitter3: 5.0.4
+ uuid: 11.1.0
+ ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
safe-buffer@5.2.1: {}
@@ -1618,9 +1690,9 @@ snapshots:
solana-bankrun-linux-x64-musl@0.3.0:
optional: true
- solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ solana-bankrun@0.3.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6):
dependencies:
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bs58: 4.0.1
optionalDependencies:
solana-bankrun-darwin-arm64: 0.3.0
@@ -1631,6 +1703,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
source-map-support@0.5.21:
@@ -1640,6 +1713,12 @@ snapshots:
source-map@0.6.1: {}
+ stream-chain@2.2.5: {}
+
+ stream-json@1.9.1:
+ dependencies:
+ stream-chain: 2.2.5
+
string-width@4.2.3:
dependencies:
emoji-regex: 8.0.0
@@ -1655,7 +1734,7 @@ snapshots:
strip-json-comments@3.1.1: {}
- superstruct@0.14.2: {}
+ superstruct@2.0.2: {}
supports-color@7.2.0:
dependencies:
@@ -1667,8 +1746,6 @@ snapshots:
text-encoding-utf-8@1.0.2: {}
- through@2.3.8: {}
-
to-regex-range@5.0.1:
dependencies:
is-number: 7.0.0
@@ -1701,13 +1778,15 @@ snapshots:
strip-bom: 3.0.0
optional: true
+ tslib@2.8.1: {}
+
type-detect@4.0.8: {}
typescript@5.9.3: {}
undici-types@5.26.5: {}
- utf-8-validate@5.0.10:
+ utf-8-validate@6.0.6:
dependencies:
node-gyp-build: 4.8.1
optional: true
@@ -1720,6 +1799,8 @@ snapshots:
is-typed-array: 1.1.13
which-typed-array: 1.1.15
+ uuid@11.1.0: {}
+
uuid@8.3.2: {}
webidl-conversions@3.0.1: {}
@@ -1751,15 +1832,15 @@ snapshots:
wrappy@1.0.2: {}
- ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
- ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
y18n@5.0.8: {}
diff --git a/tokens/token-2022/non-transferable/native/pnpm-lock.yaml b/tokens/token-2022/non-transferable/native/pnpm-lock.yaml
index bb1f1ae50..8507d821d 100644
--- a/tokens/token-2022/non-transferable/native/pnpm-lock.yaml
+++ b/tokens/token-2022/non-transferable/native/pnpm-lock.yaml
@@ -10,13 +10,13 @@ importers:
dependencies:
'@metaplex-foundation/mpl-token-metadata':
specifier: ^2.5.2
- version: 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ version: 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)
'@solana/spl-token':
specifier: ^0.3.7
- version: 0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ version: 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)
'@solana/web3.js':
- specifier: ^1.73.0
- version: 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
borsh:
specifier: ^2.0.0
version: 2.0.0
@@ -44,7 +44,7 @@ importers:
version: 9.2.2
solana-bankrun:
specifier: ^0.3.0
- version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.3.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
ts-mocha:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
@@ -54,8 +54,8 @@ importers:
packages:
- '@babel/runtime@7.24.6':
- resolution: {integrity: sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==}
+ '@babel/runtime@7.29.2':
+ resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==}
engines: {node: '>=6.9.0'}
'@metaplex-foundation/beet-solana@0.4.1':
@@ -70,13 +70,18 @@ packages:
'@metaplex-foundation/mpl-token-metadata@2.13.0':
resolution: {integrity: sha512-Fl/8I0L9rv4bKTV/RAl5YIbJe9SnQPInKvLz+xR1fEc4/VQkuCn3RPgypfUMEKWmCznzaw4sApDxy6CFS4qmJw==}
- '@noble/curves@1.4.0':
- resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==}
+ '@noble/curves@1.9.7':
+ resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==}
+ engines: {node: ^14.21.3 || >=16}
'@noble/hashes@1.4.0':
resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==}
engines: {node: '>= 16'}
+ '@noble/hashes@1.8.0':
+ resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
+ engines: {node: ^14.21.3 || >=16}
+
'@solana/buffer-layout-utils@0.2.0':
resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==}
engines: {node: '>= 10'}
@@ -88,12 +93,24 @@ packages:
'@solana/codecs-core@2.0.0-preview.2':
resolution: {integrity: sha512-gLhCJXieSCrAU7acUJjbXl+IbGnqovvxQLlimztPoGgfLQ1wFYu+XJswrEVQqknZYK1pgxpxH3rZ+OKFs0ndQg==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-data-structures@2.0.0-preview.2':
resolution: {integrity: sha512-Xf5vIfromOZo94Q8HbR04TbgTwzigqrKII0GjYr21K7rb3nba4hUW2ir8kguY7HWFBcjHGlU5x3MevKBOLp3Zg==}
'@solana/codecs-numbers@2.0.0-preview.2':
resolution: {integrity: sha512-aLZnDTf43z4qOnpTcDsUVy1Ci9im1Md8thWipSWbE+WM9ojZAx528oAql+Cv8M8N+6ALKwgVRhPZkto6E59ARw==}
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-strings@2.0.0-preview.2':
resolution: {integrity: sha512-EgBwY+lIaHHgMJIqVOGHfIfpdmmUDNoNO/GAUGeFPf+q0dF+DtwhJPEMShhzh64X2MeCZcmSO6Kinx0Bvmmz2g==}
peerDependencies:
@@ -106,6 +123,13 @@ packages:
resolution: {integrity: sha512-H2DZ1l3iYF5Rp5pPbJpmmtCauWeQXRJapkDg8epQ8BJ7cA2Ut/QEtC3CMmw/iMTcuS6uemFNLcWvlOfoQhvQuA==}
hasBin: true
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/options@2.0.0-preview.2':
resolution: {integrity: sha512-FAHqEeH0cVsUOTzjl5OfUBw2cyT8d5Oekx4xcn5hn+NyPAfQJgM3CEThzgRD6Q/4mM5pVUnND3oK/Mt1RzSE/w==}
@@ -125,8 +149,11 @@ packages:
resolution: {integrity: sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA==}
engines: {node: '>=16'}
- '@solana/web3.js@1.91.8':
- resolution: {integrity: sha512-USa6OS1jbh8zOapRJ/CBZImZ8Xb7AJjROZl5adql9TpOoBN9BUzyyouS5oPuZHft7S7eB8uJPuXWYjMi6BHgOw==}
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
+
+ '@swc/helpers@0.5.19':
+ resolution: {integrity: sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==}
'@types/bn.js@5.1.5':
resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==}
@@ -149,16 +176,18 @@ packages:
'@types/node@20.12.12':
resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==}
+ '@types/uuid@10.0.0':
+ resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
+
'@types/ws@7.4.7':
resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
+ '@types/ws@8.18.1':
+ resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
+
'@ungap/promise-all-settled@1.1.2':
resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==}
- JSONStream@1.3.5:
- resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
- hasBin: true
-
agentkeepalive@4.5.0:
resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
engines: {node: '>= 8.0.0'}
@@ -280,6 +309,10 @@ packages:
resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -301,6 +334,10 @@ packages:
resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
engines: {node: '>=18'}
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@@ -378,8 +415,8 @@ packages:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
- eventemitter3@4.0.7:
- resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
+ eventemitter3@5.0.4:
+ resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==}
eyes@0.1.8:
resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==}
@@ -544,8 +581,8 @@ packages:
peerDependencies:
ws: '*'
- jayson@4.1.0:
- resolution: {integrity: sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==}
+ jayson@4.3.0:
+ resolution: {integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==}
engines: {node: '>=8'}
hasBin: true
@@ -560,10 +597,6 @@ packages:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
- jsonparse@1.3.1:
- resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
- engines: {'0': node >= 0.2.0}
-
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -674,15 +707,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@7.11.0:
- resolution: {integrity: sha512-IkLYjayPv6Io8C/TdCL5gwgzd1hFz2vmBZrjMw/SPEXo51ETOhnzgS4Qy5GWi2JQN7HKHa66J3+2mv0fgNh/7w==}
+ rpc-websockets@9.3.5:
+ resolution: {integrity: sha512-4mAmr+AEhPYJ9TmDtxF3r3ZcbWy7W8kvZ4PoZYw/Xgp2J7WixjwTgiQZsoTDvch5nimmg3Ay6/0Kuh9oIvVs9A==}
safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
@@ -736,6 +766,12 @@ packages:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
+ stream-chain@2.2.5:
+ resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==}
+
+ stream-json@1.9.1:
+ resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==}
+
string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
@@ -752,8 +788,9 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
- superstruct@0.14.2:
- resolution: {integrity: sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==}
+ 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==}
@@ -766,9 +803,6 @@ packages:
text-encoding-utf-8@1.0.2:
resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==}
- through@2.3.8:
- resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
-
to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
@@ -791,6 +825,9 @@ packages:
tsconfig-paths@3.15.0:
resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
type-detect@4.0.8:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
@@ -803,13 +840,17 @@ packages:
undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
- utf-8-validate@5.0.10:
- resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==}
+ utf-8-validate@6.0.6:
+ resolution: {integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==}
engines: {node: '>=6.14.2'}
util@0.12.5:
resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==}
+ uuid@11.1.0:
+ resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==}
+ hasBin: true
+
uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
@@ -839,8 +880,8 @@ packages:
wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
- ws@7.5.9:
- resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
+ ws@7.5.10:
+ resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==}
engines: {node: '>=8.3.0'}
peerDependencies:
bufferutil: ^4.0.1
@@ -889,20 +930,19 @@ packages:
snapshots:
- '@babel/runtime@7.24.6':
- dependencies:
- regenerator-runtime: 0.14.1
+ '@babel/runtime@7.29.2': {}
- '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.2
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bs58: 5.0.0
debug: 4.3.4
transitivePeerDependencies:
- bufferutil
- encoding
- supports-color
+ - typescript
- utf-8-validate
'@metaplex-foundation/beet@0.7.2':
@@ -916,13 +956,13 @@ snapshots:
'@metaplex-foundation/cusper@0.0.2': {}
- '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.2
- '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
'@metaplex-foundation/cusper': 0.0.2
- '@solana/spl-token': 0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bn.js: 5.2.1
debug: 4.3.4
transitivePeerDependencies:
@@ -930,23 +970,27 @@ snapshots:
- encoding
- fastestsmallesttextencoderdecoder
- supports-color
+ - typescript
- utf-8-validate
- '@noble/curves@1.4.0':
+ '@noble/curves@1.9.7':
dependencies:
- '@noble/hashes': 1.4.0
+ '@noble/hashes': 1.8.0
'@noble/hashes@1.4.0': {}
- '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@noble/hashes@1.8.0': {}
+
+ '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bigint-buffer: 1.1.5
bignumber.js: 9.1.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@solana/buffer-layout@4.0.1':
@@ -957,6 +1001,11 @@ snapshots:
dependencies:
'@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-core@2.3.0(typescript@5.9.3)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
+
'@solana/codecs-data-structures@2.0.0-preview.2':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
@@ -968,6 +1017,12 @@ snapshots:
'@solana/codecs-core': 2.0.0-preview.2
'@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-numbers@2.3.0(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@5.9.3)
+ '@solana/errors': 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
+
'@solana/codecs-strings@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
@@ -990,58 +1045,70 @@ snapshots:
chalk: 5.3.0
commander: 12.1.0
+ '@solana/errors@2.3.0(typescript@5.9.3)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.3
+ typescript: 5.9.3
+
'@solana/options@2.0.0-preview.2':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
'@solana/codecs-numbers': 2.0.0-preview.2
- '@solana/spl-token-metadata@0.1.4(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)':
+ '@solana/spl-token-metadata@0.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)
'@solana/spl-type-length-value': 0.1.0
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- '@solana/spl-token@0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@solana/spl-token@0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
+ '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
buffer: 6.0.3
transitivePeerDependencies:
- bufferutil
- encoding
- fastestsmallesttextencoderdecoder
+ - typescript
- utf-8-validate
'@solana/spl-type-length-value@0.1.0':
dependencies:
buffer: 6.0.3
- '@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
- '@babel/runtime': 7.24.6
- '@noble/curves': 1.4.0
+ '@babel/runtime': 7.29.2
+ '@noble/curves': 1.9.7
'@noble/hashes': 1.4.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@5.9.3)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
bn.js: 5.2.1
borsh: 0.7.0
bs58: 4.0.1
buffer: 6.0.3
fast-stable-stringify: 1.0.0
- jayson: 4.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ jayson: 4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
node-fetch: 2.7.0
- rpc-websockets: 7.11.0
- superstruct: 0.14.2
+ rpc-websockets: 9.3.5
+ superstruct: 2.0.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
+ '@swc/helpers@0.5.19':
+ dependencies:
+ tslib: 2.8.1
+
'@types/bn.js@5.1.5':
dependencies:
'@types/node': 20.12.12
@@ -1050,7 +1117,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 20.12.12
'@types/json5@0.0.29':
optional: true
@@ -1063,16 +1130,17 @@ snapshots:
dependencies:
undici-types: 5.26.5
+ '@types/uuid@10.0.0': {}
+
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
-
- '@ungap/promise-all-settled@1.1.2': {}
+ '@types/node': 20.12.12
- JSONStream@1.3.5:
+ '@types/ws@8.18.1':
dependencies:
- jsonparse: 1.3.1
- through: 2.3.8
+ '@types/node': 20.12.12
+
+ '@ungap/promise-all-settled@1.1.2': {}
agentkeepalive@4.5.0:
dependencies:
@@ -1201,6 +1269,8 @@ snapshots:
chalk@5.3.0: {}
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -1231,6 +1301,8 @@ snapshots:
commander@12.1.0: {}
+ commander@14.0.3: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -1287,7 +1359,7 @@ snapshots:
escape-string-regexp@4.0.0: {}
- eventemitter3@4.0.7: {}
+ eventemitter3@5.0.4: {}
eyes@0.1.8: {}
@@ -1425,24 +1497,24 @@ snapshots:
isexe@2.0.0: {}
- isomorphic-ws@4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
+ isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)):
dependencies:
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
- jayson@4.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ jayson@4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
dependencies:
'@types/connect': 3.4.38
'@types/node': 12.20.55
'@types/ws': 7.4.7
- JSONStream: 1.3.5
commander: 2.20.3
delay: 5.0.0
es6-promisify: 5.0.0
eyes: 0.1.8
- isomorphic-ws: 4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6))
json-stringify-safe: 5.0.1
+ stream-json: 1.9.1
uuid: 8.3.2
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- bufferutil
- utf-8-validate
@@ -1458,8 +1530,6 @@ snapshots:
minimist: 1.2.8
optional: true
- jsonparse@1.3.1: {}
-
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1575,18 +1645,20 @@ snapshots:
dependencies:
picomatch: 2.3.1
- regenerator-runtime@0.14.1: {}
-
require-directory@2.1.1: {}
- rpc-websockets@7.11.0:
+ rpc-websockets@9.3.5:
dependencies:
- eventemitter3: 4.0.7
- uuid: 8.3.2
- ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@swc/helpers': 0.5.19
+ '@types/uuid': 10.0.0
+ '@types/ws': 8.18.1
+ buffer: 6.0.3
+ eventemitter3: 5.0.4
+ uuid: 11.1.0
+ ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
safe-buffer@5.2.1: {}
@@ -1618,9 +1690,9 @@ snapshots:
solana-bankrun-linux-x64-musl@0.3.0:
optional: true
- solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ solana-bankrun@0.3.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6):
dependencies:
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bs58: 4.0.1
optionalDependencies:
solana-bankrun-darwin-arm64: 0.3.0
@@ -1631,6 +1703,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
source-map-support@0.5.21:
@@ -1640,6 +1713,12 @@ snapshots:
source-map@0.6.1: {}
+ stream-chain@2.2.5: {}
+
+ stream-json@1.9.1:
+ dependencies:
+ stream-chain: 2.2.5
+
string-width@4.2.3:
dependencies:
emoji-regex: 8.0.0
@@ -1655,7 +1734,7 @@ snapshots:
strip-json-comments@3.1.1: {}
- superstruct@0.14.2: {}
+ superstruct@2.0.2: {}
supports-color@7.2.0:
dependencies:
@@ -1667,8 +1746,6 @@ snapshots:
text-encoding-utf-8@1.0.2: {}
- through@2.3.8: {}
-
to-regex-range@5.0.1:
dependencies:
is-number: 7.0.0
@@ -1701,13 +1778,15 @@ snapshots:
strip-bom: 3.0.0
optional: true
+ tslib@2.8.1: {}
+
type-detect@4.0.8: {}
typescript@5.9.3: {}
undici-types@5.26.5: {}
- utf-8-validate@5.0.10:
+ utf-8-validate@6.0.6:
dependencies:
node-gyp-build: 4.8.1
optional: true
@@ -1720,6 +1799,8 @@ snapshots:
is-typed-array: 1.1.13
which-typed-array: 1.1.15
+ uuid@11.1.0: {}
+
uuid@8.3.2: {}
webidl-conversions@3.0.1: {}
@@ -1751,15 +1832,15 @@ snapshots:
wrappy@1.0.2: {}
- ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
- ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
y18n@5.0.8: {}
diff --git a/tokens/token-2022/transfer-fee/native/pnpm-lock.yaml b/tokens/token-2022/transfer-fee/native/pnpm-lock.yaml
index bb1f1ae50..8507d821d 100644
--- a/tokens/token-2022/transfer-fee/native/pnpm-lock.yaml
+++ b/tokens/token-2022/transfer-fee/native/pnpm-lock.yaml
@@ -10,13 +10,13 @@ importers:
dependencies:
'@metaplex-foundation/mpl-token-metadata':
specifier: ^2.5.2
- version: 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ version: 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)
'@solana/spl-token':
specifier: ^0.3.7
- version: 0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ version: 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)
'@solana/web3.js':
- specifier: ^1.73.0
- version: 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
borsh:
specifier: ^2.0.0
version: 2.0.0
@@ -44,7 +44,7 @@ importers:
version: 9.2.2
solana-bankrun:
specifier: ^0.3.0
- version: 0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.3.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
ts-mocha:
specifier: ^10.0.0
version: 10.0.0(mocha@9.2.2)
@@ -54,8 +54,8 @@ importers:
packages:
- '@babel/runtime@7.24.6':
- resolution: {integrity: sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==}
+ '@babel/runtime@7.29.2':
+ resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==}
engines: {node: '>=6.9.0'}
'@metaplex-foundation/beet-solana@0.4.1':
@@ -70,13 +70,18 @@ packages:
'@metaplex-foundation/mpl-token-metadata@2.13.0':
resolution: {integrity: sha512-Fl/8I0L9rv4bKTV/RAl5YIbJe9SnQPInKvLz+xR1fEc4/VQkuCn3RPgypfUMEKWmCznzaw4sApDxy6CFS4qmJw==}
- '@noble/curves@1.4.0':
- resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==}
+ '@noble/curves@1.9.7':
+ resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==}
+ engines: {node: ^14.21.3 || >=16}
'@noble/hashes@1.4.0':
resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==}
engines: {node: '>= 16'}
+ '@noble/hashes@1.8.0':
+ resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
+ engines: {node: ^14.21.3 || >=16}
+
'@solana/buffer-layout-utils@0.2.0':
resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==}
engines: {node: '>= 10'}
@@ -88,12 +93,24 @@ packages:
'@solana/codecs-core@2.0.0-preview.2':
resolution: {integrity: sha512-gLhCJXieSCrAU7acUJjbXl+IbGnqovvxQLlimztPoGgfLQ1wFYu+XJswrEVQqknZYK1pgxpxH3rZ+OKFs0ndQg==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-data-structures@2.0.0-preview.2':
resolution: {integrity: sha512-Xf5vIfromOZo94Q8HbR04TbgTwzigqrKII0GjYr21K7rb3nba4hUW2ir8kguY7HWFBcjHGlU5x3MevKBOLp3Zg==}
'@solana/codecs-numbers@2.0.0-preview.2':
resolution: {integrity: sha512-aLZnDTf43z4qOnpTcDsUVy1Ci9im1Md8thWipSWbE+WM9ojZAx528oAql+Cv8M8N+6ALKwgVRhPZkto6E59ARw==}
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-strings@2.0.0-preview.2':
resolution: {integrity: sha512-EgBwY+lIaHHgMJIqVOGHfIfpdmmUDNoNO/GAUGeFPf+q0dF+DtwhJPEMShhzh64X2MeCZcmSO6Kinx0Bvmmz2g==}
peerDependencies:
@@ -106,6 +123,13 @@ packages:
resolution: {integrity: sha512-H2DZ1l3iYF5Rp5pPbJpmmtCauWeQXRJapkDg8epQ8BJ7cA2Ut/QEtC3CMmw/iMTcuS6uemFNLcWvlOfoQhvQuA==}
hasBin: true
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/options@2.0.0-preview.2':
resolution: {integrity: sha512-FAHqEeH0cVsUOTzjl5OfUBw2cyT8d5Oekx4xcn5hn+NyPAfQJgM3CEThzgRD6Q/4mM5pVUnND3oK/Mt1RzSE/w==}
@@ -125,8 +149,11 @@ packages:
resolution: {integrity: sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA==}
engines: {node: '>=16'}
- '@solana/web3.js@1.91.8':
- resolution: {integrity: sha512-USa6OS1jbh8zOapRJ/CBZImZ8Xb7AJjROZl5adql9TpOoBN9BUzyyouS5oPuZHft7S7eB8uJPuXWYjMi6BHgOw==}
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
+
+ '@swc/helpers@0.5.19':
+ resolution: {integrity: sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==}
'@types/bn.js@5.1.5':
resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==}
@@ -149,16 +176,18 @@ packages:
'@types/node@20.12.12':
resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==}
+ '@types/uuid@10.0.0':
+ resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
+
'@types/ws@7.4.7':
resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
+ '@types/ws@8.18.1':
+ resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
+
'@ungap/promise-all-settled@1.1.2':
resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==}
- JSONStream@1.3.5:
- resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
- hasBin: true
-
agentkeepalive@4.5.0:
resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
engines: {node: '>= 8.0.0'}
@@ -280,6 +309,10 @@ packages:
resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -301,6 +334,10 @@ packages:
resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
engines: {node: '>=18'}
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@@ -378,8 +415,8 @@ packages:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
- eventemitter3@4.0.7:
- resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
+ eventemitter3@5.0.4:
+ resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==}
eyes@0.1.8:
resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==}
@@ -544,8 +581,8 @@ packages:
peerDependencies:
ws: '*'
- jayson@4.1.0:
- resolution: {integrity: sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==}
+ jayson@4.3.0:
+ resolution: {integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==}
engines: {node: '>=8'}
hasBin: true
@@ -560,10 +597,6 @@ packages:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
- jsonparse@1.3.1:
- resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
- engines: {'0': node >= 0.2.0}
-
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -674,15 +707,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@7.11.0:
- resolution: {integrity: sha512-IkLYjayPv6Io8C/TdCL5gwgzd1hFz2vmBZrjMw/SPEXo51ETOhnzgS4Qy5GWi2JQN7HKHa66J3+2mv0fgNh/7w==}
+ rpc-websockets@9.3.5:
+ resolution: {integrity: sha512-4mAmr+AEhPYJ9TmDtxF3r3ZcbWy7W8kvZ4PoZYw/Xgp2J7WixjwTgiQZsoTDvch5nimmg3Ay6/0Kuh9oIvVs9A==}
safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
@@ -736,6 +766,12 @@ packages:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
+ stream-chain@2.2.5:
+ resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==}
+
+ stream-json@1.9.1:
+ resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==}
+
string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
@@ -752,8 +788,9 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
- superstruct@0.14.2:
- resolution: {integrity: sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==}
+ 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==}
@@ -766,9 +803,6 @@ packages:
text-encoding-utf-8@1.0.2:
resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==}
- through@2.3.8:
- resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
-
to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
@@ -791,6 +825,9 @@ packages:
tsconfig-paths@3.15.0:
resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
type-detect@4.0.8:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
@@ -803,13 +840,17 @@ packages:
undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
- utf-8-validate@5.0.10:
- resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==}
+ utf-8-validate@6.0.6:
+ resolution: {integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==}
engines: {node: '>=6.14.2'}
util@0.12.5:
resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==}
+ uuid@11.1.0:
+ resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==}
+ hasBin: true
+
uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
@@ -839,8 +880,8 @@ packages:
wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
- ws@7.5.9:
- resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
+ ws@7.5.10:
+ resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==}
engines: {node: '>=8.3.0'}
peerDependencies:
bufferutil: ^4.0.1
@@ -889,20 +930,19 @@ packages:
snapshots:
- '@babel/runtime@7.24.6':
- dependencies:
- regenerator-runtime: 0.14.1
+ '@babel/runtime@7.29.2': {}
- '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.2
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bs58: 5.0.0
debug: 4.3.4
transitivePeerDependencies:
- bufferutil
- encoding
- supports-color
+ - typescript
- utf-8-validate
'@metaplex-foundation/beet@0.7.2':
@@ -916,13 +956,13 @@ snapshots:
'@metaplex-foundation/cusper@0.0.2': {}
- '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@metaplex-foundation/beet': 0.7.2
- '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
'@metaplex-foundation/cusper': 0.0.2
- '@solana/spl-token': 0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bn.js: 5.2.1
debug: 4.3.4
transitivePeerDependencies:
@@ -930,23 +970,27 @@ snapshots:
- encoding
- fastestsmallesttextencoderdecoder
- supports-color
+ - typescript
- utf-8-validate
- '@noble/curves@1.4.0':
+ '@noble/curves@1.9.7':
dependencies:
- '@noble/hashes': 1.4.0
+ '@noble/hashes': 1.8.0
'@noble/hashes@1.4.0': {}
- '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@noble/hashes@1.8.0': {}
+
+ '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bigint-buffer: 1.1.5
bignumber.js: 9.1.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@solana/buffer-layout@4.0.1':
@@ -957,6 +1001,11 @@ snapshots:
dependencies:
'@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-core@2.3.0(typescript@5.9.3)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
+
'@solana/codecs-data-structures@2.0.0-preview.2':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
@@ -968,6 +1017,12 @@ snapshots:
'@solana/codecs-core': 2.0.0-preview.2
'@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-numbers@2.3.0(typescript@5.9.3)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@5.9.3)
+ '@solana/errors': 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
+
'@solana/codecs-strings@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
@@ -990,58 +1045,70 @@ snapshots:
chalk: 5.3.0
commander: 12.1.0
+ '@solana/errors@2.3.0(typescript@5.9.3)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.3
+ typescript: 5.9.3
+
'@solana/options@2.0.0-preview.2':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
'@solana/codecs-numbers': 2.0.0-preview.2
- '@solana/spl-token-metadata@0.1.4(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)':
+ '@solana/spl-token-metadata@0.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)
'@solana/spl-type-length-value': 0.1.0
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- '@solana/spl-token@0.3.11(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@solana/spl-token@0.3.11(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
+ '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
buffer: 6.0.3
transitivePeerDependencies:
- bufferutil
- encoding
- fastestsmallesttextencoderdecoder
+ - typescript
- utf-8-validate
'@solana/spl-type-length-value@0.1.0':
dependencies:
buffer: 6.0.3
- '@solana/web3.js@1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)':
dependencies:
- '@babel/runtime': 7.24.6
- '@noble/curves': 1.4.0
+ '@babel/runtime': 7.29.2
+ '@noble/curves': 1.9.7
'@noble/hashes': 1.4.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@5.9.3)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
bn.js: 5.2.1
borsh: 0.7.0
bs58: 4.0.1
buffer: 6.0.3
fast-stable-stringify: 1.0.0
- jayson: 4.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ jayson: 4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
node-fetch: 2.7.0
- rpc-websockets: 7.11.0
- superstruct: 0.14.2
+ rpc-websockets: 9.3.5
+ superstruct: 2.0.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
+ '@swc/helpers@0.5.19':
+ dependencies:
+ tslib: 2.8.1
+
'@types/bn.js@5.1.5':
dependencies:
'@types/node': 20.12.12
@@ -1050,7 +1117,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 20.12.12
'@types/json5@0.0.29':
optional: true
@@ -1063,16 +1130,17 @@ snapshots:
dependencies:
undici-types: 5.26.5
+ '@types/uuid@10.0.0': {}
+
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
-
- '@ungap/promise-all-settled@1.1.2': {}
+ '@types/node': 20.12.12
- JSONStream@1.3.5:
+ '@types/ws@8.18.1':
dependencies:
- jsonparse: 1.3.1
- through: 2.3.8
+ '@types/node': 20.12.12
+
+ '@ungap/promise-all-settled@1.1.2': {}
agentkeepalive@4.5.0:
dependencies:
@@ -1201,6 +1269,8 @@ snapshots:
chalk@5.3.0: {}
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -1231,6 +1301,8 @@ snapshots:
commander@12.1.0: {}
+ commander@14.0.3: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -1287,7 +1359,7 @@ snapshots:
escape-string-regexp@4.0.0: {}
- eventemitter3@4.0.7: {}
+ eventemitter3@5.0.4: {}
eyes@0.1.8: {}
@@ -1425,24 +1497,24 @@ snapshots:
isexe@2.0.0: {}
- isomorphic-ws@4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
+ isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)):
dependencies:
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
- jayson@4.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ jayson@4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
dependencies:
'@types/connect': 3.4.38
'@types/node': 12.20.55
'@types/ws': 7.4.7
- JSONStream: 1.3.5
commander: 2.20.3
delay: 5.0.0
es6-promisify: 5.0.0
eyes: 0.1.8
- isomorphic-ws: 4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6))
json-stringify-safe: 5.0.1
+ stream-json: 1.9.1
uuid: 8.3.2
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- bufferutil
- utf-8-validate
@@ -1458,8 +1530,6 @@ snapshots:
minimist: 1.2.8
optional: true
- jsonparse@1.3.1: {}
-
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1575,18 +1645,20 @@ snapshots:
dependencies:
picomatch: 2.3.1
- regenerator-runtime@0.14.1: {}
-
require-directory@2.1.1: {}
- rpc-websockets@7.11.0:
+ rpc-websockets@9.3.5:
dependencies:
- eventemitter3: 4.0.7
- uuid: 8.3.2
- ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@swc/helpers': 0.5.19
+ '@types/uuid': 10.0.0
+ '@types/ws': 8.18.1
+ buffer: 6.0.3
+ eventemitter3: 5.0.4
+ uuid: 11.1.0
+ ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
safe-buffer@5.2.1: {}
@@ -1618,9 +1690,9 @@ snapshots:
solana-bankrun-linux-x64-musl@0.3.0:
optional: true
- solana-bankrun@0.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ solana-bankrun@0.3.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6):
dependencies:
- '@solana/web3.js': 1.91.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@6.0.6)
bs58: 4.0.1
optionalDependencies:
solana-bankrun-darwin-arm64: 0.3.0
@@ -1631,6 +1703,7 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
source-map-support@0.5.21:
@@ -1640,6 +1713,12 @@ snapshots:
source-map@0.6.1: {}
+ stream-chain@2.2.5: {}
+
+ stream-json@1.9.1:
+ dependencies:
+ stream-chain: 2.2.5
+
string-width@4.2.3:
dependencies:
emoji-regex: 8.0.0
@@ -1655,7 +1734,7 @@ snapshots:
strip-json-comments@3.1.1: {}
- superstruct@0.14.2: {}
+ superstruct@2.0.2: {}
supports-color@7.2.0:
dependencies:
@@ -1667,8 +1746,6 @@ snapshots:
text-encoding-utf-8@1.0.2: {}
- through@2.3.8: {}
-
to-regex-range@5.0.1:
dependencies:
is-number: 7.0.0
@@ -1701,13 +1778,15 @@ snapshots:
strip-bom: 3.0.0
optional: true
+ tslib@2.8.1: {}
+
type-detect@4.0.8: {}
typescript@5.9.3: {}
undici-types@5.26.5: {}
- utf-8-validate@5.0.10:
+ utf-8-validate@6.0.6:
dependencies:
node-gyp-build: 4.8.1
optional: true
@@ -1720,6 +1799,8 @@ snapshots:
is-typed-array: 1.1.13
which-typed-array: 1.1.15
+ uuid@11.1.0: {}
+
uuid@8.3.2: {}
webidl-conversions@3.0.1: {}
@@ -1751,15 +1832,15 @@ snapshots:
wrappy@1.0.2: {}
- ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
- ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
y18n@5.0.8: {}
diff --git a/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/pnpm-lock.yaml b/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/pnpm-lock.yaml
index 80a6942cb..c34393d88 100644
--- a/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/pnpm-lock.yaml
+++ b/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/pnpm-lock.yaml
@@ -10,13 +10,13 @@ importers:
dependencies:
'@coral-xyz/anchor':
specifier: 0.32.1
- version: 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@solana/spl-token':
specifier: ^0.4.0
- version: 0.4.6(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ version: 0.4.6(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@solana/web3.js':
- specifier: ^1.92.3
- version: 1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
devDependencies:
'@types/bn.js':
specifier: ^5.1.0
@@ -51,8 +51,8 @@ importers:
packages:
- '@babel/runtime@7.24.7':
- resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==}
+ '@babel/runtime@7.29.2':
+ resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==}
engines: {node: '>=6.9.0'}
'@coral-xyz/anchor-errors@0.31.1':
@@ -69,12 +69,9 @@ packages:
peerDependencies:
'@solana/web3.js': ^1.69.0
- '@noble/curves@1.4.0':
- resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==}
-
- '@noble/hashes@1.4.0':
- resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==}
- engines: {node: '>= 16'}
+ '@noble/curves@1.9.7':
+ resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==}
+ engines: {node: ^14.21.3 || >=16}
'@noble/hashes@1.8.0':
resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
@@ -91,12 +88,24 @@ packages:
'@solana/codecs-core@2.0.0-preview.2':
resolution: {integrity: sha512-gLhCJXieSCrAU7acUJjbXl+IbGnqovvxQLlimztPoGgfLQ1wFYu+XJswrEVQqknZYK1pgxpxH3rZ+OKFs0ndQg==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-data-structures@2.0.0-preview.2':
resolution: {integrity: sha512-Xf5vIfromOZo94Q8HbR04TbgTwzigqrKII0GjYr21K7rb3nba4hUW2ir8kguY7HWFBcjHGlU5x3MevKBOLp3Zg==}
'@solana/codecs-numbers@2.0.0-preview.2':
resolution: {integrity: sha512-aLZnDTf43z4qOnpTcDsUVy1Ci9im1Md8thWipSWbE+WM9ojZAx528oAql+Cv8M8N+6ALKwgVRhPZkto6E59ARw==}
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-strings@2.0.0-preview.2':
resolution: {integrity: sha512-EgBwY+lIaHHgMJIqVOGHfIfpdmmUDNoNO/GAUGeFPf+q0dF+DtwhJPEMShhzh64X2MeCZcmSO6Kinx0Bvmmz2g==}
peerDependencies:
@@ -109,6 +118,13 @@ packages:
resolution: {integrity: sha512-H2DZ1l3iYF5Rp5pPbJpmmtCauWeQXRJapkDg8epQ8BJ7cA2Ut/QEtC3CMmw/iMTcuS6uemFNLcWvlOfoQhvQuA==}
hasBin: true
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/options@2.0.0-preview.2':
resolution: {integrity: sha512-FAHqEeH0cVsUOTzjl5OfUBw2cyT8d5Oekx4xcn5hn+NyPAfQJgM3CEThzgRD6Q/4mM5pVUnND3oK/Mt1RzSE/w==}
@@ -134,8 +150,11 @@ packages:
resolution: {integrity: sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA==}
engines: {node: '>=16'}
- '@solana/web3.js@1.92.3':
- resolution: {integrity: sha512-NVBWvb9zdJIAx6X+caXaIICCEQfQaQ8ygykCjJW4u2z/sIKcvPj3ZIIllnx0MWMc3IxGq15ozGYDOQIMbwUcHw==}
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
+
+ '@swc/helpers@0.5.19':
+ resolution: {integrity: sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==}
'@types/bn.js@5.1.5':
resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==}
@@ -161,16 +180,18 @@ packages:
'@types/node@20.12.11':
resolution: {integrity: sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==}
+ '@types/uuid@10.0.0':
+ resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
+
'@types/ws@7.4.7':
resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
+ '@types/ws@8.18.1':
+ resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
+
'@ungap/promise-all-settled@1.1.2':
resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==}
- JSONStream@1.3.5:
- resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
- hasBin: true
-
agentkeepalive@4.5.0:
resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
engines: {node: '>= 8.0.0'}
@@ -224,9 +245,6 @@ packages:
bindings@1.5.0:
resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
- 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==}
@@ -281,6 +299,10 @@ packages:
resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -302,6 +324,10 @@ packages:
resolution: {integrity: sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==}
engines: {node: '>=18'}
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@@ -360,6 +386,9 @@ packages:
eventemitter3@4.0.7:
resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
+ eventemitter3@5.0.4:
+ resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==}
+
eyes@0.1.8:
resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==}
engines: {node: '> 0.1.90'}
@@ -467,8 +496,8 @@ packages:
peerDependencies:
ws: '*'
- jayson@4.1.0:
- resolution: {integrity: sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==}
+ jayson@4.3.0:
+ resolution: {integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==}
engines: {node: '>=8'}
hasBin: true
@@ -483,10 +512,6 @@ packages:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
- jsonparse@1.3.1:
- resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
- engines: {'0': node >= 0.2.0}
-
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -589,15 +614,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@8.0.1:
- resolution: {integrity: sha512-PptrPRK40uQvifq5sCcObmqInVcZXhy+RRrirzdE5KUPvDI47y1wPvfckD2QzqngOU9xaPW/dT+G+b+wj6M1MQ==}
+ rpc-websockets@9.3.5:
+ resolution: {integrity: sha512-4mAmr+AEhPYJ9TmDtxF3r3ZcbWy7W8kvZ4PoZYw/Xgp2J7WixjwTgiQZsoTDvch5nimmg3Ay6/0Kuh9oIvVs9A==}
safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
@@ -612,6 +634,12 @@ packages:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
+ stream-chain@2.2.5:
+ resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==}
+
+ stream-json@1.9.1:
+ resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==}
+
string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
@@ -631,8 +659,8 @@ packages:
superstruct@0.15.5:
resolution: {integrity: sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==}
- superstruct@1.0.4:
- resolution: {integrity: sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==}
+ superstruct@2.0.2:
+ resolution: {integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==}
engines: {node: '>=14.0.0'}
supports-color@7.2.0:
@@ -646,9 +674,6 @@ packages:
text-encoding-utf-8@1.0.2:
resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==}
- through@2.3.8:
- resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
-
to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
@@ -674,6 +699,9 @@ packages:
tsconfig-paths@3.15.0:
resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
type-detect@4.0.8:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
@@ -686,10 +714,14 @@ packages:
undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
- utf-8-validate@5.0.10:
- resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==}
+ utf-8-validate@6.0.6:
+ resolution: {integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==}
engines: {node: '>=6.14.2'}
+ uuid@11.1.0:
+ resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==}
+ hasBin: true
+
uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
@@ -715,8 +747,8 @@ packages:
wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
- ws@7.5.9:
- resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
+ ws@7.5.10:
+ resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==}
engines: {node: '>=8.3.0'}
peerDependencies:
bufferutil: ^4.0.1
@@ -765,18 +797,16 @@ packages:
snapshots:
- '@babel/runtime@7.24.7':
- dependencies:
- regenerator-runtime: 0.14.1
+ '@babel/runtime@7.29.2': {}
'@coral-xyz/anchor-errors@0.31.1': {}
- '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@coral-xyz/anchor-errors': 0.31.1
- '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))
'@noble/hashes': 1.8.0
- '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bn.js: 5.2.2
bs58: 4.0.1
buffer-layout: 1.2.2
@@ -789,31 +819,31 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))':
dependencies:
- '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bn.js: 5.2.2
buffer-layout: 1.2.2
- '@noble/curves@1.4.0':
+ '@noble/curves@1.9.7':
dependencies:
- '@noble/hashes': 1.4.0
-
- '@noble/hashes@1.4.0': {}
+ '@noble/hashes': 1.8.0
'@noble/hashes@1.8.0': {}
- '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bigint-buffer: 1.1.5
bignumber.js: 9.1.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@solana/buffer-layout@4.0.1':
@@ -824,6 +854,11 @@ snapshots:
dependencies:
'@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-core@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
'@solana/codecs-data-structures@2.0.0-preview.2':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
@@ -835,6 +870,12 @@ snapshots:
'@solana/codecs-core': 2.0.0-preview.2
'@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-numbers@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@4.9.5)
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
'@solana/codecs-strings@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
@@ -857,67 +898,79 @@ snapshots:
chalk: 5.3.0
commander: 12.0.0
+ '@solana/errors@2.3.0(typescript@4.9.5)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.3
+ typescript: 4.9.5
+
'@solana/options@2.0.0-preview.2':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
'@solana/codecs-numbers': 2.0.0-preview.2
- '@solana/spl-token-group@0.0.4(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)':
+ '@solana/spl-token-group@0.0.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)
'@solana/spl-type-length-value': 0.1.0
- '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- '@solana/spl-token-metadata@0.1.4(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)':
+ '@solana/spl-token-metadata@0.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)
'@solana/spl-type-length-value': 0.1.0
- '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- '@solana/spl-token@0.4.6(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@solana/spl-token@0.4.6(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token-group': 0.0.4(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)
- '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)
- '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/spl-token-group': 0.0.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)
+ '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
buffer: 6.0.3
transitivePeerDependencies:
- bufferutil
- encoding
- fastestsmallesttextencoderdecoder
+ - typescript
- utf-8-validate
'@solana/spl-type-length-value@0.1.0':
dependencies:
buffer: 6.0.3
- '@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
- '@babel/runtime': 7.24.7
- '@noble/curves': 1.4.0
- '@noble/hashes': 1.4.0
+ '@babel/runtime': 7.29.2
+ '@noble/curves': 1.9.7
+ '@noble/hashes': 1.8.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@4.9.5)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
- 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.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ jayson: 4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
node-fetch: 2.7.0
- rpc-websockets: 8.0.1
- superstruct: 1.0.4
+ rpc-websockets: 9.3.5
+ superstruct: 2.0.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
+ '@swc/helpers@0.5.19':
+ dependencies:
+ tslib: 2.8.1
+
'@types/bn.js@5.1.5':
dependencies:
'@types/node': 20.12.11
@@ -943,16 +996,17 @@ snapshots:
dependencies:
undici-types: 5.26.5
+ '@types/uuid@10.0.0': {}
+
'@types/ws@7.4.7':
dependencies:
'@types/node': 20.12.11
- '@ungap/promise-all-settled@1.1.2': {}
-
- JSONStream@1.3.5:
+ '@types/ws@8.18.1':
dependencies:
- jsonparse: 1.3.1
- through: 2.3.8
+ '@types/node': 20.12.11
+
+ '@ungap/promise-all-settled@1.1.2': {}
agentkeepalive@4.5.0:
dependencies:
@@ -997,13 +1051,11 @@ snapshots:
dependencies:
file-uri-to-path: 1.0.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
@@ -1060,6 +1112,8 @@ snapshots:
chalk@5.3.0: {}
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -1090,6 +1144,8 @@ snapshots:
commander@12.0.0: {}
+ commander@14.0.3: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -1132,6 +1188,8 @@ snapshots:
eventemitter3@4.0.7: {}
+ eventemitter3@5.0.4: {}
+
eyes@0.1.8: {}
fast-stable-stringify@1.0.0: {}
@@ -1212,24 +1270,24 @@ snapshots:
isexe@2.0.0: {}
- isomorphic-ws@4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
+ isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)):
dependencies:
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
- jayson@4.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ jayson@4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
dependencies:
'@types/connect': 3.4.38
'@types/node': 12.20.55
'@types/ws': 7.4.7
- JSONStream: 1.3.5
commander: 2.20.3
delay: 5.0.0
es6-promisify: 5.0.0
eyes: 0.1.8
- isomorphic-ws: 4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6))
json-stringify-safe: 5.0.1
+ stream-json: 1.9.1
uuid: 8.3.2
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- bufferutil
- utf-8-validate
@@ -1245,8 +1303,6 @@ snapshots:
minimist: 1.2.8
optional: true
- jsonparse@1.3.1: {}
-
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1350,18 +1406,20 @@ snapshots:
dependencies:
picomatch: 2.3.1
- regenerator-runtime@0.14.1: {}
-
require-directory@2.1.1: {}
- rpc-websockets@8.0.1:
+ rpc-websockets@9.3.5:
dependencies:
- eventemitter3: 4.0.7
- uuid: 8.3.2
- ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@swc/helpers': 0.5.19
+ '@types/uuid': 10.0.0
+ '@types/ws': 8.18.1
+ buffer: 6.0.3
+ eventemitter3: 5.0.4
+ uuid: 11.1.0
+ ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
safe-buffer@5.2.1: {}
@@ -1376,6 +1434,12 @@ snapshots:
source-map@0.6.1: {}
+ stream-chain@2.2.5: {}
+
+ stream-json@1.9.1:
+ dependencies:
+ stream-chain: 2.2.5
+
string-width@4.2.3:
dependencies:
emoji-regex: 8.0.0
@@ -1393,7 +1457,7 @@ snapshots:
superstruct@0.15.5: {}
- superstruct@1.0.4: {}
+ superstruct@2.0.2: {}
supports-color@7.2.0:
dependencies:
@@ -1405,8 +1469,6 @@ snapshots:
text-encoding-utf-8@1.0.2: {}
- through@2.3.8: {}
-
to-regex-range@5.0.1:
dependencies:
is-number: 7.0.0
@@ -1441,17 +1503,21 @@ snapshots:
strip-bom: 3.0.0
optional: true
+ tslib@2.8.1: {}
+
type-detect@4.0.8: {}
typescript@4.9.5: {}
undici-types@5.26.5: {}
- utf-8-validate@5.0.10:
+ utf-8-validate@6.0.6:
dependencies:
node-gyp-build: 4.8.1
optional: true
+ uuid@11.1.0: {}
+
uuid@8.3.2: {}
webidl-conversions@3.0.1: {}
@@ -1475,15 +1541,15 @@ snapshots:
wrappy@1.0.2: {}
- ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
- ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
y18n@5.0.8: {}
diff --git a/tokens/token-2022/transfer-hook/allow-block-list-token/pnpm-lock.yaml b/tokens/token-2022/transfer-hook/allow-block-list-token/pnpm-lock.yaml
index 336b14192..d4b5fd0b8 100644
--- a/tokens/token-2022/transfer-hook/allow-block-list-token/pnpm-lock.yaml
+++ b/tokens/token-2022/transfer-hook/allow-block-list-token/pnpm-lock.yaml
@@ -25,19 +25,19 @@ importers:
version: 1.2.3(@types/react@19.2.2)(react@19.2.0)
'@solana/spl-token':
specifier: 0.4.13
- version: 0.4.13(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ version: 0.4.13(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)
'@solana/wallet-adapter-base':
specifier: 0.9.27
- version: 0.9.27(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))
+ version: 0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))
'@solana/wallet-adapter-react':
specifier: 0.15.39
- version: 0.15.39(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)
+ version: 0.15.39(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)
'@solana/wallet-adapter-react-ui':
specifier: 0.9.39
- version: 0.9.39(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-dom@19.2.0(react@19.2.0))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)
+ version: 0.9.39(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-dom@19.2.0(react@19.2.0))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)
'@solana/web3.js':
- specifier: 1.98.2
- version: 1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
'@tanstack/react-query':
specifier: ^5.82.0
version: 5.90.3(react@19.2.0)
@@ -415,78 +415,92 @@ packages:
resolution: {integrity: sha512-I4RxkXU90cpufazhGPyVujYwfIm9Nk1QDEmiIsaPwdnm013F7RIceaCc87kAH+oUB1ezqEvC6ga4m7MSlqsJvQ==}
cpu: [arm64]
os: [linux]
+ libc: [glibc]
'@img/sharp-libvips-linux-arm@1.2.3':
resolution: {integrity: sha512-x1uE93lyP6wEwGvgAIV0gP6zmaL/a0tGzJs/BIDDG0zeBhMnuUPm7ptxGhUbcGs4okDJrk4nxgrmxpib9g6HpA==}
cpu: [arm]
os: [linux]
+ libc: [glibc]
'@img/sharp-libvips-linux-ppc64@1.2.3':
resolution: {integrity: sha512-Y2T7IsQvJLMCBM+pmPbM3bKT/yYJvVtLJGfCs4Sp95SjvnFIjynbjzsa7dY1fRJX45FTSfDksbTp6AGWudiyCg==}
cpu: [ppc64]
os: [linux]
+ libc: [glibc]
'@img/sharp-libvips-linux-s390x@1.2.3':
resolution: {integrity: sha512-RgWrs/gVU7f+K7P+KeHFaBAJlNkD1nIZuVXdQv6S+fNA6syCcoboNjsV2Pou7zNlVdNQoQUpQTk8SWDHUA3y/w==}
cpu: [s390x]
os: [linux]
+ libc: [glibc]
'@img/sharp-libvips-linux-x64@1.2.3':
resolution: {integrity: sha512-3JU7LmR85K6bBiRzSUc/Ff9JBVIFVvq6bomKE0e63UXGeRw2HPVEjoJke1Yx+iU4rL7/7kUjES4dZ/81Qjhyxg==}
cpu: [x64]
os: [linux]
+ libc: [glibc]
'@img/sharp-libvips-linuxmusl-arm64@1.2.3':
resolution: {integrity: sha512-F9q83RZ8yaCwENw1GieztSfj5msz7GGykG/BA+MOUefvER69K/ubgFHNeSyUu64amHIYKGDs4sRCMzXVj8sEyw==}
cpu: [arm64]
os: [linux]
+ libc: [musl]
'@img/sharp-libvips-linuxmusl-x64@1.2.3':
resolution: {integrity: sha512-U5PUY5jbc45ANM6tSJpsgqmBF/VsL6LnxJmIf11kB7J5DctHgqm0SkuXzVWtIY90GnJxKnC/JT251TDnk1fu/g==}
cpu: [x64]
os: [linux]
+ libc: [musl]
'@img/sharp-linux-arm64@0.34.4':
resolution: {integrity: sha512-YXU1F/mN/Wu786tl72CyJjP/Ngl8mGHN1hST4BGl+hiW5jhCnV2uRVTNOcaYPs73NeT/H8Upm3y9582JVuZHrQ==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [linux]
+ libc: [glibc]
'@img/sharp-linux-arm@0.34.4':
resolution: {integrity: sha512-Xyam4mlqM0KkTHYVSuc6wXRmM7LGN0P12li03jAnZ3EJWZqj83+hi8Y9UxZUbxsgsK1qOEwg7O0Bc0LjqQVtxA==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm]
os: [linux]
+ libc: [glibc]
'@img/sharp-linux-ppc64@0.34.4':
resolution: {integrity: sha512-F4PDtF4Cy8L8hXA2p3TO6s4aDt93v+LKmpcYFLAVdkkD3hSxZzee0rh6/+94FpAynsuMpLX5h+LRsSG3rIciUQ==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [ppc64]
os: [linux]
+ libc: [glibc]
'@img/sharp-linux-s390x@0.34.4':
resolution: {integrity: sha512-qVrZKE9Bsnzy+myf7lFKvng6bQzhNUAYcVORq2P7bDlvmF6u2sCmK2KyEQEBdYk+u3T01pVsPrkj943T1aJAsw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [s390x]
os: [linux]
+ libc: [glibc]
'@img/sharp-linux-x64@0.34.4':
resolution: {integrity: sha512-ZfGtcp2xS51iG79c6Vhw9CWqQC8l2Ot8dygxoDoIQPTat/Ov3qAa8qpxSrtAEAJW+UjTXc4yxCjNfxm4h6Xm2A==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [linux]
+ libc: [glibc]
'@img/sharp-linuxmusl-arm64@0.34.4':
resolution: {integrity: sha512-8hDVvW9eu4yHWnjaOOR8kHVrew1iIX+MUgwxSuH2XyYeNRtLUe4VNioSqbNkB7ZYQJj9rUTT4PyRscyk2PXFKA==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [linux]
+ libc: [musl]
'@img/sharp-linuxmusl-x64@0.34.4':
resolution: {integrity: sha512-lU0aA5L8QTlfKjpDCEFOZsTYGn3AEiO6db8W5aQDxj0nQkVrZWmN3ZP9sYKWJdtq3PWPhUNlqehWyXpYDcI9Sg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [linux]
+ libc: [musl]
'@img/sharp-wasm32@0.34.4':
resolution: {integrity: sha512-33QL6ZO/qpRyG7woB/HUALz28WnTMI2W1jgX3Nu2bypqLIKx/QKMILLJzJjI+SIbvXdG9fUnmrxR7vbi1sTBeA==}
@@ -642,24 +656,28 @@ packages:
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
+ libc: [glibc]
'@next/swc-linux-arm64-musl@15.3.5':
resolution: {integrity: sha512-k8aVScYZ++BnS2P69ClK7v4nOu702jcF9AIHKu6llhHEtBSmM2zkPGl9yoqbSU/657IIIb0QHpdxEr0iW9z53A==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
+ libc: [musl]
'@next/swc-linux-x64-gnu@15.3.5':
resolution: {integrity: sha512-2xYU0DI9DGN/bAHzVwADid22ba5d/xrbrQlr2U+/Q5WkFUzeL0TDR963BdrtLS/4bMmKZGptLeg6282H/S2i8A==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
'@next/swc-linux-x64-musl@15.3.5':
resolution: {integrity: sha512-TRYIqAGf1KCbuAB0gjhdn5Ytd8fV+wJSM2Nh2is/xEqR8PZHxfQuaiNhoF50XfY90sNpaRMaGhF6E+qjV1b9Tg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
'@next/swc-win32-arm64-msvc@15.3.5':
resolution: {integrity: sha512-h04/7iMEUSMY6fDGCvdanKqlO1qYvzNxntZlCzfE8i5P0uqzVQWQquU1TIhlz0VqGQGXLrFDuTJVONpqGqjGKQ==}
@@ -1231,8 +1249,8 @@ packages:
resolution: {integrity: sha512-NF+MI5tOxyvfTU4A+O5idh/gJFmjm52bMwsPpFGRSL79GECSN0XLmpVOO/jqTKJgac2uIeYDpQw/eMaQuWuUXw==}
engines: {node: '>=16'}
- '@solana/web3.js@1.98.2':
- resolution: {integrity: sha512-BqVwEG+TaG2yCkBMbD3C4hdpustR4FpuUFRPUmqRZYYlPI9Hg4XMWxHWOWRzHE9Lkc9NDjzXFX7lDXSgzC7R1A==}
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
'@swc/counter@0.1.3':
resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
@@ -1281,24 +1299,28 @@ packages:
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
+ libc: [glibc]
'@tailwindcss/oxide-linux-arm64-musl@4.1.14':
resolution: {integrity: sha512-ISZjT44s59O8xKsPEIesiIydMG/sCXoMBCqsphDm/WcbnuWLxxb+GcvSIIA5NjUw6F8Tex7s5/LM2yDy8RqYBQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
+ libc: [musl]
'@tailwindcss/oxide-linux-x64-gnu@4.1.14':
resolution: {integrity: sha512-02c6JhLPJj10L2caH4U0zF8Hji4dOeahmuMl23stk0MU1wfd1OraE7rOloidSF8W5JTHkFdVo/O7uRUJJnUAJg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
'@tailwindcss/oxide-linux-x64-musl@4.1.14':
resolution: {integrity: sha512-TNGeLiN1XS66kQhxHG/7wMeQDOoL0S33x9BgmydbrWAb9Qw0KYdd8o1ifx4HOGDWhVmJ+Ul+JQ7lyknQFilO3Q==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
'@tailwindcss/oxide-wasm32-wasi@4.1.14':
resolution: {integrity: sha512-uZYAsaW/jS/IYkd6EWPJKW/NlPNSkWkBlaeVBi/WsFQNP05/bzkebUL8FH1pdsqx4f2fH/bWFcUABOM9nfiJkQ==}
@@ -1514,41 +1536,49 @@ packages:
resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==}
cpu: [arm64]
os: [linux]
+ libc: [glibc]
'@unrs/resolver-binding-linux-arm64-musl@1.11.1':
resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==}
cpu: [arm64]
os: [linux]
+ libc: [musl]
'@unrs/resolver-binding-linux-ppc64-gnu@1.11.1':
resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==}
cpu: [ppc64]
os: [linux]
+ libc: [glibc]
'@unrs/resolver-binding-linux-riscv64-gnu@1.11.1':
resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==}
cpu: [riscv64]
os: [linux]
+ libc: [glibc]
'@unrs/resolver-binding-linux-riscv64-musl@1.11.1':
resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==}
cpu: [riscv64]
os: [linux]
+ libc: [musl]
'@unrs/resolver-binding-linux-s390x-gnu@1.11.1':
resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==}
cpu: [s390x]
os: [linux]
+ libc: [glibc]
'@unrs/resolver-binding-linux-x64-gnu@1.11.1':
resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==}
cpu: [x64]
os: [linux]
+ libc: [glibc]
'@unrs/resolver-binding-linux-x64-musl@1.11.1':
resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==}
cpu: [x64]
os: [linux]
+ libc: [musl]
'@unrs/resolver-binding-wasm32-wasi@1.11.1':
resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==}
@@ -3005,24 +3035,28 @@ packages:
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [linux]
+ libc: [glibc]
lightningcss-linux-arm64-musl@1.30.1:
resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [linux]
+ libc: [musl]
lightningcss-linux-x64-gnu@1.30.1:
resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
lightningcss-linux-x64-musl@1.30.1:
resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [linux]
+ libc: [musl]
lightningcss-win32-arm64-msvc@1.30.1:
resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==}
@@ -4388,9 +4422,9 @@ snapshots:
'@coral-xyz/anchor@0.32.1(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)':
dependencies:
'@coral-xyz/anchor-errors': 0.31.1
- '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))
+ '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))
'@noble/hashes': 1.8.0
- '@solana/web3.js': 1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
bn.js: 5.2.2
bs58: 4.0.1
buffer-layout: 1.2.2
@@ -4406,9 +4440,9 @@ snapshots:
- typescript
- utf-8-validate
- '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))':
+ '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))':
dependencies:
- '@solana/web3.js': 1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
bn.js: 5.2.2
buffer-layout: 1.2.2
@@ -5212,10 +5246,10 @@ snapshots:
dependencies:
'@sinonjs/commons': 3.0.1
- '@solana-mobile/mobile-wallet-adapter-protocol-web3js@2.2.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)':
+ '@solana-mobile/mobile-wallet-adapter-protocol-web3js@2.2.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)':
dependencies:
- '@solana-mobile/mobile-wallet-adapter-protocol': 2.2.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)
- '@solana/web3.js': 1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana-mobile/mobile-wallet-adapter-protocol': 2.2.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
bs58: 5.0.0
js-base64: 3.7.8
transitivePeerDependencies:
@@ -5223,9 +5257,9 @@ snapshots:
- react
- react-native
- '@solana-mobile/mobile-wallet-adapter-protocol@2.2.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)':
+ '@solana-mobile/mobile-wallet-adapter-protocol@2.2.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)':
dependencies:
- '@solana/wallet-standard': 1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.2.0)
+ '@solana/wallet-standard': 1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.2.0)
'@solana/wallet-standard-util': 1.1.2
'@wallet-standard/core': 1.1.1
js-base64: 3.7.8
@@ -5236,13 +5270,13 @@ snapshots:
- bs58
- react
- '@solana-mobile/wallet-adapter-mobile@2.2.4(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)':
+ '@solana-mobile/wallet-adapter-mobile@2.2.4(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)':
dependencies:
- '@solana-mobile/mobile-wallet-adapter-protocol-web3js': 2.2.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)
- '@solana-mobile/wallet-standard-mobile': 0.4.2(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)
- '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))
+ '@solana-mobile/mobile-wallet-adapter-protocol-web3js': 2.2.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)
+ '@solana-mobile/wallet-standard-mobile': 0.4.2(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)
+ '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))
'@solana/wallet-standard-features': 1.3.0
- '@solana/web3.js': 1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
js-base64: 3.7.8
optionalDependencies:
'@react-native-async-storage/async-storage': 1.24.0(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))
@@ -5250,9 +5284,9 @@ snapshots:
- react
- react-native
- '@solana-mobile/wallet-standard-mobile@0.4.2(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)':
+ '@solana-mobile/wallet-standard-mobile@0.4.2(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)':
dependencies:
- '@solana-mobile/mobile-wallet-adapter-protocol': 2.2.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)
+ '@solana-mobile/mobile-wallet-adapter-protocol': 2.2.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)
'@solana/wallet-standard-chains': 1.1.1
'@solana/wallet-standard-features': 1.3.0
'@wallet-standard/base': 1.1.0
@@ -5269,7 +5303,7 @@ snapshots:
'@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/web3.js': 1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
bigint-buffer: 1.1.5
bignumber.js: 9.3.1
transitivePeerDependencies:
@@ -5353,29 +5387,29 @@ snapshots:
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- '@solana/spl-token-group@0.0.7(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
+ '@solana/spl-token-group@0.0.7(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
dependencies:
'@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
- '@solana/web3.js': 1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- typescript
- '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
+ '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)':
dependencies:
'@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
- '@solana/web3.js': 1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- typescript
- '@solana/spl-token@0.4.13(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)':
+ '@solana/spl-token@0.4.13(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)':
dependencies:
'@solana/buffer-layout': 4.0.1
'@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
- '@solana/spl-token-group': 0.0.7(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
- '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
- '@solana/web3.js': 1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/spl-token-group': 0.0.7(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
buffer: 6.0.3
transitivePeerDependencies:
- bufferutil
@@ -5384,41 +5418,41 @@ snapshots:
- typescript
- utf-8-validate
- '@solana/wallet-adapter-base-ui@0.1.6(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)':
+ '@solana/wallet-adapter-base-ui@0.1.6(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)':
dependencies:
- '@solana/wallet-adapter-react': 0.15.39(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)
- '@solana/web3.js': 1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/wallet-adapter-react': 0.15.39(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
react: 19.2.0
transitivePeerDependencies:
- bs58
- react-native
- '@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))':
+ '@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))':
dependencies:
'@solana/wallet-standard-features': 1.3.0
- '@solana/web3.js': 1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
'@wallet-standard/base': 1.1.0
'@wallet-standard/features': 1.1.0
eventemitter3: 5.0.1
- '@solana/wallet-adapter-react-ui@0.9.39(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-dom@19.2.0(react@19.2.0))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)':
+ '@solana/wallet-adapter-react-ui@0.9.39(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-dom@19.2.0(react@19.2.0))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)':
dependencies:
- '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))
- '@solana/wallet-adapter-base-ui': 0.1.6(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)
- '@solana/wallet-adapter-react': 0.15.39(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)
- '@solana/web3.js': 1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))
+ '@solana/wallet-adapter-base-ui': 0.1.6(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)
+ '@solana/wallet-adapter-react': 0.15.39(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
transitivePeerDependencies:
- bs58
- react-native
- '@solana/wallet-adapter-react@0.15.39(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)':
+ '@solana/wallet-adapter-react@0.15.39(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)':
dependencies:
- '@solana-mobile/wallet-adapter-mobile': 2.2.4(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)
- '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))
- '@solana/wallet-standard-wallet-adapter-react': 1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.2.0)
- '@solana/web3.js': 1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana-mobile/wallet-adapter-mobile': 2.2.4(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(bufferutil@4.0.9)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0)
+ '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))
+ '@solana/wallet-standard-wallet-adapter-react': 1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.2.0)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
react: 19.2.0
transitivePeerDependencies:
- bs58
@@ -5445,23 +5479,23 @@ snapshots:
'@solana/wallet-standard-chains': 1.1.1
'@solana/wallet-standard-features': 1.3.0
- '@solana/wallet-standard-wallet-adapter-base@1.1.4(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)':
+ '@solana/wallet-standard-wallet-adapter-base@1.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)':
dependencies:
- '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))
+ '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))
'@solana/wallet-standard-chains': 1.1.1
'@solana/wallet-standard-features': 1.3.0
'@solana/wallet-standard-util': 1.1.2
- '@solana/web3.js': 1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)
'@wallet-standard/app': 1.1.0
'@wallet-standard/base': 1.1.0
'@wallet-standard/features': 1.1.0
'@wallet-standard/wallet': 1.1.0
bs58: 5.0.0
- '@solana/wallet-standard-wallet-adapter-react@1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.2.0)':
+ '@solana/wallet-standard-wallet-adapter-react@1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.2.0)':
dependencies:
- '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))
- '@solana/wallet-standard-wallet-adapter-base': 1.1.4(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)
+ '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))
+ '@solana/wallet-standard-wallet-adapter-base': 1.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)
'@wallet-standard/app': 1.1.0
'@wallet-standard/base': 1.1.0
react: 19.2.0
@@ -5469,27 +5503,27 @@ snapshots:
- '@solana/web3.js'
- bs58
- '@solana/wallet-standard-wallet-adapter@1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.2.0)':
+ '@solana/wallet-standard-wallet-adapter@1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.2.0)':
dependencies:
- '@solana/wallet-standard-wallet-adapter-base': 1.1.4(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)
- '@solana/wallet-standard-wallet-adapter-react': 1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.2.0)
+ '@solana/wallet-standard-wallet-adapter-base': 1.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)
+ '@solana/wallet-standard-wallet-adapter-react': 1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.2.0)
transitivePeerDependencies:
- '@solana/wallet-adapter-base'
- '@solana/web3.js'
- bs58
- react
- '@solana/wallet-standard@1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.2.0)':
+ '@solana/wallet-standard@1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.2.0)':
dependencies:
'@solana/wallet-standard-core': 1.1.2
- '@solana/wallet-standard-wallet-adapter': 1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.2.0)
+ '@solana/wallet-standard-wallet-adapter': 1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.2.0)
transitivePeerDependencies:
- '@solana/wallet-adapter-base'
- '@solana/web3.js'
- bs58
- react
- '@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)':
+ '@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)':
dependencies:
'@babel/runtime': 7.28.4
'@noble/curves': 1.9.7
diff --git a/tokens/token-2022/transfer-hook/counter/anchor/pnpm-lock.yaml b/tokens/token-2022/transfer-hook/counter/anchor/pnpm-lock.yaml
index caadea929..d24caddf3 100644
--- a/tokens/token-2022/transfer-hook/counter/anchor/pnpm-lock.yaml
+++ b/tokens/token-2022/transfer-hook/counter/anchor/pnpm-lock.yaml
@@ -10,13 +10,13 @@ importers:
dependencies:
'@coral-xyz/anchor':
specifier: ^0.32.1
- version: 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@solana/spl-token':
specifier: ^0.4.0
- version: 0.4.6(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ version: 0.4.6(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@solana/web3.js':
- specifier: ^1.92.3
- version: 1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
devDependencies:
'@types/bn.js':
specifier: ^5.1.0
@@ -51,8 +51,8 @@ importers:
packages:
- '@babel/runtime@7.24.7':
- resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==}
+ '@babel/runtime@7.29.2':
+ resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==}
engines: {node: '>=6.9.0'}
'@coral-xyz/anchor-errors@0.31.1':
@@ -69,12 +69,9 @@ packages:
peerDependencies:
'@solana/web3.js': ^1.69.0
- '@noble/curves@1.4.0':
- resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==}
-
- '@noble/hashes@1.4.0':
- resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==}
- engines: {node: '>= 16'}
+ '@noble/curves@1.9.7':
+ resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==}
+ engines: {node: ^14.21.3 || >=16}
'@noble/hashes@1.8.0':
resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
@@ -91,12 +88,24 @@ packages:
'@solana/codecs-core@2.0.0-preview.2':
resolution: {integrity: sha512-gLhCJXieSCrAU7acUJjbXl+IbGnqovvxQLlimztPoGgfLQ1wFYu+XJswrEVQqknZYK1pgxpxH3rZ+OKFs0ndQg==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-data-structures@2.0.0-preview.2':
resolution: {integrity: sha512-Xf5vIfromOZo94Q8HbR04TbgTwzigqrKII0GjYr21K7rb3nba4hUW2ir8kguY7HWFBcjHGlU5x3MevKBOLp3Zg==}
'@solana/codecs-numbers@2.0.0-preview.2':
resolution: {integrity: sha512-aLZnDTf43z4qOnpTcDsUVy1Ci9im1Md8thWipSWbE+WM9ojZAx528oAql+Cv8M8N+6ALKwgVRhPZkto6E59ARw==}
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-strings@2.0.0-preview.2':
resolution: {integrity: sha512-EgBwY+lIaHHgMJIqVOGHfIfpdmmUDNoNO/GAUGeFPf+q0dF+DtwhJPEMShhzh64X2MeCZcmSO6Kinx0Bvmmz2g==}
peerDependencies:
@@ -109,6 +118,13 @@ packages:
resolution: {integrity: sha512-H2DZ1l3iYF5Rp5pPbJpmmtCauWeQXRJapkDg8epQ8BJ7cA2Ut/QEtC3CMmw/iMTcuS6uemFNLcWvlOfoQhvQuA==}
hasBin: true
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/options@2.0.0-preview.2':
resolution: {integrity: sha512-FAHqEeH0cVsUOTzjl5OfUBw2cyT8d5Oekx4xcn5hn+NyPAfQJgM3CEThzgRD6Q/4mM5pVUnND3oK/Mt1RzSE/w==}
@@ -134,8 +150,11 @@ packages:
resolution: {integrity: sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA==}
engines: {node: '>=16'}
- '@solana/web3.js@1.92.3':
- resolution: {integrity: sha512-NVBWvb9zdJIAx6X+caXaIICCEQfQaQ8ygykCjJW4u2z/sIKcvPj3ZIIllnx0MWMc3IxGq15ozGYDOQIMbwUcHw==}
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
+
+ '@swc/helpers@0.5.19':
+ resolution: {integrity: sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==}
'@types/bn.js@5.1.5':
resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==}
@@ -161,16 +180,18 @@ packages:
'@types/node@20.12.11':
resolution: {integrity: sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==}
+ '@types/uuid@10.0.0':
+ resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
+
'@types/ws@7.4.7':
resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
+ '@types/ws@8.18.1':
+ resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
+
'@ungap/promise-all-settled@1.1.2':
resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==}
- JSONStream@1.3.5:
- resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
- hasBin: true
-
agentkeepalive@4.5.0:
resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
engines: {node: '>= 8.0.0'}
@@ -224,9 +245,6 @@ packages:
bindings@1.5.0:
resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
- 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==}
@@ -281,6 +299,10 @@ packages:
resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -302,6 +324,10 @@ packages:
resolution: {integrity: sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==}
engines: {node: '>=18'}
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@@ -360,6 +386,9 @@ packages:
eventemitter3@4.0.7:
resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
+ eventemitter3@5.0.4:
+ resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==}
+
eyes@0.1.8:
resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==}
engines: {node: '> 0.1.90'}
@@ -467,8 +496,8 @@ packages:
peerDependencies:
ws: '*'
- jayson@4.1.0:
- resolution: {integrity: sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==}
+ jayson@4.3.0:
+ resolution: {integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==}
engines: {node: '>=8'}
hasBin: true
@@ -483,10 +512,6 @@ packages:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
- jsonparse@1.3.1:
- resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
- engines: {'0': node >= 0.2.0}
-
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -589,15 +614,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@8.0.1:
- resolution: {integrity: sha512-PptrPRK40uQvifq5sCcObmqInVcZXhy+RRrirzdE5KUPvDI47y1wPvfckD2QzqngOU9xaPW/dT+G+b+wj6M1MQ==}
+ rpc-websockets@9.3.5:
+ resolution: {integrity: sha512-4mAmr+AEhPYJ9TmDtxF3r3ZcbWy7W8kvZ4PoZYw/Xgp2J7WixjwTgiQZsoTDvch5nimmg3Ay6/0Kuh9oIvVs9A==}
safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
@@ -612,6 +634,12 @@ packages:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
+ stream-chain@2.2.5:
+ resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==}
+
+ stream-json@1.9.1:
+ resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==}
+
string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
@@ -631,8 +659,8 @@ packages:
superstruct@0.15.5:
resolution: {integrity: sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==}
- superstruct@1.0.4:
- resolution: {integrity: sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==}
+ superstruct@2.0.2:
+ resolution: {integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==}
engines: {node: '>=14.0.0'}
supports-color@7.2.0:
@@ -646,9 +674,6 @@ packages:
text-encoding-utf-8@1.0.2:
resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==}
- through@2.3.8:
- resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
-
to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
@@ -674,6 +699,9 @@ packages:
tsconfig-paths@3.15.0:
resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
type-detect@4.0.8:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
@@ -686,10 +714,14 @@ packages:
undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
- utf-8-validate@5.0.10:
- resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==}
+ utf-8-validate@6.0.6:
+ resolution: {integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==}
engines: {node: '>=6.14.2'}
+ uuid@11.1.0:
+ resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==}
+ hasBin: true
+
uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
@@ -715,8 +747,8 @@ packages:
wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
- ws@7.5.9:
- resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
+ ws@7.5.10:
+ resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==}
engines: {node: '>=8.3.0'}
peerDependencies:
bufferutil: ^4.0.1
@@ -765,18 +797,16 @@ packages:
snapshots:
- '@babel/runtime@7.24.7':
- dependencies:
- regenerator-runtime: 0.14.1
+ '@babel/runtime@7.29.2': {}
'@coral-xyz/anchor-errors@0.31.1': {}
- '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@coral-xyz/anchor-errors': 0.31.1
- '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))
'@noble/hashes': 1.8.0
- '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bn.js: 5.2.2
bs58: 4.0.1
buffer-layout: 1.2.2
@@ -789,31 +819,31 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))':
dependencies:
- '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bn.js: 5.2.2
buffer-layout: 1.2.2
- '@noble/curves@1.4.0':
+ '@noble/curves@1.9.7':
dependencies:
- '@noble/hashes': 1.4.0
-
- '@noble/hashes@1.4.0': {}
+ '@noble/hashes': 1.8.0
'@noble/hashes@1.8.0': {}
- '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bigint-buffer: 1.1.5
bignumber.js: 9.1.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@solana/buffer-layout@4.0.1':
@@ -824,6 +854,11 @@ snapshots:
dependencies:
'@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-core@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
'@solana/codecs-data-structures@2.0.0-preview.2':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
@@ -835,6 +870,12 @@ snapshots:
'@solana/codecs-core': 2.0.0-preview.2
'@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-numbers@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@4.9.5)
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
'@solana/codecs-strings@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
@@ -857,67 +898,79 @@ snapshots:
chalk: 5.3.0
commander: 12.0.0
+ '@solana/errors@2.3.0(typescript@4.9.5)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.3
+ typescript: 4.9.5
+
'@solana/options@2.0.0-preview.2':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
'@solana/codecs-numbers': 2.0.0-preview.2
- '@solana/spl-token-group@0.0.4(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)':
+ '@solana/spl-token-group@0.0.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)
'@solana/spl-type-length-value': 0.1.0
- '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- '@solana/spl-token-metadata@0.1.4(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)':
+ '@solana/spl-token-metadata@0.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)
'@solana/spl-type-length-value': 0.1.0
- '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- '@solana/spl-token@0.4.6(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@solana/spl-token@0.4.6(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token-group': 0.0.4(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)
- '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)
- '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/spl-token-group': 0.0.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)
+ '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
buffer: 6.0.3
transitivePeerDependencies:
- bufferutil
- encoding
- fastestsmallesttextencoderdecoder
+ - typescript
- utf-8-validate
'@solana/spl-type-length-value@0.1.0':
dependencies:
buffer: 6.0.3
- '@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
- '@babel/runtime': 7.24.7
- '@noble/curves': 1.4.0
- '@noble/hashes': 1.4.0
+ '@babel/runtime': 7.29.2
+ '@noble/curves': 1.9.7
+ '@noble/hashes': 1.8.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@4.9.5)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
- 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.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ jayson: 4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
node-fetch: 2.7.0
- rpc-websockets: 8.0.1
- superstruct: 1.0.4
+ rpc-websockets: 9.3.5
+ superstruct: 2.0.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
+ '@swc/helpers@0.5.19':
+ dependencies:
+ tslib: 2.8.1
+
'@types/bn.js@5.1.5':
dependencies:
'@types/node': 20.12.11
@@ -943,16 +996,17 @@ snapshots:
dependencies:
undici-types: 5.26.5
+ '@types/uuid@10.0.0': {}
+
'@types/ws@7.4.7':
dependencies:
'@types/node': 20.12.11
- '@ungap/promise-all-settled@1.1.2': {}
-
- JSONStream@1.3.5:
+ '@types/ws@8.18.1':
dependencies:
- jsonparse: 1.3.1
- through: 2.3.8
+ '@types/node': 20.12.11
+
+ '@ungap/promise-all-settled@1.1.2': {}
agentkeepalive@4.5.0:
dependencies:
@@ -997,13 +1051,11 @@ snapshots:
dependencies:
file-uri-to-path: 1.0.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
@@ -1060,6 +1112,8 @@ snapshots:
chalk@5.3.0: {}
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -1090,6 +1144,8 @@ snapshots:
commander@12.0.0: {}
+ commander@14.0.3: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -1132,6 +1188,8 @@ snapshots:
eventemitter3@4.0.7: {}
+ eventemitter3@5.0.4: {}
+
eyes@0.1.8: {}
fast-stable-stringify@1.0.0: {}
@@ -1212,24 +1270,24 @@ snapshots:
isexe@2.0.0: {}
- isomorphic-ws@4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
+ isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)):
dependencies:
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
- jayson@4.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ jayson@4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
dependencies:
'@types/connect': 3.4.38
'@types/node': 12.20.55
'@types/ws': 7.4.7
- JSONStream: 1.3.5
commander: 2.20.3
delay: 5.0.0
es6-promisify: 5.0.0
eyes: 0.1.8
- isomorphic-ws: 4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6))
json-stringify-safe: 5.0.1
+ stream-json: 1.9.1
uuid: 8.3.2
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- bufferutil
- utf-8-validate
@@ -1245,8 +1303,6 @@ snapshots:
minimist: 1.2.8
optional: true
- jsonparse@1.3.1: {}
-
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1350,18 +1406,20 @@ snapshots:
dependencies:
picomatch: 2.3.1
- regenerator-runtime@0.14.1: {}
-
require-directory@2.1.1: {}
- rpc-websockets@8.0.1:
+ rpc-websockets@9.3.5:
dependencies:
- eventemitter3: 4.0.7
- uuid: 8.3.2
- ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@swc/helpers': 0.5.19
+ '@types/uuid': 10.0.0
+ '@types/ws': 8.18.1
+ buffer: 6.0.3
+ eventemitter3: 5.0.4
+ uuid: 11.1.0
+ ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
safe-buffer@5.2.1: {}
@@ -1376,6 +1434,12 @@ snapshots:
source-map@0.6.1: {}
+ stream-chain@2.2.5: {}
+
+ stream-json@1.9.1:
+ dependencies:
+ stream-chain: 2.2.5
+
string-width@4.2.3:
dependencies:
emoji-regex: 8.0.0
@@ -1393,7 +1457,7 @@ snapshots:
superstruct@0.15.5: {}
- superstruct@1.0.4: {}
+ superstruct@2.0.2: {}
supports-color@7.2.0:
dependencies:
@@ -1405,8 +1469,6 @@ snapshots:
text-encoding-utf-8@1.0.2: {}
- through@2.3.8: {}
-
to-regex-range@5.0.1:
dependencies:
is-number: 7.0.0
@@ -1441,17 +1503,21 @@ snapshots:
strip-bom: 3.0.0
optional: true
+ tslib@2.8.1: {}
+
type-detect@4.0.8: {}
typescript@4.9.5: {}
undici-types@5.26.5: {}
- utf-8-validate@5.0.10:
+ utf-8-validate@6.0.6:
dependencies:
node-gyp-build: 4.8.1
optional: true
+ uuid@11.1.0: {}
+
uuid@8.3.2: {}
webidl-conversions@3.0.1: {}
@@ -1475,15 +1541,15 @@ snapshots:
wrappy@1.0.2: {}
- ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
- ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
y18n@5.0.8: {}
diff --git a/tokens/token-2022/transfer-hook/hello-world/anchor/pnpm-lock.yaml b/tokens/token-2022/transfer-hook/hello-world/anchor/pnpm-lock.yaml
index caadea929..d24caddf3 100644
--- a/tokens/token-2022/transfer-hook/hello-world/anchor/pnpm-lock.yaml
+++ b/tokens/token-2022/transfer-hook/hello-world/anchor/pnpm-lock.yaml
@@ -10,13 +10,13 @@ importers:
dependencies:
'@coral-xyz/anchor':
specifier: ^0.32.1
- version: 0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@solana/spl-token':
specifier: ^0.4.0
- version: 0.4.6(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)
+ version: 0.4.6(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)
'@solana/web3.js':
- specifier: ^1.92.3
- version: 1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.4
+ version: 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
devDependencies:
'@types/bn.js':
specifier: ^5.1.0
@@ -51,8 +51,8 @@ importers:
packages:
- '@babel/runtime@7.24.7':
- resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==}
+ '@babel/runtime@7.29.2':
+ resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==}
engines: {node: '>=6.9.0'}
'@coral-xyz/anchor-errors@0.31.1':
@@ -69,12 +69,9 @@ packages:
peerDependencies:
'@solana/web3.js': ^1.69.0
- '@noble/curves@1.4.0':
- resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==}
-
- '@noble/hashes@1.4.0':
- resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==}
- engines: {node: '>= 16'}
+ '@noble/curves@1.9.7':
+ resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==}
+ engines: {node: ^14.21.3 || >=16}
'@noble/hashes@1.8.0':
resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
@@ -91,12 +88,24 @@ packages:
'@solana/codecs-core@2.0.0-preview.2':
resolution: {integrity: sha512-gLhCJXieSCrAU7acUJjbXl+IbGnqovvxQLlimztPoGgfLQ1wFYu+XJswrEVQqknZYK1pgxpxH3rZ+OKFs0ndQg==}
+ '@solana/codecs-core@2.3.0':
+ resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-data-structures@2.0.0-preview.2':
resolution: {integrity: sha512-Xf5vIfromOZo94Q8HbR04TbgTwzigqrKII0GjYr21K7rb3nba4hUW2ir8kguY7HWFBcjHGlU5x3MevKBOLp3Zg==}
'@solana/codecs-numbers@2.0.0-preview.2':
resolution: {integrity: sha512-aLZnDTf43z4qOnpTcDsUVy1Ci9im1Md8thWipSWbE+WM9ojZAx528oAql+Cv8M8N+6ALKwgVRhPZkto6E59ARw==}
+ '@solana/codecs-numbers@2.3.0':
+ resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/codecs-strings@2.0.0-preview.2':
resolution: {integrity: sha512-EgBwY+lIaHHgMJIqVOGHfIfpdmmUDNoNO/GAUGeFPf+q0dF+DtwhJPEMShhzh64X2MeCZcmSO6Kinx0Bvmmz2g==}
peerDependencies:
@@ -109,6 +118,13 @@ packages:
resolution: {integrity: sha512-H2DZ1l3iYF5Rp5pPbJpmmtCauWeQXRJapkDg8epQ8BJ7cA2Ut/QEtC3CMmw/iMTcuS6uemFNLcWvlOfoQhvQuA==}
hasBin: true
+ '@solana/errors@2.3.0':
+ resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==}
+ engines: {node: '>=20.18.0'}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.3.3'
+
'@solana/options@2.0.0-preview.2':
resolution: {integrity: sha512-FAHqEeH0cVsUOTzjl5OfUBw2cyT8d5Oekx4xcn5hn+NyPAfQJgM3CEThzgRD6Q/4mM5pVUnND3oK/Mt1RzSE/w==}
@@ -134,8 +150,11 @@ packages:
resolution: {integrity: sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA==}
engines: {node: '>=16'}
- '@solana/web3.js@1.92.3':
- resolution: {integrity: sha512-NVBWvb9zdJIAx6X+caXaIICCEQfQaQ8ygykCjJW4u2z/sIKcvPj3ZIIllnx0MWMc3IxGq15ozGYDOQIMbwUcHw==}
+ '@solana/web3.js@1.98.4':
+ resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==}
+
+ '@swc/helpers@0.5.19':
+ resolution: {integrity: sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==}
'@types/bn.js@5.1.5':
resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==}
@@ -161,16 +180,18 @@ packages:
'@types/node@20.12.11':
resolution: {integrity: sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==}
+ '@types/uuid@10.0.0':
+ resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
+
'@types/ws@7.4.7':
resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
+ '@types/ws@8.18.1':
+ resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
+
'@ungap/promise-all-settled@1.1.2':
resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==}
- JSONStream@1.3.5:
- resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
- hasBin: true
-
agentkeepalive@4.5.0:
resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
engines: {node: '>= 8.0.0'}
@@ -224,9 +245,6 @@ packages:
bindings@1.5.0:
resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
- 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==}
@@ -281,6 +299,10 @@ packages:
resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
@@ -302,6 +324,10 @@ packages:
resolution: {integrity: sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==}
engines: {node: '>=18'}
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@@ -360,6 +386,9 @@ packages:
eventemitter3@4.0.7:
resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
+ eventemitter3@5.0.4:
+ resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==}
+
eyes@0.1.8:
resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==}
engines: {node: '> 0.1.90'}
@@ -467,8 +496,8 @@ packages:
peerDependencies:
ws: '*'
- jayson@4.1.0:
- resolution: {integrity: sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==}
+ jayson@4.3.0:
+ resolution: {integrity: sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==}
engines: {node: '>=8'}
hasBin: true
@@ -483,10 +512,6 @@ packages:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
- jsonparse@1.3.1:
- resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
- engines: {'0': node >= 0.2.0}
-
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -589,15 +614,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@8.0.1:
- resolution: {integrity: sha512-PptrPRK40uQvifq5sCcObmqInVcZXhy+RRrirzdE5KUPvDI47y1wPvfckD2QzqngOU9xaPW/dT+G+b+wj6M1MQ==}
+ rpc-websockets@9.3.5:
+ resolution: {integrity: sha512-4mAmr+AEhPYJ9TmDtxF3r3ZcbWy7W8kvZ4PoZYw/Xgp2J7WixjwTgiQZsoTDvch5nimmg3Ay6/0Kuh9oIvVs9A==}
safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
@@ -612,6 +634,12 @@ packages:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
+ stream-chain@2.2.5:
+ resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==}
+
+ stream-json@1.9.1:
+ resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==}
+
string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
@@ -631,8 +659,8 @@ packages:
superstruct@0.15.5:
resolution: {integrity: sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==}
- superstruct@1.0.4:
- resolution: {integrity: sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==}
+ superstruct@2.0.2:
+ resolution: {integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==}
engines: {node: '>=14.0.0'}
supports-color@7.2.0:
@@ -646,9 +674,6 @@ packages:
text-encoding-utf-8@1.0.2:
resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==}
- through@2.3.8:
- resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
-
to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
@@ -674,6 +699,9 @@ packages:
tsconfig-paths@3.15.0:
resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
type-detect@4.0.8:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
@@ -686,10 +714,14 @@ packages:
undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
- utf-8-validate@5.0.10:
- resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==}
+ utf-8-validate@6.0.6:
+ resolution: {integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==}
engines: {node: '>=6.14.2'}
+ uuid@11.1.0:
+ resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==}
+ hasBin: true
+
uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
@@ -715,8 +747,8 @@ packages:
wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
- ws@7.5.9:
- resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
+ ws@7.5.10:
+ resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==}
engines: {node: '>=8.3.0'}
peerDependencies:
bufferutil: ^4.0.1
@@ -765,18 +797,16 @@ packages:
snapshots:
- '@babel/runtime@7.24.7':
- dependencies:
- regenerator-runtime: 0.14.1
+ '@babel/runtime@7.29.2': {}
'@coral-xyz/anchor-errors@0.31.1': {}
- '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@coral-xyz/anchor-errors': 0.31.1
- '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))
'@noble/hashes': 1.8.0
- '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bn.js: 5.2.2
bs58: 4.0.1
buffer-layout: 1.2.2
@@ -789,31 +819,31 @@ snapshots:
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
- '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))':
dependencies:
- '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bn.js: 5.2.2
buffer-layout: 1.2.2
- '@noble/curves@1.4.0':
+ '@noble/curves@1.9.7':
dependencies:
- '@noble/hashes': 1.4.0
-
- '@noble/hashes@1.4.0': {}
+ '@noble/hashes': 1.8.0
'@noble/hashes@1.8.0': {}
- '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
bigint-buffer: 1.1.5
bignumber.js: 9.1.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
'@solana/buffer-layout@4.0.1':
@@ -824,6 +854,11 @@ snapshots:
dependencies:
'@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-core@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
'@solana/codecs-data-structures@2.0.0-preview.2':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
@@ -835,6 +870,12 @@ snapshots:
'@solana/codecs-core': 2.0.0-preview.2
'@solana/errors': 2.0.0-preview.2
+ '@solana/codecs-numbers@2.3.0(typescript@4.9.5)':
+ dependencies:
+ '@solana/codecs-core': 2.3.0(typescript@4.9.5)
+ '@solana/errors': 2.3.0(typescript@4.9.5)
+ typescript: 4.9.5
+
'@solana/codecs-strings@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
@@ -857,67 +898,79 @@ snapshots:
chalk: 5.3.0
commander: 12.0.0
+ '@solana/errors@2.3.0(typescript@4.9.5)':
+ dependencies:
+ chalk: 5.6.2
+ commander: 14.0.3
+ typescript: 4.9.5
+
'@solana/options@2.0.0-preview.2':
dependencies:
'@solana/codecs-core': 2.0.0-preview.2
'@solana/codecs-numbers': 2.0.0-preview.2
- '@solana/spl-token-group@0.0.4(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)':
+ '@solana/spl-token-group@0.0.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)
'@solana/spl-type-length-value': 0.1.0
- '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- '@solana/spl-token-metadata@0.1.4(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)':
+ '@solana/spl-token-metadata@0.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)
'@solana/spl-type-length-value': 0.1.0
- '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- '@solana/spl-token@0.4.6(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)':
+ '@solana/spl-token@0.4.6(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token-group': 0.0.4(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)
- '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)
- '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
+ '@solana/spl-token-group': 0.0.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)
+ '@solana/spl-token-metadata': 0.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6))(fastestsmallesttextencoderdecoder@1.0.22)
+ '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)
buffer: 6.0.3
transitivePeerDependencies:
- bufferutil
- encoding
- fastestsmallesttextencoderdecoder
+ - typescript
- utf-8-validate
'@solana/spl-type-length-value@0.1.0':
dependencies:
buffer: 6.0.3
- '@solana/web3.js@1.92.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@6.0.6)':
dependencies:
- '@babel/runtime': 7.24.7
- '@noble/curves': 1.4.0
- '@noble/hashes': 1.4.0
+ '@babel/runtime': 7.29.2
+ '@noble/curves': 1.9.7
+ '@noble/hashes': 1.8.0
'@solana/buffer-layout': 4.0.1
+ '@solana/codecs-numbers': 2.3.0(typescript@4.9.5)
agentkeepalive: 4.5.0
- bigint-buffer: 1.1.5
- 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.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ jayson: 4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
node-fetch: 2.7.0
- rpc-websockets: 8.0.1
- superstruct: 1.0.4
+ rpc-websockets: 9.3.5
+ superstruct: 2.0.2
transitivePeerDependencies:
- bufferutil
- encoding
+ - typescript
- utf-8-validate
+ '@swc/helpers@0.5.19':
+ dependencies:
+ tslib: 2.8.1
+
'@types/bn.js@5.1.5':
dependencies:
'@types/node': 20.12.11
@@ -943,16 +996,17 @@ snapshots:
dependencies:
undici-types: 5.26.5
+ '@types/uuid@10.0.0': {}
+
'@types/ws@7.4.7':
dependencies:
'@types/node': 20.12.11
- '@ungap/promise-all-settled@1.1.2': {}
-
- JSONStream@1.3.5:
+ '@types/ws@8.18.1':
dependencies:
- jsonparse: 1.3.1
- through: 2.3.8
+ '@types/node': 20.12.11
+
+ '@ungap/promise-all-settled@1.1.2': {}
agentkeepalive@4.5.0:
dependencies:
@@ -997,13 +1051,11 @@ snapshots:
dependencies:
file-uri-to-path: 1.0.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
@@ -1060,6 +1112,8 @@ snapshots:
chalk@5.3.0: {}
+ chalk@5.6.2: {}
+
check-error@1.0.3:
dependencies:
get-func-name: 2.0.2
@@ -1090,6 +1144,8 @@ snapshots:
commander@12.0.0: {}
+ commander@14.0.3: {}
+
commander@2.20.3: {}
concat-map@0.0.1: {}
@@ -1132,6 +1188,8 @@ snapshots:
eventemitter3@4.0.7: {}
+ eventemitter3@5.0.4: {}
+
eyes@0.1.8: {}
fast-stable-stringify@1.0.0: {}
@@ -1212,24 +1270,24 @@ snapshots:
isexe@2.0.0: {}
- isomorphic-ws@4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
+ isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)):
dependencies:
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
- jayson@4.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ jayson@4.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
dependencies:
'@types/connect': 3.4.38
'@types/node': 12.20.55
'@types/ws': 7.4.7
- JSONStream: 1.3.5
commander: 2.20.3
delay: 5.0.0
es6-promisify: 5.0.0
eyes: 0.1.8
- isomorphic-ws: 4.0.1(ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6))
json-stringify-safe: 5.0.1
+ stream-json: 1.9.1
uuid: 8.3.2
- ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6)
transitivePeerDependencies:
- bufferutil
- utf-8-validate
@@ -1245,8 +1303,6 @@ snapshots:
minimist: 1.2.8
optional: true
- jsonparse@1.3.1: {}
-
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -1350,18 +1406,20 @@ snapshots:
dependencies:
picomatch: 2.3.1
- regenerator-runtime@0.14.1: {}
-
require-directory@2.1.1: {}
- rpc-websockets@8.0.1:
+ rpc-websockets@9.3.5:
dependencies:
- eventemitter3: 4.0.7
- uuid: 8.3.2
- ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@swc/helpers': 0.5.19
+ '@types/uuid': 10.0.0
+ '@types/ws': 8.18.1
+ buffer: 6.0.3
+ eventemitter3: 5.0.4
+ uuid: 11.1.0
+ ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6)
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
safe-buffer@5.2.1: {}
@@ -1376,6 +1434,12 @@ snapshots:
source-map@0.6.1: {}
+ stream-chain@2.2.5: {}
+
+ stream-json@1.9.1:
+ dependencies:
+ stream-chain: 2.2.5
+
string-width@4.2.3:
dependencies:
emoji-regex: 8.0.0
@@ -1393,7 +1457,7 @@ snapshots:
superstruct@0.15.5: {}
- superstruct@1.0.4: {}
+ superstruct@2.0.2: {}
supports-color@7.2.0:
dependencies:
@@ -1405,8 +1469,6 @@ snapshots:
text-encoding-utf-8@1.0.2: {}
- through@2.3.8: {}
-
to-regex-range@5.0.1:
dependencies:
is-number: 7.0.0
@@ -1441,17 +1503,21 @@ snapshots:
strip-bom: 3.0.0
optional: true
+ tslib@2.8.1: {}
+
type-detect@4.0.8: {}
typescript@4.9.5: {}
undici-types@5.26.5: {}
- utf-8-validate@5.0.10:
+ utf-8-validate@6.0.6:
dependencies:
node-gyp-build: 4.8.1
optional: true
+ uuid@11.1.0: {}
+
uuid@8.3.2: {}
webidl-conversions@3.0.1: {}
@@ -1475,15 +1541,15 @@ snapshots:
wrappy@1.0.2: {}
- ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
- ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.6):
optionalDependencies:
bufferutil: 4.0.8
- utf-8-validate: 5.0.10
+ utf-8-validate: 6.0.6
y18n@5.0.8: {}
diff --git a/tokens/transfer-tokens/native/pnpm-lock.yaml b/tokens/transfer-tokens/native/pnpm-lock.yaml
index 5967dbc21..d320451da 100644
--- a/tokens/transfer-tokens/native/pnpm-lock.yaml
+++ b/tokens/transfer-tokens/native/pnpm-lock.yaml
@@ -15,7 +15,7 @@ importers:
specifier: ^0.3.7
version: 0.3.11(@solana/web3.js@1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.73.0
+ specifier: ^1.98.4
version: 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)
borsh:
specifier: ^2.0.0
@@ -1117,7 +1117,7 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 25.2.3
'@types/json5@0.0.29':
optional: true
@@ -1134,7 +1134,7 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 25.2.3
'@types/ws@8.18.1':
dependencies:
From 641ae303d27a327703b46ce2037f3febb2980eac Mon Sep 17 00:00:00 2001
From: Mike MacCana
Date: Wed, 18 Mar 2026 20:36:49 +0000
Subject: [PATCH 49/49] ci: update GitHub Actions to Node.js 24 runtime
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Node.js 20 actions are deprecated by GitHub and will stop working
in June 2026. Updated all workflow actions to their latest versions
that use the Node.js 24 runtime:
- actions/checkout: v4 → v5
- actions/setup-node: v4 → v5
- dorny/paths-filter: v3 → v4
- heyAyushh/setup-anchor: v0.31 → v4.999
- heyAyushh/setup-solana: v2.02 → v5.9
Also added FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true env variable to
all workflows. This forces any remaining Node.js 20 actions (e.g.
those used internally by composite actions) to run on Node.js 24.
See: https://github.blog/changelog/2025-06-09-github-actions-node-js-20-deprecation/
---
.github/workflows/anchor.yml | 14 +++++++++-----
.github/workflows/rust.yml | 10 ++++++++--
.github/workflows/solana-native.yml | 18 +++++++++++-------
.github/workflows/solana-pinocchio.yml | 18 +++++++++++-------
4 files changed, 39 insertions(+), 21 deletions(-)
diff --git a/.github/workflows/anchor.yml b/.github/workflows/anchor.yml
index fce59a2a1..930913439 100644
--- a/.github/workflows/anchor.yml
+++ b/.github/workflows/anchor.yml
@@ -15,6 +15,10 @@ env:
MAX_JOBS: 64
MIN_PROJECTS_PER_JOB: 4
MIN_PROJECTS_FOR_MATRIX: 4
+ # Force all JavaScript-based actions to use Node.js 24 runtime.
+ # Node.js 20 actions are deprecated and will stop working June 2026.
+ # This catches composite actions whose internal dependencies still reference @v4.
+ FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
changes:
@@ -26,8 +30,8 @@ jobs:
total_projects: ${{ steps.analyze.outputs.total_projects }}
matrix: ${{ steps.matrix.outputs.matrix }}
steps:
- - uses: actions/checkout@v4
- - uses: dorny/paths-filter@v3
+ - uses: actions/checkout@v5
+ - uses: dorny/paths-filter@v4
id: changes
if: github.event_name == 'pull_request'
with:
@@ -103,8 +107,8 @@ jobs:
outputs:
failed_projects: ${{ steps.set-failed.outputs.failed_projects }}
steps:
- - uses: actions/checkout@v4
- - uses: heyAyushh/setup-anchor@v0.31
+ - uses: actions/checkout@v5
+ - uses: heyAyushh/setup-anchor@v4.999
with:
anchor-version: 0.32.1
solana-cli-version: stable
@@ -204,7 +208,7 @@ jobs:
if: always()
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Create job summary
run: |
echo "## Anchor Workflow Summary" >> $GITHUB_STEP_SUMMARY
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index 6cbd2e990..8d4b45302 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -14,6 +14,12 @@ on:
branches:
- main
+env:
+ # Force all JavaScript-based actions to use Node.js 24 runtime.
+ # Node.js 20 actions are deprecated and will stop working June 2026.
+ # This catches composite actions whose internal dependencies still reference @v4.
+ FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
+
# A workflow run is made up of one or more jobs, which run in parallel by default
# Each job runs in a runner environment specified by runs-on
jobs:
@@ -22,7 +28,7 @@ jobs:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
with:
# Specific to dtolnay/rust-toolchain: Comma-separated string of additional components to install
@@ -35,7 +41,7 @@ jobs:
name: Clippy
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
diff --git a/.github/workflows/solana-native.yml b/.github/workflows/solana-native.yml
index 7b4f4bcc5..9d6331e05 100644
--- a/.github/workflows/solana-native.yml
+++ b/.github/workflows/solana-native.yml
@@ -15,6 +15,10 @@ env:
MAX_JOBS: 64
MIN_PROJECTS_PER_JOB: 4
MIN_PROJECTS_FOR_MATRIX: 4
+ # Force all JavaScript-based actions to use Node.js 24 runtime.
+ # Node.js 20 actions are deprecated and will stop working June 2026.
+ # This catches composite actions whose internal dependencies still reference @v4.
+ FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
changes:
@@ -26,8 +30,8 @@ jobs:
total_projects: ${{ steps.analyze.outputs.total_projects }}
matrix: ${{ steps.matrix.outputs.matrix }}
steps:
- - uses: actions/checkout@v4
- - uses: dorny/paths-filter@v3
+ - uses: actions/checkout@v5
+ - uses: dorny/paths-filter@v4
id: changes
if: github.event_name == 'pull_request'
with:
@@ -102,9 +106,9 @@ jobs:
outputs:
failed_projects: ${{ steps.set-failed.outputs.failed_projects }}
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Use Node.js
- uses: actions/setup-node@v4
+ uses: actions/setup-node@v5
with:
node-version: 'lts/*'
check-latest: true
@@ -191,7 +195,7 @@ jobs:
# Install pnpm
npm install --global pnpm
- name: Setup Solana Stable
- uses: heyAyushh/setup-solana@v2.02
+ uses: heyAyushh/setup-solana@v5.9
with:
solana-cli-version: stable
- name: Build and Test with Stable
@@ -205,7 +209,7 @@ jobs:
# with heyAyushh/setup-solana — beta setup clears the stable install first.
- name: Setup Solana Beta
continue-on-error: true
- uses: heyAyushh/setup-solana@v2.02
+ uses: heyAyushh/setup-solana@v5.9
with:
solana-cli-version: beta
- name: Build and Test with Beta
@@ -232,7 +236,7 @@ jobs:
if: always()
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Create job summary
run: |
echo "## Native Workflow Summary" >> $GITHUB_STEP_SUMMARY
diff --git a/.github/workflows/solana-pinocchio.yml b/.github/workflows/solana-pinocchio.yml
index 6d94e55f3..3215934cd 100644
--- a/.github/workflows/solana-pinocchio.yml
+++ b/.github/workflows/solana-pinocchio.yml
@@ -15,6 +15,10 @@ env:
MAX_JOBS: 64
MIN_PROJECTS_PER_JOB: 4
MIN_PROJECTS_FOR_MATRIX: 4
+ # Force all JavaScript-based actions to use Node.js 24 runtime.
+ # Node.js 20 actions are deprecated and will stop working June 2026.
+ # This catches composite actions whose internal dependencies still reference @v4.
+ FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
changes:
@@ -26,8 +30,8 @@ jobs:
total_projects: ${{ steps.analyze.outputs.total_projects }}
matrix: ${{ steps.matrix.outputs.matrix }}
steps:
- - uses: actions/checkout@v4
- - uses: dorny/paths-filter@v3
+ - uses: actions/checkout@v5
+ - uses: dorny/paths-filter@v4
id: changes
if: github.event_name == 'pull_request'
with:
@@ -102,9 +106,9 @@ jobs:
outputs:
failed_projects: ${{ steps.set-failed.outputs.failed_projects }}
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Use Node.js
- uses: actions/setup-node@v4
+ uses: actions/setup-node@v5
with:
node-version: "lts/*"
check-latest: true
@@ -191,7 +195,7 @@ jobs:
# Install pnpm
npm install --global pnpm
- name: Setup Solana Stable
- uses: heyAyushh/setup-solana@v2.02
+ uses: heyAyushh/setup-solana@v5.9
with:
solana-cli-version: stable
- name: Build and Test with Stable
@@ -205,7 +209,7 @@ jobs:
# with heyAyushh/setup-solana — beta setup clears the stable install first.
- name: Setup Solana Beta
continue-on-error: true
- uses: heyAyushh/setup-solana@v2.02
+ uses: heyAyushh/setup-solana@v5.9
with:
solana-cli-version: beta
- name: Build and Test with Beta
@@ -232,7 +236,7 @@ jobs:
if: always()
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Create job summary
run: |
echo "## Pinocchio Workflow Summary" >> $GITHUB_STEP_SUMMARY