From d04d70b9638eee79872b7c4959d6620e902de6a5 Mon Sep 17 00:00:00 2001 From: Dodecahedr0x Date: Wed, 16 Sep 2026 16:27:54 +0700 Subject: [PATCH 1/9] feat: test with magicsvm --- .github/workflows/test-magicsvm.yml | 85 + README.md | 16 +- binary-prediction/anchor/package.json | 6 +- .../programs/binary-prediction/src/lib.rs | 4 +- .../anchor/tests-magicsvm-rs/Cargo.lock | 7132 +++++++++++++++++ .../anchor/tests-magicsvm-rs/Cargo.toml | 26 + .../tests-magicsvm-rs/tests/magicsvm.rs | 869 ++ .../tests-magicsvm/binary-prediction.ts | 766 ++ .../tests-magicsvm/fixtures/session-keys.so | Bin 0 -> 522784 bytes binary-prediction/anchor/yarn.lock | 596 +- counter/anchor/package.json | 6 +- .../anchor/programs/public-counter/src/lib.rs | 2 +- counter/anchor/tests-magicsvm-rs/Cargo.lock | 6615 +++++++++++++++ counter/anchor/tests-magicsvm-rs/Cargo.toml | 21 + .../tests-magicsvm-rs/tests/magicsvm.rs | 236 + .../anchor/tests-magicsvm/public-counter.ts | 121 + counter/anchor/tsconfig.json | 7 +- counter/anchor/yarn.lock | 596 +- counter/native-rust/package.json | 6 +- .../native-rust/tests-magicsvm-rs/Cargo.lock | 6220 ++++++++++++++ .../native-rust/tests-magicsvm-rs/Cargo.toml | 28 + .../tests-magicsvm-rs/tests/magicsvm.rs | 334 + .../tests-magicsvm/rust-counter.test.ts | 401 + counter/native-rust/tsconfig.json | 7 +- counter/native-rust/vitest.config.ts | 2 +- counter/native-rust/yarn.lock | 732 +- counter/pinocchio/package.json | 6 +- .../pinocchio/tests-magicsvm-rs/Cargo.toml | 28 + .../tests-magicsvm-rs/tests/magicsvm.rs | 286 + .../tests-magicsvm/pinocchio-counter.test.ts | 362 + counter/pinocchio/tsconfig.json | 2 +- counter/pinocchio/yarn.lock | 717 +- delegation-actions/anchor/package.json | 7 +- .../programs/delegation-actions/src/lib.rs | 2 +- .../anchor/tests-magicsvm-rs/Cargo.lock | 6615 +++++++++++++++ .../anchor/tests-magicsvm-rs/Cargo.toml | 21 + .../tests-magicsvm-rs/tests/magicsvm.rs | 204 + .../tests-magicsvm/delegation-actions.ts | 151 + delegation-actions/anchor/tsconfig.json | 9 +- delegation-actions/anchor/yarn.lock | 610 +- ephemeral-account-chats/anchor/Anchor.toml | 2 +- ephemeral-account-chats/anchor/package.json | 8 +- .../ephemeral-account-chats/src/lib.rs | 2 +- .../target/idl/ephemeral_account_chats.json | 134 +- .../target/types/ephemeral_account_chats.ts | 134 +- .../anchor/tests-magicsvm-rs/Cargo.lock | 6615 +++++++++++++++ .../anchor/tests-magicsvm-rs/Cargo.toml | 21 + .../tests-magicsvm-rs/rust-toolchain.toml | 2 + .../tests-magicsvm-rs/tests/magicsvm.rs | 451 ++ .../tests-magicsvm/ephemeral-account-chats.ts | 372 + ephemeral-account-chats/anchor/tsconfig.json | 7 +- ephemeral-account-chats/anchor/yarn.lock | 598 +- magic-actions/anchor/package.json | 6 +- .../anchor/programs/magic-actions/src/lib.rs | 2 +- .../anchor/tests-magicsvm-rs/Cargo.lock | 6616 +++++++++++++++ .../anchor/tests-magicsvm-rs/Cargo.toml | 22 + .../tests-magicsvm-rs/tests/magicsvm.rs | 380 + .../anchor/tests-magicsvm/magic-actions.ts | 228 + magic-actions/anchor/tsconfig.json | 7 +- magic-actions/anchor/yarn.lock | 598 +- oncurve-delegation/client/package.json | 8 +- .../client/tests-magicsvm-rs/Cargo.lock | 6220 ++++++++++++++ .../client/tests-magicsvm-rs/Cargo.toml | 25 + .../tests-magicsvm-rs/tests/magicsvm.rs | 164 + .../tests-magicsvm/oncurve-delegation.test.ts | 112 + oncurve-delegation/client/vitest.config.ts | 7 +- oncurve-delegation/client/yarn.lock | 732 +- oracle-priced-purchase/anchor/package.json | 9 +- .../oracle-priced-purchase/src/lib.rs | 2 +- .../anchor/tests-magicsvm-rs/Cargo.lock | 6795 ++++++++++++++++ .../anchor/tests-magicsvm-rs/Cargo.toml | 34 + .../tests-magicsvm-rs/tests/magicsvm.rs | 295 + .../tests-magicsvm/oracle-priced-purchase.ts | 221 + oracle-priced-purchase/anchor/tsconfig.json | 7 +- oracle-priced-purchase/anchor/yarn.lock | 828 +- private-counter/anchor/package.json | 9 +- .../programs/private-counter/src/lib.rs | 2 +- .../anchor/tests-magicsvm-rs/Cargo.lock | 6838 ++++++++++++++++ .../anchor/tests-magicsvm-rs/Cargo.toml | 23 + .../tests-magicsvm-rs/tests/magicsvm.rs | 316 + .../anchor/tests-magicsvm/private-counter.ts | 195 + private-counter/anchor/tsconfig.json | 10 +- private-counter/anchor/yarn.lock | 608 +- private-counter/pinocchio/package.json | 6 +- .../pinocchio/tests-magicsvm-rs/Cargo.toml | 28 + .../tests-magicsvm-rs/tests/magicsvm.rs | 330 + .../pinocchio-private-counter.test.ts | 465 ++ private-counter/pinocchio/tsconfig.json | 2 +- private-counter/pinocchio/yarn.lock | 707 +- rock-paper-scissor/anchor/package.json | 7 +- .../anchor-rock-paper-scissor/src/lib.rs | 2 +- .../anchor/tests-magicsvm-rs/Cargo.lock | 6619 +++++++++++++++ .../anchor/tests-magicsvm-rs/Cargo.toml | 22 + .../tests-magicsvm-rs/tests/magicsvm.rs | 569 ++ .../tests-magicsvm/rock-paper-scissor.ts | 643 ++ .../anchor/tests-magicsvm/tsconfig.json | 12 + rock-paper-scissor/anchor/tsconfig.json | 7 +- rock-paper-scissor/anchor/yarn.lock | 608 +- scripts/projects.sh | 12 + scripts/test-magicsvm.sh | 126 + sealed-auction/anchor/MAGICSVM_FLAWS.md | 96 + session-keys/anchor/package.json | 6 +- .../anchor-counter-session/src/lib.rs | 4 +- .../anchor/tests-magicsvm-rs/Cargo.lock | 6656 +++++++++++++++ .../anchor/tests-magicsvm-rs/Cargo.toml | 24 + .../tests-magicsvm-rs/tests/magicsvm.rs | 395 + .../tests-magicsvm/anchor-counter-session.ts | 199 + .../tests-magicsvm/fixtures/session-keys.so | Bin 0 -> 522784 bytes session-keys/anchor/tsconfig.json | 7 +- session-keys/anchor/yarn.lock | 596 +- spl-tokens/anchor/package.json | 6 +- .../anchor/programs/spl-tokens/src/lib.rs | 2 +- .../anchor/tests-magicsvm-rs/Cargo.lock | 6915 ++++++++++++++++ .../anchor/tests-magicsvm-rs/Cargo.toml | 24 + .../tests-magicsvm-rs/tests/magicsvm.rs | 508 ++ .../anchor/tests-magicsvm/spl-tokens.ts | 342 + spl-tokens/anchor/tsconfig.json | 3 +- spl-tokens/anchor/yarn.lock | 610 +- test-utils/rust/Cargo.lock | 6589 +++++++++++++++ test-utils/rust/Cargo.toml | 25 + test-utils/rust/src/anchor_ix.rs | 31 + test-utils/rust/src/lib.rs | 178 + test-utils/ts/package.json | 26 + test-utils/ts/src/index.ts | 369 + test-utils/ts/tsconfig.json | 14 + test-utils/ts/yarn.lock | 1186 +++ 126 files changed, 108278 insertions(+), 217 deletions(-) create mode 100644 .github/workflows/test-magicsvm.yml create mode 100644 binary-prediction/anchor/tests-magicsvm-rs/Cargo.lock create mode 100644 binary-prediction/anchor/tests-magicsvm-rs/Cargo.toml create mode 100644 binary-prediction/anchor/tests-magicsvm-rs/tests/magicsvm.rs create mode 100644 binary-prediction/anchor/tests-magicsvm/binary-prediction.ts create mode 100644 binary-prediction/anchor/tests-magicsvm/fixtures/session-keys.so create mode 100644 counter/anchor/tests-magicsvm-rs/Cargo.lock create mode 100644 counter/anchor/tests-magicsvm-rs/Cargo.toml create mode 100644 counter/anchor/tests-magicsvm-rs/tests/magicsvm.rs create mode 100644 counter/anchor/tests-magicsvm/public-counter.ts create mode 100644 counter/native-rust/tests-magicsvm-rs/Cargo.lock create mode 100644 counter/native-rust/tests-magicsvm-rs/Cargo.toml create mode 100644 counter/native-rust/tests-magicsvm-rs/tests/magicsvm.rs create mode 100644 counter/native-rust/tests-magicsvm/rust-counter.test.ts create mode 100644 counter/pinocchio/tests-magicsvm-rs/Cargo.toml create mode 100644 counter/pinocchio/tests-magicsvm-rs/tests/magicsvm.rs create mode 100644 counter/pinocchio/tests-magicsvm/pinocchio-counter.test.ts create mode 100644 delegation-actions/anchor/tests-magicsvm-rs/Cargo.lock create mode 100644 delegation-actions/anchor/tests-magicsvm-rs/Cargo.toml create mode 100644 delegation-actions/anchor/tests-magicsvm-rs/tests/magicsvm.rs create mode 100644 delegation-actions/anchor/tests-magicsvm/delegation-actions.ts create mode 100644 ephemeral-account-chats/anchor/tests-magicsvm-rs/Cargo.lock create mode 100644 ephemeral-account-chats/anchor/tests-magicsvm-rs/Cargo.toml create mode 100644 ephemeral-account-chats/anchor/tests-magicsvm-rs/rust-toolchain.toml create mode 100644 ephemeral-account-chats/anchor/tests-magicsvm-rs/tests/magicsvm.rs create mode 100644 ephemeral-account-chats/anchor/tests-magicsvm/ephemeral-account-chats.ts create mode 100644 magic-actions/anchor/tests-magicsvm-rs/Cargo.lock create mode 100644 magic-actions/anchor/tests-magicsvm-rs/Cargo.toml create mode 100644 magic-actions/anchor/tests-magicsvm-rs/tests/magicsvm.rs create mode 100644 magic-actions/anchor/tests-magicsvm/magic-actions.ts create mode 100644 oncurve-delegation/client/tests-magicsvm-rs/Cargo.lock create mode 100644 oncurve-delegation/client/tests-magicsvm-rs/Cargo.toml create mode 100644 oncurve-delegation/client/tests-magicsvm-rs/tests/magicsvm.rs create mode 100644 oncurve-delegation/client/tests-magicsvm/oncurve-delegation.test.ts create mode 100644 oracle-priced-purchase/anchor/tests-magicsvm-rs/Cargo.lock create mode 100644 oracle-priced-purchase/anchor/tests-magicsvm-rs/Cargo.toml create mode 100644 oracle-priced-purchase/anchor/tests-magicsvm-rs/tests/magicsvm.rs create mode 100644 oracle-priced-purchase/anchor/tests-magicsvm/oracle-priced-purchase.ts create mode 100644 private-counter/anchor/tests-magicsvm-rs/Cargo.lock create mode 100644 private-counter/anchor/tests-magicsvm-rs/Cargo.toml create mode 100644 private-counter/anchor/tests-magicsvm-rs/tests/magicsvm.rs create mode 100644 private-counter/anchor/tests-magicsvm/private-counter.ts create mode 100644 private-counter/pinocchio/tests-magicsvm-rs/Cargo.toml create mode 100644 private-counter/pinocchio/tests-magicsvm-rs/tests/magicsvm.rs create mode 100644 private-counter/pinocchio/tests-magicsvm/pinocchio-private-counter.test.ts create mode 100644 rock-paper-scissor/anchor/tests-magicsvm-rs/Cargo.lock create mode 100644 rock-paper-scissor/anchor/tests-magicsvm-rs/Cargo.toml create mode 100644 rock-paper-scissor/anchor/tests-magicsvm-rs/tests/magicsvm.rs create mode 100644 rock-paper-scissor/anchor/tests-magicsvm/rock-paper-scissor.ts create mode 100644 rock-paper-scissor/anchor/tests-magicsvm/tsconfig.json create mode 100755 scripts/test-magicsvm.sh create mode 100644 sealed-auction/anchor/MAGICSVM_FLAWS.md create mode 100644 session-keys/anchor/tests-magicsvm-rs/Cargo.lock create mode 100644 session-keys/anchor/tests-magicsvm-rs/Cargo.toml create mode 100644 session-keys/anchor/tests-magicsvm-rs/tests/magicsvm.rs create mode 100644 session-keys/anchor/tests-magicsvm/anchor-counter-session.ts create mode 100644 session-keys/anchor/tests-magicsvm/fixtures/session-keys.so create mode 100644 spl-tokens/anchor/tests-magicsvm-rs/Cargo.lock create mode 100644 spl-tokens/anchor/tests-magicsvm-rs/Cargo.toml create mode 100644 spl-tokens/anchor/tests-magicsvm-rs/tests/magicsvm.rs create mode 100644 spl-tokens/anchor/tests-magicsvm/spl-tokens.ts create mode 100644 test-utils/rust/Cargo.lock create mode 100644 test-utils/rust/Cargo.toml create mode 100644 test-utils/rust/src/anchor_ix.rs create mode 100644 test-utils/rust/src/lib.rs create mode 100644 test-utils/ts/package.json create mode 100644 test-utils/ts/src/index.ts create mode 100644 test-utils/ts/tsconfig.json create mode 100644 test-utils/ts/yarn.lock diff --git a/.github/workflows/test-magicsvm.yml b/.github/workflows/test-magicsvm.yml new file mode 100644 index 00000000..32776c35 --- /dev/null +++ b/.github/workflows/test-magicsvm.yml @@ -0,0 +1,85 @@ +name: Test MagicsVM + +on: + push: + branches: [main] + pull_request: + branches: [main] + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + # Emit MagicsVM example names as JSON so the test job can fan out one runner + # per example. Source of truth: MAGICSVM_PROJECTS in scripts/projects.sh. + list-examples: + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.set.outputs.matrix }} + steps: + - uses: actions/checkout@v4 + - id: set + run: | + # shellcheck source=scripts/projects.sh + . scripts/projects.sh + echo "matrix=$(magicsvm_projects_json)" >> "$GITHUB_OUTPUT" + + # In-process MagicsVM tests: no local validators, VRF oracle, or TEE stack. + test-magicsvm: + needs: list-examples + name: magicsvm (${{ matrix.example }}) + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + example: ${{ fromJSON(needs.list-examples.outputs.matrix) }} + steps: + - uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "20.20" + + - name: Enable Corepack + run: | + corepack enable + corepack prepare yarn@1.22.19 --activate + corepack prepare yarn@1.22.22 --activate + + - name: Setup Rust 1.89 (Anchor builds) + uses: dtolnay/rust-toolchain@stable + with: + toolchain: "1.89.0" + + - name: Setup Rust nightly (MagicsVM tests) + uses: dtolnay/rust-toolchain@nightly + with: + toolchain: nightly + + # anchor idl build invokes the host `stable` toolchain after cargo build-sbf. + - name: Ensure stable Rust for Anchor IDL + run: | + rustup toolchain install stable --profile minimal + rustup default 1.89.0 + + - name: Install native dependencies + run: | + sudo apt-get update + sudo apt-get install -y libudev-dev pkg-config + + - name: Install Solana + run: | + sh -c "$(curl -sSfL https://release.anza.xyz/v3.1.9/install)" + echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH + + - name: Install Anchor + run: | + cargo install --git https://github.com/solana-foundation/anchor --tag v1.0.2 anchor-cli + + - name: Test MagicsVM ${{ matrix.example }} + env: + EXACT_MATCH: "1" + run: bash scripts/test-magicsvm.sh "${{ matrix.example }}" diff --git a/README.md b/README.md index ab01fbba..d358caf9 100644 --- a/README.md +++ b/README.md @@ -315,8 +315,8 @@ To run local tests for any example project, use the following steps: 3. **Run Tests Locally:** ```bash - yarn test:local - ``` +yarn test:local +``` **Example:** To test the `pinocchio-roll-dice` example: @@ -326,6 +326,18 @@ yarn build yarn test:local ``` +### MagicsVM tests + +In-process MagicsVM tests (no local validators) live under `tests-magicsvm/` and `tests-magicsvm-rs/`. Shared helpers are in `test-utils/ts` (TypeScript) and `test-utils/rust` (Rust). + +```bash +bash scripts/test-magicsvm.sh # every example that has MagicsVM tests +bash scripts/test-magicsvm.sh spl-tokens # one example (substring match) +``` + +CI runs the same script per example via `.github/workflows/test-magicsvm.yml`. + + ### Local nodes Setting up local nodes: diff --git a/binary-prediction/anchor/package.json b/binary-prediction/anchor/package.json index 78c59710..af034505 100644 --- a/binary-prediction/anchor/package.json +++ b/binary-prediction/anchor/package.json @@ -5,6 +5,8 @@ "test": "yarn test:local", "build": "anchor keys sync && anchor build", "test:local": ". ../../scripts/local-env.sh && npx ts-mocha -p ./tsconfig.json -t 1000000 tests/binary-prediction.ts", + "test:magicsvm": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests-magicsvm/binary-prediction.ts", + "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture", "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh binary-prediction" }, "dependencies": { @@ -13,6 +15,7 @@ "@magicblock-labs/gum-sdk": "^3.0.10" }, "devDependencies": { + "@magicblock-labs/magicsvm": "0.2.0", "@solana/spl-token": "^0.4.14", "@types/bn.js": "^5.1.0", "@types/chai": "^4.3.20", @@ -23,7 +26,8 @@ "ts-mocha": "^11.1.0", "ts-node": "^10.9.2", "tsx": "^4.22.0", - "typescript": "^5.8.3" + "typescript": "^5.8.3", + "@magicblock-labs/test-utils": "link:../../test-utils/ts" }, "license": "MIT", "packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447" diff --git a/binary-prediction/anchor/programs/binary-prediction/src/lib.rs b/binary-prediction/anchor/programs/binary-prediction/src/lib.rs index 8bf38043..964c0296 100644 --- a/binary-prediction/anchor/programs/binary-prediction/src/lib.rs +++ b/binary-prediction/anchor/programs/binary-prediction/src/lib.rs @@ -11,10 +11,10 @@ mod state; mod utils; use error::ErrorCode; -use state::{Bet, Direction, Pool}; +pub use state::{Bet, Direction, Pool}; use utils::*; -declare_id!("7HHiv8th2wY24iZp2ReF7QkJyFJHwHWCgZWg7CWrQnnm"); +declare_id!("Ds6GFGKcKGEmefKcdAJmobh3EgdktYQJX1fHW1TP9USK"); pub const POOL_SEED: &[u8] = b"pool"; pub const BET_SEED: &[u8] = b"bet"; diff --git a/binary-prediction/anchor/tests-magicsvm-rs/Cargo.lock b/binary-prediction/anchor/tests-magicsvm-rs/Cargo.lock new file mode 100644 index 00000000..b875b4f5 --- /dev/null +++ b/binary-prediction/anchor/tests-magicsvm-rs/Cargo.lock @@ -0,0 +1,7132 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common 0.1.7", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures 0.2.17", +] + +[[package]] +name = "aes-gcm-siv" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae0784134ba9375416d469ec31e7c5f9fa94405049cf08c5ce5b4698be673e0d" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "polyval", + "subtle", + "zeroize", +] + +[[package]] +name = "agave-feature-set" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e724c6d41535d61eb4cba970716f6cfcef8d3f4d15750488f77a7630faab680" +dependencies = [ + "ahash 0.8.12", + "solana-epoch-schedule 3.2.0", + "solana-hash 4.5.0", + "solana-keypair", + "solana-pubkey 4.2.0", + "solana-sha256-hasher 3.1.0", + "solana-svm-feature-set", +] + +[[package]] +name = "agave-reserved-account-keys" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa474270f9cd8d71089979f1ad8e31c2eccde8b32d1ca03f33fe1123104d562" +dependencies = [ + "agave-feature-set", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "agave-transaction-view" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11af131e96e1a0df153db2d673a28293d171da78056104ec8e0d396e2bdf305b" +dependencies = [ + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-packet 4.2.0", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-svm-transaction", + "solana-transaction 4.1.6", +] + +[[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", + "getrandom 0.3.4", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "anchor-attribute-access-control" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a0ba6f4d5cff33a16a8cb30fd7419b71cf8b8b408998a341235cefe7e76cc1c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-account" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af875fe99d9dab01317a3bac577b05f3e52d5bd7d1b424de488ba51f3310feab" +dependencies = [ + "anchor-syn", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-constant" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345a11192cd11fdc8663e3194bbcd0c983c019cd9f21804d7853eeee5ee22653" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-error" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e5f6290f0f54e0e34b8efbb4dcd69dc2c46c655ada8198f35f403d2a88cf9c7" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-event" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0159e0fae5b1b508110b8753fda23ebce778f3bd8c146b8baabd12d2cebe4a7" +dependencies = [ + "anchor-syn", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-program" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51180111bea3660c0db345bfee34cf23f8d89cf2ac8dd5d8c7a044b3fb24d961" +dependencies = [ + "anchor-lang-idl", + "anchor-syn", + "anyhow", + "heck 0.3.3", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-accounts" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b802cd6561645117219ae6ed62cd322501bf1b5b7fa1a6fd8d911428c4c37192" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-serde" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa658e7d911c4290fe9ee953e75cf95f3c4db19c053f64071512867fa9f40394" +dependencies = [ + "anchor-syn", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-space" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69520cea030ee13d2978087a467bf32078012a5ce06b2746318c359887d481ed" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-lang" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bac4de7c9a9a69180798af701e22302cc0ebf2ef683b843706a1b7809454735" +dependencies = [ + "anchor-attribute-access-control", + "anchor-attribute-account", + "anchor-attribute-constant", + "anchor-attribute-error", + "anchor-attribute-event", + "anchor-attribute-program", + "anchor-derive-accounts", + "anchor-derive-serde", + "anchor-derive-space", + "base64 0.21.7", + "bincode", + "borsh 1.8.1", + "bytemuck", + "const-crypto", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-define-syscall 3.0.0", + "solana-feature-gate-interface 3.1.0", + "solana-instruction 3.4.1", + "solana-instructions-sysvar 3.0.1", + "solana-invoke", + "solana-loader-v3-interface 6.1.1", + "solana-msg 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-stake-interface 2.0.2", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", + "thiserror 1.0.69", +] + +[[package]] +name = "anchor-lang-idl" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47914b4290ae2bdf4ec203aa821e6eba86d7c78ef497918938038dcc6919f953" +dependencies = [ + "anchor-lang-idl-spec", + "anyhow", + "heck 0.3.3", + "serde", + "serde_json", + "sha2 0.10.9", +] + +[[package]] +name = "anchor-lang-idl-spec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bdf143115440fe621bdac3a29a1f7472e09f6cd82b2aa569429a0c13f103838" +dependencies = [ + "anyhow", + "serde", +] + +[[package]] +name = "anchor-spl" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b8005eef3a48a9a8cb21b126ae3bb252647e353afe6ef7f19e545177801c841" +dependencies = [ + "anchor-lang", + "spl-associated-token-account-interface 2.0.0", + "spl-pod", + "spl-token-2022-interface", + "spl-token-group-interface", + "spl-token-interface", + "spl-token-metadata-interface", +] + +[[package]] +name = "anchor-syn" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ef87b1d3ae59fbf265a9157a9082308af220b4ef5a64a360d8820dcf25b5a86" +dependencies = [ + "bs58", + "heck 0.3.3", + "proc-macro2", + "quote", + "serde", + "sha2 0.11.0", + "syn 2.0.119", + "thiserror 1.0.69", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anyhow" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" + +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-bn254" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-std 0.5.0", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", + "itertools 0.13.0", + "num-bigint 0.4.8", + "num-integer", + "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 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.8", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm 0.5.0", + "ark-ff-macros 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "educe", + "itertools 0.13.0", + "num-bigint 0.4.8", + "num-traits", + "paste", + "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-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive 0.4.2", + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint 0.4.8", +] + +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-serialize-derive 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "num-bigint 0.4.8", +] + +[[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-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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.8", +] + +[[package]] +name = "ark-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" +dependencies = [ + "num-traits", + "rand 0.8.8", +] + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" + +[[package]] +name = "ascii" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[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 = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "binary-prediction" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "anchor-spl", + "ephemeral-rollups-sdk 0.16.2", + "pyth-solana-receiver-sdk", + "session-keys", +] + +[[package]] +name = "binary-prediction-magicsvm-tests" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "binary-prediction", + "ephemeral-rollups-sdk 0.16.2", + "magicsvm", + "session-keys", + "solana-address 2.6.1", + "solana-clock 3.1.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-native-token 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-signer", + "solana-system-interface 3.2.0", + "solana-transaction 4.1.6", + "test-utils", +] + +[[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.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" + +[[package]] +name = "bitvec" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddcec3d12c579d40898fe0a9a358a803c23e9c52ca3c425707f81c9436211837" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake3" +version = "1.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d9e454fc11f76977dc803893aff6304ed33d6a26efae8696573bea74baa27ae" +dependencies = [ + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "cpufeatures 0.3.1", + "digest 0.11.3", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "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-buffer" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "blst" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20659f9bbee16cbbd2f7393e40ab6309f5a98f76a2eb57a995ec508b72387fe" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "blstrs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a8a8ed6fefbeef4a8c7b460e4110e12c5e22a5b7cf32621aae6ad650c4dcf29" +dependencies = [ + "blst", + "byte-slice-cast", + "ff", + "group", + "pairing", + "rand_core 0.6.4", + "serde", + "subtle", +] + +[[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.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "553c5d846a6ba5150c65e3b1b8ec073bcf1abc20f9b7220de384a4443ea4e20a" +dependencies = [ + "borsh-derive 1.8.1", + "bytes", + "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.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12cdfe656708a01f89b451a7d36466e6fe6c414de0aa18fc54f864f6f9ca9f56" +dependencies = [ + "once_cell", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[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.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[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 = "byte-slice-cast" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" + +[[package]] +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bytemuck" +version = "1.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a1f896587b6f2c069c73d2f0913e2d590c3990285cd2f0b6aa02b786b4c679c" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" + +[[package]] +name = "cc" +version = "1.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3eb0f42d6c360dc3f8a821f6bf2fdea7f72bfd36b3076eb0e6d1e9e0752fff4" +dependencies = [ + "find-msvc-tools", + "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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" + +[[package]] +name = "cfg_eval" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45565fc9416b9896014f5732ac776f810ee53a66730c17e4020c3ec064a8f88f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common 0.1.7", + "inout", +] + +[[package]] +name = "cmov" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" + +[[package]] +name = "combine" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" +dependencies = [ + "ascii", + "byteorder", + "either", + "memchr", + "unreachable", +] + +[[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 = "const-crypto" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c06f1eb05f06cf2e380fdded278fbf056a38974299d77960555a311dcf91a52" +dependencies = [ + "keccak-const", + "sha2-const-stable", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const-oid" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" + +[[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 = "cpufeatures" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a7799fd6b852db0e61728dde9a204c423b44d689dbd432522543614b490e78" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "crypto-common" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "ct-codecs" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49fb0c6640b4507ebd99ff67677009e381ba5eee1d14df78de4a3d16eb123c39" + +[[package]] +name = "ctor" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1c888a2a4f677017373fb6c01e13e318dd9e78758445ed5eb985e355d3f8281" +dependencies = [ + "ctor-proc-macro", + "dtor", + "link-section", +] + +[[package]] +name = "ctor-proc-macro" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7ab264ea985f1bd27887d7b21ea2bb046728e05d11909ca138d700c494730db" + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "ctutils" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" +dependencies = [ + "cmov", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "rand_core 0.6.4", + "rustc_version", + "serde", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core 0.23.0", + "darling_macro 0.23.0", +] + +[[package]] +name = "darling" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed17f5901b6630b993ca003def43f2f8ef4014fc13b047b57aad617ff32bc2ec" +dependencies = [ + "darling_core 0.24.1", + "darling_macro 0.24.1", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.119", +] + +[[package]] +name = "darling_core" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6837e2cf7485aaae18f86181d2f0e9a7ed297a025e220aeabf63fdebd3a2ddff" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 3.0.5", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "darling_macro" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ac7135c3ef02b2f7833bbeb1be5ba7f966dcde8a87c6b87f65a778d71a02785" +dependencies = [ + "darling_core 0.24.1", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "dary_heap" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b1e3a325bc115f096c8b77bbf027a7c2592230e70be2d985be950d3d5e60ebe" + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid 0.9.6", + "zeroize", +] + +[[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", + "const-oid 0.9.6", + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "digest" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" +dependencies = [ + "block-buffer 0.12.1", + "const-oid 0.10.2", + "crypto-common 0.2.2", + "ctutils", +] + +[[package]] +name = "dtor" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30e4690622ab6700ced40fc370a3f07b7d111f0154bb6fb08f73b4c8834f75b6" +dependencies = [ + "dtor-proc-macro", +] + +[[package]] +name = "dtor-proc-macro" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c98b077c7463d01d22dde8a24378ddf1ca7263dc687cffbed38819ea6c21131" + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + +[[package]] +name = "eager" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abe71d579d1812060163dff96056261deb5bf6729b100fa2e36a68b9649ba3d3" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand_core 0.6.4", + "serde", + "sha2 0.10.9", + "subtle", + "zeroize", +] + +[[package]] +name = "ed25519-dalek-bip32" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b49a684b133c4980d7ee783936af771516011c8cd15f429dbda77245e282f03" +dependencies = [ + "derivation-path", + "ed25519-dalek", + "hmac", + "sha2 0.10.9", +] + +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "either" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "enum-iterator" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4549325971814bda7a44061bf3fe7e487d447cba01e4220a4b454d630d7a016" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685adfa4d6f3d765a26bc5dbc936577de9abf756c1feeb3089b01dd395034842" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "enum-ordinalize" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89dd01549b09589510cf0647475075d12071456586d70f5c75c98ae2a5537677" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a65863d15a4ce2888bd2f0f543cc963d3879c3a022c8ee43f6141d479a3ac815" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "ephemeral-rollups-sdk" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "838564736408ada011e9986c819b26cf0195bb2dd238e10be258731979213d75" +dependencies = [ + "base64ct", + "bincode", + "bytemuck", + "ephemeral-rollups-sdk-attribute-action 0.14.4", + "ephemeral-rollups-sdk-attribute-commit 0.14.4", + "ephemeral-rollups-sdk-attribute-delegate 0.14.4", + "ephemeral-rollups-sdk-attribute-ephemeral 0.14.4", + "ephemeral-rollups-sdk-attribute-ephemeral-accounts 0.14.4", + "five8 0.2.1", + "getrandom 0.2.17", + "magicblock-delegation-program-api", + "magicblock-magic-program-api 0.10.1", + "num-derive", + "num-traits", + "solana-account 3.4.0", + "solana-account-info 2.3.0", + "solana-account-info 3.1.1", + "solana-address 2.6.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program 2.3.0", + "solana-program 3.0.0", + "solana-program-error 2.2.2", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "spl-associated-token-account-interface 1.0.0", + "thiserror 1.0.69", +] + +[[package]] +name = "ephemeral-rollups-sdk" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a267fd1fe36f82ed50307b3757561ac59b1629a523fd179e2a66f4383c9afc0a" +dependencies = [ + "anchor-lang", + "base64ct", + "bincode", + "bytemuck", + "ephemeral-rollups-sdk-attribute-action 0.16.2", + "ephemeral-rollups-sdk-attribute-commit 0.16.2", + "ephemeral-rollups-sdk-attribute-delegate 0.16.2", + "ephemeral-rollups-sdk-attribute-ephemeral 0.16.2", + "ephemeral-rollups-sdk-attribute-ephemeral-accounts 0.16.2", + "ephemeral-vrf-sdk", + "ephemeral-vrf-sdk-vrf-macro", + "five8 0.2.1", + "getrandom 0.2.17", + "magicblock-delegation-program-api", + "magicblock-magic-program-api 0.10.1", + "solana-account-info 2.3.0", + "solana-address 2.6.1", + "solana-program 2.3.0", + "solana-program 3.0.0", + "solana-program-error 2.2.2", + "solana-system-interface 2.0.0", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-action" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a29f33b94edcdfcf1b9b7a61aa0ac00e8efdc66f89c8b4b573f7ea965a42c60a" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-action" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3847b70bac1717bfd3108fe310195e658665b2d971bcb4eb2aa5aaca2c9392" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-commit" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da9ed3ea8b850013f6bf768e5f0f2e1f22f1861b46908764536795bf67bb5c67" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-commit" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b08e06840701468449f75916e922fd9694b787596efe66cd9b8dccf3ef0eb5e6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-delegate" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f0d8ab90b4ecc7ac802bbd2115681f9fd42bc5a9018be79ba7aff1fe971aa36" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-delegate" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc365676345c77eed3651debb63af9b282902100e5852a1822ee1385e3b285fe" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ea166c57ee55b329be4eae730561fe02aad5620a35b4d89439d8d0c9e07c3a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fce2590d04b16345a3117c0b66b6822a96a5ef3bc7b9add073cb3a797529d8df" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral-accounts" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa3efae094f5c288746d479fd605b67bcd56d29ddcf1238046ac07eeec130c45" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral-accounts" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f70d4bbf6761a71df97fbadcb4cceef630e2d6e37189f5e674ff34bb2210823" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-vrf-sdk" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77f3741c733907c10e0d0b32f9aa485c20a73e0b1e7e673a0ac38185fb2a6c11" +dependencies = [ + "anchor-lang", + "borsh 1.8.1", + "ephemeral-vrf-sdk-vrf-macro", + "solana-program 3.0.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "ephemeral-vrf-sdk-vrf-macro" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7b8b3fe3863a27d4c0f32da7b3cfeff179772fd4124d6c9fdcb9d4ab23cd602" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "fast-math" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2465292146cdfc2011350fe3b1c616ac83cf0faeedb33463ba1c332ed8948d66" +dependencies = [ + "ieee754", +] + +[[package]] +name = "feature-probe" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" + +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "bitvec", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "filetime" +version = "0.2.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c287a33c7f0a620c38e641e7f60827713987b3c0f26e8ddc9462cc69cf75759" +dependencies = [ + "cfg-if", + "libc", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d" + +[[package]] +name = "five8" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75b8549488b4715defcb0d8a8a1c1c76a80661b5fa106b4ca0e7fce59d7d875" +dependencies = [ + "five8_core 0.1.2", +] + +[[package]] +name = "five8" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23f76610e969fa1784327ded240f1e28a3fd9520c9cec93b636fcf62dd37f772" +dependencies = [ + "five8_core 1.0.0", +] + +[[package]] +name = "five8_const" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26dec3da8bc3ef08f2c04f61eab298c3ab334523e55f076354d6d6f613799a7b" +dependencies = [ + "five8_core 0.1.2", +] + +[[package]] +name = "five8_const" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a0f1728185f277989ca573a402716ae0beaaea3f76a8ff87ef9dd8fb19436c5" +dependencies = [ + "five8_core 1.0.0", +] + +[[package]] +name = "five8_core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2551bf44bc5f776c15044b9b94153a00198be06743e262afaaa61f11ac7523a5" + +[[package]] +name = "five8_core" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "059c31d7d36c43fe39d89e55711858b4da8be7eb6dabac23c7289b1a19489406" + +[[package]] +name = "flate2" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb" +dependencies = [ + "zlib-rs", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures-core" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" + +[[package]] +name = "futures-task" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" + +[[package]] +name = "futures-util" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" +dependencies = [ + "futures-core", + "futures-task", + "pin-project-lite", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[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 = "glob" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand 0.8.8", + "rand_core 0.6.4", + "rand_xorshift", + "subtle", +] + +[[package]] +name = "hash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" +dependencies = [ + "byteorder", +] + +[[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.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[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 = "http" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hybrid-array" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27f864f10dfb56725ce5ce5472bc52252c8f93a4ab86327122cebf62c5f59a17" +dependencies = [ + "typenum", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "ieee754" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9007da9cacbd3e6343da136e98b0d2df013f553d35bdec8b518f07bea768e19c" + +[[package]] +name = "indexmap" +version = "2.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", +] + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "generic-array", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "js-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2 0.10.9", + "signature", +] + +[[package]] +name = "keccak" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" +dependencies = [ + "cpufeatures 0.2.17", +] + +[[package]] +name = "keccak-const" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d8d8ce877200136358e0bbff3a77965875db3af755a11e1fa6b1b3e2df13ea" + +[[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.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" + +[[package]] +name = "libflate" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "561a8da1a50e1428d3c51321dafeca849df992a5bb67720c386131234caba82e" +dependencies = [ + "adler32", + "crc32fast", + "dary_heap", + "libflate_lz77", + "no_std_io2", +] + +[[package]] +name = "libflate_lz77" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7a10e427698aef6eef269482776debfef63384d30f13aad39a1a95e0e098fd" +dependencies = [ + "hashbrown 0.16.1", + "no_std_io2", + "rle-decode-fast", +] + +[[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", + "libsecp256k1-core 0.2.2", + "libsecp256k1-gen-ecmult 0.2.1", + "libsecp256k1-gen-genmult 0.2.1", + "rand 0.7.3", + "serde", + "sha2 0.9.9", +] + +[[package]] +name = "libsecp256k1" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" +dependencies = [ + "arrayref", + "base64 0.22.1", + "digest 0.9.0", + "libsecp256k1-core 0.3.0", + "libsecp256k1-gen-ecmult 0.3.0", + "libsecp256k1-gen-genmult 0.3.0", + "rand 0.8.8", + "serde", + "sha2 0.9.9", +] + +[[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-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" +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 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" +dependencies = [ + "libsecp256k1-core 0.3.0", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" +dependencies = [ + "libsecp256k1-core 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" +dependencies = [ + "libsecp256k1-core 0.3.0", +] + +[[package]] +name = "libsodium-rs" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b8cd48c80d6c6fa5a4612d242941067219555baea82b0b49c92ea9d8156b59c" +dependencies = [ + "ct-codecs", + "ctor", + "libc", + "libsodium-sys-stable", + "pkg-config", + "thiserror 1.0.69", + "zeroize", +] + +[[package]] +name = "libsodium-sys-stable" +version = "1.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b04bf6da2c98b727af37ab62cb505f4d751b975b034a9b9ad491d333b0564e" +dependencies = [ + "cc", + "libc", + "libflate", + "minisign-verify", + "pkg-config", + "tar", + "ureq", + "vcpkg", + "zip", +] + +[[package]] +name = "light-poseidon" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c9a85a9752c549ceb7578064b4ed891179d20acd85f27318573b64d2d7ee7ee" +dependencies = [ + "ark-bn254 0.4.0", + "ark-ff 0.4.2", + "num-bigint 0.4.8", + "thiserror 1.0.69", +] + +[[package]] +name = "light-poseidon" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47a1ccadd0bb5a32c196da536fd72c59183de24a055f6bf0513bf845fefab862" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ff 0.5.0", + "num-bigint 0.4.8", + "thiserror 1.0.69", +] + +[[package]] +name = "link-section" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52437d47b0358721ec869cc7374b2a21f7b2237af9b439c0391341a1fbfbf1b" + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[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.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" + +[[package]] +name = "magicblock-account" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b5671bd1525eeab67f240455dffff31a4f6d27b067a3531f2d47c7d5af0c6e" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "thiserror 2.0.20", +] + +[[package]] +name = "magicblock-delegation-program-api" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea16e41e04319201919afca98dd4241b18549f2db0c68f58e4bc531537b5dab" +dependencies = [ + "bincode", + "borsh 0.10.4", + "borsh 1.8.1", + "bytemuck", + "const-crypto", + "libsodium-rs", + "num_enum", + "pinocchio 0.10.2", + "pinocchio-log", + "pinocchio-pubkey", + "pinocchio-system", + "rkyv", + "serde", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-loader-v3-interface 6.1.1", + "solana-program 3.0.0", + "solana-pubkey 2.4.0", + "solana-sdk", + "solana-sdk-ids 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-system-interface 2.0.0", + "static_assertions", + "strum", + "thiserror 2.0.20", +] + +[[package]] +name = "magicblock-litesvm" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82cfc1c7f4348c300f58ddd5ae8613e9b1d08564a7956af43822de59cb76d039" +dependencies = [ + "agave-feature-set", + "agave-reserved-account-keys", + "ansi_term", + "indexmap", + "itertools 0.15.0", + "log", + "magicblock-account", + "solana-account 4.3.2", + "solana-address 2.6.1", + "solana-address-lookup-table-interface 3.1.0", + "solana-builtins", + "solana-clock 3.1.1", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-feature-gate-interface 4.0.0", + "solana-fee", + "solana-fee-calculator 3.2.2", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-instructions-sysvar 4.0.0", + "solana-keypair", + "solana-last-restart-slot 3.1.0", + "solana-loader-v3-interface 8.0.1", + "solana-loader-v4-interface 3.1.0", + "solana-message 4.4.1", + "solana-native-token 3.0.0", + "solana-nonce 3.2.1", + "solana-nonce-account", + "solana-precompile-error", + "solana-program-error 3.0.1", + "solana-program-runtime", + "solana-rent 4.3.0", + "solana-runtime-transaction", + "solana-sdk-ids 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-signature 3.4.1", + "solana-signer", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stake-history", + "solana-svm-callback", + "solana-svm-log-collector", + "solana-svm-timings", + "solana-svm-transaction", + "solana-syscalls", + "solana-system-interface 3.2.0", + "solana-system-program", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "magicblock-magic-program-api" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291f7a68f6cc622741a3fae513bd71640911abefd1fae2b2602b934515ed4b95" +dependencies = [ + "bincode", + "const-crypto", + "serde", + "solana-program 2.3.0", + "solana-signature 2.3.0", +] + +[[package]] +name = "magicblock-magic-program-api" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dc8fba0307c90b91b70c9ed06d4242d6c4159f331b2f05bf8f875c2a94e0e98" +dependencies = [ + "bincode", + "const-crypto", + "serde", + "solana-program 3.0.0", + "solana-signature 3.4.1", +] + +[[package]] +name = "magicsvm" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e3effa3b8d28f3e0a14d1b72afcf65c2bec2331882a19065ec4424cd5c7ee37" +dependencies = [ + "bincode", + "borsh 1.8.1", + "ephemeral-rollups-sdk 0.14.4", + "magicblock-account", + "magicblock-delegation-program-api", + "magicblock-litesvm", + "magicblock-magic-program-api 0.8.8", + "solana-account 4.3.2", + "solana-address 2.6.1", + "solana-clock 3.1.1", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-program-runtime", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-signer", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[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 = "minisign-verify" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22f9645cb765ea72b8111f36c522475d2daa0d22c957a9826437e97534bc4e9e" + +[[package]] +name = "no_std_io2" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418abd1b6d34fbf6cae440dc874771b0525a604428704c76e48b29a5e67b8003" +dependencies = [ + "memchr", +] + +[[package]] +name = "num" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" +dependencies = [ + "num-bigint 0.2.6", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +dependencies = [ + "autocfg", + "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.119", +] + +[[package]] +name = "num-integer" +version = "0.1.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92800bd69a1eac91786bcfe9da64a897eb72911b8dc3095decbd07429e8048b" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +dependencies = [ + "autocfg", + "num-bigint 0.2.6", + "num-integer", + "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_cpus" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group", +] + +[[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 = "pastey" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4" + +[[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 = "percentage" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd23b938276f14057220b707937bcb42fa76dda7560e57a2da30cb52d557937" +dependencies = [ + "num", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pinocchio" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8afe4f39c0e25cc471b35b89963312791a5162d45a86578cbeaad9e5e7d1b3b" + +[[package]] +name = "pinocchio" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06810dac15a4ef83d3dabdb4f2f22fb39c9adff669cd2781da4f716510a647c" +dependencies = [ + "solana-account-view", + "solana-address 2.6.1", + "solana-define-syscall 4.0.1", + "solana-instruction-view", + "solana-program-error 3.0.1", +] + +[[package]] +name = "pinocchio-log" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd11022408f312e6179ece321c1f7dc0d1b2aa7765fddd39b2a7378d65a899e8" +dependencies = [ + "pinocchio-log-macro", +] + +[[package]] +name = "pinocchio-log-macro" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69fb52edb3c5736b044cc462b0957b9767d0f574d138f4e2761438c498a4b467" +dependencies = [ + "quote", + "regex", + "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 0.1.4", + "pinocchio 0.9.3", + "sha2-const-stable", +] + +[[package]] +name = "pinocchio-system" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24044a0815753862b558e179e78f03f7344cb755de48617a09d7d23b50883b6c" +dependencies = [ + "pinocchio 0.10.2", + "solana-address 2.6.1", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "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.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "pyth-sdk" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5c805ba3dfb5b7ed6a8ffa62ec38391f485a79c7cf6b3b11d3bd44fb0325824" +dependencies = [ + "borsh 0.9.3", + "borsh-derive 0.9.3", + "hex", + "schemars", + "serde", +] + +[[package]] +name = "pyth-solana-receiver-sdk" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245b1b03dd2177402018b6072fcbb7bea5b3d280427b1954796bf1dc189be48b" +dependencies = [ + "anchor-lang", + "borsh 1.8.1", + "cfg-if", + "hex", + "pythnet-sdk", +] + +[[package]] +name = "pythnet-sdk" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8047bd7b366b37c3a24408e6677f0aa4dfe3cc7018374fab5b6ab9f2ac2f1ae" +dependencies = [ + "anchor-lang", + "bincode", + "borsh 1.8.1", + "bytemuck", + "byteorder", + "fast-math", + "hex", + "pyth-sdk", + "rustc_version", + "serde", + "sha3", + "slow_primes", + "solana-program 3.0.0", + "thiserror 1.0.69", +] + +[[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.119", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +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 = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e058c7de0b26af77780c769414d6257830bb240f3c38477dbc2c16e5f54d6d4c" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", +] + +[[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_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", +] + +[[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_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] + +[[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_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + +[[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.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "rend" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "rkyv" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2297bf9c81a3f0dc96bc9521370b88f054168c29826a75e89c55ff196e7ed6a1" +dependencies = [ + "bitvec", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d7b42d4b8d06048d3ac8db0eb31bcb942cbeb709f0b5f2b2ebde398d3038f5" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rle-decode-fast" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" + +[[package]] +name = "rustc-demangle" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b74b56ffa8bb2830709a538c2cbcae9aa062db0d2a42563bfb09bdaae44020eb" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "schemars" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.119", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-big-array" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" +dependencies = [ + "serde", +] + +[[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.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "serde_json" +version = "1.0.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_with" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "935177bb8c0cd8ca1a4e6d1a2ac8988bea69cab4f9d3a31311e012ad27868ea4" +dependencies = [ + "serde_core", + "serde_with_macros", +] + +[[package]] +name = "serde_with_macros" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d607aa01a3cb0ad757d6fd216136910db3c97b102fe686585689615a02dbcdc" +dependencies = [ + "darling 0.24.1", + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "session-keys" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22bb80c43cf7ff13790166c4f2aed099e3707cea31fcf359284fdebc56b6367" +dependencies = [ + "anchor-lang", + "session-keys-macros", + "solana-security-txt", +] + +[[package]] +name = "session-keys-macros" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4fb1ba67eabc3cb947145af610d0b3599124333540f6e494812f28db2f3eefe" +dependencies = [ + "session-keys-macros-attribute", +] + +[[package]] +name = "session-keys-macros-attribute" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7962ee082ac6ed55be82e97542b2811f26b48b8973aa4a4fc4474b66d3e194a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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 0.2.17", + "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 0.2.17", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.1", + "digest 0.11.3", +] + +[[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.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77fd7028345d415a4034cf8777cd4f8ab1851274233b45f84e3d955502d93874" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "simd-adler32" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "slow_primes" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58267dd2fbaa6dceecba9e3e106d2d90a2b02497c0e8b01b8759beccf5113938" +dependencies = [ + "num", +] + +[[package]] +name = "smallvec" +version = "1.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba467056f1b547ed52077911161fc86985becbc60e8e1857c8a144dab0def891" + +[[package]] +name = "solana-account" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f949fe4edaeaea78c844023bfc1c898e0b1f5a100f8a8d2d0f85d0a7b090258" +dependencies = [ + "solana-account-info 2.3.0", + "solana-clock 2.2.3", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-account" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efc0ed36decb689413b9da5d57f2be49eea5bebb3cf7897015167b0c4336e731" +dependencies = [ + "bincode", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 3.1.1", +] + +[[package]] +name = "solana-account" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26788ba0d7eb5b250edda3e1d393739bafd5daf94882f2261d14f5ab0d6a25e0" +dependencies = [ + "bincode", + "qualifier_attr", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 4.1.0", +] + +[[package]] +name = "solana-account-info" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8f5152a288ef1912300fc6efa6c2d1f9bb55d9398eb6c72326360b8063987da" +dependencies = [ + "bincode", + "serde", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-account-info" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9cf16495d9eb53e3d04e72366a33bb1c20c24e78c171d8b8f5978357b63ae95" +dependencies = [ + "bincode", + "serde_core", + "solana-address 2.6.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.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.6.1", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-address" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2ecac8e1b7f74c2baa9e774c42817e3e75b20787134b76cc4d45e8a604488f5" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-address" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c93e262f671bf402e1040e4a7e40b05d81da5956c7681948c975a0997517bb" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8 1.0.0", + "five8_const 1.0.0", + "rand 0.9.5", + "serde", + "serde_derive", + "sha2-const-stable", + "solana-atomic-u64 3.0.1", + "solana-define-syscall 5.2.0", + "solana-nullable", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.1.0", + "wincode", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1673f67efe870b64a65cb39e6194be5b26527691ce5922909939961a6e6b395" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-slot-hashes 2.2.1", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115b4f773acc4f3f3cb986b0d335e9845c0368c82b0940410935bc11ae065578" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", +] + +[[package]] +name = "solana-atomic-u64" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52e52720efe60465b052b9e7445a01c17550666beec855cce66f44766697bc2" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "solana-atomic-u64" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "085db4906d89324cef2a30840d59eaecf3d4231c560ec7c9f6614a93c652f501" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "solana-big-mod-exp" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75db7f2bbac3e62cfd139065d15bcda9e2428883ba61fc8d27ccb251081e7567" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-big-mod-exp" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30c80fb6d791b3925d5ec4bf23a7c169ef5090c013059ec3ed7d0b2c04efa085" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "solana-define-syscall 3.0.0", +] + +[[package]] +name = "solana-bincode" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19a3787b8cf9c9fe3dd360800e8b70982b9e5a8af9e11c354b6665dd4a003adc" +dependencies = [ + "bincode", + "serde", + "solana-instruction 2.3.3", +] + +[[package]] +name = "solana-bincode" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "278a1a5bad62cd9da89ac8d4b7ec444e83caa8ae96aa656dfc27684b28d49a5d" +dependencies = [ + "bincode", + "serde_core", + "solana-instruction-error", +] + +[[package]] +name = "solana-blake3-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a0801e25a1b31a14494fc80882a036be0ffd290efc4c2d640bfcca120a4672" +dependencies = [ + "blake3", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-blake3-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7116e1d942a2432ca3f514625104757ab8a56233787e95144c93950029e31176" +dependencies = [ + "blake3", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-bls-signatures" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "654ea8d31bbb4b0b9c28f9c545edb32691de27d4e2fc0e252c1ff47da50c5f2a" +dependencies = [ + "base64 0.22.1", + "blst", + "blstrs", + "cfg_eval", + "ff", + "group", + "pairing", + "rand 0.8.8", + "serde", + "serde_json", + "serde_with", + "thiserror 2.0.20", + "wincode", + "zeroize", +] + +[[package]] +name = "solana-bls12-381-syscall" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94e8256fda0542709fd1320a96d81c3c66e10ac5f680cca9b991d7d3b0e3fe86" +dependencies = [ + "blst", + "blstrs", + "bytemuck", + "bytemuck_derive", + "pairing", +] + +[[package]] +name = "solana-bn254" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62ff13a8867fcc7b0f1114764e1bf6191b4551dcaf93729ddc676cd4ec6abc9f" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "bytemuck", + "solana-define-syscall 5.2.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-borsh" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718333bcd0a1a7aed6655aa66bef8d7fb047944922b2d3a18f49cbc13e73d004" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", +] + +[[package]] +name = "solana-borsh" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c04abbae16f57178a163125805637b8a076175bb5c0002fb04f4792bea901cf7" +dependencies = [ + "borsh 1.8.1", +] + +[[package]] +name = "solana-bpf-loader-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabcc3a5785886f026b438771bf6b221b0d4877f6089af79d432c7fe877a6cd4" +dependencies = [ + "bincode", + "qualifier_attr", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-clock 3.1.1", + "solana-instruction 3.4.1", + "solana-loader-v3-interface 7.0.0", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-type-overrides", + "solana-syscalls", + "solana-system-interface 3.2.0", + "solana-transaction-context", +] + +[[package]] +name = "solana-builtins" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ab49c6f8a77bff54e811e9674747fd435e218dcbe71120039a865515151998c" +dependencies = [ + "agave-feature-set", + "solana-bpf-loader-program", + "solana-compute-budget-program", + "solana-hash 4.5.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-program", + "solana-vote-program", + "solana-zk-elgamal-proof-program", + "solana-zk-token-proof-program", +] + +[[package]] +name = "solana-builtins-default-costs" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76792b1ecab1c5f127f16062926850b52c4bb51ac1a93d220635fb13221d3503" +dependencies = [ + "agave-feature-set", + "ahash 0.8.12", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-clock" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8584296123df8fe229b95e2ebfd37ae637fe9db9b7d4dd677ac5a78e80dbfce" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-clock" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0acdace90d96e2c9e70d681465b4fe888b6bcf27c354ae9774e9f8a3b72923d" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-compute-budget" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e200042fd149d565521f7b31e082c0db0e022e9860c7e013130f812984ae846f" +dependencies = [ + "solana-fee-structure", + "solana-program-runtime", +] + +[[package]] +name = "solana-compute-budget-instruction" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a651fc5d082fd88090a7336ea85599b1ffcf6503dbcff575ae1bb2fb1cec238" +dependencies = [ + "agave-feature-set", + "solana-borsh 3.0.2", + "solana-builtins-default-costs", + "solana-compute-budget", + "solana-compute-budget-interface", + "solana-instruction 3.4.1", + "solana-packet 4.2.0", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-svm-transaction", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-compute-budget-interface" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8292c436b269ad23cecc8b24f7da3ab07ca111661e25e00ce0e1d22771951ab9" +dependencies = [ + "borsh 1.8.1", + "solana-instruction 3.4.1", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-compute-budget-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e314aeb4a86507ba77fb2d6ce9f5836af6aeaaedd4c5314e310ca72f73afe367" +dependencies = [ + "solana-program-runtime", +] + +[[package]] +name = "solana-cpi" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dc71126edddc2ba014622fc32d0f5e2e78ec6c5a1e0eb511b85618c09e9ea11" +dependencies = [ + "solana-account-info 2.3.0", + "solana-define-syscall 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-stable-layout 2.2.1", +] + +[[package]] +name = "solana-cpi" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dea26709d867aada85d0d3617db0944215c8bb28d3745b912de7db13a23280c" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 4.0.1", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-stable-layout 3.0.1", +] + +[[package]] +name = "solana-curve25519" +version = "3.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aff7432cdf2ec6a44ac06b4d64d2ee006f6c0066d6456e032a7fe25be40cd5c" +dependencies = [ + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "solana-define-syscall 3.0.0", + "subtle", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-curve25519" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14b4d2a4bf0d0b0a86c22111917e86e8bd39a7b31420fb2c7d73eb83761fc7af" +dependencies = [ + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "solana-define-syscall 5.2.0", + "subtle", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-decode-error" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c781686a18db2f942e70913f7ca15dc120ec38dcab42ff7557db2c70c625a35" +dependencies = [ + "num-traits", +] + +[[package]] +name = "solana-define-syscall" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ae3e2abcf541c8122eafe9a625d4d194b4023c20adde1e251f94e056bb1aee2" + +[[package]] +name = "solana-define-syscall" +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-define-syscall" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf8209ece2bd9f1450e672858ffc0e5c8c786ff6916d2a862b126dd0128f380f" + +[[package]] +name = "solana-derivation-path" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff71743072690fdbdfcdc37700ae1cb77485aaad49019473a81aee099b1e0b8c" +dependencies = [ + "derivation-path", + "qstring", + "uriparse", +] + +[[package]] +name = "solana-epoch-info" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e093c84f6ece620a6b10cd036574b0cd51944231ab32d81f80f76d54aba833e6" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-epoch-rewards" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b575d3dd323b9ea10bb6fe89bf6bf93e249b215ba8ed7f68f1a3633f384db7" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 2.3.0", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-rewards" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf7eb4986b0b1d6f562b21f75a836f1a6df6e00c275efcef50aab5c144dc59e" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-epoch-rewards-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee8beac9bff4db9225e57d532d169b0be5e447f1e6601a2f50f27a01bf5518f" +dependencies = [ + "siphasher", + "solana-address 2.6.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-epoch-schedule" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fce071fbddecc55d727b1d7ed16a629afe4f6e4c217bc8d00af3b785f6f67ed" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-schedule" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8116e6ffa6002237d5ab5edcbda17f9ba66b6742c45a89c9fb40a94dbacd4c1d" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-program-error 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-epoch-stake" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "027e6d0b9e7daac5b2ac7c3f9ca1b727861121d9ef05084cf435ff736051e7c2" +dependencies = [ + "solana-define-syscall 5.2.0", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-example-mocks" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84461d56cbb8bb8d539347151e0525b53910102e4bced875d49d5139708e39d3" +dependencies = [ + "serde", + "serde_derive", + "solana-address-lookup-table-interface 2.2.2", + "solana-clock 2.2.3", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-keccak-hasher 2.2.1", + "solana-message 2.4.0", + "solana-nonce 2.2.1", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-example-mocks" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978855d164845c1b0235d4b4d101cadc55373fffaf0b5b6cfa2194d25b2ed658" +dependencies = [ + "serde", + "serde_derive", + "solana-address-lookup-table-interface 3.1.0", + "solana-clock 3.1.1", + "solana-hash 3.1.0", + "solana-instruction 3.4.1", + "solana-keccak-hasher 3.1.0", + "solana-message 3.1.0", + "solana-nonce 3.2.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 2.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43f5c5382b449e8e4e3016fb05e418c53d57782d8b5c30aa372fc265654b956d" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 2.2.1", + "solana-account-info 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75ca9b5cbb6f500f7fd73db5bd95640f71a83f04d6121a0e59a43b202dca2731" +dependencies = [ + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd7545e02f91da1d6996f32b18f7796aa01e0682f8f3a7434b82cd1a10448add" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-fee" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c32df41c2c93a567a1612a973faddeaca093276677c157ef9cb60a378289fc69" +dependencies = [ + "agave-feature-set", + "solana-fee-structure", + "solana-svm-transaction", +] + +[[package]] +name = "solana-fee-calculator" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89bc408da0fb3812bc3008189d148b4d3e08252c79ad810b245482a3f70cd8d" +dependencies = [ + "log", + "serde", + "serde_derive", +] + +[[package]] +name = "solana-fee-calculator" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef67f01cc6a0c72e99a08d0d484683f995de4c80e9568728fa77d1537f9b7e09" +dependencies = [ + "log", + "serde", + "serde_derive", + "wincode", +] + +[[package]] +name = "solana-fee-structure" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2abdb1223eea8ec64136f39cb1ffcf257e00f915c957c35c0dd9e3f4e700b0" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-get-sysvar" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef3bc859fc036ed490146793557386cbfae614ebba4adc704c37d94350824ed4" +dependencies = [ + "solana-address 2.6.1", + "solana-define-syscall 5.2.0", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-hard-forks" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb50b2df7a36a2af58ce24bb0229622ac845dcc196e8c23b3ea4a29dd6bee09" + +[[package]] +name = "solana-hash" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b96e9f0300fa287b545613f007dfe20043d7812bee255f418c1eb649c93b63" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "five8 0.2.1", + "js-sys", + "serde", + "serde_derive", + "solana-atomic-u64 2.2.1", + "solana-sanitize 2.2.1", + "wasm-bindgen", +] + +[[package]] +name = "solana-hash" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "337c246447142f660f778cf6cb582beba8e28deb05b3b24bfb9ffd7c562e5f41" +dependencies = [ + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-hash" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f4c847893a2ea50b4ae3ca723b124e07cd0544fecea3598f785168f9b78333f" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "five8 1.0.0", + "serde", + "serde_derive", + "solana-atomic-u64 3.0.1", + "solana-sanitize 3.0.1", + "wincode", +] + +[[package]] +name = "solana-hash-512" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce934b02bab639341f2fd62c3e7e3c39dcceb47f0196b7630ed1f82ecb704bd" + +[[package]] +name = "solana-inflation" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf186550ea7438e2708bd0c233f01fe9c3fa45b9b607ff993b650ce60af102e" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-instruction" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab5682934bd1f65f8d2c16f21cb532526fcc1a09f796e2cacdb091eee5774ad" +dependencies = [ + "bincode", + "borsh 1.8.1", + "getrandom 0.2.17", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "serde_json", + "solana-define-syscall 2.3.0", + "solana-pubkey 2.4.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-instruction" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3957ca1d31107efd9a6bb88b25c348ca5e3b4b6683e3d08adb86d3d17aa01f1" +dependencies = [ + "bincode", + "borsh 1.8.1", + "serde", + "serde_derive", + "solana-define-syscall 5.2.0", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "wincode", +] + +[[package]] +name = "solana-instruction-error" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b7d34343838343a3755b7dfb1e438d94c6db2263b519cfe3c2257af932b6e93" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-program-error 3.0.1", +] + +[[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.6.1", + "solana-define-syscall 4.0.1", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0e85a6fad5c2d0c4f5b91d34b8ca47118fc593af706e523cdbedf846a954f57" +dependencies = [ + "bitflags", + "solana-account-info 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serialize-utils 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e0732294560e88ecdb2bbc656e67383e9f88c78ec09469cef172f0d28cd1bcd" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-serialize-utils 3.1.2", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e38363a181313d607f7a118df2b401bb27b477a0104b09283cbf504f5f0f00cc" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-serialize-utils 3.1.2", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-invoke" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4065031f5c7dd29ef5f5003c1a353011eeabbafa6c5a5033da0cedbfca824b94" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 3.0.0", + "solana-instruction 3.4.1", + "solana-program-entrypoint 3.1.1", + "solana-stable-layout 3.0.1", +] + +[[package]] +name = "solana-keccak-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7aeb957fbd42a451b99235df4942d96db7ef678e8d5061ef34c9b34cae12f79" +dependencies = [ + "sha3", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-keccak-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed1c0d16d6fdeba12291a1f068cdf0d479d9bff1141bf44afd7aa9d485f65ef8" +dependencies = [ + "sha3", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-keypair" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "263d614c12aa267a3278703175fd6440552ca61bc960b5a02a4482720c53438b" +dependencies = [ + "ed25519-dalek", + "ed25519-dalek-bip32", + "five8 1.0.0", + "five8_core 1.0.0", + "rand 0.9.5", + "solana-address 2.6.1", + "solana-derivation-path", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-last-restart-slot" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a6360ac2fdc72e7463565cd256eedcf10d7ef0c28a1249d261ec168c1b55cdd" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-last-restart-slot" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22474b83d3c7c318e1c3a725784fc2d1d03b728e36369e58ce48769a61ed85e" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-loader-v2-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8ab08006dad78ae7cd30df8eea0539e207d08d91eaefb3e1d49a446e1c49654" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f7162a05b8b0773156b443bccd674ea78bb9aa406325b467ea78c06c99a63a2" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e0538d4dbc9022e01616f1c58f2db98ece739c5d5ed4a2ef8737a953e76a2d4" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68029ab11d9c891d4ce23ada75745e40f983c5674af366f447b672569634231b" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "362b468fbde4c20521b9ff5ef743bc0d9b410455a5a92a8b29fd46954e89345f" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", + "wincode", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "706a777242f1f39a83e2a96a2a6cb034cb41169c6ecbee2cf09cb873d9659e7e" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c948b33ff81fa89699911b207059e493defdba9647eaf18f23abdf3674e0fb" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-message" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1796aabce376ff74bf89b78d268fa5e683d7d7a96a0a4e4813ec34de49d5314b" +dependencies = [ + "bincode", + "blake3", + "lazy_static", + "serde", + "serde_derive", + "solana-bincode 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", + "solana-transaction-error 2.2.1", + "wasm-bindgen", +] + +[[package]] +name = "solana-message" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0448b1fd891c5f46491e5dc7d9986385ba3c852c340db2911dd29faa01d2b08d" +dependencies = [ + "bincode", + "blake3", + "lazy_static", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-message" +version = "4.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e29e655f222a3a64145fedceacdca3e696ba7aded1dbd5391aa09d5fbfba53c" +dependencies = [ + "blake3", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-msg" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36a1a14399afaabc2781a1db09cb14ee4cc4ee5c7a5a3cfcc601811379a8092" +dependencies = [ + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-msg" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726b7cbbc6be6f1c6f29146ac824343b9415133eee8cce156452ad1db93f8008" +dependencies = [ + "solana-define-syscall 5.2.0", +] + +[[package]] +name = "solana-native-token" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61515b880c36974053dd499c0510066783f0cc6ac17def0c7ef2a244874cf4a9" + +[[package]] +name = "solana-native-token" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae8dd4c280dca9d046139eb5b7a5ac9ad10403fbd64964c7d7571214950d758f" + +[[package]] +name = "solana-nonce" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703e22eb185537e06204a5bd9d509b948f0066f2d1d814a6f475dafb3ddf1325" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-pubkey 2.4.0", + "solana-sha256-hasher 2.3.0", +] + +[[package]] +name = "solana-nonce" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4172d5b33a0a38fcdb2af8f84406570dd51567267da96c28ad0f31fc11621c0" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator 3.2.2", + "solana-hash 4.5.0", + "solana-pubkey 4.2.0", + "solana-sha256-hasher 3.1.0", + "wincode", +] + +[[package]] +name = "solana-nonce-account" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b81bf7e2aa8c443724051507c1007d0b6d9c34b70925d3232dc78f5ca485209e" +dependencies = [ + "solana-account 4.3.2", + "solana-hash 4.5.0", + "solana-nonce 3.2.1", + "solana-sdk-ids 3.1.0", + "wincode", +] + +[[package]] +name = "solana-nullable" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "889194d8c5faec648f2f6fadddb60566249921ebb074e2707e7095458d5864e2" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "solana-offchain-message" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e2a1141a673f72a05cf406b99e4b2b8a457792b7c01afa07b3f00d4e2de393" +dependencies = [ + "num_enum", + "solana-hash 3.1.0", + "solana-packet 3.0.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.1.0", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-packet" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edf2f25743c95229ac0fdc32f8f5893ef738dbf332c669e9861d33ddb0f469d" +dependencies = [ + "bitflags", +] + +[[package]] +name = "solana-packet" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a2a582d7863548f047f49aa3745c076cfa9e1364baa080ef0c1210f0e4ebda" +dependencies = [ + "bitflags", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-poseidon" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "737b8ab25bf4cc8e618f80f1fe40709b2ace708bc764a36b8a4c81eea8c07034" +dependencies = [ + "ark-bn254 0.4.0", + "ark-bn254 0.5.0", + "light-poseidon 0.2.0", + "light-poseidon 0.4.0", + "solana-define-syscall 4.0.1", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-precompile-error" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cafcd950de74c6c39d55dc8ca108bbb007799842ab370ef26cf45a34453c31e1" +dependencies = [ + "num-traits", +] + +[[package]] +name = "solana-presigner" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f704eaf825be3180832445b9e4983b875340696e8e7239bf2d535b0f86c14a2" +dependencies = [ + "solana-pubkey 3.0.0", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-program" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98eca145bd3545e2fbb07166e895370576e47a00a7d824e325390d33bf467210" +dependencies = [ + "bincode", + "blake3", + "borsh 0.10.4", + "borsh 1.8.1", + "bs58", + "bytemuck", + "console_error_panic_hook", + "console_log", + "getrandom 0.2.17", + "lazy_static", + "log", + "memoffset", + "num-bigint 0.4.8", + "num-derive", + "num-traits", + "rand 0.8.8", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 2.3.0", + "solana-address-lookup-table-interface 2.2.2", + "solana-atomic-u64 2.2.1", + "solana-big-mod-exp 2.2.1", + "solana-bincode 2.2.1", + "solana-blake3-hasher 2.2.1", + "solana-borsh 2.2.1", + "solana-clock 2.2.3", + "solana-cpi 2.2.1", + "solana-decode-error", + "solana-define-syscall 2.3.0", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", + "solana-example-mocks 2.2.1", + "solana-feature-gate-interface 2.2.2", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-instructions-sysvar 2.2.2", + "solana-keccak-hasher 2.2.1", + "solana-last-restart-slot 2.2.1", + "solana-loader-v2-interface", + "solana-loader-v3-interface 5.0.0", + "solana-loader-v4-interface 2.2.1", + "solana-message 2.4.0", + "solana-msg 2.2.1", + "solana-native-token 2.3.0", + "solana-nonce 2.2.1", + "solana-program-entrypoint 2.3.0", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-program-option 2.2.1", + "solana-program-pack 2.2.1", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-secp256k1-recover 2.2.1", + "solana-serde-varint 2.2.2", + "solana-serialize-utils 2.2.1", + "solana-sha256-hasher 2.3.0", + "solana-short-vec 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stable-layout 2.2.1", + "solana-stake-interface 1.2.1", + "solana-system-interface 1.0.0", + "solana-sysvar 2.3.0", + "solana-sysvar-id 2.2.1", + "solana-vote-interface 2.2.6", + "thiserror 2.0.20", + "wasm-bindgen", +] + +[[package]] +name = "solana-program" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91b12305dd81045d705f427acd0435a2e46444b65367d7179d7bdcfc3bc5f5eb" +dependencies = [ + "memoffset", + "solana-account-info 3.1.1", + "solana-big-mod-exp 3.0.0", + "solana-blake3-hasher 3.1.0", + "solana-borsh 3.0.2", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-define-syscall 3.0.0", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-epoch-stake", + "solana-example-mocks 3.0.0", + "solana-fee-calculator 3.2.2", + "solana-hash 3.1.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-instructions-sysvar 3.0.1", + "solana-keccak-hasher 3.1.0", + "solana-last-restart-slot 3.1.0", + "solana-msg 3.1.0", + "solana-native-token 3.0.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.3.0", + "solana-serde-varint 3.0.1", + "solana-serialize-utils 3.1.2", + "solana-sha256-hasher 3.1.0", + "solana-short-vec 3.2.2", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stable-layout 3.0.1", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-program-entrypoint" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32ce041b1a0ed275290a5008ee1a4a6c48f5054c8a3d78d313c08958a06aedbd" +dependencies = [ + "solana-account-info 2.3.0", + "solana-msg 2.2.1", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-program-entrypoint" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c9b0a1ff494e05f503a08b3d51150b73aa639544631e510279d6375f290997" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 4.0.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-program-error" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ee2e0217d642e2ea4bee237f37bd61bb02aec60da3647c48ff88f6556ade775" +dependencies = [ + "borsh 1.8.1", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-msg 2.2.1", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-program-error" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f04fa578707b3612b095f0c8e19b66a1233f7c42ca8082fcb3b745afcc0add6" +dependencies = [ + "borsh 1.8.1", + "serde", + "serde_derive", +] + +[[package]] +name = "solana-program-memory" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a5426090c6f3fd6cfdc10685322fede9ca8e5af43cd6a59e98bfe4e91671712" +dependencies = [ + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-program-memory" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4068648649653c2c50546e9a7fb761791b5ab0cda054c771bb5808d3a4b9eb52" +dependencies = [ + "solana-define-syscall 4.0.1", +] + +[[package]] +name = "solana-program-option" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc677a2e9bc616eda6dbdab834d463372b92848b2bfe4a1ed4e4b4adba3397d0" + +[[package]] +name = "solana-program-option" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a88006a9b8594088cec9027ab77caaaa258a2aaa2083d3f086c44b42e50aeab" + +[[package]] +name = "solana-program-pack" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "319f0ef15e6e12dc37c597faccb7d62525a509fec5f6975ecb9419efddeb277b" +dependencies = [ + "solana-program-error 2.2.2", +] + +[[package]] +name = "solana-program-pack" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7701cb15b90667ae1c89ef4ac35a59c61e66ce58ddee13d729472af7f41d59" +dependencies = [ + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-program-runtime" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2b7281bd4a6072c7e11b611f771f4e61be1d45ea0d2aecfbb77d02d1b5877d4" +dependencies = [ + "base64 0.22.1", + "bincode", + "cfg-if", + "itertools 0.14.0", + "log", + "percentage", + "rand 0.9.5", + "serde", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-loader-v3-interface 7.0.0", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", + "solana-stable-layout 3.0.1", + "solana-stake-interface 4.3.0", + "solana-svm-callback", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-timings", + "solana-svm-transaction", + "solana-svm-type-overrides", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction-context", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "solana-pubkey" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b62adb9c3261a052ca1f999398c388f1daf558a1b492f60a6d9e64857db4ff1" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8 0.2.1", + "five8_const 0.1.4", + "getrandom 0.2.17", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-atomic-u64 2.2.1", + "solana-decode-error", + "solana-define-syscall 2.3.0", + "solana-sanitize 2.2.1", + "solana-sha256-hasher 2.3.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-pubkey" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8909d399deb0851aa524420beeb5646b115fd253ef446e35fe4504c904da3941" +dependencies = [ + "rand 0.8.8", + "solana-address 1.1.0", +] + +[[package]] +name = "solana-pubkey" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7db719574990de7e8b0f55a8593ac92a5ccb42c8ce67b3e4bf05b139d5d9ee71" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-rent" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1aea8fdea9de98ca6e8c2da5827707fb3842833521b528a713810ca685d2480" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-rent" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e860d5499a705369778647e97d760f7670adfb6fc8419dd3d568deccd46d5487" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-rent" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39f0d780bf8e8a1fe8b5b5fce1acad6b209485b86dec246e7523d5e4a8b7c7fc" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-runtime-transaction" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60cf942dcefc0f4d600fed1f4d220ff27abaa04def1fefa37e0e0c2a96e4179" +dependencies = [ + "agave-feature-set", + "agave-transaction-view", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-svm-transaction", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-sanitize" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61f1bc1357b8188d9c4a3af3fc55276e56987265eb7ad073ae6f8180ee54cecf" + +[[package]] +name = "solana-sanitize" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf09694a0fc14e5ffb18f9b7b7c0f15ecb6eac5b5610bf76a1853459d19daf9" + +[[package]] +name = "solana-sbpf" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d777d7a89267dd133e985113c7e7f820fb7cfd9123a4a350cf8b39ebae1920bc" +dependencies = [ + "byteorder", + "combine", + "hash32", + "libc", + "log", + "rand 0.8.8", + "rustc-demangle", + "thiserror 2.0.20", + "winapi", +] + +[[package]] +name = "solana-sdk" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f03df7969f5e723ad31b6c9eadccc209037ac4caa34d8dc259316b05c11e82b" +dependencies = [ + "bincode", + "bs58", + "serde", + "solana-account 3.4.0", + "solana-epoch-info", + "solana-epoch-rewards-hasher", + "solana-fee-structure", + "solana-inflation", + "solana-keypair", + "solana-message 3.1.0", + "solana-offchain-message", + "solana-presigner", + "solana-program 3.0.0", + "solana-program-memory 3.1.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-serde", + "solana-serde-varint 3.0.1", + "solana-short-vec 3.2.2", + "solana-shred-version", + "solana-signature 3.4.1", + "solana-signer", + "solana-time-utils", + "solana-transaction 3.1.0", + "solana-transaction-error 3.3.2", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-sdk-ids" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5d8b9cc68d5c88b062a33e23a6466722467dde0035152d8fb1afbcdf350a5f" +dependencies = [ + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-sdk-ids" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "def234c1956ff616d46c9dd953f251fa7096ddbaa6d52b165218de97882b7280" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-sdk-macro" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86280da8b99d03560f6ab5aca9de2e38805681df34e0bb8f238e69b29433b9df" +dependencies = [ + "bs58", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "solana-sdk-macro" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8765316242300c48242d84a41614cb3388229ec353ba464f6fe62a733e41806f" +dependencies = [ + "bs58", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baa3120b6cdaa270f39444f5093a90a7b03d296d362878f7a6991d6de3bbe496" +dependencies = [ + "libsecp256k1 0.6.0", + "solana-define-syscall 2.3.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce0d2e8d53946f04e789476d6c407e4997b7fb412483df5fc10c075c65cb2edf" +dependencies = [ + "k256", + "solana-define-syscall 5.2.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-security-txt" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c94a02d486b28f219a4f8f5d7dd93cbfbb93c9f466cb7871c22e50cd5ae9a7a2" + +[[package]] +name = "solana-seed-derivable" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7bdb72758e3bec33ed0e2658a920f1f35dfb9ed576b951d20d63cb61ecd95c" +dependencies = [ + "solana-derivation-path", +] + +[[package]] +name = "solana-seed-phrase" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc905b200a95f2ea9146e43f2a7181e3aeb55de6bc12afb36462d00a3c7310de" +dependencies = [ + "hmac", + "pbkdf2", + "sha2 0.10.9", +] + +[[package]] +name = "solana-serde" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709a93cab694c70f40b279d497639788fc2ccbcf9b4aa32273d4b361322c02dd" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serde-varint" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a7e155eba458ecfb0107b98236088c3764a09ddf0201ec29e52a0be40857113" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serde-varint" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "950e5b83e839dc0f92c66afc124bb8f40e89bc90f0579e8ec5499296d27f54e3" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serialize-utils" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "817a284b63197d2b27afdba829c5ab34231da4a9b4e763466a003c40ca4f535e" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-serialize-utils" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "761357b0853c9623bf12c1d2314b3d6160a85b087b84c45224fb85766d22616b" +dependencies = [ + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sanitize 3.0.1", +] + +[[package]] +name = "solana-sha256-hasher" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa3feb32c28765f6aa1ce8f3feac30936f16c5c3f7eb73d63a5b8f6f8ecdc44" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", +] + +[[package]] +name = "solana-sha256-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db7dc3011ea4c0334aaaa7e7128cb390ecf546b28d412e9bf2064680f57f588f" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-sha512-hasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11e10e103ab5bd52af341e7bc2f4123a2f4e66bb7ba4e6ca40f1e00cd6314e02" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 5.2.0", + "solana-hash-512", +] + +[[package]] +name = "solana-short-vec" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c54c66f19b9766a56fa0057d060de8378676cb64987533fa088861858fc5a69" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-short-vec" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8250a4495aad49ad20556a607da53bdcb20de78da10b65afbf918b7f1de647" +dependencies = [ + "serde_core", + "wincode", +] + +[[package]] +name = "solana-shred-version" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6c79722e299d957958bf33695f7cd1ef6724ff55563c60fd9e3e24487cccde2" +dependencies = [ + "solana-hard-forks", + "solana-hash 4.5.0", + "solana-sha256-hasher 3.1.0", +] + +[[package]] +name = "solana-signature" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64c8ec8e657aecfc187522fc67495142c12f35e55ddeca8698edbb738b8dbd8c" +dependencies = [ + "five8 0.2.1", + "serde", + "serde-big-array", + "serde_derive", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-signature" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0364c7577c3c82a693ce28a1febc8d1b5d1b0a175fdc2114ae6186b69effe1e" +dependencies = [ + "ed25519-dalek", + "five8 1.0.0", + "rand 0.9.5", + "serde", + "serde-big-array", + "serde_derive", + "solana-sanitize 3.0.1", + "wincode", +] + +[[package]] +name = "solana-signer" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520bd6021163ee517f4bdc7ae03ded904f97e11320001ba0b3355f45eb14f558" +dependencies = [ + "solana-pubkey 4.2.0", + "solana-signature 3.4.1", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-slot-hashes" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c8691982114513763e88d04094c9caa0376b867a29577939011331134c301ce" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 2.3.0", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-hashes" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7ce2b4b8911bf2db3de7b6266e67bfc21a6a9f8c566fb096d9782ca2ad16ee" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-slot-history" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97ccc1b2067ca22754d5283afb2b0126d61eae734fc616d23871b0943b0d935e" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-history" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40427c04d3e808493cb5e3d1a97cef84d7c15cb6f89b15c5684d0d4027105600" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-stable-layout" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f14f7d02af8f2bc1b5efeeae71bc1c2b7f0f65cd75bcc7d8180f2c762a57f54" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-stable-layout" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9f6a291ba063a37780af29e7db14bdd3dc447584d8ba5b3fc4b88e2bbc982fa" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-stake-history" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c736a6aa0e53b9d264d90b06589fc0996f49f882f3e71842ed754fc57ffc1a43" +dependencies = [ + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-stake-interface" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5269e89fde216b4d7e1d1739cf5303f8398a1ff372a81232abbee80e554a838c" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", + "num-traits", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-cpi 2.2.1", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-system-interface 1.0.0", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-stake-interface" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9bc26191b533f9a6e5a14cca05174119819ced680a80febff2f5051a713f0db" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-stake-interface" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252b4291eb25a5a356149ed4d4a940d5f655186210fa84b5d0d8d55c3dd42a81" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-svm-callback" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf863c5b86e90e51c18ed08cfd8e21f9cfa60122d60d6364cde7083bf6de837c" +dependencies = [ + "solana-account 4.3.2", + "solana-clock 3.1.1", + "solana-precompile-error", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-feature-set" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "580d385250ddc3826e5d082b221d9d1047bddcc63ee18313f14dcafb95fdcae5" + +[[package]] +name = "solana-svm-log-collector" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f97c2c829a06a1b3bdbad1f770891768c1f0005b322acd7c192ad92157fe525" +dependencies = [ + "log", +] + +[[package]] +name = "solana-svm-measure" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79ec1451e86552456f1e9a1cc7ffafea01ba3383d8246ba636a11cf286da9fc3" + +[[package]] +name = "solana-svm-timings" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33a2692a88fabf56275bb40c39596d6e550a43f6e56b77fa6f0468e0affd977" +dependencies = [ + "eager", + "enum-iterator", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-transaction" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736d2cec944c6f8f298a7bd8ada5eb318cca9ab859281b1300842fa0e9a25afa" +dependencies = [ + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-transaction 4.1.6", +] + +[[package]] +name = "solana-svm-type-overrides" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74a3ba41956ba930a335589eedf0784dfa4be0527ef236df8ad3996a26b5f19f" +dependencies = [ + "rand 0.9.5", +] + +[[package]] +name = "solana-syscalls" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d31c37dc2425afc13ddb2fc8365db8dbd02ac860a454c25b3897831036a64dd8" +dependencies = [ + "bincode", + "libsecp256k1 0.7.2", + "num-traits", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-blake3-hasher 3.1.0", + "solana-bls12-381-syscall", + "solana-bn254", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-curve25519 4.0.1", + "solana-hash 4.5.0", + "solana-hash-512", + "solana-instruction 3.4.1", + "solana-keccak-hasher 3.1.0", + "solana-poseidon", + "solana-program-entrypoint 3.1.1", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.3.0", + "solana-sha256-hasher 3.1.0", + "solana-sha512-hasher", + "solana-stable-layout 3.0.1", + "solana-stake-interface 4.3.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-type-overrides", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction-context", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "solana-system-interface" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94d7c18cb1a91c6be5f5a8ac9276a1d7c737e39a21beba9ea710ab4b9c63bc90" +dependencies = [ + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-system-interface" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e1790547bfc3061f1ee68ea9d8dc6c973c02a163697b24263a8e9f2e6d4afa2" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-instruction 3.4.1", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", +] + +[[package]] +name = "solana-system-interface" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55b54965bf0b76fa8e2b35376583efddd4d916618cfe595bf48c7d7b55a9e628" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "wincode", +] + +[[package]] +name = "solana-system-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2610e0b091b920da610ad3e5ba850530702f5ac911b4e9dc5ab9a025a772138a" +dependencies = [ + "bincode", + "log", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-fee-calculator 3.2.2", + "solana-instruction 3.4.1", + "solana-nonce 3.2.1", + "solana-nonce-account", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-transaction-context", +] + +[[package]] +name = "solana-sysvar" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c3595f95069f3d90f275bb9bd235a1973c4d059028b0a7f81baca2703815db" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 2.3.0", + "solana-clock 2.2.3", + "solana-define-syscall 2.3.0", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-instructions-sysvar 2.2.2", + "solana-last-restart-slot 2.2.1", + "solana-program-entrypoint 2.3.0", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stake-interface 1.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-sysvar" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6690d3dd88f15c21edff68eb391ef8800df7a1f5cec84ee3e8d1abf05affdf74" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-define-syscall 4.0.1", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-calculator 3.2.2", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 4.2.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-sysvar" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ada7045bbfdd802af08fbc9c7e2b56ddabb20599d22e4c3840fcef5e7afb8324" +dependencies = [ + "base64 0.22.1", + "bincode", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-define-syscall 5.2.0", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-calculator 3.2.2", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stake-history", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-sysvar-id" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5762b273d3325b047cfda250787f8d796d781746860d5d0a746ee29f3e8812c1" +dependencies = [ + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-sysvar-id" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17358d1e9a13e5b9c2264d301102126cf11a47fd394cdf3dec174fe7bc96e1de" +dependencies = [ + "solana-address 2.6.1", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-time-utils" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ced92c60aa76ec4780a9d93f3bd64dfa916e1b998eacc6f1c110f3f444f02c9" + +[[package]] +name = "solana-transaction" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96697cff5075a028265324255efed226099f6d761ca67342b230d09f72cc48d2" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-message 3.1.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-signer", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-transaction" +version = "4.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8008008a75246adaf8b67411093a6d78db8232c74b00eff6041fd1da73679e7" +dependencies = [ + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-message 4.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-signer", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-transaction-context" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d61811155533aebcf806e694d3ed91be7fc168dc9bdcf25e8eb98b9234c7c3" +dependencies = [ + "bincode", + "qualifier_attr", + "serde", + "solana-account 4.3.2", + "solana-instruction 3.4.1", + "solana-instructions-sysvar 4.0.0", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-transaction-error" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222a9dc8fdb61c6088baab34fc3a8b8473a03a7a5fd404ed8dd502fa79b67cb1" +dependencies = [ + "solana-instruction 2.3.3", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-transaction-error" +version = "3.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "054e54d15164b0c34cb744600a1a0330e9fd97a12d979f2eb95904c807a07713" +dependencies = [ + "serde", + "serde_derive", + "solana-instruction-error", + "solana-sanitize 3.0.1", +] + +[[package]] +name = "solana-vote-interface" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b80d57478d6599d30acc31cc5ae7f93ec2361a06aefe8ea79bc81739a08af4c3" +dependencies = [ + "bincode", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-decode-error", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serde-varint 2.2.2", + "solana-serialize-utils 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-vote-interface" +version = "6.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13a7a204b455a53fe8c9a26a6885391a5896835e06694dbe0cf37c580f82f128" +dependencies = [ + "bincode", + "cfg_eval", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "serde_with", + "solana-clock 3.1.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-serde-varint 3.0.1", + "solana-serialize-utils 3.1.2", + "solana-short-vec 3.2.2", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-vote-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69c6faf8370369c45bc14eeca8dc0249450b940b57dcfcec0103403f9feaf88a" +dependencies = [ + "agave-feature-set", + "bincode", + "log", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-bls-signatures", + "solana-clock 3.1.1", + "solana-epoch-schedule 3.2.0", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", + "solana-system-interface 3.2.0", + "solana-transaction-context", + "solana-vote-interface 6.0.3", +] + +[[package]] +name = "solana-zero-copy" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd3183a7934dd7e6490ae86732616cd70361f5ab9401b9a375ab62f7fa17b112" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", +] + +[[package]] +name = "solana-zk-elgamal-proof-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d55e2d0d7f884295989dae8b7e0b6d7a46d87ed2d917113007383261e5e93d" +dependencies = [ + "bytemuck", + "solana-instruction 3.4.1", + "solana-program-runtime", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-zk-sdk 5.0.1", +] + +[[package]] +name = "solana-zk-sdk" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9602bcb1f7af15caef92b91132ec2347e1c51a72ecdbefdaefa3eac4b8711475" +dependencies = [ + "aes-gcm-siv", + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "getrandom 0.2.17", + "itertools 0.12.1", + "js-sys", + "merlin", + "num-derive", + "num-traits", + "rand 0.8.8", + "serde", + "serde_derive", + "serde_json", + "sha3", + "solana-derivation-path", + "solana-instruction 3.4.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature 3.4.1", + "solana-signer", + "subtle", + "thiserror 2.0.20", + "wasm-bindgen", + "zeroize", +] + +[[package]] +name = "solana-zk-sdk" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09670ff59f60e6ddc2209c2e4353992a9b9f01d4e244f3e9d67bd5146e33d388" +dependencies = [ + "aes-gcm-siv", + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "itertools 0.14.0", + "merlin", + "num-derive", + "num-traits", + "rand 0.8.8", + "serde", + "serde_derive", + "serde_json", + "sha3", + "solana-address 2.6.1", + "solana-derivation-path", + "solana-instruction 3.4.1", + "solana-sdk-ids 3.1.0", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature 3.4.1", + "solana-signer", + "subtle", + "thiserror 2.0.20", + "zeroize", +] + +[[package]] +name = "solana-zk-token-proof-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc32fcd9ff8bb90837755deccefdb20518484626c0a9d0649a36e5fcb0fcf520" +dependencies = [ + "solana-program-runtime", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "spl-associated-token-account-interface" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6bbe0794e532ac08428d3abf5bf8ae75bd81dfddd785c388e326c00c92c6f5" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "spl-associated-token-account-interface" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6433917b60441d68d99a17e121d9db0ea15a9a69c0e5afa34649cf5ba12612f" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 3.0.0", +] + +[[package]] +name = "spl-discriminator" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e597c5ff9ed7c74a54dbc47bae2f06e4db8c98f4356ad280200dc11878266db1" +dependencies = [ + "bytemuck", + "solana-program-error 3.0.1", + "solana-sha256-hasher 3.1.0", + "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.119", +] + +[[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.119", + "thiserror 1.0.69", +] + +[[package]] +name = "spl-pod" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4efaa79ec81a614ae4263c92481ba1444d01e5e1efcdaf92b7f48a5b1b3e282d" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "num-derive", + "num-traits", + "num_enum", + "solana-program-error 3.0.1", + "solana-program-option 3.1.0", + "solana-pubkey 3.0.0", + "solana-zero-copy", + "solana-zk-sdk 4.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "spl-token-2022-interface" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fcd81188211f4b3c8a5eba7fd534c7142f9dd026123b3472492782cc72f4dc6" +dependencies = [ + "arrayref", + "bytemuck", + "num-derive", + "num-traits", + "num_enum", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-zk-sdk 4.0.0", + "spl-pod", + "spl-token-confidential-transfer-proof-extraction", + "spl-token-confidential-transfer-proof-generation", + "spl-token-group-interface", + "spl-token-metadata-interface", + "spl-type-length-value", + "thiserror 2.0.20", +] + +[[package]] +name = "spl-token-confidential-transfer-proof-extraction" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879a9ebad0d77383d3ea71e7de50503554961ff0f4ef6cbca39ad126e6f6da3a" +dependencies = [ + "bytemuck", + "solana-account-info 3.1.1", + "solana-curve25519 3.1.14", + "solana-instruction 3.4.1", + "solana-instructions-sysvar 3.0.1", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-zk-sdk 4.0.0", + "spl-pod", + "thiserror 2.0.20", +] + +[[package]] +name = "spl-token-confidential-transfer-proof-generation" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0cd59fce3dc00f563c6fa364d67c3f200d278eae681f4dc250240afcfe044b1" +dependencies = [ + "curve25519-dalek", + "solana-zk-sdk 4.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "spl-token-group-interface" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841cbd6f2322d02719be4da1affedbe6495b1048b7b985ec9796032564026e22" +dependencies = [ + "bytemuck", + "num-derive", + "num-traits", + "num_enum", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-nullable", + "solana-program-error 3.0.1", + "solana-zero-copy", + "spl-discriminator", + "thiserror 2.0.20", +] + +[[package]] +name = "spl-token-interface" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c564ac05a7c8d8b12e988a37d82695b5ba4db376d07ea98bc4882c81f96c7f3" +dependencies = [ + "arrayref", + "bytemuck", + "num-derive", + "num-traits", + "num_enum", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "thiserror 2.0.20", +] + +[[package]] +name = "spl-token-metadata-interface" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c467c7c3bd056f8fe60119e7ec34ddd6f23052c2fa8f1f51999098063b72676" +dependencies = [ + "borsh 1.8.1", + "num-derive", + "num-traits", + "solana-borsh 3.0.2", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", + "spl-discriminator", + "spl-pod", + "spl-type-length-value", + "thiserror 2.0.20", +] + +[[package]] +name = "spl-type-length-value" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2504631748c48d2a937414d64a12dcac4588d34bd07d355d648619c189d29435" +dependencies = [ + "bytemuck", + "num-derive", + "num-traits", + "num_enum", + "solana-account-info 3.1.1", + "solana-program-error 3.0.1", + "solana-zero-copy", + "spl-discriminator", + "thiserror 2.0.20", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[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.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tar" +version = "0.4.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6221d9a6003c78398e3b239969f352578258df48c8eb051caadae0015bc840" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "test-utils" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "ephemeral-rollups-sdk 0.16.2", + "magicsvm", + "serde_json", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-signer", + "solana-transaction 4.1.6", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" +dependencies = [ + "thiserror-impl 2.0.20", +] + +[[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.119", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "tinyvec" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee" + +[[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 = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.25.15+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1340ea94a5856333492c9064b02c778b191dd2c853778d9609debdcdfea3a614" +dependencies = [ + "indexmap", + "toml_datetime", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" +dependencies = [ + "winnow", +] + +[[package]] +name = "typed-path" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" + +[[package]] +name = "typenum" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-segmentation" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +dependencies = [ + "void", +] + +[[package]] +name = "ureq" +version = "3.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a7ac20be9b7726e0bbdbf974c059676d9acb1cd414961f570a4e8231cacd7fc" +dependencies = [ + "base64 0.23.1", + "log", + "percent-encoding", + "ureq-proto", + "utf8-zero", +] + +[[package]] +name = "ureq-proto" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0809a01d1ca5a51ca70db32bb2a19157582a526505ef3c19e3b343a59aa5ad" +dependencies = [ + "base64 0.23.1", + "http", + "httparse", + "log", +] + +[[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 = "utf8-zero" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e" + +[[package]] +name = "uuid" +version = "1.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ef6dac1e96601b4fb3acccccff2139741fcb757cb9a36089bf5be91cfb285ce" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[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.4+wasi-0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aecb87a33d3b0c5e3b7aa46336eaf486cffafbd281b195e4c8b80d50df2351bf" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a690d511e3c1a8b3a55e33511e3c2c00c78415cd23650f32b808627f5696b9ed" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "411e4887f0071ef2d2164a9d5fdf2d20efbef78fccd3a78b0c10a1dc5295e48a" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 3.0.5", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81941cd78d0c92026c33e5e01312845a4cb1e9af3407f9134b100dd03144103e" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "web-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fbddc4a036f00ec4f18c83445bd3115cb306a91da554919a099d9222fe4a7f8" +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-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "wincode" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66d967db7705dc29120bb6e8ce5b5a2e27734ed5976d1c904e95bd238d1c3c5a" +dependencies = [ + "bv", + "pastey", + "proc-macro2", + "quote", + "thiserror 2.0.20", + "wincode-derive", +] + +[[package]] +name = "wincode-derive" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15ab90b719560d0fda79c74550ad1c948d17b118765942838055ebaf34d67071" +dependencies = [ + "darling 0.23.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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 = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "xattr" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" +dependencies = [ + "libc", + "rustix", +] + +[[package]] +name = "zerocopy" +version = "0.8.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d35102a9f36d089ccae9e4c6802bc118be4487b80aaffc0ab4e0cf5ce92d2873" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c01f5ab44258da43cf276c74a2763db2ff3969c9c652c3f2de07041d0b2bc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zeroize" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zip" +version = "8.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b" +dependencies = [ + "crc32fast", + "flate2", + "indexmap", + "memchr", + "typed-path", + "zopfli", +] + +[[package]] +name = "zlib-rs" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12" + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" + +[[package]] +name = "zopfli" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" +dependencies = [ + "bumpalo", + "crc32fast", + "log", + "simd-adler32", +] diff --git a/binary-prediction/anchor/tests-magicsvm-rs/Cargo.toml b/binary-prediction/anchor/tests-magicsvm-rs/Cargo.toml new file mode 100644 index 00000000..a1e5aeab --- /dev/null +++ b/binary-prediction/anchor/tests-magicsvm-rs/Cargo.toml @@ -0,0 +1,26 @@ +[package] +name = "binary-prediction-magicsvm-tests" +version = "0.1.0" +edition = "2021" +publish = false + +[workspace] + +[dev-dependencies] +anchor-lang = "=1.0.2" +binary-prediction = { path = "../programs/binary-prediction", features = ["no-entrypoint"] } +ephemeral-rollups-sdk = { version = "0.16.2", features = ["anchor"] } +magicsvm = "0.2.0" +test-utils = { path = "../../../test-utils/rust", features = ["anchor"] } +session-keys = { version = "=3.1.1", features = ["no-entrypoint"] } +solana-address = "~2.6.1" +solana-clock = "~3.1.1" +solana-hash = "~4.5.0" +solana-instruction = { version = "~3.4.0", features = ["bincode"] } +solana-keypair = "3.1.2" +solana-message = "4.2.4" +solana-native-token = "3.0.0" +solana-sdk-ids = "3.1.0" +solana-signer = "3.0.1" +solana-system-interface = "3.2.0" +solana-transaction = { version = "4.1.5", features = ["verify"] } diff --git a/binary-prediction/anchor/tests-magicsvm-rs/tests/magicsvm.rs b/binary-prediction/anchor/tests-magicsvm-rs/tests/magicsvm.rs new file mode 100644 index 00000000..47a6e041 --- /dev/null +++ b/binary-prediction/anchor/tests-magicsvm-rs/tests/magicsvm.rs @@ -0,0 +1,869 @@ +use { + anchor_lang::{prelude::Pubkey, system_program, InstructionData, ToAccountMetas}, + binary_prediction::{ + self, accounts, instruction, Direction, ASSOCIATED_TOKEN_PROGRAM_ID as PROGRAM_ATA_ID, + BET_SEED, DELEGATION_PROGRAM_ID as PROGRAM_DLP_ID, + EPHEMERAL_SPL_TOKEN_PROGRAM_ID as PROGRAM_ESPL_ID, POOL_SEED, + }, + ephemeral_rollups_sdk::pda::{ + delegate_buffer_pda_from_delegated_account_and_owner_program, + delegation_metadata_pda_from_delegated_account, + delegation_record_pda_from_delegated_account, + }, + magicsvm::{MagicSVM, TransactionTarget}, + session_keys::{self, SessionTokenV2}, + solana_address::{address, Address}, + solana_clock::Clock, + solana_instruction::{account_meta::AccountMeta, Instruction}, + solana_keypair::Keypair, + solana_native_token::LAMPORTS_PER_SOL, + solana_signer::Signer, + std::{ + path::PathBuf, + time::{SystemTime, UNIX_EPOCH}, + }, + test_utils::{as_address, as_pubkey, program_id_from_idl, send_ixs}, +}; + +fn program_id() -> Address { + program_id_from_idl(env!("CARGO_MANIFEST_DIR"), "binary_prediction.json") +} + +fn program_pubkey() -> Pubkey { + as_pubkey(&program_id()) +} + +fn session_program_id() -> Address { + as_address(session_keys::ID) +} + +fn client_ix( + program: Pubkey, + data: impl InstructionData, + accounts: impl ToAccountMetas, +) -> Instruction { + test_utils::client_ix(as_address(program), data, accounts) +} + +const ORACLE_PROGRAM_ID: Address = address!("PriCems5tHihc6UDXDjzjeawomAwBduWMGAi8ZUjppd"); +const DELEGATION_PROGRAM_ID: Address = address!("DELeGGvXpWV2fqJUhqcF5ZSYMS4JTLjteaAMARRSaeSh"); +const ESPL_TOKEN_PROGRAM_ID: Address = address!("SPLxh1LVZzEkX99H6rqYizhytLWPZVV296zyYDPagv2"); +const TOKEN_PROGRAM_ID: Address = address!("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"); +const ASSOCIATED_TOKEN_PROGRAM_ID: Address = + address!("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"); +const COMPUTE_BUDGET_PROGRAM_ID: Address = address!("ComputeBudget111111111111111111111111111111"); +const MAGIC_PROGRAM_ID: Address = address!("Magic11111111111111111111111111111111111111"); +const MAGIC_CONTEXT_ID: Address = address!("MagicContext1111111111111111111111111111111"); +const PRICE_FEED_SEED: &[u8] = b"price_feed"; +const ORACLE_PROVIDER: &str = "pyth-lazer"; +const ORACLE_SYMBOL: &str = "6"; +const STAKE: u64 = 100; +const USER_DELEGATION: u64 = 300; +const POOL_SEED_AMOUNT: u64 = 10_000; +const BET_DURATION_SECONDS: i64 = 5; +const MIN_STAKE: u64 = 10; +const PAYOUT_BPS: u64 = 19_000; +const MINT_SIZE: u64 = 82; + +const INITIALIZE_PRICE_FEED_DISCRIMINATOR: [u8; 8] = [68, 180, 81, 20, 102, 213, 145, 233]; +const UPDATE_PRICE_FEED_DISCRIMINATOR: [u8; 8] = [28, 9, 93, 150, 86, 153, 188, 115]; +const DELEGATE_PRICE_FEED_DISCRIMINATOR: [u8; 8] = [15, 179, 172, 145, 42, 73, 160, 241]; + +fn program_so_path() -> PathBuf { + test_utils::program_so_path(env!("CARGO_MANIFEST_DIR"), "binary_prediction") +} + +fn oracle_so_path() -> PathBuf { + let mut so_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + so_path.push("../tests/fixtures/ephemeral_oracle.so"); + so_path +} + +fn session_so_path() -> PathBuf { + let mut so_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + so_path.push("../tests-magicsvm/fixtures/session-keys.so"); + so_path +} + +fn now_unix() -> i64 { + SystemTime::now() + .duration_since(UNIX_EPOCH) + .expect("time") + .as_secs() as i64 +} + +fn set_clock(svm: &mut MagicSVM, unix_timestamp: i64) { + let mut clock: Clock = svm.get_sysvar(); + clock.unix_timestamp = unix_timestamp; + svm.set_sysvar(&clock); + svm.ephemeral_mut().set_sysvar(&clock); +} + +fn warp_clock(svm: &mut MagicSVM, seconds: i64) { + let clock: Clock = svm.get_sysvar(); + set_clock(svm, clock.unix_timestamp + seconds); +} + +fn hydrate(_svm: &mut MagicSVM, _keys: &[Address]) {} + +fn pda(seeds: &[&[u8]], program_id: &Address) -> Address { + Address::find_program_address(seeds, program_id).0 +} + +fn eata(owner: &Address, mint: &Address) -> Address { + pda(&[owner.as_ref(), mint.as_ref()], &ESPL_TOKEN_PROGRAM_ID) +} + +fn vault(mint: &Address) -> Address { + pda(&[mint.as_ref()], &ESPL_TOKEN_PROGRAM_ID) +} + +fn ata(owner: &Address, mint: &Address) -> Address { + pda( + &[owner.as_ref(), TOKEN_PROGRAM_ID.as_ref(), mint.as_ref()], + &ASSOCIATED_TOKEN_PROGRAM_ID, + ) +} + +fn delegation_buffer(account: &Address, owner_program: &Address) -> Address { + pda(&[b"buffer", account.as_ref()], owner_program) +} + +fn delegation_record(account: &Address) -> Address { + pda(&[b"delegation", account.as_ref()], &DELEGATION_PROGRAM_ID) +} + +fn delegation_metadata(account: &Address) -> Address { + pda( + &[b"delegation-metadata", account.as_ref()], + &DELEGATION_PROGRAM_ID, + ) +} + +fn price_feed() -> Address { + pda( + &[ + PRICE_FEED_SEED, + ORACLE_PROVIDER.as_bytes(), + ORACLE_SYMBOL.as_bytes(), + ], + &ORACLE_PROGRAM_ID, + ) +} + +fn push_borsh_str(buf: &mut Vec, value: &str) { + buf.extend_from_slice(&(value.len() as u32).to_le_bytes()); + buf.extend_from_slice(value.as_bytes()); +} + +fn cu_limit_ix(units: u32) -> Instruction { + let mut data = vec![2]; + data.extend_from_slice(&units.to_le_bytes()); + Instruction { + program_id: COMPUTE_BUDGET_PROGRAM_ID, + accounts: vec![], + data, + } +} + +fn initialize_price_feed_ix(payer: Address, feed: Address) -> Instruction { + let mut data = INITIALIZE_PRICE_FEED_DISCRIMINATOR.to_vec(); + push_borsh_str(&mut data, ORACLE_PROVIDER); + push_borsh_str(&mut data, ORACLE_SYMBOL); + data.extend_from_slice(feed.as_ref()); + data.extend_from_slice(&0i32.to_le_bytes()); + Instruction { + program_id: ORACLE_PROGRAM_ID, + accounts: vec![ + AccountMeta::new(payer, true), + AccountMeta::new(feed, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::id(), false), + ], + data, + } +} + +fn update_price_feed_ix( + payer: Address, + feed: Address, + price: i128, + timestamp_ns: u64, +) -> Instruction { + let mut data = UPDATE_PRICE_FEED_DISCRIMINATOR.to_vec(); + push_borsh_str(&mut data, ORACLE_PROVIDER); + push_borsh_str(&mut data, ORACLE_SYMBOL); + data.extend_from_slice(feed.as_ref()); + data.extend_from_slice(×tamp_ns.to_le_bytes()); + data.extend_from_slice(&price.to_le_bytes()); + data.extend_from_slice(&[0u8; 32]); + data.extend_from_slice(&[0u8; 32]); + data.extend_from_slice(&[0u8; 32]); + data.extend_from_slice(&[0u8; 32]); + data.push(0); + Instruction { + program_id: ORACLE_PROGRAM_ID, + accounts: vec![AccountMeta::new(payer, true), AccountMeta::new(feed, false)], + data, + } +} + +fn delegate_price_feed_ix(payer: Address, feed: Address) -> Instruction { + let mut data = DELEGATE_PRICE_FEED_DISCRIMINATOR.to_vec(); + push_borsh_str(&mut data, ORACLE_PROVIDER); + push_borsh_str(&mut data, ORACLE_SYMBOL); + Instruction { + program_id: ORACLE_PROGRAM_ID, + accounts: vec![ + AccountMeta::new(payer, true), + AccountMeta::new(feed, false), + AccountMeta::new(delegation_buffer(&feed, &ORACLE_PROGRAM_ID), false), + AccountMeta::new(delegation_record(&feed), false), + AccountMeta::new(delegation_metadata(&feed), false), + AccountMeta::new_readonly(ORACLE_PROGRAM_ID, false), + AccountMeta::new_readonly(DELEGATION_PROGRAM_ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::id(), false), + ], + data, + } +} + +fn create_mint_ixs(payer: Address, mint: Address, lamports: u64) -> Vec { + let create = solana_system_interface::instruction::create_account( + &payer, + &mint, + lamports, + MINT_SIZE, + &TOKEN_PROGRAM_ID, + ); + let mut init_data = vec![20, 0]; + init_data.extend_from_slice(payer.as_ref()); + init_data.push(0); + let init = Instruction { + program_id: TOKEN_PROGRAM_ID, + accounts: vec![AccountMeta::new(mint, false)], + data: init_data, + }; + vec![create, init] +} + +fn create_ata_ix(payer: Address, owner: Address, mint: Address) -> Instruction { + Instruction { + program_id: ASSOCIATED_TOKEN_PROGRAM_ID, + accounts: vec![ + AccountMeta::new(payer, true), + AccountMeta::new(ata(&owner, &mint), false), + AccountMeta::new_readonly(owner, false), + AccountMeta::new_readonly(mint, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::id(), false), + AccountMeta::new_readonly(TOKEN_PROGRAM_ID, false), + ], + data: vec![], + } +} + +fn mint_to_ix(mint: Address, dest: Address, authority: Address, amount: u64) -> Instruction { + let mut data = vec![7]; + data.extend_from_slice(&amount.to_le_bytes()); + Instruction { + program_id: TOKEN_PROGRAM_ID, + accounts: vec![ + AccountMeta::new(mint, false), + AccountMeta::new(dest, false), + AccountMeta::new_readonly(authority, true), + ], + data, + } +} + +fn approve_ix(source: Address, delegate: Address, owner: Address, amount: u64) -> Instruction { + let mut data = vec![4]; + data.extend_from_slice(&amount.to_le_bytes()); + Instruction { + program_id: TOKEN_PROGRAM_ID, + accounts: vec![ + AccountMeta::new(source, false), + AccountMeta::new_readonly(delegate, false), + AccountMeta::new_readonly(owner, true), + ], + data, + } +} + +fn initialize_ix( + admin: Address, + mint: Address, + pool: Address, + feed: Address, + validator: Address, +) -> Instruction { + let pool_ata = ata(&pool, &mint); + let pool_eata = eata(&pool, &mint); + let vault_pda = vault(&mint); + let vault_eata = eata(&vault_pda, &mint); + let vault_ata = ata(&vault_pda, &mint); + let mut instruction = client_ix( + program_pubkey(), + instruction::Initialize { + price_feed: as_pubkey(&feed), + price_feed_id: feed.to_bytes(), + seed_amount: POOL_SEED_AMOUNT, + bet_duration_seconds: BET_DURATION_SECONDS, + min_stake: MIN_STAKE, + payout_bps: PAYOUT_BPS, + }, + accounts::Initialize { + admin: as_pubkey(&admin), + mint: as_pubkey(&mint), + pool: as_pubkey(&pool), + pool_token_account: as_pubkey(&pool_ata), + admin_token_account: as_pubkey(&ata(&admin, &mint)), + pool_ephemeral_ata: as_pubkey(&pool_eata), + vault: as_pubkey(&vault_pda), + vault_ephemeral_ata: as_pubkey(&vault_eata), + vault_token_account: as_pubkey(&vault_ata), + pool_eata_buffer: as_pubkey(&delegation_buffer(&pool_eata, &ESPL_TOKEN_PROGRAM_ID)), + pool_eata_record: as_pubkey(&delegation_record(&pool_eata)), + pool_eata_metadata: as_pubkey(&delegation_metadata(&pool_eata)), + vault_eata_buffer: as_pubkey(&delegation_buffer(&vault_eata, &ESPL_TOKEN_PROGRAM_ID)), + vault_eata_record: as_pubkey(&delegation_record(&vault_eata)), + vault_eata_metadata: as_pubkey(&delegation_metadata(&vault_eata)), + ephemeral_token_program: PROGRAM_ESPL_ID, + delegation_program: PROGRAM_DLP_ID, + token_program: as_pubkey(&TOKEN_PROGRAM_ID), + associated_token_program: PROGRAM_ATA_ID, + system_program: system_program::ID, + }, + ); + instruction + .accounts + .push(AccountMeta::new_readonly(validator, false)); + instruction +} + +fn initialize_bet_ix(payer: Address, user: Address, bet: Address) -> Instruction { + client_ix( + program_pubkey(), + instruction::InitializeBet {}, + accounts::InitializeBet { + payer: as_pubkey(&payer), + user: as_pubkey(&user), + bet: as_pubkey(&bet), + system_program: system_program::ID, + }, + ) +} + +fn delegate_bet_ix(payer: Address, user: Address, bet: Address, validator: Address) -> Instruction { + let bet_pk = as_pubkey(&bet); + let mut instruction = client_ix( + program_pubkey(), + instruction::DelegateBet {}, + accounts::DelegateBet { + payer: as_pubkey(&payer), + user: as_pubkey(&user), + buffer_bet: delegate_buffer_pda_from_delegated_account_and_owner_program( + &bet_pk, + &program_pubkey(), + ), + delegation_record_bet: delegation_record_pda_from_delegated_account(&bet_pk), + delegation_metadata_bet: delegation_metadata_pda_from_delegated_account(&bet_pk), + bet: bet_pk, + owner_program: program_pubkey(), + delegation_program: PROGRAM_DLP_ID, + system_program: system_program::ID, + }, + ); + instruction + .accounts + .push(AccountMeta::new_readonly(validator, false)); + instruction +} + +fn init_eata_ix(payer: Address, owner: Address, mint: Address) -> Instruction { + Instruction { + program_id: ESPL_TOKEN_PROGRAM_ID, + accounts: vec![ + AccountMeta::new(eata(&owner, &mint), false), + AccountMeta::new(payer, true), + AccountMeta::new_readonly(owner, false), + AccountMeta::new_readonly(mint, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::id(), false), + ], + data: vec![0], + } +} + +fn transfer_to_vault_ix(owner: Address, mint: Address, amount: u64) -> Instruction { + let owner_ata = ata(&owner, &mint); + let vault_pda = vault(&mint); + let mut data = vec![2]; + data.extend_from_slice(&amount.to_le_bytes()); + Instruction { + program_id: ESPL_TOKEN_PROGRAM_ID, + accounts: vec![ + AccountMeta::new(eata(&owner, &mint), false), + AccountMeta::new_readonly(vault_pda, false), + AccountMeta::new_readonly(mint, false), + AccountMeta::new(owner_ata, false), + AccountMeta::new(ata(&vault_pda, &mint), false), + AccountMeta::new_readonly(owner, true), + AccountMeta::new_readonly(TOKEN_PROGRAM_ID, false), + ], + data, + } +} + +fn delegate_eata_ix( + payer: Address, + owner: Address, + mint: Address, + validator: Address, +) -> Instruction { + let eata_addr = eata(&owner, &mint); + let mut data = vec![4]; + data.extend_from_slice(validator.as_ref()); + Instruction { + program_id: ESPL_TOKEN_PROGRAM_ID, + accounts: vec![ + AccountMeta::new(payer, true), + AccountMeta::new(eata_addr, false), + AccountMeta::new_readonly(ESPL_TOKEN_PROGRAM_ID, false), + AccountMeta::new(delegation_buffer(&eata_addr, &ESPL_TOKEN_PROGRAM_ID), false), + AccountMeta::new(delegation_record(&eata_addr), false), + AccountMeta::new(delegation_metadata(&eata_addr), false), + AccountMeta::new_readonly(DELEGATION_PROGRAM_ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::id(), false), + ], + data, + } +} + +#[allow(clippy::too_many_arguments)] +fn place_bet_ix( + payer: Address, + user: Address, + mint: Address, + pool: Address, + bet: Address, + feed: Address, + session_token: Option
, + direction: Direction, + stake: u64, +) -> Instruction { + client_ix( + program_pubkey(), + instruction::PlaceBet { direction, stake }, + accounts::PlaceBet { + payer: as_pubkey(&payer), + user: as_pubkey(&user), + mint: as_pubkey(&mint), + pool: as_pubkey(&pool), + bet: as_pubkey(&bet), + user_token_account: as_pubkey(&ata(&user, &mint)), + pool_token_account: as_pubkey(&ata(&pool, &mint)), + price_update: as_pubkey(&feed), + token_program: as_pubkey(&TOKEN_PROGRAM_ID), + session_token: Some(as_pubkey(&session_token.unwrap_or_else(program_id))), + }, + ) +} + +fn settle_ix( + payer: Address, + user: Address, + mint: Address, + pool: Address, + bet: Address, + feed: Address, +) -> Instruction { + client_ix( + program_pubkey(), + instruction::Settle {}, + accounts::Settle { + payer: as_pubkey(&payer), + user: as_pubkey(&user), + mint: as_pubkey(&mint), + pool: as_pubkey(&pool), + bet: as_pubkey(&bet), + user_token_account: as_pubkey(&ata(&user, &mint)), + pool_token_account: as_pubkey(&ata(&pool, &mint)), + price_update: as_pubkey(&feed), + token_program: as_pubkey(&TOKEN_PROGRAM_ID), + }, + ) +} + +fn create_session_v2_ix( + session_token: Address, + session_signer: Address, + fee_payer: Address, + authority: Address, + valid_until: i64, + lamports: u64, +) -> Instruction { + client_ix( + session_keys::ID, + session_keys::instruction::CreateSessionV2 { + top_up: Some(true), + valid_until: Some(valid_until), + lamports: Some(lamports), + }, + session_keys::accounts::CreateSessionTokenV2 { + session_token: as_pubkey(&session_token), + session_signer: as_pubkey(&session_signer), + fee_payer: as_pubkey(&fee_payer), + authority: as_pubkey(&authority), + target_program: program_pubkey(), + system_program: system_program::ID, + }, + ) +} + +fn undelegate_user_ix(owner: Address, mint: Address) -> Instruction { + Instruction { + program_id: ESPL_TOKEN_PROGRAM_ID, + accounts: vec![ + AccountMeta::new_readonly(owner, true), + AccountMeta::new(ata(&owner, &mint), false), + AccountMeta::new_readonly(eata(&owner, &mint), false), + AccountMeta::new(MAGIC_CONTEXT_ID, false), + AccountMeta::new_readonly(MAGIC_PROGRAM_ID, false), + ], + data: vec![5], + } +} + +fn withdraw_spl_ix(user: Address, mint: Address, amount: u64) -> Instruction { + let vault_pda = vault(&mint); + let mut data = vec![3]; + data.extend_from_slice(&amount.to_le_bytes()); + Instruction { + program_id: ESPL_TOKEN_PROGRAM_ID, + accounts: vec![ + AccountMeta::new_readonly(user, true), + AccountMeta::new(eata(&user, &mint), false), + AccountMeta::new_readonly(vault_pda, false), + AccountMeta::new_readonly(mint, false), + AccountMeta::new(ata(&vault_pda, &mint), false), + AccountMeta::new(ata(&user, &mint), false), + AccountMeta::new_readonly(TOKEN_PROGRAM_ID, false), + ], + data, + } +} + +fn token_amount(svm: &MagicSVM, address: &Address, target: TransactionTarget) -> u64 { + let data = svm + .get_account_for(target, address) + .unwrap_or_else(|| panic!("token account {address} missing on {target:?}")) + .data; + u64::from_le_bytes(data[64..72].try_into().unwrap()) +} + +fn oracle_timestamp_ns(svm: &MagicSVM) -> u64 { + let clock: Clock = svm.get_sysvar(); + clock.unix_timestamp as u64 * 1_000_000_000 +} + +#[test] +fn binary_prediction_initialize_bet_settle_withdraw() { + let admin = Keypair::new(); + let user = Keypair::new(); + let session_signer = Keypair::new(); + let mint_kp = Keypair::new(); + let mint = mint_kp.pubkey(); + let mut svm = MagicSVM::new(); + set_clock(&mut svm, now_unix()); + + svm.add_program_from_file(program_id(), program_so_path()) + .unwrap(); + svm.add_program_from_file(ORACLE_PROGRAM_ID, oracle_so_path()) + .unwrap(); + svm.add_program_from_file(session_program_id(), session_so_path()) + .unwrap(); + svm.airdrop(&admin.pubkey(), 10 * LAMPORTS_PER_SOL).unwrap(); + svm.airdrop(&user.pubkey(), 2 * LAMPORTS_PER_SOL).unwrap(); + + let validator = svm.validator_identity(); + let feed = price_feed(); + let pool = pda(&[POOL_SEED, mint.as_ref()], &program_id()); + let user_bet = pda(&[BET_SEED, user.pubkey().as_ref()], &program_id()); + let user_ata = ata(&user.pubkey(), &mint); + let admin_ata = ata(&admin.pubkey(), &mint); + let pool_ata = ata(&pool, &mint); + let session_token = pda( + &[ + SessionTokenV2::SEED_PREFIX.as_bytes(), + program_id().as_ref(), + session_signer.pubkey().as_ref(), + user.pubkey().as_ref(), + ], + &session_program_id(), + ); + + let mint_rent = svm.minimum_balance_for_rent_exemption(MINT_SIZE as usize); + send_ixs( + &mut svm, + TransactionTarget::Base, + &[&admin, &mint_kp], + create_mint_ixs(admin.pubkey(), mint, mint_rent), + "create mint", + ); + send_ixs( + &mut svm, + TransactionTarget::Base, + &[&admin], + vec![ + create_ata_ix(admin.pubkey(), user.pubkey(), mint), + create_ata_ix(admin.pubkey(), admin.pubkey(), mint), + ], + "create ATAs", + ); + send_ixs( + &mut svm, + TransactionTarget::Base, + &[&admin], + vec![ + mint_to_ix(mint, user_ata, admin.pubkey(), 1_000), + mint_to_ix(mint, admin_ata, admin.pubkey(), POOL_SEED_AMOUNT), + ], + "mint tokens", + ); + + send_ixs( + &mut svm, + TransactionTarget::Base, + &[&admin], + vec![initialize_price_feed_ix(admin.pubkey(), feed)], + "initialize price feed", + ); + let price_ts = oracle_timestamp_ns(&svm); + send_ixs( + &mut svm, + TransactionTarget::Base, + &[&admin], + vec![update_price_feed_ix(admin.pubkey(), feed, 100, price_ts)], + "update price feed 100", + ); + + send_ixs( + &mut svm, + TransactionTarget::Base, + &[&admin], + vec![ + cu_limit_ix(1_400_000), + initialize_ix(admin.pubkey(), mint, pool, feed, validator), + ], + "initialize", + ); + + let pool_data = svm.get_account(&pool).expect("pool").data; + assert_eq!( + i64::from_le_bytes(pool_data[136..144].try_into().unwrap()), + BET_DURATION_SECONDS + ); + assert_eq!(&pool_data[104..136], feed.as_ref()); + assert_eq!( + u64::from_le_bytes(pool_data[144..152].try_into().unwrap()), + MIN_STAKE + ); + assert_eq!( + u64::from_le_bytes(pool_data[152..160].try_into().unwrap()), + PAYOUT_BPS + ); + assert_eq!(token_amount(&svm, &pool_ata, TransactionTarget::Base), 0); + + send_ixs( + &mut svm, + TransactionTarget::Base, + &[&admin], + vec![initialize_bet_ix(admin.pubkey(), user.pubkey(), user_bet)], + "initialize bet", + ); + send_ixs( + &mut svm, + TransactionTarget::Base, + &[&admin], + vec![delegate_price_feed_ix(admin.pubkey(), feed)], + "delegate price feed", + ); + send_ixs( + &mut svm, + TransactionTarget::Base, + &[&admin, &user], + vec![delegate_bet_ix( + admin.pubkey(), + user.pubkey(), + user_bet, + validator, + )], + "delegate bet", + ); + send_ixs( + &mut svm, + TransactionTarget::Base, + &[&admin, &user], + vec![ + init_eata_ix(admin.pubkey(), user.pubkey(), mint), + transfer_to_vault_ix(user.pubkey(), mint, USER_DELEGATION), + delegate_eata_ix(admin.pubkey(), user.pubkey(), mint, validator), + ], + "delegate user SPL", + ); + + hydrate(&mut svm, &[pool, mint, TOKEN_PROGRAM_ID]); + send_ixs( + &mut svm, + TransactionTarget::Ephemeral, + &[&admin, &user], + vec![place_bet_ix( + user.pubkey(), + user.pubkey(), + mint, + pool, + user_bet, + feed, + None, + Direction::Up, + STAKE, + )], + "place wallet bet", + ); + + let bet = svm + .get_account_for(TransactionTarget::Ephemeral, &user_bet) + .expect("bet"); + assert_eq!(i64::from_le_bytes(bet.data[8..16].try_into().unwrap()), 100); + assert_eq!( + u64::from_le_bytes(bet.data[25..33].try_into().unwrap()), + STAKE + ); + assert_eq!(bet.data[33], 1); + + let price_ts = oracle_timestamp_ns(&svm); + send_ixs( + &mut svm, + TransactionTarget::Ephemeral, + &[&admin], + vec![update_price_feed_ix(admin.pubkey(), feed, 110, price_ts)], + "update price feed 110", + ); + warp_clock(&mut svm, BET_DURATION_SECONDS + 1); + + hydrate(&mut svm, &[pool, mint]); + send_ixs( + &mut svm, + TransactionTarget::Ephemeral, + &[&admin], + vec![settle_ix( + admin.pubkey(), + user.pubkey(), + mint, + pool, + user_bet, + feed, + )], + "settle win", + ); + let bet = svm + .get_account_for(TransactionTarget::Ephemeral, &user_bet) + .expect("bet"); + assert_eq!(bet.data[33], 0); + + let clock: Clock = svm.get_sysvar(); + send_ixs( + &mut svm, + TransactionTarget::Base, + &[&admin, &user, &session_signer], + vec![create_session_v2_ix( + session_token, + session_signer.pubkey(), + admin.pubkey(), + user.pubkey(), + clock.unix_timestamp + 3600, + (0.005 * LAMPORTS_PER_SOL as f64) as u64, + )], + "create session", + ); + + send_ixs( + &mut svm, + TransactionTarget::Ephemeral, + &[&user], + vec![approve_ix( + user_ata, + session_signer.pubkey(), + user.pubkey(), + STAKE, + )], + "approve session delegate", + ); + + hydrate(&mut svm, &[pool, mint, session_token]); + send_ixs( + &mut svm, + TransactionTarget::Ephemeral, + &[&session_signer], + vec![place_bet_ix( + session_signer.pubkey(), + user.pubkey(), + mint, + pool, + user_bet, + feed, + Some(session_token), + Direction::Down, + STAKE, + )], + "place session bet", + ); + + let price_ts = oracle_timestamp_ns(&svm); + send_ixs( + &mut svm, + TransactionTarget::Ephemeral, + &[&admin], + vec![update_price_feed_ix(admin.pubkey(), feed, 120, price_ts)], + "update price feed 120", + ); + warp_clock(&mut svm, BET_DURATION_SECONDS + 1); + + hydrate(&mut svm, &[pool, mint]); + send_ixs( + &mut svm, + TransactionTarget::Ephemeral, + &[&admin], + vec![settle_ix( + admin.pubkey(), + user.pubkey(), + mint, + pool, + user_bet, + feed, + )], + "settle loss", + ); + + let er_user_balance = token_amount(&svm, &user_ata, TransactionTarget::Ephemeral); + let er_pool_balance = token_amount(&svm, &pool_ata, TransactionTarget::Ephemeral); + assert_eq!(er_user_balance, 290); + assert_eq!(er_pool_balance, 10_010); + + send_ixs( + &mut svm, + TransactionTarget::Ephemeral, + &[&user], + vec![undelegate_user_ix(user.pubkey(), mint)], + "user undelegate", + ); + send_ixs( + &mut svm, + TransactionTarget::Base, + &[&admin, &user], + vec![withdraw_spl_ix(user.pubkey(), mint, er_user_balance)], + "user withdraw", + ); + + assert_eq!(token_amount(&svm, &user_ata, TransactionTarget::Base), 990); + assert_eq!(token_amount(&svm, &pool_ata, TransactionTarget::Base), 0); +} diff --git a/binary-prediction/anchor/tests-magicsvm/binary-prediction.ts b/binary-prediction/anchor/tests-magicsvm/binary-prediction.ts new file mode 100644 index 00000000..90682d33 --- /dev/null +++ b/binary-prediction/anchor/tests-magicsvm/binary-prediction.ts @@ -0,0 +1,766 @@ +import * as anchor from "@coral-xyz/anchor"; +import * as borsh from "@coral-xyz/borsh"; +import { BN, Program, web3 } from "@coral-xyz/anchor"; +import { + ASSOCIATED_TOKEN_PROGRAM_ID, + createApproveInstruction, + createAssociatedTokenAccountInstruction, + createInitializeMint2Instruction, + createMintToInstruction, + getAssociatedTokenAddressSync, + TOKEN_PROGRAM_ID, +} from "@solana/spl-token"; +import { + DELEGATION_PROGRAM_ID, + delegateSpl, + EPHEMERAL_SPL_TOKEN_PROGRAM_ID, + undelegateIx, + withdrawSpl, +} from "@magicblock-labs/ephemeral-rollups-sdk"; +import { SessionTokenManager } from "@magicblock-labs/gum-sdk"; +import { MagicSVM } from "@magicblock-labs/magicsvm"; +import { airdropOrThrow, sendSvmTx } from "@magicblock-labs/test-utils"; +import { expect } from "chai"; +import * as fs from "fs"; +import * as path from "path"; + +import { BinaryPrediction } from "../target/types/binary_prediction"; + +const ORACLE_PROGRAM_ID = new web3.PublicKey( + "PriCems5tHihc6UDXDjzjeawomAwBduWMGAi8ZUjppd", +); +const SESSION_PROGRAM_ID = new web3.PublicKey( + "KeyspM2ssCJbqUhQ4k7sveSiY4WjnYsrXkC8oDbwde5", +); +const POOL_SEED = Buffer.from("pool"); +const BET_SEED = Buffer.from("bet"); +const PRICE_FEED_SEED = Buffer.from("price_feed"); +const ORACLE_PROVIDER = "pyth-lazer"; +const ORACLE_SYMBOL = "6"; +const STAKE = new BN(100); +const USER_DELEGATION = 300n; +const POOL_SEED_AMOUNT = new BN(10_000); +const BET_DURATION_SECONDS = new BN(5); +const MIN_STAKE = new BN(10); +const PAYOUT_BPS = new BN(19_000); +const MINT_SIZE = 82; + +const INITIALIZE_PRICE_FEED_DISCRIMINATOR = Buffer.from([ + 68, 180, 81, 20, 102, 213, 145, 233, +]); +const UPDATE_PRICE_FEED_DISCRIMINATOR = Buffer.from([ + 28, 9, 93, 150, 86, 153, 188, 115, +]); +const DELEGATE_PRICE_FEED_DISCRIMINATOR = Buffer.from([ + 15, 179, 172, 145, 42, 73, 160, 241, +]); + +const initializePriceFeedLayout = borsh.struct([ + borsh.str("provider"), + borsh.str("symbol"), + borsh.array(borsh.u8(), 32, "feedId"), + borsh.i32("exponent"), +]); +const updatePriceFeedLayout = borsh.struct([ + borsh.str("provider"), + borsh.struct( + [ + borsh.str("symbol"), + borsh.array(borsh.u8(), 32, "id"), + borsh.struct( + [borsh.u64("timestampNs"), borsh.i128("quantizedValue")], + "temporalNumericValue", + ), + borsh.array(borsh.u8(), 32, "publisherMerkleRoot"), + borsh.array(borsh.u8(), 32, "valueComputeAlgHash"), + borsh.array(borsh.u8(), 32, "r"), + borsh.array(borsh.u8(), 32, "s"), + borsh.u8("v"), + ], + "updateData", + ), +]); +const delegatePriceFeedLayout = borsh.struct([ + borsh.str("provider"), + borsh.str("symbol"), +]); + +function pda(seeds: Buffer[], programId: web3.PublicKey): web3.PublicKey { + return web3.PublicKey.findProgramAddressSync(seeds, programId)[0]; +} + +function eata(owner: web3.PublicKey, mint: web3.PublicKey): web3.PublicKey { + return pda( + [owner.toBuffer(), mint.toBuffer()], + EPHEMERAL_SPL_TOKEN_PROGRAM_ID, + ); +} + +function vault(mint: web3.PublicKey): web3.PublicKey { + return pda([mint.toBuffer()], EPHEMERAL_SPL_TOKEN_PROGRAM_ID); +} + +function delegationBuffer( + account: web3.PublicKey, + ownerProgram: web3.PublicKey, +): web3.PublicKey { + return pda([Buffer.from("buffer"), account.toBuffer()], ownerProgram); +} + +function delegationRecord(account: web3.PublicKey): web3.PublicKey { + return pda( + [Buffer.from("delegation"), account.toBuffer()], + DELEGATION_PROGRAM_ID, + ); +} + +function delegationMetadata(account: web3.PublicKey): web3.PublicKey { + return pda( + [Buffer.from("delegation-metadata"), account.toBuffer()], + DELEGATION_PROGRAM_ID, + ); +} + +function priceFeed(): web3.PublicKey { + return pda( + [PRICE_FEED_SEED, Buffer.from(ORACLE_PROVIDER), Buffer.from(ORACLE_SYMBOL)], + ORACLE_PROGRAM_ID, + ); +} + +function betPda( + programId: web3.PublicKey, + user: web3.PublicKey, +): web3.PublicKey { + return pda([BET_SEED, user.toBuffer()], programId); +} + +function encodeInstruction( + discriminator: Buffer, + layout: borsh.Layout, + value: unknown, +): Buffer { + const encoded = Buffer.alloc(1_000); + const span = layout.encode(value, encoded); + + return Buffer.concat([discriminator, encoded.subarray(0, span)]); +} + +function initializePriceFeedIx( + payer: web3.PublicKey, + feed: web3.PublicKey, +): web3.TransactionInstruction { + return new web3.TransactionInstruction({ + programId: ORACLE_PROGRAM_ID, + keys: [ + { pubkey: payer, isSigner: true, isWritable: true }, + { pubkey: feed, isSigner: false, isWritable: true }, + { + pubkey: web3.SystemProgram.programId, + isSigner: false, + isWritable: false, + }, + ], + data: encodeInstruction( + INITIALIZE_PRICE_FEED_DISCRIMINATOR, + initializePriceFeedLayout, + { + provider: ORACLE_PROVIDER, + symbol: ORACLE_SYMBOL, + feedId: Array.from(feed.toBytes()), + exponent: 0, + }, + ), + }); +} + +function updatePriceFeedIx( + payer: web3.PublicKey, + feed: web3.PublicKey, + price: number, + timestampNs: BN, +): web3.TransactionInstruction { + return new web3.TransactionInstruction({ + programId: ORACLE_PROGRAM_ID, + keys: [ + { pubkey: payer, isSigner: true, isWritable: true }, + { pubkey: feed, isSigner: false, isWritable: true }, + ], + data: encodeInstruction( + UPDATE_PRICE_FEED_DISCRIMINATOR, + updatePriceFeedLayout, + { + provider: ORACLE_PROVIDER, + updateData: { + symbol: ORACLE_SYMBOL, + id: Array.from(feed.toBytes()), + temporalNumericValue: { + timestampNs, + quantizedValue: new BN(price), + }, + publisherMerkleRoot: Array(32).fill(0), + valueComputeAlgHash: Array(32).fill(0), + r: Array(32).fill(0), + s: Array(32).fill(0), + v: 0, + }, + }, + ), + }); +} + +function delegatePriceFeedIx( + payer: web3.PublicKey, + feed: web3.PublicKey, +): web3.TransactionInstruction { + return new web3.TransactionInstruction({ + programId: ORACLE_PROGRAM_ID, + keys: [ + { pubkey: payer, isSigner: true, isWritable: true }, + { pubkey: feed, isSigner: false, isWritable: true }, + { + pubkey: delegationBuffer(feed, ORACLE_PROGRAM_ID), + isSigner: false, + isWritable: true, + }, + { pubkey: delegationRecord(feed), isSigner: false, isWritable: true }, + { pubkey: delegationMetadata(feed), isSigner: false, isWritable: true }, + { pubkey: ORACLE_PROGRAM_ID, isSigner: false, isWritable: false }, + { pubkey: DELEGATION_PROGRAM_ID, isSigner: false, isWritable: false }, + { + pubkey: web3.SystemProgram.programId, + isSigner: false, + isWritable: false, + }, + ], + data: encodeInstruction( + DELEGATE_PRICE_FEED_DISCRIMINATOR, + delegatePriceFeedLayout, + { + provider: ORACLE_PROVIDER, + symbol: ORACLE_SYMBOL, + }, + ), + }); +} + +function tokenAmount( + svm: MagicSVM, + address: web3.PublicKey, + target: "base" | "ephemeral", +): bigint { + const account = svm.getAccountFor(address, { target }); + expect(account.exists, `token account missing on ${target}`).to.equal(true); + if (!account.exists) { + throw new Error(`token account missing on ${target}`); + } + return Buffer.from(account.data).readBigUInt64LE(64); +} + +function readPool(svm: MagicSVM, pool: web3.PublicKey) { + const account = svm.getAccount(pool); + expect(account.exists, "pool missing").to.equal(true); + if (!account.exists) { + throw new Error("pool missing"); + } + const data = Buffer.from(account.data); + return { + priceFeedId: data.subarray(104, 136), + betDurationSeconds: Number(data.readBigInt64LE(136)), + minStake: Number(data.readBigUInt64LE(144)), + payoutBps: Number(data.readBigUInt64LE(152)), + }; +} + +function readBet( + svm: MagicSVM, + bet: web3.PublicKey, + target: "base" | "ephemeral", +) { + const account = svm.getAccountFor(bet, { target }); + expect(account.exists, `bet missing on ${target}`).to.equal(true); + if (!account.exists) { + throw new Error(`bet missing on ${target}`); + } + const data = Buffer.from(account.data); + return { + openPrice: Number(data.readBigInt64LE(8)), + stake: Number(data.readBigUInt64LE(25)), + isOpen: data[33] === 1, + }; +} + +function setUnixTimestamp(svm: MagicSVM, unixTimestamp: bigint) { + const clock = svm.getClock(); + clock.unixTimestamp = unixTimestamp; + svm.setClock(clock); +} + +function oracleTimestampNs(svm: MagicSVM): BN { + return new BN(svm.getClock().unixTimestamp.toString()).mul( + new BN(1_000_000_000), + ); +} + +describe("binary-prediction magicsvm", () => { + const soPath = path.resolve( + __dirname, + "..", + "target", + "deploy", + "binary_prediction.so", + ); + const oracleSoPath = path.resolve( + __dirname, + "..", + "tests", + "fixtures", + "ephemeral_oracle.so", + ); + const sessionSoPath = path.resolve(__dirname, "fixtures", "session-keys.so"); + expect(fs.existsSync(soPath), `missing program binary at ${soPath}`).to.equal( + true, + ); + expect( + fs.existsSync(oracleSoPath), + `missing oracle program at ${oracleSoPath}`, + ).to.equal(true); + expect( + fs.existsSync(sessionSoPath), + `missing gum session program at ${sessionSoPath}`, + ).to.equal(true); + + const idl = JSON.parse( + fs.readFileSync( + path.resolve(__dirname, "..", "target", "idl", "binary_prediction.json"), + "utf8", + ), + ); + const admin = web3.Keypair.generate(); + const user = web3.Keypair.generate(); + const sessionKeypair = web3.Keypair.generate(); + const mintKp = web3.Keypair.generate(); + const dummyProvider = new anchor.AnchorProvider( + new web3.Connection("http://127.0.0.1:8899"), + new anchor.Wallet(admin), + { commitment: "confirmed" }, + ); + const program = new Program(idl, dummyProvider); + const sessionTokenManager = new SessionTokenManager( + dummyProvider.wallet, + dummyProvider.connection, + ); + + const svm = new MagicSVM(); + const now = BigInt(Math.floor(Date.now() / 1000)); + setUnixTimestamp(svm, now); + svm.addProgramFromFile(program.programId, soPath); + svm.addProgramFromFile(ORACLE_PROGRAM_ID, oracleSoPath); + svm.addProgramFromFile(SESSION_PROGRAM_ID, sessionSoPath); + airdropOrThrow( + svm, + admin.publicKey, + BigInt(10 * web3.LAMPORTS_PER_SOL), + "airdrop admin", + ); + airdropOrThrow( + svm, + user.publicKey, + BigInt(2 * web3.LAMPORTS_PER_SOL), + "airdrop user", + ); + + const validator = new web3.PublicKey(svm.validatorIdentity().toString()); + const feed = priceFeed(); + const feedId = Array.from(feed.toBytes()); + const userBet = betPda(program.programId, user.publicKey); + const mint = mintKp.publicKey; + const userAta = getAssociatedTokenAddressSync(mint, user.publicKey); + const adminAta = getAssociatedTokenAddressSync(mint, admin.publicKey); + const pool = web3.PublicKey.findProgramAddressSync( + [POOL_SEED, mint.toBuffer()], + program.programId, + )[0]; + const poolAta = getAssociatedTokenAddressSync(mint, pool, true); + const poolEata = eata(pool, mint); + const vaultPda = vault(mint); + const vaultEata = eata(vaultPda, mint); + const vaultAta = getAssociatedTokenAddressSync(mint, vaultPda, true); + const sessionTokenPda = web3.PublicKey.findProgramAddressSync( + [ + Buffer.from("session_token_v2"), + program.programId.toBuffer(), + sessionKeypair.publicKey.toBuffer(), + user.publicKey.toBuffer(), + ], + sessionTokenManager.program.programId, + )[0]; + + it("runs initialize -> bet -> settle -> user withdraw", async () => { + const mintRent = Number( + svm.minimumBalanceForRentExemption(BigInt(MINT_SIZE)), + ); + sendSvmTx( + svm, + [admin, mintKp], + new web3.Transaction().add( + web3.SystemProgram.createAccount({ + fromPubkey: admin.publicKey, + newAccountPubkey: mint, + space: MINT_SIZE, + lamports: mintRent, + programId: TOKEN_PROGRAM_ID, + }), + createInitializeMint2Instruction(mint, 0, admin.publicKey, null), + ), + "base", + "create mint", + ); + + sendSvmTx( + svm, + [admin], + new web3.Transaction().add( + createAssociatedTokenAccountInstruction( + admin.publicKey, + userAta, + user.publicKey, + mint, + ), + createAssociatedTokenAccountInstruction( + admin.publicKey, + adminAta, + admin.publicKey, + mint, + ), + ), + "base", + "create ATAs", + ); + + sendSvmTx( + svm, + [admin], + new web3.Transaction().add( + createMintToInstruction(mint, userAta, admin.publicKey, 1_000n), + createMintToInstruction( + mint, + adminAta, + admin.publicKey, + BigInt(POOL_SEED_AMOUNT.toString()), + ), + ), + "base", + "mint tokens", + ); + + sendSvmTx( + svm, + [admin], + new web3.Transaction().add(initializePriceFeedIx(admin.publicKey, feed)), + "base", + "initialize price feed", + ); + sendSvmTx( + svm, + [admin], + new web3.Transaction().add( + updatePriceFeedIx(admin.publicKey, feed, 100, oracleTimestampNs(svm)), + ), + "base", + "update price feed 100", + ); + + const initializeTx = await program.methods + .initialize( + feed, + feedId, + POOL_SEED_AMOUNT, + BET_DURATION_SECONDS, + MIN_STAKE, + PAYOUT_BPS, + ) + .preInstructions([ + web3.ComputeBudgetProgram.setComputeUnitLimit({ units: 1_400_000 }), + ]) + .accountsPartial({ + admin: admin.publicKey, + mint, + pool, + poolTokenAccount: poolAta, + adminTokenAccount: adminAta, + poolEphemeralAta: poolEata, + vault: vaultPda, + vaultEphemeralAta: vaultEata, + vaultTokenAccount: vaultAta, + poolEataBuffer: delegationBuffer( + poolEata, + EPHEMERAL_SPL_TOKEN_PROGRAM_ID, + ), + poolEataRecord: delegationRecord(poolEata), + poolEataMetadata: delegationMetadata(poolEata), + vaultEataBuffer: delegationBuffer( + vaultEata, + EPHEMERAL_SPL_TOKEN_PROGRAM_ID, + ), + vaultEataRecord: delegationRecord(vaultEata), + vaultEataMetadata: delegationMetadata(vaultEata), + ephemeralTokenProgram: EPHEMERAL_SPL_TOKEN_PROGRAM_ID, + delegationProgram: DELEGATION_PROGRAM_ID, + tokenProgram: TOKEN_PROGRAM_ID, + associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID, + systemProgram: web3.SystemProgram.programId, + }) + .remainingAccounts([ + { pubkey: validator, isSigner: false, isWritable: false }, + ]) + .transaction(); + sendSvmTx(svm, [admin], initializeTx, "base", "initialize"); + + const poolState = readPool(svm, pool); + expect(poolState.betDurationSeconds).to.equal( + BET_DURATION_SECONDS.toNumber(), + ); + expect(Buffer.from(poolState.priceFeedId)).to.deep.equal( + Buffer.from(feedId), + ); + expect(poolState.minStake).to.equal(MIN_STAKE.toNumber()); + expect(poolState.payoutBps).to.equal(PAYOUT_BPS.toNumber()); + expect(tokenAmount(svm, poolAta, "base")).to.equal(0n); + + const initializeBetTx = await program.methods + .initializeBet() + .accountsPartial({ + payer: admin.publicKey, + user: user.publicKey, + bet: userBet, + systemProgram: web3.SystemProgram.programId, + }) + .transaction(); + sendSvmTx(svm, [admin], initializeBetTx, "base", "initialize bet"); + + sendSvmTx( + svm, + [admin], + new web3.Transaction().add(delegatePriceFeedIx(admin.publicKey, feed)), + "base", + "delegate price feed", + ); + + const delegateBetTx = await program.methods + .delegateBet() + .accountsPartial({ + payer: admin.publicKey, + user: user.publicKey, + bet: userBet, + }) + .remainingAccounts([ + { pubkey: validator, isSigner: false, isWritable: false }, + ]) + .transaction(); + sendSvmTx(svm, [admin, user], delegateBetTx, "base", "delegate bet"); + + const delegateUserIxs = await delegateSpl( + user.publicKey, + mint, + USER_DELEGATION, + { + validator, + idempotent: false, + initVaultIfMissing: false, + payer: admin.publicKey, + }, + ); + sendSvmTx( + svm, + [admin, user], + new web3.Transaction().add(...delegateUserIxs), + "base", + "delegate user SPL", + ); + + const placeWalletBetTx = await program.methods + .placeBet({ up: {} }, STAKE) + .accountsPartial({ + payer: user.publicKey, + user: user.publicKey, + mint, + pool, + bet: userBet, + userTokenAccount: userAta, + poolTokenAccount: poolAta, + priceUpdate: feed, + tokenProgram: TOKEN_PROGRAM_ID, + sessionToken: null, + }) + .transaction(); + sendSvmTx( + svm, + [admin, user], + placeWalletBetTx, + "ephemeral", + "place wallet bet", + ); + + let bet = readBet(svm, userBet, "ephemeral"); + expect(bet.openPrice).to.equal(100); + expect(bet.stake).to.equal(STAKE.toNumber()); + expect(bet.isOpen).to.equal(true); + + sendSvmTx( + svm, + [admin], + new web3.Transaction().add( + updatePriceFeedIx(admin.publicKey, feed, 110, oracleTimestampNs(svm)), + ), + "ephemeral", + "update price feed 110", + ); + setUnixTimestamp( + svm, + svm.getClock().unixTimestamp + + BigInt(BET_DURATION_SECONDS.toNumber() + 1), + ); + + const settleWinTx = await program.methods + .settle() + .accountsPartial({ + payer: admin.publicKey, + user: user.publicKey, + mint, + pool, + bet: userBet, + userTokenAccount: userAta, + poolTokenAccount: poolAta, + priceUpdate: feed, + tokenProgram: TOKEN_PROGRAM_ID, + }) + .transaction(); + sendSvmTx(svm, [admin], settleWinTx, "ephemeral", "settle win"); + + bet = readBet(svm, userBet, "ephemeral"); + expect(bet.isOpen).to.equal(false); + + const createSessionTx = await sessionTokenManager.program.methods + .createSessionV2( + true, + new BN(Number(svm.getClock().unixTimestamp) + 3600), + new BN(0.005 * web3.LAMPORTS_PER_SOL), + ) + .accounts({ + targetProgram: program.programId, + sessionSigner: sessionKeypair.publicKey, + feePayer: admin.publicKey, + authority: user.publicKey, + }) + .transaction(); + sendSvmTx( + svm, + [admin, user, sessionKeypair], + createSessionTx, + "base", + "create session", + ); + + sendSvmTx( + svm, + [admin, user], + new web3.Transaction().add( + createApproveInstruction( + userAta, + sessionKeypair.publicKey, + user.publicKey, + BigInt(STAKE.toString()), + ), + ), + "ephemeral", + "approve session delegate", + ); + + const placeSessionBetTx = await program.methods + .placeBet({ down: {} }, STAKE) + .accountsPartial({ + payer: sessionKeypair.publicKey, + user: user.publicKey, + mint, + pool, + bet: userBet, + userTokenAccount: userAta, + poolTokenAccount: poolAta, + priceUpdate: feed, + tokenProgram: TOKEN_PROGRAM_ID, + sessionToken: sessionTokenPda, + }) + .transaction(); + sendSvmTx( + svm, + [sessionKeypair], + placeSessionBetTx, + "ephemeral", + "place session bet", + ); + + sendSvmTx( + svm, + [admin], + new web3.Transaction().add( + updatePriceFeedIx(admin.publicKey, feed, 120, oracleTimestampNs(svm)), + ), + "ephemeral", + "update price feed 120", + ); + setUnixTimestamp( + svm, + svm.getClock().unixTimestamp + + BigInt(BET_DURATION_SECONDS.toNumber() + 1), + ); + + const settleLossTx = await program.methods + .settle() + .accountsPartial({ + payer: admin.publicKey, + user: user.publicKey, + mint, + pool, + bet: userBet, + userTokenAccount: userAta, + poolTokenAccount: poolAta, + priceUpdate: feed, + tokenProgram: TOKEN_PROGRAM_ID, + }) + .transaction(); + sendSvmTx(svm, [admin], settleLossTx, "ephemeral", "settle loss"); + + const erUserBalance = tokenAmount(svm, userAta, "ephemeral"); + const erPoolBalance = tokenAmount(svm, poolAta, "ephemeral"); + expect(erUserBalance).to.equal(290n); + expect(erPoolBalance).to.equal(10_010n); + + sendSvmTx( + svm, + [user], + new web3.Transaction().add(undelegateIx(user.publicKey, mint)), + "ephemeral", + "user undelegate", + ); + + const userWithdrawIxs = await withdrawSpl( + user.publicKey, + mint, + erUserBalance, + { + idempotent: false, + }, + ); + sendSvmTx( + svm, + [admin, user], + new web3.Transaction().add(...userWithdrawIxs), + "base", + "user withdraw", + ); + + expect(tokenAmount(svm, userAta, "base")).to.equal(990n); + expect(tokenAmount(svm, poolAta, "base")).to.equal(0n); + }); +}); diff --git a/binary-prediction/anchor/tests-magicsvm/fixtures/session-keys.so b/binary-prediction/anchor/tests-magicsvm/fixtures/session-keys.so new file mode 100644 index 0000000000000000000000000000000000000000..9580120b07651407bfff58055f8c74adc6c00ca5 GIT binary patch literal 522784 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�m!SKu3 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 Pubkey { + as_pubkey(&program_id_from_idl( + env!("CARGO_MANIFEST_DIR"), + "public_counter.json", + )) +} + +fn program_address() -> Address { + as_address(program_id()) +} + +fn signed(payer: &Keypair, instruction: Instruction, blockhash: Hash) -> Transaction { + sign_tx(&[payer], &[instruction], blockhash) +} + +fn ix( + data: impl anchor_lang::InstructionData, + accounts: impl anchor_lang::ToAccountMetas, +) -> Instruction { + client_ix(program_address(), data, accounts) +} + +fn initialize_tx(counter: Pubkey, payer: &Keypair, blockhash: Hash) -> Transaction { + signed( + payer, + ix( + instruction::Initialize {}, + accounts::Initialize { + counter, + user: as_pubkey(&payer.pubkey()), + system_program: system_program::ID, + }, + ), + blockhash, + ) +} + +fn increment_tx(counter: Pubkey, payer: &Keypair, blockhash: Hash) -> Transaction { + signed( + payer, + ix(instruction::Increment {}, accounts::Increment { counter }), + blockhash, + ) +} + +fn delegate_tx( + counter: Pubkey, + payer: &Keypair, + validator: Address, + blockhash: Hash, +) -> Transaction { + let mut instruction = ix( + instruction::Delegate {}, + accounts::DelegateInput { + payer: as_pubkey(&payer.pubkey()), + buffer_pda: delegate_buffer_pda_from_delegated_account_and_owner_program( + &counter, + &program_id(), + ), + delegation_record_pda: delegation_record_pda_from_delegated_account(&counter), + delegation_metadata_pda: delegation_metadata_pda_from_delegated_account(&counter), + pda: counter, + owner_program: program_id(), + delegation_program: DelegationProgram::id(), + system_program: system_program::ID, + }, + ); + instruction + .accounts + .push(AccountMeta::new_readonly(validator, false)); + signed(payer, instruction, blockhash) +} + +fn commit_style_tx( + counter: Pubkey, + payer: &Keypair, + data: impl InstructionData, + blockhash: Hash, +) -> Transaction { + signed( + payer, + ix( + data, + accounts::IncrementAndCommit { + payer: as_pubkey(&payer.pubkey()), + counter, + magic_program: MagicProgram::id(), + magic_context: MAGIC_CONTEXT_ID, + }, + ), + blockhash, + ) +} + +#[test] +fn public_counter_local_er_flow() { + let payer = Keypair::new(); + let mut svm = boot( + env!("CARGO_MANIFEST_DIR"), + "public_counter", + program_address(), + &payer, + 2 * LAMPORTS_PER_SOL, + ); + let (counter, _) = Pubkey::find_program_address(&[COUNTER_SEED], &program_id()); + let counter_address = as_address(counter); + let program_id = program_address(); + + let initialize = initialize_tx( + counter, + &payer, + svm.latest_blockhash_for(TransactionTarget::Base), + ); + send_tx(&mut svm, TransactionTarget::Base, initialize, "initialize"); + assert_eq!( + account_u64(&svm, TransactionTarget::Base, &counter_address, 8), + 0 + ); + + let increment_base = increment_tx( + counter, + &payer, + svm.latest_blockhash_for(TransactionTarget::Base), + ); + send_tx( + &mut svm, + TransactionTarget::Base, + increment_base, + "increment (base)", + ); + assert_eq!( + account_u64(&svm, TransactionTarget::Base, &counter_address, 8), + 1 + ); + + let validator = svm.validator_identity(); + let delegate = delegate_tx( + counter, + &payer, + validator, + svm.latest_blockhash_for(TransactionTarget::Base), + ); + send_tx(&mut svm, TransactionTarget::Base, delegate, "delegate"); + assert!(is_delegated(&svm, &counter_address)); + + let increment_er = increment_tx( + counter, + &payer, + svm.latest_blockhash_for(TransactionTarget::Ephemeral), + ); + send_tx( + &mut svm, + TransactionTarget::Ephemeral, + increment_er, + "increment (ER)", + ); + assert_eq!( + account_u64(&svm, TransactionTarget::Ephemeral, &counter_address, 8), + 2 + ); + + let commit = commit_style_tx( + counter, + &payer, + instruction::Commit {}, + svm.latest_blockhash_for(TransactionTarget::Ephemeral), + ); + send_tx(&mut svm, TransactionTarget::Ephemeral, commit, "commit"); + assert_eq!( + account_u64(&svm, TransactionTarget::Base, &counter_address, 8), + 2 + ); + assert!(is_delegated(&svm, &counter_address)); + + let increment_and_commit = commit_style_tx( + counter, + &payer, + instruction::IncrementAndCommit {}, + svm.latest_blockhash_for(TransactionTarget::Ephemeral), + ); + send_tx( + &mut svm, + TransactionTarget::Ephemeral, + increment_and_commit, + "incrementAndCommit", + ); + assert_eq!( + account_u64(&svm, TransactionTarget::Ephemeral, &counter_address, 8), + 3 + ); + assert_eq!( + account_u64(&svm, TransactionTarget::Base, &counter_address, 8), + 3 + ); + + let increment_and_undelegate = commit_style_tx( + counter, + &payer, + instruction::IncrementAndUndelegate {}, + svm.latest_blockhash_for(TransactionTarget::Ephemeral), + ); + send_tx( + &mut svm, + TransactionTarget::Ephemeral, + increment_and_undelegate, + "incrementAndUndelegate", + ); + assert_eq!( + account_u64(&svm, TransactionTarget::Base, &counter_address, 8), + 4 + ); + assert_eq!( + account_owner(&svm, TransactionTarget::Base, &counter_address), + program_id + ); +} diff --git a/counter/anchor/tests-magicsvm/public-counter.ts b/counter/anchor/tests-magicsvm/public-counter.ts new file mode 100644 index 00000000..cb2ded17 --- /dev/null +++ b/counter/anchor/tests-magicsvm/public-counter.ts @@ -0,0 +1,121 @@ +import { web3 } from "@coral-xyz/anchor"; +import { + accountOwner, + bootAnchorSvm, + isDelegated, + readU64le, + sendSvmTx, + validatorRemainingAccount, +} from "@magicblock-labs/test-utils"; +import assert from "assert"; +import { PublicCounter } from "../target/types/public_counter"; + +const COUNTER_SEED = "counter"; + +describe("public-counter magicsvm", () => { + const { svm, payer, program, validator } = bootAnchorSvm({ + fromDir: __dirname, + programName: "public_counter", + airdropLamports: BigInt(2 * web3.LAMPORTS_PER_SOL), + }); + const [counterPDA] = web3.PublicKey.findProgramAddressSync( + [Buffer.from(COUNTER_SEED)], + program.programId, + ); + + console.log("Program ID: ", program.programId.toString()); + console.log("Counter PDA: ", counterPDA.toString()); + console.log("Validator identity: ", validator.toString()); + + it("Initialize counter on Solana", async () => { + const tx = await program.methods + .initialize() + .accounts({ + user: payer.publicKey, + }) + .transaction(); + sendSvmTx(svm, [payer], tx, "base", "initialize"); + assert.equal(readU64le(svm, counterPDA, "base"), 0n); + }); + + it("Increase counter on Solana", async () => { + const tx = await program.methods + .increment() + .accounts({ + counter: counterPDA, + }) + .transaction(); + sendSvmTx(svm, [payer], tx, "base", "increment (base)"); + assert.equal(readU64le(svm, counterPDA, "base"), 1n); + }); + + it("Delegate counter to ER", async () => { + const tx = await program.methods + .delegate() + .accounts({ + payer: payer.publicKey, + pda: counterPDA, + }) + .remainingAccounts([validatorRemainingAccount(svm)]) + .transaction(); + sendSvmTx(svm, [payer], tx, "base", "delegate"); + assert.ok(isDelegated(svm, counterPDA)); + }); + + it("Increase counter on ER", async () => { + const tx = await program.methods + .increment() + .accounts({ + counter: counterPDA, + }) + .transaction(); + sendSvmTx(svm, [payer], tx, "ephemeral", "increment (ER)"); + assert.equal(readU64le(svm, counterPDA, "ephemeral"), 2n); + }); + + it("Commit counter state on ER to Solana", async () => { + const tx = await program.methods + .commit() + .accounts({ + payer: payer.publicKey, + }) + .transaction(); + sendSvmTx(svm, [payer], tx, "ephemeral", "commit"); + const committed = svm.getAccountFor(counterPDA, { target: "base" }); + assert.ok(committed.exists, "counter missing on base after commit"); + console.log( + "base account after commit:", + committed.programAddress.toString(), + Buffer.from(committed.data).readBigUInt64LE(8).toString(), + ); + assert.equal(readU64le(svm, counterPDA, "base"), 2n); + assert.ok(isDelegated(svm, counterPDA)); + }); + + it("Increase counter on ER and commit", async () => { + const tx = await program.methods + .incrementAndCommit() + .accounts({ + payer: payer.publicKey, + }) + .transaction(); + sendSvmTx(svm, [payer], tx, "ephemeral", "incrementAndCommit"); + assert.equal(readU64le(svm, counterPDA, "ephemeral"), 3n); + assert.equal(readU64le(svm, counterPDA, "base"), 3n); + }); + + it("Increment and undelegate counter on ER to Solana", async () => { + const tx = await program.methods + .incrementAndUndelegate() + .accounts({ + payer: payer.publicKey, + }) + .transaction(); + sendSvmTx(svm, [payer], tx, "ephemeral", "incrementAndUndelegate"); + assert.equal(readU64le(svm, counterPDA, "base"), 4n); + assert.equal( + accountOwner(svm, counterPDA, "base"), + program.programId.toString(), + ); + }); +}); diff --git a/counter/anchor/tsconfig.json b/counter/anchor/tsconfig.json index cd5d2e3d..d93d6f9e 100644 --- a/counter/anchor/tsconfig.json +++ b/counter/anchor/tsconfig.json @@ -2,9 +2,10 @@ "compilerOptions": { "types": ["mocha", "chai"], "typeRoots": ["./node_modules/@types"], - "lib": ["es2015"], + "lib": ["es2020"], "module": "commonjs", - "target": "es6", - "esModuleInterop": true + "target": "es2020", + "esModuleInterop": true, + "skipLibCheck": true } } diff --git a/counter/anchor/yarn.lock b/counter/anchor/yarn.lock index 447490e2..56acb82f 100644 --- a/counter/anchor/yarn.lock +++ b/counter/anchor/yarn.lock @@ -90,6 +90,54 @@ tweetnacl "^1.0.3" typescript "^5.3.0" +"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" + integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== + +"@magicblock-labs/magicsvm-darwin-x64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" + integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== + +"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" + integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== + +"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" + integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== + +"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" + integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== + +"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" + integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== + +"@magicblock-labs/magicsvm@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" + integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== + dependencies: + "@solana/web3.js" "3.0.0-rc.3" + optionalDependencies: + "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" + "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" + +"@magicblock-labs/test-utils@link:../../test-utils/ts": + version "0.0.0" + uid "" + "@noble/curves@^1.4.2": version "1.9.7" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" @@ -140,6 +188,61 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== +"@solana-program/address-lookup-table@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" + integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== + +"@solana-program/compute-budget@^0.18.0": + version "0.18.1" + resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" + integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== + +"@solana-program/loader-v3@^0.6.0": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" + integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== + +"@solana-program/stake@^0.9.0": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" + integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== + +"@solana-program/system@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" + integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== + +"@solana/accounts@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" + integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/addresses@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" + integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" + integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/buffer-layout@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" @@ -154,6 +257,30 @@ dependencies: "@solana/errors" "2.3.0" +"@solana/codecs-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" + integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== + dependencies: + "@solana/errors" "8.3.0" + +"@solana/codecs-data-structures@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" + integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/codecs-numbers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" + integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/codecs-numbers@^2.1.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" @@ -162,6 +289,27 @@ "@solana/codecs-core" "2.3.0" "@solana/errors" "2.3.0" +"@solana/codecs-strings@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" + integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/codecs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" + integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/options" "8.3.0" + "@solana/errors@2.3.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.3.0.tgz#4ac9380343dbeffb9dffbcb77c28d0e457c5fa31" @@ -170,6 +318,429 @@ chalk "^5.4.1" commander "^14.0.0" +"@solana/errors@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" + integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== + dependencies: + chalk "5.6.2" + commander "15.0.0" + +"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" + integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== + +"@solana/fixed-points@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" + integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/functional@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" + integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== + +"@solana/instruction-plans@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" + integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/instructions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" + integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/keys@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" + integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/promises" "8.3.0" + +"@solana/kit@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" + integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/plugin-core" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/program-client-core" "8.3.0" + "@solana/programs" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/sysvars" "8.3.0" + "@solana/transaction-confirmation" "8.3.0" + "@solana/transaction-introspection" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/nominal-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" + integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== + +"@solana/offchain-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" + integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/options@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" + integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/plugin-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" + integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== + +"@solana/plugin-interfaces@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" + integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/program-client-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" + integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/signers" "8.3.0" + +"@solana/programs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" + integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/promises@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" + integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== + +"@solana/rpc-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" + integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/rpc-parsed-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" + integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== + +"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" + integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== + dependencies: + "@solana/errors" "8.3.0" + +"@solana/rpc-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" + integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-subscriptions-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" + integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/rpc-subscriptions-channel-websocket@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" + integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/subscribable" "8.3.0" + ws "^8.21.3" + +"@solana/rpc-subscriptions-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" + integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-subscriptions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" + integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions-api" "8.3.0" + "@solana/rpc-subscriptions-channel-websocket" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-transformers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" + integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/rpc-transport-http@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" + integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + undici-types "^8.10.2" + +"@solana/rpc-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" + integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/rpc@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" + integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-transport-http" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/signers@8.3.0", "@solana/signers@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" + integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/subscribable@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" + integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + +"@solana/sysvars@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" + integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/transaction-confirmation@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" + integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/transaction-introspection@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" + integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/transaction-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" + integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/transactions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" + integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + +"@solana/web3.js@3.0.0-rc.3": + version "3.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" + integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== + dependencies: + "@noble/curves" "^1.4.2" + "@noble/hashes" "^1.4.0" + "@solana-program/address-lookup-table" "^0.14.0" + "@solana-program/compute-budget" "^0.18.0" + "@solana-program/loader-v3" "^0.6.0" + "@solana-program/stake" "^0.9.0" + "@solana-program/system" "^0.14.0" + "@solana/assertions" "^8.2.0" + "@solana/fast-stable-stringify" "^8.2.0" + "@solana/kit" "^8.2.0" + "@solana/rpc-spec-types" "^8.2.0" + "@solana/signers" "^8.2.0" + "@solana/web3.js@^1.69.0", "@solana/web3.js@^1.98.0": version "1.98.4" resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" @@ -469,6 +1040,11 @@ chai@^5.2.0: loupe "^3.1.0" pathval "^2.0.0" +chalk@5.6.2, chalk@^5.4.1: + version "5.6.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" + integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== + chalk@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -477,11 +1053,6 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - check-error@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" @@ -515,6 +1086,11 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +commander@15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" + integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== + commander@^14.0.0: version "14.0.2" resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e" @@ -1158,6 +1734,11 @@ typescript@^5.3.0, typescript@^5.8.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== +undici-types@^8.10.2: + version "8.10.2" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" + integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== + undici-types@~7.16.0: version "7.16.0" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" @@ -1228,6 +1809,11 @@ ws@^7.5.10: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== +ws@^8.21.3: + version "8.21.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" + integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== + ws@^8.5.0: version "8.18.3" resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" diff --git a/counter/native-rust/package.json b/counter/native-rust/package.json index f96fe14e..a1d724e2 100644 --- a/counter/native-rust/package.json +++ b/counter/native-rust/package.json @@ -6,6 +6,7 @@ "dependencies": { "@magicblock-labs/ephemeral-rollups-kit": "0.14.3", "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3", + "@magicblock-labs/magicsvm": "0.2.0", "@solana-program/system": "^0.9.0", "@solana/buffer-layout": "^4.0.1", "@solana/kit": "^4.0.0", @@ -20,6 +21,8 @@ "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh rust-counter", "test": "npx vitest run ./tests/kit", "test:web3js": "npx vitest run ./tests/web3js", + "test:magicsvm": "npx vitest run ./tests-magicsvm/rust-counter.test.ts", + "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture", "build": "cargo build-sbf", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w" @@ -34,7 +37,8 @@ "ts-mocha": "^11.1.0", "ts-node": "^10.9.2", "typescript": "^5.8.3", - "vitest": "^2.1.8" + "vitest": "^2.1.8", + "@magicblock-labs/test-utils": "link:../../test-utils/ts" }, "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" } diff --git a/counter/native-rust/tests-magicsvm-rs/Cargo.lock b/counter/native-rust/tests-magicsvm-rs/Cargo.lock new file mode 100644 index 00000000..4dd2dedd --- /dev/null +++ b/counter/native-rust/tests-magicsvm-rs/Cargo.lock @@ -0,0 +1,6220 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common 0.1.7", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures 0.2.17", +] + +[[package]] +name = "aes-gcm-siv" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae0784134ba9375416d469ec31e7c5f9fa94405049cf08c5ce5b4698be673e0d" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "polyval", + "subtle", + "zeroize", +] + +[[package]] +name = "agave-feature-set" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e724c6d41535d61eb4cba970716f6cfcef8d3f4d15750488f77a7630faab680" +dependencies = [ + "ahash 0.8.12", + "solana-epoch-schedule 3.2.0", + "solana-hash 4.5.0", + "solana-keypair", + "solana-pubkey 4.2.0", + "solana-sha256-hasher 3.1.0", + "solana-svm-feature-set", +] + +[[package]] +name = "agave-reserved-account-keys" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa474270f9cd8d71089979f1ad8e31c2eccde8b32d1ca03f33fe1123104d562" +dependencies = [ + "agave-feature-set", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "agave-transaction-view" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11af131e96e1a0df153db2d673a28293d171da78056104ec8e0d396e2bdf305b" +dependencies = [ + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-packet 4.2.0", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-svm-transaction", + "solana-transaction 4.1.6", +] + +[[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", + "getrandom 0.3.4", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-bn254" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-std 0.5.0", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", + "itertools 0.13.0", + "num-bigint 0.4.8", + "num-integer", + "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 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.8", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm 0.5.0", + "ark-ff-macros 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "educe", + "itertools 0.13.0", + "num-bigint 0.4.8", + "num-traits", + "paste", + "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-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive 0.4.2", + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint 0.4.8", +] + +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-serialize-derive 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "num-bigint 0.4.8", +] + +[[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-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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.8", +] + +[[package]] +name = "ark-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" +dependencies = [ + "num-traits", + "rand 0.8.8", +] + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" + +[[package]] +name = "ascii" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[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.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" + +[[package]] +name = "bitvec" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddcec3d12c579d40898fe0a9a358a803c23e9c52ca3c425707f81c9436211837" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake3" +version = "1.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d9e454fc11f76977dc803893aff6304ed33d6a26efae8696573bea74baa27ae" +dependencies = [ + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "cpufeatures 0.3.1", + "digest 0.11.3", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "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-buffer" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "blst" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20659f9bbee16cbbd2f7393e40ab6309f5a98f76a2eb57a995ec508b72387fe" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "blstrs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a8a8ed6fefbeef4a8c7b460e4110e12c5e22a5b7cf32621aae6ad650c4dcf29" +dependencies = [ + "blst", + "byte-slice-cast", + "ff", + "group", + "pairing", + "rand_core 0.6.4", + "serde", + "subtle", +] + +[[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.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "553c5d846a6ba5150c65e3b1b8ec073bcf1abc20f9b7220de384a4443ea4e20a" +dependencies = [ + "borsh-derive 1.8.1", + "bytes", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831213f80d9423998dd696e2c5345aba6be7a0bd8cd19e31c5243e13df1cef89" +dependencies = [ + "borsh-derive-internal", + "borsh-schema-derive-internal", + "proc-macro-crate 0.1.5", + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12cdfe656708a01f89b451a7d36466e6fe6c414de0aa18fc54f864f6f9ca9f56" +dependencies = [ + "once_cell", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[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.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.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[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 = "byte-slice-cast" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" + +[[package]] +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bytemuck" +version = "1.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a1f896587b6f2c069c73d2f0913e2d590c3990285cd2f0b6aa02b786b4c679c" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" + +[[package]] +name = "cc" +version = "1.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3eb0f42d6c360dc3f8a821f6bf2fdea7f72bfd36b3076eb0e6d1e9e0752fff4" +dependencies = [ + "find-msvc-tools", + "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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" + +[[package]] +name = "cfg_eval" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45565fc9416b9896014f5732ac776f810ee53a66730c17e4020c3ec064a8f88f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common 0.1.7", + "inout", +] + +[[package]] +name = "cmov" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" + +[[package]] +name = "combine" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" +dependencies = [ + "ascii", + "byteorder", + "either", + "memchr", + "unreachable", +] + +[[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 = "const-crypto" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c06f1eb05f06cf2e380fdded278fbf056a38974299d77960555a311dcf91a52" +dependencies = [ + "keccak-const", + "sha2-const-stable", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[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 = "cpufeatures" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a7799fd6b852db0e61728dde9a204c423b44d689dbd432522543614b490e78" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "crypto-common" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "ct-codecs" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49fb0c6640b4507ebd99ff67677009e381ba5eee1d14df78de4a3d16eb123c39" + +[[package]] +name = "ctor" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1c888a2a4f677017373fb6c01e13e318dd9e78758445ed5eb985e355d3f8281" +dependencies = [ + "ctor-proc-macro", + "dtor", + "link-section", +] + +[[package]] +name = "ctor-proc-macro" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7ab264ea985f1bd27887d7b21ea2bb046728e05d11909ca138d700c494730db" + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "ctutils" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" +dependencies = [ + "cmov", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "rand_core 0.6.4", + "rustc_version", + "serde", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core 0.23.0", + "darling_macro 0.23.0", +] + +[[package]] +name = "darling" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed17f5901b6630b993ca003def43f2f8ef4014fc13b047b57aad617ff32bc2ec" +dependencies = [ + "darling_core 0.24.1", + "darling_macro 0.24.1", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.119", +] + +[[package]] +name = "darling_core" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6837e2cf7485aaae18f86181d2f0e9a7ed297a025e220aeabf63fdebd3a2ddff" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 3.0.5", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "darling_macro" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ac7135c3ef02b2f7833bbeb1be5ba7f966dcde8a87c6b87f65a778d71a02785" +dependencies = [ + "darling_core 0.24.1", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "dary_heap" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b1e3a325bc115f096c8b77bbf027a7c2592230e70be2d985be950d3d5e60ebe" + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid", + "zeroize", +] + +[[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", + "const-oid", + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "digest" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" +dependencies = [ + "block-buffer 0.12.1", + "crypto-common 0.2.2", + "ctutils", +] + +[[package]] +name = "dtor" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30e4690622ab6700ced40fc370a3f07b7d111f0154bb6fb08f73b4c8834f75b6" +dependencies = [ + "dtor-proc-macro", +] + +[[package]] +name = "dtor-proc-macro" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c98b077c7463d01d22dde8a24378ddf1ca7263dc687cffbed38819ea6c21131" + +[[package]] +name = "eager" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abe71d579d1812060163dff96056261deb5bf6729b100fa2e36a68b9649ba3d3" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand_core 0.6.4", + "serde", + "sha2 0.10.9", + "subtle", + "zeroize", +] + +[[package]] +name = "ed25519-dalek-bip32" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b49a684b133c4980d7ee783936af771516011c8cd15f429dbda77245e282f03" +dependencies = [ + "derivation-path", + "ed25519-dalek", + "hmac", + "sha2 0.10.9", +] + +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "either" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "enum-iterator" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4549325971814bda7a44061bf3fe7e487d447cba01e4220a4b454d630d7a016" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685adfa4d6f3d765a26bc5dbc936577de9abf756c1feeb3089b01dd395034842" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "enum-ordinalize" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89dd01549b09589510cf0647475075d12071456586d70f5c75c98ae2a5537677" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a65863d15a4ce2888bd2f0f543cc963d3879c3a022c8ee43f6141d479a3ac815" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "ephemeral-rollups-sdk" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "838564736408ada011e9986c819b26cf0195bb2dd238e10be258731979213d75" +dependencies = [ + "base64ct", + "bincode", + "bytemuck", + "ephemeral-rollups-sdk-attribute-action", + "ephemeral-rollups-sdk-attribute-commit", + "ephemeral-rollups-sdk-attribute-delegate", + "ephemeral-rollups-sdk-attribute-ephemeral", + "ephemeral-rollups-sdk-attribute-ephemeral-accounts", + "five8 0.2.1", + "getrandom 0.2.17", + "magicblock-delegation-program-api", + "magicblock-magic-program-api 0.10.1", + "num-derive", + "num-traits", + "solana-account 3.4.0", + "solana-account-info 2.3.0", + "solana-account-info 3.1.1", + "solana-address 2.6.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program 2.3.0", + "solana-program 3.0.0", + "solana-program-error 2.2.2", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "spl-associated-token-account-interface", + "thiserror 1.0.69", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-action" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a29f33b94edcdfcf1b9b7a61aa0ac00e8efdc66f89c8b4b573f7ea965a42c60a" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-commit" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da9ed3ea8b850013f6bf768e5f0f2e1f22f1861b46908764536795bf67bb5c67" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-delegate" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f0d8ab90b4ecc7ac802bbd2115681f9fd42bc5a9018be79ba7aff1fe971aa36" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ea166c57ee55b329be4eae730561fe02aad5620a35b4d89439d8d0c9e07c3a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral-accounts" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa3efae094f5c288746d479fd605b67bcd56d29ddcf1238046ac07eeec130c45" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "feature-probe" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" + +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "bitvec", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "filetime" +version = "0.2.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c287a33c7f0a620c38e641e7f60827713987b3c0f26e8ddc9462cc69cf75759" +dependencies = [ + "cfg-if", + "libc", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d" + +[[package]] +name = "five8" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75b8549488b4715defcb0d8a8a1c1c76a80661b5fa106b4ca0e7fce59d7d875" +dependencies = [ + "five8_core 0.1.2", +] + +[[package]] +name = "five8" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23f76610e969fa1784327ded240f1e28a3fd9520c9cec93b636fcf62dd37f772" +dependencies = [ + "five8_core 1.0.0", +] + +[[package]] +name = "five8_const" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26dec3da8bc3ef08f2c04f61eab298c3ab334523e55f076354d6d6f613799a7b" +dependencies = [ + "five8_core 0.1.2", +] + +[[package]] +name = "five8_const" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a0f1728185f277989ca573a402716ae0beaaea3f76a8ff87ef9dd8fb19436c5" +dependencies = [ + "five8_core 1.0.0", +] + +[[package]] +name = "five8_core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2551bf44bc5f776c15044b9b94153a00198be06743e262afaaa61f11ac7523a5" + +[[package]] +name = "five8_core" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "059c31d7d36c43fe39d89e55711858b4da8be7eb6dabac23c7289b1a19489406" + +[[package]] +name = "flate2" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb" +dependencies = [ + "zlib-rs", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures-core" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" + +[[package]] +name = "futures-task" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" + +[[package]] +name = "futures-util" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" +dependencies = [ + "futures-core", + "futures-task", + "pin-project-lite", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[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 = "glob" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand 0.8.8", + "rand_core 0.6.4", + "rand_xorshift", + "subtle", +] + +[[package]] +name = "hash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" +dependencies = [ + "byteorder", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284" + +[[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 = "http" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hybrid-array" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27f864f10dfb56725ce5ce5472bc52252c8f93a4ab86327122cebf62c5f59a17" +dependencies = [ + "typenum", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "indexmap" +version = "2.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", +] + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "generic-array", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "js-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2 0.10.9", + "signature", +] + +[[package]] +name = "keccak" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" +dependencies = [ + "cpufeatures 0.2.17", +] + +[[package]] +name = "keccak-const" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d8d8ce877200136358e0bbff3a77965875db3af755a11e1fa6b1b3e2df13ea" + +[[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.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" + +[[package]] +name = "libflate" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "561a8da1a50e1428d3c51321dafeca849df992a5bb67720c386131234caba82e" +dependencies = [ + "adler32", + "crc32fast", + "dary_heap", + "libflate_lz77", + "no_std_io2", +] + +[[package]] +name = "libflate_lz77" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7a10e427698aef6eef269482776debfef63384d30f13aad39a1a95e0e098fd" +dependencies = [ + "hashbrown 0.16.1", + "no_std_io2", + "rle-decode-fast", +] + +[[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", + "libsecp256k1-core 0.2.2", + "libsecp256k1-gen-ecmult 0.2.1", + "libsecp256k1-gen-genmult 0.2.1", + "rand 0.7.3", + "serde", + "sha2 0.9.9", +] + +[[package]] +name = "libsecp256k1" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" +dependencies = [ + "arrayref", + "base64 0.22.1", + "digest 0.9.0", + "libsecp256k1-core 0.3.0", + "libsecp256k1-gen-ecmult 0.3.0", + "libsecp256k1-gen-genmult 0.3.0", + "rand 0.8.8", + "serde", + "sha2 0.9.9", +] + +[[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-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" +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 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" +dependencies = [ + "libsecp256k1-core 0.3.0", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" +dependencies = [ + "libsecp256k1-core 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" +dependencies = [ + "libsecp256k1-core 0.3.0", +] + +[[package]] +name = "libsodium-rs" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b8cd48c80d6c6fa5a4612d242941067219555baea82b0b49c92ea9d8156b59c" +dependencies = [ + "ct-codecs", + "ctor", + "libc", + "libsodium-sys-stable", + "pkg-config", + "thiserror 1.0.69", + "zeroize", +] + +[[package]] +name = "libsodium-sys-stable" +version = "1.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b04bf6da2c98b727af37ab62cb505f4d751b975b034a9b9ad491d333b0564e" +dependencies = [ + "cc", + "libc", + "libflate", + "minisign-verify", + "pkg-config", + "tar", + "ureq", + "vcpkg", + "zip", +] + +[[package]] +name = "light-poseidon" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c9a85a9752c549ceb7578064b4ed891179d20acd85f27318573b64d2d7ee7ee" +dependencies = [ + "ark-bn254 0.4.0", + "ark-ff 0.4.2", + "num-bigint 0.4.8", + "thiserror 1.0.69", +] + +[[package]] +name = "light-poseidon" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47a1ccadd0bb5a32c196da536fd72c59183de24a055f6bf0513bf845fefab862" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ff 0.5.0", + "num-bigint 0.4.8", + "thiserror 1.0.69", +] + +[[package]] +name = "link-section" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52437d47b0358721ec869cc7374b2a21f7b2237af9b439c0391341a1fbfbf1b" + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[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.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" + +[[package]] +name = "magicblock-account" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b5671bd1525eeab67f240455dffff31a4f6d27b067a3531f2d47c7d5af0c6e" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "thiserror 2.0.20", +] + +[[package]] +name = "magicblock-delegation-program-api" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea16e41e04319201919afca98dd4241b18549f2db0c68f58e4bc531537b5dab" +dependencies = [ + "bincode", + "borsh 0.10.4", + "borsh 1.8.1", + "bytemuck", + "const-crypto", + "libsodium-rs", + "num_enum", + "pinocchio 0.10.2", + "pinocchio-log", + "pinocchio-pubkey", + "pinocchio-system", + "rkyv", + "serde", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-loader-v3-interface 6.1.1", + "solana-program 3.0.0", + "solana-pubkey 2.4.0", + "solana-sdk", + "solana-sdk-ids 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-system-interface 2.0.0", + "static_assertions", + "strum", + "thiserror 2.0.20", +] + +[[package]] +name = "magicblock-litesvm" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82cfc1c7f4348c300f58ddd5ae8613e9b1d08564a7956af43822de59cb76d039" +dependencies = [ + "agave-feature-set", + "agave-reserved-account-keys", + "ansi_term", + "indexmap", + "itertools 0.15.0", + "log", + "magicblock-account", + "solana-account 4.3.2", + "solana-address 2.6.1", + "solana-address-lookup-table-interface 3.1.0", + "solana-builtins", + "solana-clock 3.1.1", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-feature-gate-interface 4.0.0", + "solana-fee", + "solana-fee-calculator 3.2.2", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-instructions-sysvar 4.0.0", + "solana-keypair", + "solana-last-restart-slot 3.1.0", + "solana-loader-v3-interface 8.0.1", + "solana-loader-v4-interface 3.1.0", + "solana-message 4.4.1", + "solana-native-token 3.0.0", + "solana-nonce 3.2.1", + "solana-nonce-account", + "solana-precompile-error", + "solana-program-error 3.0.1", + "solana-program-runtime", + "solana-rent 4.3.0", + "solana-runtime-transaction", + "solana-sdk-ids 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-signature 3.4.1", + "solana-signer", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stake-history", + "solana-svm-callback", + "solana-svm-log-collector", + "solana-svm-timings", + "solana-svm-transaction", + "solana-syscalls", + "solana-system-interface 3.2.0", + "solana-system-program", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "magicblock-magic-program-api" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291f7a68f6cc622741a3fae513bd71640911abefd1fae2b2602b934515ed4b95" +dependencies = [ + "bincode", + "const-crypto", + "serde", + "solana-program 2.3.0", + "solana-signature 2.3.0", +] + +[[package]] +name = "magicblock-magic-program-api" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dc8fba0307c90b91b70c9ed06d4242d6c4159f331b2f05bf8f875c2a94e0e98" +dependencies = [ + "bincode", + "const-crypto", + "serde", + "solana-program 3.0.0", + "solana-signature 3.4.1", +] + +[[package]] +name = "magicsvm" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e3effa3b8d28f3e0a14d1b72afcf65c2bec2331882a19065ec4424cd5c7ee37" +dependencies = [ + "bincode", + "borsh 1.8.1", + "ephemeral-rollups-sdk", + "magicblock-account", + "magicblock-delegation-program-api", + "magicblock-litesvm", + "magicblock-magic-program-api 0.8.8", + "solana-account 4.3.2", + "solana-address 2.6.1", + "solana-clock 3.1.1", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-program-runtime", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-signer", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[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 = "minisign-verify" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22f9645cb765ea72b8111f36c522475d2daa0d22c957a9826437e97534bc4e9e" + +[[package]] +name = "no_std_io2" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418abd1b6d34fbf6cae440dc874771b0525a604428704c76e48b29a5e67b8003" +dependencies = [ + "memchr", +] + +[[package]] +name = "num" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" +dependencies = [ + "num-bigint 0.2.6", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +dependencies = [ + "autocfg", + "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.119", +] + +[[package]] +name = "num-integer" +version = "0.1.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92800bd69a1eac91786bcfe9da64a897eb72911b8dc3095decbd07429e8048b" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +dependencies = [ + "autocfg", + "num-bigint 0.2.6", + "num-integer", + "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_cpus" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group", +] + +[[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 = "pastey" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4" + +[[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 = "percentage" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd23b938276f14057220b707937bcb42fa76dda7560e57a2da30cb52d557937" +dependencies = [ + "num", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pinocchio" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8afe4f39c0e25cc471b35b89963312791a5162d45a86578cbeaad9e5e7d1b3b" + +[[package]] +name = "pinocchio" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06810dac15a4ef83d3dabdb4f2f22fb39c9adff669cd2781da4f716510a647c" +dependencies = [ + "solana-account-view", + "solana-address 2.6.1", + "solana-define-syscall 4.0.1", + "solana-instruction-view", + "solana-program-error 3.0.1", +] + +[[package]] +name = "pinocchio-log" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd11022408f312e6179ece321c1f7dc0d1b2aa7765fddd39b2a7378d65a899e8" +dependencies = [ + "pinocchio-log-macro", +] + +[[package]] +name = "pinocchio-log-macro" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69fb52edb3c5736b044cc462b0957b9767d0f574d138f4e2761438c498a4b467" +dependencies = [ + "quote", + "regex", + "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 0.1.4", + "pinocchio 0.9.3", + "sha2-const-stable", +] + +[[package]] +name = "pinocchio-system" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24044a0815753862b558e179e78f03f7344cb755de48617a09d7d23b50883b6c" +dependencies = [ + "pinocchio 0.10.2", + "solana-address 2.6.1", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "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.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[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.119", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +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 = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e058c7de0b26af77780c769414d6257830bb240f3c38477dbc2c16e5f54d6d4c" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", +] + +[[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_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", +] + +[[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_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] + +[[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_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + +[[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.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "rend" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "rkyv" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2297bf9c81a3f0dc96bc9521370b88f054168c29826a75e89c55ff196e7ed6a1" +dependencies = [ + "bitvec", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d7b42d4b8d06048d3ac8db0eb31bcb942cbeb709f0b5f2b2ebde398d3038f5" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rle-decode-fast" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" + +[[package]] +name = "rust-counter-magicsvm-tests" +version = "0.1.0" +dependencies = [ + "ephemeral-rollups-sdk", + "magicblock-delegation-program-api", + "magicsvm", + "serde_json", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-native-token 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-signer", + "solana-transaction 4.1.6", + "test-utils", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b74b56ffa8bb2830709a538c2cbcae9aa062db0d2a42563bfb09bdaae44020eb" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-big-array" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" +dependencies = [ + "serde", +] + +[[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.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "serde_json" +version = "1.0.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_with" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "935177bb8c0cd8ca1a4e6d1a2ac8988bea69cab4f9d3a31311e012ad27868ea4" +dependencies = [ + "serde_core", + "serde_with_macros", +] + +[[package]] +name = "serde_with_macros" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d607aa01a3cb0ad757d6fd216136910db3c97b102fe686585689615a02dbcdc" +dependencies = [ + "darling 0.24.1", + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[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 0.2.17", + "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 0.2.17", + "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.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77fd7028345d415a4034cf8777cd4f8ab1851274233b45f84e3d955502d93874" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "simd-adler32" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba467056f1b547ed52077911161fc86985becbc60e8e1857c8a144dab0def891" + +[[package]] +name = "solana-account" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f949fe4edaeaea78c844023bfc1c898e0b1f5a100f8a8d2d0f85d0a7b090258" +dependencies = [ + "solana-account-info 2.3.0", + "solana-clock 2.2.3", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-account" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efc0ed36decb689413b9da5d57f2be49eea5bebb3cf7897015167b0c4336e731" +dependencies = [ + "bincode", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 3.1.1", +] + +[[package]] +name = "solana-account" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26788ba0d7eb5b250edda3e1d393739bafd5daf94882f2261d14f5ab0d6a25e0" +dependencies = [ + "bincode", + "qualifier_attr", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 4.1.0", +] + +[[package]] +name = "solana-account-info" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8f5152a288ef1912300fc6efa6c2d1f9bb55d9398eb6c72326360b8063987da" +dependencies = [ + "bincode", + "serde", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-account-info" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9cf16495d9eb53e3d04e72366a33bb1c20c24e78c171d8b8f5978357b63ae95" +dependencies = [ + "bincode", + "serde_core", + "solana-address 2.6.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.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.6.1", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-address" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2ecac8e1b7f74c2baa9e774c42817e3e75b20787134b76cc4d45e8a604488f5" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-address" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c93e262f671bf402e1040e4a7e40b05d81da5956c7681948c975a0997517bb" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8 1.0.0", + "five8_const 1.0.0", + "rand 0.9.5", + "serde", + "serde_derive", + "sha2-const-stable", + "solana-atomic-u64 3.0.1", + "solana-define-syscall 5.2.0", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.1.0", + "wincode", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1673f67efe870b64a65cb39e6194be5b26527691ce5922909939961a6e6b395" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-slot-hashes 2.2.1", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115b4f773acc4f3f3cb986b0d335e9845c0368c82b0940410935bc11ae065578" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", +] + +[[package]] +name = "solana-atomic-u64" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52e52720efe60465b052b9e7445a01c17550666beec855cce66f44766697bc2" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "solana-atomic-u64" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "085db4906d89324cef2a30840d59eaecf3d4231c560ec7c9f6614a93c652f501" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "solana-big-mod-exp" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75db7f2bbac3e62cfd139065d15bcda9e2428883ba61fc8d27ccb251081e7567" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-big-mod-exp" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30c80fb6d791b3925d5ec4bf23a7c169ef5090c013059ec3ed7d0b2c04efa085" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "solana-define-syscall 3.0.0", +] + +[[package]] +name = "solana-bincode" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19a3787b8cf9c9fe3dd360800e8b70982b9e5a8af9e11c354b6665dd4a003adc" +dependencies = [ + "bincode", + "serde", + "solana-instruction 2.3.3", +] + +[[package]] +name = "solana-bincode" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "278a1a5bad62cd9da89ac8d4b7ec444e83caa8ae96aa656dfc27684b28d49a5d" +dependencies = [ + "bincode", + "serde_core", + "solana-instruction-error", +] + +[[package]] +name = "solana-blake3-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a0801e25a1b31a14494fc80882a036be0ffd290efc4c2d640bfcca120a4672" +dependencies = [ + "blake3", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-blake3-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7116e1d942a2432ca3f514625104757ab8a56233787e95144c93950029e31176" +dependencies = [ + "blake3", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-bls-signatures" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "654ea8d31bbb4b0b9c28f9c545edb32691de27d4e2fc0e252c1ff47da50c5f2a" +dependencies = [ + "base64 0.22.1", + "blst", + "blstrs", + "cfg_eval", + "ff", + "group", + "pairing", + "rand 0.8.8", + "serde", + "serde_json", + "serde_with", + "thiserror 2.0.20", + "wincode", + "zeroize", +] + +[[package]] +name = "solana-bls12-381-syscall" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94e8256fda0542709fd1320a96d81c3c66e10ac5f680cca9b991d7d3b0e3fe86" +dependencies = [ + "blst", + "blstrs", + "bytemuck", + "bytemuck_derive", + "pairing", +] + +[[package]] +name = "solana-bn254" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62ff13a8867fcc7b0f1114764e1bf6191b4551dcaf93729ddc676cd4ec6abc9f" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "bytemuck", + "solana-define-syscall 5.2.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-borsh" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718333bcd0a1a7aed6655aa66bef8d7fb047944922b2d3a18f49cbc13e73d004" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", +] + +[[package]] +name = "solana-borsh" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c04abbae16f57178a163125805637b8a076175bb5c0002fb04f4792bea901cf7" +dependencies = [ + "borsh 1.8.1", +] + +[[package]] +name = "solana-bpf-loader-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabcc3a5785886f026b438771bf6b221b0d4877f6089af79d432c7fe877a6cd4" +dependencies = [ + "bincode", + "qualifier_attr", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-clock 3.1.1", + "solana-instruction 3.4.1", + "solana-loader-v3-interface 7.0.0", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-type-overrides", + "solana-syscalls", + "solana-system-interface 3.2.0", + "solana-transaction-context", +] + +[[package]] +name = "solana-builtins" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ab49c6f8a77bff54e811e9674747fd435e218dcbe71120039a865515151998c" +dependencies = [ + "agave-feature-set", + "solana-bpf-loader-program", + "solana-compute-budget-program", + "solana-hash 4.5.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-program", + "solana-vote-program", + "solana-zk-elgamal-proof-program", + "solana-zk-token-proof-program", +] + +[[package]] +name = "solana-builtins-default-costs" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76792b1ecab1c5f127f16062926850b52c4bb51ac1a93d220635fb13221d3503" +dependencies = [ + "agave-feature-set", + "ahash 0.8.12", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-clock" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8584296123df8fe229b95e2ebfd37ae637fe9db9b7d4dd677ac5a78e80dbfce" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-clock" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0acdace90d96e2c9e70d681465b4fe888b6bcf27c354ae9774e9f8a3b72923d" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-compute-budget" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e200042fd149d565521f7b31e082c0db0e022e9860c7e013130f812984ae846f" +dependencies = [ + "solana-fee-structure", + "solana-program-runtime", +] + +[[package]] +name = "solana-compute-budget-instruction" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a651fc5d082fd88090a7336ea85599b1ffcf6503dbcff575ae1bb2fb1cec238" +dependencies = [ + "agave-feature-set", + "solana-borsh 3.0.2", + "solana-builtins-default-costs", + "solana-compute-budget", + "solana-compute-budget-interface", + "solana-instruction 3.4.1", + "solana-packet 4.2.0", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-svm-transaction", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-compute-budget-interface" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8292c436b269ad23cecc8b24f7da3ab07ca111661e25e00ce0e1d22771951ab9" +dependencies = [ + "borsh 1.8.1", + "solana-instruction 3.4.1", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-compute-budget-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e314aeb4a86507ba77fb2d6ce9f5836af6aeaaedd4c5314e310ca72f73afe367" +dependencies = [ + "solana-program-runtime", +] + +[[package]] +name = "solana-cpi" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dc71126edddc2ba014622fc32d0f5e2e78ec6c5a1e0eb511b85618c09e9ea11" +dependencies = [ + "solana-account-info 2.3.0", + "solana-define-syscall 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-stable-layout 2.2.1", +] + +[[package]] +name = "solana-cpi" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dea26709d867aada85d0d3617db0944215c8bb28d3745b912de7db13a23280c" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 4.0.1", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-stable-layout 3.0.1", +] + +[[package]] +name = "solana-curve25519" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14b4d2a4bf0d0b0a86c22111917e86e8bd39a7b31420fb2c7d73eb83761fc7af" +dependencies = [ + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "solana-define-syscall 5.2.0", + "subtle", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-decode-error" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c781686a18db2f942e70913f7ca15dc120ec38dcab42ff7557db2c70c625a35" +dependencies = [ + "num-traits", +] + +[[package]] +name = "solana-define-syscall" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ae3e2abcf541c8122eafe9a625d4d194b4023c20adde1e251f94e056bb1aee2" + +[[package]] +name = "solana-define-syscall" +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-define-syscall" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf8209ece2bd9f1450e672858ffc0e5c8c786ff6916d2a862b126dd0128f380f" + +[[package]] +name = "solana-derivation-path" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff71743072690fdbdfcdc37700ae1cb77485aaad49019473a81aee099b1e0b8c" +dependencies = [ + "derivation-path", + "qstring", + "uriparse", +] + +[[package]] +name = "solana-epoch-info" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e093c84f6ece620a6b10cd036574b0cd51944231ab32d81f80f76d54aba833e6" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-epoch-rewards" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b575d3dd323b9ea10bb6fe89bf6bf93e249b215ba8ed7f68f1a3633f384db7" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 2.3.0", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-rewards" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf7eb4986b0b1d6f562b21f75a836f1a6df6e00c275efcef50aab5c144dc59e" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-epoch-rewards-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee8beac9bff4db9225e57d532d169b0be5e447f1e6601a2f50f27a01bf5518f" +dependencies = [ + "siphasher", + "solana-address 2.6.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-epoch-schedule" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fce071fbddecc55d727b1d7ed16a629afe4f6e4c217bc8d00af3b785f6f67ed" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-schedule" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8116e6ffa6002237d5ab5edcbda17f9ba66b6742c45a89c9fb40a94dbacd4c1d" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-program-error 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-epoch-stake" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "027e6d0b9e7daac5b2ac7c3f9ca1b727861121d9ef05084cf435ff736051e7c2" +dependencies = [ + "solana-define-syscall 5.2.0", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-example-mocks" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84461d56cbb8bb8d539347151e0525b53910102e4bced875d49d5139708e39d3" +dependencies = [ + "serde", + "serde_derive", + "solana-address-lookup-table-interface 2.2.2", + "solana-clock 2.2.3", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-keccak-hasher 2.2.1", + "solana-message 2.4.0", + "solana-nonce 2.2.1", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-example-mocks" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978855d164845c1b0235d4b4d101cadc55373fffaf0b5b6cfa2194d25b2ed658" +dependencies = [ + "serde", + "serde_derive", + "solana-address-lookup-table-interface 3.1.0", + "solana-clock 3.1.1", + "solana-hash 3.1.0", + "solana-instruction 3.4.1", + "solana-keccak-hasher 3.1.0", + "solana-message 3.1.0", + "solana-nonce 3.2.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 2.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43f5c5382b449e8e4e3016fb05e418c53d57782d8b5c30aa372fc265654b956d" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 2.2.1", + "solana-account-info 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd7545e02f91da1d6996f32b18f7796aa01e0682f8f3a7434b82cd1a10448add" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-fee" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c32df41c2c93a567a1612a973faddeaca093276677c157ef9cb60a378289fc69" +dependencies = [ + "agave-feature-set", + "solana-fee-structure", + "solana-svm-transaction", +] + +[[package]] +name = "solana-fee-calculator" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89bc408da0fb3812bc3008189d148b4d3e08252c79ad810b245482a3f70cd8d" +dependencies = [ + "log", + "serde", + "serde_derive", +] + +[[package]] +name = "solana-fee-calculator" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef67f01cc6a0c72e99a08d0d484683f995de4c80e9568728fa77d1537f9b7e09" +dependencies = [ + "log", + "serde", + "serde_derive", + "wincode", +] + +[[package]] +name = "solana-fee-structure" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2abdb1223eea8ec64136f39cb1ffcf257e00f915c957c35c0dd9e3f4e700b0" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-get-sysvar" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef3bc859fc036ed490146793557386cbfae614ebba4adc704c37d94350824ed4" +dependencies = [ + "solana-address 2.6.1", + "solana-define-syscall 5.2.0", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-hard-forks" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb50b2df7a36a2af58ce24bb0229622ac845dcc196e8c23b3ea4a29dd6bee09" + +[[package]] +name = "solana-hash" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b96e9f0300fa287b545613f007dfe20043d7812bee255f418c1eb649c93b63" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "five8 0.2.1", + "js-sys", + "serde", + "serde_derive", + "solana-atomic-u64 2.2.1", + "solana-sanitize 2.2.1", + "wasm-bindgen", +] + +[[package]] +name = "solana-hash" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "337c246447142f660f778cf6cb582beba8e28deb05b3b24bfb9ffd7c562e5f41" +dependencies = [ + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-hash" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f4c847893a2ea50b4ae3ca723b124e07cd0544fecea3598f785168f9b78333f" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "five8 1.0.0", + "serde", + "serde_derive", + "solana-atomic-u64 3.0.1", + "solana-sanitize 3.0.1", + "wincode", +] + +[[package]] +name = "solana-hash-512" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce934b02bab639341f2fd62c3e7e3c39dcceb47f0196b7630ed1f82ecb704bd" + +[[package]] +name = "solana-inflation" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf186550ea7438e2708bd0c233f01fe9c3fa45b9b607ff993b650ce60af102e" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-instruction" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab5682934bd1f65f8d2c16f21cb532526fcc1a09f796e2cacdb091eee5774ad" +dependencies = [ + "bincode", + "borsh 1.8.1", + "getrandom 0.2.17", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "serde_json", + "solana-define-syscall 2.3.0", + "solana-pubkey 2.4.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-instruction" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3957ca1d31107efd9a6bb88b25c348ca5e3b4b6683e3d08adb86d3d17aa01f1" +dependencies = [ + "bincode", + "borsh 1.8.1", + "serde", + "serde_derive", + "solana-define-syscall 5.2.0", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "wincode", +] + +[[package]] +name = "solana-instruction-error" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b7d34343838343a3755b7dfb1e438d94c6db2263b519cfe3c2257af932b6e93" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-program-error 3.0.1", +] + +[[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.6.1", + "solana-define-syscall 4.0.1", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0e85a6fad5c2d0c4f5b91d34b8ca47118fc593af706e523cdbedf846a954f57" +dependencies = [ + "bitflags", + "solana-account-info 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serialize-utils 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e0732294560e88ecdb2bbc656e67383e9f88c78ec09469cef172f0d28cd1bcd" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-serialize-utils 3.1.2", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e38363a181313d607f7a118df2b401bb27b477a0104b09283cbf504f5f0f00cc" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-serialize-utils 3.1.2", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-keccak-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7aeb957fbd42a451b99235df4942d96db7ef678e8d5061ef34c9b34cae12f79" +dependencies = [ + "sha3", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-keccak-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed1c0d16d6fdeba12291a1f068cdf0d479d9bff1141bf44afd7aa9d485f65ef8" +dependencies = [ + "sha3", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-keypair" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "263d614c12aa267a3278703175fd6440552ca61bc960b5a02a4482720c53438b" +dependencies = [ + "ed25519-dalek", + "ed25519-dalek-bip32", + "five8 1.0.0", + "five8_core 1.0.0", + "rand 0.9.5", + "solana-address 2.6.1", + "solana-derivation-path", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-last-restart-slot" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a6360ac2fdc72e7463565cd256eedcf10d7ef0c28a1249d261ec168c1b55cdd" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-last-restart-slot" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22474b83d3c7c318e1c3a725784fc2d1d03b728e36369e58ce48769a61ed85e" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-loader-v2-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8ab08006dad78ae7cd30df8eea0539e207d08d91eaefb3e1d49a446e1c49654" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f7162a05b8b0773156b443bccd674ea78bb9aa406325b467ea78c06c99a63a2" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e0538d4dbc9022e01616f1c58f2db98ece739c5d5ed4a2ef8737a953e76a2d4" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68029ab11d9c891d4ce23ada75745e40f983c5674af366f447b672569634231b" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "362b468fbde4c20521b9ff5ef743bc0d9b410455a5a92a8b29fd46954e89345f" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", + "wincode", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "706a777242f1f39a83e2a96a2a6cb034cb41169c6ecbee2cf09cb873d9659e7e" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c948b33ff81fa89699911b207059e493defdba9647eaf18f23abdf3674e0fb" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-message" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1796aabce376ff74bf89b78d268fa5e683d7d7a96a0a4e4813ec34de49d5314b" +dependencies = [ + "bincode", + "blake3", + "lazy_static", + "serde", + "serde_derive", + "solana-bincode 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", + "solana-transaction-error 2.2.1", + "wasm-bindgen", +] + +[[package]] +name = "solana-message" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0448b1fd891c5f46491e5dc7d9986385ba3c852c340db2911dd29faa01d2b08d" +dependencies = [ + "bincode", + "blake3", + "lazy_static", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-message" +version = "4.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e29e655f222a3a64145fedceacdca3e696ba7aded1dbd5391aa09d5fbfba53c" +dependencies = [ + "blake3", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-msg" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36a1a14399afaabc2781a1db09cb14ee4cc4ee5c7a5a3cfcc601811379a8092" +dependencies = [ + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-msg" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726b7cbbc6be6f1c6f29146ac824343b9415133eee8cce156452ad1db93f8008" +dependencies = [ + "solana-define-syscall 5.2.0", +] + +[[package]] +name = "solana-native-token" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61515b880c36974053dd499c0510066783f0cc6ac17def0c7ef2a244874cf4a9" + +[[package]] +name = "solana-native-token" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae8dd4c280dca9d046139eb5b7a5ac9ad10403fbd64964c7d7571214950d758f" + +[[package]] +name = "solana-nonce" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703e22eb185537e06204a5bd9d509b948f0066f2d1d814a6f475dafb3ddf1325" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-pubkey 2.4.0", + "solana-sha256-hasher 2.3.0", +] + +[[package]] +name = "solana-nonce" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4172d5b33a0a38fcdb2af8f84406570dd51567267da96c28ad0f31fc11621c0" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator 3.2.2", + "solana-hash 4.5.0", + "solana-pubkey 4.2.0", + "solana-sha256-hasher 3.1.0", + "wincode", +] + +[[package]] +name = "solana-nonce-account" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b81bf7e2aa8c443724051507c1007d0b6d9c34b70925d3232dc78f5ca485209e" +dependencies = [ + "solana-account 4.3.2", + "solana-hash 4.5.0", + "solana-nonce 3.2.1", + "solana-sdk-ids 3.1.0", + "wincode", +] + +[[package]] +name = "solana-offchain-message" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e2a1141a673f72a05cf406b99e4b2b8a457792b7c01afa07b3f00d4e2de393" +dependencies = [ + "num_enum", + "solana-hash 3.1.0", + "solana-packet 3.0.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.1.0", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-packet" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edf2f25743c95229ac0fdc32f8f5893ef738dbf332c669e9861d33ddb0f469d" +dependencies = [ + "bitflags", +] + +[[package]] +name = "solana-packet" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a2a582d7863548f047f49aa3745c076cfa9e1364baa080ef0c1210f0e4ebda" +dependencies = [ + "bitflags", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-poseidon" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "737b8ab25bf4cc8e618f80f1fe40709b2ace708bc764a36b8a4c81eea8c07034" +dependencies = [ + "ark-bn254 0.4.0", + "ark-bn254 0.5.0", + "light-poseidon 0.2.0", + "light-poseidon 0.4.0", + "solana-define-syscall 4.0.1", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-precompile-error" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cafcd950de74c6c39d55dc8ca108bbb007799842ab370ef26cf45a34453c31e1" +dependencies = [ + "num-traits", +] + +[[package]] +name = "solana-presigner" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f704eaf825be3180832445b9e4983b875340696e8e7239bf2d535b0f86c14a2" +dependencies = [ + "solana-pubkey 3.0.0", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-program" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98eca145bd3545e2fbb07166e895370576e47a00a7d824e325390d33bf467210" +dependencies = [ + "bincode", + "blake3", + "borsh 0.10.4", + "borsh 1.8.1", + "bs58", + "bytemuck", + "console_error_panic_hook", + "console_log", + "getrandom 0.2.17", + "lazy_static", + "log", + "memoffset", + "num-bigint 0.4.8", + "num-derive", + "num-traits", + "rand 0.8.8", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 2.3.0", + "solana-address-lookup-table-interface 2.2.2", + "solana-atomic-u64 2.2.1", + "solana-big-mod-exp 2.2.1", + "solana-bincode 2.2.1", + "solana-blake3-hasher 2.2.1", + "solana-borsh 2.2.1", + "solana-clock 2.2.3", + "solana-cpi 2.2.1", + "solana-decode-error", + "solana-define-syscall 2.3.0", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", + "solana-example-mocks 2.2.1", + "solana-feature-gate-interface 2.2.2", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-instructions-sysvar 2.2.2", + "solana-keccak-hasher 2.2.1", + "solana-last-restart-slot 2.2.1", + "solana-loader-v2-interface", + "solana-loader-v3-interface 5.0.0", + "solana-loader-v4-interface 2.2.1", + "solana-message 2.4.0", + "solana-msg 2.2.1", + "solana-native-token 2.3.0", + "solana-nonce 2.2.1", + "solana-program-entrypoint 2.3.0", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-program-option 2.2.1", + "solana-program-pack 2.2.1", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-secp256k1-recover 2.2.1", + "solana-serde-varint 2.2.2", + "solana-serialize-utils 2.2.1", + "solana-sha256-hasher 2.3.0", + "solana-short-vec 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stable-layout 2.2.1", + "solana-stake-interface 1.2.1", + "solana-system-interface 1.0.0", + "solana-sysvar 2.3.0", + "solana-sysvar-id 2.2.1", + "solana-vote-interface 2.2.6", + "thiserror 2.0.20", + "wasm-bindgen", +] + +[[package]] +name = "solana-program" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91b12305dd81045d705f427acd0435a2e46444b65367d7179d7bdcfc3bc5f5eb" +dependencies = [ + "memoffset", + "solana-account-info 3.1.1", + "solana-big-mod-exp 3.0.0", + "solana-blake3-hasher 3.1.0", + "solana-borsh 3.0.2", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-define-syscall 3.0.0", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-epoch-stake", + "solana-example-mocks 3.0.0", + "solana-fee-calculator 3.2.2", + "solana-hash 3.1.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-instructions-sysvar 3.0.1", + "solana-keccak-hasher 3.1.0", + "solana-last-restart-slot 3.1.0", + "solana-msg 3.1.0", + "solana-native-token 3.0.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.3.0", + "solana-serde-varint 3.0.1", + "solana-serialize-utils 3.1.2", + "solana-sha256-hasher 3.1.0", + "solana-short-vec 3.2.2", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stable-layout 3.0.1", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-program-entrypoint" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32ce041b1a0ed275290a5008ee1a4a6c48f5054c8a3d78d313c08958a06aedbd" +dependencies = [ + "solana-account-info 2.3.0", + "solana-msg 2.2.1", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-program-entrypoint" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c9b0a1ff494e05f503a08b3d51150b73aa639544631e510279d6375f290997" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 4.0.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-program-error" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ee2e0217d642e2ea4bee237f37bd61bb02aec60da3647c48ff88f6556ade775" +dependencies = [ + "borsh 1.8.1", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-msg 2.2.1", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-program-error" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f04fa578707b3612b095f0c8e19b66a1233f7c42ca8082fcb3b745afcc0add6" +dependencies = [ + "borsh 1.8.1", + "serde", + "serde_derive", +] + +[[package]] +name = "solana-program-memory" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a5426090c6f3fd6cfdc10685322fede9ca8e5af43cd6a59e98bfe4e91671712" +dependencies = [ + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-program-memory" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4068648649653c2c50546e9a7fb761791b5ab0cda054c771bb5808d3a4b9eb52" +dependencies = [ + "solana-define-syscall 4.0.1", +] + +[[package]] +name = "solana-program-option" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc677a2e9bc616eda6dbdab834d463372b92848b2bfe4a1ed4e4b4adba3397d0" + +[[package]] +name = "solana-program-option" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a88006a9b8594088cec9027ab77caaaa258a2aaa2083d3f086c44b42e50aeab" + +[[package]] +name = "solana-program-pack" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "319f0ef15e6e12dc37c597faccb7d62525a509fec5f6975ecb9419efddeb277b" +dependencies = [ + "solana-program-error 2.2.2", +] + +[[package]] +name = "solana-program-pack" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7701cb15b90667ae1c89ef4ac35a59c61e66ce58ddee13d729472af7f41d59" +dependencies = [ + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-program-runtime" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2b7281bd4a6072c7e11b611f771f4e61be1d45ea0d2aecfbb77d02d1b5877d4" +dependencies = [ + "base64 0.22.1", + "bincode", + "cfg-if", + "itertools 0.14.0", + "log", + "percentage", + "rand 0.9.5", + "serde", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-loader-v3-interface 7.0.0", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", + "solana-stable-layout 3.0.1", + "solana-stake-interface 4.3.0", + "solana-svm-callback", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-timings", + "solana-svm-transaction", + "solana-svm-type-overrides", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction-context", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "solana-pubkey" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b62adb9c3261a052ca1f999398c388f1daf558a1b492f60a6d9e64857db4ff1" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8 0.2.1", + "five8_const 0.1.4", + "getrandom 0.2.17", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-atomic-u64 2.2.1", + "solana-decode-error", + "solana-define-syscall 2.3.0", + "solana-sanitize 2.2.1", + "solana-sha256-hasher 2.3.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-pubkey" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8909d399deb0851aa524420beeb5646b115fd253ef446e35fe4504c904da3941" +dependencies = [ + "rand 0.8.8", + "solana-address 1.1.0", +] + +[[package]] +name = "solana-pubkey" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7db719574990de7e8b0f55a8593ac92a5ccb42c8ce67b3e4bf05b139d5d9ee71" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-rent" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1aea8fdea9de98ca6e8c2da5827707fb3842833521b528a713810ca685d2480" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-rent" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e860d5499a705369778647e97d760f7670adfb6fc8419dd3d568deccd46d5487" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-rent" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39f0d780bf8e8a1fe8b5b5fce1acad6b209485b86dec246e7523d5e4a8b7c7fc" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-runtime-transaction" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60cf942dcefc0f4d600fed1f4d220ff27abaa04def1fefa37e0e0c2a96e4179" +dependencies = [ + "agave-feature-set", + "agave-transaction-view", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-svm-transaction", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-sanitize" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61f1bc1357b8188d9c4a3af3fc55276e56987265eb7ad073ae6f8180ee54cecf" + +[[package]] +name = "solana-sanitize" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf09694a0fc14e5ffb18f9b7b7c0f15ecb6eac5b5610bf76a1853459d19daf9" + +[[package]] +name = "solana-sbpf" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d777d7a89267dd133e985113c7e7f820fb7cfd9123a4a350cf8b39ebae1920bc" +dependencies = [ + "byteorder", + "combine", + "hash32", + "libc", + "log", + "rand 0.8.8", + "rustc-demangle", + "thiserror 2.0.20", + "winapi", +] + +[[package]] +name = "solana-sdk" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f03df7969f5e723ad31b6c9eadccc209037ac4caa34d8dc259316b05c11e82b" +dependencies = [ + "bincode", + "bs58", + "serde", + "solana-account 3.4.0", + "solana-epoch-info", + "solana-epoch-rewards-hasher", + "solana-fee-structure", + "solana-inflation", + "solana-keypair", + "solana-message 3.1.0", + "solana-offchain-message", + "solana-presigner", + "solana-program 3.0.0", + "solana-program-memory 3.1.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-serde", + "solana-serde-varint 3.0.1", + "solana-short-vec 3.2.2", + "solana-shred-version", + "solana-signature 3.4.1", + "solana-signer", + "solana-time-utils", + "solana-transaction 3.1.0", + "solana-transaction-error 3.3.2", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-sdk-ids" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5d8b9cc68d5c88b062a33e23a6466722467dde0035152d8fb1afbcdf350a5f" +dependencies = [ + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-sdk-ids" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "def234c1956ff616d46c9dd953f251fa7096ddbaa6d52b165218de97882b7280" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-sdk-macro" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86280da8b99d03560f6ab5aca9de2e38805681df34e0bb8f238e69b29433b9df" +dependencies = [ + "bs58", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "solana-sdk-macro" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8765316242300c48242d84a41614cb3388229ec353ba464f6fe62a733e41806f" +dependencies = [ + "bs58", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baa3120b6cdaa270f39444f5093a90a7b03d296d362878f7a6991d6de3bbe496" +dependencies = [ + "libsecp256k1 0.6.0", + "solana-define-syscall 2.3.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce0d2e8d53946f04e789476d6c407e4997b7fb412483df5fc10c075c65cb2edf" +dependencies = [ + "k256", + "solana-define-syscall 5.2.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-seed-derivable" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7bdb72758e3bec33ed0e2658a920f1f35dfb9ed576b951d20d63cb61ecd95c" +dependencies = [ + "solana-derivation-path", +] + +[[package]] +name = "solana-seed-phrase" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc905b200a95f2ea9146e43f2a7181e3aeb55de6bc12afb36462d00a3c7310de" +dependencies = [ + "hmac", + "pbkdf2", + "sha2 0.10.9", +] + +[[package]] +name = "solana-serde" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709a93cab694c70f40b279d497639788fc2ccbcf9b4aa32273d4b361322c02dd" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serde-varint" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a7e155eba458ecfb0107b98236088c3764a09ddf0201ec29e52a0be40857113" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serde-varint" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "950e5b83e839dc0f92c66afc124bb8f40e89bc90f0579e8ec5499296d27f54e3" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serialize-utils" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "817a284b63197d2b27afdba829c5ab34231da4a9b4e763466a003c40ca4f535e" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-serialize-utils" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "761357b0853c9623bf12c1d2314b3d6160a85b087b84c45224fb85766d22616b" +dependencies = [ + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sanitize 3.0.1", +] + +[[package]] +name = "solana-sha256-hasher" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa3feb32c28765f6aa1ce8f3feac30936f16c5c3f7eb73d63a5b8f6f8ecdc44" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", +] + +[[package]] +name = "solana-sha256-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db7dc3011ea4c0334aaaa7e7128cb390ecf546b28d412e9bf2064680f57f588f" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-sha512-hasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11e10e103ab5bd52af341e7bc2f4123a2f4e66bb7ba4e6ca40f1e00cd6314e02" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 5.2.0", + "solana-hash-512", +] + +[[package]] +name = "solana-short-vec" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c54c66f19b9766a56fa0057d060de8378676cb64987533fa088861858fc5a69" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-short-vec" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8250a4495aad49ad20556a607da53bdcb20de78da10b65afbf918b7f1de647" +dependencies = [ + "serde_core", + "wincode", +] + +[[package]] +name = "solana-shred-version" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6c79722e299d957958bf33695f7cd1ef6724ff55563c60fd9e3e24487cccde2" +dependencies = [ + "solana-hard-forks", + "solana-hash 4.5.0", + "solana-sha256-hasher 3.1.0", +] + +[[package]] +name = "solana-signature" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64c8ec8e657aecfc187522fc67495142c12f35e55ddeca8698edbb738b8dbd8c" +dependencies = [ + "five8 0.2.1", + "serde", + "serde-big-array", + "serde_derive", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-signature" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0364c7577c3c82a693ce28a1febc8d1b5d1b0a175fdc2114ae6186b69effe1e" +dependencies = [ + "ed25519-dalek", + "five8 1.0.0", + "rand 0.9.5", + "serde", + "serde-big-array", + "serde_derive", + "solana-sanitize 3.0.1", + "wincode", +] + +[[package]] +name = "solana-signer" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520bd6021163ee517f4bdc7ae03ded904f97e11320001ba0b3355f45eb14f558" +dependencies = [ + "solana-pubkey 4.2.0", + "solana-signature 3.4.1", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-slot-hashes" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c8691982114513763e88d04094c9caa0376b867a29577939011331134c301ce" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 2.3.0", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-hashes" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7ce2b4b8911bf2db3de7b6266e67bfc21a6a9f8c566fb096d9782ca2ad16ee" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-slot-history" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97ccc1b2067ca22754d5283afb2b0126d61eae734fc616d23871b0943b0d935e" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-history" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40427c04d3e808493cb5e3d1a97cef84d7c15cb6f89b15c5684d0d4027105600" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-stable-layout" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f14f7d02af8f2bc1b5efeeae71bc1c2b7f0f65cd75bcc7d8180f2c762a57f54" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-stable-layout" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9f6a291ba063a37780af29e7db14bdd3dc447584d8ba5b3fc4b88e2bbc982fa" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-stake-history" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c736a6aa0e53b9d264d90b06589fc0996f49f882f3e71842ed754fc57ffc1a43" +dependencies = [ + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-stake-interface" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5269e89fde216b4d7e1d1739cf5303f8398a1ff372a81232abbee80e554a838c" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", + "num-traits", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-cpi 2.2.1", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-system-interface 1.0.0", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-stake-interface" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252b4291eb25a5a356149ed4d4a940d5f655186210fa84b5d0d8d55c3dd42a81" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-svm-callback" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf863c5b86e90e51c18ed08cfd8e21f9cfa60122d60d6364cde7083bf6de837c" +dependencies = [ + "solana-account 4.3.2", + "solana-clock 3.1.1", + "solana-precompile-error", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-feature-set" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "580d385250ddc3826e5d082b221d9d1047bddcc63ee18313f14dcafb95fdcae5" + +[[package]] +name = "solana-svm-log-collector" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f97c2c829a06a1b3bdbad1f770891768c1f0005b322acd7c192ad92157fe525" +dependencies = [ + "log", +] + +[[package]] +name = "solana-svm-measure" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79ec1451e86552456f1e9a1cc7ffafea01ba3383d8246ba636a11cf286da9fc3" + +[[package]] +name = "solana-svm-timings" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33a2692a88fabf56275bb40c39596d6e550a43f6e56b77fa6f0468e0affd977" +dependencies = [ + "eager", + "enum-iterator", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-transaction" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736d2cec944c6f8f298a7bd8ada5eb318cca9ab859281b1300842fa0e9a25afa" +dependencies = [ + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-transaction 4.1.6", +] + +[[package]] +name = "solana-svm-type-overrides" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74a3ba41956ba930a335589eedf0784dfa4be0527ef236df8ad3996a26b5f19f" +dependencies = [ + "rand 0.9.5", +] + +[[package]] +name = "solana-syscalls" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d31c37dc2425afc13ddb2fc8365db8dbd02ac860a454c25b3897831036a64dd8" +dependencies = [ + "bincode", + "libsecp256k1 0.7.2", + "num-traits", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-blake3-hasher 3.1.0", + "solana-bls12-381-syscall", + "solana-bn254", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-curve25519", + "solana-hash 4.5.0", + "solana-hash-512", + "solana-instruction 3.4.1", + "solana-keccak-hasher 3.1.0", + "solana-poseidon", + "solana-program-entrypoint 3.1.1", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.3.0", + "solana-sha256-hasher 3.1.0", + "solana-sha512-hasher", + "solana-stable-layout 3.0.1", + "solana-stake-interface 4.3.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-type-overrides", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction-context", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "solana-system-interface" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94d7c18cb1a91c6be5f5a8ac9276a1d7c737e39a21beba9ea710ab4b9c63bc90" +dependencies = [ + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-system-interface" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e1790547bfc3061f1ee68ea9d8dc6c973c02a163697b24263a8e9f2e6d4afa2" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-instruction 3.4.1", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", +] + +[[package]] +name = "solana-system-interface" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55b54965bf0b76fa8e2b35376583efddd4d916618cfe595bf48c7d7b55a9e628" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "wincode", +] + +[[package]] +name = "solana-system-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2610e0b091b920da610ad3e5ba850530702f5ac911b4e9dc5ab9a025a772138a" +dependencies = [ + "bincode", + "log", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-fee-calculator 3.2.2", + "solana-instruction 3.4.1", + "solana-nonce 3.2.1", + "solana-nonce-account", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-transaction-context", +] + +[[package]] +name = "solana-sysvar" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c3595f95069f3d90f275bb9bd235a1973c4d059028b0a7f81baca2703815db" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 2.3.0", + "solana-clock 2.2.3", + "solana-define-syscall 2.3.0", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-instructions-sysvar 2.2.2", + "solana-last-restart-slot 2.2.1", + "solana-program-entrypoint 2.3.0", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stake-interface 1.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-sysvar" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6690d3dd88f15c21edff68eb391ef8800df7a1f5cec84ee3e8d1abf05affdf74" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-define-syscall 4.0.1", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-calculator 3.2.2", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 4.2.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-sysvar" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ada7045bbfdd802af08fbc9c7e2b56ddabb20599d22e4c3840fcef5e7afb8324" +dependencies = [ + "base64 0.22.1", + "bincode", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-define-syscall 5.2.0", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-calculator 3.2.2", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stake-history", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-sysvar-id" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5762b273d3325b047cfda250787f8d796d781746860d5d0a746ee29f3e8812c1" +dependencies = [ + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-sysvar-id" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17358d1e9a13e5b9c2264d301102126cf11a47fd394cdf3dec174fe7bc96e1de" +dependencies = [ + "solana-address 2.6.1", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-time-utils" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ced92c60aa76ec4780a9d93f3bd64dfa916e1b998eacc6f1c110f3f444f02c9" + +[[package]] +name = "solana-transaction" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96697cff5075a028265324255efed226099f6d761ca67342b230d09f72cc48d2" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-message 3.1.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-signer", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-transaction" +version = "4.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8008008a75246adaf8b67411093a6d78db8232c74b00eff6041fd1da73679e7" +dependencies = [ + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-message 4.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-signer", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-transaction-context" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d61811155533aebcf806e694d3ed91be7fc168dc9bdcf25e8eb98b9234c7c3" +dependencies = [ + "bincode", + "qualifier_attr", + "serde", + "solana-account 4.3.2", + "solana-instruction 3.4.1", + "solana-instructions-sysvar 4.0.0", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-transaction-error" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222a9dc8fdb61c6088baab34fc3a8b8473a03a7a5fd404ed8dd502fa79b67cb1" +dependencies = [ + "solana-instruction 2.3.3", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-transaction-error" +version = "3.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "054e54d15164b0c34cb744600a1a0330e9fd97a12d979f2eb95904c807a07713" +dependencies = [ + "serde", + "serde_derive", + "solana-instruction-error", + "solana-sanitize 3.0.1", +] + +[[package]] +name = "solana-vote-interface" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b80d57478d6599d30acc31cc5ae7f93ec2361a06aefe8ea79bc81739a08af4c3" +dependencies = [ + "bincode", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-decode-error", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serde-varint 2.2.2", + "solana-serialize-utils 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-vote-interface" +version = "6.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13a7a204b455a53fe8c9a26a6885391a5896835e06694dbe0cf37c580f82f128" +dependencies = [ + "bincode", + "cfg_eval", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "serde_with", + "solana-clock 3.1.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-serde-varint 3.0.1", + "solana-serialize-utils 3.1.2", + "solana-short-vec 3.2.2", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-vote-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69c6faf8370369c45bc14eeca8dc0249450b940b57dcfcec0103403f9feaf88a" +dependencies = [ + "agave-feature-set", + "bincode", + "log", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-bls-signatures", + "solana-clock 3.1.1", + "solana-epoch-schedule 3.2.0", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", + "solana-system-interface 3.2.0", + "solana-transaction-context", + "solana-vote-interface 6.0.3", +] + +[[package]] +name = "solana-zk-elgamal-proof-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d55e2d0d7f884295989dae8b7e0b6d7a46d87ed2d917113007383261e5e93d" +dependencies = [ + "bytemuck", + "solana-instruction 3.4.1", + "solana-program-runtime", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-zk-sdk", +] + +[[package]] +name = "solana-zk-sdk" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09670ff59f60e6ddc2209c2e4353992a9b9f01d4e244f3e9d67bd5146e33d388" +dependencies = [ + "aes-gcm-siv", + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "itertools 0.14.0", + "merlin", + "num-derive", + "num-traits", + "rand 0.8.8", + "serde", + "serde_derive", + "serde_json", + "sha3", + "solana-address 2.6.1", + "solana-derivation-path", + "solana-instruction 3.4.1", + "solana-sdk-ids 3.1.0", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature 3.4.1", + "solana-signer", + "subtle", + "thiserror 2.0.20", + "zeroize", +] + +[[package]] +name = "solana-zk-token-proof-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc32fcd9ff8bb90837755deccefdb20518484626c0a9d0649a36e5fcb0fcf520" +dependencies = [ + "solana-program-runtime", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "spl-associated-token-account-interface" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6bbe0794e532ac08428d3abf5bf8ae75bd81dfddd785c388e326c00c92c6f5" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[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.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tar" +version = "0.4.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6221d9a6003c78398e3b239969f352578258df48c8eb051caadae0015bc840" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "test-utils" +version = "0.1.0" +dependencies = [ + "magicsvm", + "serde_json", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-signer", + "solana-transaction 4.1.6", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" +dependencies = [ + "thiserror-impl 2.0.20", +] + +[[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.119", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "tinyvec" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee" + +[[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 = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.25.15+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1340ea94a5856333492c9064b02c778b191dd2c853778d9609debdcdfea3a614" +dependencies = [ + "indexmap", + "toml_datetime", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" +dependencies = [ + "winnow", +] + +[[package]] +name = "typed-path" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" + +[[package]] +name = "typenum" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +dependencies = [ + "void", +] + +[[package]] +name = "ureq" +version = "3.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a7ac20be9b7726e0bbdbf974c059676d9acb1cd414961f570a4e8231cacd7fc" +dependencies = [ + "base64 0.23.1", + "log", + "percent-encoding", + "ureq-proto", + "utf8-zero", +] + +[[package]] +name = "ureq-proto" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0809a01d1ca5a51ca70db32bb2a19157582a526505ef3c19e3b343a59aa5ad" +dependencies = [ + "base64 0.23.1", + "http", + "httparse", + "log", +] + +[[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 = "utf8-zero" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e" + +[[package]] +name = "uuid" +version = "1.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ef6dac1e96601b4fb3acccccff2139741fcb757cb9a36089bf5be91cfb285ce" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[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.4+wasi-0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aecb87a33d3b0c5e3b7aa46336eaf486cffafbd281b195e4c8b80d50df2351bf" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a690d511e3c1a8b3a55e33511e3c2c00c78415cd23650f32b808627f5696b9ed" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "411e4887f0071ef2d2164a9d5fdf2d20efbef78fccd3a78b0c10a1dc5295e48a" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 3.0.5", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81941cd78d0c92026c33e5e01312845a4cb1e9af3407f9134b100dd03144103e" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "web-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fbddc4a036f00ec4f18c83445bd3115cb306a91da554919a099d9222fe4a7f8" +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-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "wincode" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66d967db7705dc29120bb6e8ce5b5a2e27734ed5976d1c904e95bd238d1c3c5a" +dependencies = [ + "bv", + "pastey", + "proc-macro2", + "quote", + "thiserror 2.0.20", + "wincode-derive", +] + +[[package]] +name = "wincode-derive" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15ab90b719560d0fda79c74550ad1c948d17b118765942838055ebaf34d67071" +dependencies = [ + "darling 0.23.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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 = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "xattr" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" +dependencies = [ + "libc", + "rustix", +] + +[[package]] +name = "zerocopy" +version = "0.8.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d35102a9f36d089ccae9e4c6802bc118be4487b80aaffc0ab4e0cf5ce92d2873" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c01f5ab44258da43cf276c74a2763db2ff3969c9c652c3f2de07041d0b2bc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zeroize" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zip" +version = "8.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b" +dependencies = [ + "crc32fast", + "flate2", + "indexmap", + "memchr", + "typed-path", + "zopfli", +] + +[[package]] +name = "zlib-rs" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b268e58e7c693d7c271f93ffc4ba3b380412554231c85bf61ca7af91042a4112" + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" + +[[package]] +name = "zopfli" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" +dependencies = [ + "bumpalo", + "crc32fast", + "log", + "simd-adler32", +] diff --git a/counter/native-rust/tests-magicsvm-rs/Cargo.toml b/counter/native-rust/tests-magicsvm-rs/Cargo.toml new file mode 100644 index 00000000..fb3686ef --- /dev/null +++ b/counter/native-rust/tests-magicsvm-rs/Cargo.toml @@ -0,0 +1,28 @@ +[package] +name = "rust-counter-magicsvm-tests" +version = "0.1.0" +edition = "2021" +publish = false +autolib = false + +[workspace] + +[[test]] +name = "magicsvm" +path = "tests/magicsvm.rs" + +[dev-dependencies] +ephemeral-rollups-sdk = { version = "0.14.4", features = ["modular-sdk"] } +magicblock-delegation-program-api = { version = "3.0.0", default-features = false } +magicsvm = "0.2.0" +test-utils = { path = "../../../test-utils/rust" } +serde_json = "1" +solana-address = "~2.6.1" +solana-hash = "~4.5.0" +solana-instruction = { version = "~3.4.0", features = ["bincode"] } +solana-keypair = "3.1.2" +solana-message = "4.2.4" +solana-native-token = "3.0.0" +solana-sdk-ids = "3.1.0" +solana-signer = "3.0.1" +solana-transaction = { version = "4.1.5", features = ["verify"] } diff --git a/counter/native-rust/tests-magicsvm-rs/tests/magicsvm.rs b/counter/native-rust/tests-magicsvm-rs/tests/magicsvm.rs new file mode 100644 index 00000000..54483d98 --- /dev/null +++ b/counter/native-rust/tests-magicsvm-rs/tests/magicsvm.rs @@ -0,0 +1,334 @@ +use { + dlp_api::consts::DELEGATION_PROGRAM_ID, + ephemeral_rollups_sdk::consts::{MAGIC_CONTEXT_ID, MAGIC_PROGRAM_ID}, + magicsvm::{MagicSVM, TransactionTarget}, + solana_address::Address, + solana_hash::Hash, + solana_instruction::{account_meta::AccountMeta, Instruction}, + solana_keypair::Keypair, + solana_message::Message, + solana_native_token::LAMPORTS_PER_SOL, + solana_signer::Signer, + solana_transaction::Transaction, + std::path::PathBuf, + test_utils::send_tx, +}; + +const COUNTER_SEED: &[u8] = b"counter"; + +fn deploy_dir() -> PathBuf { + PathBuf::from(env!("CARGO_MANIFEST_DIR")) + .parent() + .unwrap() + .join("target/deploy") +} + +fn program_id() -> Address { + let path = deploy_dir().join("rust_counter-keypair.json"); + let bytes: Vec = serde_json::from_slice(&std::fs::read(path).unwrap()).unwrap(); + Address::new_from_array(bytes[32..64].try_into().unwrap()) +} + +fn program_so_path() -> PathBuf { + deploy_dir().join("rust_counter.so") +} + +fn counter_pda(program_id: &Address, initializer: &Address) -> Address { + Address::find_program_address(&[COUNTER_SEED, initializer.as_ref()], program_id).0 +} + +fn delegate_buffer(program_id: &Address, counter: &Address) -> Address { + Address::find_program_address(&[b"buffer", counter.as_ref()], program_id).0 +} + +fn delegation_pda(seed: &[u8], delegated_account: &Address) -> Address { + Address::find_program_address(&[seed, delegated_account.as_ref()], &DELEGATION_PROGRAM_ID).0 +} + +fn initialize_ix_data() -> Vec { + vec![0, 0, 0, 0, 0, 0, 0, 0] +} + +fn increase_ix_data(increase_by: u64) -> Vec { + let mut data = vec![1, 0, 0, 0, 0, 0, 0, 0]; + data.extend_from_slice(&increase_by.to_le_bytes()); + data +} + +fn delegate_ix_data() -> Vec { + vec![2, 0, 0, 0, 0, 0, 0, 0] +} + +fn commit_and_undelegate_ix_data() -> Vec { + vec![3, 0, 0, 0, 0, 0, 0, 0] +} + +fn commit_ix_data() -> Vec { + vec![4, 0, 0, 0, 0, 0, 0, 0] +} + +fn increment_and_commit_ix_data(increase_by: u64) -> Vec { + let mut data = vec![5, 0, 0, 0, 0, 0, 0, 0]; + data.extend_from_slice(&increase_by.to_le_bytes()); + data +} + +fn increment_and_undelegate_ix_data(increase_by: u64) -> Vec { + let mut data = vec![6, 0, 0, 0, 0, 0, 0, 0]; + data.extend_from_slice(&increase_by.to_le_bytes()); + data +} + +fn send_ok(svm: &mut MagicSVM, target: TransactionTarget, tx: Transaction) { + send_tx(svm, target, tx, "transaction"); +} + +fn send_built( + svm: &mut MagicSVM, + target: TransactionTarget, + build: impl FnOnce(Hash) -> Transaction, +) { + let tx = build(svm.latest_blockhash_for(target)); + send_ok(svm, target, tx); +} + +fn signed_tx(payer: &Keypair, instruction: Instruction, blockhash: Hash) -> Transaction { + Transaction::new( + &[payer], + Message::new(&[instruction], Some(&payer.pubkey())), + blockhash, + ) +} + +fn initialize_tx( + program_id: Address, + payer: &Keypair, + counter: Address, + blockhash: Hash, +) -> Transaction { + signed_tx( + payer, + Instruction { + program_id, + accounts: vec![ + AccountMeta::new(payer.pubkey(), true), + AccountMeta::new(counter, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::id(), false), + ], + data: initialize_ix_data(), + }, + blockhash, + ) +} + +fn increase_tx( + program_id: Address, + payer: &Keypair, + counter: Address, + increase_by: u64, + blockhash: Hash, +) -> Transaction { + signed_tx( + payer, + Instruction { + program_id, + accounts: vec![ + AccountMeta::new(payer.pubkey(), true), + AccountMeta::new(counter, false), + ], + data: increase_ix_data(increase_by), + }, + blockhash, + ) +} + +fn delegate_tx( + program_id: Address, + payer: &Keypair, + counter: Address, + validator: Address, + blockhash: Hash, +) -> Transaction { + signed_tx( + payer, + Instruction { + program_id, + accounts: vec![ + AccountMeta::new(payer.pubkey(), true), + AccountMeta::new_readonly(solana_sdk_ids::system_program::id(), false), + AccountMeta::new(counter, false), + AccountMeta::new_readonly(program_id, false), + AccountMeta::new(delegate_buffer(&program_id, &counter), false), + AccountMeta::new(delegation_pda(b"delegation", &counter), false), + AccountMeta::new(delegation_pda(b"delegation-metadata", &counter), false), + AccountMeta::new_readonly(DELEGATION_PROGRAM_ID, false), + AccountMeta::new_readonly(validator, false), + ], + data: delegate_ix_data(), + }, + blockhash, + ) +} + +fn commit_style_tx( + program_id: Address, + payer: &Keypair, + counter: Address, + data: Vec, + blockhash: Hash, +) -> Transaction { + signed_tx( + payer, + Instruction { + program_id, + accounts: vec![ + AccountMeta::new(payer.pubkey(), true), + AccountMeta::new(counter, false), + AccountMeta::new_readonly(MAGIC_PROGRAM_ID, false), + AccountMeta::new(MAGIC_CONTEXT_ID, false), + ], + data, + }, + blockhash, + ) +} + +fn setup() -> (MagicSVM, Keypair, Address, Address) { + let payer = Keypair::new(); + let program_id = program_id(); + let mut svm = MagicSVM::new(); + svm.add_program_from_file(program_id, program_so_path()) + .unwrap(); + svm.airdrop(&payer.pubkey(), 2 * LAMPORTS_PER_SOL).unwrap(); + let counter = counter_pda(&program_id, &payer.pubkey()); + (svm, payer, program_id, counter) +} + +fn counter_count(svm: &MagicSVM, target: TransactionTarget, counter: &Address) -> u64 { + let data = svm + .get_account_for(target, counter) + .unwrap_or_else(|| panic!("counter {counter} missing on {target:?}")) + .data; + u64::from_le_bytes(data[..8].try_into().unwrap()) +} + +fn counter_owner(svm: &MagicSVM, target: TransactionTarget, counter: &Address) -> Address { + svm.get_account_for(target, counter) + .unwrap_or_else(|| panic!("counter {counter} missing on {target:?}")) + .owner +} + +#[test] +fn rust_counter_init_increment_delegate_er_commit_undelegate() { + let (mut svm, payer, program_id, counter) = setup(); + let validator = svm.validator_identity(); + + send_built(&mut svm, TransactionTarget::Base, |bh| { + initialize_tx(program_id, &payer, counter, bh) + }); + assert_eq!(counter_count(&svm, TransactionTarget::Base, &counter), 0); + + send_built(&mut svm, TransactionTarget::Base, |bh| { + increase_tx(program_id, &payer, counter, 1, bh) + }); + assert_eq!(counter_count(&svm, TransactionTarget::Base, &counter), 1); + + send_built(&mut svm, TransactionTarget::Base, |bh| { + delegate_tx(program_id, &payer, counter, validator, bh) + }); + assert_eq!( + counter_owner(&svm, TransactionTarget::Base, &counter), + DELEGATION_PROGRAM_ID + ); + assert_eq!( + counter_count(&svm, TransactionTarget::Ephemeral, &counter), + 1 + ); + + send_built(&mut svm, TransactionTarget::Ephemeral, |bh| { + increase_tx(program_id, &payer, counter, 1, bh) + }); + assert_eq!( + counter_count(&svm, TransactionTarget::Ephemeral, &counter), + 2 + ); + + send_built(&mut svm, TransactionTarget::Ephemeral, |bh| { + commit_style_tx(program_id, &payer, counter, commit_ix_data(), bh) + }); + assert_eq!(counter_count(&svm, TransactionTarget::Base, &counter), 2); + assert_eq!( + counter_owner(&svm, TransactionTarget::Base, &counter), + DELEGATION_PROGRAM_ID + ); + + send_built(&mut svm, TransactionTarget::Ephemeral, |bh| { + increase_tx(program_id, &payer, counter, 1, bh) + }); + assert_eq!( + counter_count(&svm, TransactionTarget::Ephemeral, &counter), + 3 + ); + + send_built(&mut svm, TransactionTarget::Ephemeral, |bh| { + commit_style_tx( + program_id, + &payer, + counter, + commit_and_undelegate_ix_data(), + bh, + ) + }); + assert_eq!(counter_count(&svm, TransactionTarget::Base, &counter), 3); + assert_eq!( + counter_owner(&svm, TransactionTarget::Base, &counter), + program_id + ); +} + +#[test] +fn rust_counter_increment_and_commit_then_undelegate() { + let (mut svm, payer, program_id, counter) = setup(); + let validator = svm.validator_identity(); + + send_built(&mut svm, TransactionTarget::Base, |bh| { + initialize_tx(program_id, &payer, counter, bh) + }); + send_built(&mut svm, TransactionTarget::Base, |bh| { + delegate_tx(program_id, &payer, counter, validator, bh) + }); + + send_built(&mut svm, TransactionTarget::Ephemeral, |bh| { + commit_style_tx( + program_id, + &payer, + counter, + increment_and_commit_ix_data(1), + bh, + ) + }); + assert_eq!( + counter_count(&svm, TransactionTarget::Ephemeral, &counter), + 1 + ); + assert_eq!(counter_count(&svm, TransactionTarget::Base, &counter), 1); + assert_eq!( + counter_owner(&svm, TransactionTarget::Base, &counter), + DELEGATION_PROGRAM_ID + ); + + send_built(&mut svm, TransactionTarget::Ephemeral, |bh| { + commit_style_tx( + program_id, + &payer, + counter, + increment_and_undelegate_ix_data(1), + bh, + ) + }); + assert_eq!(counter_count(&svm, TransactionTarget::Base, &counter), 2); + assert_eq!( + counter_owner(&svm, TransactionTarget::Base, &counter), + program_id + ); +} diff --git a/counter/native-rust/tests-magicsvm/rust-counter.test.ts b/counter/native-rust/tests-magicsvm/rust-counter.test.ts new file mode 100644 index 00000000..ad8b4fe2 --- /dev/null +++ b/counter/native-rust/tests-magicsvm/rust-counter.test.ts @@ -0,0 +1,401 @@ +import { + Keypair, + PublicKey, + SystemProgram, + Transaction, + TransactionInstruction, + LAMPORTS_PER_SOL, +} from "@solana/web3.js"; +import * as borsh from "borsh"; +import bs58 from "bs58"; +import { + CounterInstruction, + IncreaseCounterPayload, +} from "../tests/web3js/schema"; +import { + MagicSVM, + TransactionMetadata, + type TransactionTarget, +} from "@magicblock-labs/magicsvm"; +import { + DELEGATION_PROGRAM_ID, + MAGIC_CONTEXT_ID, + MAGIC_PROGRAM_ID, + accountOwner, + createSvm, + delegateBufferPdaFromDelegatedAccountAndOwnerProgram, + delegationMetadataPdaFromDelegatedAccount, + delegationRecordPdaFromDelegatedAccount, + isDelegated, + programIdFromKeypairFile, + readU64le, + sendSvmTx, +} from "@magicblock-labs/test-utils"; +import { describe, it, beforeAll, expect } from "vitest"; + +const PROGRAM_SO_PATH = "target/deploy/rust_counter.so"; +const PROGRAM_KEYPAIR_PATH = "target/deploy/rust_counter-keypair.json"; + +function readCounter( + svm: MagicSVM, + counterPda: PublicKey, + target: TransactionTarget, +): bigint { + return readU64le(svm, counterPda, target, 0); +} + +function signatureOf(meta: TransactionMetadata): string { + return bs58.encode(Buffer.from(meta.signature())); +} + +function signAndSend( + svm: MagicSVM, + tx: Transaction, + signers: Keypair[], + target: TransactionTarget, +): TransactionMetadata { + return sendSvmTx(svm, signers, tx, target); +} + +function initializeCounterIx( + programId: PublicKey, + user: PublicKey, + counterPda: PublicKey, +) { + return new TransactionInstruction({ + keys: [ + { pubkey: user, isSigner: true, isWritable: true }, + { pubkey: counterPda, isSigner: false, isWritable: true }, + { pubkey: SystemProgram.programId, isSigner: false, isWritable: false }, + ], + programId, + data: Buffer.from(CounterInstruction.InitializeCounter, "hex"), + }); +} + +function increaseCounterIx( + programId: PublicKey, + user: PublicKey, + counterPda: PublicKey, + increaseBy: number, +) { + return new TransactionInstruction({ + keys: [ + { pubkey: user, isSigner: true, isWritable: true }, + { pubkey: counterPda, isSigner: false, isWritable: true }, + ], + programId, + data: Buffer.concat([ + Buffer.from(CounterInstruction.IncreaseCounter, "hex"), + Buffer.from( + borsh.serialize( + IncreaseCounterPayload.schema, + new IncreaseCounterPayload(increaseBy), + ), + ), + ]), + }); +} + +function delegateCounterIx( + programId: PublicKey, + user: PublicKey, + counterPda: PublicKey, + validator: PublicKey, +) { + return new TransactionInstruction({ + keys: [ + { pubkey: user, isSigner: true, isWritable: true }, + { pubkey: SystemProgram.programId, isSigner: false, isWritable: false }, + { pubkey: counterPda, isSigner: false, isWritable: true }, + { pubkey: programId, isSigner: false, isWritable: false }, + { + pubkey: delegateBufferPdaFromDelegatedAccountAndOwnerProgram( + counterPda, + programId, + ), + isSigner: false, + isWritable: true, + }, + { + pubkey: delegationRecordPdaFromDelegatedAccount(counterPda), + isSigner: false, + isWritable: true, + }, + { + pubkey: delegationMetadataPdaFromDelegatedAccount(counterPda), + isSigner: false, + isWritable: true, + }, + { pubkey: DELEGATION_PROGRAM_ID, isSigner: false, isWritable: false }, + { pubkey: validator, isSigner: false, isWritable: false }, + ], + programId, + data: Buffer.from(CounterInstruction.Delegate, "hex"), + }); +} + +function commitStyleIx( + programId: PublicKey, + user: PublicKey, + counterPda: PublicKey, + discriminator: CounterInstruction, + increaseBy?: number, +) { + const data = + increaseBy === undefined + ? Buffer.from(discriminator, "hex") + : Buffer.concat([ + Buffer.from(discriminator, "hex"), + Buffer.from( + borsh.serialize( + IncreaseCounterPayload.schema, + new IncreaseCounterPayload(increaseBy), + ), + ), + ]); + return new TransactionInstruction({ + keys: [ + { pubkey: user, isSigner: true, isWritable: true }, + { pubkey: counterPda, isSigner: false, isWritable: true }, + { pubkey: MAGIC_PROGRAM_ID, isSigner: false, isWritable: false }, + { pubkey: MAGIC_CONTEXT_ID, isSigner: false, isWritable: true }, + ], + programId, + data, + }); +} + +function bootCounterSvm(programId: PublicKey, user: Keypair): MagicSVM { + return createSvm({ + programs: [{ id: programId, so: PROGRAM_SO_PATH }], + airdrops: [ + { + address: user.publicKey, + lamports: BigInt(2 * LAMPORTS_PER_SOL), + label: "airdrop", + }, + ], + }).svm; +} + +describe("basic-test", () => { + const PROGRAM_ID = new PublicKey( + programIdFromKeypairFile(PROGRAM_KEYPAIR_PATH), + ); + const userKeypair = Keypair.generate(); + const [counterPda] = PublicKey.findProgramAddressSync( + [Buffer.from("counter"), userKeypair.publicKey.toBuffer()], + PROGRAM_ID, + ); + let svm: MagicSVM; + let validatorPubkey: PublicKey; + + beforeAll(() => { + svm = bootCounterSvm(PROGRAM_ID, userKeypair); + validatorPubkey = new PublicKey(svm.validatorIdentity().toString()); + console.log("Program ID: ", PROGRAM_ID.toString()); + console.log("Counter PDA: ", counterPda.toString()); + console.log("Validator identity: ", validatorPubkey.toString()); + }); + + it("Initialize counter on Solana", () => { + const start = Date.now(); + const tx = new Transaction().add( + initializeCounterIx(PROGRAM_ID, userKeypair.publicKey, counterPda), + ); + const meta = signAndSend(svm, tx, [userKeypair], "base"); + const txHash = signatureOf(meta); + console.log( + `${Date.now() - start}ms (Base Layer) Initialize txHash: ${txHash}`, + ); + expect(txHash).toBeDefined(); + expect(readCounter(svm, counterPda, "base")).toBe(0n); + }); + + it("Increase counter on Solana", () => { + const start = Date.now(); + const tx = new Transaction().add( + increaseCounterIx(PROGRAM_ID, userKeypair.publicKey, counterPda, 1), + ); + const meta = signAndSend(svm, tx, [userKeypair], "base"); + const txHash = signatureOf(meta); + console.log( + `${Date.now() - start}ms (Base Layer) Increment txHash: ${txHash}`, + ); + expect(txHash).toBeDefined(); + expect(readCounter(svm, counterPda, "base")).toBe(1n); + }); + + it("Delegate counter to ER", () => { + const start = Date.now(); + const tx = new Transaction().add( + delegateCounterIx( + PROGRAM_ID, + userKeypair.publicKey, + counterPda, + validatorPubkey, + ), + ); + const meta = signAndSend(svm, tx, [userKeypair], "base"); + const txHash = signatureOf(meta); + console.log( + `${Date.now() - start}ms (Base Layer) Delegate txHash: ${txHash}`, + ); + expect(txHash).toBeDefined(); + expect(isDelegated(svm, counterPda)).toBe(true); + expect(readCounter(svm, counterPda, "ephemeral")).toBe(1n); + }); + + it("Increase counter on ER (1)", () => { + const start = Date.now(); + const tx = new Transaction().add( + increaseCounterIx(PROGRAM_ID, userKeypair.publicKey, counterPda, 1), + ); + const meta = signAndSend(svm, tx, [userKeypair], "ephemeral"); + const txHash = signatureOf(meta); + console.log(`${Date.now() - start}ms (ER) Increment txHash: ${txHash}`); + expect(txHash).toBeDefined(); + expect(readCounter(svm, counterPda, "ephemeral")).toBe(2n); + }); + + it("Commit counter state on ER to Solana", () => { + const start = Date.now(); + const tx = new Transaction().add( + commitStyleIx( + PROGRAM_ID, + userKeypair.publicKey, + counterPda, + CounterInstruction.Commit, + ), + ); + const meta = signAndSend(svm, tx, [userKeypair], "ephemeral"); + const txHash = signatureOf(meta); + console.log(`${Date.now() - start}ms (ER) Commit txHash: ${txHash}`); + expect(txHash).toBeDefined(); + expect(readCounter(svm, counterPda, "base")).toBe(2n); + expect(isDelegated(svm, counterPda)).toBe(true); + }); + + it("Increase counter on ER (2)", () => { + const start = Date.now(); + const tx = new Transaction().add( + increaseCounterIx(PROGRAM_ID, userKeypair.publicKey, counterPda, 1), + ); + const meta = signAndSend(svm, tx, [userKeypair], "ephemeral"); + const txHash = signatureOf(meta); + console.log(`${Date.now() - start}ms (ER) Increment txHash: ${txHash}`); + expect(txHash).toBeDefined(); + expect(readCounter(svm, counterPda, "ephemeral")).toBe(3n); + }); + + it("Commit and undelegate counter on ER to Solana", () => { + const start = Date.now(); + const tx = new Transaction().add( + commitStyleIx( + PROGRAM_ID, + userKeypair.publicKey, + counterPda, + CounterInstruction.CommitAndUndelegate, + ), + ); + const meta = signAndSend(svm, tx, [userKeypair], "ephemeral"); + const txHash = signatureOf(meta); + console.log(`${Date.now() - start}ms (ER) Undelegate txHash: ${txHash}`); + expect(txHash).toBeDefined(); + expect(readCounter(svm, counterPda, "base")).toBe(3n); + expect(accountOwner(svm, counterPda, "base")).toBe(PROGRAM_ID.toString()); + }); +}); + +describe("increment-and-commit-cpi", () => { + const PROGRAM_ID = new PublicKey( + programIdFromKeypairFile(PROGRAM_KEYPAIR_PATH), + ); + const userKeypair = Keypair.generate(); + const [counterPda] = PublicKey.findProgramAddressSync( + [Buffer.from("counter"), userKeypair.publicKey.toBuffer()], + PROGRAM_ID, + ); + let svm: MagicSVM; + let validatorPubkey: PublicKey; + + beforeAll(() => { + svm = bootCounterSvm(PROGRAM_ID, userKeypair); + validatorPubkey = new PublicKey(svm.validatorIdentity().toString()); + }); + + it("Initialize counter on Solana", () => { + const meta = signAndSend( + svm, + new Transaction().add( + initializeCounterIx(PROGRAM_ID, userKeypair.publicKey, counterPda), + ), + [userKeypair], + "base", + ); + expect(signatureOf(meta)).toBeDefined(); + expect(readCounter(svm, counterPda, "base")).toBe(0n); + }); + + it("Delegate counter to ER", () => { + const meta = signAndSend( + svm, + new Transaction().add( + delegateCounterIx( + PROGRAM_ID, + userKeypair.publicKey, + counterPda, + validatorPubkey, + ), + ), + [userKeypair], + "base", + ); + expect(signatureOf(meta)).toBeDefined(); + expect(isDelegated(svm, counterPda)).toBe(true); + }); + + it("Increase delegated counter and commit through CPI", () => { + const start = Date.now(); + const tx = new Transaction().add( + commitStyleIx( + PROGRAM_ID, + userKeypair.publicKey, + counterPda, + CounterInstruction.IncrementAndCommit, + 1, + ), + ); + const meta = signAndSend(svm, tx, [userKeypair], "ephemeral"); + const txHash = signatureOf(meta); + console.log( + `${Date.now() - start}ms (ER) Increment And Commit txHash: ${txHash}`, + ); + expect(txHash).toBeDefined(); + expect(readCounter(svm, counterPda, "ephemeral")).toBe(1n); + expect(readCounter(svm, counterPda, "base")).toBe(1n); + expect(isDelegated(svm, counterPda)).toBe(true); + }); + + it("Increase delegated counter and undelegate through CPI", () => { + const start = Date.now(); + const tx = new Transaction().add( + commitStyleIx( + PROGRAM_ID, + userKeypair.publicKey, + counterPda, + CounterInstruction.IncrementAndUndelegate, + 1, + ), + ); + const meta = signAndSend(svm, tx, [userKeypair], "ephemeral"); + const txHash = signatureOf(meta); + console.log( + `${Date.now() - start}ms (ER) Increment and Undelegate txHash: ${txHash}`, + ); + expect(txHash).toBeDefined(); + expect(readCounter(svm, counterPda, "base")).toBe(2n); + expect(accountOwner(svm, counterPda, "base")).toBe(PROGRAM_ID.toString()); + }); +}); diff --git a/counter/native-rust/tsconfig.json b/counter/native-rust/tsconfig.json index 011d4f0e..e37d7074 100644 --- a/counter/native-rust/tsconfig.json +++ b/counter/native-rust/tsconfig.json @@ -2,10 +2,11 @@ "compilerOptions": { "types": ["mocha", "chai"], "typeRoots": ["./node_modules/@types"], - "lib": ["es2015", "es2022", "dom"], + "lib": ["es2020", "dom"], "module": "commonjs", - "target": "es6", - "esModuleInterop": true + "target": "es2020", + "esModuleInterop": true, + "skipLibCheck": true } } diff --git a/counter/native-rust/vitest.config.ts b/counter/native-rust/vitest.config.ts index 7c9bc2bc..27bad64a 100644 --- a/counter/native-rust/vitest.config.ts +++ b/counter/native-rust/vitest.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { fileParallelism: false, - include: ['tests/**/*.test.ts'], + include: ['tests/**/*.test.ts', 'tests-magicsvm/**/*.test.ts'], reporters: 'verbose', }, }); \ No newline at end of file diff --git a/counter/native-rust/yarn.lock b/counter/native-rust/yarn.lock index 04ac11e2..43fa9380 100644 --- a/counter/native-rust/yarn.lock +++ b/counter/native-rust/yarn.lock @@ -7,6 +7,43 @@ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326" integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== +"@babel/runtime@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.7.tgz#12022450c45a4da6d8d8287b18a4ff2ddb23f768" + integrity sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw== + +"@coral-xyz/anchor-errors@^0.31.1": + version "0.31.1" + resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" + integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== + +"@coral-xyz/anchor@0.32.1": + version "0.32.1" + resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" + integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== + dependencies: + "@coral-xyz/anchor-errors" "^0.31.1" + "@coral-xyz/borsh" "^0.31.1" + "@noble/hashes" "^1.3.1" + "@solana/web3.js" "^1.69.0" + bn.js "^5.1.2" + bs58 "^4.0.1" + buffer-layout "^1.2.2" + camelcase "^6.3.0" + cross-fetch "^3.1.5" + eventemitter3 "^4.0.7" + pako "^2.0.3" + superstruct "^0.15.4" + toml "^3.0.0" + +"@coral-xyz/borsh@^0.31.1": + version "0.31.1" + resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.31.1.tgz#5328e1e0921b75d7f4a62dd3f61885a938bc7241" + integrity sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw== + dependencies: + bn.js "^5.1.2" + buffer-layout "^1.2.0" + "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" @@ -189,14 +226,62 @@ tweetnacl "^1.0.3" typescript "^5.3.0" -"@noble/curves@^1.4.2": +"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" + integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== + +"@magicblock-labs/magicsvm-darwin-x64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" + integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== + +"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" + integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== + +"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" + integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== + +"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" + integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== + +"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" + integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== + +"@magicblock-labs/magicsvm@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" + integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== + dependencies: + "@solana/web3.js" "3.0.0-rc.3" + optionalDependencies: + "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" + "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" + +"@magicblock-labs/test-utils@link:../../test-utils/ts": + version "0.0.0" + uid "" + +"@noble/curves@^1.4.2", "@noble/curves@^1.9.7": version "1.9.7" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== dependencies: "@noble/hashes" "1.8.0" -"@noble/hashes@1.8.0", "@noble/hashes@^1.4.0": +"@noble/hashes@1.8.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0", "@noble/hashes@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== @@ -371,6 +456,31 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.2.tgz#3418dcf1388f2abd6b0ccc08fe1ef205ae76d696" integrity sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA== +"@solana-program/address-lookup-table@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" + integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== + +"@solana-program/compute-budget@^0.18.0": + version "0.18.1" + resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" + integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== + +"@solana-program/loader-v3@^0.6.0": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" + integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== + +"@solana-program/stake@^0.9.0": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" + integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== + +"@solana-program/system@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" + integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== + "@solana-program/system@^0.9.0": version "0.9.1" resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.9.1.tgz#fafd9abaa2a48adb80a78e5f712847b3d817b37c" @@ -388,6 +498,18 @@ "@solana/rpc-spec" "4.0.0" "@solana/rpc-types" "4.0.0" +"@solana/accounts@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" + integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/addresses@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-4.0.0.tgz#cd836e473ecdd286d5787401f16193ca5725b39e" @@ -399,6 +521,17 @@ "@solana/errors" "4.0.0" "@solana/nominal-types" "4.0.0" +"@solana/addresses@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" + integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/assertions@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-4.0.0.tgz#ec863ea412a66edb1a97ef789e694439fd4ee679" @@ -406,6 +539,13 @@ dependencies: "@solana/errors" "4.0.0" +"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" + integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/buffer-layout@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" @@ -427,6 +567,20 @@ dependencies: "@solana/errors" "4.0.0" +"@solana/codecs-core@5.5.1": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-5.5.1.tgz#1b2619c697ad04c99f98cc468135d584b7e2b16d" + integrity sha512-TgBt//bbKBct0t6/MpA8ElaOA3sa8eYVvR7LGslCZ84WiAwwjCY0lW/lOYsFHJQzwREMdUyuEyy5YWBKtdh8Rw== + dependencies: + "@solana/errors" "5.5.1" + +"@solana/codecs-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" + integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/codecs-data-structures@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-4.0.0.tgz#8e60f68f26ae7dac5c88d4f5684c4c5ce7d6db62" @@ -436,6 +590,15 @@ "@solana/codecs-numbers" "4.0.0" "@solana/errors" "4.0.0" +"@solana/codecs-data-structures@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" + integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/codecs-numbers@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-4.0.0.tgz#fc5c451ff2f1ca1e3a13cf85230e768a47b9a788" @@ -444,6 +607,14 @@ "@solana/codecs-core" "4.0.0" "@solana/errors" "4.0.0" +"@solana/codecs-numbers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" + integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/codecs-numbers@^2.1.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" @@ -452,6 +623,14 @@ "@solana/codecs-core" "2.3.0" "@solana/errors" "2.3.0" +"@solana/codecs-numbers@^5.5.1": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-5.5.1.tgz#6ebc43250133ceb7836f1ac5780a7767e383efde" + integrity sha512-rllMIZAHqmtvC0HO/dc/21wDuWaD0B8Ryv8o+YtsICQBuiL/0U4AGwH7Pi5GNFySYk0/crSuwfIqQFtmxNSPFw== + dependencies: + "@solana/codecs-core" "5.5.1" + "@solana/errors" "5.5.1" + "@solana/codecs-strings@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-4.0.0.tgz#b4c77d6ff6eeec868a71e5b0cb42bdb9f0c6b500" @@ -461,6 +640,15 @@ "@solana/codecs-numbers" "4.0.0" "@solana/errors" "4.0.0" +"@solana/codecs-strings@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" + integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/codecs@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-4.0.0.tgz#211235fd56fa60f5d96b88b14d7317bf6d88535b" @@ -472,6 +660,18 @@ "@solana/codecs-strings" "4.0.0" "@solana/options" "4.0.0" +"@solana/codecs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" + integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/options" "8.3.0" + "@solana/errors@2.3.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.3.0.tgz#4ac9380343dbeffb9dffbcb77c28d0e457c5fa31" @@ -488,16 +688,50 @@ chalk "5.6.2" commander "14.0.1" +"@solana/errors@5.5.1": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-5.5.1.tgz#1c17bc822264fd5a6305d8bfb9d597858e4ce17b" + integrity sha512-vFO3p+S7HoyyrcAectnXbdsMfwUzY2zYFUc2DEe5BwpiE9J1IAxPBGjOWO6hL1bbYdBrlmjNx8DXCslqS+Kcmg== + dependencies: + chalk "5.6.2" + commander "14.0.2" + +"@solana/errors@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" + integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== + dependencies: + chalk "5.6.2" + commander "15.0.0" + "@solana/fast-stable-stringify@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-4.0.0.tgz#ecba09686fdd3a6a6dd1e41be3395d2bb6dd583e" integrity sha512-sNJRi0RQ93vkGQ9VyFTSGm6mfKLk0FWOFpJLcqyP0BNUK1CugBaUMnxAmGqNaVSCktJagTSLqAMi9k1VSdh+Cg== +"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" + integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== + +"@solana/fixed-points@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" + integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-4.0.0.tgz#157febe2cb837b7272956794853ba80b5315da22" integrity sha512-duprxASuT0VXlHj3bLBdy9+ZpqdmCZhzCUmTsXps4UlDKr9PxSCQIQ+NK6OPhtBWOh1sNEcT1f1nY/MVqF/KHg== +"@solana/functional@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" + integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== + "@solana/instruction-plans@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-4.0.0.tgz#38a4021eb99b9136204d77b84d579740cd94a979" @@ -509,6 +743,18 @@ "@solana/transaction-messages" "4.0.0" "@solana/transactions" "4.0.0" +"@solana/instruction-plans@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" + integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/instructions@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-4.0.0.tgz#989c3ad30de9e3c52a8a7a094964b4500b1a717e" @@ -517,6 +763,14 @@ "@solana/codecs-core" "4.0.0" "@solana/errors" "4.0.0" +"@solana/instructions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" + integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-4.0.0.tgz#12c39db588115beaf13648b778bcdb1acfe09052" @@ -528,6 +782,18 @@ "@solana/errors" "4.0.0" "@solana/nominal-types" "4.0.0" +"@solana/keys@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" + integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/kit@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-4.0.0.tgz#741cf567426e88c194dfd27ef2616d261f6ff7b9" @@ -553,11 +819,63 @@ "@solana/transaction-messages" "4.0.0" "@solana/transactions" "4.0.0" +"@solana/kit@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" + integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/plugin-core" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/program-client-core" "8.3.0" + "@solana/programs" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/sysvars" "8.3.0" + "@solana/transaction-confirmation" "8.3.0" + "@solana/transaction-introspection" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/nominal-types@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-4.0.0.tgz#0ba8f10ef7c1de4b12c0781d44805d8984a17c18" integrity sha512-zIjHZY+5uboigbzsNhHmF3AlP/xACYxbB0Cb1VAI9i+eFShMeu/3VIrj7x1vbq9hfQKGSFHNFGFqQTivdzpbLw== +"@solana/nominal-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" + integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== + +"@solana/offchain-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" + integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/options@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/options/-/options-4.0.0.tgz#a66a7c9211d1257037551afd470b7a4380f8efcc" @@ -569,6 +887,52 @@ "@solana/codecs-strings" "4.0.0" "@solana/errors" "4.0.0" +"@solana/options@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" + integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/plugin-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" + integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== + +"@solana/plugin-interfaces@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" + integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/program-client-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" + integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/programs@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-4.0.0.tgz#473c3614c5079f0a9dfd73ec46a684a1c389b33d" @@ -577,11 +941,24 @@ "@solana/addresses" "4.0.0" "@solana/errors" "4.0.0" +"@solana/programs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" + integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/promises@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-4.0.0.tgz#0ebf2dede764be71aa708479f6c4371ee58f76da" integrity sha512-zEh815+n2OrrQunZ6m1iuNcoZRc9YnQaTeivBSgl1SYfPaq/Qj/rRiK5DID25Njo4L44p5quu7aal3Bk/eR+tQ== +"@solana/promises@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" + integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== + "@solana/rpc-api@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-4.0.0.tgz#872bcd276befe0d9b69b66d73e7fe43219b9779e" @@ -599,16 +976,45 @@ "@solana/transaction-messages" "4.0.0" "@solana/transactions" "4.0.0" +"@solana/rpc-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" + integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/rpc-parsed-types@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-4.0.0.tgz#2a328092e53cce00d647f21da2a72bbae4d124f5" integrity sha512-aOjwJwen5D0aDXoSths+ekdBO4mu7nmM+yASqCVW2PLN6v7NZmRBzV1/PgMFjDTiymVQj25ipCUvL395s1wsKg== +"@solana/rpc-parsed-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" + integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== + "@solana/rpc-spec-types@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-4.0.0.tgz#8e9450b73aa5a4a187c3f59335bcfda94321f880" integrity sha512-rpFMIaetpubeyDXIlxV08vtmiDt7ME9527kCI61slHj6O2rbj+7fABhmlN6J4YDCcL/kfnMCxZyNna94DovHZA== +"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" + integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-4.0.0.tgz#b4e1f48246286556978d2088980476815f37eea2" @@ -617,6 +1023,15 @@ "@solana/errors" "4.0.0" "@solana/rpc-spec-types" "4.0.0" +"@solana/rpc-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" + integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/rpc-subscriptions-api@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-4.0.0.tgz#fb470cdc83afd696cec06694211340b7737ddf44" @@ -630,6 +1045,19 @@ "@solana/transaction-messages" "4.0.0" "@solana/transactions" "4.0.0" +"@solana/rpc-subscriptions-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" + integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/rpc-subscriptions-channel-websocket@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-4.0.0.tgz#4abe9919b8a0f5de62b7073ba2d696cf812d8f7e" @@ -640,6 +1068,17 @@ "@solana/rpc-subscriptions-spec" "4.0.0" "@solana/subscribable" "4.0.0" +"@solana/rpc-subscriptions-channel-websocket@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" + integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/subscribable" "8.3.0" + ws "^8.21.3" + "@solana/rpc-subscriptions-spec@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-4.0.0.tgz#8b5aa7814378287250071352334ef4a415a133b1" @@ -650,6 +1089,16 @@ "@solana/rpc-spec-types" "4.0.0" "@solana/subscribable" "4.0.0" +"@solana/rpc-subscriptions-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" + integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/rpc-subscriptions@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-4.0.0.tgz#e91dfdb6bdf1c0e9ae7a8f7d91937c543932f822" @@ -667,6 +1116,23 @@ "@solana/rpc-types" "4.0.0" "@solana/subscribable" "4.0.0" +"@solana/rpc-subscriptions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" + integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions-api" "8.3.0" + "@solana/rpc-subscriptions-channel-websocket" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/rpc-transformers@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-4.0.0.tgz#6ef729305c4a2532246fcb3bbd078bcda8bfd640" @@ -678,6 +1144,17 @@ "@solana/rpc-spec-types" "4.0.0" "@solana/rpc-types" "4.0.0" +"@solana/rpc-transformers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" + integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/rpc-transport-http@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-4.0.0.tgz#047b7c5915a5cc32fdb8da57db5991dd5897ba38" @@ -688,6 +1165,16 @@ "@solana/rpc-spec-types" "4.0.0" undici-types "^7.16.0" +"@solana/rpc-transport-http@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" + integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + undici-types "^8.10.2" + "@solana/rpc-types@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-4.0.0.tgz#23eaeb262faaa92ae0a151db65ee4b592dd598c9" @@ -700,6 +1187,19 @@ "@solana/errors" "4.0.0" "@solana/nominal-types" "4.0.0" +"@solana/rpc-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" + integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-4.0.0.tgz#e70cea2943b3dac2631f67154ad4bbc03f3d34fd" @@ -715,6 +1215,21 @@ "@solana/rpc-transport-http" "4.0.0" "@solana/rpc-types" "4.0.0" +"@solana/rpc@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" + integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-transport-http" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-4.0.0.tgz#771e6188129394a0591f2d688c8132f8af933217" @@ -729,6 +1244,21 @@ "@solana/transaction-messages" "4.0.0" "@solana/transactions" "4.0.0" +"@solana/signers@8.3.0", "@solana/signers@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" + integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/subscribable@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-4.0.0.tgz#bb1ce2d36a1051ed639b1c792ae457ec388d9c46" @@ -736,6 +1266,14 @@ dependencies: "@solana/errors" "4.0.0" +"@solana/subscribable@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" + integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/sysvars@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-4.0.0.tgz#25ff5a6d6a163b88f3af5bcbab6001609ff248ab" @@ -746,6 +1284,18 @@ "@solana/errors" "4.0.0" "@solana/rpc-types" "4.0.0" +"@solana/sysvars@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" + integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-confirmation@4.0.0", "@solana/transaction-confirmation@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-4.0.0.tgz#cb6256ba7fc4cf156a2d51563fc8f8ad644fc2ba" @@ -762,6 +1312,36 @@ "@solana/transaction-messages" "4.0.0" "@solana/transactions" "4.0.0" +"@solana/transaction-confirmation@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" + integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/transaction-introspection@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" + integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/transaction-messages@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-4.0.0.tgz#ab28f345d6d0e7e8e0a63e23773c440ae2a46843" @@ -777,6 +1357,21 @@ "@solana/nominal-types" "4.0.0" "@solana/rpc-types" "4.0.0" +"@solana/transaction-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" + integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transactions@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-4.0.0.tgz#d037d7c7966c7aae110b6fa33efa780a211bb013" @@ -795,6 +1390,63 @@ "@solana/rpc-types" "4.0.0" "@solana/transaction-messages" "4.0.0" +"@solana/transactions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" + integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + +"@solana/web3.js@3.0.0-rc.3": + version "3.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" + integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== + dependencies: + "@noble/curves" "^1.4.2" + "@noble/hashes" "^1.4.0" + "@solana-program/address-lookup-table" "^0.14.0" + "@solana-program/compute-budget" "^0.18.0" + "@solana-program/loader-v3" "^0.6.0" + "@solana-program/stake" "^0.9.0" + "@solana-program/system" "^0.14.0" + "@solana/assertions" "^8.2.0" + "@solana/fast-stable-stringify" "^8.2.0" + "@solana/kit" "^8.2.0" + "@solana/rpc-spec-types" "^8.2.0" + "@solana/signers" "^8.2.0" + +"@solana/web3.js@^1.69.0": + version "1.99.0" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.99.0.tgz#864ce3fefe03b258c430e31e6672b422426821f7" + integrity sha512-QZYQ2T1z6xWisoyALPq25i/QZTsRlM02BABtAsfaQ1p8wX4SdTfxrKTRue/ZZqrhNVh5oL7T/DUFiTS9DRgxow== + dependencies: + "@babel/runtime" "^7.29.7" + "@noble/curves" "^1.9.7" + "@noble/hashes" "^1.8.0" + "@solana/buffer-layout" "^4.0.1" + "@solana/codecs-numbers" "^5.5.1" + agentkeepalive "^4.6.0" + bn.js "^5.2.5" + borsh "^0.7.0" + bs58 "^4.0.1" + buffer "6.0.3" + fast-stable-stringify "^1.0.0" + jayson "^4.3.0" + node-fetch "^2.7.0" + rpc-websockets "^9.0.2" + superstruct "^2.0.2" + "@solana/web3.js@^1.98.0", "@solana/web3.js@^1.98.2": version "1.98.4" resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" @@ -975,7 +1627,7 @@ acorn@^8.11.0, acorn@^8.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== -agentkeepalive@^4.5.0: +agentkeepalive@^4.5.0, agentkeepalive@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== @@ -1065,6 +1717,11 @@ bn.js@^4.0.0, bn.js@^4.11.9: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.3.tgz#2cc2c679188eb35b006f2d0d4710bed8437a769e" integrity sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g== +bn.js@^5.1.2, bn.js@^5.2.5: + version "5.2.5" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.5.tgz#e81ce41cf25e6f0cd1e05f20a9db8c18405e375f" + integrity sha512-Vq886eXykuP5E6HcKSSStP3bJgrE6In5WKxVUvJ8XGpWWYs2xZHWqUwzCtGgEtBcxyd57KBFDPFoUfNzdaHCNg== + bn.js@^5.2.0, bn.js@^5.2.1: version "5.2.2" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.2.tgz#82c09f9ebbb17107cd72cb7fd39bd1f9d0aaa566" @@ -1115,6 +1772,11 @@ bs58@^6.0.0: dependencies: base-x "^5.0.0" +buffer-layout@^1.2.0, buffer-layout@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" + integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== + buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" @@ -1135,7 +1797,7 @@ cac@^6.7.14: resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== -camelcase@^6.0.0: +camelcase@^6.0.0, camelcase@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== @@ -1202,11 +1864,16 @@ commander@14.0.1: resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.1.tgz#2f9225c19e6ebd0dc4404dd45821b2caa17ea09b" integrity sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A== -commander@^14.0.0: +commander@14.0.2, commander@^14.0.0: version "14.0.2" resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e" integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== +commander@15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" + integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== + commander@^2.20.3: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -1217,6 +1884,13 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== +cross-fetch@^3.1.5: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" + integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== + dependencies: + node-fetch "^2.7.0" + cross-spawn@^7.0.6: version "7.0.6" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" @@ -1354,6 +2028,11 @@ estree-walker@^3.0.3: dependencies: "@types/estree" "^1.0.0" +eventemitter3@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + eventemitter3@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" @@ -1523,6 +2202,24 @@ jayson@^4.1.1: uuid "^8.3.2" ws "^7.5.10" +jayson@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.3.0.tgz#22eb8f3dcf37a5e893830e5451f32bde6d1bde4d" + integrity sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ== + dependencies: + "@types/connect" "^3.4.33" + "@types/node" "^12.12.54" + "@types/ws" "^7.4.4" + commander "^2.20.3" + delay "^5.0.0" + es6-promisify "^5.0.0" + eyes "^0.1.8" + isomorphic-ws "^4.0.1" + json-stringify-safe "^5.0.1" + stream-json "^1.9.1" + uuid "^8.3.2" + ws "^7.5.10" + js-yaml@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" @@ -1662,6 +2359,11 @@ package-json-from-dist@^1.0.0: resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== +pako@^2.0.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.2.0.tgz#246b9d4c841a8d308e484c0d03786651b143e63a" + integrity sha512-zJq6RP/5q+TO2OpFV3FHzlPnFjmkb7Nc99a5SNjJE+uu/PkpChs+NIZSSzbBoD+6kjiISXjfYdwj1ZRQ81dz/w== + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -1907,6 +2609,11 @@ strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +superstruct@^0.15.4: + version "0.15.5" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" + integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== + superstruct@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-2.0.2.tgz#3f6d32fbdc11c357deff127d591a39b996300c54" @@ -1956,6 +2663,11 @@ tinyspy@^3.0.2: resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-3.0.2.tgz#86dd3cf3d737b15adcf17d7887c84a75201df20a" integrity sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q== +toml@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" + integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== + tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" @@ -2005,6 +2717,11 @@ undici-types@^7.16.0, undici-types@~7.16.0: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== +undici-types@^8.10.2: + version "8.10.2" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" + integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== + utf-8-validate@^5.0.2: version "5.0.10" resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" @@ -2135,6 +2852,11 @@ ws@^7.5.10: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== +ws@^8.21.3: + version "8.21.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" + integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== + ws@^8.5.0: version "8.18.3" resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" diff --git a/counter/pinocchio/package.json b/counter/pinocchio/package.json index 8ccb448b..e84badbe 100644 --- a/counter/pinocchio/package.json +++ b/counter/pinocchio/package.json @@ -6,6 +6,8 @@ "scripts": { "test": "vitest run tests/", "test:local": ". ../../scripts/local-env.sh && npx vitest run tests/kit/", + "test:magicsvm": "vitest run tests-magicsvm/", + "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml", "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh pinocchio-counter", "test:watch": "vitest watch tests/", "build": "cargo build-sbf --features logging", @@ -28,11 +30,13 @@ "ts-node": "^10.9.0", "typescript": "^5.0.0", "vitest": "^0.34.0", - "prettier": "^3.5.3" + "prettier": "^3.5.3", + "@magicblock-labs/test-utils": "link:../../test-utils/ts" }, "dependencies": { "@magicblock-labs/ephemeral-rollups-kit": "0.14.3", "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3", + "@magicblock-labs/magicsvm": "0.2.0", "@solana-program/system": "^0.10.0", "@solana/kit": "^5.4.0", "@solana/web3.js": "^1.93.0", diff --git a/counter/pinocchio/tests-magicsvm-rs/Cargo.toml b/counter/pinocchio/tests-magicsvm-rs/Cargo.toml new file mode 100644 index 00000000..f13782d2 --- /dev/null +++ b/counter/pinocchio/tests-magicsvm-rs/Cargo.toml @@ -0,0 +1,28 @@ +[package] +name = "pinocchio-counter-magicsvm-tests" +version = "0.1.0" +edition = "2021" +publish = false +autolib = false + +[workspace] + +[[test]] +name = "magicsvm" +path = "tests/magicsvm.rs" + +[dev-dependencies] +ephemeral-rollups-sdk = { version = "0.14.4", features = ["modular-sdk"] } +magicblock-delegation-program-api = { version = "3.0.0", default-features = false } +magicsvm = "0.2.0" +test-utils = { path = "../../../test-utils/rust" } +serde_json = "1" +solana-address = "~2.6.1" +solana-hash = "~4.5.0" +solana-instruction = { version = "~3.4.0", features = ["bincode"] } +solana-keypair = "3.1.2" +solana-message = "4.2.4" +solana-native-token = "3.0.0" +solana-sdk-ids = "3.1.0" +solana-signer = "3.0.1" +solana-transaction = { version = "4.1.5", features = ["verify"] } diff --git a/counter/pinocchio/tests-magicsvm-rs/tests/magicsvm.rs b/counter/pinocchio/tests-magicsvm-rs/tests/magicsvm.rs new file mode 100644 index 00000000..7bff7f9d --- /dev/null +++ b/counter/pinocchio/tests-magicsvm-rs/tests/magicsvm.rs @@ -0,0 +1,286 @@ +use { + dlp_api::consts::DELEGATION_PROGRAM_ID, + ephemeral_rollups_sdk::consts::{MAGIC_CONTEXT_ID, MAGIC_PROGRAM_ID}, + magicsvm::{MagicSVM, TransactionTarget}, + solana_address::Address, + solana_hash::Hash, + solana_instruction::{account_meta::AccountMeta, Instruction}, + solana_keypair::Keypair, + solana_message::Message, + solana_native_token::LAMPORTS_PER_SOL, + solana_signer::Signer, + solana_transaction::Transaction, + test_utils::{program_id_from_keypair, program_so_path, send_tx}, +}; + +const COUNTER_SEED: &[u8] = b"counter"; +const INITIALIZE_COUNTER: [u8; 8] = [0, 0, 0, 0, 0, 0, 0, 0]; +const INCREASE_COUNTER: [u8; 8] = [1, 0, 0, 0, 0, 0, 0, 0]; +const DELEGATE_COUNTER: [u8; 8] = [2, 0, 0, 0, 0, 0, 0, 0]; +const COMMIT_AND_UNDELEGATE: [u8; 8] = [3, 0, 0, 0, 0, 0, 0, 0]; +const COMMIT: [u8; 8] = [4, 0, 0, 0, 0, 0, 0, 0]; + +fn program_id() -> Address { + program_id_from_keypair(env!("CARGO_MANIFEST_DIR"), "pinocchio_counter") +} + +fn send(svm: &mut MagicSVM, target: TransactionTarget, tx: Transaction) { + send_tx(svm, target, tx, "transaction"); +} + +fn read_counter(data: &[u8]) -> u64 { + u64::from_le_bytes(data[..8].try_into().unwrap()) +} + +fn initialize_tx( + program_id: Address, + counter: Address, + payer: &Keypair, + bump: u8, + blockhash: Hash, +) -> Transaction { + let mut data = Vec::with_capacity(9); + data.extend_from_slice(&INITIALIZE_COUNTER); + data.push(bump); + let instruction = Instruction { + program_id, + accounts: vec![ + AccountMeta::new(payer.pubkey(), true), + AccountMeta::new(counter, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::id(), false), + ], + data, + }; + Transaction::new( + &[payer], + Message::new(&[instruction], Some(&payer.pubkey())), + blockhash, + ) +} + +fn increment_tx( + program_id: Address, + counter: Address, + payer: &Keypair, + bump: u8, + increase_by: u64, + blockhash: Hash, +) -> Transaction { + let mut data = Vec::with_capacity(17); + data.extend_from_slice(&INCREASE_COUNTER); + data.push(bump); + data.extend_from_slice(&increase_by.to_le_bytes()); + let instruction = Instruction { + program_id, + accounts: vec![ + AccountMeta::new(payer.pubkey(), true), + AccountMeta::new(counter, false), + ], + data, + }; + Transaction::new( + &[payer], + Message::new(&[instruction], Some(&payer.pubkey())), + blockhash, + ) +} + +fn delegate_buffer(counter: &Address, owner_program: &Address) -> Address { + Address::find_program_address(&[b"buffer", counter.as_ref()], owner_program).0 +} + +fn delegation_pda(seed: &[u8], delegated_account: &Address) -> Address { + Address::find_program_address(&[seed, delegated_account.as_ref()], &DELEGATION_PROGRAM_ID).0 +} + +fn delegate_tx( + program_id: Address, + counter: Address, + payer: &Keypair, + bump: u8, + validator: Address, + blockhash: Hash, +) -> Transaction { + let instruction = Instruction { + program_id, + accounts: vec![ + AccountMeta::new(payer.pubkey(), true), + AccountMeta::new(counter, false), + AccountMeta::new_readonly(program_id, false), + AccountMeta::new(delegate_buffer(&counter, &program_id), false), + AccountMeta::new(delegation_pda(b"delegation", &counter), false), + AccountMeta::new(delegation_pda(b"delegation-metadata", &counter), false), + AccountMeta::new_readonly(DELEGATION_PROGRAM_ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::id(), false), + AccountMeta::new_readonly(validator, false), + ], + data: { + let mut data = Vec::with_capacity(9); + data.extend_from_slice(&DELEGATE_COUNTER); + data.push(bump); + data + }, + }; + Transaction::new( + &[payer], + Message::new(&[instruction], Some(&payer.pubkey())), + blockhash, + ) +} + +fn commit_tx( + program_id: Address, + counter: Address, + payer: &Keypair, + blockhash: Hash, +) -> Transaction { + let instruction = Instruction { + program_id, + accounts: vec![ + AccountMeta::new(payer.pubkey(), true), + AccountMeta::new(counter, false), + AccountMeta::new_readonly(MAGIC_PROGRAM_ID, false), + AccountMeta::new(MAGIC_CONTEXT_ID, false), + ], + data: COMMIT.to_vec(), + }; + Transaction::new( + &[payer], + Message::new(&[instruction], Some(&payer.pubkey())), + blockhash, + ) +} + +fn undelegate_tx( + program_id: Address, + counter: Address, + payer: &Keypair, + blockhash: Hash, +) -> Transaction { + let instruction = Instruction { + program_id, + accounts: vec![ + AccountMeta::new(payer.pubkey(), true), + AccountMeta::new(counter, false), + AccountMeta::new_readonly(MAGIC_PROGRAM_ID, false), + AccountMeta::new(MAGIC_CONTEXT_ID, false), + ], + data: COMMIT_AND_UNDELEGATE.to_vec(), + }; + Transaction::new( + &[payer], + Message::new(&[instruction], Some(&payer.pubkey())), + blockhash, + ) +} + +#[test] +fn pinocchio_counter_init_increment_delegate_er_commit_undelegate() { + let payer = Keypair::new(); + let mut svm = MagicSVM::new(); + let program_id = program_id(); + svm.add_program_from_file( + program_id, + program_so_path(env!("CARGO_MANIFEST_DIR"), "pinocchio_counter"), + ) + .unwrap(); + svm.airdrop(&payer.pubkey(), 2 * LAMPORTS_PER_SOL).unwrap(); + + let (counter, bump) = + Address::find_program_address(&[COUNTER_SEED, payer.pubkey().as_ref()], &program_id); + + let tx = initialize_tx( + program_id, + counter, + &payer, + bump, + svm.latest_blockhash_for(TransactionTarget::Base), + ); + send(&mut svm, TransactionTarget::Base, tx); + let account = svm.get_account(&counter).expect("counter must exist"); + assert_eq!(account.owner, program_id); + assert_eq!(account.data.len(), 8); + assert_eq!(read_counter(&account.data), 0); + + let tx = increment_tx( + program_id, + counter, + &payer, + bump, + 1, + svm.latest_blockhash_for(TransactionTarget::Base), + ); + send(&mut svm, TransactionTarget::Base, tx); + assert_eq!(read_counter(&svm.get_account(&counter).unwrap().data), 1); + + let validator = svm.validator_identity(); + let tx = delegate_tx( + program_id, + counter, + &payer, + bump, + validator, + svm.latest_blockhash_for(TransactionTarget::Base), + ); + send(&mut svm, TransactionTarget::Base, tx); + assert_eq!( + svm.get_account(&counter).unwrap().owner, + DELEGATION_PROGRAM_ID + ); + + let tx = increment_tx( + program_id, + counter, + &payer, + bump, + 1, + svm.latest_blockhash_for(TransactionTarget::Ephemeral), + ); + send(&mut svm, TransactionTarget::Ephemeral, tx); + assert_eq!( + read_counter( + &svm.get_account_for(TransactionTarget::Ephemeral, &counter) + .unwrap() + .data + ), + 2 + ); + + let tx = commit_tx( + program_id, + counter, + &payer, + svm.latest_blockhash_for(TransactionTarget::Ephemeral), + ); + send(&mut svm, TransactionTarget::Ephemeral, tx); + assert_eq!(read_counter(&svm.get_account(&counter).unwrap().data), 2); + + let tx = increment_tx( + program_id, + counter, + &payer, + bump, + 1, + svm.latest_blockhash_for(TransactionTarget::Ephemeral), + ); + send(&mut svm, TransactionTarget::Ephemeral, tx); + assert_eq!( + read_counter( + &svm.get_account_for(TransactionTarget::Ephemeral, &counter) + .unwrap() + .data + ), + 3 + ); + + let tx = undelegate_tx( + program_id, + counter, + &payer, + svm.latest_blockhash_for(TransactionTarget::Ephemeral), + ); + send(&mut svm, TransactionTarget::Ephemeral, tx); + let account = svm.get_account(&counter).expect("counter must exist"); + assert_eq!(account.owner, program_id); + assert_eq!(read_counter(&account.data), 3); +} diff --git a/counter/pinocchio/tests-magicsvm/pinocchio-counter.test.ts b/counter/pinocchio/tests-magicsvm/pinocchio-counter.test.ts new file mode 100644 index 00000000..82d85904 --- /dev/null +++ b/counter/pinocchio/tests-magicsvm/pinocchio-counter.test.ts @@ -0,0 +1,362 @@ +import { + Keypair, + PublicKey, + SystemProgram, + TransactionInstruction, +} from "@solana/web3.js"; +import * as borsh from "borsh"; +import * as path from "path"; +import { + CounterInstruction, + IncreaseCounterPayload, +} from "../tests/web3js/schema"; +import { + DELEGATION_PROGRAM_ID, + MAGIC_CONTEXT_ID, + MAGIC_PROGRAM_ID, + createSvm, + delegateBufferPdaFromDelegatedAccountAndOwnerProgram, + delegationMetadataPdaFromDelegatedAccount, + delegationRecordPdaFromDelegatedAccount, + isDelegated, + programIdFromKeypairFile, + readU64le, + requireAccount, + sendSvmIx, +} from "@magicblock-labs/test-utils"; +import { describe, it, expect } from "vitest"; + +const LAMPORTS_PER_SOL = 1_000_000_000n; +const PROGRAM_SO = path.join("target", "deploy", "pinocchio_counter.so"); +const PROGRAM_KEYPAIR = path.join( + "target", + "deploy", + "pinocchio_counter-keypair.json", +); + +function send( + svm: ReturnType["svm"], + target: "base" | "ephemeral", + ix: TransactionInstruction, + payer: Keypair, +) { + return sendSvmIx(svm, [payer], ix, target); +} + +describe("pinocchio-counter magicsvm", () => { + const PROGRAM_ID = new PublicKey(programIdFromKeypairFile(PROGRAM_KEYPAIR)); + const userKeypair = Keypair.generate(); + const { svm } = createSvm({ + programs: [{ id: PROGRAM_ID, so: PROGRAM_SO }], + airdrops: [ + { address: userKeypair.publicKey, lamports: 2n * LAMPORTS_PER_SOL }, + ], + }); + const [counterPda, bump] = PublicKey.findProgramAddressSync( + [Buffer.from("counter"), userKeypair.publicKey.toBuffer()], + PROGRAM_ID, + ); + const bumpBytes = Buffer.from([bump]); + + it("Initialize counter on Solana", () => { + const keys = [ + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + { + pubkey: SystemProgram.programId, + isSigner: false, + isWritable: false, + }, + ]; + const serializedInstructionData = Buffer.concat([ + Buffer.from(CounterInstruction.InitializeCounter, "hex"), + bumpBytes, + ]); + const result = send( + svm, + "base", + new TransactionInstruction({ + keys, + programId: PROGRAM_ID, + data: serializedInstructionData, + }), + userKeypair, + ); + expect(result).toBeDefined(); + + const account = requireAccount(svm, counterPda, "base"); + expect(account.programAddress.toString()).toBe(PROGRAM_ID.toBase58()); + expect(account.data.length).toBe(8); + expect(readU64le(svm, counterPda, "base", 0)).toBe(0n); + }); + + it("Increase counter on Solana", () => { + const keys = [ + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + ]; + const serializedInstructionData = Buffer.concat([ + Buffer.from(CounterInstruction.IncreaseCounter, "hex"), + bumpBytes, + borsh.serialize( + IncreaseCounterPayload.schema, + new IncreaseCounterPayload(1), + ), + ]); + const result = send( + svm, + "base", + new TransactionInstruction({ + keys, + programId: PROGRAM_ID, + data: serializedInstructionData, + }), + userKeypair, + ); + expect(result).toBeDefined(); + expect(readU64le(svm, counterPda, "base", 0)).toBe(1n); + }); + + it("Delegate counter to ER", () => { + const remainingAccounts = [ + { + pubkey: new PublicKey(svm.validatorIdentity().toString()), + isSigner: false, + isWritable: false, + }, + ]; + const keys = [ + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + { + pubkey: PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + { + pubkey: delegateBufferPdaFromDelegatedAccountAndOwnerProgram( + counterPda, + PROGRAM_ID, + ), + isSigner: false, + isWritable: true, + }, + { + pubkey: delegationRecordPdaFromDelegatedAccount(counterPda), + isSigner: false, + isWritable: true, + }, + { + pubkey: delegationMetadataPdaFromDelegatedAccount(counterPda), + isSigner: false, + isWritable: true, + }, + { + pubkey: DELEGATION_PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + { + pubkey: SystemProgram.programId, + isSigner: false, + isWritable: false, + }, + ...remainingAccounts, + ]; + const serializedInstructionData = Buffer.concat([ + Buffer.from(CounterInstruction.Delegate, "hex"), + bumpBytes, + ]); + const result = send( + svm, + "base", + new TransactionInstruction({ + keys, + programId: PROGRAM_ID, + data: serializedInstructionData, + }), + userKeypair, + ); + expect(result).toBeDefined(); + expect(isDelegated(svm, counterPda)).toBe(true); + }); + + it("Increase counter on ER (1)", () => { + const keys = [ + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + ]; + const serializedInstructionData = Buffer.concat([ + Buffer.from(CounterInstruction.IncreaseCounter, "hex"), + bumpBytes, + borsh.serialize( + IncreaseCounterPayload.schema, + new IncreaseCounterPayload(1), + ), + ]); + const result = send( + svm, + "ephemeral", + new TransactionInstruction({ + keys, + programId: PROGRAM_ID, + data: serializedInstructionData, + }), + userKeypair, + ); + expect(result).toBeDefined(); + expect(readU64le(svm, counterPda, "ephemeral", 0)).toBe(2n); + }); + + it("Commit counter state on ER to Solana", () => { + const keys = [ + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + { + pubkey: MAGIC_PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + { + pubkey: MAGIC_CONTEXT_ID, + isSigner: false, + isWritable: true, + }, + ]; + const serializedInstructionData = Buffer.from( + CounterInstruction.Commit, + "hex", + ); + const result = send( + svm, + "ephemeral", + new TransactionInstruction({ + keys, + programId: PROGRAM_ID, + data: serializedInstructionData, + }), + userKeypair, + ); + expect(result).toBeDefined(); + expect(readU64le(svm, counterPda, "base", 0)).toBe(2n); + }); + + it("Increase counter on ER (2)", () => { + const keys = [ + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + ]; + const serializedInstructionData = Buffer.concat([ + Buffer.from(CounterInstruction.IncreaseCounter, "hex"), + bumpBytes, + borsh.serialize( + IncreaseCounterPayload.schema, + new IncreaseCounterPayload(1), + ), + ]); + const result = send( + svm, + "ephemeral", + new TransactionInstruction({ + keys, + programId: PROGRAM_ID, + data: serializedInstructionData, + }), + userKeypair, + ); + expect(result).toBeDefined(); + expect(readU64le(svm, counterPda, "ephemeral", 0)).toBe(3n); + }); + + it("Commit and undelegate counter on ER to Solana", () => { + const keys = [ + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + { + pubkey: MAGIC_PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + { + pubkey: MAGIC_CONTEXT_ID, + isSigner: false, + isWritable: true, + }, + ]; + const serializedInstructionData = Buffer.from( + CounterInstruction.CommitAndUndelegate, + "hex", + ); + const result = send( + svm, + "ephemeral", + new TransactionInstruction({ + keys, + programId: PROGRAM_ID, + data: serializedInstructionData, + }), + userKeypair, + ); + expect(result).toBeDefined(); + + const account = requireAccount(svm, counterPda, "base"); + expect(account.programAddress.toString()).toBe(PROGRAM_ID.toBase58()); + expect(readU64le(svm, counterPda, "base", 0)).toBe(3n); + }); +}); diff --git a/counter/pinocchio/tsconfig.json b/counter/pinocchio/tsconfig.json index 948855f4..29a313fc 100644 --- a/counter/pinocchio/tsconfig.json +++ b/counter/pinocchio/tsconfig.json @@ -18,6 +18,6 @@ "noImplicitReturns": true, "noFallthroughCasesInSwitch": true }, - "include": ["tests/**/*", "src/**/*"], + "include": ["tests/**/*", "tests-magicsvm/**/*", "src/**/*"], "exclude": ["node_modules", "dist", "target"] } diff --git a/counter/pinocchio/yarn.lock b/counter/pinocchio/yarn.lock index 7f9c84d0..a9095409 100644 --- a/counter/pinocchio/yarn.lock +++ b/counter/pinocchio/yarn.lock @@ -7,6 +7,43 @@ resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz" integrity sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA== +"@babel/runtime@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.7.tgz#12022450c45a4da6d8d8287b18a4ff2ddb23f768" + integrity sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw== + +"@coral-xyz/anchor-errors@^0.31.1": + version "0.31.1" + resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" + integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== + +"@coral-xyz/anchor@0.32.1": + version "0.32.1" + resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" + integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== + dependencies: + "@coral-xyz/anchor-errors" "^0.31.1" + "@coral-xyz/borsh" "^0.31.1" + "@noble/hashes" "^1.3.1" + "@solana/web3.js" "^1.69.0" + bn.js "^5.1.2" + bs58 "^4.0.1" + buffer-layout "^1.2.2" + camelcase "^6.3.0" + cross-fetch "^3.1.5" + eventemitter3 "^4.0.7" + pako "^2.0.3" + superstruct "^0.15.4" + toml "^3.0.0" + +"@coral-xyz/borsh@^0.31.1": + version "0.31.1" + resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.31.1.tgz#5328e1e0921b75d7f4a62dd3f61885a938bc7241" + integrity sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw== + dependencies: + bn.js "^5.1.2" + buffer-layout "^1.2.0" + "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" @@ -184,14 +221,62 @@ tweetnacl "^1.0.3" typescript "^5.3.0" -"@noble/curves@^1.4.2": +"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" + integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== + +"@magicblock-labs/magicsvm-darwin-x64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" + integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== + +"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" + integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== + +"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" + integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== + +"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" + integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== + +"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" + integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== + +"@magicblock-labs/magicsvm@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" + integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== + dependencies: + "@solana/web3.js" "3.0.0-rc.3" + optionalDependencies: + "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" + "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" + +"@magicblock-labs/test-utils@link:../../test-utils/ts": + version "0.0.0" + uid "" + +"@noble/curves@^1.4.2", "@noble/curves@^1.9.7": version "1.9.7" resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz" integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== dependencies: "@noble/hashes" "1.8.0" -"@noble/hashes@1.8.0", "@noble/hashes@^1.4.0": +"@noble/hashes@1.8.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0", "@noble/hashes@^1.8.0": version "1.8.0" resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz" integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== @@ -366,11 +451,36 @@ resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz" integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== +"@solana-program/address-lookup-table@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" + integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== + +"@solana-program/compute-budget@^0.18.0": + version "0.18.1" + resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" + integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== + +"@solana-program/loader-v3@^0.6.0": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" + integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== + +"@solana-program/stake@^0.9.0": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" + integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== + "@solana-program/system@^0.10.0": version "0.10.0" resolved "https://registry.npmjs.org/@solana-program/system/-/system-0.10.0.tgz" integrity sha512-Go+LOEZmqmNlfr+Gjy5ZWAdY5HbYzk2RBewD9QinEU/bBSzpFfzqDRT55JjFRBGJUvMgf3C2vfXEGT4i8DSI4g== +"@solana-program/system@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" + integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== + "@solana-program/system@^0.9.0": version "0.9.1" resolved "https://registry.npmjs.org/@solana-program/system/-/system-0.9.1.tgz" @@ -400,6 +510,18 @@ "@solana/rpc-spec" "5.4.0" "@solana/rpc-types" "5.4.0" +"@solana/accounts@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" + integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/addresses@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/addresses/-/addresses-4.0.0.tgz" @@ -422,6 +544,17 @@ "@solana/errors" "5.4.0" "@solana/nominal-types" "5.4.0" +"@solana/addresses@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" + integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/assertions@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/assertions/-/assertions-4.0.0.tgz" @@ -436,6 +569,13 @@ dependencies: "@solana/errors" "5.4.0" +"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" + integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/buffer-layout@^4.0.1": version "4.0.1" resolved "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz" @@ -464,6 +604,20 @@ dependencies: "@solana/errors" "5.4.0" +"@solana/codecs-core@5.5.1": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-5.5.1.tgz#1b2619c697ad04c99f98cc468135d584b7e2b16d" + integrity sha512-TgBt//bbKBct0t6/MpA8ElaOA3sa8eYVvR7LGslCZ84WiAwwjCY0lW/lOYsFHJQzwREMdUyuEyy5YWBKtdh8Rw== + dependencies: + "@solana/errors" "5.5.1" + +"@solana/codecs-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" + integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/codecs-data-structures@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/codecs-data-structures/-/codecs-data-structures-4.0.0.tgz" @@ -482,6 +636,15 @@ "@solana/codecs-numbers" "5.4.0" "@solana/errors" "5.4.0" +"@solana/codecs-data-structures@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" + integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/codecs-numbers@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-4.0.0.tgz" @@ -498,6 +661,14 @@ "@solana/codecs-core" "5.4.0" "@solana/errors" "5.4.0" +"@solana/codecs-numbers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" + integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/codecs-numbers@^2.1.0": version "2.3.0" resolved "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz" @@ -506,6 +677,14 @@ "@solana/codecs-core" "2.3.0" "@solana/errors" "2.3.0" +"@solana/codecs-numbers@^5.5.1": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-5.5.1.tgz#6ebc43250133ceb7836f1ac5780a7767e383efde" + integrity sha512-rllMIZAHqmtvC0HO/dc/21wDuWaD0B8Ryv8o+YtsICQBuiL/0U4AGwH7Pi5GNFySYk0/crSuwfIqQFtmxNSPFw== + dependencies: + "@solana/codecs-core" "5.5.1" + "@solana/errors" "5.5.1" + "@solana/codecs-strings@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-4.0.0.tgz" @@ -524,6 +703,15 @@ "@solana/codecs-numbers" "5.4.0" "@solana/errors" "5.4.0" +"@solana/codecs-strings@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" + integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/codecs@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/codecs/-/codecs-4.0.0.tgz" @@ -546,6 +734,18 @@ "@solana/codecs-strings" "5.4.0" "@solana/options" "5.4.0" +"@solana/codecs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" + integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/options" "8.3.0" + "@solana/errors@2.3.0": version "2.3.0" resolved "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz" @@ -570,6 +770,22 @@ chalk "5.6.2" commander "14.0.2" +"@solana/errors@5.5.1": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-5.5.1.tgz#1c17bc822264fd5a6305d8bfb9d597858e4ce17b" + integrity sha512-vFO3p+S7HoyyrcAectnXbdsMfwUzY2zYFUc2DEe5BwpiE9J1IAxPBGjOWO6hL1bbYdBrlmjNx8DXCslqS+Kcmg== + dependencies: + chalk "5.6.2" + commander "14.0.2" + +"@solana/errors@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" + integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== + dependencies: + chalk "5.6.2" + commander "15.0.0" + "@solana/fast-stable-stringify@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/fast-stable-stringify/-/fast-stable-stringify-4.0.0.tgz" @@ -580,6 +796,19 @@ resolved "https://registry.npmjs.org/@solana/fast-stable-stringify/-/fast-stable-stringify-5.4.0.tgz" integrity sha512-KB7PUL7yalPvbWCezzyUDVRDp39eHLPH7OJ6S8VFT8YNIFUANwwj5ctui50Fim76kvSYDdYJOclXV45O2gfQ8Q== +"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" + integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== + +"@solana/fixed-points@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" + integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/functional/-/functional-4.0.0.tgz" @@ -590,6 +819,11 @@ resolved "https://registry.npmjs.org/@solana/functional/-/functional-5.4.0.tgz" integrity sha512-32ghHO0bg6GgX/7++0/7Lps6RgeXD2gKF1okiuyEGuVfKENIapgaQdcGhUwb3q6D6fv6MRAVn/Yve4jopGVNMQ== +"@solana/functional@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" + integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== + "@solana/instruction-plans@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/instruction-plans/-/instruction-plans-4.0.0.tgz" @@ -613,6 +847,18 @@ "@solana/transaction-messages" "5.4.0" "@solana/transactions" "5.4.0" +"@solana/instruction-plans@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" + integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/instructions@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/instructions/-/instructions-4.0.0.tgz" @@ -629,6 +875,14 @@ "@solana/codecs-core" "5.4.0" "@solana/errors" "5.4.0" +"@solana/instructions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" + integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/keys/-/keys-4.0.0.tgz" @@ -651,6 +905,18 @@ "@solana/errors" "5.4.0" "@solana/nominal-types" "5.4.0" +"@solana/keys@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" + integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/kit@^4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/kit/-/kit-4.0.0.tgz" @@ -704,6 +970,39 @@ "@solana/transaction-messages" "5.4.0" "@solana/transactions" "5.4.0" +"@solana/kit@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" + integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/plugin-core" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/program-client-core" "8.3.0" + "@solana/programs" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/sysvars" "8.3.0" + "@solana/transaction-confirmation" "8.3.0" + "@solana/transaction-introspection" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/nominal-types@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/nominal-types/-/nominal-types-4.0.0.tgz" @@ -714,6 +1013,11 @@ resolved "https://registry.npmjs.org/@solana/nominal-types/-/nominal-types-5.4.0.tgz" integrity sha512-h4dTRQwTerzksE5B1WmObN6TvLo8dYUd7kpUUynGd8WJjK0zz3zkDhq0MkA3aF6A1C2C82BSGqSsN9EN0E6Exg== +"@solana/nominal-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" + integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== + "@solana/offchain-messages@5.4.0": version "5.4.0" resolved "https://registry.npmjs.org/@solana/offchain-messages/-/offchain-messages-5.4.0.tgz" @@ -728,6 +1032,20 @@ "@solana/keys" "5.4.0" "@solana/nominal-types" "5.4.0" +"@solana/offchain-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" + integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/options@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/options/-/options-4.0.0.tgz" @@ -750,11 +1068,57 @@ "@solana/codecs-strings" "5.4.0" "@solana/errors" "5.4.0" +"@solana/options@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" + integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/plugin-core@5.4.0": version "5.4.0" resolved "https://registry.npmjs.org/@solana/plugin-core/-/plugin-core-5.4.0.tgz" integrity sha512-e1aLGLldW7C5113qTOjFYSGq95a4QC9TWb77iq+8l6h085DcNj+195r4E2zKaINrevQjQTwvxo00oUyHP7hSJA== +"@solana/plugin-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" + integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== + +"@solana/plugin-interfaces@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" + integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/program-client-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" + integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/programs@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/programs/-/programs-4.0.0.tgz" @@ -771,6 +1135,14 @@ "@solana/addresses" "5.4.0" "@solana/errors" "5.4.0" +"@solana/programs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" + integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/promises@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/promises/-/promises-4.0.0.tgz" @@ -781,6 +1153,11 @@ resolved "https://registry.npmjs.org/@solana/promises/-/promises-5.4.0.tgz" integrity sha512-23mfgNBbuP6Q+4vsixGy+GkyZ7wBLrxTBNXqrG/XWrJhjuuSkjEUGaK4Fx5o7LIrBi6KGqPknKxmTlvqnJhy2Q== +"@solana/promises@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" + integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== + "@solana/rpc-api@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc-api/-/rpc-api-4.0.0.tgz" @@ -815,6 +1192,23 @@ "@solana/transaction-messages" "5.4.0" "@solana/transactions" "5.4.0" +"@solana/rpc-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" + integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/rpc-parsed-types@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc-parsed-types/-/rpc-parsed-types-4.0.0.tgz" @@ -825,6 +1219,11 @@ resolved "https://registry.npmjs.org/@solana/rpc-parsed-types/-/rpc-parsed-types-5.4.0.tgz" integrity sha512-IRQuSzx+Sj1A3XGiIzguNZlMjMMybXTTjV/RnTwBgnJQPd/H4us4pfPD94r+/yolWDVfGjJRm04hnKVMjJU8Rg== +"@solana/rpc-parsed-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" + integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== + "@solana/rpc-spec-types@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc-spec-types/-/rpc-spec-types-4.0.0.tgz" @@ -835,6 +1234,13 @@ resolved "https://registry.npmjs.org/@solana/rpc-spec-types/-/rpc-spec-types-5.4.0.tgz" integrity sha512-JU9hC5/iyJx30ym17gpoXDtT9rCbO6hLpB6UDhSFFoNeirxtTVb4OdnKtsjJDfXAiXsynJRsZRwfj3vGxRLgQw== +"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" + integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc-spec/-/rpc-spec-4.0.0.tgz" @@ -851,6 +1257,15 @@ "@solana/errors" "5.4.0" "@solana/rpc-spec-types" "5.4.0" +"@solana/rpc-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" + integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/rpc-subscriptions-api@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-4.0.0.tgz" @@ -877,6 +1292,19 @@ "@solana/transaction-messages" "5.4.0" "@solana/transactions" "5.4.0" +"@solana/rpc-subscriptions-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" + integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/rpc-subscriptions-channel-websocket@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-4.0.0.tgz" @@ -898,6 +1326,17 @@ "@solana/subscribable" "5.4.0" ws "^8.19.0" +"@solana/rpc-subscriptions-channel-websocket@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" + integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/subscribable" "8.3.0" + ws "^8.21.3" + "@solana/rpc-subscriptions-spec@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-4.0.0.tgz" @@ -918,6 +1357,16 @@ "@solana/rpc-spec-types" "5.4.0" "@solana/subscribable" "5.4.0" +"@solana/rpc-subscriptions-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" + integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/rpc-subscriptions@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc-subscriptions/-/rpc-subscriptions-4.0.0.tgz" @@ -952,6 +1401,23 @@ "@solana/rpc-types" "5.4.0" "@solana/subscribable" "5.4.0" +"@solana/rpc-subscriptions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" + integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions-api" "8.3.0" + "@solana/rpc-subscriptions-channel-websocket" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/rpc-transformers@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc-transformers/-/rpc-transformers-4.0.0.tgz" @@ -974,6 +1440,17 @@ "@solana/rpc-spec-types" "5.4.0" "@solana/rpc-types" "5.4.0" +"@solana/rpc-transformers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" + integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/rpc-transport-http@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc-transport-http/-/rpc-transport-http-4.0.0.tgz" @@ -994,6 +1471,16 @@ "@solana/rpc-spec-types" "5.4.0" undici-types "^7.18.2" +"@solana/rpc-transport-http@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" + integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + undici-types "^8.10.2" + "@solana/rpc-types@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc-types/-/rpc-types-4.0.0.tgz" @@ -1018,6 +1505,19 @@ "@solana/errors" "5.4.0" "@solana/nominal-types" "5.4.0" +"@solana/rpc-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" + integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc/-/rpc-4.0.0.tgz" @@ -1048,6 +1548,21 @@ "@solana/rpc-transport-http" "5.4.0" "@solana/rpc-types" "5.4.0" +"@solana/rpc@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" + integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-transport-http" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/signers/-/signers-4.0.0.tgz" @@ -1077,6 +1592,21 @@ "@solana/transaction-messages" "5.4.0" "@solana/transactions" "5.4.0" +"@solana/signers@8.3.0", "@solana/signers@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" + integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/subscribable@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/subscribable/-/subscribable-4.0.0.tgz" @@ -1091,6 +1621,14 @@ dependencies: "@solana/errors" "5.4.0" +"@solana/subscribable@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" + integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/sysvars@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/sysvars/-/sysvars-4.0.0.tgz" @@ -1111,6 +1649,18 @@ "@solana/errors" "5.4.0" "@solana/rpc-types" "5.4.0" +"@solana/sysvars@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" + integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-confirmation@4.0.0", "@solana/transaction-confirmation@^4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/transaction-confirmation/-/transaction-confirmation-4.0.0.tgz" @@ -1143,6 +1693,36 @@ "@solana/transaction-messages" "5.4.0" "@solana/transactions" "5.4.0" +"@solana/transaction-confirmation@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" + integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/transaction-introspection@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" + integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/transaction-messages@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/transaction-messages/-/transaction-messages-4.0.0.tgz" @@ -1173,6 +1753,21 @@ "@solana/nominal-types" "5.4.0" "@solana/rpc-types" "5.4.0" +"@solana/transaction-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" + integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transactions@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/transactions/-/transactions-4.0.0.tgz" @@ -1209,6 +1804,63 @@ "@solana/rpc-types" "5.4.0" "@solana/transaction-messages" "5.4.0" +"@solana/transactions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" + integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + +"@solana/web3.js@3.0.0-rc.3": + version "3.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" + integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== + dependencies: + "@noble/curves" "^1.4.2" + "@noble/hashes" "^1.4.0" + "@solana-program/address-lookup-table" "^0.14.0" + "@solana-program/compute-budget" "^0.18.0" + "@solana-program/loader-v3" "^0.6.0" + "@solana-program/stake" "^0.9.0" + "@solana-program/system" "^0.14.0" + "@solana/assertions" "^8.2.0" + "@solana/fast-stable-stringify" "^8.2.0" + "@solana/kit" "^8.2.0" + "@solana/rpc-spec-types" "^8.2.0" + "@solana/signers" "^8.2.0" + +"@solana/web3.js@^1.69.0": + version "1.99.0" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.99.0.tgz#864ce3fefe03b258c430e31e6672b422426821f7" + integrity sha512-QZYQ2T1z6xWisoyALPq25i/QZTsRlM02BABtAsfaQ1p8wX4SdTfxrKTRue/ZZqrhNVh5oL7T/DUFiTS9DRgxow== + dependencies: + "@babel/runtime" "^7.29.7" + "@noble/curves" "^1.9.7" + "@noble/hashes" "^1.8.0" + "@solana/buffer-layout" "^4.0.1" + "@solana/codecs-numbers" "^5.5.1" + agentkeepalive "^4.6.0" + bn.js "^5.2.5" + borsh "^0.7.0" + bs58 "^4.0.1" + buffer "6.0.3" + fast-stable-stringify "^1.0.0" + jayson "^4.3.0" + node-fetch "^2.7.0" + rpc-websockets "^9.0.2" + superstruct "^2.0.2" + "@solana/web3.js@^1.93.0", "@solana/web3.js@^1.98.0": version "1.98.4" resolved "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.98.4.tgz" @@ -1365,7 +2017,7 @@ acorn@^8.10.0, acorn@^8.11.0, acorn@^8.15.0, acorn@^8.4.1, acorn@^8.9.0: resolved "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz" integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== -agentkeepalive@^4.5.0: +agentkeepalive@^4.5.0, agentkeepalive@^4.6.0: version "4.6.0" resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz" integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== @@ -1428,6 +2080,11 @@ bn.js@^4.0.0, bn.js@^4.11.9: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.3.tgz#2cc2c679188eb35b006f2d0d4710bed8437a769e" integrity sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g== +bn.js@^5.1.2, bn.js@^5.2.5: + version "5.2.5" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.5.tgz#e81ce41cf25e6f0cd1e05f20a9db8c18405e375f" + integrity sha512-Vq886eXykuP5E6HcKSSStP3bJgrE6In5WKxVUvJ8XGpWWYs2xZHWqUwzCtGgEtBcxyd57KBFDPFoUfNzdaHCNg== + bn.js@^5.2.0, bn.js@^5.2.1: version "5.2.2" resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz" @@ -1466,6 +2123,11 @@ bs58@^6.0.0: dependencies: base-x "^5.0.0" +buffer-layout@^1.2.0, buffer-layout@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" + integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== + buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: version "6.0.3" resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" @@ -1486,6 +2148,11 @@ cac@^6.7.14: resolved "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz" integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== +camelcase@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + chai@^4.3.10: version "4.5.0" resolved "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz" @@ -1521,6 +2188,11 @@ commander@14.0.2, commander@^14.0.0: resolved "https://registry.npmjs.org/commander/-/commander-14.0.2.tgz" integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== +commander@15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" + integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== + commander@^2.20.3: version "2.20.3" resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" @@ -1536,6 +2208,13 @@ create-require@^1.1.0: resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== +cross-fetch@^3.1.5: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" + integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== + dependencies: + node-fetch "^2.7.0" + debug@^4.3.4: version "4.4.3" resolved "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz" @@ -1624,6 +2303,11 @@ esbuild@^0.21.3: "@esbuild/win32-ia32" "0.21.5" "@esbuild/win32-x64" "0.21.5" +eventemitter3@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + eventemitter3@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz" @@ -1688,7 +2372,7 @@ isomorphic-ws@^4.0.1: resolved "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz" integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== -jayson@^4.1.1: +jayson@^4.1.1, jayson@^4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/jayson/-/jayson-4.3.0.tgz" integrity sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ== @@ -1784,6 +2468,11 @@ p-limit@^4.0.0: dependencies: yocto-queue "^1.0.0" +pako@^2.0.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.2.0.tgz#246b9d4c841a8d308e484c0d03786651b143e63a" + integrity sha512-zJq6RP/5q+TO2OpFV3FHzlPnFjmkb7Nc99a5SNjJE+uu/PkpChs+NIZSSzbBoD+6kjiISXjfYdwj1ZRQ81dz/w== + pathe@^1.1.1: version "1.1.2" resolved "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz" @@ -1952,6 +2641,11 @@ strip-literal@^1.0.1: dependencies: acorn "^8.10.0" +superstruct@^0.15.4: + version "0.15.5" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" + integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== + superstruct@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/superstruct/-/superstruct-2.0.2.tgz" @@ -1977,6 +2671,11 @@ tinyspy@^2.1.1: resolved "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz" integrity sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A== +toml@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" + integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== + tr46@~0.0.3: version "0.0.3" resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" @@ -2031,6 +2730,11 @@ undici-types@^7.16.0, undici-types@^7.18.2: resolved "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz" integrity sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w== +undici-types@^8.10.2: + version "8.10.2" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" + integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== + undici-types@~6.21.0: version "6.21.0" resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz" @@ -2137,6 +2841,11 @@ ws@^8.19.0, ws@^8.5.0: resolved "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz" integrity sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg== +ws@^8.21.3: + version "8.21.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" + integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== + yn@3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" diff --git a/delegation-actions/anchor/package.json b/delegation-actions/anchor/package.json index 9b07f60f..6c6d042b 100644 --- a/delegation-actions/anchor/package.json +++ b/delegation-actions/anchor/package.json @@ -5,12 +5,15 @@ "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", "build": "anchor keys sync && anchor build", "test:local": ". ../../scripts/local-env.sh && npx ts-mocha -p ./tsconfig.json -t 1000000 tests/delegation-actions-local.ts", + "test:magicsvm": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests-magicsvm/delegation-actions.ts", + "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture", "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh delegation-actions", "test": "yarn test:local" }, "dependencies": { "@coral-xyz/anchor": "^0.32.1", "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3", + "@magicblock-labs/magicsvm": "0.2.0", "@solana/web3.js": "^1.98.2", "magic-router-sdk": "^1.0.8" }, @@ -18,11 +21,13 @@ "@types/bn.js": "^5.1.0", "@types/chai": "^4.3.0", "@types/mocha": "^9.0.0", + "@types/node": "^22.13.10", "chai": "^4.3.4", "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^5.7.3" + "typescript": "^5.7.3", + "@magicblock-labs/test-utils": "link:../../test-utils/ts" }, "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" } diff --git a/delegation-actions/anchor/programs/delegation-actions/src/lib.rs b/delegation-actions/anchor/programs/delegation-actions/src/lib.rs index 6c8b48b7..c5c6fef4 100644 --- a/delegation-actions/anchor/programs/delegation-actions/src/lib.rs +++ b/delegation-actions/anchor/programs/delegation-actions/src/lib.rs @@ -6,7 +6,7 @@ use ephemeral_rollups_sdk::cpi::{delegate_account_with_actions, DelegateAccounts use ephemeral_rollups_sdk::dlp_api::compact::ClearText; use ephemeral_rollups_sdk::ephem::MagicIntentBundleBuilder; -declare_id!("7utsCSeoSCMkFPXESmKPrAHrVqTaeTepfhXerSf8DWEh"); +declare_id!("7cRQuYsAe4F6ryBTxdvxNuFpJ6XRm38qcdd9V3NH7amc"); pub const COUNTER_SEED: &[u8] = b"counter"; diff --git a/delegation-actions/anchor/tests-magicsvm-rs/Cargo.lock b/delegation-actions/anchor/tests-magicsvm-rs/Cargo.lock new file mode 100644 index 00000000..d4715f6a --- /dev/null +++ b/delegation-actions/anchor/tests-magicsvm-rs/Cargo.lock @@ -0,0 +1,6615 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common 0.1.7", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures 0.2.17", +] + +[[package]] +name = "aes-gcm-siv" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae0784134ba9375416d469ec31e7c5f9fa94405049cf08c5ce5b4698be673e0d" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "polyval", + "subtle", + "zeroize", +] + +[[package]] +name = "agave-feature-set" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e724c6d41535d61eb4cba970716f6cfcef8d3f4d15750488f77a7630faab680" +dependencies = [ + "ahash 0.8.12", + "solana-epoch-schedule 3.2.0", + "solana-hash 4.5.0", + "solana-keypair", + "solana-pubkey 4.2.0", + "solana-sha256-hasher 3.1.0", + "solana-svm-feature-set", +] + +[[package]] +name = "agave-reserved-account-keys" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa474270f9cd8d71089979f1ad8e31c2eccde8b32d1ca03f33fe1123104d562" +dependencies = [ + "agave-feature-set", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "agave-transaction-view" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11af131e96e1a0df153db2d673a28293d171da78056104ec8e0d396e2bdf305b" +dependencies = [ + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-packet 4.2.0", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-svm-transaction", + "solana-transaction 4.1.6", +] + +[[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", + "getrandom 0.3.4", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "anchor-attribute-access-control" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a0ba6f4d5cff33a16a8cb30fd7419b71cf8b8b408998a341235cefe7e76cc1c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-account" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af875fe99d9dab01317a3bac577b05f3e52d5bd7d1b424de488ba51f3310feab" +dependencies = [ + "anchor-syn", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-constant" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345a11192cd11fdc8663e3194bbcd0c983c019cd9f21804d7853eeee5ee22653" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-error" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e5f6290f0f54e0e34b8efbb4dcd69dc2c46c655ada8198f35f403d2a88cf9c7" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-event" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0159e0fae5b1b508110b8753fda23ebce778f3bd8c146b8baabd12d2cebe4a7" +dependencies = [ + "anchor-syn", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-program" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51180111bea3660c0db345bfee34cf23f8d89cf2ac8dd5d8c7a044b3fb24d961" +dependencies = [ + "anchor-lang-idl", + "anchor-syn", + "anyhow", + "heck 0.3.3", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-accounts" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b802cd6561645117219ae6ed62cd322501bf1b5b7fa1a6fd8d911428c4c37192" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-serde" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa658e7d911c4290fe9ee953e75cf95f3c4db19c053f64071512867fa9f40394" +dependencies = [ + "anchor-syn", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-space" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69520cea030ee13d2978087a467bf32078012a5ce06b2746318c359887d481ed" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-lang" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bac4de7c9a9a69180798af701e22302cc0ebf2ef683b843706a1b7809454735" +dependencies = [ + "anchor-attribute-access-control", + "anchor-attribute-account", + "anchor-attribute-constant", + "anchor-attribute-error", + "anchor-attribute-event", + "anchor-attribute-program", + "anchor-derive-accounts", + "anchor-derive-serde", + "anchor-derive-space", + "base64 0.21.7", + "bincode", + "borsh 1.8.1", + "bytemuck", + "const-crypto", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-define-syscall 3.0.0", + "solana-feature-gate-interface 3.1.0", + "solana-instruction 3.4.1", + "solana-instructions-sysvar 3.0.1", + "solana-invoke", + "solana-loader-v3-interface 6.1.1", + "solana-msg 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-stake-interface 2.0.2", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", + "thiserror 1.0.69", +] + +[[package]] +name = "anchor-lang-idl" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47914b4290ae2bdf4ec203aa821e6eba86d7c78ef497918938038dcc6919f953" +dependencies = [ + "anchor-lang-idl-spec", + "anyhow", + "heck 0.3.3", + "serde", + "serde_json", + "sha2 0.10.9", +] + +[[package]] +name = "anchor-lang-idl-spec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bdf143115440fe621bdac3a29a1f7472e09f6cd82b2aa569429a0c13f103838" +dependencies = [ + "anyhow", + "serde", +] + +[[package]] +name = "anchor-syn" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ef87b1d3ae59fbf265a9157a9082308af220b4ef5a64a360d8820dcf25b5a86" +dependencies = [ + "bs58", + "heck 0.3.3", + "proc-macro2", + "quote", + "serde", + "sha2 0.11.0", + "syn 2.0.119", + "thiserror 1.0.69", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anyhow" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" + +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-bn254" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-std 0.5.0", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", + "itertools 0.13.0", + "num-bigint 0.4.8", + "num-integer", + "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 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.8", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm 0.5.0", + "ark-ff-macros 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "educe", + "itertools 0.13.0", + "num-bigint 0.4.8", + "num-traits", + "paste", + "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-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive 0.4.2", + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint 0.4.8", +] + +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-serialize-derive 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "num-bigint 0.4.8", +] + +[[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-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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.8", +] + +[[package]] +name = "ark-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" +dependencies = [ + "num-traits", + "rand 0.8.8", +] + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" + +[[package]] +name = "ascii" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[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 = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[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.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" + +[[package]] +name = "bitvec" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddcec3d12c579d40898fe0a9a358a803c23e9c52ca3c425707f81c9436211837" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake3" +version = "1.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d9e454fc11f76977dc803893aff6304ed33d6a26efae8696573bea74baa27ae" +dependencies = [ + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "cpufeatures 0.3.1", + "digest 0.11.3", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "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-buffer" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "blst" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20659f9bbee16cbbd2f7393e40ab6309f5a98f76a2eb57a995ec508b72387fe" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "blstrs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a8a8ed6fefbeef4a8c7b460e4110e12c5e22a5b7cf32621aae6ad650c4dcf29" +dependencies = [ + "blst", + "byte-slice-cast", + "ff", + "group", + "pairing", + "rand_core 0.6.4", + "serde", + "subtle", +] + +[[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.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "553c5d846a6ba5150c65e3b1b8ec073bcf1abc20f9b7220de384a4443ea4e20a" +dependencies = [ + "borsh-derive 1.8.1", + "bytes", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831213f80d9423998dd696e2c5345aba6be7a0bd8cd19e31c5243e13df1cef89" +dependencies = [ + "borsh-derive-internal", + "borsh-schema-derive-internal", + "proc-macro-crate 0.1.5", + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12cdfe656708a01f89b451a7d36466e6fe6c414de0aa18fc54f864f6f9ca9f56" +dependencies = [ + "once_cell", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[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.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.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[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 = "byte-slice-cast" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" + +[[package]] +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bytemuck" +version = "1.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a1f896587b6f2c069c73d2f0913e2d590c3990285cd2f0b6aa02b786b4c679c" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" + +[[package]] +name = "cc" +version = "1.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3eb0f42d6c360dc3f8a821f6bf2fdea7f72bfd36b3076eb0e6d1e9e0752fff4" +dependencies = [ + "find-msvc-tools", + "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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" + +[[package]] +name = "cfg_eval" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45565fc9416b9896014f5732ac776f810ee53a66730c17e4020c3ec064a8f88f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common 0.1.7", + "inout", +] + +[[package]] +name = "cmov" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" + +[[package]] +name = "combine" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" +dependencies = [ + "ascii", + "byteorder", + "either", + "memchr", + "unreachable", +] + +[[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 = "const-crypto" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c06f1eb05f06cf2e380fdded278fbf056a38974299d77960555a311dcf91a52" +dependencies = [ + "keccak-const", + "sha2-const-stable", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const-oid" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" + +[[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 = "cpufeatures" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a7799fd6b852db0e61728dde9a204c423b44d689dbd432522543614b490e78" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "crypto-common" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "ct-codecs" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49fb0c6640b4507ebd99ff67677009e381ba5eee1d14df78de4a3d16eb123c39" + +[[package]] +name = "ctor" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1c888a2a4f677017373fb6c01e13e318dd9e78758445ed5eb985e355d3f8281" +dependencies = [ + "ctor-proc-macro", + "dtor", + "link-section", +] + +[[package]] +name = "ctor-proc-macro" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7ab264ea985f1bd27887d7b21ea2bb046728e05d11909ca138d700c494730db" + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "ctutils" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" +dependencies = [ + "cmov", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "rand_core 0.6.4", + "rustc_version", + "serde", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core 0.23.0", + "darling_macro 0.23.0", +] + +[[package]] +name = "darling" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed17f5901b6630b993ca003def43f2f8ef4014fc13b047b57aad617ff32bc2ec" +dependencies = [ + "darling_core 0.24.1", + "darling_macro 0.24.1", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.119", +] + +[[package]] +name = "darling_core" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6837e2cf7485aaae18f86181d2f0e9a7ed297a025e220aeabf63fdebd3a2ddff" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 3.0.5", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "darling_macro" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ac7135c3ef02b2f7833bbeb1be5ba7f966dcde8a87c6b87f65a778d71a02785" +dependencies = [ + "darling_core 0.24.1", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "dary_heap" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b1e3a325bc115f096c8b77bbf027a7c2592230e70be2d985be950d3d5e60ebe" + +[[package]] +name = "delegation-actions" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "ephemeral-rollups-sdk 0.16.2", +] + +[[package]] +name = "delegation-actions-magicsvm-tests" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "delegation-actions", + "magicsvm", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-native-token 3.0.0", + "solana-signer", + "solana-transaction 4.1.6", + "test-utils", +] + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid 0.9.6", + "zeroize", +] + +[[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", + "const-oid 0.9.6", + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "digest" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" +dependencies = [ + "block-buffer 0.12.1", + "const-oid 0.10.2", + "crypto-common 0.2.2", + "ctutils", +] + +[[package]] +name = "dtor" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30e4690622ab6700ced40fc370a3f07b7d111f0154bb6fb08f73b4c8834f75b6" +dependencies = [ + "dtor-proc-macro", +] + +[[package]] +name = "dtor-proc-macro" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c98b077c7463d01d22dde8a24378ddf1ca7263dc687cffbed38819ea6c21131" + +[[package]] +name = "eager" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abe71d579d1812060163dff96056261deb5bf6729b100fa2e36a68b9649ba3d3" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand_core 0.6.4", + "serde", + "sha2 0.10.9", + "subtle", + "zeroize", +] + +[[package]] +name = "ed25519-dalek-bip32" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b49a684b133c4980d7ee783936af771516011c8cd15f429dbda77245e282f03" +dependencies = [ + "derivation-path", + "ed25519-dalek", + "hmac", + "sha2 0.10.9", +] + +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "either" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "enum-iterator" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4549325971814bda7a44061bf3fe7e487d447cba01e4220a4b454d630d7a016" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685adfa4d6f3d765a26bc5dbc936577de9abf756c1feeb3089b01dd395034842" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "enum-ordinalize" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89dd01549b09589510cf0647475075d12071456586d70f5c75c98ae2a5537677" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a65863d15a4ce2888bd2f0f543cc963d3879c3a022c8ee43f6141d479a3ac815" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "ephemeral-rollups-sdk" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "838564736408ada011e9986c819b26cf0195bb2dd238e10be258731979213d75" +dependencies = [ + "base64ct", + "bincode", + "bytemuck", + "ephemeral-rollups-sdk-attribute-action 0.14.4", + "ephemeral-rollups-sdk-attribute-commit 0.14.4", + "ephemeral-rollups-sdk-attribute-delegate 0.14.4", + "ephemeral-rollups-sdk-attribute-ephemeral 0.14.4", + "ephemeral-rollups-sdk-attribute-ephemeral-accounts 0.14.4", + "five8 0.2.1", + "getrandom 0.2.17", + "magicblock-delegation-program-api", + "magicblock-magic-program-api 0.10.1", + "num-derive", + "num-traits", + "solana-account 3.4.0", + "solana-account-info 2.3.0", + "solana-account-info 3.1.1", + "solana-address 2.6.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program 2.3.0", + "solana-program 3.0.0", + "solana-program-error 2.2.2", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "spl-associated-token-account-interface", + "thiserror 1.0.69", +] + +[[package]] +name = "ephemeral-rollups-sdk" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a267fd1fe36f82ed50307b3757561ac59b1629a523fd179e2a66f4383c9afc0a" +dependencies = [ + "anchor-lang", + "base64ct", + "bincode", + "bytemuck", + "ephemeral-rollups-sdk-attribute-action 0.16.2", + "ephemeral-rollups-sdk-attribute-commit 0.16.2", + "ephemeral-rollups-sdk-attribute-delegate 0.16.2", + "ephemeral-rollups-sdk-attribute-ephemeral 0.16.2", + "ephemeral-rollups-sdk-attribute-ephemeral-accounts 0.16.2", + "ephemeral-vrf-sdk", + "ephemeral-vrf-sdk-vrf-macro", + "five8 0.2.1", + "getrandom 0.2.17", + "magicblock-delegation-program-api", + "magicblock-magic-program-api 0.10.1", + "solana-account-info 2.3.0", + "solana-address 2.6.1", + "solana-program 2.3.0", + "solana-program 3.0.0", + "solana-program-error 2.2.2", + "solana-system-interface 2.0.0", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-action" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a29f33b94edcdfcf1b9b7a61aa0ac00e8efdc66f89c8b4b573f7ea965a42c60a" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-action" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3847b70bac1717bfd3108fe310195e658665b2d971bcb4eb2aa5aaca2c9392" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-commit" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da9ed3ea8b850013f6bf768e5f0f2e1f22f1861b46908764536795bf67bb5c67" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-commit" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b08e06840701468449f75916e922fd9694b787596efe66cd9b8dccf3ef0eb5e6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-delegate" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f0d8ab90b4ecc7ac802bbd2115681f9fd42bc5a9018be79ba7aff1fe971aa36" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-delegate" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc365676345c77eed3651debb63af9b282902100e5852a1822ee1385e3b285fe" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ea166c57ee55b329be4eae730561fe02aad5620a35b4d89439d8d0c9e07c3a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fce2590d04b16345a3117c0b66b6822a96a5ef3bc7b9add073cb3a797529d8df" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral-accounts" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa3efae094f5c288746d479fd605b67bcd56d29ddcf1238046ac07eeec130c45" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral-accounts" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f70d4bbf6761a71df97fbadcb4cceef630e2d6e37189f5e674ff34bb2210823" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-vrf-sdk" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77f3741c733907c10e0d0b32f9aa485c20a73e0b1e7e673a0ac38185fb2a6c11" +dependencies = [ + "anchor-lang", + "borsh 1.8.1", + "ephemeral-vrf-sdk-vrf-macro", + "solana-program 3.0.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "ephemeral-vrf-sdk-vrf-macro" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7b8b3fe3863a27d4c0f32da7b3cfeff179772fd4124d6c9fdcb9d4ab23cd602" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "feature-probe" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" + +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "bitvec", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "filetime" +version = "0.2.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c287a33c7f0a620c38e641e7f60827713987b3c0f26e8ddc9462cc69cf75759" +dependencies = [ + "cfg-if", + "libc", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d" + +[[package]] +name = "five8" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75b8549488b4715defcb0d8a8a1c1c76a80661b5fa106b4ca0e7fce59d7d875" +dependencies = [ + "five8_core 0.1.2", +] + +[[package]] +name = "five8" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23f76610e969fa1784327ded240f1e28a3fd9520c9cec93b636fcf62dd37f772" +dependencies = [ + "five8_core 1.0.0", +] + +[[package]] +name = "five8_const" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26dec3da8bc3ef08f2c04f61eab298c3ab334523e55f076354d6d6f613799a7b" +dependencies = [ + "five8_core 0.1.2", +] + +[[package]] +name = "five8_const" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a0f1728185f277989ca573a402716ae0beaaea3f76a8ff87ef9dd8fb19436c5" +dependencies = [ + "five8_core 1.0.0", +] + +[[package]] +name = "five8_core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2551bf44bc5f776c15044b9b94153a00198be06743e262afaaa61f11ac7523a5" + +[[package]] +name = "five8_core" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "059c31d7d36c43fe39d89e55711858b4da8be7eb6dabac23c7289b1a19489406" + +[[package]] +name = "flate2" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb" +dependencies = [ + "zlib-rs", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures-core" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" + +[[package]] +name = "futures-task" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" + +[[package]] +name = "futures-util" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" +dependencies = [ + "futures-core", + "futures-task", + "pin-project-lite", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[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 = "glob" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand 0.8.8", + "rand_core 0.6.4", + "rand_xorshift", + "subtle", +] + +[[package]] +name = "hash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" +dependencies = [ + "byteorder", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284" + +[[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 = "http" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hybrid-array" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27f864f10dfb56725ce5ce5472bc52252c8f93a4ab86327122cebf62c5f59a17" +dependencies = [ + "typenum", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "indexmap" +version = "2.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", +] + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "generic-array", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "js-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2 0.10.9", + "signature", +] + +[[package]] +name = "keccak" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" +dependencies = [ + "cpufeatures 0.2.17", +] + +[[package]] +name = "keccak-const" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d8d8ce877200136358e0bbff3a77965875db3af755a11e1fa6b1b3e2df13ea" + +[[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.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" + +[[package]] +name = "libflate" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "561a8da1a50e1428d3c51321dafeca849df992a5bb67720c386131234caba82e" +dependencies = [ + "adler32", + "crc32fast", + "dary_heap", + "libflate_lz77", + "no_std_io2", +] + +[[package]] +name = "libflate_lz77" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7a10e427698aef6eef269482776debfef63384d30f13aad39a1a95e0e098fd" +dependencies = [ + "hashbrown 0.16.1", + "no_std_io2", + "rle-decode-fast", +] + +[[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", + "libsecp256k1-core 0.2.2", + "libsecp256k1-gen-ecmult 0.2.1", + "libsecp256k1-gen-genmult 0.2.1", + "rand 0.7.3", + "serde", + "sha2 0.9.9", +] + +[[package]] +name = "libsecp256k1" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" +dependencies = [ + "arrayref", + "base64 0.22.1", + "digest 0.9.0", + "libsecp256k1-core 0.3.0", + "libsecp256k1-gen-ecmult 0.3.0", + "libsecp256k1-gen-genmult 0.3.0", + "rand 0.8.8", + "serde", + "sha2 0.9.9", +] + +[[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-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" +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 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" +dependencies = [ + "libsecp256k1-core 0.3.0", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" +dependencies = [ + "libsecp256k1-core 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" +dependencies = [ + "libsecp256k1-core 0.3.0", +] + +[[package]] +name = "libsodium-rs" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b8cd48c80d6c6fa5a4612d242941067219555baea82b0b49c92ea9d8156b59c" +dependencies = [ + "ct-codecs", + "ctor", + "libc", + "libsodium-sys-stable", + "pkg-config", + "thiserror 1.0.69", + "zeroize", +] + +[[package]] +name = "libsodium-sys-stable" +version = "1.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b04bf6da2c98b727af37ab62cb505f4d751b975b034a9b9ad491d333b0564e" +dependencies = [ + "cc", + "libc", + "libflate", + "minisign-verify", + "pkg-config", + "tar", + "ureq", + "vcpkg", + "zip", +] + +[[package]] +name = "light-poseidon" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c9a85a9752c549ceb7578064b4ed891179d20acd85f27318573b64d2d7ee7ee" +dependencies = [ + "ark-bn254 0.4.0", + "ark-ff 0.4.2", + "num-bigint 0.4.8", + "thiserror 1.0.69", +] + +[[package]] +name = "light-poseidon" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47a1ccadd0bb5a32c196da536fd72c59183de24a055f6bf0513bf845fefab862" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ff 0.5.0", + "num-bigint 0.4.8", + "thiserror 1.0.69", +] + +[[package]] +name = "link-section" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52437d47b0358721ec869cc7374b2a21f7b2237af9b439c0391341a1fbfbf1b" + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[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.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" + +[[package]] +name = "magicblock-account" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b5671bd1525eeab67f240455dffff31a4f6d27b067a3531f2d47c7d5af0c6e" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "thiserror 2.0.20", +] + +[[package]] +name = "magicblock-delegation-program-api" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea16e41e04319201919afca98dd4241b18549f2db0c68f58e4bc531537b5dab" +dependencies = [ + "bincode", + "borsh 0.10.4", + "borsh 1.8.1", + "bytemuck", + "const-crypto", + "libsodium-rs", + "num_enum", + "pinocchio 0.10.2", + "pinocchio-log", + "pinocchio-pubkey", + "pinocchio-system", + "rkyv", + "serde", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-loader-v3-interface 6.1.1", + "solana-program 3.0.0", + "solana-pubkey 2.4.0", + "solana-sdk", + "solana-sdk-ids 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-system-interface 2.0.0", + "static_assertions", + "strum", + "thiserror 2.0.20", +] + +[[package]] +name = "magicblock-litesvm" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82cfc1c7f4348c300f58ddd5ae8613e9b1d08564a7956af43822de59cb76d039" +dependencies = [ + "agave-feature-set", + "agave-reserved-account-keys", + "ansi_term", + "indexmap", + "itertools 0.15.0", + "log", + "magicblock-account", + "solana-account 4.3.2", + "solana-address 2.6.1", + "solana-address-lookup-table-interface 3.1.0", + "solana-builtins", + "solana-clock 3.1.1", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-feature-gate-interface 4.0.0", + "solana-fee", + "solana-fee-calculator 3.2.2", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-instructions-sysvar 4.0.0", + "solana-keypair", + "solana-last-restart-slot 3.1.0", + "solana-loader-v3-interface 8.0.1", + "solana-loader-v4-interface 3.1.0", + "solana-message 4.4.1", + "solana-native-token 3.0.0", + "solana-nonce 3.2.1", + "solana-nonce-account", + "solana-precompile-error", + "solana-program-error 3.0.1", + "solana-program-runtime", + "solana-rent 4.3.0", + "solana-runtime-transaction", + "solana-sdk-ids 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-signature 3.4.1", + "solana-signer", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stake-history", + "solana-svm-callback", + "solana-svm-log-collector", + "solana-svm-timings", + "solana-svm-transaction", + "solana-syscalls", + "solana-system-interface 3.2.0", + "solana-system-program", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "magicblock-magic-program-api" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291f7a68f6cc622741a3fae513bd71640911abefd1fae2b2602b934515ed4b95" +dependencies = [ + "bincode", + "const-crypto", + "serde", + "solana-program 2.3.0", + "solana-signature 2.3.0", +] + +[[package]] +name = "magicblock-magic-program-api" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dc8fba0307c90b91b70c9ed06d4242d6c4159f331b2f05bf8f875c2a94e0e98" +dependencies = [ + "bincode", + "const-crypto", + "serde", + "solana-program 3.0.0", + "solana-signature 3.4.1", +] + +[[package]] +name = "magicsvm" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e3effa3b8d28f3e0a14d1b72afcf65c2bec2331882a19065ec4424cd5c7ee37" +dependencies = [ + "bincode", + "borsh 1.8.1", + "ephemeral-rollups-sdk 0.14.4", + "magicblock-account", + "magicblock-delegation-program-api", + "magicblock-litesvm", + "magicblock-magic-program-api 0.8.8", + "solana-account 4.3.2", + "solana-address 2.6.1", + "solana-clock 3.1.1", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-program-runtime", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-signer", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[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 = "minisign-verify" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22f9645cb765ea72b8111f36c522475d2daa0d22c957a9826437e97534bc4e9e" + +[[package]] +name = "no_std_io2" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418abd1b6d34fbf6cae440dc874771b0525a604428704c76e48b29a5e67b8003" +dependencies = [ + "memchr", +] + +[[package]] +name = "num" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" +dependencies = [ + "num-bigint 0.2.6", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +dependencies = [ + "autocfg", + "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.119", +] + +[[package]] +name = "num-integer" +version = "0.1.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92800bd69a1eac91786bcfe9da64a897eb72911b8dc3095decbd07429e8048b" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +dependencies = [ + "autocfg", + "num-bigint 0.2.6", + "num-integer", + "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_cpus" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group", +] + +[[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 = "pastey" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4" + +[[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 = "percentage" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd23b938276f14057220b707937bcb42fa76dda7560e57a2da30cb52d557937" +dependencies = [ + "num", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pinocchio" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8afe4f39c0e25cc471b35b89963312791a5162d45a86578cbeaad9e5e7d1b3b" + +[[package]] +name = "pinocchio" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06810dac15a4ef83d3dabdb4f2f22fb39c9adff669cd2781da4f716510a647c" +dependencies = [ + "solana-account-view", + "solana-address 2.6.1", + "solana-define-syscall 4.0.1", + "solana-instruction-view", + "solana-program-error 3.0.1", +] + +[[package]] +name = "pinocchio-log" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd11022408f312e6179ece321c1f7dc0d1b2aa7765fddd39b2a7378d65a899e8" +dependencies = [ + "pinocchio-log-macro", +] + +[[package]] +name = "pinocchio-log-macro" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69fb52edb3c5736b044cc462b0957b9767d0f574d138f4e2761438c498a4b467" +dependencies = [ + "quote", + "regex", + "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 0.1.4", + "pinocchio 0.9.3", + "sha2-const-stable", +] + +[[package]] +name = "pinocchio-system" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24044a0815753862b558e179e78f03f7344cb755de48617a09d7d23b50883b6c" +dependencies = [ + "pinocchio 0.10.2", + "solana-address 2.6.1", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "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.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[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.119", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +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 = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e058c7de0b26af77780c769414d6257830bb240f3c38477dbc2c16e5f54d6d4c" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", +] + +[[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_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", +] + +[[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_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] + +[[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_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + +[[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.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "rend" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "rkyv" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2297bf9c81a3f0dc96bc9521370b88f054168c29826a75e89c55ff196e7ed6a1" +dependencies = [ + "bitvec", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d7b42d4b8d06048d3ac8db0eb31bcb942cbeb709f0b5f2b2ebde398d3038f5" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rle-decode-fast" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" + +[[package]] +name = "rustc-demangle" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b74b56ffa8bb2830709a538c2cbcae9aa062db0d2a42563bfb09bdaae44020eb" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-big-array" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" +dependencies = [ + "serde", +] + +[[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.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "serde_json" +version = "1.0.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_with" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "935177bb8c0cd8ca1a4e6d1a2ac8988bea69cab4f9d3a31311e012ad27868ea4" +dependencies = [ + "serde_core", + "serde_with_macros", +] + +[[package]] +name = "serde_with_macros" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d607aa01a3cb0ad757d6fd216136910db3c97b102fe686585689615a02dbcdc" +dependencies = [ + "darling 0.24.1", + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[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 0.2.17", + "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 0.2.17", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.1", + "digest 0.11.3", +] + +[[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.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77fd7028345d415a4034cf8777cd4f8ab1851274233b45f84e3d955502d93874" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "simd-adler32" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba467056f1b547ed52077911161fc86985becbc60e8e1857c8a144dab0def891" + +[[package]] +name = "solana-account" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f949fe4edaeaea78c844023bfc1c898e0b1f5a100f8a8d2d0f85d0a7b090258" +dependencies = [ + "solana-account-info 2.3.0", + "solana-clock 2.2.3", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-account" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efc0ed36decb689413b9da5d57f2be49eea5bebb3cf7897015167b0c4336e731" +dependencies = [ + "bincode", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 3.1.1", +] + +[[package]] +name = "solana-account" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26788ba0d7eb5b250edda3e1d393739bafd5daf94882f2261d14f5ab0d6a25e0" +dependencies = [ + "bincode", + "qualifier_attr", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 4.1.0", +] + +[[package]] +name = "solana-account-info" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8f5152a288ef1912300fc6efa6c2d1f9bb55d9398eb6c72326360b8063987da" +dependencies = [ + "bincode", + "serde", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-account-info" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9cf16495d9eb53e3d04e72366a33bb1c20c24e78c171d8b8f5978357b63ae95" +dependencies = [ + "bincode", + "serde_core", + "solana-address 2.6.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.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.6.1", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-address" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2ecac8e1b7f74c2baa9e774c42817e3e75b20787134b76cc4d45e8a604488f5" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-address" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c93e262f671bf402e1040e4a7e40b05d81da5956c7681948c975a0997517bb" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8 1.0.0", + "five8_const 1.0.0", + "rand 0.9.5", + "serde", + "serde_derive", + "sha2-const-stable", + "solana-atomic-u64 3.0.1", + "solana-define-syscall 5.2.0", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.1.0", + "wincode", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1673f67efe870b64a65cb39e6194be5b26527691ce5922909939961a6e6b395" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-slot-hashes 2.2.1", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115b4f773acc4f3f3cb986b0d335e9845c0368c82b0940410935bc11ae065578" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", +] + +[[package]] +name = "solana-atomic-u64" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52e52720efe60465b052b9e7445a01c17550666beec855cce66f44766697bc2" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "solana-atomic-u64" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "085db4906d89324cef2a30840d59eaecf3d4231c560ec7c9f6614a93c652f501" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "solana-big-mod-exp" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75db7f2bbac3e62cfd139065d15bcda9e2428883ba61fc8d27ccb251081e7567" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-big-mod-exp" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30c80fb6d791b3925d5ec4bf23a7c169ef5090c013059ec3ed7d0b2c04efa085" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "solana-define-syscall 3.0.0", +] + +[[package]] +name = "solana-bincode" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19a3787b8cf9c9fe3dd360800e8b70982b9e5a8af9e11c354b6665dd4a003adc" +dependencies = [ + "bincode", + "serde", + "solana-instruction 2.3.3", +] + +[[package]] +name = "solana-bincode" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "278a1a5bad62cd9da89ac8d4b7ec444e83caa8ae96aa656dfc27684b28d49a5d" +dependencies = [ + "bincode", + "serde_core", + "solana-instruction-error", +] + +[[package]] +name = "solana-blake3-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a0801e25a1b31a14494fc80882a036be0ffd290efc4c2d640bfcca120a4672" +dependencies = [ + "blake3", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-blake3-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7116e1d942a2432ca3f514625104757ab8a56233787e95144c93950029e31176" +dependencies = [ + "blake3", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-bls-signatures" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "654ea8d31bbb4b0b9c28f9c545edb32691de27d4e2fc0e252c1ff47da50c5f2a" +dependencies = [ + "base64 0.22.1", + "blst", + "blstrs", + "cfg_eval", + "ff", + "group", + "pairing", + "rand 0.8.8", + "serde", + "serde_json", + "serde_with", + "thiserror 2.0.20", + "wincode", + "zeroize", +] + +[[package]] +name = "solana-bls12-381-syscall" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94e8256fda0542709fd1320a96d81c3c66e10ac5f680cca9b991d7d3b0e3fe86" +dependencies = [ + "blst", + "blstrs", + "bytemuck", + "bytemuck_derive", + "pairing", +] + +[[package]] +name = "solana-bn254" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62ff13a8867fcc7b0f1114764e1bf6191b4551dcaf93729ddc676cd4ec6abc9f" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "bytemuck", + "solana-define-syscall 5.2.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-borsh" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718333bcd0a1a7aed6655aa66bef8d7fb047944922b2d3a18f49cbc13e73d004" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", +] + +[[package]] +name = "solana-borsh" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c04abbae16f57178a163125805637b8a076175bb5c0002fb04f4792bea901cf7" +dependencies = [ + "borsh 1.8.1", +] + +[[package]] +name = "solana-bpf-loader-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabcc3a5785886f026b438771bf6b221b0d4877f6089af79d432c7fe877a6cd4" +dependencies = [ + "bincode", + "qualifier_attr", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-clock 3.1.1", + "solana-instruction 3.4.1", + "solana-loader-v3-interface 7.0.0", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-type-overrides", + "solana-syscalls", + "solana-system-interface 3.2.0", + "solana-transaction-context", +] + +[[package]] +name = "solana-builtins" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ab49c6f8a77bff54e811e9674747fd435e218dcbe71120039a865515151998c" +dependencies = [ + "agave-feature-set", + "solana-bpf-loader-program", + "solana-compute-budget-program", + "solana-hash 4.5.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-program", + "solana-vote-program", + "solana-zk-elgamal-proof-program", + "solana-zk-token-proof-program", +] + +[[package]] +name = "solana-builtins-default-costs" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76792b1ecab1c5f127f16062926850b52c4bb51ac1a93d220635fb13221d3503" +dependencies = [ + "agave-feature-set", + "ahash 0.8.12", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-clock" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8584296123df8fe229b95e2ebfd37ae637fe9db9b7d4dd677ac5a78e80dbfce" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-clock" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0acdace90d96e2c9e70d681465b4fe888b6bcf27c354ae9774e9f8a3b72923d" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-compute-budget" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e200042fd149d565521f7b31e082c0db0e022e9860c7e013130f812984ae846f" +dependencies = [ + "solana-fee-structure", + "solana-program-runtime", +] + +[[package]] +name = "solana-compute-budget-instruction" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a651fc5d082fd88090a7336ea85599b1ffcf6503dbcff575ae1bb2fb1cec238" +dependencies = [ + "agave-feature-set", + "solana-borsh 3.0.2", + "solana-builtins-default-costs", + "solana-compute-budget", + "solana-compute-budget-interface", + "solana-instruction 3.4.1", + "solana-packet 4.2.0", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-svm-transaction", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-compute-budget-interface" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8292c436b269ad23cecc8b24f7da3ab07ca111661e25e00ce0e1d22771951ab9" +dependencies = [ + "borsh 1.8.1", + "solana-instruction 3.4.1", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-compute-budget-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e314aeb4a86507ba77fb2d6ce9f5836af6aeaaedd4c5314e310ca72f73afe367" +dependencies = [ + "solana-program-runtime", +] + +[[package]] +name = "solana-cpi" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dc71126edddc2ba014622fc32d0f5e2e78ec6c5a1e0eb511b85618c09e9ea11" +dependencies = [ + "solana-account-info 2.3.0", + "solana-define-syscall 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-stable-layout 2.2.1", +] + +[[package]] +name = "solana-cpi" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dea26709d867aada85d0d3617db0944215c8bb28d3745b912de7db13a23280c" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 4.0.1", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-stable-layout 3.0.1", +] + +[[package]] +name = "solana-curve25519" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14b4d2a4bf0d0b0a86c22111917e86e8bd39a7b31420fb2c7d73eb83761fc7af" +dependencies = [ + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "solana-define-syscall 5.2.0", + "subtle", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-decode-error" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c781686a18db2f942e70913f7ca15dc120ec38dcab42ff7557db2c70c625a35" +dependencies = [ + "num-traits", +] + +[[package]] +name = "solana-define-syscall" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ae3e2abcf541c8122eafe9a625d4d194b4023c20adde1e251f94e056bb1aee2" + +[[package]] +name = "solana-define-syscall" +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-define-syscall" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf8209ece2bd9f1450e672858ffc0e5c8c786ff6916d2a862b126dd0128f380f" + +[[package]] +name = "solana-derivation-path" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff71743072690fdbdfcdc37700ae1cb77485aaad49019473a81aee099b1e0b8c" +dependencies = [ + "derivation-path", + "qstring", + "uriparse", +] + +[[package]] +name = "solana-epoch-info" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e093c84f6ece620a6b10cd036574b0cd51944231ab32d81f80f76d54aba833e6" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-epoch-rewards" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b575d3dd323b9ea10bb6fe89bf6bf93e249b215ba8ed7f68f1a3633f384db7" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 2.3.0", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-rewards" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf7eb4986b0b1d6f562b21f75a836f1a6df6e00c275efcef50aab5c144dc59e" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-epoch-rewards-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee8beac9bff4db9225e57d532d169b0be5e447f1e6601a2f50f27a01bf5518f" +dependencies = [ + "siphasher", + "solana-address 2.6.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-epoch-schedule" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fce071fbddecc55d727b1d7ed16a629afe4f6e4c217bc8d00af3b785f6f67ed" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-schedule" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8116e6ffa6002237d5ab5edcbda17f9ba66b6742c45a89c9fb40a94dbacd4c1d" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-program-error 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-epoch-stake" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "027e6d0b9e7daac5b2ac7c3f9ca1b727861121d9ef05084cf435ff736051e7c2" +dependencies = [ + "solana-define-syscall 5.2.0", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-example-mocks" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84461d56cbb8bb8d539347151e0525b53910102e4bced875d49d5139708e39d3" +dependencies = [ + "serde", + "serde_derive", + "solana-address-lookup-table-interface 2.2.2", + "solana-clock 2.2.3", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-keccak-hasher 2.2.1", + "solana-message 2.4.0", + "solana-nonce 2.2.1", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-example-mocks" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978855d164845c1b0235d4b4d101cadc55373fffaf0b5b6cfa2194d25b2ed658" +dependencies = [ + "serde", + "serde_derive", + "solana-address-lookup-table-interface 3.1.0", + "solana-clock 3.1.1", + "solana-hash 3.1.0", + "solana-instruction 3.4.1", + "solana-keccak-hasher 3.1.0", + "solana-message 3.1.0", + "solana-nonce 3.2.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 2.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43f5c5382b449e8e4e3016fb05e418c53d57782d8b5c30aa372fc265654b956d" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 2.2.1", + "solana-account-info 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75ca9b5cbb6f500f7fd73db5bd95640f71a83f04d6121a0e59a43b202dca2731" +dependencies = [ + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd7545e02f91da1d6996f32b18f7796aa01e0682f8f3a7434b82cd1a10448add" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-fee" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c32df41c2c93a567a1612a973faddeaca093276677c157ef9cb60a378289fc69" +dependencies = [ + "agave-feature-set", + "solana-fee-structure", + "solana-svm-transaction", +] + +[[package]] +name = "solana-fee-calculator" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89bc408da0fb3812bc3008189d148b4d3e08252c79ad810b245482a3f70cd8d" +dependencies = [ + "log", + "serde", + "serde_derive", +] + +[[package]] +name = "solana-fee-calculator" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef67f01cc6a0c72e99a08d0d484683f995de4c80e9568728fa77d1537f9b7e09" +dependencies = [ + "log", + "serde", + "serde_derive", + "wincode", +] + +[[package]] +name = "solana-fee-structure" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2abdb1223eea8ec64136f39cb1ffcf257e00f915c957c35c0dd9e3f4e700b0" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-get-sysvar" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef3bc859fc036ed490146793557386cbfae614ebba4adc704c37d94350824ed4" +dependencies = [ + "solana-address 2.6.1", + "solana-define-syscall 5.2.0", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-hard-forks" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb50b2df7a36a2af58ce24bb0229622ac845dcc196e8c23b3ea4a29dd6bee09" + +[[package]] +name = "solana-hash" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b96e9f0300fa287b545613f007dfe20043d7812bee255f418c1eb649c93b63" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "five8 0.2.1", + "js-sys", + "serde", + "serde_derive", + "solana-atomic-u64 2.2.1", + "solana-sanitize 2.2.1", + "wasm-bindgen", +] + +[[package]] +name = "solana-hash" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "337c246447142f660f778cf6cb582beba8e28deb05b3b24bfb9ffd7c562e5f41" +dependencies = [ + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-hash" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f4c847893a2ea50b4ae3ca723b124e07cd0544fecea3598f785168f9b78333f" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "five8 1.0.0", + "serde", + "serde_derive", + "solana-atomic-u64 3.0.1", + "solana-sanitize 3.0.1", + "wincode", +] + +[[package]] +name = "solana-hash-512" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce934b02bab639341f2fd62c3e7e3c39dcceb47f0196b7630ed1f82ecb704bd" + +[[package]] +name = "solana-inflation" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf186550ea7438e2708bd0c233f01fe9c3fa45b9b607ff993b650ce60af102e" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-instruction" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab5682934bd1f65f8d2c16f21cb532526fcc1a09f796e2cacdb091eee5774ad" +dependencies = [ + "bincode", + "borsh 1.8.1", + "getrandom 0.2.17", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "serde_json", + "solana-define-syscall 2.3.0", + "solana-pubkey 2.4.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-instruction" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3957ca1d31107efd9a6bb88b25c348ca5e3b4b6683e3d08adb86d3d17aa01f1" +dependencies = [ + "bincode", + "borsh 1.8.1", + "serde", + "serde_derive", + "solana-define-syscall 5.2.0", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "wincode", +] + +[[package]] +name = "solana-instruction-error" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b7d34343838343a3755b7dfb1e438d94c6db2263b519cfe3c2257af932b6e93" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-program-error 3.0.1", +] + +[[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.6.1", + "solana-define-syscall 4.0.1", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0e85a6fad5c2d0c4f5b91d34b8ca47118fc593af706e523cdbedf846a954f57" +dependencies = [ + "bitflags", + "solana-account-info 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serialize-utils 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e0732294560e88ecdb2bbc656e67383e9f88c78ec09469cef172f0d28cd1bcd" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-serialize-utils 3.1.2", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e38363a181313d607f7a118df2b401bb27b477a0104b09283cbf504f5f0f00cc" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-serialize-utils 3.1.2", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-invoke" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4065031f5c7dd29ef5f5003c1a353011eeabbafa6c5a5033da0cedbfca824b94" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 3.0.0", + "solana-instruction 3.4.1", + "solana-program-entrypoint 3.1.1", + "solana-stable-layout 3.0.1", +] + +[[package]] +name = "solana-keccak-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7aeb957fbd42a451b99235df4942d96db7ef678e8d5061ef34c9b34cae12f79" +dependencies = [ + "sha3", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-keccak-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed1c0d16d6fdeba12291a1f068cdf0d479d9bff1141bf44afd7aa9d485f65ef8" +dependencies = [ + "sha3", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-keypair" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "263d614c12aa267a3278703175fd6440552ca61bc960b5a02a4482720c53438b" +dependencies = [ + "ed25519-dalek", + "ed25519-dalek-bip32", + "five8 1.0.0", + "five8_core 1.0.0", + "rand 0.9.5", + "solana-address 2.6.1", + "solana-derivation-path", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-last-restart-slot" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a6360ac2fdc72e7463565cd256eedcf10d7ef0c28a1249d261ec168c1b55cdd" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-last-restart-slot" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22474b83d3c7c318e1c3a725784fc2d1d03b728e36369e58ce48769a61ed85e" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-loader-v2-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8ab08006dad78ae7cd30df8eea0539e207d08d91eaefb3e1d49a446e1c49654" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f7162a05b8b0773156b443bccd674ea78bb9aa406325b467ea78c06c99a63a2" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e0538d4dbc9022e01616f1c58f2db98ece739c5d5ed4a2ef8737a953e76a2d4" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68029ab11d9c891d4ce23ada75745e40f983c5674af366f447b672569634231b" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "362b468fbde4c20521b9ff5ef743bc0d9b410455a5a92a8b29fd46954e89345f" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", + "wincode", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "706a777242f1f39a83e2a96a2a6cb034cb41169c6ecbee2cf09cb873d9659e7e" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c948b33ff81fa89699911b207059e493defdba9647eaf18f23abdf3674e0fb" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-message" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1796aabce376ff74bf89b78d268fa5e683d7d7a96a0a4e4813ec34de49d5314b" +dependencies = [ + "bincode", + "blake3", + "lazy_static", + "serde", + "serde_derive", + "solana-bincode 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", + "solana-transaction-error 2.2.1", + "wasm-bindgen", +] + +[[package]] +name = "solana-message" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0448b1fd891c5f46491e5dc7d9986385ba3c852c340db2911dd29faa01d2b08d" +dependencies = [ + "bincode", + "blake3", + "lazy_static", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-message" +version = "4.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e29e655f222a3a64145fedceacdca3e696ba7aded1dbd5391aa09d5fbfba53c" +dependencies = [ + "blake3", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-msg" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36a1a14399afaabc2781a1db09cb14ee4cc4ee5c7a5a3cfcc601811379a8092" +dependencies = [ + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-msg" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726b7cbbc6be6f1c6f29146ac824343b9415133eee8cce156452ad1db93f8008" +dependencies = [ + "solana-define-syscall 5.2.0", +] + +[[package]] +name = "solana-native-token" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61515b880c36974053dd499c0510066783f0cc6ac17def0c7ef2a244874cf4a9" + +[[package]] +name = "solana-native-token" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae8dd4c280dca9d046139eb5b7a5ac9ad10403fbd64964c7d7571214950d758f" + +[[package]] +name = "solana-nonce" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703e22eb185537e06204a5bd9d509b948f0066f2d1d814a6f475dafb3ddf1325" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-pubkey 2.4.0", + "solana-sha256-hasher 2.3.0", +] + +[[package]] +name = "solana-nonce" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4172d5b33a0a38fcdb2af8f84406570dd51567267da96c28ad0f31fc11621c0" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator 3.2.2", + "solana-hash 4.5.0", + "solana-pubkey 4.2.0", + "solana-sha256-hasher 3.1.0", + "wincode", +] + +[[package]] +name = "solana-nonce-account" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b81bf7e2aa8c443724051507c1007d0b6d9c34b70925d3232dc78f5ca485209e" +dependencies = [ + "solana-account 4.3.2", + "solana-hash 4.5.0", + "solana-nonce 3.2.1", + "solana-sdk-ids 3.1.0", + "wincode", +] + +[[package]] +name = "solana-offchain-message" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e2a1141a673f72a05cf406b99e4b2b8a457792b7c01afa07b3f00d4e2de393" +dependencies = [ + "num_enum", + "solana-hash 3.1.0", + "solana-packet 3.0.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.1.0", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-packet" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edf2f25743c95229ac0fdc32f8f5893ef738dbf332c669e9861d33ddb0f469d" +dependencies = [ + "bitflags", +] + +[[package]] +name = "solana-packet" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a2a582d7863548f047f49aa3745c076cfa9e1364baa080ef0c1210f0e4ebda" +dependencies = [ + "bitflags", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-poseidon" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "737b8ab25bf4cc8e618f80f1fe40709b2ace708bc764a36b8a4c81eea8c07034" +dependencies = [ + "ark-bn254 0.4.0", + "ark-bn254 0.5.0", + "light-poseidon 0.2.0", + "light-poseidon 0.4.0", + "solana-define-syscall 4.0.1", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-precompile-error" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cafcd950de74c6c39d55dc8ca108bbb007799842ab370ef26cf45a34453c31e1" +dependencies = [ + "num-traits", +] + +[[package]] +name = "solana-presigner" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f704eaf825be3180832445b9e4983b875340696e8e7239bf2d535b0f86c14a2" +dependencies = [ + "solana-pubkey 3.0.0", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-program" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98eca145bd3545e2fbb07166e895370576e47a00a7d824e325390d33bf467210" +dependencies = [ + "bincode", + "blake3", + "borsh 0.10.4", + "borsh 1.8.1", + "bs58", + "bytemuck", + "console_error_panic_hook", + "console_log", + "getrandom 0.2.17", + "lazy_static", + "log", + "memoffset", + "num-bigint 0.4.8", + "num-derive", + "num-traits", + "rand 0.8.8", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 2.3.0", + "solana-address-lookup-table-interface 2.2.2", + "solana-atomic-u64 2.2.1", + "solana-big-mod-exp 2.2.1", + "solana-bincode 2.2.1", + "solana-blake3-hasher 2.2.1", + "solana-borsh 2.2.1", + "solana-clock 2.2.3", + "solana-cpi 2.2.1", + "solana-decode-error", + "solana-define-syscall 2.3.0", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", + "solana-example-mocks 2.2.1", + "solana-feature-gate-interface 2.2.2", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-instructions-sysvar 2.2.2", + "solana-keccak-hasher 2.2.1", + "solana-last-restart-slot 2.2.1", + "solana-loader-v2-interface", + "solana-loader-v3-interface 5.0.0", + "solana-loader-v4-interface 2.2.1", + "solana-message 2.4.0", + "solana-msg 2.2.1", + "solana-native-token 2.3.0", + "solana-nonce 2.2.1", + "solana-program-entrypoint 2.3.0", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-program-option 2.2.1", + "solana-program-pack 2.2.1", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-secp256k1-recover 2.2.1", + "solana-serde-varint 2.2.2", + "solana-serialize-utils 2.2.1", + "solana-sha256-hasher 2.3.0", + "solana-short-vec 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stable-layout 2.2.1", + "solana-stake-interface 1.2.1", + "solana-system-interface 1.0.0", + "solana-sysvar 2.3.0", + "solana-sysvar-id 2.2.1", + "solana-vote-interface 2.2.6", + "thiserror 2.0.20", + "wasm-bindgen", +] + +[[package]] +name = "solana-program" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91b12305dd81045d705f427acd0435a2e46444b65367d7179d7bdcfc3bc5f5eb" +dependencies = [ + "memoffset", + "solana-account-info 3.1.1", + "solana-big-mod-exp 3.0.0", + "solana-blake3-hasher 3.1.0", + "solana-borsh 3.0.2", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-define-syscall 3.0.0", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-epoch-stake", + "solana-example-mocks 3.0.0", + "solana-fee-calculator 3.2.2", + "solana-hash 3.1.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-instructions-sysvar 3.0.1", + "solana-keccak-hasher 3.1.0", + "solana-last-restart-slot 3.1.0", + "solana-msg 3.1.0", + "solana-native-token 3.0.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.3.0", + "solana-serde-varint 3.0.1", + "solana-serialize-utils 3.1.2", + "solana-sha256-hasher 3.1.0", + "solana-short-vec 3.2.2", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stable-layout 3.0.1", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-program-entrypoint" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32ce041b1a0ed275290a5008ee1a4a6c48f5054c8a3d78d313c08958a06aedbd" +dependencies = [ + "solana-account-info 2.3.0", + "solana-msg 2.2.1", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-program-entrypoint" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c9b0a1ff494e05f503a08b3d51150b73aa639544631e510279d6375f290997" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 4.0.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-program-error" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ee2e0217d642e2ea4bee237f37bd61bb02aec60da3647c48ff88f6556ade775" +dependencies = [ + "borsh 1.8.1", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-msg 2.2.1", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-program-error" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f04fa578707b3612b095f0c8e19b66a1233f7c42ca8082fcb3b745afcc0add6" +dependencies = [ + "borsh 1.8.1", + "serde", + "serde_derive", +] + +[[package]] +name = "solana-program-memory" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a5426090c6f3fd6cfdc10685322fede9ca8e5af43cd6a59e98bfe4e91671712" +dependencies = [ + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-program-memory" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4068648649653c2c50546e9a7fb761791b5ab0cda054c771bb5808d3a4b9eb52" +dependencies = [ + "solana-define-syscall 4.0.1", +] + +[[package]] +name = "solana-program-option" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc677a2e9bc616eda6dbdab834d463372b92848b2bfe4a1ed4e4b4adba3397d0" + +[[package]] +name = "solana-program-option" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a88006a9b8594088cec9027ab77caaaa258a2aaa2083d3f086c44b42e50aeab" + +[[package]] +name = "solana-program-pack" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "319f0ef15e6e12dc37c597faccb7d62525a509fec5f6975ecb9419efddeb277b" +dependencies = [ + "solana-program-error 2.2.2", +] + +[[package]] +name = "solana-program-pack" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7701cb15b90667ae1c89ef4ac35a59c61e66ce58ddee13d729472af7f41d59" +dependencies = [ + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-program-runtime" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2b7281bd4a6072c7e11b611f771f4e61be1d45ea0d2aecfbb77d02d1b5877d4" +dependencies = [ + "base64 0.22.1", + "bincode", + "cfg-if", + "itertools 0.14.0", + "log", + "percentage", + "rand 0.9.5", + "serde", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-loader-v3-interface 7.0.0", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", + "solana-stable-layout 3.0.1", + "solana-stake-interface 4.3.0", + "solana-svm-callback", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-timings", + "solana-svm-transaction", + "solana-svm-type-overrides", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction-context", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "solana-pubkey" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b62adb9c3261a052ca1f999398c388f1daf558a1b492f60a6d9e64857db4ff1" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8 0.2.1", + "five8_const 0.1.4", + "getrandom 0.2.17", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-atomic-u64 2.2.1", + "solana-decode-error", + "solana-define-syscall 2.3.0", + "solana-sanitize 2.2.1", + "solana-sha256-hasher 2.3.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-pubkey" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8909d399deb0851aa524420beeb5646b115fd253ef446e35fe4504c904da3941" +dependencies = [ + "rand 0.8.8", + "solana-address 1.1.0", +] + +[[package]] +name = "solana-pubkey" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7db719574990de7e8b0f55a8593ac92a5ccb42c8ce67b3e4bf05b139d5d9ee71" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-rent" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1aea8fdea9de98ca6e8c2da5827707fb3842833521b528a713810ca685d2480" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-rent" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e860d5499a705369778647e97d760f7670adfb6fc8419dd3d568deccd46d5487" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-rent" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39f0d780bf8e8a1fe8b5b5fce1acad6b209485b86dec246e7523d5e4a8b7c7fc" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-runtime-transaction" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60cf942dcefc0f4d600fed1f4d220ff27abaa04def1fefa37e0e0c2a96e4179" +dependencies = [ + "agave-feature-set", + "agave-transaction-view", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-svm-transaction", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-sanitize" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61f1bc1357b8188d9c4a3af3fc55276e56987265eb7ad073ae6f8180ee54cecf" + +[[package]] +name = "solana-sanitize" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf09694a0fc14e5ffb18f9b7b7c0f15ecb6eac5b5610bf76a1853459d19daf9" + +[[package]] +name = "solana-sbpf" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d777d7a89267dd133e985113c7e7f820fb7cfd9123a4a350cf8b39ebae1920bc" +dependencies = [ + "byteorder", + "combine", + "hash32", + "libc", + "log", + "rand 0.8.8", + "rustc-demangle", + "thiserror 2.0.20", + "winapi", +] + +[[package]] +name = "solana-sdk" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f03df7969f5e723ad31b6c9eadccc209037ac4caa34d8dc259316b05c11e82b" +dependencies = [ + "bincode", + "bs58", + "serde", + "solana-account 3.4.0", + "solana-epoch-info", + "solana-epoch-rewards-hasher", + "solana-fee-structure", + "solana-inflation", + "solana-keypair", + "solana-message 3.1.0", + "solana-offchain-message", + "solana-presigner", + "solana-program 3.0.0", + "solana-program-memory 3.1.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-serde", + "solana-serde-varint 3.0.1", + "solana-short-vec 3.2.2", + "solana-shred-version", + "solana-signature 3.4.1", + "solana-signer", + "solana-time-utils", + "solana-transaction 3.1.0", + "solana-transaction-error 3.3.2", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-sdk-ids" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5d8b9cc68d5c88b062a33e23a6466722467dde0035152d8fb1afbcdf350a5f" +dependencies = [ + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-sdk-ids" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "def234c1956ff616d46c9dd953f251fa7096ddbaa6d52b165218de97882b7280" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-sdk-macro" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86280da8b99d03560f6ab5aca9de2e38805681df34e0bb8f238e69b29433b9df" +dependencies = [ + "bs58", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "solana-sdk-macro" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8765316242300c48242d84a41614cb3388229ec353ba464f6fe62a733e41806f" +dependencies = [ + "bs58", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baa3120b6cdaa270f39444f5093a90a7b03d296d362878f7a6991d6de3bbe496" +dependencies = [ + "libsecp256k1 0.6.0", + "solana-define-syscall 2.3.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce0d2e8d53946f04e789476d6c407e4997b7fb412483df5fc10c075c65cb2edf" +dependencies = [ + "k256", + "solana-define-syscall 5.2.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-seed-derivable" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7bdb72758e3bec33ed0e2658a920f1f35dfb9ed576b951d20d63cb61ecd95c" +dependencies = [ + "solana-derivation-path", +] + +[[package]] +name = "solana-seed-phrase" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc905b200a95f2ea9146e43f2a7181e3aeb55de6bc12afb36462d00a3c7310de" +dependencies = [ + "hmac", + "pbkdf2", + "sha2 0.10.9", +] + +[[package]] +name = "solana-serde" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709a93cab694c70f40b279d497639788fc2ccbcf9b4aa32273d4b361322c02dd" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serde-varint" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a7e155eba458ecfb0107b98236088c3764a09ddf0201ec29e52a0be40857113" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serde-varint" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "950e5b83e839dc0f92c66afc124bb8f40e89bc90f0579e8ec5499296d27f54e3" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serialize-utils" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "817a284b63197d2b27afdba829c5ab34231da4a9b4e763466a003c40ca4f535e" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-serialize-utils" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "761357b0853c9623bf12c1d2314b3d6160a85b087b84c45224fb85766d22616b" +dependencies = [ + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sanitize 3.0.1", +] + +[[package]] +name = "solana-sha256-hasher" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa3feb32c28765f6aa1ce8f3feac30936f16c5c3f7eb73d63a5b8f6f8ecdc44" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", +] + +[[package]] +name = "solana-sha256-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db7dc3011ea4c0334aaaa7e7128cb390ecf546b28d412e9bf2064680f57f588f" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-sha512-hasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11e10e103ab5bd52af341e7bc2f4123a2f4e66bb7ba4e6ca40f1e00cd6314e02" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 5.2.0", + "solana-hash-512", +] + +[[package]] +name = "solana-short-vec" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c54c66f19b9766a56fa0057d060de8378676cb64987533fa088861858fc5a69" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-short-vec" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8250a4495aad49ad20556a607da53bdcb20de78da10b65afbf918b7f1de647" +dependencies = [ + "serde_core", + "wincode", +] + +[[package]] +name = "solana-shred-version" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6c79722e299d957958bf33695f7cd1ef6724ff55563c60fd9e3e24487cccde2" +dependencies = [ + "solana-hard-forks", + "solana-hash 4.5.0", + "solana-sha256-hasher 3.1.0", +] + +[[package]] +name = "solana-signature" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64c8ec8e657aecfc187522fc67495142c12f35e55ddeca8698edbb738b8dbd8c" +dependencies = [ + "five8 0.2.1", + "serde", + "serde-big-array", + "serde_derive", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-signature" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0364c7577c3c82a693ce28a1febc8d1b5d1b0a175fdc2114ae6186b69effe1e" +dependencies = [ + "ed25519-dalek", + "five8 1.0.0", + "rand 0.9.5", + "serde", + "serde-big-array", + "serde_derive", + "solana-sanitize 3.0.1", + "wincode", +] + +[[package]] +name = "solana-signer" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520bd6021163ee517f4bdc7ae03ded904f97e11320001ba0b3355f45eb14f558" +dependencies = [ + "solana-pubkey 4.2.0", + "solana-signature 3.4.1", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-slot-hashes" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c8691982114513763e88d04094c9caa0376b867a29577939011331134c301ce" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 2.3.0", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-hashes" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7ce2b4b8911bf2db3de7b6266e67bfc21a6a9f8c566fb096d9782ca2ad16ee" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-slot-history" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97ccc1b2067ca22754d5283afb2b0126d61eae734fc616d23871b0943b0d935e" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-history" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40427c04d3e808493cb5e3d1a97cef84d7c15cb6f89b15c5684d0d4027105600" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-stable-layout" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f14f7d02af8f2bc1b5efeeae71bc1c2b7f0f65cd75bcc7d8180f2c762a57f54" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-stable-layout" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9f6a291ba063a37780af29e7db14bdd3dc447584d8ba5b3fc4b88e2bbc982fa" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-stake-history" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c736a6aa0e53b9d264d90b06589fc0996f49f882f3e71842ed754fc57ffc1a43" +dependencies = [ + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-stake-interface" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5269e89fde216b4d7e1d1739cf5303f8398a1ff372a81232abbee80e554a838c" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", + "num-traits", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-cpi 2.2.1", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-system-interface 1.0.0", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-stake-interface" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9bc26191b533f9a6e5a14cca05174119819ced680a80febff2f5051a713f0db" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-stake-interface" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252b4291eb25a5a356149ed4d4a940d5f655186210fa84b5d0d8d55c3dd42a81" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-svm-callback" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf863c5b86e90e51c18ed08cfd8e21f9cfa60122d60d6364cde7083bf6de837c" +dependencies = [ + "solana-account 4.3.2", + "solana-clock 3.1.1", + "solana-precompile-error", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-feature-set" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "580d385250ddc3826e5d082b221d9d1047bddcc63ee18313f14dcafb95fdcae5" + +[[package]] +name = "solana-svm-log-collector" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f97c2c829a06a1b3bdbad1f770891768c1f0005b322acd7c192ad92157fe525" +dependencies = [ + "log", +] + +[[package]] +name = "solana-svm-measure" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79ec1451e86552456f1e9a1cc7ffafea01ba3383d8246ba636a11cf286da9fc3" + +[[package]] +name = "solana-svm-timings" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33a2692a88fabf56275bb40c39596d6e550a43f6e56b77fa6f0468e0affd977" +dependencies = [ + "eager", + "enum-iterator", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-transaction" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736d2cec944c6f8f298a7bd8ada5eb318cca9ab859281b1300842fa0e9a25afa" +dependencies = [ + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-transaction 4.1.6", +] + +[[package]] +name = "solana-svm-type-overrides" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74a3ba41956ba930a335589eedf0784dfa4be0527ef236df8ad3996a26b5f19f" +dependencies = [ + "rand 0.9.5", +] + +[[package]] +name = "solana-syscalls" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d31c37dc2425afc13ddb2fc8365db8dbd02ac860a454c25b3897831036a64dd8" +dependencies = [ + "bincode", + "libsecp256k1 0.7.2", + "num-traits", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-blake3-hasher 3.1.0", + "solana-bls12-381-syscall", + "solana-bn254", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-curve25519", + "solana-hash 4.5.0", + "solana-hash-512", + "solana-instruction 3.4.1", + "solana-keccak-hasher 3.1.0", + "solana-poseidon", + "solana-program-entrypoint 3.1.1", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.3.0", + "solana-sha256-hasher 3.1.0", + "solana-sha512-hasher", + "solana-stable-layout 3.0.1", + "solana-stake-interface 4.3.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-type-overrides", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction-context", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "solana-system-interface" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94d7c18cb1a91c6be5f5a8ac9276a1d7c737e39a21beba9ea710ab4b9c63bc90" +dependencies = [ + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-system-interface" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e1790547bfc3061f1ee68ea9d8dc6c973c02a163697b24263a8e9f2e6d4afa2" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-instruction 3.4.1", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", +] + +[[package]] +name = "solana-system-interface" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55b54965bf0b76fa8e2b35376583efddd4d916618cfe595bf48c7d7b55a9e628" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "wincode", +] + +[[package]] +name = "solana-system-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2610e0b091b920da610ad3e5ba850530702f5ac911b4e9dc5ab9a025a772138a" +dependencies = [ + "bincode", + "log", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-fee-calculator 3.2.2", + "solana-instruction 3.4.1", + "solana-nonce 3.2.1", + "solana-nonce-account", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-transaction-context", +] + +[[package]] +name = "solana-sysvar" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c3595f95069f3d90f275bb9bd235a1973c4d059028b0a7f81baca2703815db" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 2.3.0", + "solana-clock 2.2.3", + "solana-define-syscall 2.3.0", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-instructions-sysvar 2.2.2", + "solana-last-restart-slot 2.2.1", + "solana-program-entrypoint 2.3.0", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stake-interface 1.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-sysvar" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6690d3dd88f15c21edff68eb391ef8800df7a1f5cec84ee3e8d1abf05affdf74" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-define-syscall 4.0.1", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-calculator 3.2.2", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 4.2.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-sysvar" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ada7045bbfdd802af08fbc9c7e2b56ddabb20599d22e4c3840fcef5e7afb8324" +dependencies = [ + "base64 0.22.1", + "bincode", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-define-syscall 5.2.0", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-calculator 3.2.2", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stake-history", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-sysvar-id" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5762b273d3325b047cfda250787f8d796d781746860d5d0a746ee29f3e8812c1" +dependencies = [ + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-sysvar-id" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17358d1e9a13e5b9c2264d301102126cf11a47fd394cdf3dec174fe7bc96e1de" +dependencies = [ + "solana-address 2.6.1", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-time-utils" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ced92c60aa76ec4780a9d93f3bd64dfa916e1b998eacc6f1c110f3f444f02c9" + +[[package]] +name = "solana-transaction" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96697cff5075a028265324255efed226099f6d761ca67342b230d09f72cc48d2" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-message 3.1.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-signer", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-transaction" +version = "4.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8008008a75246adaf8b67411093a6d78db8232c74b00eff6041fd1da73679e7" +dependencies = [ + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-message 4.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-signer", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-transaction-context" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d61811155533aebcf806e694d3ed91be7fc168dc9bdcf25e8eb98b9234c7c3" +dependencies = [ + "bincode", + "qualifier_attr", + "serde", + "solana-account 4.3.2", + "solana-instruction 3.4.1", + "solana-instructions-sysvar 4.0.0", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-transaction-error" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222a9dc8fdb61c6088baab34fc3a8b8473a03a7a5fd404ed8dd502fa79b67cb1" +dependencies = [ + "solana-instruction 2.3.3", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-transaction-error" +version = "3.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "054e54d15164b0c34cb744600a1a0330e9fd97a12d979f2eb95904c807a07713" +dependencies = [ + "serde", + "serde_derive", + "solana-instruction-error", + "solana-sanitize 3.0.1", +] + +[[package]] +name = "solana-vote-interface" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b80d57478d6599d30acc31cc5ae7f93ec2361a06aefe8ea79bc81739a08af4c3" +dependencies = [ + "bincode", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-decode-error", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serde-varint 2.2.2", + "solana-serialize-utils 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-vote-interface" +version = "6.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13a7a204b455a53fe8c9a26a6885391a5896835e06694dbe0cf37c580f82f128" +dependencies = [ + "bincode", + "cfg_eval", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "serde_with", + "solana-clock 3.1.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-serde-varint 3.0.1", + "solana-serialize-utils 3.1.2", + "solana-short-vec 3.2.2", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-vote-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69c6faf8370369c45bc14eeca8dc0249450b940b57dcfcec0103403f9feaf88a" +dependencies = [ + "agave-feature-set", + "bincode", + "log", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-bls-signatures", + "solana-clock 3.1.1", + "solana-epoch-schedule 3.2.0", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", + "solana-system-interface 3.2.0", + "solana-transaction-context", + "solana-vote-interface 6.0.3", +] + +[[package]] +name = "solana-zk-elgamal-proof-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d55e2d0d7f884295989dae8b7e0b6d7a46d87ed2d917113007383261e5e93d" +dependencies = [ + "bytemuck", + "solana-instruction 3.4.1", + "solana-program-runtime", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-zk-sdk", +] + +[[package]] +name = "solana-zk-sdk" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09670ff59f60e6ddc2209c2e4353992a9b9f01d4e244f3e9d67bd5146e33d388" +dependencies = [ + "aes-gcm-siv", + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "itertools 0.14.0", + "merlin", + "num-derive", + "num-traits", + "rand 0.8.8", + "serde", + "serde_derive", + "serde_json", + "sha3", + "solana-address 2.6.1", + "solana-derivation-path", + "solana-instruction 3.4.1", + "solana-sdk-ids 3.1.0", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature 3.4.1", + "solana-signer", + "subtle", + "thiserror 2.0.20", + "zeroize", +] + +[[package]] +name = "solana-zk-token-proof-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc32fcd9ff8bb90837755deccefdb20518484626c0a9d0649a36e5fcb0fcf520" +dependencies = [ + "solana-program-runtime", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "spl-associated-token-account-interface" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6bbe0794e532ac08428d3abf5bf8ae75bd81dfddd785c388e326c00c92c6f5" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[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.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tar" +version = "0.4.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6221d9a6003c78398e3b239969f352578258df48c8eb051caadae0015bc840" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "test-utils" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "ephemeral-rollups-sdk 0.16.2", + "magicsvm", + "serde_json", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-signer", + "solana-transaction 4.1.6", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" +dependencies = [ + "thiserror-impl 2.0.20", +] + +[[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.119", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "tinyvec" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee" + +[[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 = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.25.15+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1340ea94a5856333492c9064b02c778b191dd2c853778d9609debdcdfea3a614" +dependencies = [ + "indexmap", + "toml_datetime", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" +dependencies = [ + "winnow", +] + +[[package]] +name = "typed-path" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" + +[[package]] +name = "typenum" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-segmentation" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +dependencies = [ + "void", +] + +[[package]] +name = "ureq" +version = "3.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a7ac20be9b7726e0bbdbf974c059676d9acb1cd414961f570a4e8231cacd7fc" +dependencies = [ + "base64 0.23.1", + "log", + "percent-encoding", + "ureq-proto", + "utf8-zero", +] + +[[package]] +name = "ureq-proto" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0809a01d1ca5a51ca70db32bb2a19157582a526505ef3c19e3b343a59aa5ad" +dependencies = [ + "base64 0.23.1", + "http", + "httparse", + "log", +] + +[[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 = "utf8-zero" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e" + +[[package]] +name = "uuid" +version = "1.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ef6dac1e96601b4fb3acccccff2139741fcb757cb9a36089bf5be91cfb285ce" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[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.4+wasi-0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aecb87a33d3b0c5e3b7aa46336eaf486cffafbd281b195e4c8b80d50df2351bf" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a690d511e3c1a8b3a55e33511e3c2c00c78415cd23650f32b808627f5696b9ed" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "411e4887f0071ef2d2164a9d5fdf2d20efbef78fccd3a78b0c10a1dc5295e48a" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 3.0.5", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81941cd78d0c92026c33e5e01312845a4cb1e9af3407f9134b100dd03144103e" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "web-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fbddc4a036f00ec4f18c83445bd3115cb306a91da554919a099d9222fe4a7f8" +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-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "wincode" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66d967db7705dc29120bb6e8ce5b5a2e27734ed5976d1c904e95bd238d1c3c5a" +dependencies = [ + "bv", + "pastey", + "proc-macro2", + "quote", + "thiserror 2.0.20", + "wincode-derive", +] + +[[package]] +name = "wincode-derive" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15ab90b719560d0fda79c74550ad1c948d17b118765942838055ebaf34d67071" +dependencies = [ + "darling 0.23.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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 = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "xattr" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" +dependencies = [ + "libc", + "rustix", +] + +[[package]] +name = "zerocopy" +version = "0.8.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d35102a9f36d089ccae9e4c6802bc118be4487b80aaffc0ab4e0cf5ce92d2873" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c01f5ab44258da43cf276c74a2763db2ff3969c9c652c3f2de07041d0b2bc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zeroize" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zip" +version = "8.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b" +dependencies = [ + "crc32fast", + "flate2", + "indexmap", + "memchr", + "typed-path", + "zopfli", +] + +[[package]] +name = "zlib-rs" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12" + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" + +[[package]] +name = "zopfli" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" +dependencies = [ + "bumpalo", + "crc32fast", + "log", + "simd-adler32", +] diff --git a/delegation-actions/anchor/tests-magicsvm-rs/Cargo.toml b/delegation-actions/anchor/tests-magicsvm-rs/Cargo.toml new file mode 100644 index 00000000..2316c70c --- /dev/null +++ b/delegation-actions/anchor/tests-magicsvm-rs/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "delegation-actions-magicsvm-tests" +version = "0.1.0" +edition = "2021" +publish = false + +[workspace] + +[dev-dependencies] +anchor-lang = "=1.0.2" +delegation-actions = { path = "../programs/delegation-actions", features = ["no-entrypoint"] } +magicsvm = "0.2.0" +test-utils = { path = "../../../test-utils/rust", features = ["anchor"] } +solana-address = "~2.6.1" +solana-hash = "~4.5.0" +solana-instruction = { version = "~3.4.0", features = ["bincode"] } +solana-keypair = "3.1.2" +solana-message = "4.2.4" +solana-native-token = "3.0.0" +solana-signer = "3.0.1" +solana-transaction = { version = "4.1.5", features = ["verify"] } diff --git a/delegation-actions/anchor/tests-magicsvm-rs/tests/magicsvm.rs b/delegation-actions/anchor/tests-magicsvm-rs/tests/magicsvm.rs new file mode 100644 index 00000000..dc12a252 --- /dev/null +++ b/delegation-actions/anchor/tests-magicsvm-rs/tests/magicsvm.rs @@ -0,0 +1,204 @@ +use { + anchor_lang::{prelude::Pubkey, system_program, Id, InstructionData, ToAccountMetas}, + delegation_actions::{self, accounts, instruction, COUNTER_SEED}, + magicsvm::TransactionTarget, + solana_address::Address, + solana_hash::Hash, + solana_instruction::{AccountMeta, Instruction}, + solana_keypair::Keypair, + solana_native_token::LAMPORTS_PER_SOL, + solana_signer::Signer, + solana_transaction::Transaction, + test_utils::{ + as_address, as_pubkey, boot, client_ix, + delegate_buffer_pda_from_delegated_account_and_owner_program, + delegation_metadata_pda_from_delegated_account, + delegation_record_pda_from_delegated_account, is_delegated, program_id_from_idl, + read_u64_le, send_tx, sign_tx, DelegationProgram, MagicProgram, MAGIC_CONTEXT_ID, + }, +}; + +fn program_id() -> Pubkey { + as_pubkey(&program_id_from_idl( + env!("CARGO_MANIFEST_DIR"), + "delegation_actions.json", + )) +} + +fn program_address() -> Address { + as_address(program_id()) +} + +fn ix(data: impl InstructionData, accounts: impl ToAccountMetas) -> Instruction { + client_ix(program_address(), data, accounts) +} + +fn signed(payer: &Keypair, instruction: Instruction, blockhash: Hash) -> Transaction { + sign_tx(&[payer], &[instruction], blockhash) +} + +fn counter_pda() -> Pubkey { + Pubkey::find_program_address(&[COUNTER_SEED], &program_id()).0 +} + +fn counter_count( + svm: &magicsvm::MagicSVM, + target: TransactionTarget, + pda: &Address, +) -> Option { + svm.get_account_for(target, pda) + .map(|account| read_u64_le(&account.data, 8)) +} + +fn initialize_tx(pda: Pubkey, payer: &Keypair, blockhash: Hash) -> Transaction { + signed( + payer, + ix( + instruction::Initialize {}, + accounts::Initialize { + counter: pda, + user: as_pubkey(&payer.pubkey()), + system_program: system_program::ID, + }, + ), + blockhash, + ) +} + +fn increment_tx(pda: Pubkey, payer: &Keypair, blockhash: Hash) -> Transaction { + signed( + payer, + ix( + instruction::Increment {}, + accounts::Increment { counter: pda }, + ), + blockhash, + ) +} + +fn delegate_with_actions_tx( + pda: Pubkey, + payer: &Keypair, + validator: Address, + blockhash: Hash, +) -> Transaction { + let mut instruction = ix( + instruction::DelegateWithActions {}, + accounts::DelegateCounter { + payer: as_pubkey(&payer.pubkey()), + buffer_pda: delegate_buffer_pda_from_delegated_account_and_owner_program( + &pda, + &program_id(), + ), + delegation_record_pda: delegation_record_pda_from_delegated_account(&pda), + delegation_metadata_pda: delegation_metadata_pda_from_delegated_account(&pda), + pda, + owner_program: program_id(), + delegation_program: DelegationProgram::id(), + system_program: system_program::ID, + }, + ); + instruction + .accounts + .push(AccountMeta::new_readonly(validator, false)); + signed(payer, instruction, blockhash) +} + +fn undelegate_tx(pda: Pubkey, payer: &Keypair, blockhash: Hash) -> Transaction { + signed( + payer, + ix( + instruction::Undelegate {}, + accounts::UndelegateCounter { + payer: as_pubkey(&payer.pubkey()), + counter: pda, + magic_program: MagicProgram::id(), + magic_context: MAGIC_CONTEXT_ID, + }, + ), + blockhash, + ) +} + +#[test] +fn delegation_actions_run_automatically_after_delegate() { + let payer = Keypair::new(); + let pda = counter_pda(); + let pda_address = as_address(pda); + let mut svm = boot( + env!("CARGO_MANIFEST_DIR"), + "delegation_actions", + program_address(), + &payer, + 2 * LAMPORTS_PER_SOL, + ); + + let init_blockhash = svm.latest_blockhash_for(TransactionTarget::Base); + send_tx( + &mut svm, + TransactionTarget::Base, + initialize_tx(pda, &payer, init_blockhash), + "initialize", + ); + assert_eq!( + counter_count(&svm, TransactionTarget::Base, &pda_address), + Some(0), + "counter should initialize to 0" + ); + + let increment_blockhash = svm.latest_blockhash_for(TransactionTarget::Base); + send_tx( + &mut svm, + TransactionTarget::Base, + increment_tx(pda, &payer, increment_blockhash), + "increment", + ); + let before = counter_count(&svm, TransactionTarget::Base, &pda_address).expect("base counter"); + assert_eq!(before, 1, "base increment should set count to 1"); + + let validator = svm.validator_identity(); + let delegate_blockhash = svm.latest_blockhash_for(TransactionTarget::Base); + send_tx( + &mut svm, + TransactionTarget::Base, + delegate_with_actions_tx(pda, &payer, validator, delegate_blockhash), + "delegate", + ); + + let after = counter_count(&svm, TransactionTarget::Ephemeral, &pda_address); + assert_eq!( + after, + Some(before + 1), + "post-delegation action did not run: expected {} in ER, got {:?}", + before + 1, + after + ); + assert!( + is_delegated(&svm, &pda_address), + "counter should be owned by the delegation program after delegate" + ); + + let er_increment_blockhash = svm.latest_blockhash_for(TransactionTarget::Ephemeral); + send_tx( + &mut svm, + TransactionTarget::Ephemeral, + increment_tx(pda, &payer, er_increment_blockhash), + "increment (ER)", + ); + assert_eq!( + counter_count(&svm, TransactionTarget::Ephemeral, &pda_address), + Some(before + 2) + ); + + let undelegate_blockhash = svm.latest_blockhash_for(TransactionTarget::Ephemeral); + send_tx( + &mut svm, + TransactionTarget::Ephemeral, + undelegate_tx(pda, &payer, undelegate_blockhash), + "undelegate", + ); + assert!( + !is_delegated(&svm, &pda_address), + "counter should return to the program after undelegate" + ); +} diff --git a/delegation-actions/anchor/tests-magicsvm/delegation-actions.ts b/delegation-actions/anchor/tests-magicsvm/delegation-actions.ts new file mode 100644 index 00000000..2ab39f28 --- /dev/null +++ b/delegation-actions/anchor/tests-magicsvm/delegation-actions.ts @@ -0,0 +1,151 @@ +import { web3 } from "@coral-xyz/anchor"; +import { + bootAnchorSvm, + isDelegated, + sendSvmTx, + validatorRemainingAccount, +} from "@magicblock-labs/test-utils"; +import { assert } from "chai"; +import { DelegationActions } from "../target/types/delegation_actions"; + +const COUNTER_SEED = "counter"; +const LAMPORTS_PER_SOL = 1_000_000_000n; + +describe("delegation-actions-magicsvm", () => { + const { svm, payer, program, validator } = bootAnchorSvm({ + fromDir: __dirname, + programName: "delegation_actions", + airdropLamports: 2n * LAMPORTS_PER_SOL, + }); + const [pda] = web3.PublicKey.findProgramAddressSync( + [Buffer.from(COUNTER_SEED)], + program.programId, + ); + + console.log("Program ID: ", program.programId.toBase58()); + console.log("Counter PDA: ", pda.toBase58()); + console.log("Validator identity: ", validator.toString()); + + function getCounter(target: "base" | "ephemeral"): number | null { + const info = svm.getAccountFor(pda, { target }); + if (!info.exists) return null; + return Number(Buffer.from(info.data).readBigUInt64LE(8)); + } + + function printCounter(message: string) { + const delegated = isDelegated(svm, pda); + let counterBase = ""; + let counterER = ""; + if (delegated) { + counterBase = ""; + counterER = getCounter("ephemeral")?.toString() ?? ""; + } else { + counterBase = getCounter("base")?.toString() ?? ""; + counterER = ""; + } + console.log("--------------------------------"); + console.log(`| ${delegated ? "✅ Delegated" : "❌ Not Delegated"}`); + console.log("--------------------------------"); + console.log("| Counter (Base): ", counterBase); + console.log("| Counter (ER): ", counterER); + console.log("--------------------------------"); + console.log(message); + } + + it("Initialize Counter", async () => { + sendSvmTx( + svm, + [payer], + await program.methods + .initialize() + .accounts({ + counter: pda, + user: payer.publicKey, + systemProgram: web3.SystemProgram.programId, + } as any) + .transaction(), + "base", + ); + printCounter("✅ Initialized"); + assert.equal(getCounter("base"), 0); + }); + + it("Increment Counter on base layer", async () => { + sendSvmTx( + svm, + [payer], + await program.methods + .increment() + .accounts({ counter: pda }) + .transaction(), + "base", + ); + printCounter("Counter incremented on base layer"); + assert.equal(getCounter("base"), 1); + }); + + it("Delegate Counter with a post-delegation action", async () => { + const before = getCounter("base"); + assert.isNotNull(before); + + // `delegate_with_actions` delegates the counter AND attaches an `increment` + // action. MagicSVM should run that action automatically once the account is + // delegated — no separate increment transaction is sent here. + sendSvmTx( + svm, + [payer], + await program.methods + .delegateWithActions() + .accounts({ payer: payer.publicKey, pda }) + .remainingAccounts([validatorRemainingAccount(svm)]) + .transaction(), + "base", + ); + + const after = getCounter("ephemeral"); + printCounter( + `Post-delegation action result — ER counter: ${after} (was ${before})`, + ); + + if (after !== before! + 1) { + throw new Error( + `Post-delegation action did not run: expected ${ + before! + 1 + } in ER, got ${after}`, + ); + } + console.log("✅ Post-delegation action executed automatically in the ER"); + assert.isTrue(isDelegated(svm, pda)); + }); + + it("Increment Counter in ER", async () => { + assert.isTrue(isDelegated(svm, pda)); + const before = getCounter("ephemeral"); + sendSvmTx( + svm, + [payer], + await program.methods + .increment() + .accounts({ counter: pda }) + .transaction(), + "ephemeral", + ); + printCounter("✅ Incremented (ER)"); + assert.equal(getCounter("ephemeral"), (before ?? 0) + 1); + }); + + it("Undelegate Counter", async () => { + assert.isTrue(isDelegated(svm, pda)); + sendSvmTx( + svm, + [payer], + await program.methods + .undelegate() + .accounts({ payer: payer.publicKey }) + .transaction(), + "ephemeral", + ); + printCounter("✅ Undelegated"); + assert.isFalse(isDelegated(svm, pda)); + }); +}); diff --git a/delegation-actions/anchor/tsconfig.json b/delegation-actions/anchor/tsconfig.json index cd5d2e3d..219f1fd6 100644 --- a/delegation-actions/anchor/tsconfig.json +++ b/delegation-actions/anchor/tsconfig.json @@ -1,10 +1,11 @@ { "compilerOptions": { - "types": ["mocha", "chai"], + "types": ["mocha", "chai", "node"], "typeRoots": ["./node_modules/@types"], - "lib": ["es2015"], + "lib": ["es2020"], "module": "commonjs", - "target": "es6", - "esModuleInterop": true + "target": "es2020", + "esModuleInterop": true, + "skipLibCheck": true } } diff --git a/delegation-actions/anchor/yarn.lock b/delegation-actions/anchor/yarn.lock index c87d3724..27be2e14 100644 --- a/delegation-actions/anchor/yarn.lock +++ b/delegation-actions/anchor/yarn.lock @@ -12,7 +12,7 @@ resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== -"@coral-xyz/anchor@^0.32.1": +"@coral-xyz/anchor@0.32.1", "@coral-xyz/anchor@^0.32.1": version "0.32.1" resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== @@ -53,6 +53,54 @@ tweetnacl "^1.0.3" typescript "^5.3.0" +"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" + integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== + +"@magicblock-labs/magicsvm-darwin-x64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" + integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== + +"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" + integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== + +"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" + integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== + +"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" + integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== + +"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" + integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== + +"@magicblock-labs/magicsvm@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" + integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== + dependencies: + "@solana/web3.js" "3.0.0-rc.3" + optionalDependencies: + "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" + "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" + +"@magicblock-labs/test-utils@link:../../test-utils/ts": + version "0.0.0" + uid "" + "@noble/curves@^1.4.2": version "1.9.7" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" @@ -105,6 +153,61 @@ hash.js "^1.1.7" node-fetch "^2.7.0" +"@solana-program/address-lookup-table@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" + integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== + +"@solana-program/compute-budget@^0.18.0": + version "0.18.1" + resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" + integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== + +"@solana-program/loader-v3@^0.6.0": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" + integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== + +"@solana-program/stake@^0.9.0": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" + integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== + +"@solana-program/system@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" + integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== + +"@solana/accounts@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" + integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/addresses@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" + integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" + integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/buffer-layout@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" @@ -119,6 +222,30 @@ dependencies: "@solana/errors" "2.3.0" +"@solana/codecs-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" + integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== + dependencies: + "@solana/errors" "8.3.0" + +"@solana/codecs-data-structures@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" + integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/codecs-numbers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" + integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/codecs-numbers@^2.1.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" @@ -127,6 +254,27 @@ "@solana/codecs-core" "2.3.0" "@solana/errors" "2.3.0" +"@solana/codecs-strings@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" + integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/codecs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" + integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/options" "8.3.0" + "@solana/errors@2.3.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.3.0.tgz#4ac9380343dbeffb9dffbcb77c28d0e457c5fa31" @@ -135,6 +283,429 @@ chalk "^5.4.1" commander "^14.0.0" +"@solana/errors@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" + integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== + dependencies: + chalk "5.6.2" + commander "15.0.0" + +"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" + integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== + +"@solana/fixed-points@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" + integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/functional@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" + integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== + +"@solana/instruction-plans@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" + integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/instructions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" + integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/keys@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" + integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/promises" "8.3.0" + +"@solana/kit@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" + integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/plugin-core" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/program-client-core" "8.3.0" + "@solana/programs" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/sysvars" "8.3.0" + "@solana/transaction-confirmation" "8.3.0" + "@solana/transaction-introspection" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/nominal-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" + integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== + +"@solana/offchain-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" + integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/options@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" + integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/plugin-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" + integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== + +"@solana/plugin-interfaces@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" + integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/program-client-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" + integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/signers" "8.3.0" + +"@solana/programs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" + integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/promises@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" + integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== + +"@solana/rpc-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" + integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/rpc-parsed-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" + integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== + +"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" + integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== + dependencies: + "@solana/errors" "8.3.0" + +"@solana/rpc-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" + integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-subscriptions-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" + integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/rpc-subscriptions-channel-websocket@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" + integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/subscribable" "8.3.0" + ws "^8.21.3" + +"@solana/rpc-subscriptions-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" + integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-subscriptions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" + integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions-api" "8.3.0" + "@solana/rpc-subscriptions-channel-websocket" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-transformers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" + integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/rpc-transport-http@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" + integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + undici-types "^8.10.2" + +"@solana/rpc-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" + integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/rpc@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" + integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-transport-http" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/signers@8.3.0", "@solana/signers@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" + integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/subscribable@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" + integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + +"@solana/sysvars@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" + integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/transaction-confirmation@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" + integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/transaction-introspection@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" + integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/transaction-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" + integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/transactions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" + integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + +"@solana/web3.js@3.0.0-rc.3": + version "3.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" + integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== + dependencies: + "@noble/curves" "^1.4.2" + "@noble/hashes" "^1.4.0" + "@solana-program/address-lookup-table" "^0.14.0" + "@solana-program/compute-budget" "^0.18.0" + "@solana-program/loader-v3" "^0.6.0" + "@solana-program/stake" "^0.9.0" + "@solana-program/system" "^0.14.0" + "@solana/assertions" "^8.2.0" + "@solana/fast-stable-stringify" "^8.2.0" + "@solana/kit" "^8.2.0" + "@solana/rpc-spec-types" "^8.2.0" + "@solana/signers" "^8.2.0" + "@solana/web3.js@^1.69.0", "@solana/web3.js@^1.98.0", "@solana/web3.js@^1.98.2": version "1.98.4" resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" @@ -204,6 +775,13 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== +"@types/node@^22.13.10": + version "22.20.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.20.2.tgz#daae777b5f5965a587f50cc80d5364c2ddf27e36" + integrity sha512-xlvWf4Vs9n1PEVYwP1n4vvG07M6y8WgvJ2t0vbrWTmijsIHp1cS+uJ2kMIRdY3nHZK0nCYKrPeD171+SzF4/zw== + dependencies: + undici-types "~6.21.0" + "@types/uuid@^8.3.4": version "8.3.4" resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" @@ -427,6 +1005,11 @@ chai@^4.3.4: pathval "^1.1.1" type-detect "^4.1.0" +chalk@5.6.2, chalk@^5.4.1: + version "5.6.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" + integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== + chalk@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -435,11 +1018,6 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - check-error@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" @@ -483,6 +1061,11 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +commander@15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" + integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== + commander@^14.0.0: version "14.0.2" resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e" @@ -1199,6 +1782,16 @@ typescript@^5.3.0, typescript@^5.7.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== +undici-types@^8.10.2: + version "8.10.2" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" + integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== + +undici-types@~6.21.0: + version "6.21.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" + integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== + undici-types@~7.16.0: version "7.16.0" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" @@ -1260,6 +1853,11 @@ ws@^7.5.10: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== +ws@^8.21.3: + version "8.21.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" + integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== + ws@^8.5.0: version "8.18.3" resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" diff --git a/ephemeral-account-chats/anchor/Anchor.toml b/ephemeral-account-chats/anchor/Anchor.toml index a3120de8..bfc303b3 100644 --- a/ephemeral-account-chats/anchor/Anchor.toml +++ b/ephemeral-account-chats/anchor/Anchor.toml @@ -7,7 +7,7 @@ resolution = true skip-lint = false [programs.devnet] -ephemeral_account_chats = "5kUATzj39y1HfMJbkW9tH3nWoLgq3WJ1scwiFdfDrdVT" +ephemeral_account_chats = "46ie8wmtxyVTSKqe1xoLYTXn56iAMFFJbPRvwJoqAVdM" [provider] cluster = "devnet" diff --git a/ephemeral-account-chats/anchor/package.json b/ephemeral-account-chats/anchor/package.json index 1f449445..5a235ebe 100644 --- a/ephemeral-account-chats/anchor/package.json +++ b/ephemeral-account-chats/anchor/package.json @@ -5,12 +5,15 @@ "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", "build": "anchor keys sync && anchor build", "test:local": ". ../../scripts/local-env.sh && npx ts-mocha -p ./tsconfig.json -t 1000000 'tests/**/*.ts'", + "test:magicsvm": "npx ts-mocha -p ./tsconfig.json -t 1000000 'tests-magicsvm/**/*.ts'", + "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture", "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh ephemeral-account-chats", "test": "yarn test:local" }, "dependencies": { "@coral-xyz/anchor": "^0.32.1", - "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3" + "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3", + "@magicblock-labs/magicsvm": "0.2.0" }, "devDependencies": { "@types/bn.js": "^5.1.0", @@ -20,7 +23,8 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^5.7.3" + "typescript": "^5.7.3", + "@magicblock-labs/test-utils": "link:../../test-utils/ts" }, "packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447" } diff --git a/ephemeral-account-chats/anchor/programs/ephemeral-account-chats/src/lib.rs b/ephemeral-account-chats/anchor/programs/ephemeral-account-chats/src/lib.rs index 9663e72e..6178fbc0 100644 --- a/ephemeral-account-chats/anchor/programs/ephemeral-account-chats/src/lib.rs +++ b/ephemeral-account-chats/anchor/programs/ephemeral-account-chats/src/lib.rs @@ -11,7 +11,7 @@ pub use errors::*; pub use instructions::*; pub use state::{Conversation, ConversationMessage, Profile}; -declare_id!("5kUATzj39y1HfMJbkW9tH3nWoLgq3WJ1scwiFdfDrdVT"); +declare_id!("46ie8wmtxyVTSKqe1xoLYTXn56iAMFFJbPRvwJoqAVdM"); #[ephemeral] #[program] diff --git a/ephemeral-account-chats/anchor/target/idl/ephemeral_account_chats.json b/ephemeral-account-chats/anchor/target/idl/ephemeral_account_chats.json index cb8ab8f6..f0937067 100644 --- a/ephemeral-account-chats/anchor/target/idl/ephemeral_account_chats.json +++ b/ephemeral-account-chats/anchor/target/idl/ephemeral_account_chats.json @@ -1,5 +1,5 @@ { - "address": "5kUATzj39y1HfMJbkW9tH3nWoLgq3WJ1scwiFdfDrdVT", + "address": "46ie8wmtxyVTSKqe1xoLYTXn56iAMFFJbPRvwJoqAVdM", "metadata": { "name": "ephemeral_account_chats", "version": "0.1.0", @@ -494,38 +494,38 @@ "program": { "kind": "const", "value": [ - 70, - 145, - 111, - 159, - 11, - 133, + 46, + 10, + 12, + 51, + 3, + 109, + 147, + 173, + 199, + 36, + 228, + 253, 215, - 112, - 76, - 174, - 91, - 81, - 150, - 177, - 124, - 224, + 218, 122, - 138, - 64, - 62, - 198, - 210, - 136, - 229, - 55, - 20, - 26, - 45, - 23, + 211, + 92, + 156, 107, - 40, - 170 + 61, + 102, + 12, + 152, + 94, + 153, + 193, + 63, + 220, + 172, + 70, + 87, + 148 ] } } @@ -611,7 +611,7 @@ }, { "name": "owner_program", - "address": "5kUATzj39y1HfMJbkW9tH3nWoLgq3WJ1scwiFdfDrdVT" + "address": "46ie8wmtxyVTSKqe1xoLYTXn56iAMFFJbPRvwJoqAVdM" }, { "name": "delegation_program", @@ -771,14 +771,82 @@ "writable": true }, { - "name": "buffer" + "name": "buffer", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 117, + 110, + 100, + 101, + 108, + 101, + 103, + 97, + 116, + 101, + 45, + 98, + 117, + 102, + 102, + 101, + 114 + ] + }, + { + "kind": "account", + "path": "base_account" + } + ], + "program": { + "kind": "const", + "value": [ + 181, + 183, + 0, + 225, + 242, + 87, + 58, + 192, + 204, + 6, + 34, + 1, + 52, + 74, + 207, + 151, + 184, + 53, + 6, + 235, + 140, + 229, + 25, + 152, + 204, + 98, + 126, + 24, + 147, + 128, + 167, + 62 + ] + } + } }, { "name": "payer", "writable": true }, { - "name": "system_program" + "name": "system_program", + "address": "11111111111111111111111111111111" } ], "args": [ diff --git a/ephemeral-account-chats/anchor/target/types/ephemeral_account_chats.ts b/ephemeral-account-chats/anchor/target/types/ephemeral_account_chats.ts index 0686cad1..ec444af2 100644 --- a/ephemeral-account-chats/anchor/target/types/ephemeral_account_chats.ts +++ b/ephemeral-account-chats/anchor/target/types/ephemeral_account_chats.ts @@ -5,7 +5,7 @@ * IDL can be found at `target/idl/ephemeral_account_chats.json`. */ export type EphemeralAccountChats = { - "address": "5kUATzj39y1HfMJbkW9tH3nWoLgq3WJ1scwiFdfDrdVT", + "address": "46ie8wmtxyVTSKqe1xoLYTXn56iAMFFJbPRvwJoqAVdM", "metadata": { "name": "ephemeralAccountChats", "version": "0.1.0", @@ -500,38 +500,38 @@ export type EphemeralAccountChats = { "program": { "kind": "const", "value": [ - 70, - 145, - 111, - 159, - 11, - 133, + 46, + 10, + 12, + 51, + 3, + 109, + 147, + 173, + 199, + 36, + 228, + 253, 215, - 112, - 76, - 174, - 91, - 81, - 150, - 177, - 124, - 224, + 218, 122, - 138, - 64, - 62, - 198, - 210, - 136, - 229, - 55, - 20, - 26, - 45, - 23, + 211, + 92, + 156, 107, - 40, - 170 + 61, + 102, + 12, + 152, + 94, + 153, + 193, + 63, + 220, + 172, + 70, + 87, + 148 ] } } @@ -617,7 +617,7 @@ export type EphemeralAccountChats = { }, { "name": "ownerProgram", - "address": "5kUATzj39y1HfMJbkW9tH3nWoLgq3WJ1scwiFdfDrdVT" + "address": "46ie8wmtxyVTSKqe1xoLYTXn56iAMFFJbPRvwJoqAVdM" }, { "name": "delegationProgram", @@ -777,14 +777,82 @@ export type EphemeralAccountChats = { "writable": true }, { - "name": "buffer" + "name": "buffer", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 117, + 110, + 100, + 101, + 108, + 101, + 103, + 97, + 116, + 101, + 45, + 98, + 117, + 102, + 102, + 101, + 114 + ] + }, + { + "kind": "account", + "path": "baseAccount" + } + ], + "program": { + "kind": "const", + "value": [ + 181, + 183, + 0, + 225, + 242, + 87, + 58, + 192, + 204, + 6, + 34, + 1, + 52, + 74, + 207, + 151, + 184, + 53, + 6, + 235, + 140, + 229, + 25, + 152, + 204, + 98, + 126, + 24, + 147, + 128, + 167, + 62 + ] + } + } }, { "name": "payer", "writable": true }, { - "name": "systemProgram" + "name": "systemProgram", + "address": "11111111111111111111111111111111" } ], "args": [ diff --git a/ephemeral-account-chats/anchor/tests-magicsvm-rs/Cargo.lock b/ephemeral-account-chats/anchor/tests-magicsvm-rs/Cargo.lock new file mode 100644 index 00000000..1bc94223 --- /dev/null +++ b/ephemeral-account-chats/anchor/tests-magicsvm-rs/Cargo.lock @@ -0,0 +1,6615 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common 0.1.7", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures 0.2.17", +] + +[[package]] +name = "aes-gcm-siv" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae0784134ba9375416d469ec31e7c5f9fa94405049cf08c5ce5b4698be673e0d" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "polyval", + "subtle", + "zeroize", +] + +[[package]] +name = "agave-feature-set" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e724c6d41535d61eb4cba970716f6cfcef8d3f4d15750488f77a7630faab680" +dependencies = [ + "ahash 0.8.12", + "solana-epoch-schedule 3.2.0", + "solana-hash 4.5.0", + "solana-keypair", + "solana-pubkey 4.2.0", + "solana-sha256-hasher 3.1.0", + "solana-svm-feature-set", +] + +[[package]] +name = "agave-reserved-account-keys" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa474270f9cd8d71089979f1ad8e31c2eccde8b32d1ca03f33fe1123104d562" +dependencies = [ + "agave-feature-set", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "agave-transaction-view" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11af131e96e1a0df153db2d673a28293d171da78056104ec8e0d396e2bdf305b" +dependencies = [ + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-packet 4.2.0", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-svm-transaction", + "solana-transaction 4.1.6", +] + +[[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", + "getrandom 0.3.4", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "anchor-attribute-access-control" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a0ba6f4d5cff33a16a8cb30fd7419b71cf8b8b408998a341235cefe7e76cc1c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-account" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af875fe99d9dab01317a3bac577b05f3e52d5bd7d1b424de488ba51f3310feab" +dependencies = [ + "anchor-syn", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-constant" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345a11192cd11fdc8663e3194bbcd0c983c019cd9f21804d7853eeee5ee22653" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-error" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e5f6290f0f54e0e34b8efbb4dcd69dc2c46c655ada8198f35f403d2a88cf9c7" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-event" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0159e0fae5b1b508110b8753fda23ebce778f3bd8c146b8baabd12d2cebe4a7" +dependencies = [ + "anchor-syn", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-program" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51180111bea3660c0db345bfee34cf23f8d89cf2ac8dd5d8c7a044b3fb24d961" +dependencies = [ + "anchor-lang-idl", + "anchor-syn", + "anyhow", + "heck 0.3.3", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-accounts" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b802cd6561645117219ae6ed62cd322501bf1b5b7fa1a6fd8d911428c4c37192" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-serde" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa658e7d911c4290fe9ee953e75cf95f3c4db19c053f64071512867fa9f40394" +dependencies = [ + "anchor-syn", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-space" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69520cea030ee13d2978087a467bf32078012a5ce06b2746318c359887d481ed" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-lang" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bac4de7c9a9a69180798af701e22302cc0ebf2ef683b843706a1b7809454735" +dependencies = [ + "anchor-attribute-access-control", + "anchor-attribute-account", + "anchor-attribute-constant", + "anchor-attribute-error", + "anchor-attribute-event", + "anchor-attribute-program", + "anchor-derive-accounts", + "anchor-derive-serde", + "anchor-derive-space", + "base64 0.21.7", + "bincode", + "borsh 1.8.1", + "bytemuck", + "const-crypto", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-define-syscall 3.0.0", + "solana-feature-gate-interface 3.1.0", + "solana-instruction 3.4.1", + "solana-instructions-sysvar 3.0.1", + "solana-invoke", + "solana-loader-v3-interface 6.1.1", + "solana-msg 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-stake-interface 2.0.2", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", + "thiserror 1.0.69", +] + +[[package]] +name = "anchor-lang-idl" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47914b4290ae2bdf4ec203aa821e6eba86d7c78ef497918938038dcc6919f953" +dependencies = [ + "anchor-lang-idl-spec", + "anyhow", + "heck 0.3.3", + "serde", + "serde_json", + "sha2 0.10.9", +] + +[[package]] +name = "anchor-lang-idl-spec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bdf143115440fe621bdac3a29a1f7472e09f6cd82b2aa569429a0c13f103838" +dependencies = [ + "anyhow", + "serde", +] + +[[package]] +name = "anchor-syn" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ef87b1d3ae59fbf265a9157a9082308af220b4ef5a64a360d8820dcf25b5a86" +dependencies = [ + "bs58", + "heck 0.3.3", + "proc-macro2", + "quote", + "serde", + "sha2 0.11.0", + "syn 2.0.119", + "thiserror 1.0.69", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anyhow" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" + +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-bn254" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-std 0.5.0", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", + "itertools 0.13.0", + "num-bigint 0.4.8", + "num-integer", + "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 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.8", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm 0.5.0", + "ark-ff-macros 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "educe", + "itertools 0.13.0", + "num-bigint 0.4.8", + "num-traits", + "paste", + "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-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive 0.4.2", + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint 0.4.8", +] + +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-serialize-derive 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "num-bigint 0.4.8", +] + +[[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-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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.8", +] + +[[package]] +name = "ark-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" +dependencies = [ + "num-traits", + "rand 0.8.8", +] + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" + +[[package]] +name = "ascii" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[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 = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[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.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" + +[[package]] +name = "bitvec" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddcec3d12c579d40898fe0a9a358a803c23e9c52ca3c425707f81c9436211837" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake3" +version = "1.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d9e454fc11f76977dc803893aff6304ed33d6a26efae8696573bea74baa27ae" +dependencies = [ + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "cpufeatures 0.3.1", + "digest 0.11.3", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "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-buffer" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "blst" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20659f9bbee16cbbd2f7393e40ab6309f5a98f76a2eb57a995ec508b72387fe" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "blstrs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a8a8ed6fefbeef4a8c7b460e4110e12c5e22a5b7cf32621aae6ad650c4dcf29" +dependencies = [ + "blst", + "byte-slice-cast", + "ff", + "group", + "pairing", + "rand_core 0.6.4", + "serde", + "subtle", +] + +[[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.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "553c5d846a6ba5150c65e3b1b8ec073bcf1abc20f9b7220de384a4443ea4e20a" +dependencies = [ + "borsh-derive 1.8.1", + "bytes", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831213f80d9423998dd696e2c5345aba6be7a0bd8cd19e31c5243e13df1cef89" +dependencies = [ + "borsh-derive-internal", + "borsh-schema-derive-internal", + "proc-macro-crate 0.1.5", + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12cdfe656708a01f89b451a7d36466e6fe6c414de0aa18fc54f864f6f9ca9f56" +dependencies = [ + "once_cell", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[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.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.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[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 = "byte-slice-cast" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" + +[[package]] +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bytemuck" +version = "1.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a1f896587b6f2c069c73d2f0913e2d590c3990285cd2f0b6aa02b786b4c679c" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" + +[[package]] +name = "cc" +version = "1.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3eb0f42d6c360dc3f8a821f6bf2fdea7f72bfd36b3076eb0e6d1e9e0752fff4" +dependencies = [ + "find-msvc-tools", + "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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" + +[[package]] +name = "cfg_eval" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45565fc9416b9896014f5732ac776f810ee53a66730c17e4020c3ec064a8f88f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common 0.1.7", + "inout", +] + +[[package]] +name = "cmov" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" + +[[package]] +name = "combine" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" +dependencies = [ + "ascii", + "byteorder", + "either", + "memchr", + "unreachable", +] + +[[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 = "const-crypto" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c06f1eb05f06cf2e380fdded278fbf056a38974299d77960555a311dcf91a52" +dependencies = [ + "keccak-const", + "sha2-const-stable", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const-oid" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" + +[[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 = "cpufeatures" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a7799fd6b852db0e61728dde9a204c423b44d689dbd432522543614b490e78" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "crypto-common" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "ct-codecs" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49fb0c6640b4507ebd99ff67677009e381ba5eee1d14df78de4a3d16eb123c39" + +[[package]] +name = "ctor" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1c888a2a4f677017373fb6c01e13e318dd9e78758445ed5eb985e355d3f8281" +dependencies = [ + "ctor-proc-macro", + "dtor", + "link-section", +] + +[[package]] +name = "ctor-proc-macro" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7ab264ea985f1bd27887d7b21ea2bb046728e05d11909ca138d700c494730db" + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "ctutils" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" +dependencies = [ + "cmov", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "rand_core 0.6.4", + "rustc_version", + "serde", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core 0.23.0", + "darling_macro 0.23.0", +] + +[[package]] +name = "darling" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed17f5901b6630b993ca003def43f2f8ef4014fc13b047b57aad617ff32bc2ec" +dependencies = [ + "darling_core 0.24.1", + "darling_macro 0.24.1", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.119", +] + +[[package]] +name = "darling_core" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6837e2cf7485aaae18f86181d2f0e9a7ed297a025e220aeabf63fdebd3a2ddff" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 3.0.5", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "darling_macro" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ac7135c3ef02b2f7833bbeb1be5ba7f966dcde8a87c6b87f65a778d71a02785" +dependencies = [ + "darling_core 0.24.1", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "dary_heap" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b1e3a325bc115f096c8b77bbf027a7c2592230e70be2d985be950d3d5e60ebe" + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid 0.9.6", + "zeroize", +] + +[[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", + "const-oid 0.9.6", + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "digest" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" +dependencies = [ + "block-buffer 0.12.1", + "const-oid 0.10.2", + "crypto-common 0.2.2", + "ctutils", +] + +[[package]] +name = "dtor" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30e4690622ab6700ced40fc370a3f07b7d111f0154bb6fb08f73b4c8834f75b6" +dependencies = [ + "dtor-proc-macro", +] + +[[package]] +name = "dtor-proc-macro" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c98b077c7463d01d22dde8a24378ddf1ca7263dc687cffbed38819ea6c21131" + +[[package]] +name = "eager" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abe71d579d1812060163dff96056261deb5bf6729b100fa2e36a68b9649ba3d3" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand_core 0.6.4", + "serde", + "sha2 0.10.9", + "subtle", + "zeroize", +] + +[[package]] +name = "ed25519-dalek-bip32" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b49a684b133c4980d7ee783936af771516011c8cd15f429dbda77245e282f03" +dependencies = [ + "derivation-path", + "ed25519-dalek", + "hmac", + "sha2 0.10.9", +] + +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "either" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "enum-iterator" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4549325971814bda7a44061bf3fe7e487d447cba01e4220a4b454d630d7a016" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685adfa4d6f3d765a26bc5dbc936577de9abf756c1feeb3089b01dd395034842" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "enum-ordinalize" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89dd01549b09589510cf0647475075d12071456586d70f5c75c98ae2a5537677" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a65863d15a4ce2888bd2f0f543cc963d3879c3a022c8ee43f6141d479a3ac815" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "ephemeral-account-chats" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "ephemeral-rollups-sdk 0.16.2", +] + +[[package]] +name = "ephemeral-account-chats-magicsvm-tests" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "ephemeral-account-chats", + "ephemeral-rollups-sdk 0.16.2", + "magicsvm", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-native-token 3.0.0", + "solana-signer", + "solana-transaction 4.1.6", + "test-utils", +] + +[[package]] +name = "ephemeral-rollups-sdk" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "838564736408ada011e9986c819b26cf0195bb2dd238e10be258731979213d75" +dependencies = [ + "base64ct", + "bincode", + "bytemuck", + "ephemeral-rollups-sdk-attribute-action 0.14.4", + "ephemeral-rollups-sdk-attribute-commit 0.14.4", + "ephemeral-rollups-sdk-attribute-delegate 0.14.4", + "ephemeral-rollups-sdk-attribute-ephemeral 0.14.4", + "ephemeral-rollups-sdk-attribute-ephemeral-accounts 0.14.4", + "five8 0.2.1", + "getrandom 0.2.17", + "magicblock-delegation-program-api", + "magicblock-magic-program-api 0.10.1", + "num-derive", + "num-traits", + "solana-account 3.4.0", + "solana-account-info 2.3.0", + "solana-account-info 3.1.1", + "solana-address 2.6.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program 2.3.0", + "solana-program 3.0.0", + "solana-program-error 2.2.2", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "spl-associated-token-account-interface", + "thiserror 1.0.69", +] + +[[package]] +name = "ephemeral-rollups-sdk" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a267fd1fe36f82ed50307b3757561ac59b1629a523fd179e2a66f4383c9afc0a" +dependencies = [ + "anchor-lang", + "base64ct", + "bincode", + "bytemuck", + "ephemeral-rollups-sdk-attribute-action 0.16.2", + "ephemeral-rollups-sdk-attribute-commit 0.16.2", + "ephemeral-rollups-sdk-attribute-delegate 0.16.2", + "ephemeral-rollups-sdk-attribute-ephemeral 0.16.2", + "ephemeral-rollups-sdk-attribute-ephemeral-accounts 0.16.2", + "ephemeral-vrf-sdk", + "ephemeral-vrf-sdk-vrf-macro", + "five8 0.2.1", + "getrandom 0.2.17", + "magicblock-delegation-program-api", + "magicblock-magic-program-api 0.10.1", + "solana-account-info 2.3.0", + "solana-address 2.6.1", + "solana-program 2.3.0", + "solana-program 3.0.0", + "solana-program-error 2.2.2", + "solana-system-interface 2.0.0", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-action" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a29f33b94edcdfcf1b9b7a61aa0ac00e8efdc66f89c8b4b573f7ea965a42c60a" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-action" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3847b70bac1717bfd3108fe310195e658665b2d971bcb4eb2aa5aaca2c9392" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-commit" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da9ed3ea8b850013f6bf768e5f0f2e1f22f1861b46908764536795bf67bb5c67" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-commit" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b08e06840701468449f75916e922fd9694b787596efe66cd9b8dccf3ef0eb5e6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-delegate" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f0d8ab90b4ecc7ac802bbd2115681f9fd42bc5a9018be79ba7aff1fe971aa36" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-delegate" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc365676345c77eed3651debb63af9b282902100e5852a1822ee1385e3b285fe" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ea166c57ee55b329be4eae730561fe02aad5620a35b4d89439d8d0c9e07c3a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fce2590d04b16345a3117c0b66b6822a96a5ef3bc7b9add073cb3a797529d8df" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral-accounts" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa3efae094f5c288746d479fd605b67bcd56d29ddcf1238046ac07eeec130c45" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral-accounts" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f70d4bbf6761a71df97fbadcb4cceef630e2d6e37189f5e674ff34bb2210823" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-vrf-sdk" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77f3741c733907c10e0d0b32f9aa485c20a73e0b1e7e673a0ac38185fb2a6c11" +dependencies = [ + "anchor-lang", + "borsh 1.8.1", + "ephemeral-vrf-sdk-vrf-macro", + "solana-program 3.0.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "ephemeral-vrf-sdk-vrf-macro" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7b8b3fe3863a27d4c0f32da7b3cfeff179772fd4124d6c9fdcb9d4ab23cd602" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "feature-probe" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" + +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "bitvec", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "filetime" +version = "0.2.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c287a33c7f0a620c38e641e7f60827713987b3c0f26e8ddc9462cc69cf75759" +dependencies = [ + "cfg-if", + "libc", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d" + +[[package]] +name = "five8" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75b8549488b4715defcb0d8a8a1c1c76a80661b5fa106b4ca0e7fce59d7d875" +dependencies = [ + "five8_core 0.1.2", +] + +[[package]] +name = "five8" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23f76610e969fa1784327ded240f1e28a3fd9520c9cec93b636fcf62dd37f772" +dependencies = [ + "five8_core 1.0.0", +] + +[[package]] +name = "five8_const" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26dec3da8bc3ef08f2c04f61eab298c3ab334523e55f076354d6d6f613799a7b" +dependencies = [ + "five8_core 0.1.2", +] + +[[package]] +name = "five8_const" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a0f1728185f277989ca573a402716ae0beaaea3f76a8ff87ef9dd8fb19436c5" +dependencies = [ + "five8_core 1.0.0", +] + +[[package]] +name = "five8_core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2551bf44bc5f776c15044b9b94153a00198be06743e262afaaa61f11ac7523a5" + +[[package]] +name = "five8_core" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "059c31d7d36c43fe39d89e55711858b4da8be7eb6dabac23c7289b1a19489406" + +[[package]] +name = "flate2" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb" +dependencies = [ + "zlib-rs", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures-core" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" + +[[package]] +name = "futures-task" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" + +[[package]] +name = "futures-util" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" +dependencies = [ + "futures-core", + "futures-task", + "pin-project-lite", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[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 = "glob" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand 0.8.8", + "rand_core 0.6.4", + "rand_xorshift", + "subtle", +] + +[[package]] +name = "hash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" +dependencies = [ + "byteorder", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284" + +[[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 = "http" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hybrid-array" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27f864f10dfb56725ce5ce5472bc52252c8f93a4ab86327122cebf62c5f59a17" +dependencies = [ + "typenum", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "indexmap" +version = "2.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", +] + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "generic-array", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "js-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2 0.10.9", + "signature", +] + +[[package]] +name = "keccak" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" +dependencies = [ + "cpufeatures 0.2.17", +] + +[[package]] +name = "keccak-const" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d8d8ce877200136358e0bbff3a77965875db3af755a11e1fa6b1b3e2df13ea" + +[[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.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" + +[[package]] +name = "libflate" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "561a8da1a50e1428d3c51321dafeca849df992a5bb67720c386131234caba82e" +dependencies = [ + "adler32", + "crc32fast", + "dary_heap", + "libflate_lz77", + "no_std_io2", +] + +[[package]] +name = "libflate_lz77" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7a10e427698aef6eef269482776debfef63384d30f13aad39a1a95e0e098fd" +dependencies = [ + "hashbrown 0.16.1", + "no_std_io2", + "rle-decode-fast", +] + +[[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", + "libsecp256k1-core 0.2.2", + "libsecp256k1-gen-ecmult 0.2.1", + "libsecp256k1-gen-genmult 0.2.1", + "rand 0.7.3", + "serde", + "sha2 0.9.9", +] + +[[package]] +name = "libsecp256k1" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" +dependencies = [ + "arrayref", + "base64 0.22.1", + "digest 0.9.0", + "libsecp256k1-core 0.3.0", + "libsecp256k1-gen-ecmult 0.3.0", + "libsecp256k1-gen-genmult 0.3.0", + "rand 0.8.8", + "serde", + "sha2 0.9.9", +] + +[[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-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" +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 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" +dependencies = [ + "libsecp256k1-core 0.3.0", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" +dependencies = [ + "libsecp256k1-core 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" +dependencies = [ + "libsecp256k1-core 0.3.0", +] + +[[package]] +name = "libsodium-rs" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b8cd48c80d6c6fa5a4612d242941067219555baea82b0b49c92ea9d8156b59c" +dependencies = [ + "ct-codecs", + "ctor", + "libc", + "libsodium-sys-stable", + "pkg-config", + "thiserror 1.0.69", + "zeroize", +] + +[[package]] +name = "libsodium-sys-stable" +version = "1.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b04bf6da2c98b727af37ab62cb505f4d751b975b034a9b9ad491d333b0564e" +dependencies = [ + "cc", + "libc", + "libflate", + "minisign-verify", + "pkg-config", + "tar", + "ureq", + "vcpkg", + "zip", +] + +[[package]] +name = "light-poseidon" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c9a85a9752c549ceb7578064b4ed891179d20acd85f27318573b64d2d7ee7ee" +dependencies = [ + "ark-bn254 0.4.0", + "ark-ff 0.4.2", + "num-bigint 0.4.8", + "thiserror 1.0.69", +] + +[[package]] +name = "light-poseidon" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47a1ccadd0bb5a32c196da536fd72c59183de24a055f6bf0513bf845fefab862" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ff 0.5.0", + "num-bigint 0.4.8", + "thiserror 1.0.69", +] + +[[package]] +name = "link-section" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52437d47b0358721ec869cc7374b2a21f7b2237af9b439c0391341a1fbfbf1b" + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[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.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" + +[[package]] +name = "magicblock-account" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b5671bd1525eeab67f240455dffff31a4f6d27b067a3531f2d47c7d5af0c6e" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "thiserror 2.0.20", +] + +[[package]] +name = "magicblock-delegation-program-api" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea16e41e04319201919afca98dd4241b18549f2db0c68f58e4bc531537b5dab" +dependencies = [ + "bincode", + "borsh 0.10.4", + "borsh 1.8.1", + "bytemuck", + "const-crypto", + "libsodium-rs", + "num_enum", + "pinocchio 0.10.2", + "pinocchio-log", + "pinocchio-pubkey", + "pinocchio-system", + "rkyv", + "serde", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-loader-v3-interface 6.1.1", + "solana-program 3.0.0", + "solana-pubkey 2.4.0", + "solana-sdk", + "solana-sdk-ids 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-system-interface 2.0.0", + "static_assertions", + "strum", + "thiserror 2.0.20", +] + +[[package]] +name = "magicblock-litesvm" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82cfc1c7f4348c300f58ddd5ae8613e9b1d08564a7956af43822de59cb76d039" +dependencies = [ + "agave-feature-set", + "agave-reserved-account-keys", + "ansi_term", + "indexmap", + "itertools 0.15.0", + "log", + "magicblock-account", + "solana-account 4.3.2", + "solana-address 2.6.1", + "solana-address-lookup-table-interface 3.1.0", + "solana-builtins", + "solana-clock 3.1.1", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-feature-gate-interface 4.0.0", + "solana-fee", + "solana-fee-calculator 3.2.2", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-instructions-sysvar 4.0.0", + "solana-keypair", + "solana-last-restart-slot 3.1.0", + "solana-loader-v3-interface 8.0.1", + "solana-loader-v4-interface 3.1.0", + "solana-message 4.4.1", + "solana-native-token 3.0.0", + "solana-nonce 3.2.1", + "solana-nonce-account", + "solana-precompile-error", + "solana-program-error 3.0.1", + "solana-program-runtime", + "solana-rent 4.3.0", + "solana-runtime-transaction", + "solana-sdk-ids 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-signature 3.4.1", + "solana-signer", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stake-history", + "solana-svm-callback", + "solana-svm-log-collector", + "solana-svm-timings", + "solana-svm-transaction", + "solana-syscalls", + "solana-system-interface 3.2.0", + "solana-system-program", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "magicblock-magic-program-api" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291f7a68f6cc622741a3fae513bd71640911abefd1fae2b2602b934515ed4b95" +dependencies = [ + "bincode", + "const-crypto", + "serde", + "solana-program 2.3.0", + "solana-signature 2.3.0", +] + +[[package]] +name = "magicblock-magic-program-api" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dc8fba0307c90b91b70c9ed06d4242d6c4159f331b2f05bf8f875c2a94e0e98" +dependencies = [ + "bincode", + "const-crypto", + "serde", + "solana-program 3.0.0", + "solana-signature 3.4.1", +] + +[[package]] +name = "magicsvm" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e3effa3b8d28f3e0a14d1b72afcf65c2bec2331882a19065ec4424cd5c7ee37" +dependencies = [ + "bincode", + "borsh 1.8.1", + "ephemeral-rollups-sdk 0.14.4", + "magicblock-account", + "magicblock-delegation-program-api", + "magicblock-litesvm", + "magicblock-magic-program-api 0.8.8", + "solana-account 4.3.2", + "solana-address 2.6.1", + "solana-clock 3.1.1", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-program-runtime", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-signer", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[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 = "minisign-verify" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22f9645cb765ea72b8111f36c522475d2daa0d22c957a9826437e97534bc4e9e" + +[[package]] +name = "no_std_io2" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418abd1b6d34fbf6cae440dc874771b0525a604428704c76e48b29a5e67b8003" +dependencies = [ + "memchr", +] + +[[package]] +name = "num" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" +dependencies = [ + "num-bigint 0.2.6", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +dependencies = [ + "autocfg", + "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.119", +] + +[[package]] +name = "num-integer" +version = "0.1.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92800bd69a1eac91786bcfe9da64a897eb72911b8dc3095decbd07429e8048b" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +dependencies = [ + "autocfg", + "num-bigint 0.2.6", + "num-integer", + "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_cpus" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group", +] + +[[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 = "pastey" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4" + +[[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 = "percentage" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd23b938276f14057220b707937bcb42fa76dda7560e57a2da30cb52d557937" +dependencies = [ + "num", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pinocchio" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8afe4f39c0e25cc471b35b89963312791a5162d45a86578cbeaad9e5e7d1b3b" + +[[package]] +name = "pinocchio" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06810dac15a4ef83d3dabdb4f2f22fb39c9adff669cd2781da4f716510a647c" +dependencies = [ + "solana-account-view", + "solana-address 2.6.1", + "solana-define-syscall 4.0.1", + "solana-instruction-view", + "solana-program-error 3.0.1", +] + +[[package]] +name = "pinocchio-log" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd11022408f312e6179ece321c1f7dc0d1b2aa7765fddd39b2a7378d65a899e8" +dependencies = [ + "pinocchio-log-macro", +] + +[[package]] +name = "pinocchio-log-macro" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69fb52edb3c5736b044cc462b0957b9767d0f574d138f4e2761438c498a4b467" +dependencies = [ + "quote", + "regex", + "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 0.1.4", + "pinocchio 0.9.3", + "sha2-const-stable", +] + +[[package]] +name = "pinocchio-system" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24044a0815753862b558e179e78f03f7344cb755de48617a09d7d23b50883b6c" +dependencies = [ + "pinocchio 0.10.2", + "solana-address 2.6.1", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "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.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[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.119", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +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 = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e058c7de0b26af77780c769414d6257830bb240f3c38477dbc2c16e5f54d6d4c" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", +] + +[[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_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", +] + +[[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_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] + +[[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_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + +[[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.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "rend" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "rkyv" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2297bf9c81a3f0dc96bc9521370b88f054168c29826a75e89c55ff196e7ed6a1" +dependencies = [ + "bitvec", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d7b42d4b8d06048d3ac8db0eb31bcb942cbeb709f0b5f2b2ebde398d3038f5" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rle-decode-fast" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" + +[[package]] +name = "rustc-demangle" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b74b56ffa8bb2830709a538c2cbcae9aa062db0d2a42563bfb09bdaae44020eb" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-big-array" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" +dependencies = [ + "serde", +] + +[[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.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "serde_json" +version = "1.0.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_with" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "935177bb8c0cd8ca1a4e6d1a2ac8988bea69cab4f9d3a31311e012ad27868ea4" +dependencies = [ + "serde_core", + "serde_with_macros", +] + +[[package]] +name = "serde_with_macros" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d607aa01a3cb0ad757d6fd216136910db3c97b102fe686585689615a02dbcdc" +dependencies = [ + "darling 0.24.1", + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[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 0.2.17", + "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 0.2.17", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.1", + "digest 0.11.3", +] + +[[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.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77fd7028345d415a4034cf8777cd4f8ab1851274233b45f84e3d955502d93874" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "simd-adler32" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba467056f1b547ed52077911161fc86985becbc60e8e1857c8a144dab0def891" + +[[package]] +name = "solana-account" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f949fe4edaeaea78c844023bfc1c898e0b1f5a100f8a8d2d0f85d0a7b090258" +dependencies = [ + "solana-account-info 2.3.0", + "solana-clock 2.2.3", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-account" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efc0ed36decb689413b9da5d57f2be49eea5bebb3cf7897015167b0c4336e731" +dependencies = [ + "bincode", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 3.1.1", +] + +[[package]] +name = "solana-account" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26788ba0d7eb5b250edda3e1d393739bafd5daf94882f2261d14f5ab0d6a25e0" +dependencies = [ + "bincode", + "qualifier_attr", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 4.1.0", +] + +[[package]] +name = "solana-account-info" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8f5152a288ef1912300fc6efa6c2d1f9bb55d9398eb6c72326360b8063987da" +dependencies = [ + "bincode", + "serde", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-account-info" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9cf16495d9eb53e3d04e72366a33bb1c20c24e78c171d8b8f5978357b63ae95" +dependencies = [ + "bincode", + "serde_core", + "solana-address 2.6.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.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.6.1", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-address" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2ecac8e1b7f74c2baa9e774c42817e3e75b20787134b76cc4d45e8a604488f5" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-address" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c93e262f671bf402e1040e4a7e40b05d81da5956c7681948c975a0997517bb" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8 1.0.0", + "five8_const 1.0.0", + "rand 0.9.5", + "serde", + "serde_derive", + "sha2-const-stable", + "solana-atomic-u64 3.0.1", + "solana-define-syscall 5.2.0", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.1.0", + "wincode", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1673f67efe870b64a65cb39e6194be5b26527691ce5922909939961a6e6b395" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-slot-hashes 2.2.1", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115b4f773acc4f3f3cb986b0d335e9845c0368c82b0940410935bc11ae065578" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", +] + +[[package]] +name = "solana-atomic-u64" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52e52720efe60465b052b9e7445a01c17550666beec855cce66f44766697bc2" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "solana-atomic-u64" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "085db4906d89324cef2a30840d59eaecf3d4231c560ec7c9f6614a93c652f501" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "solana-big-mod-exp" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75db7f2bbac3e62cfd139065d15bcda9e2428883ba61fc8d27ccb251081e7567" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-big-mod-exp" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30c80fb6d791b3925d5ec4bf23a7c169ef5090c013059ec3ed7d0b2c04efa085" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "solana-define-syscall 3.0.0", +] + +[[package]] +name = "solana-bincode" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19a3787b8cf9c9fe3dd360800e8b70982b9e5a8af9e11c354b6665dd4a003adc" +dependencies = [ + "bincode", + "serde", + "solana-instruction 2.3.3", +] + +[[package]] +name = "solana-bincode" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "278a1a5bad62cd9da89ac8d4b7ec444e83caa8ae96aa656dfc27684b28d49a5d" +dependencies = [ + "bincode", + "serde_core", + "solana-instruction-error", +] + +[[package]] +name = "solana-blake3-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a0801e25a1b31a14494fc80882a036be0ffd290efc4c2d640bfcca120a4672" +dependencies = [ + "blake3", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-blake3-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7116e1d942a2432ca3f514625104757ab8a56233787e95144c93950029e31176" +dependencies = [ + "blake3", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-bls-signatures" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "654ea8d31bbb4b0b9c28f9c545edb32691de27d4e2fc0e252c1ff47da50c5f2a" +dependencies = [ + "base64 0.22.1", + "blst", + "blstrs", + "cfg_eval", + "ff", + "group", + "pairing", + "rand 0.8.8", + "serde", + "serde_json", + "serde_with", + "thiserror 2.0.20", + "wincode", + "zeroize", +] + +[[package]] +name = "solana-bls12-381-syscall" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94e8256fda0542709fd1320a96d81c3c66e10ac5f680cca9b991d7d3b0e3fe86" +dependencies = [ + "blst", + "blstrs", + "bytemuck", + "bytemuck_derive", + "pairing", +] + +[[package]] +name = "solana-bn254" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62ff13a8867fcc7b0f1114764e1bf6191b4551dcaf93729ddc676cd4ec6abc9f" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "bytemuck", + "solana-define-syscall 5.2.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-borsh" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718333bcd0a1a7aed6655aa66bef8d7fb047944922b2d3a18f49cbc13e73d004" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", +] + +[[package]] +name = "solana-borsh" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c04abbae16f57178a163125805637b8a076175bb5c0002fb04f4792bea901cf7" +dependencies = [ + "borsh 1.8.1", +] + +[[package]] +name = "solana-bpf-loader-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabcc3a5785886f026b438771bf6b221b0d4877f6089af79d432c7fe877a6cd4" +dependencies = [ + "bincode", + "qualifier_attr", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-clock 3.1.1", + "solana-instruction 3.4.1", + "solana-loader-v3-interface 7.0.0", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-type-overrides", + "solana-syscalls", + "solana-system-interface 3.2.0", + "solana-transaction-context", +] + +[[package]] +name = "solana-builtins" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ab49c6f8a77bff54e811e9674747fd435e218dcbe71120039a865515151998c" +dependencies = [ + "agave-feature-set", + "solana-bpf-loader-program", + "solana-compute-budget-program", + "solana-hash 4.5.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-program", + "solana-vote-program", + "solana-zk-elgamal-proof-program", + "solana-zk-token-proof-program", +] + +[[package]] +name = "solana-builtins-default-costs" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76792b1ecab1c5f127f16062926850b52c4bb51ac1a93d220635fb13221d3503" +dependencies = [ + "agave-feature-set", + "ahash 0.8.12", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-clock" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8584296123df8fe229b95e2ebfd37ae637fe9db9b7d4dd677ac5a78e80dbfce" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-clock" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0acdace90d96e2c9e70d681465b4fe888b6bcf27c354ae9774e9f8a3b72923d" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-compute-budget" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e200042fd149d565521f7b31e082c0db0e022e9860c7e013130f812984ae846f" +dependencies = [ + "solana-fee-structure", + "solana-program-runtime", +] + +[[package]] +name = "solana-compute-budget-instruction" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a651fc5d082fd88090a7336ea85599b1ffcf6503dbcff575ae1bb2fb1cec238" +dependencies = [ + "agave-feature-set", + "solana-borsh 3.0.2", + "solana-builtins-default-costs", + "solana-compute-budget", + "solana-compute-budget-interface", + "solana-instruction 3.4.1", + "solana-packet 4.2.0", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-svm-transaction", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-compute-budget-interface" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8292c436b269ad23cecc8b24f7da3ab07ca111661e25e00ce0e1d22771951ab9" +dependencies = [ + "borsh 1.8.1", + "solana-instruction 3.4.1", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-compute-budget-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e314aeb4a86507ba77fb2d6ce9f5836af6aeaaedd4c5314e310ca72f73afe367" +dependencies = [ + "solana-program-runtime", +] + +[[package]] +name = "solana-cpi" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dc71126edddc2ba014622fc32d0f5e2e78ec6c5a1e0eb511b85618c09e9ea11" +dependencies = [ + "solana-account-info 2.3.0", + "solana-define-syscall 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-stable-layout 2.2.1", +] + +[[package]] +name = "solana-cpi" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dea26709d867aada85d0d3617db0944215c8bb28d3745b912de7db13a23280c" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 4.0.1", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-stable-layout 3.0.1", +] + +[[package]] +name = "solana-curve25519" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14b4d2a4bf0d0b0a86c22111917e86e8bd39a7b31420fb2c7d73eb83761fc7af" +dependencies = [ + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "solana-define-syscall 5.2.0", + "subtle", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-decode-error" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c781686a18db2f942e70913f7ca15dc120ec38dcab42ff7557db2c70c625a35" +dependencies = [ + "num-traits", +] + +[[package]] +name = "solana-define-syscall" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ae3e2abcf541c8122eafe9a625d4d194b4023c20adde1e251f94e056bb1aee2" + +[[package]] +name = "solana-define-syscall" +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-define-syscall" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf8209ece2bd9f1450e672858ffc0e5c8c786ff6916d2a862b126dd0128f380f" + +[[package]] +name = "solana-derivation-path" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff71743072690fdbdfcdc37700ae1cb77485aaad49019473a81aee099b1e0b8c" +dependencies = [ + "derivation-path", + "qstring", + "uriparse", +] + +[[package]] +name = "solana-epoch-info" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e093c84f6ece620a6b10cd036574b0cd51944231ab32d81f80f76d54aba833e6" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-epoch-rewards" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b575d3dd323b9ea10bb6fe89bf6bf93e249b215ba8ed7f68f1a3633f384db7" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 2.3.0", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-rewards" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf7eb4986b0b1d6f562b21f75a836f1a6df6e00c275efcef50aab5c144dc59e" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-epoch-rewards-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee8beac9bff4db9225e57d532d169b0be5e447f1e6601a2f50f27a01bf5518f" +dependencies = [ + "siphasher", + "solana-address 2.6.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-epoch-schedule" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fce071fbddecc55d727b1d7ed16a629afe4f6e4c217bc8d00af3b785f6f67ed" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-schedule" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8116e6ffa6002237d5ab5edcbda17f9ba66b6742c45a89c9fb40a94dbacd4c1d" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-program-error 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-epoch-stake" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "027e6d0b9e7daac5b2ac7c3f9ca1b727861121d9ef05084cf435ff736051e7c2" +dependencies = [ + "solana-define-syscall 5.2.0", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-example-mocks" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84461d56cbb8bb8d539347151e0525b53910102e4bced875d49d5139708e39d3" +dependencies = [ + "serde", + "serde_derive", + "solana-address-lookup-table-interface 2.2.2", + "solana-clock 2.2.3", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-keccak-hasher 2.2.1", + "solana-message 2.4.0", + "solana-nonce 2.2.1", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-example-mocks" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978855d164845c1b0235d4b4d101cadc55373fffaf0b5b6cfa2194d25b2ed658" +dependencies = [ + "serde", + "serde_derive", + "solana-address-lookup-table-interface 3.1.0", + "solana-clock 3.1.1", + "solana-hash 3.1.0", + "solana-instruction 3.4.1", + "solana-keccak-hasher 3.1.0", + "solana-message 3.1.0", + "solana-nonce 3.2.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 2.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43f5c5382b449e8e4e3016fb05e418c53d57782d8b5c30aa372fc265654b956d" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 2.2.1", + "solana-account-info 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75ca9b5cbb6f500f7fd73db5bd95640f71a83f04d6121a0e59a43b202dca2731" +dependencies = [ + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd7545e02f91da1d6996f32b18f7796aa01e0682f8f3a7434b82cd1a10448add" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-fee" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c32df41c2c93a567a1612a973faddeaca093276677c157ef9cb60a378289fc69" +dependencies = [ + "agave-feature-set", + "solana-fee-structure", + "solana-svm-transaction", +] + +[[package]] +name = "solana-fee-calculator" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89bc408da0fb3812bc3008189d148b4d3e08252c79ad810b245482a3f70cd8d" +dependencies = [ + "log", + "serde", + "serde_derive", +] + +[[package]] +name = "solana-fee-calculator" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef67f01cc6a0c72e99a08d0d484683f995de4c80e9568728fa77d1537f9b7e09" +dependencies = [ + "log", + "serde", + "serde_derive", + "wincode", +] + +[[package]] +name = "solana-fee-structure" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2abdb1223eea8ec64136f39cb1ffcf257e00f915c957c35c0dd9e3f4e700b0" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-get-sysvar" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef3bc859fc036ed490146793557386cbfae614ebba4adc704c37d94350824ed4" +dependencies = [ + "solana-address 2.6.1", + "solana-define-syscall 5.2.0", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-hard-forks" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb50b2df7a36a2af58ce24bb0229622ac845dcc196e8c23b3ea4a29dd6bee09" + +[[package]] +name = "solana-hash" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b96e9f0300fa287b545613f007dfe20043d7812bee255f418c1eb649c93b63" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "five8 0.2.1", + "js-sys", + "serde", + "serde_derive", + "solana-atomic-u64 2.2.1", + "solana-sanitize 2.2.1", + "wasm-bindgen", +] + +[[package]] +name = "solana-hash" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "337c246447142f660f778cf6cb582beba8e28deb05b3b24bfb9ffd7c562e5f41" +dependencies = [ + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-hash" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f4c847893a2ea50b4ae3ca723b124e07cd0544fecea3598f785168f9b78333f" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "five8 1.0.0", + "serde", + "serde_derive", + "solana-atomic-u64 3.0.1", + "solana-sanitize 3.0.1", + "wincode", +] + +[[package]] +name = "solana-hash-512" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce934b02bab639341f2fd62c3e7e3c39dcceb47f0196b7630ed1f82ecb704bd" + +[[package]] +name = "solana-inflation" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf186550ea7438e2708bd0c233f01fe9c3fa45b9b607ff993b650ce60af102e" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-instruction" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab5682934bd1f65f8d2c16f21cb532526fcc1a09f796e2cacdb091eee5774ad" +dependencies = [ + "bincode", + "borsh 1.8.1", + "getrandom 0.2.17", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "serde_json", + "solana-define-syscall 2.3.0", + "solana-pubkey 2.4.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-instruction" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3957ca1d31107efd9a6bb88b25c348ca5e3b4b6683e3d08adb86d3d17aa01f1" +dependencies = [ + "bincode", + "borsh 1.8.1", + "serde", + "serde_derive", + "solana-define-syscall 5.2.0", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "wincode", +] + +[[package]] +name = "solana-instruction-error" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b7d34343838343a3755b7dfb1e438d94c6db2263b519cfe3c2257af932b6e93" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-program-error 3.0.1", +] + +[[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.6.1", + "solana-define-syscall 4.0.1", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0e85a6fad5c2d0c4f5b91d34b8ca47118fc593af706e523cdbedf846a954f57" +dependencies = [ + "bitflags", + "solana-account-info 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serialize-utils 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e0732294560e88ecdb2bbc656e67383e9f88c78ec09469cef172f0d28cd1bcd" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-serialize-utils 3.1.2", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e38363a181313d607f7a118df2b401bb27b477a0104b09283cbf504f5f0f00cc" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-serialize-utils 3.1.2", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-invoke" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4065031f5c7dd29ef5f5003c1a353011eeabbafa6c5a5033da0cedbfca824b94" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 3.0.0", + "solana-instruction 3.4.1", + "solana-program-entrypoint 3.1.1", + "solana-stable-layout 3.0.1", +] + +[[package]] +name = "solana-keccak-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7aeb957fbd42a451b99235df4942d96db7ef678e8d5061ef34c9b34cae12f79" +dependencies = [ + "sha3", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-keccak-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed1c0d16d6fdeba12291a1f068cdf0d479d9bff1141bf44afd7aa9d485f65ef8" +dependencies = [ + "sha3", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-keypair" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "263d614c12aa267a3278703175fd6440552ca61bc960b5a02a4482720c53438b" +dependencies = [ + "ed25519-dalek", + "ed25519-dalek-bip32", + "five8 1.0.0", + "five8_core 1.0.0", + "rand 0.9.5", + "solana-address 2.6.1", + "solana-derivation-path", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-last-restart-slot" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a6360ac2fdc72e7463565cd256eedcf10d7ef0c28a1249d261ec168c1b55cdd" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-last-restart-slot" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22474b83d3c7c318e1c3a725784fc2d1d03b728e36369e58ce48769a61ed85e" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-loader-v2-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8ab08006dad78ae7cd30df8eea0539e207d08d91eaefb3e1d49a446e1c49654" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f7162a05b8b0773156b443bccd674ea78bb9aa406325b467ea78c06c99a63a2" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e0538d4dbc9022e01616f1c58f2db98ece739c5d5ed4a2ef8737a953e76a2d4" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68029ab11d9c891d4ce23ada75745e40f983c5674af366f447b672569634231b" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "362b468fbde4c20521b9ff5ef743bc0d9b410455a5a92a8b29fd46954e89345f" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", + "wincode", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "706a777242f1f39a83e2a96a2a6cb034cb41169c6ecbee2cf09cb873d9659e7e" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c948b33ff81fa89699911b207059e493defdba9647eaf18f23abdf3674e0fb" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-message" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1796aabce376ff74bf89b78d268fa5e683d7d7a96a0a4e4813ec34de49d5314b" +dependencies = [ + "bincode", + "blake3", + "lazy_static", + "serde", + "serde_derive", + "solana-bincode 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", + "solana-transaction-error 2.2.1", + "wasm-bindgen", +] + +[[package]] +name = "solana-message" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0448b1fd891c5f46491e5dc7d9986385ba3c852c340db2911dd29faa01d2b08d" +dependencies = [ + "bincode", + "blake3", + "lazy_static", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-message" +version = "4.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e29e655f222a3a64145fedceacdca3e696ba7aded1dbd5391aa09d5fbfba53c" +dependencies = [ + "blake3", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-msg" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36a1a14399afaabc2781a1db09cb14ee4cc4ee5c7a5a3cfcc601811379a8092" +dependencies = [ + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-msg" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726b7cbbc6be6f1c6f29146ac824343b9415133eee8cce156452ad1db93f8008" +dependencies = [ + "solana-define-syscall 5.2.0", +] + +[[package]] +name = "solana-native-token" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61515b880c36974053dd499c0510066783f0cc6ac17def0c7ef2a244874cf4a9" + +[[package]] +name = "solana-native-token" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae8dd4c280dca9d046139eb5b7a5ac9ad10403fbd64964c7d7571214950d758f" + +[[package]] +name = "solana-nonce" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703e22eb185537e06204a5bd9d509b948f0066f2d1d814a6f475dafb3ddf1325" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-pubkey 2.4.0", + "solana-sha256-hasher 2.3.0", +] + +[[package]] +name = "solana-nonce" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4172d5b33a0a38fcdb2af8f84406570dd51567267da96c28ad0f31fc11621c0" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator 3.2.2", + "solana-hash 4.5.0", + "solana-pubkey 4.2.0", + "solana-sha256-hasher 3.1.0", + "wincode", +] + +[[package]] +name = "solana-nonce-account" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b81bf7e2aa8c443724051507c1007d0b6d9c34b70925d3232dc78f5ca485209e" +dependencies = [ + "solana-account 4.3.2", + "solana-hash 4.5.0", + "solana-nonce 3.2.1", + "solana-sdk-ids 3.1.0", + "wincode", +] + +[[package]] +name = "solana-offchain-message" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e2a1141a673f72a05cf406b99e4b2b8a457792b7c01afa07b3f00d4e2de393" +dependencies = [ + "num_enum", + "solana-hash 3.1.0", + "solana-packet 3.0.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.1.0", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-packet" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edf2f25743c95229ac0fdc32f8f5893ef738dbf332c669e9861d33ddb0f469d" +dependencies = [ + "bitflags", +] + +[[package]] +name = "solana-packet" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a2a582d7863548f047f49aa3745c076cfa9e1364baa080ef0c1210f0e4ebda" +dependencies = [ + "bitflags", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-poseidon" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "737b8ab25bf4cc8e618f80f1fe40709b2ace708bc764a36b8a4c81eea8c07034" +dependencies = [ + "ark-bn254 0.4.0", + "ark-bn254 0.5.0", + "light-poseidon 0.2.0", + "light-poseidon 0.4.0", + "solana-define-syscall 4.0.1", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-precompile-error" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cafcd950de74c6c39d55dc8ca108bbb007799842ab370ef26cf45a34453c31e1" +dependencies = [ + "num-traits", +] + +[[package]] +name = "solana-presigner" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f704eaf825be3180832445b9e4983b875340696e8e7239bf2d535b0f86c14a2" +dependencies = [ + "solana-pubkey 3.0.0", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-program" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98eca145bd3545e2fbb07166e895370576e47a00a7d824e325390d33bf467210" +dependencies = [ + "bincode", + "blake3", + "borsh 0.10.4", + "borsh 1.8.1", + "bs58", + "bytemuck", + "console_error_panic_hook", + "console_log", + "getrandom 0.2.17", + "lazy_static", + "log", + "memoffset", + "num-bigint 0.4.8", + "num-derive", + "num-traits", + "rand 0.8.8", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 2.3.0", + "solana-address-lookup-table-interface 2.2.2", + "solana-atomic-u64 2.2.1", + "solana-big-mod-exp 2.2.1", + "solana-bincode 2.2.1", + "solana-blake3-hasher 2.2.1", + "solana-borsh 2.2.1", + "solana-clock 2.2.3", + "solana-cpi 2.2.1", + "solana-decode-error", + "solana-define-syscall 2.3.0", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", + "solana-example-mocks 2.2.1", + "solana-feature-gate-interface 2.2.2", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-instructions-sysvar 2.2.2", + "solana-keccak-hasher 2.2.1", + "solana-last-restart-slot 2.2.1", + "solana-loader-v2-interface", + "solana-loader-v3-interface 5.0.0", + "solana-loader-v4-interface 2.2.1", + "solana-message 2.4.0", + "solana-msg 2.2.1", + "solana-native-token 2.3.0", + "solana-nonce 2.2.1", + "solana-program-entrypoint 2.3.0", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-program-option 2.2.1", + "solana-program-pack 2.2.1", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-secp256k1-recover 2.2.1", + "solana-serde-varint 2.2.2", + "solana-serialize-utils 2.2.1", + "solana-sha256-hasher 2.3.0", + "solana-short-vec 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stable-layout 2.2.1", + "solana-stake-interface 1.2.1", + "solana-system-interface 1.0.0", + "solana-sysvar 2.3.0", + "solana-sysvar-id 2.2.1", + "solana-vote-interface 2.2.6", + "thiserror 2.0.20", + "wasm-bindgen", +] + +[[package]] +name = "solana-program" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91b12305dd81045d705f427acd0435a2e46444b65367d7179d7bdcfc3bc5f5eb" +dependencies = [ + "memoffset", + "solana-account-info 3.1.1", + "solana-big-mod-exp 3.0.0", + "solana-blake3-hasher 3.1.0", + "solana-borsh 3.0.2", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-define-syscall 3.0.0", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-epoch-stake", + "solana-example-mocks 3.0.0", + "solana-fee-calculator 3.2.2", + "solana-hash 3.1.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-instructions-sysvar 3.0.1", + "solana-keccak-hasher 3.1.0", + "solana-last-restart-slot 3.1.0", + "solana-msg 3.1.0", + "solana-native-token 3.0.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.3.0", + "solana-serde-varint 3.0.1", + "solana-serialize-utils 3.1.2", + "solana-sha256-hasher 3.1.0", + "solana-short-vec 3.2.2", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stable-layout 3.0.1", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-program-entrypoint" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32ce041b1a0ed275290a5008ee1a4a6c48f5054c8a3d78d313c08958a06aedbd" +dependencies = [ + "solana-account-info 2.3.0", + "solana-msg 2.2.1", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-program-entrypoint" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c9b0a1ff494e05f503a08b3d51150b73aa639544631e510279d6375f290997" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 4.0.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-program-error" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ee2e0217d642e2ea4bee237f37bd61bb02aec60da3647c48ff88f6556ade775" +dependencies = [ + "borsh 1.8.1", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-msg 2.2.1", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-program-error" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f04fa578707b3612b095f0c8e19b66a1233f7c42ca8082fcb3b745afcc0add6" +dependencies = [ + "borsh 1.8.1", + "serde", + "serde_derive", +] + +[[package]] +name = "solana-program-memory" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a5426090c6f3fd6cfdc10685322fede9ca8e5af43cd6a59e98bfe4e91671712" +dependencies = [ + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-program-memory" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4068648649653c2c50546e9a7fb761791b5ab0cda054c771bb5808d3a4b9eb52" +dependencies = [ + "solana-define-syscall 4.0.1", +] + +[[package]] +name = "solana-program-option" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc677a2e9bc616eda6dbdab834d463372b92848b2bfe4a1ed4e4b4adba3397d0" + +[[package]] +name = "solana-program-option" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a88006a9b8594088cec9027ab77caaaa258a2aaa2083d3f086c44b42e50aeab" + +[[package]] +name = "solana-program-pack" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "319f0ef15e6e12dc37c597faccb7d62525a509fec5f6975ecb9419efddeb277b" +dependencies = [ + "solana-program-error 2.2.2", +] + +[[package]] +name = "solana-program-pack" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7701cb15b90667ae1c89ef4ac35a59c61e66ce58ddee13d729472af7f41d59" +dependencies = [ + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-program-runtime" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2b7281bd4a6072c7e11b611f771f4e61be1d45ea0d2aecfbb77d02d1b5877d4" +dependencies = [ + "base64 0.22.1", + "bincode", + "cfg-if", + "itertools 0.14.0", + "log", + "percentage", + "rand 0.9.5", + "serde", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-loader-v3-interface 7.0.0", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", + "solana-stable-layout 3.0.1", + "solana-stake-interface 4.3.0", + "solana-svm-callback", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-timings", + "solana-svm-transaction", + "solana-svm-type-overrides", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction-context", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "solana-pubkey" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b62adb9c3261a052ca1f999398c388f1daf558a1b492f60a6d9e64857db4ff1" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8 0.2.1", + "five8_const 0.1.4", + "getrandom 0.2.17", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-atomic-u64 2.2.1", + "solana-decode-error", + "solana-define-syscall 2.3.0", + "solana-sanitize 2.2.1", + "solana-sha256-hasher 2.3.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-pubkey" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8909d399deb0851aa524420beeb5646b115fd253ef446e35fe4504c904da3941" +dependencies = [ + "rand 0.8.8", + "solana-address 1.1.0", +] + +[[package]] +name = "solana-pubkey" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7db719574990de7e8b0f55a8593ac92a5ccb42c8ce67b3e4bf05b139d5d9ee71" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-rent" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1aea8fdea9de98ca6e8c2da5827707fb3842833521b528a713810ca685d2480" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-rent" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e860d5499a705369778647e97d760f7670adfb6fc8419dd3d568deccd46d5487" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-rent" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39f0d780bf8e8a1fe8b5b5fce1acad6b209485b86dec246e7523d5e4a8b7c7fc" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-runtime-transaction" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60cf942dcefc0f4d600fed1f4d220ff27abaa04def1fefa37e0e0c2a96e4179" +dependencies = [ + "agave-feature-set", + "agave-transaction-view", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-svm-transaction", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-sanitize" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61f1bc1357b8188d9c4a3af3fc55276e56987265eb7ad073ae6f8180ee54cecf" + +[[package]] +name = "solana-sanitize" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf09694a0fc14e5ffb18f9b7b7c0f15ecb6eac5b5610bf76a1853459d19daf9" + +[[package]] +name = "solana-sbpf" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d777d7a89267dd133e985113c7e7f820fb7cfd9123a4a350cf8b39ebae1920bc" +dependencies = [ + "byteorder", + "combine", + "hash32", + "libc", + "log", + "rand 0.8.8", + "rustc-demangle", + "thiserror 2.0.20", + "winapi", +] + +[[package]] +name = "solana-sdk" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f03df7969f5e723ad31b6c9eadccc209037ac4caa34d8dc259316b05c11e82b" +dependencies = [ + "bincode", + "bs58", + "serde", + "solana-account 3.4.0", + "solana-epoch-info", + "solana-epoch-rewards-hasher", + "solana-fee-structure", + "solana-inflation", + "solana-keypair", + "solana-message 3.1.0", + "solana-offchain-message", + "solana-presigner", + "solana-program 3.0.0", + "solana-program-memory 3.1.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-serde", + "solana-serde-varint 3.0.1", + "solana-short-vec 3.2.2", + "solana-shred-version", + "solana-signature 3.4.1", + "solana-signer", + "solana-time-utils", + "solana-transaction 3.1.0", + "solana-transaction-error 3.3.2", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-sdk-ids" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5d8b9cc68d5c88b062a33e23a6466722467dde0035152d8fb1afbcdf350a5f" +dependencies = [ + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-sdk-ids" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "def234c1956ff616d46c9dd953f251fa7096ddbaa6d52b165218de97882b7280" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-sdk-macro" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86280da8b99d03560f6ab5aca9de2e38805681df34e0bb8f238e69b29433b9df" +dependencies = [ + "bs58", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "solana-sdk-macro" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8765316242300c48242d84a41614cb3388229ec353ba464f6fe62a733e41806f" +dependencies = [ + "bs58", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baa3120b6cdaa270f39444f5093a90a7b03d296d362878f7a6991d6de3bbe496" +dependencies = [ + "libsecp256k1 0.6.0", + "solana-define-syscall 2.3.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce0d2e8d53946f04e789476d6c407e4997b7fb412483df5fc10c075c65cb2edf" +dependencies = [ + "k256", + "solana-define-syscall 5.2.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-seed-derivable" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7bdb72758e3bec33ed0e2658a920f1f35dfb9ed576b951d20d63cb61ecd95c" +dependencies = [ + "solana-derivation-path", +] + +[[package]] +name = "solana-seed-phrase" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc905b200a95f2ea9146e43f2a7181e3aeb55de6bc12afb36462d00a3c7310de" +dependencies = [ + "hmac", + "pbkdf2", + "sha2 0.10.9", +] + +[[package]] +name = "solana-serde" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709a93cab694c70f40b279d497639788fc2ccbcf9b4aa32273d4b361322c02dd" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serde-varint" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a7e155eba458ecfb0107b98236088c3764a09ddf0201ec29e52a0be40857113" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serde-varint" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "950e5b83e839dc0f92c66afc124bb8f40e89bc90f0579e8ec5499296d27f54e3" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serialize-utils" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "817a284b63197d2b27afdba829c5ab34231da4a9b4e763466a003c40ca4f535e" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-serialize-utils" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "761357b0853c9623bf12c1d2314b3d6160a85b087b84c45224fb85766d22616b" +dependencies = [ + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sanitize 3.0.1", +] + +[[package]] +name = "solana-sha256-hasher" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa3feb32c28765f6aa1ce8f3feac30936f16c5c3f7eb73d63a5b8f6f8ecdc44" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", +] + +[[package]] +name = "solana-sha256-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db7dc3011ea4c0334aaaa7e7128cb390ecf546b28d412e9bf2064680f57f588f" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-sha512-hasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11e10e103ab5bd52af341e7bc2f4123a2f4e66bb7ba4e6ca40f1e00cd6314e02" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 5.2.0", + "solana-hash-512", +] + +[[package]] +name = "solana-short-vec" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c54c66f19b9766a56fa0057d060de8378676cb64987533fa088861858fc5a69" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-short-vec" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8250a4495aad49ad20556a607da53bdcb20de78da10b65afbf918b7f1de647" +dependencies = [ + "serde_core", + "wincode", +] + +[[package]] +name = "solana-shred-version" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6c79722e299d957958bf33695f7cd1ef6724ff55563c60fd9e3e24487cccde2" +dependencies = [ + "solana-hard-forks", + "solana-hash 4.5.0", + "solana-sha256-hasher 3.1.0", +] + +[[package]] +name = "solana-signature" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64c8ec8e657aecfc187522fc67495142c12f35e55ddeca8698edbb738b8dbd8c" +dependencies = [ + "five8 0.2.1", + "serde", + "serde-big-array", + "serde_derive", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-signature" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0364c7577c3c82a693ce28a1febc8d1b5d1b0a175fdc2114ae6186b69effe1e" +dependencies = [ + "ed25519-dalek", + "five8 1.0.0", + "rand 0.9.5", + "serde", + "serde-big-array", + "serde_derive", + "solana-sanitize 3.0.1", + "wincode", +] + +[[package]] +name = "solana-signer" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520bd6021163ee517f4bdc7ae03ded904f97e11320001ba0b3355f45eb14f558" +dependencies = [ + "solana-pubkey 4.2.0", + "solana-signature 3.4.1", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-slot-hashes" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c8691982114513763e88d04094c9caa0376b867a29577939011331134c301ce" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 2.3.0", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-hashes" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7ce2b4b8911bf2db3de7b6266e67bfc21a6a9f8c566fb096d9782ca2ad16ee" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-slot-history" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97ccc1b2067ca22754d5283afb2b0126d61eae734fc616d23871b0943b0d935e" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-history" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40427c04d3e808493cb5e3d1a97cef84d7c15cb6f89b15c5684d0d4027105600" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-stable-layout" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f14f7d02af8f2bc1b5efeeae71bc1c2b7f0f65cd75bcc7d8180f2c762a57f54" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-stable-layout" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9f6a291ba063a37780af29e7db14bdd3dc447584d8ba5b3fc4b88e2bbc982fa" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-stake-history" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c736a6aa0e53b9d264d90b06589fc0996f49f882f3e71842ed754fc57ffc1a43" +dependencies = [ + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-stake-interface" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5269e89fde216b4d7e1d1739cf5303f8398a1ff372a81232abbee80e554a838c" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", + "num-traits", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-cpi 2.2.1", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-system-interface 1.0.0", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-stake-interface" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9bc26191b533f9a6e5a14cca05174119819ced680a80febff2f5051a713f0db" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-stake-interface" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252b4291eb25a5a356149ed4d4a940d5f655186210fa84b5d0d8d55c3dd42a81" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-svm-callback" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf863c5b86e90e51c18ed08cfd8e21f9cfa60122d60d6364cde7083bf6de837c" +dependencies = [ + "solana-account 4.3.2", + "solana-clock 3.1.1", + "solana-precompile-error", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-feature-set" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "580d385250ddc3826e5d082b221d9d1047bddcc63ee18313f14dcafb95fdcae5" + +[[package]] +name = "solana-svm-log-collector" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f97c2c829a06a1b3bdbad1f770891768c1f0005b322acd7c192ad92157fe525" +dependencies = [ + "log", +] + +[[package]] +name = "solana-svm-measure" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79ec1451e86552456f1e9a1cc7ffafea01ba3383d8246ba636a11cf286da9fc3" + +[[package]] +name = "solana-svm-timings" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33a2692a88fabf56275bb40c39596d6e550a43f6e56b77fa6f0468e0affd977" +dependencies = [ + "eager", + "enum-iterator", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-transaction" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736d2cec944c6f8f298a7bd8ada5eb318cca9ab859281b1300842fa0e9a25afa" +dependencies = [ + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-transaction 4.1.6", +] + +[[package]] +name = "solana-svm-type-overrides" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74a3ba41956ba930a335589eedf0784dfa4be0527ef236df8ad3996a26b5f19f" +dependencies = [ + "rand 0.9.5", +] + +[[package]] +name = "solana-syscalls" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d31c37dc2425afc13ddb2fc8365db8dbd02ac860a454c25b3897831036a64dd8" +dependencies = [ + "bincode", + "libsecp256k1 0.7.2", + "num-traits", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-blake3-hasher 3.1.0", + "solana-bls12-381-syscall", + "solana-bn254", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-curve25519", + "solana-hash 4.5.0", + "solana-hash-512", + "solana-instruction 3.4.1", + "solana-keccak-hasher 3.1.0", + "solana-poseidon", + "solana-program-entrypoint 3.1.1", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.3.0", + "solana-sha256-hasher 3.1.0", + "solana-sha512-hasher", + "solana-stable-layout 3.0.1", + "solana-stake-interface 4.3.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-type-overrides", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction-context", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "solana-system-interface" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94d7c18cb1a91c6be5f5a8ac9276a1d7c737e39a21beba9ea710ab4b9c63bc90" +dependencies = [ + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-system-interface" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e1790547bfc3061f1ee68ea9d8dc6c973c02a163697b24263a8e9f2e6d4afa2" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-instruction 3.4.1", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", +] + +[[package]] +name = "solana-system-interface" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55b54965bf0b76fa8e2b35376583efddd4d916618cfe595bf48c7d7b55a9e628" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "wincode", +] + +[[package]] +name = "solana-system-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2610e0b091b920da610ad3e5ba850530702f5ac911b4e9dc5ab9a025a772138a" +dependencies = [ + "bincode", + "log", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-fee-calculator 3.2.2", + "solana-instruction 3.4.1", + "solana-nonce 3.2.1", + "solana-nonce-account", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-transaction-context", +] + +[[package]] +name = "solana-sysvar" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c3595f95069f3d90f275bb9bd235a1973c4d059028b0a7f81baca2703815db" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 2.3.0", + "solana-clock 2.2.3", + "solana-define-syscall 2.3.0", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-instructions-sysvar 2.2.2", + "solana-last-restart-slot 2.2.1", + "solana-program-entrypoint 2.3.0", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stake-interface 1.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-sysvar" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6690d3dd88f15c21edff68eb391ef8800df7a1f5cec84ee3e8d1abf05affdf74" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-define-syscall 4.0.1", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-calculator 3.2.2", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 4.2.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-sysvar" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ada7045bbfdd802af08fbc9c7e2b56ddabb20599d22e4c3840fcef5e7afb8324" +dependencies = [ + "base64 0.22.1", + "bincode", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-define-syscall 5.2.0", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-calculator 3.2.2", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stake-history", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-sysvar-id" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5762b273d3325b047cfda250787f8d796d781746860d5d0a746ee29f3e8812c1" +dependencies = [ + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-sysvar-id" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17358d1e9a13e5b9c2264d301102126cf11a47fd394cdf3dec174fe7bc96e1de" +dependencies = [ + "solana-address 2.6.1", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-time-utils" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ced92c60aa76ec4780a9d93f3bd64dfa916e1b998eacc6f1c110f3f444f02c9" + +[[package]] +name = "solana-transaction" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96697cff5075a028265324255efed226099f6d761ca67342b230d09f72cc48d2" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-message 3.1.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-signer", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-transaction" +version = "4.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8008008a75246adaf8b67411093a6d78db8232c74b00eff6041fd1da73679e7" +dependencies = [ + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-message 4.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-signer", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-transaction-context" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d61811155533aebcf806e694d3ed91be7fc168dc9bdcf25e8eb98b9234c7c3" +dependencies = [ + "bincode", + "qualifier_attr", + "serde", + "solana-account 4.3.2", + "solana-instruction 3.4.1", + "solana-instructions-sysvar 4.0.0", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-transaction-error" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222a9dc8fdb61c6088baab34fc3a8b8473a03a7a5fd404ed8dd502fa79b67cb1" +dependencies = [ + "solana-instruction 2.3.3", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-transaction-error" +version = "3.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "054e54d15164b0c34cb744600a1a0330e9fd97a12d979f2eb95904c807a07713" +dependencies = [ + "serde", + "serde_derive", + "solana-instruction-error", + "solana-sanitize 3.0.1", +] + +[[package]] +name = "solana-vote-interface" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b80d57478d6599d30acc31cc5ae7f93ec2361a06aefe8ea79bc81739a08af4c3" +dependencies = [ + "bincode", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-decode-error", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serde-varint 2.2.2", + "solana-serialize-utils 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-vote-interface" +version = "6.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13a7a204b455a53fe8c9a26a6885391a5896835e06694dbe0cf37c580f82f128" +dependencies = [ + "bincode", + "cfg_eval", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "serde_with", + "solana-clock 3.1.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-serde-varint 3.0.1", + "solana-serialize-utils 3.1.2", + "solana-short-vec 3.2.2", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-vote-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69c6faf8370369c45bc14eeca8dc0249450b940b57dcfcec0103403f9feaf88a" +dependencies = [ + "agave-feature-set", + "bincode", + "log", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-bls-signatures", + "solana-clock 3.1.1", + "solana-epoch-schedule 3.2.0", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", + "solana-system-interface 3.2.0", + "solana-transaction-context", + "solana-vote-interface 6.0.3", +] + +[[package]] +name = "solana-zk-elgamal-proof-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d55e2d0d7f884295989dae8b7e0b6d7a46d87ed2d917113007383261e5e93d" +dependencies = [ + "bytemuck", + "solana-instruction 3.4.1", + "solana-program-runtime", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-zk-sdk", +] + +[[package]] +name = "solana-zk-sdk" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09670ff59f60e6ddc2209c2e4353992a9b9f01d4e244f3e9d67bd5146e33d388" +dependencies = [ + "aes-gcm-siv", + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "itertools 0.14.0", + "merlin", + "num-derive", + "num-traits", + "rand 0.8.8", + "serde", + "serde_derive", + "serde_json", + "sha3", + "solana-address 2.6.1", + "solana-derivation-path", + "solana-instruction 3.4.1", + "solana-sdk-ids 3.1.0", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature 3.4.1", + "solana-signer", + "subtle", + "thiserror 2.0.20", + "zeroize", +] + +[[package]] +name = "solana-zk-token-proof-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc32fcd9ff8bb90837755deccefdb20518484626c0a9d0649a36e5fcb0fcf520" +dependencies = [ + "solana-program-runtime", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "spl-associated-token-account-interface" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6bbe0794e532ac08428d3abf5bf8ae75bd81dfddd785c388e326c00c92c6f5" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[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.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tar" +version = "0.4.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6221d9a6003c78398e3b239969f352578258df48c8eb051caadae0015bc840" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "test-utils" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "ephemeral-rollups-sdk 0.16.2", + "magicsvm", + "serde_json", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-signer", + "solana-transaction 4.1.6", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" +dependencies = [ + "thiserror-impl 2.0.20", +] + +[[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.119", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "tinyvec" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee" + +[[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 = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.25.15+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1340ea94a5856333492c9064b02c778b191dd2c853778d9609debdcdfea3a614" +dependencies = [ + "indexmap", + "toml_datetime", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" +dependencies = [ + "winnow", +] + +[[package]] +name = "typed-path" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" + +[[package]] +name = "typenum" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-segmentation" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +dependencies = [ + "void", +] + +[[package]] +name = "ureq" +version = "3.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a7ac20be9b7726e0bbdbf974c059676d9acb1cd414961f570a4e8231cacd7fc" +dependencies = [ + "base64 0.23.1", + "log", + "percent-encoding", + "ureq-proto", + "utf8-zero", +] + +[[package]] +name = "ureq-proto" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0809a01d1ca5a51ca70db32bb2a19157582a526505ef3c19e3b343a59aa5ad" +dependencies = [ + "base64 0.23.1", + "http", + "httparse", + "log", +] + +[[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 = "utf8-zero" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e" + +[[package]] +name = "uuid" +version = "1.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ef6dac1e96601b4fb3acccccff2139741fcb757cb9a36089bf5be91cfb285ce" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[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.4+wasi-0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aecb87a33d3b0c5e3b7aa46336eaf486cffafbd281b195e4c8b80d50df2351bf" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a690d511e3c1a8b3a55e33511e3c2c00c78415cd23650f32b808627f5696b9ed" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "411e4887f0071ef2d2164a9d5fdf2d20efbef78fccd3a78b0c10a1dc5295e48a" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 3.0.5", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81941cd78d0c92026c33e5e01312845a4cb1e9af3407f9134b100dd03144103e" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "web-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fbddc4a036f00ec4f18c83445bd3115cb306a91da554919a099d9222fe4a7f8" +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-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "wincode" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66d967db7705dc29120bb6e8ce5b5a2e27734ed5976d1c904e95bd238d1c3c5a" +dependencies = [ + "bv", + "pastey", + "proc-macro2", + "quote", + "thiserror 2.0.20", + "wincode-derive", +] + +[[package]] +name = "wincode-derive" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15ab90b719560d0fda79c74550ad1c948d17b118765942838055ebaf34d67071" +dependencies = [ + "darling 0.23.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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 = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "xattr" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" +dependencies = [ + "libc", + "rustix", +] + +[[package]] +name = "zerocopy" +version = "0.8.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d35102a9f36d089ccae9e4c6802bc118be4487b80aaffc0ab4e0cf5ce92d2873" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c01f5ab44258da43cf276c74a2763db2ff3969c9c652c3f2de07041d0b2bc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zeroize" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zip" +version = "8.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b" +dependencies = [ + "crc32fast", + "flate2", + "indexmap", + "memchr", + "typed-path", + "zopfli", +] + +[[package]] +name = "zlib-rs" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12" + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" + +[[package]] +name = "zopfli" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" +dependencies = [ + "bumpalo", + "crc32fast", + "log", + "simd-adler32", +] diff --git a/ephemeral-account-chats/anchor/tests-magicsvm-rs/Cargo.toml b/ephemeral-account-chats/anchor/tests-magicsvm-rs/Cargo.toml new file mode 100644 index 00000000..5a4999dd --- /dev/null +++ b/ephemeral-account-chats/anchor/tests-magicsvm-rs/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "ephemeral-account-chats-magicsvm-tests" +version = "0.1.0" +edition = "2021" +publish = false + +[workspace] + +[dev-dependencies] +anchor-lang = "=1.0.2" +ephemeral-account-chats = { path = "../programs/ephemeral-account-chats", features = ["no-entrypoint"] } +ephemeral-rollups-sdk = { version = "0.16.2", features = ["anchor"] } +magicsvm = "0.2.0" +test-utils = { path = "../../../test-utils/rust", features = ["anchor"] } +solana-address = "~2.6.1" +solana-instruction = { version = "~3.4.0", features = ["bincode"] } +solana-keypair = "3.1.2" +solana-message = "4.2.4" +solana-native-token = "3.0.0" +solana-signer = "3.0.1" +solana-transaction = { version = "4.1.5", features = ["verify"] } diff --git a/ephemeral-account-chats/anchor/tests-magicsvm-rs/rust-toolchain.toml b/ephemeral-account-chats/anchor/tests-magicsvm-rs/rust-toolchain.toml new file mode 100644 index 00000000..5d56faf9 --- /dev/null +++ b/ephemeral-account-chats/anchor/tests-magicsvm-rs/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "nightly" diff --git a/ephemeral-account-chats/anchor/tests-magicsvm-rs/tests/magicsvm.rs b/ephemeral-account-chats/anchor/tests-magicsvm-rs/tests/magicsvm.rs new file mode 100644 index 00000000..5f9a0ef4 --- /dev/null +++ b/ephemeral-account-chats/anchor/tests-magicsvm-rs/tests/magicsvm.rs @@ -0,0 +1,451 @@ +use { + anchor_lang::{ + prelude::Pubkey, system_program, Discriminator, Id, InstructionData, ToAccountMetas, + }, + ephemeral_account_chats::{self, accounts, instruction, Conversation}, + ephemeral_rollups_sdk::{ + anchor::{DelegationProgram, MagicProgram}, + consts::{EPHEMERAL_VAULT_ID, MAGIC_CONTEXT_ID}, + pda::{ + delegate_buffer_pda_from_delegated_account_and_owner_program, + delegation_metadata_pda_from_delegated_account, + delegation_record_pda_from_delegated_account, + }, + }, + magicsvm::{MagicSVM, TransactionTarget}, + solana_address::Address, + solana_instruction::Instruction, + solana_keypair::Keypair, + solana_message::Message, + solana_native_token::LAMPORTS_PER_SOL, + solana_signer::Signer, + solana_transaction::Transaction, + std::path::PathBuf, + test_utils::{ + as_address, as_pubkey, client_ix, program_id_from_idl, program_so_path, send_ixs, + }, +}; + +const MAX_MESSAGE_COUNT: u32 = 5; + +fn conversation_size(message_count: u32) -> usize { + 8 + Conversation::space_for_message_count(message_count as usize) +} + +fn program_so() -> PathBuf { + program_so_path(env!("CARGO_MANIFEST_DIR"), "ephemeral_account_chats") +} + +fn program_id() -> Pubkey { + as_pubkey(&program_id_from_idl( + env!("CARGO_MANIFEST_DIR"), + "ephemeral_account_chats.json", + )) +} + +fn program_address() -> Address { + as_address(program_id()) +} + +fn ix(data: impl InstructionData, accounts: impl ToAccountMetas) -> Instruction { + client_ix(program_address(), data, accounts) +} + +fn profile_pda(handle: &str) -> Pubkey { + Pubkey::find_program_address(&[b"profile", handle.as_bytes()], &program_id()).0 +} + +fn conversation_pda(handle_owner: &str, handle_other: &str) -> Pubkey { + Pubkey::find_program_address( + &[ + b"conversation", + handle_owner.as_bytes(), + handle_other.as_bytes(), + ], + &program_id(), + ) + .0 +} + +fn send(svm: &mut MagicSVM, target: TransactionTarget, ix: Instruction, signers: &[&Keypair]) { + send_ixs(svm, target, signers, &[ix], "transaction"); +} + +fn create_profile_ix(authority: Pubkey, profile: Pubkey, handle: &str) -> Instruction { + ix( + instruction::CreateProfile { + handle: handle.to_string(), + }, + accounts::CreateProfile { + authority, + profile, + system_program: system_program::ID, + }, + ) +} + +fn top_up_profile_ix(authority: Pubkey, profile: Pubkey, lamports: u64) -> Instruction { + ix( + instruction::TopUpProfile { lamports }, + accounts::TopUpProfile { + authority, + profile, + system_program: system_program::ID, + }, + ) +} + +fn delegate_profile_ix(authority: Pubkey, profile: Pubkey, validator: Pubkey) -> Instruction { + ix( + instruction::DelegateProfile { + validator: Some(validator), + }, + accounts::DelegateProfile { + authority, + buffer_profile: delegate_buffer_pda_from_delegated_account_and_owner_program( + &profile, + &program_id(), + ), + delegation_record_profile: delegation_record_pda_from_delegated_account(&profile), + delegation_metadata_profile: delegation_metadata_pda_from_delegated_account(&profile), + profile, + owner_program: program_id(), + delegation_program: DelegationProgram::id(), + system_program: system_program::ID, + }, + ) +} + +fn create_conversation_ix( + authority: Pubkey, + profile_owner: Pubkey, + profile_other: Pubkey, + conversation: Pubkey, +) -> Instruction { + ix( + instruction::CreateConversation {}, + accounts::CreateConversation { + authority, + profile_owner, + profile_other, + conversation, + vault: EPHEMERAL_VAULT_ID, + magic_program: MagicProgram::id(), + }, + ) +} + +fn extend_conversation_ix( + authority: Pubkey, + profile_sender: Pubkey, + profile_other: Pubkey, + conversation: Pubkey, + additional_messages: u32, +) -> Instruction { + ix( + instruction::ExtendConversation { + additional_messages, + }, + accounts::ExtendConversation { + authority, + profile_sender, + profile_other, + conversation, + vault: EPHEMERAL_VAULT_ID, + magic_program: MagicProgram::id(), + }, + ) +} + +fn append_message_ix( + authority: Pubkey, + profile_owner: Pubkey, + profile_other: Pubkey, + conversation: Pubkey, + body: &str, +) -> Instruction { + ix( + instruction::AppendMessage { + body: body.to_string(), + }, + accounts::AppendMessage { + authority, + profile_owner, + profile_other, + conversation, + }, + ) +} + +fn close_conversation_ix( + authority: Pubkey, + profile_owner: Pubkey, + profile_other: Pubkey, + conversation: Pubkey, +) -> Instruction { + ix( + instruction::CloseConversation {}, + accounts::CloseConversation { + authority, + profile_owner, + profile_other, + conversation, + vault: EPHEMERAL_VAULT_ID, + magic_program: MagicProgram::id(), + }, + ) +} + +fn undelegate_profile_ix(authority: Pubkey, profile: Pubkey) -> Instruction { + ix( + instruction::UndelegateProfile {}, + accounts::UndelegateProfile { + authority, + profile, + magic_program: MagicProgram::id(), + magic_context: MAGIC_CONTEXT_ID, + }, + ) +} + +fn close_profile_ix(authority: Pubkey, profile: Pubkey) -> Instruction { + ix( + instruction::CloseProfile {}, + accounts::CloseProfile { authority, profile }, + ) +} + +fn decode_handle(data: &[u8]) -> String { + let start = 8 + 32 + 1 + 8; + let len = u32::from_le_bytes(data[start..start + 4].try_into().unwrap()) as usize; + String::from_utf8(data[start + 4..start + 4 + len].to_vec()).unwrap() +} + +fn conversation_message_count(data: &[u8]) -> usize { + let mut offset = 8; + let owner_len = u32::from_le_bytes(data[offset..offset + 4].try_into().unwrap()) as usize; + offset += 4 + owner_len; + let other_len = u32::from_le_bytes(data[offset..offset + 4].try_into().unwrap()) as usize; + offset += 4 + other_len + 1; + u32::from_le_bytes(data[offset..offset + 4].try_into().unwrap()) as usize +} + +#[test] +fn ephemeral_account_chats_profiles_conversation_messages_commit() { + let user_a = Keypair::new(); + let user_b = Keypair::new(); + let name_a = "0000000001"; + let name_b = "0000000002"; + let profile_a = profile_pda(name_a); + let profile_b = profile_pda(name_b); + let conversation = conversation_pda(name_a, name_b); + let profile_a_address = as_address(profile_a); + let profile_b_address = as_address(profile_b); + let conversation_address = as_address(conversation); + + let mut svm = MagicSVM::new(); + svm.add_program_from_file(program_address(), program_so()) + .unwrap(); + svm.airdrop(&user_a.pubkey(), LAMPORTS_PER_SOL).unwrap(); + svm.airdrop(&user_b.pubkey(), LAMPORTS_PER_SOL).unwrap(); + let validator = as_pubkey(&svm.validator_identity()); + let user_a_pk = as_pubkey(&user_a.pubkey()); + let user_b_pk = as_pubkey(&user_b.pubkey()); + + send( + &mut svm, + TransactionTarget::Base, + create_profile_ix(user_a_pk, profile_a, name_a), + &[&user_a], + ); + send( + &mut svm, + TransactionTarget::Base, + create_profile_ix(user_b_pk, profile_b, name_b), + &[&user_b], + ); + assert_eq!( + decode_handle(&svm.get_account(&profile_a_address).unwrap().data), + name_a + ); + assert_eq!( + decode_handle(&svm.get_account(&profile_b_address).unwrap().data), + name_b + ); + + let profile_a_lamports_before = svm.get_account(&profile_a_address).unwrap().lamports; + send( + &mut svm, + TransactionTarget::Base, + top_up_profile_ix( + user_a_pk, + profile_a, + (0.05 * LAMPORTS_PER_SOL as f64) as u64, + ), + &[&user_a], + ); + assert_eq!( + svm.get_account(&profile_a_address).unwrap().lamports, + (0.05 * LAMPORTS_PER_SOL as f64) as u64 + profile_a_lamports_before + ); + + send( + &mut svm, + TransactionTarget::Base, + delegate_profile_ix(user_a_pk, profile_a, validator), + &[&user_a], + ); + send( + &mut svm, + TransactionTarget::Base, + delegate_profile_ix(user_b_pk, profile_b, validator), + &[&user_b], + ); + assert_eq!( + svm.get_account(&profile_a_address).unwrap().owner, + as_address(DelegationProgram::id()) + ); + assert_eq!( + svm.get_account(&profile_b_address).unwrap().owner, + as_address(DelegationProgram::id()) + ); + + send( + &mut svm, + TransactionTarget::Ephemeral, + create_conversation_ix(user_a_pk, profile_a, profile_b, conversation), + &[&user_a], + ); + let conversation_account = svm + .get_account_for(TransactionTarget::Ephemeral, &conversation_address) + .expect("conversation should exist on ephemeral"); + assert_eq!( + conversation_account.data.get(..8), + Some(Conversation::DISCRIMINATOR), + "createConversation must persist a Conversation discriminator, got {:02x?}", + conversation_account + .data + .get(..16) + .unwrap_or(conversation_account.data.as_slice()) + ); + assert_eq!(conversation_message_count(&conversation_account.data), 0); + assert_eq!(conversation_account.data.len(), conversation_size(0)); + + send( + &mut svm, + TransactionTarget::Ephemeral, + extend_conversation_ix( + user_a_pk, + profile_a, + profile_b, + conversation, + MAX_MESSAGE_COUNT, + ), + &[&user_a], + ); + assert_eq!( + svm.get_account_for(TransactionTarget::Ephemeral, &conversation_address) + .unwrap() + .data + .len(), + conversation_size(MAX_MESSAGE_COUNT) + ); + + for i in 0..MAX_MESSAGE_COUNT { + let (payer, authority, body) = if i % 2 == 0 { + (&user_a, user_a_pk, format!("Hello {i} from user A!")) + } else { + (&user_b, user_b_pk, format!("Hello {i} from user B!")) + }; + send( + &mut svm, + TransactionTarget::Ephemeral, + append_message_ix(authority, profile_a, profile_b, conversation, &body), + &[payer], + ); + } + assert_eq!( + conversation_message_count( + &svm.get_account_for(TransactionTarget::Ephemeral, &conversation_address) + .unwrap() + .data + ), + MAX_MESSAGE_COUNT as usize + ); + + let overflow = Transaction::new( + &[&user_a], + Message::new( + &[append_message_ix( + user_a_pk, + profile_a, + profile_b, + conversation, + "Hello world, appending another message, this should be failed!", + )], + Some(&user_a.pubkey()), + ), + svm.latest_blockhash_for(TransactionTarget::Ephemeral), + ); + let failed = svm + .send_transaction_to(TransactionTarget::Ephemeral, overflow) + .expect_err("the conversation should have been full"); + assert!( + failed.meta.logs.iter().any(|log| { + log.contains("ConversationCapacityExceeded") + || log.contains( + "The conversation does not have enough allocated capacity for another message.", + ) + }), + "missing capacity error in logs: {:#?}", + failed.meta.logs + ); + svm.expire_blockhash_for(TransactionTarget::Ephemeral); + + send( + &mut svm, + TransactionTarget::Ephemeral, + close_conversation_ix(user_a_pk, profile_a, profile_b, conversation), + &[&user_a], + ); + + send( + &mut svm, + TransactionTarget::Ephemeral, + undelegate_profile_ix(user_a_pk, profile_a), + &[&user_a], + ); + send( + &mut svm, + TransactionTarget::Ephemeral, + undelegate_profile_ix(user_b_pk, profile_b), + &[&user_b], + ); + assert_eq!( + svm.get_account(&profile_a_address).unwrap().owner, + program_address() + ); + assert_eq!( + svm.get_account(&profile_b_address).unwrap().owner, + program_address() + ); + + send( + &mut svm, + TransactionTarget::Base, + close_profile_ix(user_a_pk, profile_a), + &[&user_a], + ); + send( + &mut svm, + TransactionTarget::Base, + close_profile_ix(user_b_pk, profile_b), + &[&user_b], + ); + assert!(svm + .get_account(&profile_a_address) + .is_none_or(|account| account.lamports == 0 && account.data.is_empty())); + assert!(svm + .get_account(&profile_b_address) + .is_none_or(|account| account.lamports == 0 && account.data.is_empty())); +} diff --git a/ephemeral-account-chats/anchor/tests-magicsvm/ephemeral-account-chats.ts b/ephemeral-account-chats/anchor/tests-magicsvm/ephemeral-account-chats.ts new file mode 100644 index 00000000..0d12139a --- /dev/null +++ b/ephemeral-account-chats/anchor/tests-magicsvm/ephemeral-account-chats.ts @@ -0,0 +1,372 @@ +import * as anchor from "@coral-xyz/anchor"; +import { expect } from "chai"; +import { Keypair, PublicKey, SystemProgram } from "@solana/web3.js"; +import { + airdropOrThrow, + bootAnchorSvm, + DELEGATION_PROGRAM_ID, + requireAccount, + sendExpectingFailure, + sendSvmIx, +} from "@magicblock-labs/test-utils"; +import { EphemeralAccountChats } from "../target/types/ephemeral_account_chats"; + +function generateName(): string { + const randomNumber = Math.floor(Math.random() * 10000000000); + return randomNumber.toString().padStart(10, "0"); +} + +function conversationSize(messageCount: number): number { + return 8 + 1 + 3 * 4 + 2 * 32 + messageCount * 324; +} + +const MAX_MESSAGE_COUNT = 5; + +describe("ephemeral-account-chats magicsvm", () => { + const userAKp = Keypair.generate(); + const userBKp = Keypair.generate(); + const { svm, payer, program, validator: validatorStr } = + bootAnchorSvm({ + fromDir: __dirname, + programName: "ephemeral_account_chats", + payer: userAKp, + airdropLamports: BigInt(anchor.web3.LAMPORTS_PER_SOL), + }); + const userA = new anchor.Wallet(payer); + const userB = new anchor.Wallet(userBKp); + const validator = new PublicKey(validatorStr); + + const nameA = generateName(); + const nameB = generateName(); + + const [profileAPda] = PublicKey.findProgramAddressSync( + [Buffer.from("profile"), Buffer.from(nameA)], + program.programId, + ); + const [profileBPda] = PublicKey.findProgramAddressSync( + [Buffer.from("profile"), Buffer.from(nameB)], + program.programId, + ); + const [conversationPda] = PublicKey.findProgramAddressSync( + [Buffer.from("conversation"), Buffer.from(nameA), Buffer.from(nameB)], + program.programId, + ); + + async function instruction(builder: { + instruction(): Promise[2]>; + }): Promise[2]> { + return builder.instruction(); + } + + before(() => { + airdropOrThrow( + svm, + userB.publicKey, + BigInt(anchor.web3.LAMPORTS_PER_SOL), + "airdrop user B", + ); + + console.log("Program ID: ", program.programId.toBase58()); + console.log("Validator: ", validator.toBase58()); + console.log("User A: ", userA.publicKey.toBase58()); + console.log("User B: ", userB.publicKey.toBase58()); + console.log("Profile A: ", profileAPda.toBase58()); + console.log("Profile B: ", profileBPda.toBase58()); + console.log("Conversation: ", conversationPda.toBase58()); + }); + + it("creates profiles", async () => { + sendSvmIx( + svm, + [userAKp], + await instruction( + program.methods.createProfile(nameA).accountsPartial({ + authority: userA.publicKey, + profile: profileAPda, + systemProgram: SystemProgram.programId, + }), + ), + "base", + ); + sendSvmIx( + svm, + [userBKp], + await instruction( + program.methods.createProfile(nameB).accountsPartial({ + authority: userB.publicKey, + profile: profileBPda, + systemProgram: SystemProgram.programId, + }), + ), + "base", + ); + + const profileA = program.coder.accounts.decode( + "profile", + Buffer.from( + requireAccount(svm, profileAPda, "base").data, + ), + ); + const profileB = program.coder.accounts.decode( + "profile", + Buffer.from( + requireAccount(svm, profileBPda, "base").data, + ), + ); + expect(profileA.handle).to.equal(nameA); + expect(profileB.handle).to.equal(nameB); + }); + + it("tops up profiles", async () => { + const profileABefore = requireAccount(svm, profileAPda, "base"); + const profileALamportsBefore = Number(profileABefore.lamports); + + sendSvmIx( + svm, + [userAKp], + await instruction( + program.methods + .topUpProfile(new anchor.BN(0.05 * anchor.web3.LAMPORTS_PER_SOL)) + .accounts({ + authority: userA.publicKey, + profile: profileAPda, + systemProgram: SystemProgram.programId, + }), + ), + "base", + ); + + const profileA = requireAccount(svm, profileAPda, "base"); + expect(Number(profileA.lamports)).to.equal( + 0.05 * anchor.web3.LAMPORTS_PER_SOL + profileALamportsBefore, + ); + }); + + it("delegates profiles", async () => { + sendSvmIx( + svm, + [userAKp], + await instruction( + program.methods.delegateProfile(validator).accounts({ + authority: userA.publicKey, + profile: profileAPda, + }), + ), + "base", + ); + sendSvmIx( + svm, + [userBKp], + await instruction( + program.methods.delegateProfile(validator).accounts({ + authority: userB.publicKey, + profile: profileBPda, + }), + ), + "base", + ); + + const profileA = requireAccount(svm, profileAPda, "base"); + const profileB = requireAccount(svm, profileBPda, "base"); + expect(profileA.programAddress.toString()).to.equal( + DELEGATION_PROGRAM_ID.toBase58(), + ); + expect(profileB.programAddress.toString()).to.equal( + DELEGATION_PROGRAM_ID.toBase58(), + ); + }); + + it("creates a conversation", async () => { + sendSvmIx( + svm, + [userAKp], + await instruction( + program.methods.createConversation().accounts({ + authority: userA.publicKey, + profileOwner: profileAPda, + profileOther: profileBPda, + conversation: conversationPda, + systemProgram: SystemProgram.programId, + }), + ), + "ephemeral", + ); + + const conversationAccount = requireAccount(svm, conversationPda, "ephemeral"); + const conversation = program.coder.accounts.decode( + "conversation", + Buffer.from(conversationAccount.data), + ); + expect(conversation.messages.length).to.equal(0); + expect(conversationAccount.data.length).to.equal(conversationSize(0)); + }); + + it("extends a conversation", async () => { + sendSvmIx( + svm, + [userAKp], + await instruction( + program.methods.extendConversation(MAX_MESSAGE_COUNT).accountsPartial({ + authority: userA.publicKey, + profileSender: profileAPda, + profileOther: profileBPda, + conversation: conversationPda, + }), + ), + "ephemeral", + ); + + const conversation = requireAccount(svm, conversationPda, "ephemeral"); + expect(conversation.data.length).to.equal( + conversationSize(MAX_MESSAGE_COUNT), + ); + }); + + it("appends messages to a conversation", async () => { + const nMessages = MAX_MESSAGE_COUNT; + for (let i = 0; i < nMessages; i++) { + if (i % 2 === 0) { + sendSvmIx( + svm, + [userAKp], + await instruction( + program.methods + .appendMessage(`Hello ${i} from user A!`) + .accountsPartial({ + authority: userA.publicKey, + profileOwner: profileAPda, + profileOther: profileBPda, + conversation: conversationPda, + }), + ), + "ephemeral", + ); + } else { + sendSvmIx( + svm, + [userBKp], + await instruction( + program.methods + .appendMessage(`Hello ${i} from user B!`) + .accountsPartial({ + authority: userB.publicKey, + profileOwner: profileAPda, + profileOther: profileBPda, + conversation: conversationPda, + }), + ), + "ephemeral", + ); + } + } + + const conversationAccount = requireAccount(svm, conversationPda, "ephemeral"); + const conversation = program.coder.accounts.decode( + "conversation", + Buffer.from(conversationAccount.data), + ); + expect(conversation.messages.length).to.equal(nMessages); + + const failed = sendExpectingFailure( + svm, + [userAKp], + await instruction( + program.methods + .appendMessage( + "Hello world, appending another message, this should be failed!", + ) + .accountsPartial({ + authority: userA.publicKey, + profileOwner: profileAPda, + profileOther: profileBPda, + conversation: conversationPda, + }), + ), + "ephemeral", + ); + const expectedError = program.idl.errors.find( + (e) => + e.name === "conversationCapacityExceeded" || + e.name === "ConversationCapacityExceeded", + ); + expect(failed.meta().logs().join("\n")).to.include(expectedError?.msg); + }); + + it("closes a conversation", async () => { + sendSvmIx( + svm, + [userAKp], + await instruction( + program.methods.closeConversation().accounts({ + authority: userA.publicKey, + profileOwner: profileAPda, + profileOther: profileBPda, + conversation: conversationPda, + }), + ), + "ephemeral", + ); + }); + + it("undelegates profiles", async () => { + sendSvmIx( + svm, + [userAKp], + await instruction( + program.methods.undelegateProfile().accountsPartial({ + authority: userA.publicKey, + profile: profileAPda, + }), + ), + "ephemeral", + ); + sendSvmIx( + svm, + [userBKp], + await instruction( + program.methods.undelegateProfile().accountsPartial({ + authority: userB.publicKey, + profile: profileBPda, + }), + ), + "ephemeral", + ); + + const profileA = requireAccount(svm, profileAPda, "base"); + const profileB = requireAccount(svm, profileBPda, "base"); + expect(profileA.programAddress.toString()).to.equal( + program.programId.toBase58(), + ); + expect(profileB.programAddress.toString()).to.equal( + program.programId.toBase58(), + ); + }); + + it("closes profiles and refunds user A", async () => { + sendSvmIx( + svm, + [userAKp], + await instruction( + program.methods.closeProfile().accounts({ + authority: userA.publicKey, + profile: profileAPda, + }), + ), + "base", + ); + sendSvmIx( + svm, + [userBKp], + await instruction( + program.methods.closeProfile().accounts({ + authority: userB.publicKey, + profile: profileBPda, + }), + ), + "base", + ); + + expect(svm.getAccount(profileAPda).exists).to.equal(false); + expect(svm.getAccount(profileBPda).exists).to.equal(false); + }); +}); diff --git a/ephemeral-account-chats/anchor/tsconfig.json b/ephemeral-account-chats/anchor/tsconfig.json index 6bb0bf9c..684e9db8 100644 --- a/ephemeral-account-chats/anchor/tsconfig.json +++ b/ephemeral-account-chats/anchor/tsconfig.json @@ -3,9 +3,10 @@ "strict": true, "types": ["mocha", "chai"], "typeRoots": ["./node_modules/@types"], - "lib": ["es2015"], + "lib": ["es2020"], "module": "commonjs", - "target": "es6", - "esModuleInterop": true + "target": "es2020", + "esModuleInterop": true, + "skipLibCheck": true } } diff --git a/ephemeral-account-chats/anchor/yarn.lock b/ephemeral-account-chats/anchor/yarn.lock index bdc61f05..9cb96790 100644 --- a/ephemeral-account-chats/anchor/yarn.lock +++ b/ephemeral-account-chats/anchor/yarn.lock @@ -12,7 +12,7 @@ resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== -"@coral-xyz/anchor@^0.32.1": +"@coral-xyz/anchor@0.32.1", "@coral-xyz/anchor@^0.32.1": version "0.32.1" resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== @@ -53,6 +53,54 @@ tweetnacl "^1.0.3" typescript "^5.3.0" +"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" + integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== + +"@magicblock-labs/magicsvm-darwin-x64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" + integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== + +"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" + integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== + +"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" + integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== + +"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" + integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== + +"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" + integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== + +"@magicblock-labs/magicsvm@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" + integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== + dependencies: + "@solana/web3.js" "3.0.0-rc.3" + optionalDependencies: + "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" + "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" + +"@magicblock-labs/test-utils@link:../../test-utils/ts": + version "0.0.0" + uid "" + "@noble/curves@^1.4.2": version "1.9.7" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" @@ -98,6 +146,61 @@ hash.js "^1.1.7" node-fetch "^2.7.0" +"@solana-program/address-lookup-table@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" + integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== + +"@solana-program/compute-budget@^0.18.0": + version "0.18.1" + resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" + integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== + +"@solana-program/loader-v3@^0.6.0": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" + integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== + +"@solana-program/stake@^0.9.0": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" + integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== + +"@solana-program/system@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" + integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== + +"@solana/accounts@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" + integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/addresses@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" + integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" + integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/buffer-layout@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" @@ -112,6 +215,30 @@ dependencies: "@solana/errors" "2.3.0" +"@solana/codecs-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" + integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== + dependencies: + "@solana/errors" "8.3.0" + +"@solana/codecs-data-structures@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" + integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/codecs-numbers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" + integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/codecs-numbers@^2.1.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" @@ -120,6 +247,27 @@ "@solana/codecs-core" "2.3.0" "@solana/errors" "2.3.0" +"@solana/codecs-strings@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" + integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/codecs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" + integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/options" "8.3.0" + "@solana/errors@2.3.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.3.0.tgz#4ac9380343dbeffb9dffbcb77c28d0e457c5fa31" @@ -128,6 +276,429 @@ chalk "^5.4.1" commander "^14.0.0" +"@solana/errors@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" + integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== + dependencies: + chalk "5.6.2" + commander "15.0.0" + +"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" + integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== + +"@solana/fixed-points@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" + integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/functional@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" + integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== + +"@solana/instruction-plans@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" + integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/instructions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" + integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/keys@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" + integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/promises" "8.3.0" + +"@solana/kit@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" + integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/plugin-core" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/program-client-core" "8.3.0" + "@solana/programs" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/sysvars" "8.3.0" + "@solana/transaction-confirmation" "8.3.0" + "@solana/transaction-introspection" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/nominal-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" + integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== + +"@solana/offchain-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" + integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/options@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" + integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/plugin-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" + integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== + +"@solana/plugin-interfaces@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" + integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/program-client-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" + integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/signers" "8.3.0" + +"@solana/programs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" + integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/promises@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" + integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== + +"@solana/rpc-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" + integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/rpc-parsed-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" + integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== + +"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" + integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== + dependencies: + "@solana/errors" "8.3.0" + +"@solana/rpc-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" + integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-subscriptions-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" + integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/rpc-subscriptions-channel-websocket@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" + integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/subscribable" "8.3.0" + ws "^8.21.3" + +"@solana/rpc-subscriptions-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" + integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-subscriptions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" + integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions-api" "8.3.0" + "@solana/rpc-subscriptions-channel-websocket" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-transformers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" + integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/rpc-transport-http@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" + integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + undici-types "^8.10.2" + +"@solana/rpc-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" + integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/rpc@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" + integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-transport-http" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/signers@8.3.0", "@solana/signers@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" + integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/subscribable@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" + integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + +"@solana/sysvars@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" + integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/transaction-confirmation@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" + integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/transaction-introspection@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" + integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/transaction-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" + integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/transactions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" + integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + +"@solana/web3.js@3.0.0-rc.3": + version "3.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" + integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== + dependencies: + "@noble/curves" "^1.4.2" + "@noble/hashes" "^1.4.0" + "@solana-program/address-lookup-table" "^0.14.0" + "@solana-program/compute-budget" "^0.18.0" + "@solana-program/loader-v3" "^0.6.0" + "@solana-program/stake" "^0.9.0" + "@solana-program/system" "^0.14.0" + "@solana/assertions" "^8.2.0" + "@solana/fast-stable-stringify" "^8.2.0" + "@solana/kit" "^8.2.0" + "@solana/rpc-spec-types" "^8.2.0" + "@solana/signers" "^8.2.0" + "@solana/web3.js@^1.69.0", "@solana/web3.js@^1.98.0": version "1.98.4" resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" @@ -415,6 +986,11 @@ chai@^4.3.4: pathval "^1.1.1" type-detect "^4.1.0" +chalk@5.6.2, chalk@^5.4.1: + version "5.6.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" + integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== + chalk@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -423,11 +999,6 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - check-error@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" @@ -471,6 +1042,11 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +commander@15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" + integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== + commander@^14.0.0: version "14.0.3" resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.3.tgz#425d79b48f9af82fcd9e4fc1ea8af6c5ec07bbc2" @@ -1179,6 +1755,11 @@ typescript@^5.3.0, typescript@^5.7.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== +undici-types@^8.10.2: + version "8.10.2" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" + integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== + undici-types@~7.18.0: version "7.18.2" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.18.2.tgz#29357a89e7b7ca4aef3bf0fd3fd0cd73884229e9" @@ -1245,6 +1826,11 @@ ws@^7.5.10: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== +ws@^8.21.3: + version "8.21.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" + integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== + ws@^8.5.0: version "8.19.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.19.0.tgz#ddc2bdfa5b9ad860204f5a72a4863a8895fd8c8b" diff --git a/magic-actions/anchor/package.json b/magic-actions/anchor/package.json index 805baa23..e79611df 100644 --- a/magic-actions/anchor/package.json +++ b/magic-actions/anchor/package.json @@ -5,12 +5,15 @@ "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", "build": "anchor keys sync && anchor build", "test:local": ". ../../scripts/local-env.sh && npx ts-mocha -p ./tsconfig.json -t 1000000 tests/magic-actions-local.ts", + "test:magicsvm": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests-magicsvm/magic-actions.ts", + "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture", "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh magic-actions", "test": "yarn test:local" }, "dependencies": { "@coral-xyz/anchor": "^0.32.1", "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3", + "@magicblock-labs/magicsvm": "0.2.0", "@solana/web3.js": "^1.98.2", "magic-router-sdk": "^1.0.8" }, @@ -22,7 +25,8 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^5.7.3" + "typescript": "^5.7.3", + "@magicblock-labs/test-utils": "link:../../test-utils/ts" }, "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" } diff --git a/magic-actions/anchor/programs/magic-actions/src/lib.rs b/magic-actions/anchor/programs/magic-actions/src/lib.rs index 98513336..e04da345 100644 --- a/magic-actions/anchor/programs/magic-actions/src/lib.rs +++ b/magic-actions/anchor/programs/magic-actions/src/lib.rs @@ -5,7 +5,7 @@ use ephemeral_rollups_sdk::cpi::DelegateConfig; use ephemeral_rollups_sdk::ephem::{CallHandler, MagicIntentBundleBuilder}; use ephemeral_rollups_sdk::{ActionArgs, ShortAccountMeta}; -declare_id!("9K7ybJnAYtVY7RQU8ELwLqCFeXi6e8FD33Yq8ZnjDsi9"); +declare_id!("6miF1vQoYKmgsyw1wFmUh2AAeZ85EDXvhr59S3oRmAUo"); pub const COUNTER_SEED: &[u8] = b"counter"; pub const LEADERBOARD_SEED: &[u8] = b"leaderboard"; diff --git a/magic-actions/anchor/tests-magicsvm-rs/Cargo.lock b/magic-actions/anchor/tests-magicsvm-rs/Cargo.lock new file mode 100644 index 00000000..dfe85ab7 --- /dev/null +++ b/magic-actions/anchor/tests-magicsvm-rs/Cargo.lock @@ -0,0 +1,6616 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common 0.1.7", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures 0.2.17", +] + +[[package]] +name = "aes-gcm-siv" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae0784134ba9375416d469ec31e7c5f9fa94405049cf08c5ce5b4698be673e0d" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "polyval", + "subtle", + "zeroize", +] + +[[package]] +name = "agave-feature-set" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e724c6d41535d61eb4cba970716f6cfcef8d3f4d15750488f77a7630faab680" +dependencies = [ + "ahash 0.8.12", + "solana-epoch-schedule 3.2.0", + "solana-hash 4.5.0", + "solana-keypair", + "solana-pubkey 4.2.0", + "solana-sha256-hasher 3.1.0", + "solana-svm-feature-set", +] + +[[package]] +name = "agave-reserved-account-keys" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa474270f9cd8d71089979f1ad8e31c2eccde8b32d1ca03f33fe1123104d562" +dependencies = [ + "agave-feature-set", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "agave-transaction-view" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11af131e96e1a0df153db2d673a28293d171da78056104ec8e0d396e2bdf305b" +dependencies = [ + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-packet 4.2.0", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-svm-transaction", + "solana-transaction 4.1.6", +] + +[[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", + "getrandom 0.3.4", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "anchor-attribute-access-control" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a0ba6f4d5cff33a16a8cb30fd7419b71cf8b8b408998a341235cefe7e76cc1c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-account" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af875fe99d9dab01317a3bac577b05f3e52d5bd7d1b424de488ba51f3310feab" +dependencies = [ + "anchor-syn", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-constant" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345a11192cd11fdc8663e3194bbcd0c983c019cd9f21804d7853eeee5ee22653" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-error" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e5f6290f0f54e0e34b8efbb4dcd69dc2c46c655ada8198f35f403d2a88cf9c7" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-event" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0159e0fae5b1b508110b8753fda23ebce778f3bd8c146b8baabd12d2cebe4a7" +dependencies = [ + "anchor-syn", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-program" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51180111bea3660c0db345bfee34cf23f8d89cf2ac8dd5d8c7a044b3fb24d961" +dependencies = [ + "anchor-lang-idl", + "anchor-syn", + "anyhow", + "heck 0.3.3", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-accounts" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b802cd6561645117219ae6ed62cd322501bf1b5b7fa1a6fd8d911428c4c37192" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-serde" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa658e7d911c4290fe9ee953e75cf95f3c4db19c053f64071512867fa9f40394" +dependencies = [ + "anchor-syn", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-space" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69520cea030ee13d2978087a467bf32078012a5ce06b2746318c359887d481ed" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-lang" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bac4de7c9a9a69180798af701e22302cc0ebf2ef683b843706a1b7809454735" +dependencies = [ + "anchor-attribute-access-control", + "anchor-attribute-account", + "anchor-attribute-constant", + "anchor-attribute-error", + "anchor-attribute-event", + "anchor-attribute-program", + "anchor-derive-accounts", + "anchor-derive-serde", + "anchor-derive-space", + "base64 0.21.7", + "bincode", + "borsh 1.8.1", + "bytemuck", + "const-crypto", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-define-syscall 3.0.0", + "solana-feature-gate-interface 3.1.0", + "solana-instruction 3.4.1", + "solana-instructions-sysvar 3.0.1", + "solana-invoke", + "solana-loader-v3-interface 6.1.1", + "solana-msg 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-stake-interface 2.0.2", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", + "thiserror 1.0.69", +] + +[[package]] +name = "anchor-lang-idl" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47914b4290ae2bdf4ec203aa821e6eba86d7c78ef497918938038dcc6919f953" +dependencies = [ + "anchor-lang-idl-spec", + "anyhow", + "heck 0.3.3", + "serde", + "serde_json", + "sha2 0.10.9", +] + +[[package]] +name = "anchor-lang-idl-spec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bdf143115440fe621bdac3a29a1f7472e09f6cd82b2aa569429a0c13f103838" +dependencies = [ + "anyhow", + "serde", +] + +[[package]] +name = "anchor-syn" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ef87b1d3ae59fbf265a9157a9082308af220b4ef5a64a360d8820dcf25b5a86" +dependencies = [ + "bs58", + "heck 0.3.3", + "proc-macro2", + "quote", + "serde", + "sha2 0.11.0", + "syn 2.0.119", + "thiserror 1.0.69", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anyhow" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" + +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-bn254" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-std 0.5.0", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", + "itertools 0.13.0", + "num-bigint 0.4.8", + "num-integer", + "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 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.8", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm 0.5.0", + "ark-ff-macros 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "educe", + "itertools 0.13.0", + "num-bigint 0.4.8", + "num-traits", + "paste", + "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-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive 0.4.2", + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint 0.4.8", +] + +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-serialize-derive 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "num-bigint 0.4.8", +] + +[[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-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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.8", +] + +[[package]] +name = "ark-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" +dependencies = [ + "num-traits", + "rand 0.8.8", +] + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" + +[[package]] +name = "ascii" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[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 = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[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.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" + +[[package]] +name = "bitvec" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddcec3d12c579d40898fe0a9a358a803c23e9c52ca3c425707f81c9436211837" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake3" +version = "1.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d9e454fc11f76977dc803893aff6304ed33d6a26efae8696573bea74baa27ae" +dependencies = [ + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "cpufeatures 0.3.1", + "digest 0.11.3", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "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-buffer" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "blst" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20659f9bbee16cbbd2f7393e40ab6309f5a98f76a2eb57a995ec508b72387fe" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "blstrs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a8a8ed6fefbeef4a8c7b460e4110e12c5e22a5b7cf32621aae6ad650c4dcf29" +dependencies = [ + "blst", + "byte-slice-cast", + "ff", + "group", + "pairing", + "rand_core 0.6.4", + "serde", + "subtle", +] + +[[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.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "553c5d846a6ba5150c65e3b1b8ec073bcf1abc20f9b7220de384a4443ea4e20a" +dependencies = [ + "borsh-derive 1.8.1", + "bytes", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831213f80d9423998dd696e2c5345aba6be7a0bd8cd19e31c5243e13df1cef89" +dependencies = [ + "borsh-derive-internal", + "borsh-schema-derive-internal", + "proc-macro-crate 0.1.5", + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12cdfe656708a01f89b451a7d36466e6fe6c414de0aa18fc54f864f6f9ca9f56" +dependencies = [ + "once_cell", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[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.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.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[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 = "byte-slice-cast" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" + +[[package]] +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bytemuck" +version = "1.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a1f896587b6f2c069c73d2f0913e2d590c3990285cd2f0b6aa02b786b4c679c" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" + +[[package]] +name = "cc" +version = "1.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3eb0f42d6c360dc3f8a821f6bf2fdea7f72bfd36b3076eb0e6d1e9e0752fff4" +dependencies = [ + "find-msvc-tools", + "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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" + +[[package]] +name = "cfg_eval" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45565fc9416b9896014f5732ac776f810ee53a66730c17e4020c3ec064a8f88f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common 0.1.7", + "inout", +] + +[[package]] +name = "cmov" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" + +[[package]] +name = "combine" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" +dependencies = [ + "ascii", + "byteorder", + "either", + "memchr", + "unreachable", +] + +[[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 = "const-crypto" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c06f1eb05f06cf2e380fdded278fbf056a38974299d77960555a311dcf91a52" +dependencies = [ + "keccak-const", + "sha2-const-stable", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const-oid" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" + +[[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 = "cpufeatures" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a7799fd6b852db0e61728dde9a204c423b44d689dbd432522543614b490e78" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "crypto-common" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "ct-codecs" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49fb0c6640b4507ebd99ff67677009e381ba5eee1d14df78de4a3d16eb123c39" + +[[package]] +name = "ctor" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1c888a2a4f677017373fb6c01e13e318dd9e78758445ed5eb985e355d3f8281" +dependencies = [ + "ctor-proc-macro", + "dtor", + "link-section", +] + +[[package]] +name = "ctor-proc-macro" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7ab264ea985f1bd27887d7b21ea2bb046728e05d11909ca138d700c494730db" + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "ctutils" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" +dependencies = [ + "cmov", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "rand_core 0.6.4", + "rustc_version", + "serde", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core 0.23.0", + "darling_macro 0.23.0", +] + +[[package]] +name = "darling" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed17f5901b6630b993ca003def43f2f8ef4014fc13b047b57aad617ff32bc2ec" +dependencies = [ + "darling_core 0.24.1", + "darling_macro 0.24.1", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.119", +] + +[[package]] +name = "darling_core" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6837e2cf7485aaae18f86181d2f0e9a7ed297a025e220aeabf63fdebd3a2ddff" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 3.0.5", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "darling_macro" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ac7135c3ef02b2f7833bbeb1be5ba7f966dcde8a87c6b87f65a778d71a02785" +dependencies = [ + "darling_core 0.24.1", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "dary_heap" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b1e3a325bc115f096c8b77bbf027a7c2592230e70be2d985be950d3d5e60ebe" + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid 0.9.6", + "zeroize", +] + +[[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", + "const-oid 0.9.6", + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "digest" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" +dependencies = [ + "block-buffer 0.12.1", + "const-oid 0.10.2", + "crypto-common 0.2.2", + "ctutils", +] + +[[package]] +name = "dtor" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30e4690622ab6700ced40fc370a3f07b7d111f0154bb6fb08f73b4c8834f75b6" +dependencies = [ + "dtor-proc-macro", +] + +[[package]] +name = "dtor-proc-macro" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c98b077c7463d01d22dde8a24378ddf1ca7263dc687cffbed38819ea6c21131" + +[[package]] +name = "eager" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abe71d579d1812060163dff96056261deb5bf6729b100fa2e36a68b9649ba3d3" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand_core 0.6.4", + "serde", + "sha2 0.10.9", + "subtle", + "zeroize", +] + +[[package]] +name = "ed25519-dalek-bip32" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b49a684b133c4980d7ee783936af771516011c8cd15f429dbda77245e282f03" +dependencies = [ + "derivation-path", + "ed25519-dalek", + "hmac", + "sha2 0.10.9", +] + +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "either" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "enum-iterator" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4549325971814bda7a44061bf3fe7e487d447cba01e4220a4b454d630d7a016" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685adfa4d6f3d765a26bc5dbc936577de9abf756c1feeb3089b01dd395034842" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "enum-ordinalize" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89dd01549b09589510cf0647475075d12071456586d70f5c75c98ae2a5537677" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a65863d15a4ce2888bd2f0f543cc963d3879c3a022c8ee43f6141d479a3ac815" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "ephemeral-rollups-sdk" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "838564736408ada011e9986c819b26cf0195bb2dd238e10be258731979213d75" +dependencies = [ + "base64ct", + "bincode", + "bytemuck", + "ephemeral-rollups-sdk-attribute-action 0.14.4", + "ephemeral-rollups-sdk-attribute-commit 0.14.4", + "ephemeral-rollups-sdk-attribute-delegate 0.14.4", + "ephemeral-rollups-sdk-attribute-ephemeral 0.14.4", + "ephemeral-rollups-sdk-attribute-ephemeral-accounts 0.14.4", + "five8 0.2.1", + "getrandom 0.2.17", + "magicblock-delegation-program-api", + "magicblock-magic-program-api 0.10.1", + "num-derive", + "num-traits", + "solana-account 3.4.0", + "solana-account-info 2.3.0", + "solana-account-info 3.1.1", + "solana-address 2.6.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program 2.3.0", + "solana-program 3.0.0", + "solana-program-error 2.2.2", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "spl-associated-token-account-interface", + "thiserror 1.0.69", +] + +[[package]] +name = "ephemeral-rollups-sdk" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a267fd1fe36f82ed50307b3757561ac59b1629a523fd179e2a66f4383c9afc0a" +dependencies = [ + "anchor-lang", + "base64ct", + "bincode", + "bytemuck", + "ephemeral-rollups-sdk-attribute-action 0.16.2", + "ephemeral-rollups-sdk-attribute-commit 0.16.2", + "ephemeral-rollups-sdk-attribute-delegate 0.16.2", + "ephemeral-rollups-sdk-attribute-ephemeral 0.16.2", + "ephemeral-rollups-sdk-attribute-ephemeral-accounts 0.16.2", + "ephemeral-vrf-sdk", + "ephemeral-vrf-sdk-vrf-macro", + "five8 0.2.1", + "getrandom 0.2.17", + "magicblock-delegation-program-api", + "magicblock-magic-program-api 0.10.1", + "solana-account-info 2.3.0", + "solana-address 2.6.1", + "solana-program 2.3.0", + "solana-program 3.0.0", + "solana-program-error 2.2.2", + "solana-system-interface 2.0.0", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-action" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a29f33b94edcdfcf1b9b7a61aa0ac00e8efdc66f89c8b4b573f7ea965a42c60a" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-action" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3847b70bac1717bfd3108fe310195e658665b2d971bcb4eb2aa5aaca2c9392" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-commit" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da9ed3ea8b850013f6bf768e5f0f2e1f22f1861b46908764536795bf67bb5c67" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-commit" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b08e06840701468449f75916e922fd9694b787596efe66cd9b8dccf3ef0eb5e6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-delegate" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f0d8ab90b4ecc7ac802bbd2115681f9fd42bc5a9018be79ba7aff1fe971aa36" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-delegate" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc365676345c77eed3651debb63af9b282902100e5852a1822ee1385e3b285fe" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ea166c57ee55b329be4eae730561fe02aad5620a35b4d89439d8d0c9e07c3a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fce2590d04b16345a3117c0b66b6822a96a5ef3bc7b9add073cb3a797529d8df" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral-accounts" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa3efae094f5c288746d479fd605b67bcd56d29ddcf1238046ac07eeec130c45" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral-accounts" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f70d4bbf6761a71df97fbadcb4cceef630e2d6e37189f5e674ff34bb2210823" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-vrf-sdk" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77f3741c733907c10e0d0b32f9aa485c20a73e0b1e7e673a0ac38185fb2a6c11" +dependencies = [ + "anchor-lang", + "borsh 1.8.1", + "ephemeral-vrf-sdk-vrf-macro", + "solana-program 3.0.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "ephemeral-vrf-sdk-vrf-macro" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7b8b3fe3863a27d4c0f32da7b3cfeff179772fd4124d6c9fdcb9d4ab23cd602" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "feature-probe" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" + +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "bitvec", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "filetime" +version = "0.2.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c287a33c7f0a620c38e641e7f60827713987b3c0f26e8ddc9462cc69cf75759" +dependencies = [ + "cfg-if", + "libc", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d" + +[[package]] +name = "five8" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75b8549488b4715defcb0d8a8a1c1c76a80661b5fa106b4ca0e7fce59d7d875" +dependencies = [ + "five8_core 0.1.2", +] + +[[package]] +name = "five8" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23f76610e969fa1784327ded240f1e28a3fd9520c9cec93b636fcf62dd37f772" +dependencies = [ + "five8_core 1.0.0", +] + +[[package]] +name = "five8_const" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26dec3da8bc3ef08f2c04f61eab298c3ab334523e55f076354d6d6f613799a7b" +dependencies = [ + "five8_core 0.1.2", +] + +[[package]] +name = "five8_const" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a0f1728185f277989ca573a402716ae0beaaea3f76a8ff87ef9dd8fb19436c5" +dependencies = [ + "five8_core 1.0.0", +] + +[[package]] +name = "five8_core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2551bf44bc5f776c15044b9b94153a00198be06743e262afaaa61f11ac7523a5" + +[[package]] +name = "five8_core" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "059c31d7d36c43fe39d89e55711858b4da8be7eb6dabac23c7289b1a19489406" + +[[package]] +name = "flate2" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb" +dependencies = [ + "zlib-rs", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures-core" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" + +[[package]] +name = "futures-task" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" + +[[package]] +name = "futures-util" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" +dependencies = [ + "futures-core", + "futures-task", + "pin-project-lite", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[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 = "glob" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand 0.8.8", + "rand_core 0.6.4", + "rand_xorshift", + "subtle", +] + +[[package]] +name = "hash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" +dependencies = [ + "byteorder", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284" + +[[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 = "http" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hybrid-array" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27f864f10dfb56725ce5ce5472bc52252c8f93a4ab86327122cebf62c5f59a17" +dependencies = [ + "typenum", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "indexmap" +version = "2.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", +] + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "generic-array", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "js-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2 0.10.9", + "signature", +] + +[[package]] +name = "keccak" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" +dependencies = [ + "cpufeatures 0.2.17", +] + +[[package]] +name = "keccak-const" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d8d8ce877200136358e0bbff3a77965875db3af755a11e1fa6b1b3e2df13ea" + +[[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.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" + +[[package]] +name = "libflate" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "561a8da1a50e1428d3c51321dafeca849df992a5bb67720c386131234caba82e" +dependencies = [ + "adler32", + "crc32fast", + "dary_heap", + "libflate_lz77", + "no_std_io2", +] + +[[package]] +name = "libflate_lz77" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7a10e427698aef6eef269482776debfef63384d30f13aad39a1a95e0e098fd" +dependencies = [ + "hashbrown 0.16.1", + "no_std_io2", + "rle-decode-fast", +] + +[[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", + "libsecp256k1-core 0.2.2", + "libsecp256k1-gen-ecmult 0.2.1", + "libsecp256k1-gen-genmult 0.2.1", + "rand 0.7.3", + "serde", + "sha2 0.9.9", +] + +[[package]] +name = "libsecp256k1" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" +dependencies = [ + "arrayref", + "base64 0.22.1", + "digest 0.9.0", + "libsecp256k1-core 0.3.0", + "libsecp256k1-gen-ecmult 0.3.0", + "libsecp256k1-gen-genmult 0.3.0", + "rand 0.8.8", + "serde", + "sha2 0.9.9", +] + +[[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-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" +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 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" +dependencies = [ + "libsecp256k1-core 0.3.0", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" +dependencies = [ + "libsecp256k1-core 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" +dependencies = [ + "libsecp256k1-core 0.3.0", +] + +[[package]] +name = "libsodium-rs" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b8cd48c80d6c6fa5a4612d242941067219555baea82b0b49c92ea9d8156b59c" +dependencies = [ + "ct-codecs", + "ctor", + "libc", + "libsodium-sys-stable", + "pkg-config", + "thiserror 1.0.69", + "zeroize", +] + +[[package]] +name = "libsodium-sys-stable" +version = "1.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b04bf6da2c98b727af37ab62cb505f4d751b975b034a9b9ad491d333b0564e" +dependencies = [ + "cc", + "libc", + "libflate", + "minisign-verify", + "pkg-config", + "tar", + "ureq", + "vcpkg", + "zip", +] + +[[package]] +name = "light-poseidon" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c9a85a9752c549ceb7578064b4ed891179d20acd85f27318573b64d2d7ee7ee" +dependencies = [ + "ark-bn254 0.4.0", + "ark-ff 0.4.2", + "num-bigint 0.4.8", + "thiserror 1.0.69", +] + +[[package]] +name = "light-poseidon" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47a1ccadd0bb5a32c196da536fd72c59183de24a055f6bf0513bf845fefab862" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ff 0.5.0", + "num-bigint 0.4.8", + "thiserror 1.0.69", +] + +[[package]] +name = "link-section" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52437d47b0358721ec869cc7374b2a21f7b2237af9b439c0391341a1fbfbf1b" + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[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.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" + +[[package]] +name = "magic-actions" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "ephemeral-rollups-sdk 0.16.2", +] + +[[package]] +name = "magic-actions-magicsvm-tests" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "ephemeral-rollups-sdk 0.16.2", + "magic-actions", + "magicsvm", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-native-token 3.0.0", + "solana-signer", + "solana-transaction 4.1.6", + "solana-transaction-error 3.3.2", + "test-utils", +] + +[[package]] +name = "magicblock-account" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b5671bd1525eeab67f240455dffff31a4f6d27b067a3531f2d47c7d5af0c6e" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "thiserror 2.0.20", +] + +[[package]] +name = "magicblock-delegation-program-api" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea16e41e04319201919afca98dd4241b18549f2db0c68f58e4bc531537b5dab" +dependencies = [ + "bincode", + "borsh 0.10.4", + "borsh 1.8.1", + "bytemuck", + "const-crypto", + "libsodium-rs", + "num_enum", + "pinocchio 0.10.2", + "pinocchio-log", + "pinocchio-pubkey", + "pinocchio-system", + "rkyv", + "serde", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-loader-v3-interface 6.1.1", + "solana-program 3.0.0", + "solana-pubkey 2.4.0", + "solana-sdk", + "solana-sdk-ids 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-system-interface 2.0.0", + "static_assertions", + "strum", + "thiserror 2.0.20", +] + +[[package]] +name = "magicblock-litesvm" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82cfc1c7f4348c300f58ddd5ae8613e9b1d08564a7956af43822de59cb76d039" +dependencies = [ + "agave-feature-set", + "agave-reserved-account-keys", + "ansi_term", + "indexmap", + "itertools 0.15.0", + "log", + "magicblock-account", + "solana-account 4.3.2", + "solana-address 2.6.1", + "solana-address-lookup-table-interface 3.1.0", + "solana-builtins", + "solana-clock 3.1.1", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-feature-gate-interface 4.0.0", + "solana-fee", + "solana-fee-calculator 3.2.2", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-instructions-sysvar 4.0.0", + "solana-keypair", + "solana-last-restart-slot 3.1.0", + "solana-loader-v3-interface 8.0.1", + "solana-loader-v4-interface 3.1.0", + "solana-message 4.4.1", + "solana-native-token 3.0.0", + "solana-nonce 3.2.1", + "solana-nonce-account", + "solana-precompile-error", + "solana-program-error 3.0.1", + "solana-program-runtime", + "solana-rent 4.3.0", + "solana-runtime-transaction", + "solana-sdk-ids 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-signature 3.4.1", + "solana-signer", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stake-history", + "solana-svm-callback", + "solana-svm-log-collector", + "solana-svm-timings", + "solana-svm-transaction", + "solana-syscalls", + "solana-system-interface 3.2.0", + "solana-system-program", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "magicblock-magic-program-api" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291f7a68f6cc622741a3fae513bd71640911abefd1fae2b2602b934515ed4b95" +dependencies = [ + "bincode", + "const-crypto", + "serde", + "solana-program 2.3.0", + "solana-signature 2.3.0", +] + +[[package]] +name = "magicblock-magic-program-api" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dc8fba0307c90b91b70c9ed06d4242d6c4159f331b2f05bf8f875c2a94e0e98" +dependencies = [ + "bincode", + "const-crypto", + "serde", + "solana-program 3.0.0", + "solana-signature 3.4.1", +] + +[[package]] +name = "magicsvm" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e3effa3b8d28f3e0a14d1b72afcf65c2bec2331882a19065ec4424cd5c7ee37" +dependencies = [ + "bincode", + "borsh 1.8.1", + "ephemeral-rollups-sdk 0.14.4", + "magicblock-account", + "magicblock-delegation-program-api", + "magicblock-litesvm", + "magicblock-magic-program-api 0.8.8", + "solana-account 4.3.2", + "solana-address 2.6.1", + "solana-clock 3.1.1", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-program-runtime", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-signer", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[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 = "minisign-verify" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22f9645cb765ea72b8111f36c522475d2daa0d22c957a9826437e97534bc4e9e" + +[[package]] +name = "no_std_io2" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418abd1b6d34fbf6cae440dc874771b0525a604428704c76e48b29a5e67b8003" +dependencies = [ + "memchr", +] + +[[package]] +name = "num" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" +dependencies = [ + "num-bigint 0.2.6", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +dependencies = [ + "autocfg", + "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.119", +] + +[[package]] +name = "num-integer" +version = "0.1.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92800bd69a1eac91786bcfe9da64a897eb72911b8dc3095decbd07429e8048b" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +dependencies = [ + "autocfg", + "num-bigint 0.2.6", + "num-integer", + "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_cpus" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group", +] + +[[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 = "pastey" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4" + +[[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 = "percentage" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd23b938276f14057220b707937bcb42fa76dda7560e57a2da30cb52d557937" +dependencies = [ + "num", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pinocchio" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8afe4f39c0e25cc471b35b89963312791a5162d45a86578cbeaad9e5e7d1b3b" + +[[package]] +name = "pinocchio" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06810dac15a4ef83d3dabdb4f2f22fb39c9adff669cd2781da4f716510a647c" +dependencies = [ + "solana-account-view", + "solana-address 2.6.1", + "solana-define-syscall 4.0.1", + "solana-instruction-view", + "solana-program-error 3.0.1", +] + +[[package]] +name = "pinocchio-log" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd11022408f312e6179ece321c1f7dc0d1b2aa7765fddd39b2a7378d65a899e8" +dependencies = [ + "pinocchio-log-macro", +] + +[[package]] +name = "pinocchio-log-macro" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69fb52edb3c5736b044cc462b0957b9767d0f574d138f4e2761438c498a4b467" +dependencies = [ + "quote", + "regex", + "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 0.1.4", + "pinocchio 0.9.3", + "sha2-const-stable", +] + +[[package]] +name = "pinocchio-system" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24044a0815753862b558e179e78f03f7344cb755de48617a09d7d23b50883b6c" +dependencies = [ + "pinocchio 0.10.2", + "solana-address 2.6.1", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "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.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[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.119", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +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 = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e058c7de0b26af77780c769414d6257830bb240f3c38477dbc2c16e5f54d6d4c" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", +] + +[[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_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", +] + +[[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_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] + +[[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_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + +[[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.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "rend" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "rkyv" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2297bf9c81a3f0dc96bc9521370b88f054168c29826a75e89c55ff196e7ed6a1" +dependencies = [ + "bitvec", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d7b42d4b8d06048d3ac8db0eb31bcb942cbeb709f0b5f2b2ebde398d3038f5" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rle-decode-fast" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" + +[[package]] +name = "rustc-demangle" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b74b56ffa8bb2830709a538c2cbcae9aa062db0d2a42563bfb09bdaae44020eb" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-big-array" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" +dependencies = [ + "serde", +] + +[[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.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "serde_json" +version = "1.0.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_with" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "935177bb8c0cd8ca1a4e6d1a2ac8988bea69cab4f9d3a31311e012ad27868ea4" +dependencies = [ + "serde_core", + "serde_with_macros", +] + +[[package]] +name = "serde_with_macros" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d607aa01a3cb0ad757d6fd216136910db3c97b102fe686585689615a02dbcdc" +dependencies = [ + "darling 0.24.1", + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[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 0.2.17", + "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 0.2.17", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.1", + "digest 0.11.3", +] + +[[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.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77fd7028345d415a4034cf8777cd4f8ab1851274233b45f84e3d955502d93874" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "simd-adler32" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba467056f1b547ed52077911161fc86985becbc60e8e1857c8a144dab0def891" + +[[package]] +name = "solana-account" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f949fe4edaeaea78c844023bfc1c898e0b1f5a100f8a8d2d0f85d0a7b090258" +dependencies = [ + "solana-account-info 2.3.0", + "solana-clock 2.2.3", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-account" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efc0ed36decb689413b9da5d57f2be49eea5bebb3cf7897015167b0c4336e731" +dependencies = [ + "bincode", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 3.1.1", +] + +[[package]] +name = "solana-account" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26788ba0d7eb5b250edda3e1d393739bafd5daf94882f2261d14f5ab0d6a25e0" +dependencies = [ + "bincode", + "qualifier_attr", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 4.1.0", +] + +[[package]] +name = "solana-account-info" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8f5152a288ef1912300fc6efa6c2d1f9bb55d9398eb6c72326360b8063987da" +dependencies = [ + "bincode", + "serde", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-account-info" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9cf16495d9eb53e3d04e72366a33bb1c20c24e78c171d8b8f5978357b63ae95" +dependencies = [ + "bincode", + "serde_core", + "solana-address 2.6.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.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.6.1", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-address" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2ecac8e1b7f74c2baa9e774c42817e3e75b20787134b76cc4d45e8a604488f5" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-address" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c93e262f671bf402e1040e4a7e40b05d81da5956c7681948c975a0997517bb" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8 1.0.0", + "five8_const 1.0.0", + "rand 0.9.5", + "serde", + "serde_derive", + "sha2-const-stable", + "solana-atomic-u64 3.0.1", + "solana-define-syscall 5.2.0", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.1.0", + "wincode", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1673f67efe870b64a65cb39e6194be5b26527691ce5922909939961a6e6b395" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-slot-hashes 2.2.1", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115b4f773acc4f3f3cb986b0d335e9845c0368c82b0940410935bc11ae065578" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", +] + +[[package]] +name = "solana-atomic-u64" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52e52720efe60465b052b9e7445a01c17550666beec855cce66f44766697bc2" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "solana-atomic-u64" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "085db4906d89324cef2a30840d59eaecf3d4231c560ec7c9f6614a93c652f501" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "solana-big-mod-exp" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75db7f2bbac3e62cfd139065d15bcda9e2428883ba61fc8d27ccb251081e7567" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-big-mod-exp" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30c80fb6d791b3925d5ec4bf23a7c169ef5090c013059ec3ed7d0b2c04efa085" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "solana-define-syscall 3.0.0", +] + +[[package]] +name = "solana-bincode" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19a3787b8cf9c9fe3dd360800e8b70982b9e5a8af9e11c354b6665dd4a003adc" +dependencies = [ + "bincode", + "serde", + "solana-instruction 2.3.3", +] + +[[package]] +name = "solana-bincode" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "278a1a5bad62cd9da89ac8d4b7ec444e83caa8ae96aa656dfc27684b28d49a5d" +dependencies = [ + "bincode", + "serde_core", + "solana-instruction-error", +] + +[[package]] +name = "solana-blake3-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a0801e25a1b31a14494fc80882a036be0ffd290efc4c2d640bfcca120a4672" +dependencies = [ + "blake3", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-blake3-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7116e1d942a2432ca3f514625104757ab8a56233787e95144c93950029e31176" +dependencies = [ + "blake3", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-bls-signatures" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "654ea8d31bbb4b0b9c28f9c545edb32691de27d4e2fc0e252c1ff47da50c5f2a" +dependencies = [ + "base64 0.22.1", + "blst", + "blstrs", + "cfg_eval", + "ff", + "group", + "pairing", + "rand 0.8.8", + "serde", + "serde_json", + "serde_with", + "thiserror 2.0.20", + "wincode", + "zeroize", +] + +[[package]] +name = "solana-bls12-381-syscall" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94e8256fda0542709fd1320a96d81c3c66e10ac5f680cca9b991d7d3b0e3fe86" +dependencies = [ + "blst", + "blstrs", + "bytemuck", + "bytemuck_derive", + "pairing", +] + +[[package]] +name = "solana-bn254" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62ff13a8867fcc7b0f1114764e1bf6191b4551dcaf93729ddc676cd4ec6abc9f" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "bytemuck", + "solana-define-syscall 5.2.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-borsh" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718333bcd0a1a7aed6655aa66bef8d7fb047944922b2d3a18f49cbc13e73d004" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", +] + +[[package]] +name = "solana-borsh" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c04abbae16f57178a163125805637b8a076175bb5c0002fb04f4792bea901cf7" +dependencies = [ + "borsh 1.8.1", +] + +[[package]] +name = "solana-bpf-loader-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabcc3a5785886f026b438771bf6b221b0d4877f6089af79d432c7fe877a6cd4" +dependencies = [ + "bincode", + "qualifier_attr", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-clock 3.1.1", + "solana-instruction 3.4.1", + "solana-loader-v3-interface 7.0.0", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-type-overrides", + "solana-syscalls", + "solana-system-interface 3.2.0", + "solana-transaction-context", +] + +[[package]] +name = "solana-builtins" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ab49c6f8a77bff54e811e9674747fd435e218dcbe71120039a865515151998c" +dependencies = [ + "agave-feature-set", + "solana-bpf-loader-program", + "solana-compute-budget-program", + "solana-hash 4.5.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-program", + "solana-vote-program", + "solana-zk-elgamal-proof-program", + "solana-zk-token-proof-program", +] + +[[package]] +name = "solana-builtins-default-costs" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76792b1ecab1c5f127f16062926850b52c4bb51ac1a93d220635fb13221d3503" +dependencies = [ + "agave-feature-set", + "ahash 0.8.12", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-clock" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8584296123df8fe229b95e2ebfd37ae637fe9db9b7d4dd677ac5a78e80dbfce" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-clock" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0acdace90d96e2c9e70d681465b4fe888b6bcf27c354ae9774e9f8a3b72923d" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-compute-budget" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e200042fd149d565521f7b31e082c0db0e022e9860c7e013130f812984ae846f" +dependencies = [ + "solana-fee-structure", + "solana-program-runtime", +] + +[[package]] +name = "solana-compute-budget-instruction" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a651fc5d082fd88090a7336ea85599b1ffcf6503dbcff575ae1bb2fb1cec238" +dependencies = [ + "agave-feature-set", + "solana-borsh 3.0.2", + "solana-builtins-default-costs", + "solana-compute-budget", + "solana-compute-budget-interface", + "solana-instruction 3.4.1", + "solana-packet 4.2.0", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-svm-transaction", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-compute-budget-interface" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8292c436b269ad23cecc8b24f7da3ab07ca111661e25e00ce0e1d22771951ab9" +dependencies = [ + "borsh 1.8.1", + "solana-instruction 3.4.1", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-compute-budget-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e314aeb4a86507ba77fb2d6ce9f5836af6aeaaedd4c5314e310ca72f73afe367" +dependencies = [ + "solana-program-runtime", +] + +[[package]] +name = "solana-cpi" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dc71126edddc2ba014622fc32d0f5e2e78ec6c5a1e0eb511b85618c09e9ea11" +dependencies = [ + "solana-account-info 2.3.0", + "solana-define-syscall 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-stable-layout 2.2.1", +] + +[[package]] +name = "solana-cpi" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dea26709d867aada85d0d3617db0944215c8bb28d3745b912de7db13a23280c" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 4.0.1", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-stable-layout 3.0.1", +] + +[[package]] +name = "solana-curve25519" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14b4d2a4bf0d0b0a86c22111917e86e8bd39a7b31420fb2c7d73eb83761fc7af" +dependencies = [ + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "solana-define-syscall 5.2.0", + "subtle", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-decode-error" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c781686a18db2f942e70913f7ca15dc120ec38dcab42ff7557db2c70c625a35" +dependencies = [ + "num-traits", +] + +[[package]] +name = "solana-define-syscall" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ae3e2abcf541c8122eafe9a625d4d194b4023c20adde1e251f94e056bb1aee2" + +[[package]] +name = "solana-define-syscall" +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-define-syscall" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf8209ece2bd9f1450e672858ffc0e5c8c786ff6916d2a862b126dd0128f380f" + +[[package]] +name = "solana-derivation-path" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff71743072690fdbdfcdc37700ae1cb77485aaad49019473a81aee099b1e0b8c" +dependencies = [ + "derivation-path", + "qstring", + "uriparse", +] + +[[package]] +name = "solana-epoch-info" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e093c84f6ece620a6b10cd036574b0cd51944231ab32d81f80f76d54aba833e6" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-epoch-rewards" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b575d3dd323b9ea10bb6fe89bf6bf93e249b215ba8ed7f68f1a3633f384db7" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 2.3.0", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-rewards" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf7eb4986b0b1d6f562b21f75a836f1a6df6e00c275efcef50aab5c144dc59e" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-epoch-rewards-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee8beac9bff4db9225e57d532d169b0be5e447f1e6601a2f50f27a01bf5518f" +dependencies = [ + "siphasher", + "solana-address 2.6.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-epoch-schedule" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fce071fbddecc55d727b1d7ed16a629afe4f6e4c217bc8d00af3b785f6f67ed" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-schedule" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8116e6ffa6002237d5ab5edcbda17f9ba66b6742c45a89c9fb40a94dbacd4c1d" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-program-error 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-epoch-stake" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "027e6d0b9e7daac5b2ac7c3f9ca1b727861121d9ef05084cf435ff736051e7c2" +dependencies = [ + "solana-define-syscall 5.2.0", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-example-mocks" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84461d56cbb8bb8d539347151e0525b53910102e4bced875d49d5139708e39d3" +dependencies = [ + "serde", + "serde_derive", + "solana-address-lookup-table-interface 2.2.2", + "solana-clock 2.2.3", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-keccak-hasher 2.2.1", + "solana-message 2.4.0", + "solana-nonce 2.2.1", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-example-mocks" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978855d164845c1b0235d4b4d101cadc55373fffaf0b5b6cfa2194d25b2ed658" +dependencies = [ + "serde", + "serde_derive", + "solana-address-lookup-table-interface 3.1.0", + "solana-clock 3.1.1", + "solana-hash 3.1.0", + "solana-instruction 3.4.1", + "solana-keccak-hasher 3.1.0", + "solana-message 3.1.0", + "solana-nonce 3.2.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 2.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43f5c5382b449e8e4e3016fb05e418c53d57782d8b5c30aa372fc265654b956d" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 2.2.1", + "solana-account-info 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75ca9b5cbb6f500f7fd73db5bd95640f71a83f04d6121a0e59a43b202dca2731" +dependencies = [ + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd7545e02f91da1d6996f32b18f7796aa01e0682f8f3a7434b82cd1a10448add" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-fee" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c32df41c2c93a567a1612a973faddeaca093276677c157ef9cb60a378289fc69" +dependencies = [ + "agave-feature-set", + "solana-fee-structure", + "solana-svm-transaction", +] + +[[package]] +name = "solana-fee-calculator" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89bc408da0fb3812bc3008189d148b4d3e08252c79ad810b245482a3f70cd8d" +dependencies = [ + "log", + "serde", + "serde_derive", +] + +[[package]] +name = "solana-fee-calculator" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef67f01cc6a0c72e99a08d0d484683f995de4c80e9568728fa77d1537f9b7e09" +dependencies = [ + "log", + "serde", + "serde_derive", + "wincode", +] + +[[package]] +name = "solana-fee-structure" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2abdb1223eea8ec64136f39cb1ffcf257e00f915c957c35c0dd9e3f4e700b0" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-get-sysvar" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef3bc859fc036ed490146793557386cbfae614ebba4adc704c37d94350824ed4" +dependencies = [ + "solana-address 2.6.1", + "solana-define-syscall 5.2.0", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-hard-forks" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb50b2df7a36a2af58ce24bb0229622ac845dcc196e8c23b3ea4a29dd6bee09" + +[[package]] +name = "solana-hash" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b96e9f0300fa287b545613f007dfe20043d7812bee255f418c1eb649c93b63" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "five8 0.2.1", + "js-sys", + "serde", + "serde_derive", + "solana-atomic-u64 2.2.1", + "solana-sanitize 2.2.1", + "wasm-bindgen", +] + +[[package]] +name = "solana-hash" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "337c246447142f660f778cf6cb582beba8e28deb05b3b24bfb9ffd7c562e5f41" +dependencies = [ + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-hash" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f4c847893a2ea50b4ae3ca723b124e07cd0544fecea3598f785168f9b78333f" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "five8 1.0.0", + "serde", + "serde_derive", + "solana-atomic-u64 3.0.1", + "solana-sanitize 3.0.1", + "wincode", +] + +[[package]] +name = "solana-hash-512" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce934b02bab639341f2fd62c3e7e3c39dcceb47f0196b7630ed1f82ecb704bd" + +[[package]] +name = "solana-inflation" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf186550ea7438e2708bd0c233f01fe9c3fa45b9b607ff993b650ce60af102e" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-instruction" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab5682934bd1f65f8d2c16f21cb532526fcc1a09f796e2cacdb091eee5774ad" +dependencies = [ + "bincode", + "borsh 1.8.1", + "getrandom 0.2.17", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "serde_json", + "solana-define-syscall 2.3.0", + "solana-pubkey 2.4.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-instruction" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3957ca1d31107efd9a6bb88b25c348ca5e3b4b6683e3d08adb86d3d17aa01f1" +dependencies = [ + "bincode", + "borsh 1.8.1", + "serde", + "serde_derive", + "solana-define-syscall 5.2.0", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "wincode", +] + +[[package]] +name = "solana-instruction-error" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b7d34343838343a3755b7dfb1e438d94c6db2263b519cfe3c2257af932b6e93" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-program-error 3.0.1", +] + +[[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.6.1", + "solana-define-syscall 4.0.1", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0e85a6fad5c2d0c4f5b91d34b8ca47118fc593af706e523cdbedf846a954f57" +dependencies = [ + "bitflags", + "solana-account-info 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serialize-utils 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e0732294560e88ecdb2bbc656e67383e9f88c78ec09469cef172f0d28cd1bcd" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-serialize-utils 3.1.2", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e38363a181313d607f7a118df2b401bb27b477a0104b09283cbf504f5f0f00cc" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-serialize-utils 3.1.2", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-invoke" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4065031f5c7dd29ef5f5003c1a353011eeabbafa6c5a5033da0cedbfca824b94" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 3.0.0", + "solana-instruction 3.4.1", + "solana-program-entrypoint 3.1.1", + "solana-stable-layout 3.0.1", +] + +[[package]] +name = "solana-keccak-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7aeb957fbd42a451b99235df4942d96db7ef678e8d5061ef34c9b34cae12f79" +dependencies = [ + "sha3", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-keccak-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed1c0d16d6fdeba12291a1f068cdf0d479d9bff1141bf44afd7aa9d485f65ef8" +dependencies = [ + "sha3", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-keypair" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "263d614c12aa267a3278703175fd6440552ca61bc960b5a02a4482720c53438b" +dependencies = [ + "ed25519-dalek", + "ed25519-dalek-bip32", + "five8 1.0.0", + "five8_core 1.0.0", + "rand 0.9.5", + "solana-address 2.6.1", + "solana-derivation-path", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-last-restart-slot" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a6360ac2fdc72e7463565cd256eedcf10d7ef0c28a1249d261ec168c1b55cdd" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-last-restart-slot" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22474b83d3c7c318e1c3a725784fc2d1d03b728e36369e58ce48769a61ed85e" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-loader-v2-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8ab08006dad78ae7cd30df8eea0539e207d08d91eaefb3e1d49a446e1c49654" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f7162a05b8b0773156b443bccd674ea78bb9aa406325b467ea78c06c99a63a2" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e0538d4dbc9022e01616f1c58f2db98ece739c5d5ed4a2ef8737a953e76a2d4" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68029ab11d9c891d4ce23ada75745e40f983c5674af366f447b672569634231b" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "362b468fbde4c20521b9ff5ef743bc0d9b410455a5a92a8b29fd46954e89345f" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", + "wincode", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "706a777242f1f39a83e2a96a2a6cb034cb41169c6ecbee2cf09cb873d9659e7e" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c948b33ff81fa89699911b207059e493defdba9647eaf18f23abdf3674e0fb" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-message" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1796aabce376ff74bf89b78d268fa5e683d7d7a96a0a4e4813ec34de49d5314b" +dependencies = [ + "bincode", + "blake3", + "lazy_static", + "serde", + "serde_derive", + "solana-bincode 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", + "solana-transaction-error 2.2.1", + "wasm-bindgen", +] + +[[package]] +name = "solana-message" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0448b1fd891c5f46491e5dc7d9986385ba3c852c340db2911dd29faa01d2b08d" +dependencies = [ + "bincode", + "blake3", + "lazy_static", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-message" +version = "4.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e29e655f222a3a64145fedceacdca3e696ba7aded1dbd5391aa09d5fbfba53c" +dependencies = [ + "blake3", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-msg" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36a1a14399afaabc2781a1db09cb14ee4cc4ee5c7a5a3cfcc601811379a8092" +dependencies = [ + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-msg" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726b7cbbc6be6f1c6f29146ac824343b9415133eee8cce156452ad1db93f8008" +dependencies = [ + "solana-define-syscall 5.2.0", +] + +[[package]] +name = "solana-native-token" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61515b880c36974053dd499c0510066783f0cc6ac17def0c7ef2a244874cf4a9" + +[[package]] +name = "solana-native-token" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae8dd4c280dca9d046139eb5b7a5ac9ad10403fbd64964c7d7571214950d758f" + +[[package]] +name = "solana-nonce" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703e22eb185537e06204a5bd9d509b948f0066f2d1d814a6f475dafb3ddf1325" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-pubkey 2.4.0", + "solana-sha256-hasher 2.3.0", +] + +[[package]] +name = "solana-nonce" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4172d5b33a0a38fcdb2af8f84406570dd51567267da96c28ad0f31fc11621c0" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator 3.2.2", + "solana-hash 4.5.0", + "solana-pubkey 4.2.0", + "solana-sha256-hasher 3.1.0", + "wincode", +] + +[[package]] +name = "solana-nonce-account" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b81bf7e2aa8c443724051507c1007d0b6d9c34b70925d3232dc78f5ca485209e" +dependencies = [ + "solana-account 4.3.2", + "solana-hash 4.5.0", + "solana-nonce 3.2.1", + "solana-sdk-ids 3.1.0", + "wincode", +] + +[[package]] +name = "solana-offchain-message" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e2a1141a673f72a05cf406b99e4b2b8a457792b7c01afa07b3f00d4e2de393" +dependencies = [ + "num_enum", + "solana-hash 3.1.0", + "solana-packet 3.0.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.1.0", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-packet" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edf2f25743c95229ac0fdc32f8f5893ef738dbf332c669e9861d33ddb0f469d" +dependencies = [ + "bitflags", +] + +[[package]] +name = "solana-packet" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a2a582d7863548f047f49aa3745c076cfa9e1364baa080ef0c1210f0e4ebda" +dependencies = [ + "bitflags", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-poseidon" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "737b8ab25bf4cc8e618f80f1fe40709b2ace708bc764a36b8a4c81eea8c07034" +dependencies = [ + "ark-bn254 0.4.0", + "ark-bn254 0.5.0", + "light-poseidon 0.2.0", + "light-poseidon 0.4.0", + "solana-define-syscall 4.0.1", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-precompile-error" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cafcd950de74c6c39d55dc8ca108bbb007799842ab370ef26cf45a34453c31e1" +dependencies = [ + "num-traits", +] + +[[package]] +name = "solana-presigner" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f704eaf825be3180832445b9e4983b875340696e8e7239bf2d535b0f86c14a2" +dependencies = [ + "solana-pubkey 3.0.0", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-program" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98eca145bd3545e2fbb07166e895370576e47a00a7d824e325390d33bf467210" +dependencies = [ + "bincode", + "blake3", + "borsh 0.10.4", + "borsh 1.8.1", + "bs58", + "bytemuck", + "console_error_panic_hook", + "console_log", + "getrandom 0.2.17", + "lazy_static", + "log", + "memoffset", + "num-bigint 0.4.8", + "num-derive", + "num-traits", + "rand 0.8.8", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 2.3.0", + "solana-address-lookup-table-interface 2.2.2", + "solana-atomic-u64 2.2.1", + "solana-big-mod-exp 2.2.1", + "solana-bincode 2.2.1", + "solana-blake3-hasher 2.2.1", + "solana-borsh 2.2.1", + "solana-clock 2.2.3", + "solana-cpi 2.2.1", + "solana-decode-error", + "solana-define-syscall 2.3.0", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", + "solana-example-mocks 2.2.1", + "solana-feature-gate-interface 2.2.2", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-instructions-sysvar 2.2.2", + "solana-keccak-hasher 2.2.1", + "solana-last-restart-slot 2.2.1", + "solana-loader-v2-interface", + "solana-loader-v3-interface 5.0.0", + "solana-loader-v4-interface 2.2.1", + "solana-message 2.4.0", + "solana-msg 2.2.1", + "solana-native-token 2.3.0", + "solana-nonce 2.2.1", + "solana-program-entrypoint 2.3.0", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-program-option 2.2.1", + "solana-program-pack 2.2.1", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-secp256k1-recover 2.2.1", + "solana-serde-varint 2.2.2", + "solana-serialize-utils 2.2.1", + "solana-sha256-hasher 2.3.0", + "solana-short-vec 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stable-layout 2.2.1", + "solana-stake-interface 1.2.1", + "solana-system-interface 1.0.0", + "solana-sysvar 2.3.0", + "solana-sysvar-id 2.2.1", + "solana-vote-interface 2.2.6", + "thiserror 2.0.20", + "wasm-bindgen", +] + +[[package]] +name = "solana-program" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91b12305dd81045d705f427acd0435a2e46444b65367d7179d7bdcfc3bc5f5eb" +dependencies = [ + "memoffset", + "solana-account-info 3.1.1", + "solana-big-mod-exp 3.0.0", + "solana-blake3-hasher 3.1.0", + "solana-borsh 3.0.2", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-define-syscall 3.0.0", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-epoch-stake", + "solana-example-mocks 3.0.0", + "solana-fee-calculator 3.2.2", + "solana-hash 3.1.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-instructions-sysvar 3.0.1", + "solana-keccak-hasher 3.1.0", + "solana-last-restart-slot 3.1.0", + "solana-msg 3.1.0", + "solana-native-token 3.0.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.3.0", + "solana-serde-varint 3.0.1", + "solana-serialize-utils 3.1.2", + "solana-sha256-hasher 3.1.0", + "solana-short-vec 3.2.2", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stable-layout 3.0.1", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-program-entrypoint" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32ce041b1a0ed275290a5008ee1a4a6c48f5054c8a3d78d313c08958a06aedbd" +dependencies = [ + "solana-account-info 2.3.0", + "solana-msg 2.2.1", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-program-entrypoint" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c9b0a1ff494e05f503a08b3d51150b73aa639544631e510279d6375f290997" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 4.0.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-program-error" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ee2e0217d642e2ea4bee237f37bd61bb02aec60da3647c48ff88f6556ade775" +dependencies = [ + "borsh 1.8.1", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-msg 2.2.1", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-program-error" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f04fa578707b3612b095f0c8e19b66a1233f7c42ca8082fcb3b745afcc0add6" +dependencies = [ + "borsh 1.8.1", + "serde", + "serde_derive", +] + +[[package]] +name = "solana-program-memory" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a5426090c6f3fd6cfdc10685322fede9ca8e5af43cd6a59e98bfe4e91671712" +dependencies = [ + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-program-memory" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4068648649653c2c50546e9a7fb761791b5ab0cda054c771bb5808d3a4b9eb52" +dependencies = [ + "solana-define-syscall 4.0.1", +] + +[[package]] +name = "solana-program-option" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc677a2e9bc616eda6dbdab834d463372b92848b2bfe4a1ed4e4b4adba3397d0" + +[[package]] +name = "solana-program-option" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a88006a9b8594088cec9027ab77caaaa258a2aaa2083d3f086c44b42e50aeab" + +[[package]] +name = "solana-program-pack" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "319f0ef15e6e12dc37c597faccb7d62525a509fec5f6975ecb9419efddeb277b" +dependencies = [ + "solana-program-error 2.2.2", +] + +[[package]] +name = "solana-program-pack" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7701cb15b90667ae1c89ef4ac35a59c61e66ce58ddee13d729472af7f41d59" +dependencies = [ + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-program-runtime" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2b7281bd4a6072c7e11b611f771f4e61be1d45ea0d2aecfbb77d02d1b5877d4" +dependencies = [ + "base64 0.22.1", + "bincode", + "cfg-if", + "itertools 0.14.0", + "log", + "percentage", + "rand 0.9.5", + "serde", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-loader-v3-interface 7.0.0", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", + "solana-stable-layout 3.0.1", + "solana-stake-interface 4.3.0", + "solana-svm-callback", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-timings", + "solana-svm-transaction", + "solana-svm-type-overrides", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction-context", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "solana-pubkey" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b62adb9c3261a052ca1f999398c388f1daf558a1b492f60a6d9e64857db4ff1" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8 0.2.1", + "five8_const 0.1.4", + "getrandom 0.2.17", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-atomic-u64 2.2.1", + "solana-decode-error", + "solana-define-syscall 2.3.0", + "solana-sanitize 2.2.1", + "solana-sha256-hasher 2.3.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-pubkey" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8909d399deb0851aa524420beeb5646b115fd253ef446e35fe4504c904da3941" +dependencies = [ + "rand 0.8.8", + "solana-address 1.1.0", +] + +[[package]] +name = "solana-pubkey" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7db719574990de7e8b0f55a8593ac92a5ccb42c8ce67b3e4bf05b139d5d9ee71" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-rent" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1aea8fdea9de98ca6e8c2da5827707fb3842833521b528a713810ca685d2480" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-rent" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e860d5499a705369778647e97d760f7670adfb6fc8419dd3d568deccd46d5487" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-rent" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39f0d780bf8e8a1fe8b5b5fce1acad6b209485b86dec246e7523d5e4a8b7c7fc" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-runtime-transaction" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60cf942dcefc0f4d600fed1f4d220ff27abaa04def1fefa37e0e0c2a96e4179" +dependencies = [ + "agave-feature-set", + "agave-transaction-view", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-svm-transaction", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-sanitize" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61f1bc1357b8188d9c4a3af3fc55276e56987265eb7ad073ae6f8180ee54cecf" + +[[package]] +name = "solana-sanitize" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf09694a0fc14e5ffb18f9b7b7c0f15ecb6eac5b5610bf76a1853459d19daf9" + +[[package]] +name = "solana-sbpf" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d777d7a89267dd133e985113c7e7f820fb7cfd9123a4a350cf8b39ebae1920bc" +dependencies = [ + "byteorder", + "combine", + "hash32", + "libc", + "log", + "rand 0.8.8", + "rustc-demangle", + "thiserror 2.0.20", + "winapi", +] + +[[package]] +name = "solana-sdk" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f03df7969f5e723ad31b6c9eadccc209037ac4caa34d8dc259316b05c11e82b" +dependencies = [ + "bincode", + "bs58", + "serde", + "solana-account 3.4.0", + "solana-epoch-info", + "solana-epoch-rewards-hasher", + "solana-fee-structure", + "solana-inflation", + "solana-keypair", + "solana-message 3.1.0", + "solana-offchain-message", + "solana-presigner", + "solana-program 3.0.0", + "solana-program-memory 3.1.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-serde", + "solana-serde-varint 3.0.1", + "solana-short-vec 3.2.2", + "solana-shred-version", + "solana-signature 3.4.1", + "solana-signer", + "solana-time-utils", + "solana-transaction 3.1.0", + "solana-transaction-error 3.3.2", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-sdk-ids" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5d8b9cc68d5c88b062a33e23a6466722467dde0035152d8fb1afbcdf350a5f" +dependencies = [ + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-sdk-ids" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "def234c1956ff616d46c9dd953f251fa7096ddbaa6d52b165218de97882b7280" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-sdk-macro" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86280da8b99d03560f6ab5aca9de2e38805681df34e0bb8f238e69b29433b9df" +dependencies = [ + "bs58", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "solana-sdk-macro" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8765316242300c48242d84a41614cb3388229ec353ba464f6fe62a733e41806f" +dependencies = [ + "bs58", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baa3120b6cdaa270f39444f5093a90a7b03d296d362878f7a6991d6de3bbe496" +dependencies = [ + "libsecp256k1 0.6.0", + "solana-define-syscall 2.3.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce0d2e8d53946f04e789476d6c407e4997b7fb412483df5fc10c075c65cb2edf" +dependencies = [ + "k256", + "solana-define-syscall 5.2.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-seed-derivable" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7bdb72758e3bec33ed0e2658a920f1f35dfb9ed576b951d20d63cb61ecd95c" +dependencies = [ + "solana-derivation-path", +] + +[[package]] +name = "solana-seed-phrase" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc905b200a95f2ea9146e43f2a7181e3aeb55de6bc12afb36462d00a3c7310de" +dependencies = [ + "hmac", + "pbkdf2", + "sha2 0.10.9", +] + +[[package]] +name = "solana-serde" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709a93cab694c70f40b279d497639788fc2ccbcf9b4aa32273d4b361322c02dd" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serde-varint" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a7e155eba458ecfb0107b98236088c3764a09ddf0201ec29e52a0be40857113" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serde-varint" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "950e5b83e839dc0f92c66afc124bb8f40e89bc90f0579e8ec5499296d27f54e3" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serialize-utils" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "817a284b63197d2b27afdba829c5ab34231da4a9b4e763466a003c40ca4f535e" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-serialize-utils" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "761357b0853c9623bf12c1d2314b3d6160a85b087b84c45224fb85766d22616b" +dependencies = [ + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sanitize 3.0.1", +] + +[[package]] +name = "solana-sha256-hasher" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa3feb32c28765f6aa1ce8f3feac30936f16c5c3f7eb73d63a5b8f6f8ecdc44" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", +] + +[[package]] +name = "solana-sha256-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db7dc3011ea4c0334aaaa7e7128cb390ecf546b28d412e9bf2064680f57f588f" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-sha512-hasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11e10e103ab5bd52af341e7bc2f4123a2f4e66bb7ba4e6ca40f1e00cd6314e02" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 5.2.0", + "solana-hash-512", +] + +[[package]] +name = "solana-short-vec" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c54c66f19b9766a56fa0057d060de8378676cb64987533fa088861858fc5a69" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-short-vec" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8250a4495aad49ad20556a607da53bdcb20de78da10b65afbf918b7f1de647" +dependencies = [ + "serde_core", + "wincode", +] + +[[package]] +name = "solana-shred-version" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6c79722e299d957958bf33695f7cd1ef6724ff55563c60fd9e3e24487cccde2" +dependencies = [ + "solana-hard-forks", + "solana-hash 4.5.0", + "solana-sha256-hasher 3.1.0", +] + +[[package]] +name = "solana-signature" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64c8ec8e657aecfc187522fc67495142c12f35e55ddeca8698edbb738b8dbd8c" +dependencies = [ + "five8 0.2.1", + "serde", + "serde-big-array", + "serde_derive", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-signature" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0364c7577c3c82a693ce28a1febc8d1b5d1b0a175fdc2114ae6186b69effe1e" +dependencies = [ + "ed25519-dalek", + "five8 1.0.0", + "rand 0.9.5", + "serde", + "serde-big-array", + "serde_derive", + "solana-sanitize 3.0.1", + "wincode", +] + +[[package]] +name = "solana-signer" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520bd6021163ee517f4bdc7ae03ded904f97e11320001ba0b3355f45eb14f558" +dependencies = [ + "solana-pubkey 4.2.0", + "solana-signature 3.4.1", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-slot-hashes" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c8691982114513763e88d04094c9caa0376b867a29577939011331134c301ce" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 2.3.0", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-hashes" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7ce2b4b8911bf2db3de7b6266e67bfc21a6a9f8c566fb096d9782ca2ad16ee" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-slot-history" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97ccc1b2067ca22754d5283afb2b0126d61eae734fc616d23871b0943b0d935e" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-history" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40427c04d3e808493cb5e3d1a97cef84d7c15cb6f89b15c5684d0d4027105600" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-stable-layout" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f14f7d02af8f2bc1b5efeeae71bc1c2b7f0f65cd75bcc7d8180f2c762a57f54" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-stable-layout" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9f6a291ba063a37780af29e7db14bdd3dc447584d8ba5b3fc4b88e2bbc982fa" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-stake-history" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c736a6aa0e53b9d264d90b06589fc0996f49f882f3e71842ed754fc57ffc1a43" +dependencies = [ + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-stake-interface" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5269e89fde216b4d7e1d1739cf5303f8398a1ff372a81232abbee80e554a838c" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", + "num-traits", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-cpi 2.2.1", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-system-interface 1.0.0", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-stake-interface" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9bc26191b533f9a6e5a14cca05174119819ced680a80febff2f5051a713f0db" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-stake-interface" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252b4291eb25a5a356149ed4d4a940d5f655186210fa84b5d0d8d55c3dd42a81" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-svm-callback" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf863c5b86e90e51c18ed08cfd8e21f9cfa60122d60d6364cde7083bf6de837c" +dependencies = [ + "solana-account 4.3.2", + "solana-clock 3.1.1", + "solana-precompile-error", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-feature-set" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "580d385250ddc3826e5d082b221d9d1047bddcc63ee18313f14dcafb95fdcae5" + +[[package]] +name = "solana-svm-log-collector" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f97c2c829a06a1b3bdbad1f770891768c1f0005b322acd7c192ad92157fe525" +dependencies = [ + "log", +] + +[[package]] +name = "solana-svm-measure" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79ec1451e86552456f1e9a1cc7ffafea01ba3383d8246ba636a11cf286da9fc3" + +[[package]] +name = "solana-svm-timings" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33a2692a88fabf56275bb40c39596d6e550a43f6e56b77fa6f0468e0affd977" +dependencies = [ + "eager", + "enum-iterator", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-transaction" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736d2cec944c6f8f298a7bd8ada5eb318cca9ab859281b1300842fa0e9a25afa" +dependencies = [ + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-transaction 4.1.6", +] + +[[package]] +name = "solana-svm-type-overrides" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74a3ba41956ba930a335589eedf0784dfa4be0527ef236df8ad3996a26b5f19f" +dependencies = [ + "rand 0.9.5", +] + +[[package]] +name = "solana-syscalls" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d31c37dc2425afc13ddb2fc8365db8dbd02ac860a454c25b3897831036a64dd8" +dependencies = [ + "bincode", + "libsecp256k1 0.7.2", + "num-traits", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-blake3-hasher 3.1.0", + "solana-bls12-381-syscall", + "solana-bn254", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-curve25519", + "solana-hash 4.5.0", + "solana-hash-512", + "solana-instruction 3.4.1", + "solana-keccak-hasher 3.1.0", + "solana-poseidon", + "solana-program-entrypoint 3.1.1", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.3.0", + "solana-sha256-hasher 3.1.0", + "solana-sha512-hasher", + "solana-stable-layout 3.0.1", + "solana-stake-interface 4.3.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-type-overrides", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction-context", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "solana-system-interface" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94d7c18cb1a91c6be5f5a8ac9276a1d7c737e39a21beba9ea710ab4b9c63bc90" +dependencies = [ + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-system-interface" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e1790547bfc3061f1ee68ea9d8dc6c973c02a163697b24263a8e9f2e6d4afa2" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-instruction 3.4.1", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", +] + +[[package]] +name = "solana-system-interface" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55b54965bf0b76fa8e2b35376583efddd4d916618cfe595bf48c7d7b55a9e628" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "wincode", +] + +[[package]] +name = "solana-system-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2610e0b091b920da610ad3e5ba850530702f5ac911b4e9dc5ab9a025a772138a" +dependencies = [ + "bincode", + "log", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-fee-calculator 3.2.2", + "solana-instruction 3.4.1", + "solana-nonce 3.2.1", + "solana-nonce-account", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-transaction-context", +] + +[[package]] +name = "solana-sysvar" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c3595f95069f3d90f275bb9bd235a1973c4d059028b0a7f81baca2703815db" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 2.3.0", + "solana-clock 2.2.3", + "solana-define-syscall 2.3.0", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-instructions-sysvar 2.2.2", + "solana-last-restart-slot 2.2.1", + "solana-program-entrypoint 2.3.0", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stake-interface 1.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-sysvar" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6690d3dd88f15c21edff68eb391ef8800df7a1f5cec84ee3e8d1abf05affdf74" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-define-syscall 4.0.1", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-calculator 3.2.2", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 4.2.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-sysvar" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ada7045bbfdd802af08fbc9c7e2b56ddabb20599d22e4c3840fcef5e7afb8324" +dependencies = [ + "base64 0.22.1", + "bincode", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-define-syscall 5.2.0", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-calculator 3.2.2", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stake-history", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-sysvar-id" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5762b273d3325b047cfda250787f8d796d781746860d5d0a746ee29f3e8812c1" +dependencies = [ + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-sysvar-id" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17358d1e9a13e5b9c2264d301102126cf11a47fd394cdf3dec174fe7bc96e1de" +dependencies = [ + "solana-address 2.6.1", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-time-utils" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ced92c60aa76ec4780a9d93f3bd64dfa916e1b998eacc6f1c110f3f444f02c9" + +[[package]] +name = "solana-transaction" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96697cff5075a028265324255efed226099f6d761ca67342b230d09f72cc48d2" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-message 3.1.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-signer", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-transaction" +version = "4.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8008008a75246adaf8b67411093a6d78db8232c74b00eff6041fd1da73679e7" +dependencies = [ + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-message 4.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-signer", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-transaction-context" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d61811155533aebcf806e694d3ed91be7fc168dc9bdcf25e8eb98b9234c7c3" +dependencies = [ + "bincode", + "qualifier_attr", + "serde", + "solana-account 4.3.2", + "solana-instruction 3.4.1", + "solana-instructions-sysvar 4.0.0", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-transaction-error" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222a9dc8fdb61c6088baab34fc3a8b8473a03a7a5fd404ed8dd502fa79b67cb1" +dependencies = [ + "solana-instruction 2.3.3", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-transaction-error" +version = "3.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "054e54d15164b0c34cb744600a1a0330e9fd97a12d979f2eb95904c807a07713" +dependencies = [ + "serde", + "serde_derive", + "solana-instruction-error", + "solana-sanitize 3.0.1", +] + +[[package]] +name = "solana-vote-interface" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b80d57478d6599d30acc31cc5ae7f93ec2361a06aefe8ea79bc81739a08af4c3" +dependencies = [ + "bincode", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-decode-error", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serde-varint 2.2.2", + "solana-serialize-utils 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-vote-interface" +version = "6.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13a7a204b455a53fe8c9a26a6885391a5896835e06694dbe0cf37c580f82f128" +dependencies = [ + "bincode", + "cfg_eval", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "serde_with", + "solana-clock 3.1.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-serde-varint 3.0.1", + "solana-serialize-utils 3.1.2", + "solana-short-vec 3.2.2", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-vote-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69c6faf8370369c45bc14eeca8dc0249450b940b57dcfcec0103403f9feaf88a" +dependencies = [ + "agave-feature-set", + "bincode", + "log", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-bls-signatures", + "solana-clock 3.1.1", + "solana-epoch-schedule 3.2.0", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", + "solana-system-interface 3.2.0", + "solana-transaction-context", + "solana-vote-interface 6.0.3", +] + +[[package]] +name = "solana-zk-elgamal-proof-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d55e2d0d7f884295989dae8b7e0b6d7a46d87ed2d917113007383261e5e93d" +dependencies = [ + "bytemuck", + "solana-instruction 3.4.1", + "solana-program-runtime", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-zk-sdk", +] + +[[package]] +name = "solana-zk-sdk" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09670ff59f60e6ddc2209c2e4353992a9b9f01d4e244f3e9d67bd5146e33d388" +dependencies = [ + "aes-gcm-siv", + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "itertools 0.14.0", + "merlin", + "num-derive", + "num-traits", + "rand 0.8.8", + "serde", + "serde_derive", + "serde_json", + "sha3", + "solana-address 2.6.1", + "solana-derivation-path", + "solana-instruction 3.4.1", + "solana-sdk-ids 3.1.0", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature 3.4.1", + "solana-signer", + "subtle", + "thiserror 2.0.20", + "zeroize", +] + +[[package]] +name = "solana-zk-token-proof-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc32fcd9ff8bb90837755deccefdb20518484626c0a9d0649a36e5fcb0fcf520" +dependencies = [ + "solana-program-runtime", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "spl-associated-token-account-interface" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6bbe0794e532ac08428d3abf5bf8ae75bd81dfddd785c388e326c00c92c6f5" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[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.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tar" +version = "0.4.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6221d9a6003c78398e3b239969f352578258df48c8eb051caadae0015bc840" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "test-utils" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "ephemeral-rollups-sdk 0.16.2", + "magicsvm", + "serde_json", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-signer", + "solana-transaction 4.1.6", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" +dependencies = [ + "thiserror-impl 2.0.20", +] + +[[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.119", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "tinyvec" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee" + +[[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 = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.25.15+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1340ea94a5856333492c9064b02c778b191dd2c853778d9609debdcdfea3a614" +dependencies = [ + "indexmap", + "toml_datetime", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" +dependencies = [ + "winnow", +] + +[[package]] +name = "typed-path" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" + +[[package]] +name = "typenum" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-segmentation" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +dependencies = [ + "void", +] + +[[package]] +name = "ureq" +version = "3.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a7ac20be9b7726e0bbdbf974c059676d9acb1cd414961f570a4e8231cacd7fc" +dependencies = [ + "base64 0.23.1", + "log", + "percent-encoding", + "ureq-proto", + "utf8-zero", +] + +[[package]] +name = "ureq-proto" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0809a01d1ca5a51ca70db32bb2a19157582a526505ef3c19e3b343a59aa5ad" +dependencies = [ + "base64 0.23.1", + "http", + "httparse", + "log", +] + +[[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 = "utf8-zero" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e" + +[[package]] +name = "uuid" +version = "1.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ef6dac1e96601b4fb3acccccff2139741fcb757cb9a36089bf5be91cfb285ce" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[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.4+wasi-0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aecb87a33d3b0c5e3b7aa46336eaf486cffafbd281b195e4c8b80d50df2351bf" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a690d511e3c1a8b3a55e33511e3c2c00c78415cd23650f32b808627f5696b9ed" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "411e4887f0071ef2d2164a9d5fdf2d20efbef78fccd3a78b0c10a1dc5295e48a" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 3.0.5", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81941cd78d0c92026c33e5e01312845a4cb1e9af3407f9134b100dd03144103e" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "web-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fbddc4a036f00ec4f18c83445bd3115cb306a91da554919a099d9222fe4a7f8" +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-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "wincode" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66d967db7705dc29120bb6e8ce5b5a2e27734ed5976d1c904e95bd238d1c3c5a" +dependencies = [ + "bv", + "pastey", + "proc-macro2", + "quote", + "thiserror 2.0.20", + "wincode-derive", +] + +[[package]] +name = "wincode-derive" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15ab90b719560d0fda79c74550ad1c948d17b118765942838055ebaf34d67071" +dependencies = [ + "darling 0.23.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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 = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "xattr" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" +dependencies = [ + "libc", + "rustix", +] + +[[package]] +name = "zerocopy" +version = "0.8.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d35102a9f36d089ccae9e4c6802bc118be4487b80aaffc0ab4e0cf5ce92d2873" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c01f5ab44258da43cf276c74a2763db2ff3969c9c652c3f2de07041d0b2bc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zeroize" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zip" +version = "8.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b" +dependencies = [ + "crc32fast", + "flate2", + "indexmap", + "memchr", + "typed-path", + "zopfli", +] + +[[package]] +name = "zlib-rs" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12" + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" + +[[package]] +name = "zopfli" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" +dependencies = [ + "bumpalo", + "crc32fast", + "log", + "simd-adler32", +] diff --git a/magic-actions/anchor/tests-magicsvm-rs/Cargo.toml b/magic-actions/anchor/tests-magicsvm-rs/Cargo.toml new file mode 100644 index 00000000..efeb4906 --- /dev/null +++ b/magic-actions/anchor/tests-magicsvm-rs/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "magic-actions-magicsvm-tests" +version = "0.1.0" +edition = "2021" +publish = false + +[workspace] + +[dev-dependencies] +anchor-lang = "=1.0.2" +ephemeral-rollups-sdk = { version = "0.16.2", features = ["anchor"] } +magic-actions = { path = "../programs/magic-actions", features = ["no-entrypoint"] } +magicsvm = "0.2.0" +test-utils = { path = "../../../test-utils/rust", features = ["anchor"] } +solana-address = "~2.6.1" +solana-instruction = { version = "~3.4.0", features = ["bincode"] } +solana-keypair = "3.1.2" +solana-message = "4.2.4" +solana-native-token = "3.0.0" +solana-signer = "3.0.1" +solana-transaction = { version = "4.1.5", features = ["verify"] } +solana-transaction-error = "~3.3.1" diff --git a/magic-actions/anchor/tests-magicsvm-rs/tests/magicsvm.rs b/magic-actions/anchor/tests-magicsvm-rs/tests/magicsvm.rs new file mode 100644 index 00000000..219785f2 --- /dev/null +++ b/magic-actions/anchor/tests-magicsvm-rs/tests/magicsvm.rs @@ -0,0 +1,380 @@ +use { + anchor_lang::{prelude::Pubkey, system_program, Id, InstructionData, ToAccountMetas}, + ephemeral_rollups_sdk::{ + anchor::{DelegationProgram, MagicProgram}, + consts::MAGIC_CONTEXT_ID, + dlp_api::discriminator::DlpDiscriminator, + pda::{ + delegate_buffer_pda_from_delegated_account_and_owner_program, + delegation_metadata_pda_from_delegated_account, + delegation_record_pda_from_delegated_account, ephemeral_balance_pda_from_payer, + }, + }, + magic_actions::{ + self, accounts, instruction, ACTION_ESCROW_INDEX, COUNTER_SEED, LEADERBOARD_SEED, + }, + magicsvm::{MagicSVM, TransactionTarget}, + solana_address::Address, + solana_instruction::{AccountMeta, Instruction}, + solana_keypair::Keypair, + solana_message::Message, + solana_native_token::LAMPORTS_PER_SOL, + solana_signer::Signer, + solana_transaction::Transaction, + solana_transaction_error::TransactionError, + std::path::PathBuf, + test_utils::{ + as_address, as_pubkey, client_ix, program_id_from_idl, program_so_path, send_ixs, + }, +}; + +fn program_so() -> PathBuf { + program_so_path(env!("CARGO_MANIFEST_DIR"), "magic_actions") +} + +fn program_id() -> Pubkey { + as_pubkey(&program_id_from_idl( + env!("CARGO_MANIFEST_DIR"), + "magic_actions.json", + )) +} + +fn program_address() -> Address { + as_address(program_id()) +} + +fn ix(data: impl InstructionData, accounts: impl ToAccountMetas) -> Instruction { + client_ix(program_address(), data, accounts) +} + +fn pda(seeds: &[&[u8]]) -> Pubkey { + Pubkey::find_program_address(seeds, &program_id()).0 +} + +fn send( + svm: &mut MagicSVM, + target: TransactionTarget, + payer: &Keypair, + instructions: &[Instruction], +) { + send_ixs(svm, target, &[payer], instructions, "transaction"); +} + +fn send_expecting_failure( + svm: &mut MagicSVM, + payer: &Keypair, + extra: &[&Keypair], + instructions: &[Instruction], +) -> (TransactionError, String) { + let blockhash = svm.latest_blockhash_for(TransactionTarget::Base); + let mut tx = Transaction::new_unsigned(Message::new(instructions, Some(&payer.pubkey()))); + let mut signers = Vec::with_capacity(1 + extra.len()); + signers.push(payer); + signers.extend(extra.iter().copied()); + tx.partial_sign(&signers, blockhash); + let err = svm + .send_transaction_to(TransactionTarget::Base, tx) + .expect_err("expected FailedTransactionMetadata"); + let logs = err.meta.logs.join("\n"); + (err.err, logs) +} + +fn initialize_ix(counter: Pubkey, leaderboard: Pubkey, user: Pubkey) -> Instruction { + ix( + instruction::Initialize {}, + accounts::Initialize { + counter, + leaderboard, + user, + system_program: system_program::ID, + }, + ) +} + +fn increment_ix(counter: Pubkey) -> Instruction { + ix(instruction::Increment {}, accounts::Increment { counter }) +} + +fn update_leaderboard_ix( + leaderboard: Pubkey, + counter: Pubkey, + escrow_auth: Pubkey, + escrow: Pubkey, +) -> Instruction { + ix( + instruction::UpdateLeaderboard {}, + accounts::UpdateLeaderboard { + leaderboard, + counter, + escrow_auth, + escrow, + }, + ) +} + +fn delegate_ix(payer: Pubkey, counter: Pubkey, validator: Address) -> Instruction { + let mut instruction = ix( + instruction::Delegate {}, + accounts::DelegateCounter { + payer, + buffer_pda: delegate_buffer_pda_from_delegated_account_and_owner_program( + &counter, + &program_id(), + ), + delegation_record_pda: delegation_record_pda_from_delegated_account(&counter), + delegation_metadata_pda: delegation_metadata_pda_from_delegated_account(&counter), + pda: counter, + owner_program: program_id(), + delegation_program: DelegationProgram::id(), + system_program: system_program::ID, + }, + ); + instruction + .accounts + .push(AccountMeta::new_readonly(validator, false)); + instruction +} + +fn undelegate_ix(payer: Pubkey, counter: Pubkey) -> Instruction { + ix( + instruction::Undelegate {}, + accounts::UndelegateCounter { + payer, + counter, + magic_program: MagicProgram::id(), + magic_context: MAGIC_CONTEXT_ID, + }, + ) +} + +fn commit_and_update_leaderboard_ix( + payer: Pubkey, + counter: Pubkey, + leaderboard: Pubkey, +) -> Instruction { + ix( + instruction::CommitAndUpdateLeaderboard {}, + accounts::CommitAndUpdateLeaderboard { + payer, + counter, + leaderboard, + program_id: program_id(), + magic_program: MagicProgram::id(), + magic_context: MAGIC_CONTEXT_ID, + }, + ) +} + +fn top_up_escrow_ix(payer: Address, escrow: Address) -> Instruction { + let mut data = DlpDiscriminator::TopUpEphemeralBalance.to_vec(); + data.extend_from_slice(&10_000u64.to_le_bytes()); + data.push(ACTION_ESCROW_INDEX); + Instruction { + program_id: as_address(DelegationProgram::id()), + accounts: vec![ + AccountMeta::new(payer, true), + AccountMeta::new_readonly(payer, false), + AccountMeta::new(escrow, false), + AccountMeta::new_readonly(as_address(system_program::ID), false), + ], + data, + } +} + +fn close_escrow_ix(payer: Address, escrow: Address) -> Instruction { + Instruction { + program_id: as_address(DelegationProgram::id()), + accounts: vec![ + AccountMeta::new_readonly(payer, true), + AccountMeta::new(escrow, false), + AccountMeta::new_readonly(as_address(system_program::ID), false), + ], + data: [ + DlpDiscriminator::CloseEphemeralBalance.to_vec(), + vec![ACTION_ESCROW_INDEX], + ] + .concat(), + } +} + +fn read_u64(data: &[u8], offset: usize) -> u64 { + u64::from_le_bytes(data[offset..offset + 8].try_into().unwrap()) +} + +#[test] +fn magic_actions_local_sequence() { + let payer = Keypair::new(); + let mut svm = MagicSVM::new(); + let counter = pda(&[COUNTER_SEED]); + let leaderboard = pda(&[LEADERBOARD_SEED]); + let payer_pk = as_pubkey(&payer.pubkey()); + let escrow = ephemeral_balance_pda_from_payer(&payer_pk, ACTION_ESCROW_INDEX); + let counter_address = as_address(counter); + let leaderboard_address = as_address(leaderboard); + let escrow_address = as_address(escrow); + let validator = svm.validator_identity(); + + svm.add_program_from_file(program_address(), program_so()) + .unwrap(); + svm.airdrop(&payer.pubkey(), 10 * LAMPORTS_PER_SOL).unwrap(); + + send( + &mut svm, + TransactionTarget::Base, + &payer, + &[initialize_ix(counter, leaderboard, payer_pk)], + ); + assert_eq!( + read_u64(&svm.get_account(&counter_address).unwrap().data, 8), + 0 + ); + assert_eq!( + read_u64(&svm.get_account(&leaderboard_address).unwrap().data, 8), + 0 + ); + + send( + &mut svm, + TransactionTarget::Base, + &payer, + &[increment_ix(counter)], + ); + assert_eq!( + read_u64(&svm.get_account(&counter_address).unwrap().data, 8), + 1 + ); + + let (err, logs) = send_expecting_failure( + &mut svm, + &payer, + &[], + &[update_leaderboard_ix( + leaderboard, + counter, + payer_pk, + escrow, + )], + ); + let blob = format!("{err:?}\n{logs}"); + assert!( + matches!(err, TransactionError::SignatureFailure) + || blob.to_lowercase().contains("signature") + || blob.to_lowercase().contains("unknown signer"), + "expected signature verification failure, got {blob}" + ); + + let invalid_escrow = Keypair::new(); + let (_, logs) = send_expecting_failure( + &mut svm, + &payer, + &[&invalid_escrow], + &[update_leaderboard_ix( + leaderboard, + leaderboard, + payer_pk, + as_pubkey(&invalid_escrow.pubkey()), + )], + ); + assert!( + logs.contains("ConstraintSeeds"), + "expected ConstraintSeeds, logs: {logs}" + ); + + let invalid_escrow = Keypair::new(); + let (_, logs) = send_expecting_failure( + &mut svm, + &payer, + &[&invalid_escrow], + &[update_leaderboard_ix( + leaderboard, + counter, + payer_pk, + as_pubkey(&invalid_escrow.pubkey()), + )], + ); + assert!( + logs.contains("ConstraintAddress"), + "expected ConstraintAddress, logs: {logs}" + ); + + send( + &mut svm, + TransactionTarget::Base, + &payer, + &[ + top_up_escrow_ix(payer.pubkey(), escrow_address), + delegate_ix(payer_pk, counter, validator), + ], + ); + assert_eq!( + svm.get_account(&counter_address).unwrap().owner, + as_address(DelegationProgram::id()) + ); + assert_eq!( + read_u64( + &svm.get_account_for(TransactionTarget::Ephemeral, &counter_address) + .unwrap() + .data, + 8 + ), + 1 + ); + assert!(svm.get_account(&escrow_address).unwrap().lamports > 0); + + send( + &mut svm, + TransactionTarget::Ephemeral, + &payer, + &[increment_ix(counter)], + ); + assert_eq!( + read_u64( + &svm.get_account_for(TransactionTarget::Ephemeral, &counter_address) + .unwrap() + .data, + 8 + ), + 2 + ); + + send( + &mut svm, + TransactionTarget::Ephemeral, + &payer, + &[commit_and_update_leaderboard_ix( + payer_pk, + counter, + leaderboard, + )], + ); + let er_count = read_u64( + &svm.get_account_for(TransactionTarget::Ephemeral, &counter_address) + .unwrap() + .data, + 8, + ); + let high_score = read_u64(&svm.get_account(&leaderboard_address).unwrap().data, 8); + assert_eq!( + high_score, er_count, + "post-commit magic action must update the base leaderboard from the committed counter" + ); + + send( + &mut svm, + TransactionTarget::Ephemeral, + &payer, + &[undelegate_ix(payer_pk, counter)], + ); + let base = svm.get_account(&counter_address).unwrap(); + assert_eq!(base.owner, program_address()); + assert_eq!(read_u64(&base.data, 8), 2); + + send( + &mut svm, + TransactionTarget::Base, + &payer, + &[close_escrow_ix(payer.pubkey(), escrow_address)], + ); + let closed = svm.get_account(&escrow_address); + assert!(closed.is_none() || closed.unwrap().lamports == 0); +} diff --git a/magic-actions/anchor/tests-magicsvm/magic-actions.ts b/magic-actions/anchor/tests-magicsvm/magic-actions.ts new file mode 100644 index 00000000..8ffcbc7b --- /dev/null +++ b/magic-actions/anchor/tests-magicsvm/magic-actions.ts @@ -0,0 +1,228 @@ +import * as anchor from "@coral-xyz/anchor"; +import { strict as assert } from "assert"; +import { + createCloseEscrowInstruction, + createTopUpEscrowInstruction, + escrowPdaFromEscrowAuthority, +} from "@magicblock-labs/ephemeral-rollups-sdk"; +import { + accountOwner, + bootAnchorSvm, + DELEGATION_PROGRAM_ID, + isDelegated, + readU64le, + requireAccount, + sendExpectingFailure, + sendSvmIx, +} from "@magicblock-labs/test-utils"; +import { LAMPORTS_PER_SOL, PublicKey } from "@solana/web3.js"; +import { MagicActions } from "../target/types/magic_actions"; + +const COUNTER_SEED = "counter"; +const SEED_LEADERBOARD = "leaderboard"; + +function failedBlob(result: { + err(): unknown; + meta(): { logs(): string[] }; + toString(): string; +}): string { + const logs = result.meta().logs().join("\n"); + const err = JSON.stringify(result.err()); + const raw = `${result.toString()}\n${err}\n${logs}`; + if (/SignatureFailure|signature/i.test(raw)) { + return `signature verification failed\n${raw}`; + } + return raw; +} + +describe("magic-actions-local", () => { + const { svm, payer, program, validator } = bootAnchorSvm({ + fromDir: __dirname, + programName: "magic_actions", + airdropLamports: BigInt(LAMPORTS_PER_SOL) * 10n, + }); + const programId = program.programId; + const [pda] = PublicKey.findProgramAddressSync( + [Buffer.from(COUNTER_SEED)], + programId, + ); + const [leaderboardPda] = PublicKey.findProgramAddressSync( + [Buffer.from(SEED_LEADERBOARD)], + programId, + ); + const escrow = escrowPdaFromEscrowAuthority(payer.publicKey); + const validatorKey = new PublicKey(validator); + + function printCounter(message: string) { + const delegated = isDelegated(svm, pda); + const highScore = readU64le(svm, leaderboardPda, "base"); + + let counterBase = ""; + let counterER = ""; + if (delegated) { + counterBase = ""; + const erInfo = svm.getAccountFor(pda, { target: "ephemeral" }); + counterER = erInfo.exists ? readU64le(svm, pda, "ephemeral").toString() : "0"; + } else if (svm.getAccountFor(pda, { target: "base" }).exists) { + counterBase = readU64le(svm, pda, "base").toString(); + counterER = ""; + } + console.log("--------------------------------"); + console.log(`| ${delegated ? "✅ Delegated" : "❌ Not Delegated"}`); + console.log("--------------------------------"); + console.log("| Counter (Base): ", counterBase); + console.log("| Counter (ER): ", counterER); + console.log("| High Score: ", highScore.toString()); + console.log("--------------------------------"); + console.log(message); + } + + it("Initialize Counter", async () => { + const ix = await program.methods + .initialize() + .accounts({ + counter: pda, + user: payer.publicKey, + systemProgram: anchor.web3.SystemProgram.programId, + } as any) + .instruction(); + sendSvmIx(svm, [payer], ix, "base"); + requireAccount(svm, pda, "base", "counter"); + requireAccount(svm, leaderboardPda, "base", "leaderboard"); + assert.equal(readU64le(svm, pda, "base"), 0n); + assert.equal(readU64le(svm, leaderboardPda, "base"), 0n); + printCounter("✅ Initialized"); + }); + + it("Increment Counter on base layer", async () => { + const ix = await program.methods + .increment() + .accounts({ counter: pda }) + .instruction(); + sendSvmIx(svm, [payer], ix, "base"); + assert.equal(readU64le(svm, pda, "base"), 1n); + console.log("✅ Incremented (base)"); + }); + + it("Reject direct leaderboard updates", async () => { + const ix = await program.methods + .updateLeaderboard() + .accounts({ + counter: pda, + escrowAuth: payer.publicKey, + escrow, + }) + .instruction(); + const blob = failedBlob(sendExpectingFailure(svm, [payer], ix, "base")); + assert.match(blob, /signature verification failed|unknown signer/i); + }); + + it("Reject an incorrect counter PDA", async () => { + const invalidEscrow = anchor.web3.Keypair.generate(); + const ix = await program.methods + .updateLeaderboard() + .accounts({ + counter: leaderboardPda, + escrowAuth: payer.publicKey, + escrow: invalidEscrow.publicKey, + }) + .instruction(); + const blob = failedBlob( + sendExpectingFailure(svm, [payer, invalidEscrow], ix, "base"), + ); + assert.match(blob, /Error Code: ConstraintSeeds/); + }); + + it("Reject an incorrect escrow PDA", async () => { + const invalidEscrow = anchor.web3.Keypair.generate(); + const ix = await program.methods + .updateLeaderboard() + .accounts({ + counter: pda, + escrowAuth: payer.publicKey, + escrow: invalidEscrow.publicKey, + }) + .instruction(); + const blob = failedBlob( + sendExpectingFailure(svm, [payer, invalidEscrow], ix, "base"), + ); + assert.match(blob, /Error Code: ConstraintAddress/); + }); + + it("Delegate Counter and create Escrow", async () => { + const remainingAccounts = [ + { pubkey: validatorKey, isSigner: false, isWritable: false }, + ]; + const topUpIx = createTopUpEscrowInstruction( + escrow, + payer.publicKey, + payer.publicKey, + 10000, + ); + const delegateIx = await program.methods + .delegate() + .accounts({ payer: payer.publicKey, pda }) + .remainingAccounts(remainingAccounts) + .instruction(); + sendSvmIx(svm, [payer], [topUpIx, delegateIx], "base"); + + assert.equal(accountOwner(svm, pda, "base"), DELEGATION_PROGRAM_ID.toBase58()); + assert.ok(isDelegated(svm, pda)); + assert.equal(readU64le(svm, pda, "ephemeral"), 1n); + const escrowAccount = requireAccount(svm, escrow, "base", "escrow"); + assert.ok(escrowAccount.lamports > 0n); + console.log("✅ Delegated"); + }); + + it("Increment Counter in ER", async () => { + const ix = await program.methods + .increment() + .accounts({ counter: pda }) + .instruction(); + sendSvmIx(svm, [payer], ix, "ephemeral"); + assert.equal(readU64le(svm, pda, "ephemeral"), 2n); + printCounter("✅ Incremented (ER)"); + }); + + it("Update Leaderboard while delegated", async () => { + const ix = await program.methods + .commitAndUpdateLeaderboard() + .accounts({ + payer: payer.publicKey, + programId, + } as any) + .instruction(); + sendSvmIx(svm, [payer], ix, "ephemeral"); + + const highScore = readU64le(svm, leaderboardPda, "base"); + const erCount = readU64le(svm, pda, "ephemeral"); + assert.equal( + highScore, + erCount, + "post-commit magic action must update the base leaderboard from the committed counter", + ); + printCounter("✅ Updated leaderboard while delegated"); + }); + + it("Undelegate Counter", async () => { + const ix = await program.methods + .undelegate() + .accounts({ payer: payer.publicKey }) + .instruction(); + sendSvmIx(svm, [payer], ix, "ephemeral"); + assert.equal(accountOwner(svm, pda, "base"), programId.toBase58()); + assert.equal(readU64le(svm, pda, "base"), 2n); + printCounter("✅ Undelegated"); + }); + + it("Close Escrow", async () => { + const ix = createCloseEscrowInstruction(escrow, payer.publicKey); + sendSvmIx(svm, [payer], ix, "base"); + const escrowAccount = svm.getAccountFor(escrow, { target: "base" }); + assert.ok( + !escrowAccount.exists || escrowAccount.lamports === 0n, + "escrow should be closed", + ); + console.log("✅ Escrow closed"); + }); +}); diff --git a/magic-actions/anchor/tsconfig.json b/magic-actions/anchor/tsconfig.json index cd5d2e3d..d93d6f9e 100644 --- a/magic-actions/anchor/tsconfig.json +++ b/magic-actions/anchor/tsconfig.json @@ -2,9 +2,10 @@ "compilerOptions": { "types": ["mocha", "chai"], "typeRoots": ["./node_modules/@types"], - "lib": ["es2015"], + "lib": ["es2020"], "module": "commonjs", - "target": "es6", - "esModuleInterop": true + "target": "es2020", + "esModuleInterop": true, + "skipLibCheck": true } } diff --git a/magic-actions/anchor/yarn.lock b/magic-actions/anchor/yarn.lock index c87d3724..d9247175 100644 --- a/magic-actions/anchor/yarn.lock +++ b/magic-actions/anchor/yarn.lock @@ -12,7 +12,7 @@ resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== -"@coral-xyz/anchor@^0.32.1": +"@coral-xyz/anchor@0.32.1", "@coral-xyz/anchor@^0.32.1": version "0.32.1" resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== @@ -53,6 +53,54 @@ tweetnacl "^1.0.3" typescript "^5.3.0" +"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" + integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== + +"@magicblock-labs/magicsvm-darwin-x64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" + integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== + +"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" + integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== + +"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" + integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== + +"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" + integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== + +"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" + integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== + +"@magicblock-labs/magicsvm@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" + integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== + dependencies: + "@solana/web3.js" "3.0.0-rc.3" + optionalDependencies: + "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" + "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" + +"@magicblock-labs/test-utils@link:../../test-utils/ts": + version "0.0.0" + uid "" + "@noble/curves@^1.4.2": version "1.9.7" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" @@ -105,6 +153,61 @@ hash.js "^1.1.7" node-fetch "^2.7.0" +"@solana-program/address-lookup-table@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" + integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== + +"@solana-program/compute-budget@^0.18.0": + version "0.18.1" + resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" + integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== + +"@solana-program/loader-v3@^0.6.0": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" + integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== + +"@solana-program/stake@^0.9.0": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" + integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== + +"@solana-program/system@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" + integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== + +"@solana/accounts@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" + integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/addresses@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" + integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" + integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/buffer-layout@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" @@ -119,6 +222,30 @@ dependencies: "@solana/errors" "2.3.0" +"@solana/codecs-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" + integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== + dependencies: + "@solana/errors" "8.3.0" + +"@solana/codecs-data-structures@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" + integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/codecs-numbers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" + integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/codecs-numbers@^2.1.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" @@ -127,6 +254,27 @@ "@solana/codecs-core" "2.3.0" "@solana/errors" "2.3.0" +"@solana/codecs-strings@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" + integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/codecs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" + integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/options" "8.3.0" + "@solana/errors@2.3.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.3.0.tgz#4ac9380343dbeffb9dffbcb77c28d0e457c5fa31" @@ -135,6 +283,429 @@ chalk "^5.4.1" commander "^14.0.0" +"@solana/errors@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" + integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== + dependencies: + chalk "5.6.2" + commander "15.0.0" + +"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" + integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== + +"@solana/fixed-points@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" + integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/functional@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" + integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== + +"@solana/instruction-plans@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" + integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/instructions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" + integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/keys@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" + integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/promises" "8.3.0" + +"@solana/kit@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" + integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/plugin-core" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/program-client-core" "8.3.0" + "@solana/programs" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/sysvars" "8.3.0" + "@solana/transaction-confirmation" "8.3.0" + "@solana/transaction-introspection" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/nominal-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" + integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== + +"@solana/offchain-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" + integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/options@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" + integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/plugin-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" + integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== + +"@solana/plugin-interfaces@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" + integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/program-client-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" + integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/signers" "8.3.0" + +"@solana/programs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" + integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/promises@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" + integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== + +"@solana/rpc-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" + integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/rpc-parsed-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" + integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== + +"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" + integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== + dependencies: + "@solana/errors" "8.3.0" + +"@solana/rpc-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" + integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-subscriptions-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" + integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/rpc-subscriptions-channel-websocket@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" + integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/subscribable" "8.3.0" + ws "^8.21.3" + +"@solana/rpc-subscriptions-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" + integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-subscriptions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" + integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions-api" "8.3.0" + "@solana/rpc-subscriptions-channel-websocket" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-transformers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" + integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/rpc-transport-http@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" + integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + undici-types "^8.10.2" + +"@solana/rpc-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" + integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/rpc@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" + integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-transport-http" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/signers@8.3.0", "@solana/signers@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" + integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/subscribable@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" + integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + +"@solana/sysvars@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" + integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/transaction-confirmation@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" + integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/transaction-introspection@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" + integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/transaction-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" + integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/transactions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" + integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + +"@solana/web3.js@3.0.0-rc.3": + version "3.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" + integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== + dependencies: + "@noble/curves" "^1.4.2" + "@noble/hashes" "^1.4.0" + "@solana-program/address-lookup-table" "^0.14.0" + "@solana-program/compute-budget" "^0.18.0" + "@solana-program/loader-v3" "^0.6.0" + "@solana-program/stake" "^0.9.0" + "@solana-program/system" "^0.14.0" + "@solana/assertions" "^8.2.0" + "@solana/fast-stable-stringify" "^8.2.0" + "@solana/kit" "^8.2.0" + "@solana/rpc-spec-types" "^8.2.0" + "@solana/signers" "^8.2.0" + "@solana/web3.js@^1.69.0", "@solana/web3.js@^1.98.0", "@solana/web3.js@^1.98.2": version "1.98.4" resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" @@ -427,6 +998,11 @@ chai@^4.3.4: pathval "^1.1.1" type-detect "^4.1.0" +chalk@5.6.2, chalk@^5.4.1: + version "5.6.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" + integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== + chalk@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -435,11 +1011,6 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - check-error@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" @@ -483,6 +1054,11 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +commander@15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" + integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== + commander@^14.0.0: version "14.0.2" resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e" @@ -1199,6 +1775,11 @@ typescript@^5.3.0, typescript@^5.7.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== +undici-types@^8.10.2: + version "8.10.2" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" + integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== + undici-types@~7.16.0: version "7.16.0" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" @@ -1260,6 +1841,11 @@ ws@^7.5.10: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== +ws@^8.21.3: + version "8.21.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" + integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== + ws@^8.5.0: version "8.18.3" resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" diff --git a/oncurve-delegation/client/package.json b/oncurve-delegation/client/package.json index a01584c5..36db575c 100644 --- a/oncurve-delegation/client/package.json +++ b/oncurve-delegation/client/package.json @@ -6,6 +6,7 @@ "dependencies": { "@magicblock-labs/ephemeral-rollups-kit": "0.14.3", "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3", + "@magicblock-labs/magicsvm": "0.2.0", "@solana-program/system": "^0.9.0", "@solana/buffer-layout": "^4.0.1", "@solana/kit": "^4.0.0", @@ -20,7 +21,9 @@ "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh oncurve-delegation", "test": "yarn test:local", "test:web3js": "npx vitest run ./tests/web3js", - "build": "echo \"No program to build — SDK integration tests only\"", + "test:magicsvm": "npx vitest run ./tests-magicsvm/oncurve-delegation.test.ts", + "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture", + "build": "echo \"No program to build \u2014 SDK integration tests only\"", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w" }, @@ -34,7 +37,8 @@ "ts-mocha": "^11.1.0", "ts-node": "^10.9.2", "typescript": "^5.8.3", - "vitest": "^3.2.4" + "vitest": "^3.2.4", + "@magicblock-labs/test-utils": "link:../../test-utils/ts" }, "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" } diff --git a/oncurve-delegation/client/tests-magicsvm-rs/Cargo.lock b/oncurve-delegation/client/tests-magicsvm-rs/Cargo.lock new file mode 100644 index 00000000..af06d09c --- /dev/null +++ b/oncurve-delegation/client/tests-magicsvm-rs/Cargo.lock @@ -0,0 +1,6220 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common 0.1.7", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures 0.2.17", +] + +[[package]] +name = "aes-gcm-siv" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae0784134ba9375416d469ec31e7c5f9fa94405049cf08c5ce5b4698be673e0d" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "polyval", + "subtle", + "zeroize", +] + +[[package]] +name = "agave-feature-set" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e724c6d41535d61eb4cba970716f6cfcef8d3f4d15750488f77a7630faab680" +dependencies = [ + "ahash 0.8.12", + "solana-epoch-schedule 3.2.0", + "solana-hash 4.5.0", + "solana-keypair", + "solana-pubkey 4.2.0", + "solana-sha256-hasher 3.1.0", + "solana-svm-feature-set", +] + +[[package]] +name = "agave-reserved-account-keys" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa474270f9cd8d71089979f1ad8e31c2eccde8b32d1ca03f33fe1123104d562" +dependencies = [ + "agave-feature-set", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "agave-transaction-view" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11af131e96e1a0df153db2d673a28293d171da78056104ec8e0d396e2bdf305b" +dependencies = [ + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-packet 4.2.0", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-svm-transaction", + "solana-transaction 4.1.6", +] + +[[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", + "getrandom 0.3.4", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-bn254" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-std 0.5.0", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", + "itertools 0.13.0", + "num-bigint 0.4.8", + "num-integer", + "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 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.8", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm 0.5.0", + "ark-ff-macros 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "educe", + "itertools 0.13.0", + "num-bigint 0.4.8", + "num-traits", + "paste", + "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-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive 0.4.2", + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint 0.4.8", +] + +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-serialize-derive 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "num-bigint 0.4.8", +] + +[[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-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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.8", +] + +[[package]] +name = "ark-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" +dependencies = [ + "num-traits", + "rand 0.8.8", +] + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" + +[[package]] +name = "ascii" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[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.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" + +[[package]] +name = "bitvec" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddcec3d12c579d40898fe0a9a358a803c23e9c52ca3c425707f81c9436211837" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake3" +version = "1.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d9e454fc11f76977dc803893aff6304ed33d6a26efae8696573bea74baa27ae" +dependencies = [ + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "cpufeatures 0.3.1", + "digest 0.11.3", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "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-buffer" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "blst" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20659f9bbee16cbbd2f7393e40ab6309f5a98f76a2eb57a995ec508b72387fe" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "blstrs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a8a8ed6fefbeef4a8c7b460e4110e12c5e22a5b7cf32621aae6ad650c4dcf29" +dependencies = [ + "blst", + "byte-slice-cast", + "ff", + "group", + "pairing", + "rand_core 0.6.4", + "serde", + "subtle", +] + +[[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.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "553c5d846a6ba5150c65e3b1b8ec073bcf1abc20f9b7220de384a4443ea4e20a" +dependencies = [ + "borsh-derive 1.8.1", + "bytes", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831213f80d9423998dd696e2c5345aba6be7a0bd8cd19e31c5243e13df1cef89" +dependencies = [ + "borsh-derive-internal", + "borsh-schema-derive-internal", + "proc-macro-crate 0.1.5", + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12cdfe656708a01f89b451a7d36466e6fe6c414de0aa18fc54f864f6f9ca9f56" +dependencies = [ + "once_cell", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[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.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.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[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 = "byte-slice-cast" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" + +[[package]] +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bytemuck" +version = "1.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a1f896587b6f2c069c73d2f0913e2d590c3990285cd2f0b6aa02b786b4c679c" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" + +[[package]] +name = "cc" +version = "1.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3eb0f42d6c360dc3f8a821f6bf2fdea7f72bfd36b3076eb0e6d1e9e0752fff4" +dependencies = [ + "find-msvc-tools", + "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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" + +[[package]] +name = "cfg_eval" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45565fc9416b9896014f5732ac776f810ee53a66730c17e4020c3ec064a8f88f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common 0.1.7", + "inout", +] + +[[package]] +name = "cmov" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" + +[[package]] +name = "combine" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" +dependencies = [ + "ascii", + "byteorder", + "either", + "memchr", + "unreachable", +] + +[[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 = "const-crypto" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c06f1eb05f06cf2e380fdded278fbf056a38974299d77960555a311dcf91a52" +dependencies = [ + "keccak-const", + "sha2-const-stable", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[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 = "cpufeatures" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a7799fd6b852db0e61728dde9a204c423b44d689dbd432522543614b490e78" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "crypto-common" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "ct-codecs" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49fb0c6640b4507ebd99ff67677009e381ba5eee1d14df78de4a3d16eb123c39" + +[[package]] +name = "ctor" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1c888a2a4f677017373fb6c01e13e318dd9e78758445ed5eb985e355d3f8281" +dependencies = [ + "ctor-proc-macro", + "dtor", + "link-section", +] + +[[package]] +name = "ctor-proc-macro" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7ab264ea985f1bd27887d7b21ea2bb046728e05d11909ca138d700c494730db" + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "ctutils" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" +dependencies = [ + "cmov", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "rand_core 0.6.4", + "rustc_version", + "serde", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core 0.23.0", + "darling_macro 0.23.0", +] + +[[package]] +name = "darling" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed17f5901b6630b993ca003def43f2f8ef4014fc13b047b57aad617ff32bc2ec" +dependencies = [ + "darling_core 0.24.1", + "darling_macro 0.24.1", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.119", +] + +[[package]] +name = "darling_core" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6837e2cf7485aaae18f86181d2f0e9a7ed297a025e220aeabf63fdebd3a2ddff" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 3.0.5", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "darling_macro" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ac7135c3ef02b2f7833bbeb1be5ba7f966dcde8a87c6b87f65a778d71a02785" +dependencies = [ + "darling_core 0.24.1", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "dary_heap" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b1e3a325bc115f096c8b77bbf027a7c2592230e70be2d985be950d3d5e60ebe" + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid", + "zeroize", +] + +[[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", + "const-oid", + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "digest" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" +dependencies = [ + "block-buffer 0.12.1", + "crypto-common 0.2.2", + "ctutils", +] + +[[package]] +name = "dtor" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30e4690622ab6700ced40fc370a3f07b7d111f0154bb6fb08f73b4c8834f75b6" +dependencies = [ + "dtor-proc-macro", +] + +[[package]] +name = "dtor-proc-macro" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c98b077c7463d01d22dde8a24378ddf1ca7263dc687cffbed38819ea6c21131" + +[[package]] +name = "eager" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abe71d579d1812060163dff96056261deb5bf6729b100fa2e36a68b9649ba3d3" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand_core 0.6.4", + "serde", + "sha2 0.10.9", + "subtle", + "zeroize", +] + +[[package]] +name = "ed25519-dalek-bip32" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b49a684b133c4980d7ee783936af771516011c8cd15f429dbda77245e282f03" +dependencies = [ + "derivation-path", + "ed25519-dalek", + "hmac", + "sha2 0.10.9", +] + +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "either" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "enum-iterator" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4549325971814bda7a44061bf3fe7e487d447cba01e4220a4b454d630d7a016" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685adfa4d6f3d765a26bc5dbc936577de9abf756c1feeb3089b01dd395034842" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "enum-ordinalize" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89dd01549b09589510cf0647475075d12071456586d70f5c75c98ae2a5537677" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a65863d15a4ce2888bd2f0f543cc963d3879c3a022c8ee43f6141d479a3ac815" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "ephemeral-rollups-sdk" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "838564736408ada011e9986c819b26cf0195bb2dd238e10be258731979213d75" +dependencies = [ + "base64ct", + "bincode", + "bytemuck", + "ephemeral-rollups-sdk-attribute-action", + "ephemeral-rollups-sdk-attribute-commit", + "ephemeral-rollups-sdk-attribute-delegate", + "ephemeral-rollups-sdk-attribute-ephemeral", + "ephemeral-rollups-sdk-attribute-ephemeral-accounts", + "five8 0.2.1", + "getrandom 0.2.17", + "magicblock-delegation-program-api", + "magicblock-magic-program-api 0.10.1", + "num-derive", + "num-traits", + "solana-account 3.4.0", + "solana-account-info 2.3.0", + "solana-account-info 3.1.1", + "solana-address 2.6.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program 2.3.0", + "solana-program 3.0.0", + "solana-program-error 2.2.2", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "spl-associated-token-account-interface", + "thiserror 1.0.69", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-action" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a29f33b94edcdfcf1b9b7a61aa0ac00e8efdc66f89c8b4b573f7ea965a42c60a" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-commit" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da9ed3ea8b850013f6bf768e5f0f2e1f22f1861b46908764536795bf67bb5c67" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-delegate" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f0d8ab90b4ecc7ac802bbd2115681f9fd42bc5a9018be79ba7aff1fe971aa36" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ea166c57ee55b329be4eae730561fe02aad5620a35b4d89439d8d0c9e07c3a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral-accounts" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa3efae094f5c288746d479fd605b67bcd56d29ddcf1238046ac07eeec130c45" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "feature-probe" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" + +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "bitvec", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "filetime" +version = "0.2.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c287a33c7f0a620c38e641e7f60827713987b3c0f26e8ddc9462cc69cf75759" +dependencies = [ + "cfg-if", + "libc", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d" + +[[package]] +name = "five8" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75b8549488b4715defcb0d8a8a1c1c76a80661b5fa106b4ca0e7fce59d7d875" +dependencies = [ + "five8_core 0.1.2", +] + +[[package]] +name = "five8" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23f76610e969fa1784327ded240f1e28a3fd9520c9cec93b636fcf62dd37f772" +dependencies = [ + "five8_core 1.0.0", +] + +[[package]] +name = "five8_const" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26dec3da8bc3ef08f2c04f61eab298c3ab334523e55f076354d6d6f613799a7b" +dependencies = [ + "five8_core 0.1.2", +] + +[[package]] +name = "five8_const" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a0f1728185f277989ca573a402716ae0beaaea3f76a8ff87ef9dd8fb19436c5" +dependencies = [ + "five8_core 1.0.0", +] + +[[package]] +name = "five8_core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2551bf44bc5f776c15044b9b94153a00198be06743e262afaaa61f11ac7523a5" + +[[package]] +name = "five8_core" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "059c31d7d36c43fe39d89e55711858b4da8be7eb6dabac23c7289b1a19489406" + +[[package]] +name = "flate2" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb" +dependencies = [ + "zlib-rs", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures-core" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" + +[[package]] +name = "futures-task" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" + +[[package]] +name = "futures-util" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" +dependencies = [ + "futures-core", + "futures-task", + "pin-project-lite", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[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 = "glob" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand 0.8.8", + "rand_core 0.6.4", + "rand_xorshift", + "subtle", +] + +[[package]] +name = "hash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" +dependencies = [ + "byteorder", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284" + +[[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 = "http" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hybrid-array" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27f864f10dfb56725ce5ce5472bc52252c8f93a4ab86327122cebf62c5f59a17" +dependencies = [ + "typenum", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "indexmap" +version = "2.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", +] + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "generic-array", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "js-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2 0.10.9", + "signature", +] + +[[package]] +name = "keccak" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" +dependencies = [ + "cpufeatures 0.2.17", +] + +[[package]] +name = "keccak-const" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d8d8ce877200136358e0bbff3a77965875db3af755a11e1fa6b1b3e2df13ea" + +[[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.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" + +[[package]] +name = "libflate" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "561a8da1a50e1428d3c51321dafeca849df992a5bb67720c386131234caba82e" +dependencies = [ + "adler32", + "crc32fast", + "dary_heap", + "libflate_lz77", + "no_std_io2", +] + +[[package]] +name = "libflate_lz77" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7a10e427698aef6eef269482776debfef63384d30f13aad39a1a95e0e098fd" +dependencies = [ + "hashbrown 0.16.1", + "no_std_io2", + "rle-decode-fast", +] + +[[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", + "libsecp256k1-core 0.2.2", + "libsecp256k1-gen-ecmult 0.2.1", + "libsecp256k1-gen-genmult 0.2.1", + "rand 0.7.3", + "serde", + "sha2 0.9.9", +] + +[[package]] +name = "libsecp256k1" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" +dependencies = [ + "arrayref", + "base64 0.22.1", + "digest 0.9.0", + "libsecp256k1-core 0.3.0", + "libsecp256k1-gen-ecmult 0.3.0", + "libsecp256k1-gen-genmult 0.3.0", + "rand 0.8.8", + "serde", + "sha2 0.9.9", +] + +[[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-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" +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 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" +dependencies = [ + "libsecp256k1-core 0.3.0", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" +dependencies = [ + "libsecp256k1-core 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" +dependencies = [ + "libsecp256k1-core 0.3.0", +] + +[[package]] +name = "libsodium-rs" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b8cd48c80d6c6fa5a4612d242941067219555baea82b0b49c92ea9d8156b59c" +dependencies = [ + "ct-codecs", + "ctor", + "libc", + "libsodium-sys-stable", + "pkg-config", + "thiserror 1.0.69", + "zeroize", +] + +[[package]] +name = "libsodium-sys-stable" +version = "1.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b04bf6da2c98b727af37ab62cb505f4d751b975b034a9b9ad491d333b0564e" +dependencies = [ + "cc", + "libc", + "libflate", + "minisign-verify", + "pkg-config", + "tar", + "ureq", + "vcpkg", + "zip", +] + +[[package]] +name = "light-poseidon" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c9a85a9752c549ceb7578064b4ed891179d20acd85f27318573b64d2d7ee7ee" +dependencies = [ + "ark-bn254 0.4.0", + "ark-ff 0.4.2", + "num-bigint 0.4.8", + "thiserror 1.0.69", +] + +[[package]] +name = "light-poseidon" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47a1ccadd0bb5a32c196da536fd72c59183de24a055f6bf0513bf845fefab862" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ff 0.5.0", + "num-bigint 0.4.8", + "thiserror 1.0.69", +] + +[[package]] +name = "link-section" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52437d47b0358721ec869cc7374b2a21f7b2237af9b439c0391341a1fbfbf1b" + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[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.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" + +[[package]] +name = "magicblock-account" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b5671bd1525eeab67f240455dffff31a4f6d27b067a3531f2d47c7d5af0c6e" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "thiserror 2.0.20", +] + +[[package]] +name = "magicblock-delegation-program-api" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea16e41e04319201919afca98dd4241b18549f2db0c68f58e4bc531537b5dab" +dependencies = [ + "bincode", + "borsh 0.10.4", + "borsh 1.8.1", + "bytemuck", + "const-crypto", + "libsodium-rs", + "num_enum", + "pinocchio 0.10.2", + "pinocchio-log", + "pinocchio-pubkey", + "pinocchio-system", + "rkyv", + "serde", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-loader-v3-interface 6.1.1", + "solana-program 3.0.0", + "solana-pubkey 2.4.0", + "solana-sdk", + "solana-sdk-ids 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-system-interface 2.0.0", + "static_assertions", + "strum", + "thiserror 2.0.20", +] + +[[package]] +name = "magicblock-litesvm" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82cfc1c7f4348c300f58ddd5ae8613e9b1d08564a7956af43822de59cb76d039" +dependencies = [ + "agave-feature-set", + "agave-reserved-account-keys", + "ansi_term", + "indexmap", + "itertools 0.15.0", + "log", + "magicblock-account", + "solana-account 4.3.2", + "solana-address 2.6.1", + "solana-address-lookup-table-interface 3.1.0", + "solana-builtins", + "solana-clock 3.1.1", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-feature-gate-interface 4.0.0", + "solana-fee", + "solana-fee-calculator 3.2.2", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-instructions-sysvar 4.0.0", + "solana-keypair", + "solana-last-restart-slot 3.1.0", + "solana-loader-v3-interface 8.0.1", + "solana-loader-v4-interface 3.1.0", + "solana-message 4.4.1", + "solana-native-token 3.0.0", + "solana-nonce 3.2.1", + "solana-nonce-account", + "solana-precompile-error", + "solana-program-error 3.0.1", + "solana-program-runtime", + "solana-rent 4.3.0", + "solana-runtime-transaction", + "solana-sdk-ids 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-signature 3.4.1", + "solana-signer", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stake-history", + "solana-svm-callback", + "solana-svm-log-collector", + "solana-svm-timings", + "solana-svm-transaction", + "solana-syscalls", + "solana-system-interface 3.2.0", + "solana-system-program", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "magicblock-magic-program-api" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291f7a68f6cc622741a3fae513bd71640911abefd1fae2b2602b934515ed4b95" +dependencies = [ + "bincode", + "const-crypto", + "serde", + "solana-program 2.3.0", + "solana-signature 2.3.0", +] + +[[package]] +name = "magicblock-magic-program-api" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dc8fba0307c90b91b70c9ed06d4242d6c4159f331b2f05bf8f875c2a94e0e98" +dependencies = [ + "bincode", + "const-crypto", + "serde", + "solana-program 3.0.0", + "solana-signature 3.4.1", +] + +[[package]] +name = "magicsvm" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e3effa3b8d28f3e0a14d1b72afcf65c2bec2331882a19065ec4424cd5c7ee37" +dependencies = [ + "bincode", + "borsh 1.8.1", + "ephemeral-rollups-sdk", + "magicblock-account", + "magicblock-delegation-program-api", + "magicblock-litesvm", + "magicblock-magic-program-api 0.8.8", + "solana-account 4.3.2", + "solana-address 2.6.1", + "solana-clock 3.1.1", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-program-runtime", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-signer", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[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 = "minisign-verify" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22f9645cb765ea72b8111f36c522475d2daa0d22c957a9826437e97534bc4e9e" + +[[package]] +name = "no_std_io2" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418abd1b6d34fbf6cae440dc874771b0525a604428704c76e48b29a5e67b8003" +dependencies = [ + "memchr", +] + +[[package]] +name = "num" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" +dependencies = [ + "num-bigint 0.2.6", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +dependencies = [ + "autocfg", + "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.119", +] + +[[package]] +name = "num-integer" +version = "0.1.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92800bd69a1eac91786bcfe9da64a897eb72911b8dc3095decbd07429e8048b" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +dependencies = [ + "autocfg", + "num-bigint 0.2.6", + "num-integer", + "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_cpus" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "oncurve-delegation-magicsvm-rs" +version = "0.1.0" +dependencies = [ + "borsh 1.8.1", + "ephemeral-rollups-sdk", + "magicblock-delegation-program-api", + "magicsvm", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-native-token 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-signer", + "solana-system-interface 3.2.0", + "solana-transaction 4.1.6", + "test-utils", +] + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group", +] + +[[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 = "pastey" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4" + +[[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 = "percentage" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd23b938276f14057220b707937bcb42fa76dda7560e57a2da30cb52d557937" +dependencies = [ + "num", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pinocchio" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8afe4f39c0e25cc471b35b89963312791a5162d45a86578cbeaad9e5e7d1b3b" + +[[package]] +name = "pinocchio" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06810dac15a4ef83d3dabdb4f2f22fb39c9adff669cd2781da4f716510a647c" +dependencies = [ + "solana-account-view", + "solana-address 2.6.1", + "solana-define-syscall 4.0.1", + "solana-instruction-view", + "solana-program-error 3.0.1", +] + +[[package]] +name = "pinocchio-log" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd11022408f312e6179ece321c1f7dc0d1b2aa7765fddd39b2a7378d65a899e8" +dependencies = [ + "pinocchio-log-macro", +] + +[[package]] +name = "pinocchio-log-macro" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69fb52edb3c5736b044cc462b0957b9767d0f574d138f4e2761438c498a4b467" +dependencies = [ + "quote", + "regex", + "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 0.1.4", + "pinocchio 0.9.3", + "sha2-const-stable", +] + +[[package]] +name = "pinocchio-system" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24044a0815753862b558e179e78f03f7344cb755de48617a09d7d23b50883b6c" +dependencies = [ + "pinocchio 0.10.2", + "solana-address 2.6.1", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "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.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[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.119", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +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 = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e058c7de0b26af77780c769414d6257830bb240f3c38477dbc2c16e5f54d6d4c" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", +] + +[[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_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", +] + +[[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_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] + +[[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_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + +[[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.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "rend" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "rkyv" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2297bf9c81a3f0dc96bc9521370b88f054168c29826a75e89c55ff196e7ed6a1" +dependencies = [ + "bitvec", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d7b42d4b8d06048d3ac8db0eb31bcb942cbeb709f0b5f2b2ebde398d3038f5" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rle-decode-fast" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" + +[[package]] +name = "rustc-demangle" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b74b56ffa8bb2830709a538c2cbcae9aa062db0d2a42563bfb09bdaae44020eb" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-big-array" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" +dependencies = [ + "serde", +] + +[[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.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "serde_json" +version = "1.0.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_with" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "935177bb8c0cd8ca1a4e6d1a2ac8988bea69cab4f9d3a31311e012ad27868ea4" +dependencies = [ + "serde_core", + "serde_with_macros", +] + +[[package]] +name = "serde_with_macros" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d607aa01a3cb0ad757d6fd216136910db3c97b102fe686585689615a02dbcdc" +dependencies = [ + "darling 0.24.1", + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[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 0.2.17", + "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 0.2.17", + "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.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77fd7028345d415a4034cf8777cd4f8ab1851274233b45f84e3d955502d93874" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "simd-adler32" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba467056f1b547ed52077911161fc86985becbc60e8e1857c8a144dab0def891" + +[[package]] +name = "solana-account" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f949fe4edaeaea78c844023bfc1c898e0b1f5a100f8a8d2d0f85d0a7b090258" +dependencies = [ + "solana-account-info 2.3.0", + "solana-clock 2.2.3", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-account" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efc0ed36decb689413b9da5d57f2be49eea5bebb3cf7897015167b0c4336e731" +dependencies = [ + "bincode", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 3.1.1", +] + +[[package]] +name = "solana-account" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26788ba0d7eb5b250edda3e1d393739bafd5daf94882f2261d14f5ab0d6a25e0" +dependencies = [ + "bincode", + "qualifier_attr", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 4.1.0", +] + +[[package]] +name = "solana-account-info" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8f5152a288ef1912300fc6efa6c2d1f9bb55d9398eb6c72326360b8063987da" +dependencies = [ + "bincode", + "serde", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-account-info" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9cf16495d9eb53e3d04e72366a33bb1c20c24e78c171d8b8f5978357b63ae95" +dependencies = [ + "bincode", + "serde_core", + "solana-address 2.6.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.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.6.1", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-address" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2ecac8e1b7f74c2baa9e774c42817e3e75b20787134b76cc4d45e8a604488f5" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-address" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c93e262f671bf402e1040e4a7e40b05d81da5956c7681948c975a0997517bb" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8 1.0.0", + "five8_const 1.0.0", + "rand 0.9.5", + "serde", + "serde_derive", + "sha2-const-stable", + "solana-atomic-u64 3.0.1", + "solana-define-syscall 5.2.0", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.1.0", + "wincode", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1673f67efe870b64a65cb39e6194be5b26527691ce5922909939961a6e6b395" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-slot-hashes 2.2.1", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115b4f773acc4f3f3cb986b0d335e9845c0368c82b0940410935bc11ae065578" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", +] + +[[package]] +name = "solana-atomic-u64" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52e52720efe60465b052b9e7445a01c17550666beec855cce66f44766697bc2" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "solana-atomic-u64" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "085db4906d89324cef2a30840d59eaecf3d4231c560ec7c9f6614a93c652f501" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "solana-big-mod-exp" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75db7f2bbac3e62cfd139065d15bcda9e2428883ba61fc8d27ccb251081e7567" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-big-mod-exp" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30c80fb6d791b3925d5ec4bf23a7c169ef5090c013059ec3ed7d0b2c04efa085" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "solana-define-syscall 3.0.0", +] + +[[package]] +name = "solana-bincode" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19a3787b8cf9c9fe3dd360800e8b70982b9e5a8af9e11c354b6665dd4a003adc" +dependencies = [ + "bincode", + "serde", + "solana-instruction 2.3.3", +] + +[[package]] +name = "solana-bincode" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "278a1a5bad62cd9da89ac8d4b7ec444e83caa8ae96aa656dfc27684b28d49a5d" +dependencies = [ + "bincode", + "serde_core", + "solana-instruction-error", +] + +[[package]] +name = "solana-blake3-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a0801e25a1b31a14494fc80882a036be0ffd290efc4c2d640bfcca120a4672" +dependencies = [ + "blake3", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-blake3-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7116e1d942a2432ca3f514625104757ab8a56233787e95144c93950029e31176" +dependencies = [ + "blake3", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-bls-signatures" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "654ea8d31bbb4b0b9c28f9c545edb32691de27d4e2fc0e252c1ff47da50c5f2a" +dependencies = [ + "base64 0.22.1", + "blst", + "blstrs", + "cfg_eval", + "ff", + "group", + "pairing", + "rand 0.8.8", + "serde", + "serde_json", + "serde_with", + "thiserror 2.0.20", + "wincode", + "zeroize", +] + +[[package]] +name = "solana-bls12-381-syscall" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94e8256fda0542709fd1320a96d81c3c66e10ac5f680cca9b991d7d3b0e3fe86" +dependencies = [ + "blst", + "blstrs", + "bytemuck", + "bytemuck_derive", + "pairing", +] + +[[package]] +name = "solana-bn254" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62ff13a8867fcc7b0f1114764e1bf6191b4551dcaf93729ddc676cd4ec6abc9f" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "bytemuck", + "solana-define-syscall 5.2.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-borsh" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718333bcd0a1a7aed6655aa66bef8d7fb047944922b2d3a18f49cbc13e73d004" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", +] + +[[package]] +name = "solana-borsh" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c04abbae16f57178a163125805637b8a076175bb5c0002fb04f4792bea901cf7" +dependencies = [ + "borsh 1.8.1", +] + +[[package]] +name = "solana-bpf-loader-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabcc3a5785886f026b438771bf6b221b0d4877f6089af79d432c7fe877a6cd4" +dependencies = [ + "bincode", + "qualifier_attr", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-clock 3.1.1", + "solana-instruction 3.4.1", + "solana-loader-v3-interface 7.0.0", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-type-overrides", + "solana-syscalls", + "solana-system-interface 3.2.0", + "solana-transaction-context", +] + +[[package]] +name = "solana-builtins" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ab49c6f8a77bff54e811e9674747fd435e218dcbe71120039a865515151998c" +dependencies = [ + "agave-feature-set", + "solana-bpf-loader-program", + "solana-compute-budget-program", + "solana-hash 4.5.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-program", + "solana-vote-program", + "solana-zk-elgamal-proof-program", + "solana-zk-token-proof-program", +] + +[[package]] +name = "solana-builtins-default-costs" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76792b1ecab1c5f127f16062926850b52c4bb51ac1a93d220635fb13221d3503" +dependencies = [ + "agave-feature-set", + "ahash 0.8.12", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-clock" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8584296123df8fe229b95e2ebfd37ae637fe9db9b7d4dd677ac5a78e80dbfce" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-clock" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0acdace90d96e2c9e70d681465b4fe888b6bcf27c354ae9774e9f8a3b72923d" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-compute-budget" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e200042fd149d565521f7b31e082c0db0e022e9860c7e013130f812984ae846f" +dependencies = [ + "solana-fee-structure", + "solana-program-runtime", +] + +[[package]] +name = "solana-compute-budget-instruction" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a651fc5d082fd88090a7336ea85599b1ffcf6503dbcff575ae1bb2fb1cec238" +dependencies = [ + "agave-feature-set", + "solana-borsh 3.0.2", + "solana-builtins-default-costs", + "solana-compute-budget", + "solana-compute-budget-interface", + "solana-instruction 3.4.1", + "solana-packet 4.2.0", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-svm-transaction", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-compute-budget-interface" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8292c436b269ad23cecc8b24f7da3ab07ca111661e25e00ce0e1d22771951ab9" +dependencies = [ + "borsh 1.8.1", + "solana-instruction 3.4.1", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-compute-budget-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e314aeb4a86507ba77fb2d6ce9f5836af6aeaaedd4c5314e310ca72f73afe367" +dependencies = [ + "solana-program-runtime", +] + +[[package]] +name = "solana-cpi" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dc71126edddc2ba014622fc32d0f5e2e78ec6c5a1e0eb511b85618c09e9ea11" +dependencies = [ + "solana-account-info 2.3.0", + "solana-define-syscall 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-stable-layout 2.2.1", +] + +[[package]] +name = "solana-cpi" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dea26709d867aada85d0d3617db0944215c8bb28d3745b912de7db13a23280c" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 4.0.1", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-stable-layout 3.0.1", +] + +[[package]] +name = "solana-curve25519" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14b4d2a4bf0d0b0a86c22111917e86e8bd39a7b31420fb2c7d73eb83761fc7af" +dependencies = [ + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "solana-define-syscall 5.2.0", + "subtle", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-decode-error" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c781686a18db2f942e70913f7ca15dc120ec38dcab42ff7557db2c70c625a35" +dependencies = [ + "num-traits", +] + +[[package]] +name = "solana-define-syscall" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ae3e2abcf541c8122eafe9a625d4d194b4023c20adde1e251f94e056bb1aee2" + +[[package]] +name = "solana-define-syscall" +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-define-syscall" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf8209ece2bd9f1450e672858ffc0e5c8c786ff6916d2a862b126dd0128f380f" + +[[package]] +name = "solana-derivation-path" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff71743072690fdbdfcdc37700ae1cb77485aaad49019473a81aee099b1e0b8c" +dependencies = [ + "derivation-path", + "qstring", + "uriparse", +] + +[[package]] +name = "solana-epoch-info" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e093c84f6ece620a6b10cd036574b0cd51944231ab32d81f80f76d54aba833e6" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-epoch-rewards" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b575d3dd323b9ea10bb6fe89bf6bf93e249b215ba8ed7f68f1a3633f384db7" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 2.3.0", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-rewards" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf7eb4986b0b1d6f562b21f75a836f1a6df6e00c275efcef50aab5c144dc59e" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-epoch-rewards-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee8beac9bff4db9225e57d532d169b0be5e447f1e6601a2f50f27a01bf5518f" +dependencies = [ + "siphasher", + "solana-address 2.6.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-epoch-schedule" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fce071fbddecc55d727b1d7ed16a629afe4f6e4c217bc8d00af3b785f6f67ed" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-schedule" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8116e6ffa6002237d5ab5edcbda17f9ba66b6742c45a89c9fb40a94dbacd4c1d" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-program-error 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-epoch-stake" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "027e6d0b9e7daac5b2ac7c3f9ca1b727861121d9ef05084cf435ff736051e7c2" +dependencies = [ + "solana-define-syscall 5.2.0", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-example-mocks" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84461d56cbb8bb8d539347151e0525b53910102e4bced875d49d5139708e39d3" +dependencies = [ + "serde", + "serde_derive", + "solana-address-lookup-table-interface 2.2.2", + "solana-clock 2.2.3", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-keccak-hasher 2.2.1", + "solana-message 2.4.0", + "solana-nonce 2.2.1", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-example-mocks" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978855d164845c1b0235d4b4d101cadc55373fffaf0b5b6cfa2194d25b2ed658" +dependencies = [ + "serde", + "serde_derive", + "solana-address-lookup-table-interface 3.1.0", + "solana-clock 3.1.1", + "solana-hash 3.1.0", + "solana-instruction 3.4.1", + "solana-keccak-hasher 3.1.0", + "solana-message 3.1.0", + "solana-nonce 3.2.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 2.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43f5c5382b449e8e4e3016fb05e418c53d57782d8b5c30aa372fc265654b956d" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 2.2.1", + "solana-account-info 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd7545e02f91da1d6996f32b18f7796aa01e0682f8f3a7434b82cd1a10448add" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-fee" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c32df41c2c93a567a1612a973faddeaca093276677c157ef9cb60a378289fc69" +dependencies = [ + "agave-feature-set", + "solana-fee-structure", + "solana-svm-transaction", +] + +[[package]] +name = "solana-fee-calculator" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89bc408da0fb3812bc3008189d148b4d3e08252c79ad810b245482a3f70cd8d" +dependencies = [ + "log", + "serde", + "serde_derive", +] + +[[package]] +name = "solana-fee-calculator" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef67f01cc6a0c72e99a08d0d484683f995de4c80e9568728fa77d1537f9b7e09" +dependencies = [ + "log", + "serde", + "serde_derive", + "wincode", +] + +[[package]] +name = "solana-fee-structure" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2abdb1223eea8ec64136f39cb1ffcf257e00f915c957c35c0dd9e3f4e700b0" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-get-sysvar" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef3bc859fc036ed490146793557386cbfae614ebba4adc704c37d94350824ed4" +dependencies = [ + "solana-address 2.6.1", + "solana-define-syscall 5.2.0", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-hard-forks" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb50b2df7a36a2af58ce24bb0229622ac845dcc196e8c23b3ea4a29dd6bee09" + +[[package]] +name = "solana-hash" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b96e9f0300fa287b545613f007dfe20043d7812bee255f418c1eb649c93b63" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "five8 0.2.1", + "js-sys", + "serde", + "serde_derive", + "solana-atomic-u64 2.2.1", + "solana-sanitize 2.2.1", + "wasm-bindgen", +] + +[[package]] +name = "solana-hash" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "337c246447142f660f778cf6cb582beba8e28deb05b3b24bfb9ffd7c562e5f41" +dependencies = [ + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-hash" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f4c847893a2ea50b4ae3ca723b124e07cd0544fecea3598f785168f9b78333f" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "five8 1.0.0", + "serde", + "serde_derive", + "solana-atomic-u64 3.0.1", + "solana-sanitize 3.0.1", + "wincode", +] + +[[package]] +name = "solana-hash-512" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce934b02bab639341f2fd62c3e7e3c39dcceb47f0196b7630ed1f82ecb704bd" + +[[package]] +name = "solana-inflation" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf186550ea7438e2708bd0c233f01fe9c3fa45b9b607ff993b650ce60af102e" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-instruction" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab5682934bd1f65f8d2c16f21cb532526fcc1a09f796e2cacdb091eee5774ad" +dependencies = [ + "bincode", + "borsh 1.8.1", + "getrandom 0.2.17", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "serde_json", + "solana-define-syscall 2.3.0", + "solana-pubkey 2.4.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-instruction" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3957ca1d31107efd9a6bb88b25c348ca5e3b4b6683e3d08adb86d3d17aa01f1" +dependencies = [ + "bincode", + "borsh 1.8.1", + "serde", + "serde_derive", + "solana-define-syscall 5.2.0", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "wincode", +] + +[[package]] +name = "solana-instruction-error" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b7d34343838343a3755b7dfb1e438d94c6db2263b519cfe3c2257af932b6e93" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-program-error 3.0.1", +] + +[[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.6.1", + "solana-define-syscall 4.0.1", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0e85a6fad5c2d0c4f5b91d34b8ca47118fc593af706e523cdbedf846a954f57" +dependencies = [ + "bitflags", + "solana-account-info 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serialize-utils 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e0732294560e88ecdb2bbc656e67383e9f88c78ec09469cef172f0d28cd1bcd" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-serialize-utils 3.1.2", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e38363a181313d607f7a118df2b401bb27b477a0104b09283cbf504f5f0f00cc" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-serialize-utils 3.1.2", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-keccak-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7aeb957fbd42a451b99235df4942d96db7ef678e8d5061ef34c9b34cae12f79" +dependencies = [ + "sha3", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-keccak-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed1c0d16d6fdeba12291a1f068cdf0d479d9bff1141bf44afd7aa9d485f65ef8" +dependencies = [ + "sha3", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-keypair" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "263d614c12aa267a3278703175fd6440552ca61bc960b5a02a4482720c53438b" +dependencies = [ + "ed25519-dalek", + "ed25519-dalek-bip32", + "five8 1.0.0", + "five8_core 1.0.0", + "rand 0.9.5", + "solana-address 2.6.1", + "solana-derivation-path", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-last-restart-slot" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a6360ac2fdc72e7463565cd256eedcf10d7ef0c28a1249d261ec168c1b55cdd" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-last-restart-slot" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22474b83d3c7c318e1c3a725784fc2d1d03b728e36369e58ce48769a61ed85e" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-loader-v2-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8ab08006dad78ae7cd30df8eea0539e207d08d91eaefb3e1d49a446e1c49654" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f7162a05b8b0773156b443bccd674ea78bb9aa406325b467ea78c06c99a63a2" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e0538d4dbc9022e01616f1c58f2db98ece739c5d5ed4a2ef8737a953e76a2d4" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68029ab11d9c891d4ce23ada75745e40f983c5674af366f447b672569634231b" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "362b468fbde4c20521b9ff5ef743bc0d9b410455a5a92a8b29fd46954e89345f" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", + "wincode", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "706a777242f1f39a83e2a96a2a6cb034cb41169c6ecbee2cf09cb873d9659e7e" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c948b33ff81fa89699911b207059e493defdba9647eaf18f23abdf3674e0fb" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-message" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1796aabce376ff74bf89b78d268fa5e683d7d7a96a0a4e4813ec34de49d5314b" +dependencies = [ + "bincode", + "blake3", + "lazy_static", + "serde", + "serde_derive", + "solana-bincode 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", + "solana-transaction-error 2.2.1", + "wasm-bindgen", +] + +[[package]] +name = "solana-message" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0448b1fd891c5f46491e5dc7d9986385ba3c852c340db2911dd29faa01d2b08d" +dependencies = [ + "bincode", + "blake3", + "lazy_static", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-message" +version = "4.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e29e655f222a3a64145fedceacdca3e696ba7aded1dbd5391aa09d5fbfba53c" +dependencies = [ + "blake3", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-msg" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36a1a14399afaabc2781a1db09cb14ee4cc4ee5c7a5a3cfcc601811379a8092" +dependencies = [ + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-msg" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726b7cbbc6be6f1c6f29146ac824343b9415133eee8cce156452ad1db93f8008" +dependencies = [ + "solana-define-syscall 5.2.0", +] + +[[package]] +name = "solana-native-token" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61515b880c36974053dd499c0510066783f0cc6ac17def0c7ef2a244874cf4a9" + +[[package]] +name = "solana-native-token" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae8dd4c280dca9d046139eb5b7a5ac9ad10403fbd64964c7d7571214950d758f" + +[[package]] +name = "solana-nonce" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703e22eb185537e06204a5bd9d509b948f0066f2d1d814a6f475dafb3ddf1325" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-pubkey 2.4.0", + "solana-sha256-hasher 2.3.0", +] + +[[package]] +name = "solana-nonce" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4172d5b33a0a38fcdb2af8f84406570dd51567267da96c28ad0f31fc11621c0" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator 3.2.2", + "solana-hash 4.5.0", + "solana-pubkey 4.2.0", + "solana-sha256-hasher 3.1.0", + "wincode", +] + +[[package]] +name = "solana-nonce-account" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b81bf7e2aa8c443724051507c1007d0b6d9c34b70925d3232dc78f5ca485209e" +dependencies = [ + "solana-account 4.3.2", + "solana-hash 4.5.0", + "solana-nonce 3.2.1", + "solana-sdk-ids 3.1.0", + "wincode", +] + +[[package]] +name = "solana-offchain-message" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e2a1141a673f72a05cf406b99e4b2b8a457792b7c01afa07b3f00d4e2de393" +dependencies = [ + "num_enum", + "solana-hash 3.1.0", + "solana-packet 3.0.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.1.0", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-packet" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edf2f25743c95229ac0fdc32f8f5893ef738dbf332c669e9861d33ddb0f469d" +dependencies = [ + "bitflags", +] + +[[package]] +name = "solana-packet" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a2a582d7863548f047f49aa3745c076cfa9e1364baa080ef0c1210f0e4ebda" +dependencies = [ + "bitflags", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-poseidon" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "737b8ab25bf4cc8e618f80f1fe40709b2ace708bc764a36b8a4c81eea8c07034" +dependencies = [ + "ark-bn254 0.4.0", + "ark-bn254 0.5.0", + "light-poseidon 0.2.0", + "light-poseidon 0.4.0", + "solana-define-syscall 4.0.1", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-precompile-error" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cafcd950de74c6c39d55dc8ca108bbb007799842ab370ef26cf45a34453c31e1" +dependencies = [ + "num-traits", +] + +[[package]] +name = "solana-presigner" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f704eaf825be3180832445b9e4983b875340696e8e7239bf2d535b0f86c14a2" +dependencies = [ + "solana-pubkey 3.0.0", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-program" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98eca145bd3545e2fbb07166e895370576e47a00a7d824e325390d33bf467210" +dependencies = [ + "bincode", + "blake3", + "borsh 0.10.4", + "borsh 1.8.1", + "bs58", + "bytemuck", + "console_error_panic_hook", + "console_log", + "getrandom 0.2.17", + "lazy_static", + "log", + "memoffset", + "num-bigint 0.4.8", + "num-derive", + "num-traits", + "rand 0.8.8", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 2.3.0", + "solana-address-lookup-table-interface 2.2.2", + "solana-atomic-u64 2.2.1", + "solana-big-mod-exp 2.2.1", + "solana-bincode 2.2.1", + "solana-blake3-hasher 2.2.1", + "solana-borsh 2.2.1", + "solana-clock 2.2.3", + "solana-cpi 2.2.1", + "solana-decode-error", + "solana-define-syscall 2.3.0", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", + "solana-example-mocks 2.2.1", + "solana-feature-gate-interface 2.2.2", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-instructions-sysvar 2.2.2", + "solana-keccak-hasher 2.2.1", + "solana-last-restart-slot 2.2.1", + "solana-loader-v2-interface", + "solana-loader-v3-interface 5.0.0", + "solana-loader-v4-interface 2.2.1", + "solana-message 2.4.0", + "solana-msg 2.2.1", + "solana-native-token 2.3.0", + "solana-nonce 2.2.1", + "solana-program-entrypoint 2.3.0", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-program-option 2.2.1", + "solana-program-pack 2.2.1", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-secp256k1-recover 2.2.1", + "solana-serde-varint 2.2.2", + "solana-serialize-utils 2.2.1", + "solana-sha256-hasher 2.3.0", + "solana-short-vec 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stable-layout 2.2.1", + "solana-stake-interface 1.2.1", + "solana-system-interface 1.0.0", + "solana-sysvar 2.3.0", + "solana-sysvar-id 2.2.1", + "solana-vote-interface 2.2.6", + "thiserror 2.0.20", + "wasm-bindgen", +] + +[[package]] +name = "solana-program" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91b12305dd81045d705f427acd0435a2e46444b65367d7179d7bdcfc3bc5f5eb" +dependencies = [ + "memoffset", + "solana-account-info 3.1.1", + "solana-big-mod-exp 3.0.0", + "solana-blake3-hasher 3.1.0", + "solana-borsh 3.0.2", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-define-syscall 3.0.0", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-epoch-stake", + "solana-example-mocks 3.0.0", + "solana-fee-calculator 3.2.2", + "solana-hash 3.1.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-instructions-sysvar 3.0.1", + "solana-keccak-hasher 3.1.0", + "solana-last-restart-slot 3.1.0", + "solana-msg 3.1.0", + "solana-native-token 3.0.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.3.0", + "solana-serde-varint 3.0.1", + "solana-serialize-utils 3.1.2", + "solana-sha256-hasher 3.1.0", + "solana-short-vec 3.2.2", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stable-layout 3.0.1", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-program-entrypoint" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32ce041b1a0ed275290a5008ee1a4a6c48f5054c8a3d78d313c08958a06aedbd" +dependencies = [ + "solana-account-info 2.3.0", + "solana-msg 2.2.1", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-program-entrypoint" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c9b0a1ff494e05f503a08b3d51150b73aa639544631e510279d6375f290997" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 4.0.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-program-error" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ee2e0217d642e2ea4bee237f37bd61bb02aec60da3647c48ff88f6556ade775" +dependencies = [ + "borsh 1.8.1", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-msg 2.2.1", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-program-error" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f04fa578707b3612b095f0c8e19b66a1233f7c42ca8082fcb3b745afcc0add6" +dependencies = [ + "borsh 1.8.1", + "serde", + "serde_derive", +] + +[[package]] +name = "solana-program-memory" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a5426090c6f3fd6cfdc10685322fede9ca8e5af43cd6a59e98bfe4e91671712" +dependencies = [ + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-program-memory" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4068648649653c2c50546e9a7fb761791b5ab0cda054c771bb5808d3a4b9eb52" +dependencies = [ + "solana-define-syscall 4.0.1", +] + +[[package]] +name = "solana-program-option" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc677a2e9bc616eda6dbdab834d463372b92848b2bfe4a1ed4e4b4adba3397d0" + +[[package]] +name = "solana-program-option" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a88006a9b8594088cec9027ab77caaaa258a2aaa2083d3f086c44b42e50aeab" + +[[package]] +name = "solana-program-pack" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "319f0ef15e6e12dc37c597faccb7d62525a509fec5f6975ecb9419efddeb277b" +dependencies = [ + "solana-program-error 2.2.2", +] + +[[package]] +name = "solana-program-pack" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7701cb15b90667ae1c89ef4ac35a59c61e66ce58ddee13d729472af7f41d59" +dependencies = [ + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-program-runtime" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2b7281bd4a6072c7e11b611f771f4e61be1d45ea0d2aecfbb77d02d1b5877d4" +dependencies = [ + "base64 0.22.1", + "bincode", + "cfg-if", + "itertools 0.14.0", + "log", + "percentage", + "rand 0.9.5", + "serde", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-loader-v3-interface 7.0.0", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", + "solana-stable-layout 3.0.1", + "solana-stake-interface 4.3.0", + "solana-svm-callback", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-timings", + "solana-svm-transaction", + "solana-svm-type-overrides", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction-context", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "solana-pubkey" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b62adb9c3261a052ca1f999398c388f1daf558a1b492f60a6d9e64857db4ff1" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8 0.2.1", + "five8_const 0.1.4", + "getrandom 0.2.17", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-atomic-u64 2.2.1", + "solana-decode-error", + "solana-define-syscall 2.3.0", + "solana-sanitize 2.2.1", + "solana-sha256-hasher 2.3.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-pubkey" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8909d399deb0851aa524420beeb5646b115fd253ef446e35fe4504c904da3941" +dependencies = [ + "rand 0.8.8", + "solana-address 1.1.0", +] + +[[package]] +name = "solana-pubkey" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7db719574990de7e8b0f55a8593ac92a5ccb42c8ce67b3e4bf05b139d5d9ee71" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-rent" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1aea8fdea9de98ca6e8c2da5827707fb3842833521b528a713810ca685d2480" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-rent" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e860d5499a705369778647e97d760f7670adfb6fc8419dd3d568deccd46d5487" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-rent" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39f0d780bf8e8a1fe8b5b5fce1acad6b209485b86dec246e7523d5e4a8b7c7fc" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-runtime-transaction" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60cf942dcefc0f4d600fed1f4d220ff27abaa04def1fefa37e0e0c2a96e4179" +dependencies = [ + "agave-feature-set", + "agave-transaction-view", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-svm-transaction", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-sanitize" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61f1bc1357b8188d9c4a3af3fc55276e56987265eb7ad073ae6f8180ee54cecf" + +[[package]] +name = "solana-sanitize" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf09694a0fc14e5ffb18f9b7b7c0f15ecb6eac5b5610bf76a1853459d19daf9" + +[[package]] +name = "solana-sbpf" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d777d7a89267dd133e985113c7e7f820fb7cfd9123a4a350cf8b39ebae1920bc" +dependencies = [ + "byteorder", + "combine", + "hash32", + "libc", + "log", + "rand 0.8.8", + "rustc-demangle", + "thiserror 2.0.20", + "winapi", +] + +[[package]] +name = "solana-sdk" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f03df7969f5e723ad31b6c9eadccc209037ac4caa34d8dc259316b05c11e82b" +dependencies = [ + "bincode", + "bs58", + "serde", + "solana-account 3.4.0", + "solana-epoch-info", + "solana-epoch-rewards-hasher", + "solana-fee-structure", + "solana-inflation", + "solana-keypair", + "solana-message 3.1.0", + "solana-offchain-message", + "solana-presigner", + "solana-program 3.0.0", + "solana-program-memory 3.1.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-serde", + "solana-serde-varint 3.0.1", + "solana-short-vec 3.2.2", + "solana-shred-version", + "solana-signature 3.4.1", + "solana-signer", + "solana-time-utils", + "solana-transaction 3.1.0", + "solana-transaction-error 3.3.2", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-sdk-ids" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5d8b9cc68d5c88b062a33e23a6466722467dde0035152d8fb1afbcdf350a5f" +dependencies = [ + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-sdk-ids" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "def234c1956ff616d46c9dd953f251fa7096ddbaa6d52b165218de97882b7280" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-sdk-macro" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86280da8b99d03560f6ab5aca9de2e38805681df34e0bb8f238e69b29433b9df" +dependencies = [ + "bs58", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "solana-sdk-macro" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8765316242300c48242d84a41614cb3388229ec353ba464f6fe62a733e41806f" +dependencies = [ + "bs58", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baa3120b6cdaa270f39444f5093a90a7b03d296d362878f7a6991d6de3bbe496" +dependencies = [ + "libsecp256k1 0.6.0", + "solana-define-syscall 2.3.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce0d2e8d53946f04e789476d6c407e4997b7fb412483df5fc10c075c65cb2edf" +dependencies = [ + "k256", + "solana-define-syscall 5.2.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-seed-derivable" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7bdb72758e3bec33ed0e2658a920f1f35dfb9ed576b951d20d63cb61ecd95c" +dependencies = [ + "solana-derivation-path", +] + +[[package]] +name = "solana-seed-phrase" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc905b200a95f2ea9146e43f2a7181e3aeb55de6bc12afb36462d00a3c7310de" +dependencies = [ + "hmac", + "pbkdf2", + "sha2 0.10.9", +] + +[[package]] +name = "solana-serde" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709a93cab694c70f40b279d497639788fc2ccbcf9b4aa32273d4b361322c02dd" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serde-varint" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a7e155eba458ecfb0107b98236088c3764a09ddf0201ec29e52a0be40857113" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serde-varint" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "950e5b83e839dc0f92c66afc124bb8f40e89bc90f0579e8ec5499296d27f54e3" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serialize-utils" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "817a284b63197d2b27afdba829c5ab34231da4a9b4e763466a003c40ca4f535e" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-serialize-utils" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "761357b0853c9623bf12c1d2314b3d6160a85b087b84c45224fb85766d22616b" +dependencies = [ + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sanitize 3.0.1", +] + +[[package]] +name = "solana-sha256-hasher" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa3feb32c28765f6aa1ce8f3feac30936f16c5c3f7eb73d63a5b8f6f8ecdc44" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", +] + +[[package]] +name = "solana-sha256-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db7dc3011ea4c0334aaaa7e7128cb390ecf546b28d412e9bf2064680f57f588f" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-sha512-hasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11e10e103ab5bd52af341e7bc2f4123a2f4e66bb7ba4e6ca40f1e00cd6314e02" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 5.2.0", + "solana-hash-512", +] + +[[package]] +name = "solana-short-vec" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c54c66f19b9766a56fa0057d060de8378676cb64987533fa088861858fc5a69" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-short-vec" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8250a4495aad49ad20556a607da53bdcb20de78da10b65afbf918b7f1de647" +dependencies = [ + "serde_core", + "wincode", +] + +[[package]] +name = "solana-shred-version" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6c79722e299d957958bf33695f7cd1ef6724ff55563c60fd9e3e24487cccde2" +dependencies = [ + "solana-hard-forks", + "solana-hash 4.5.0", + "solana-sha256-hasher 3.1.0", +] + +[[package]] +name = "solana-signature" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64c8ec8e657aecfc187522fc67495142c12f35e55ddeca8698edbb738b8dbd8c" +dependencies = [ + "five8 0.2.1", + "serde", + "serde-big-array", + "serde_derive", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-signature" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0364c7577c3c82a693ce28a1febc8d1b5d1b0a175fdc2114ae6186b69effe1e" +dependencies = [ + "ed25519-dalek", + "five8 1.0.0", + "rand 0.9.5", + "serde", + "serde-big-array", + "serde_derive", + "solana-sanitize 3.0.1", + "wincode", +] + +[[package]] +name = "solana-signer" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520bd6021163ee517f4bdc7ae03ded904f97e11320001ba0b3355f45eb14f558" +dependencies = [ + "solana-pubkey 4.2.0", + "solana-signature 3.4.1", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-slot-hashes" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c8691982114513763e88d04094c9caa0376b867a29577939011331134c301ce" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 2.3.0", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-hashes" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7ce2b4b8911bf2db3de7b6266e67bfc21a6a9f8c566fb096d9782ca2ad16ee" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-slot-history" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97ccc1b2067ca22754d5283afb2b0126d61eae734fc616d23871b0943b0d935e" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-history" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40427c04d3e808493cb5e3d1a97cef84d7c15cb6f89b15c5684d0d4027105600" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-stable-layout" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f14f7d02af8f2bc1b5efeeae71bc1c2b7f0f65cd75bcc7d8180f2c762a57f54" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-stable-layout" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9f6a291ba063a37780af29e7db14bdd3dc447584d8ba5b3fc4b88e2bbc982fa" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-stake-history" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c736a6aa0e53b9d264d90b06589fc0996f49f882f3e71842ed754fc57ffc1a43" +dependencies = [ + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-stake-interface" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5269e89fde216b4d7e1d1739cf5303f8398a1ff372a81232abbee80e554a838c" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", + "num-traits", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-cpi 2.2.1", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-system-interface 1.0.0", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-stake-interface" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252b4291eb25a5a356149ed4d4a940d5f655186210fa84b5d0d8d55c3dd42a81" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-svm-callback" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf863c5b86e90e51c18ed08cfd8e21f9cfa60122d60d6364cde7083bf6de837c" +dependencies = [ + "solana-account 4.3.2", + "solana-clock 3.1.1", + "solana-precompile-error", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-feature-set" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "580d385250ddc3826e5d082b221d9d1047bddcc63ee18313f14dcafb95fdcae5" + +[[package]] +name = "solana-svm-log-collector" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f97c2c829a06a1b3bdbad1f770891768c1f0005b322acd7c192ad92157fe525" +dependencies = [ + "log", +] + +[[package]] +name = "solana-svm-measure" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79ec1451e86552456f1e9a1cc7ffafea01ba3383d8246ba636a11cf286da9fc3" + +[[package]] +name = "solana-svm-timings" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33a2692a88fabf56275bb40c39596d6e550a43f6e56b77fa6f0468e0affd977" +dependencies = [ + "eager", + "enum-iterator", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-transaction" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736d2cec944c6f8f298a7bd8ada5eb318cca9ab859281b1300842fa0e9a25afa" +dependencies = [ + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-transaction 4.1.6", +] + +[[package]] +name = "solana-svm-type-overrides" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74a3ba41956ba930a335589eedf0784dfa4be0527ef236df8ad3996a26b5f19f" +dependencies = [ + "rand 0.9.5", +] + +[[package]] +name = "solana-syscalls" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d31c37dc2425afc13ddb2fc8365db8dbd02ac860a454c25b3897831036a64dd8" +dependencies = [ + "bincode", + "libsecp256k1 0.7.2", + "num-traits", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-blake3-hasher 3.1.0", + "solana-bls12-381-syscall", + "solana-bn254", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-curve25519", + "solana-hash 4.5.0", + "solana-hash-512", + "solana-instruction 3.4.1", + "solana-keccak-hasher 3.1.0", + "solana-poseidon", + "solana-program-entrypoint 3.1.1", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.3.0", + "solana-sha256-hasher 3.1.0", + "solana-sha512-hasher", + "solana-stable-layout 3.0.1", + "solana-stake-interface 4.3.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-type-overrides", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction-context", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "solana-system-interface" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94d7c18cb1a91c6be5f5a8ac9276a1d7c737e39a21beba9ea710ab4b9c63bc90" +dependencies = [ + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-system-interface" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e1790547bfc3061f1ee68ea9d8dc6c973c02a163697b24263a8e9f2e6d4afa2" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-instruction 3.4.1", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", +] + +[[package]] +name = "solana-system-interface" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55b54965bf0b76fa8e2b35376583efddd4d916618cfe595bf48c7d7b55a9e628" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "wincode", +] + +[[package]] +name = "solana-system-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2610e0b091b920da610ad3e5ba850530702f5ac911b4e9dc5ab9a025a772138a" +dependencies = [ + "bincode", + "log", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-fee-calculator 3.2.2", + "solana-instruction 3.4.1", + "solana-nonce 3.2.1", + "solana-nonce-account", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-transaction-context", +] + +[[package]] +name = "solana-sysvar" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c3595f95069f3d90f275bb9bd235a1973c4d059028b0a7f81baca2703815db" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 2.3.0", + "solana-clock 2.2.3", + "solana-define-syscall 2.3.0", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-instructions-sysvar 2.2.2", + "solana-last-restart-slot 2.2.1", + "solana-program-entrypoint 2.3.0", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stake-interface 1.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-sysvar" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6690d3dd88f15c21edff68eb391ef8800df7a1f5cec84ee3e8d1abf05affdf74" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-define-syscall 4.0.1", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-calculator 3.2.2", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 4.2.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-sysvar" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ada7045bbfdd802af08fbc9c7e2b56ddabb20599d22e4c3840fcef5e7afb8324" +dependencies = [ + "base64 0.22.1", + "bincode", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-define-syscall 5.2.0", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-calculator 3.2.2", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stake-history", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-sysvar-id" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5762b273d3325b047cfda250787f8d796d781746860d5d0a746ee29f3e8812c1" +dependencies = [ + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-sysvar-id" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17358d1e9a13e5b9c2264d301102126cf11a47fd394cdf3dec174fe7bc96e1de" +dependencies = [ + "solana-address 2.6.1", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-time-utils" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ced92c60aa76ec4780a9d93f3bd64dfa916e1b998eacc6f1c110f3f444f02c9" + +[[package]] +name = "solana-transaction" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96697cff5075a028265324255efed226099f6d761ca67342b230d09f72cc48d2" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-message 3.1.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-signer", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-transaction" +version = "4.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8008008a75246adaf8b67411093a6d78db8232c74b00eff6041fd1da73679e7" +dependencies = [ + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-message 4.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-signer", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-transaction-context" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d61811155533aebcf806e694d3ed91be7fc168dc9bdcf25e8eb98b9234c7c3" +dependencies = [ + "bincode", + "qualifier_attr", + "serde", + "solana-account 4.3.2", + "solana-instruction 3.4.1", + "solana-instructions-sysvar 4.0.0", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-transaction-error" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222a9dc8fdb61c6088baab34fc3a8b8473a03a7a5fd404ed8dd502fa79b67cb1" +dependencies = [ + "solana-instruction 2.3.3", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-transaction-error" +version = "3.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "054e54d15164b0c34cb744600a1a0330e9fd97a12d979f2eb95904c807a07713" +dependencies = [ + "serde", + "serde_derive", + "solana-instruction-error", + "solana-sanitize 3.0.1", +] + +[[package]] +name = "solana-vote-interface" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b80d57478d6599d30acc31cc5ae7f93ec2361a06aefe8ea79bc81739a08af4c3" +dependencies = [ + "bincode", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-decode-error", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serde-varint 2.2.2", + "solana-serialize-utils 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-vote-interface" +version = "6.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13a7a204b455a53fe8c9a26a6885391a5896835e06694dbe0cf37c580f82f128" +dependencies = [ + "bincode", + "cfg_eval", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "serde_with", + "solana-clock 3.1.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-serde-varint 3.0.1", + "solana-serialize-utils 3.1.2", + "solana-short-vec 3.2.2", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-vote-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69c6faf8370369c45bc14eeca8dc0249450b940b57dcfcec0103403f9feaf88a" +dependencies = [ + "agave-feature-set", + "bincode", + "log", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-bls-signatures", + "solana-clock 3.1.1", + "solana-epoch-schedule 3.2.0", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", + "solana-system-interface 3.2.0", + "solana-transaction-context", + "solana-vote-interface 6.0.3", +] + +[[package]] +name = "solana-zk-elgamal-proof-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d55e2d0d7f884295989dae8b7e0b6d7a46d87ed2d917113007383261e5e93d" +dependencies = [ + "bytemuck", + "solana-instruction 3.4.1", + "solana-program-runtime", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-zk-sdk", +] + +[[package]] +name = "solana-zk-sdk" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09670ff59f60e6ddc2209c2e4353992a9b9f01d4e244f3e9d67bd5146e33d388" +dependencies = [ + "aes-gcm-siv", + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "itertools 0.14.0", + "merlin", + "num-derive", + "num-traits", + "rand 0.8.8", + "serde", + "serde_derive", + "serde_json", + "sha3", + "solana-address 2.6.1", + "solana-derivation-path", + "solana-instruction 3.4.1", + "solana-sdk-ids 3.1.0", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature 3.4.1", + "solana-signer", + "subtle", + "thiserror 2.0.20", + "zeroize", +] + +[[package]] +name = "solana-zk-token-proof-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc32fcd9ff8bb90837755deccefdb20518484626c0a9d0649a36e5fcb0fcf520" +dependencies = [ + "solana-program-runtime", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "spl-associated-token-account-interface" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6bbe0794e532ac08428d3abf5bf8ae75bd81dfddd785c388e326c00c92c6f5" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[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.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tar" +version = "0.4.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6221d9a6003c78398e3b239969f352578258df48c8eb051caadae0015bc840" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "test-utils" +version = "0.1.0" +dependencies = [ + "magicsvm", + "serde_json", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-signer", + "solana-transaction 4.1.6", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" +dependencies = [ + "thiserror-impl 2.0.20", +] + +[[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.119", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "tinyvec" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee" + +[[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 = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.25.15+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1340ea94a5856333492c9064b02c778b191dd2c853778d9609debdcdfea3a614" +dependencies = [ + "indexmap", + "toml_datetime", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" +dependencies = [ + "winnow", +] + +[[package]] +name = "typed-path" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" + +[[package]] +name = "typenum" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +dependencies = [ + "void", +] + +[[package]] +name = "ureq" +version = "3.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a7ac20be9b7726e0bbdbf974c059676d9acb1cd414961f570a4e8231cacd7fc" +dependencies = [ + "base64 0.23.1", + "log", + "percent-encoding", + "ureq-proto", + "utf8-zero", +] + +[[package]] +name = "ureq-proto" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0809a01d1ca5a51ca70db32bb2a19157582a526505ef3c19e3b343a59aa5ad" +dependencies = [ + "base64 0.23.1", + "http", + "httparse", + "log", +] + +[[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 = "utf8-zero" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e" + +[[package]] +name = "uuid" +version = "1.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ef6dac1e96601b4fb3acccccff2139741fcb757cb9a36089bf5be91cfb285ce" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[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.4+wasi-0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aecb87a33d3b0c5e3b7aa46336eaf486cffafbd281b195e4c8b80d50df2351bf" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a690d511e3c1a8b3a55e33511e3c2c00c78415cd23650f32b808627f5696b9ed" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "411e4887f0071ef2d2164a9d5fdf2d20efbef78fccd3a78b0c10a1dc5295e48a" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 3.0.5", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81941cd78d0c92026c33e5e01312845a4cb1e9af3407f9134b100dd03144103e" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "web-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fbddc4a036f00ec4f18c83445bd3115cb306a91da554919a099d9222fe4a7f8" +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-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "wincode" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66d967db7705dc29120bb6e8ce5b5a2e27734ed5976d1c904e95bd238d1c3c5a" +dependencies = [ + "bv", + "pastey", + "proc-macro2", + "quote", + "thiserror 2.0.20", + "wincode-derive", +] + +[[package]] +name = "wincode-derive" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15ab90b719560d0fda79c74550ad1c948d17b118765942838055ebaf34d67071" +dependencies = [ + "darling 0.23.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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 = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "xattr" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" +dependencies = [ + "libc", + "rustix", +] + +[[package]] +name = "zerocopy" +version = "0.8.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d35102a9f36d089ccae9e4c6802bc118be4487b80aaffc0ab4e0cf5ce92d2873" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c01f5ab44258da43cf276c74a2763db2ff3969c9c652c3f2de07041d0b2bc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zeroize" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zip" +version = "8.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b" +dependencies = [ + "crc32fast", + "flate2", + "indexmap", + "memchr", + "typed-path", + "zopfli", +] + +[[package]] +name = "zlib-rs" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b268e58e7c693d7c271f93ffc4ba3b380412554231c85bf61ca7af91042a4112" + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" + +[[package]] +name = "zopfli" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" +dependencies = [ + "bumpalo", + "crc32fast", + "log", + "simd-adler32", +] diff --git a/oncurve-delegation/client/tests-magicsvm-rs/Cargo.toml b/oncurve-delegation/client/tests-magicsvm-rs/Cargo.toml new file mode 100644 index 00000000..ad8155e1 --- /dev/null +++ b/oncurve-delegation/client/tests-magicsvm-rs/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "oncurve-delegation-magicsvm-rs" +version = "0.1.0" +edition = "2021" +publish = false + +[workspace] + +[dependencies] +borsh = "1.6.1" +dlp_api = { package = "magicblock-delegation-program-api", version = "3.0.0", default-features = false, features = [ + "instruction", +] } +ephemeral-rollups-sdk = { version = "0.14.4", default-features = false } +magicsvm = "0.2.0" +test-utils = { path = "../../../test-utils/rust" } +solana-address = "~2.6.1" +solana-instruction = { version = "~3.4.0", features = ["bincode"] } +solana-keypair = "3.1.2" +solana-message = "4.2.4" +solana-native-token = "3.0.0" +solana-sdk-ids = "3.1.0" +solana-signer = "3.0.1" +solana-system-interface = "3.2.0" +solana-transaction = { version = "4.1.5", features = ["verify"] } diff --git a/oncurve-delegation/client/tests-magicsvm-rs/tests/magicsvm.rs b/oncurve-delegation/client/tests-magicsvm-rs/tests/magicsvm.rs new file mode 100644 index 00000000..ca20ea95 --- /dev/null +++ b/oncurve-delegation/client/tests-magicsvm-rs/tests/magicsvm.rs @@ -0,0 +1,164 @@ +use { + dlp_api::{ + args::DelegateArgs, + consts::DELEGATION_PROGRAM_ID, + discriminator::DlpDiscriminator, + pda::{DELEGATE_BUFFER_TAG, DELEGATION_METADATA_TAG, DELEGATION_RECORD_TAG}, + }, + ephemeral_rollups_sdk::consts::{MAGIC_CONTEXT_ID, MAGIC_PROGRAM_ID}, + magicsvm::{MagicSVM, TransactionTarget}, + solana_address::Address, + solana_instruction::{account_meta::AccountMeta, Instruction}, + solana_keypair::Keypair, + solana_message::Message, + solana_native_token::LAMPORTS_PER_SOL, + solana_signer::Signer, + solana_system_interface::instruction::{allocate, assign}, + solana_transaction::Transaction, + test_utils::send_ixs, +}; + +fn delegate_ix( + payer: Address, + delegated_account: Address, + owner: Address, + validator: Address, +) -> Instruction { + let delegate_buffer = + Address::find_program_address(&[DELEGATE_BUFFER_TAG, delegated_account.as_ref()], &owner).0; + let delegation_record = Address::find_program_address( + &[DELEGATION_RECORD_TAG, delegated_account.as_ref()], + &DELEGATION_PROGRAM_ID, + ) + .0; + let delegation_metadata = Address::find_program_address( + &[DELEGATION_METADATA_TAG, delegated_account.as_ref()], + &DELEGATION_PROGRAM_ID, + ) + .0; + let args = DelegateArgs { + commit_frequency_ms: u32::MAX, + seeds: Vec::new(), + validator: Some(validator.to_bytes().into()), + }; + let mut data = DlpDiscriminator::Delegate.to_vec(); + data.extend_from_slice(&borsh::to_vec(&args).expect("serialize DelegateArgs")); + + Instruction { + program_id: DELEGATION_PROGRAM_ID, + accounts: vec![ + AccountMeta::new(payer, true), + AccountMeta::new(delegated_account, true), + AccountMeta::new_readonly(owner, false), + AccountMeta::new(delegate_buffer, false), + AccountMeta::new(delegation_record, false), + AccountMeta::new(delegation_metadata, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::id(), false), + ], + data, + } +} + +fn commit_ix(payer: Address, delegated_account: Address) -> Instruction { + Instruction { + program_id: MAGIC_PROGRAM_ID, + accounts: vec![ + AccountMeta::new(payer, true), + AccountMeta::new(MAGIC_CONTEXT_ID, false), + AccountMeta::new_readonly(delegated_account, false), + ], + data: vec![1, 0, 0, 0], + } +} + +fn commit_and_undelegate_ix(payer: Address, delegated_account: Address) -> Instruction { + Instruction { + program_id: MAGIC_PROGRAM_ID, + accounts: vec![ + AccountMeta::new(payer, true), + AccountMeta::new(MAGIC_CONTEXT_ID, false), + AccountMeta::new(delegated_account, false), + ], + data: vec![2, 0, 0, 0], + } +} + +#[test] +fn oncurve_assign_delegate_commit_undelegate() { + let user = Keypair::new(); + let fee_payer = Keypair::new(); + let mut svm = MagicSVM::new(); + let validator = svm.validator_identity(); + + svm.airdrop(&user.pubkey(), 2 * LAMPORTS_PER_SOL) + .expect("user airdrop"); + svm.airdrop(&fee_payer.pubkey(), LAMPORTS_PER_SOL) + .expect("fee payer airdrop"); + + send_ixs( + &mut svm, + TransactionTarget::Base, + &[&fee_payer, &user], + &[ + assign(&user.pubkey(), &DELEGATION_PROGRAM_ID), + delegate_ix( + fee_payer.pubkey(), + user.pubkey(), + solana_sdk_ids::system_program::id(), + validator, + ), + ], + "delegate", + ); + + let base = svm + .get_account(&user.pubkey()) + .expect("delegated account on base"); + assert_eq!(base.owner, DELEGATION_PROGRAM_ID); + assert!( + svm.get_account_for(TransactionTarget::Ephemeral, &user.pubkey()) + .is_some(), + "delegated account missing on ephemeral" + ); + + send_ixs( + &mut svm, + TransactionTarget::Ephemeral, + &[&fee_payer, &user], + &[commit_ix(user.pubkey(), user.pubkey())], + "commit", + ); + + assert!( + svm.get_account(&user.pubkey()).is_some(), + "committed account missing on base" + ); + assert!( + svm.get_account_for(TransactionTarget::Ephemeral, &user.pubkey()) + .is_some(), + "committed account missing on ephemeral" + ); + + svm.expire_blockhash_for(TransactionTarget::Ephemeral); + send_ixs( + &mut svm, + TransactionTarget::Ephemeral, + &[&fee_payer, &user], + &[commit_and_undelegate_ix(user.pubkey(), user.pubkey())], + "commit-and-undelegate", + ); + + assert!( + svm.get_account(&user.pubkey()).is_some(), + "undelegated account missing on base" + ); + + svm.expire_blockhash_for(TransactionTarget::Ephemeral); + let rejected = Transaction::new( + &[&user, &fee_payer], + Message::new(&[allocate(&user.pubkey(), 8)], Some(&fee_payer.pubkey())), + svm.latest_blockhash_for(TransactionTarget::Ephemeral), + ); + svm.send_transaction_to(TransactionTarget::Ephemeral, rejected) + .expect_err("undelegated on-curve account must not stay writable on ephemeral"); +} diff --git a/oncurve-delegation/client/tests-magicsvm/oncurve-delegation.test.ts b/oncurve-delegation/client/tests-magicsvm/oncurve-delegation.test.ts new file mode 100644 index 00000000..9dcbd582 --- /dev/null +++ b/oncurve-delegation/client/tests-magicsvm/oncurve-delegation.test.ts @@ -0,0 +1,112 @@ +import { + Keypair, + LAMPORTS_PER_SOL, + PublicKey, + SystemProgram, +} from "@solana/web3.js"; +import { MagicSVM } from "@magicblock-labs/magicsvm"; +import { + createCommitAndUndelegateInstruction, + createCommitInstruction, + createDelegateInstruction, + DELEGATION_PROGRAM_ID, + airdropOrThrow, + isDelegated, + sendExpectingFailure, + sendSvmIx, + validatorPubkey, +} from "@magicblock-labs/test-utils"; +import { describe, expect, it } from "vitest"; + +const ownerProgram = SystemProgram.programId; + +describe("on-curve-delegation-magicsvm", () => { + const svm = new MagicSVM(); + const userKeypair = Keypair.generate(); + const feePayerKeypair = Keypair.generate(); + const userPubkey = userKeypair.publicKey; + const feePayerPubkey = feePayerKeypair.publicKey; + const validator = new PublicKey(validatorPubkey(svm)); + + airdropOrThrow(svm, userPubkey, BigInt(2 * LAMPORTS_PER_SOL), "user airdrop"); + airdropOrThrow( + svm, + feePayerPubkey, + BigInt(LAMPORTS_PER_SOL), + "fee payer airdrop", + ); + + it("Assign owner + Delegate on-curve account", () => { + const assignInstruction = SystemProgram.assign({ + accountPubkey: userPubkey, + programId: DELEGATION_PROGRAM_ID, + }); + const delegateInstruction = createDelegateInstruction({ + payer: feePayerPubkey, + delegatedAccount: userPubkey, + ownerProgram, + validator, + }); + + sendSvmIx( + svm, + [feePayerKeypair, userKeypair], + [assignInstruction, delegateInstruction], + "base", + "delegate", + ); + + const base = svm.getAccount(userPubkey); + expect(base.exists).toBe(true); + if (!base.exists) { + throw new Error("delegated account missing on base"); + } + expect(isDelegated(svm, userPubkey)).toBe(true); + + const ephemeral = svm.getAccountFor(userPubkey, { target: "ephemeral" }); + expect(ephemeral.exists).toBe(true); + }); + + it("Commit on-curve account", () => { + const commitInstruction = createCommitInstruction(userPubkey, [userPubkey]); + sendSvmIx( + svm, + [feePayerKeypair, userKeypair], + [commitInstruction], + "ephemeral", + "commit", + ); + + const base = svm.getAccount(userPubkey); + const ephemeral = svm.getAccountFor(userPubkey, { target: "ephemeral" }); + expect(base.exists).toBe(true); + expect(ephemeral.exists).toBe(true); + }); + + it("Commit and undelegate on-curve account", () => { + const commitAndUndelegateInstruction = createCommitAndUndelegateInstruction( + userPubkey, + [userPubkey], + ); + sendSvmIx( + svm, + [feePayerKeypair, userKeypair], + [commitAndUndelegateInstruction], + "ephemeral", + "commit-and-undelegate", + ); + + const base = svm.getAccount(userPubkey); + expect(base.exists).toBe(true); + + sendExpectingFailure( + svm, + [feePayerKeypair, userKeypair], + SystemProgram.allocate({ + accountPubkey: userPubkey, + space: 8, + }), + "ephemeral", + ); + }); +}); diff --git a/oncurve-delegation/client/vitest.config.ts b/oncurve-delegation/client/vitest.config.ts index a4eef781..9b289070 100644 --- a/oncurve-delegation/client/vitest.config.ts +++ b/oncurve-delegation/client/vitest.config.ts @@ -1,10 +1,9 @@ -import { defineConfig } from 'vitest/config'; +import { defineConfig } from "vitest/config"; export default defineConfig({ test: { fileParallelism: false, - include: ['tests/**/*.test.ts'], - reporters: 'verbose', + include: ["tests/**/*.test.ts", "tests-magicsvm/**/*.test.ts"], + reporters: "verbose", }, }); - \ No newline at end of file diff --git a/oncurve-delegation/client/yarn.lock b/oncurve-delegation/client/yarn.lock index 46d79904..bd9d8d2a 100644 --- a/oncurve-delegation/client/yarn.lock +++ b/oncurve-delegation/client/yarn.lock @@ -7,6 +7,43 @@ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326" integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== +"@babel/runtime@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.7.tgz#12022450c45a4da6d8d8287b18a4ff2ddb23f768" + integrity sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw== + +"@coral-xyz/anchor-errors@^0.31.1": + version "0.31.1" + resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" + integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== + +"@coral-xyz/anchor@0.32.1": + version "0.32.1" + resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" + integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== + dependencies: + "@coral-xyz/anchor-errors" "^0.31.1" + "@coral-xyz/borsh" "^0.31.1" + "@noble/hashes" "^1.3.1" + "@solana/web3.js" "^1.69.0" + bn.js "^5.1.2" + bs58 "^4.0.1" + buffer-layout "^1.2.2" + camelcase "^6.3.0" + cross-fetch "^3.1.5" + eventemitter3 "^4.0.7" + pako "^2.0.3" + superstruct "^0.15.4" + toml "^3.0.0" + +"@coral-xyz/borsh@^0.31.1": + version "0.31.1" + resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.31.1.tgz#5328e1e0921b75d7f4a62dd3f61885a938bc7241" + integrity sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw== + dependencies: + bn.js "^5.1.2" + buffer-layout "^1.2.0" + "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" @@ -204,14 +241,62 @@ tweetnacl "^1.0.3" typescript "^5.3.0" -"@noble/curves@^1.4.2": +"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" + integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== + +"@magicblock-labs/magicsvm-darwin-x64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" + integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== + +"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" + integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== + +"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" + integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== + +"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" + integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== + +"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" + integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== + +"@magicblock-labs/magicsvm@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" + integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== + dependencies: + "@solana/web3.js" "3.0.0-rc.3" + optionalDependencies: + "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" + "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" + +"@magicblock-labs/test-utils@link:../../test-utils/ts": + version "0.0.0" + uid "" + +"@noble/curves@^1.4.2", "@noble/curves@^1.9.7": version "1.9.7" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== dependencies: "@noble/hashes" "1.8.0" -"@noble/hashes@1.8.0", "@noble/hashes@^1.4.0": +"@noble/hashes@1.8.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0", "@noble/hashes@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== @@ -371,6 +456,31 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.3.tgz#38ae84f4c04226c1d56a3b17296ef1e0460ecdfe" integrity sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ== +"@solana-program/address-lookup-table@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" + integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== + +"@solana-program/compute-budget@^0.18.0": + version "0.18.1" + resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" + integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== + +"@solana-program/loader-v3@^0.6.0": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" + integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== + +"@solana-program/stake@^0.9.0": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" + integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== + +"@solana-program/system@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" + integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== + "@solana-program/system@^0.9.0": version "0.9.1" resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.9.1.tgz#fafd9abaa2a48adb80a78e5f712847b3d817b37c" @@ -388,6 +498,18 @@ "@solana/rpc-spec" "4.0.0" "@solana/rpc-types" "4.0.0" +"@solana/accounts@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" + integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/addresses@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-4.0.0.tgz#cd836e473ecdd286d5787401f16193ca5725b39e" @@ -399,6 +521,17 @@ "@solana/errors" "4.0.0" "@solana/nominal-types" "4.0.0" +"@solana/addresses@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" + integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/assertions@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-4.0.0.tgz#ec863ea412a66edb1a97ef789e694439fd4ee679" @@ -406,6 +539,13 @@ dependencies: "@solana/errors" "4.0.0" +"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" + integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/buffer-layout@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" @@ -427,6 +567,20 @@ dependencies: "@solana/errors" "4.0.0" +"@solana/codecs-core@5.5.1": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-5.5.1.tgz#1b2619c697ad04c99f98cc468135d584b7e2b16d" + integrity sha512-TgBt//bbKBct0t6/MpA8ElaOA3sa8eYVvR7LGslCZ84WiAwwjCY0lW/lOYsFHJQzwREMdUyuEyy5YWBKtdh8Rw== + dependencies: + "@solana/errors" "5.5.1" + +"@solana/codecs-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" + integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/codecs-data-structures@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-4.0.0.tgz#8e60f68f26ae7dac5c88d4f5684c4c5ce7d6db62" @@ -436,6 +590,15 @@ "@solana/codecs-numbers" "4.0.0" "@solana/errors" "4.0.0" +"@solana/codecs-data-structures@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" + integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/codecs-numbers@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-4.0.0.tgz#fc5c451ff2f1ca1e3a13cf85230e768a47b9a788" @@ -444,6 +607,14 @@ "@solana/codecs-core" "4.0.0" "@solana/errors" "4.0.0" +"@solana/codecs-numbers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" + integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/codecs-numbers@^2.1.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" @@ -452,6 +623,14 @@ "@solana/codecs-core" "2.3.0" "@solana/errors" "2.3.0" +"@solana/codecs-numbers@^5.5.1": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-5.5.1.tgz#6ebc43250133ceb7836f1ac5780a7767e383efde" + integrity sha512-rllMIZAHqmtvC0HO/dc/21wDuWaD0B8Ryv8o+YtsICQBuiL/0U4AGwH7Pi5GNFySYk0/crSuwfIqQFtmxNSPFw== + dependencies: + "@solana/codecs-core" "5.5.1" + "@solana/errors" "5.5.1" + "@solana/codecs-strings@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-4.0.0.tgz#b4c77d6ff6eeec868a71e5b0cb42bdb9f0c6b500" @@ -461,6 +640,15 @@ "@solana/codecs-numbers" "4.0.0" "@solana/errors" "4.0.0" +"@solana/codecs-strings@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" + integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/codecs@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-4.0.0.tgz#211235fd56fa60f5d96b88b14d7317bf6d88535b" @@ -472,6 +660,18 @@ "@solana/codecs-strings" "4.0.0" "@solana/options" "4.0.0" +"@solana/codecs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" + integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/options" "8.3.0" + "@solana/errors@2.3.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.3.0.tgz#4ac9380343dbeffb9dffbcb77c28d0e457c5fa31" @@ -488,16 +688,50 @@ chalk "5.6.2" commander "14.0.1" +"@solana/errors@5.5.1": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-5.5.1.tgz#1c17bc822264fd5a6305d8bfb9d597858e4ce17b" + integrity sha512-vFO3p+S7HoyyrcAectnXbdsMfwUzY2zYFUc2DEe5BwpiE9J1IAxPBGjOWO6hL1bbYdBrlmjNx8DXCslqS+Kcmg== + dependencies: + chalk "5.6.2" + commander "14.0.2" + +"@solana/errors@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" + integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== + dependencies: + chalk "5.6.2" + commander "15.0.0" + "@solana/fast-stable-stringify@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-4.0.0.tgz#ecba09686fdd3a6a6dd1e41be3395d2bb6dd583e" integrity sha512-sNJRi0RQ93vkGQ9VyFTSGm6mfKLk0FWOFpJLcqyP0BNUK1CugBaUMnxAmGqNaVSCktJagTSLqAMi9k1VSdh+Cg== +"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" + integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== + +"@solana/fixed-points@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" + integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-4.0.0.tgz#157febe2cb837b7272956794853ba80b5315da22" integrity sha512-duprxASuT0VXlHj3bLBdy9+ZpqdmCZhzCUmTsXps4UlDKr9PxSCQIQ+NK6OPhtBWOh1sNEcT1f1nY/MVqF/KHg== +"@solana/functional@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" + integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== + "@solana/instruction-plans@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-4.0.0.tgz#38a4021eb99b9136204d77b84d579740cd94a979" @@ -509,6 +743,18 @@ "@solana/transaction-messages" "4.0.0" "@solana/transactions" "4.0.0" +"@solana/instruction-plans@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" + integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/instructions@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-4.0.0.tgz#989c3ad30de9e3c52a8a7a094964b4500b1a717e" @@ -517,6 +763,14 @@ "@solana/codecs-core" "4.0.0" "@solana/errors" "4.0.0" +"@solana/instructions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" + integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-4.0.0.tgz#12c39db588115beaf13648b778bcdb1acfe09052" @@ -528,6 +782,18 @@ "@solana/errors" "4.0.0" "@solana/nominal-types" "4.0.0" +"@solana/keys@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" + integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/kit@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-4.0.0.tgz#741cf567426e88c194dfd27ef2616d261f6ff7b9" @@ -553,11 +819,63 @@ "@solana/transaction-messages" "4.0.0" "@solana/transactions" "4.0.0" +"@solana/kit@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" + integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/plugin-core" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/program-client-core" "8.3.0" + "@solana/programs" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/sysvars" "8.3.0" + "@solana/transaction-confirmation" "8.3.0" + "@solana/transaction-introspection" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/nominal-types@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-4.0.0.tgz#0ba8f10ef7c1de4b12c0781d44805d8984a17c18" integrity sha512-zIjHZY+5uboigbzsNhHmF3AlP/xACYxbB0Cb1VAI9i+eFShMeu/3VIrj7x1vbq9hfQKGSFHNFGFqQTivdzpbLw== +"@solana/nominal-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" + integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== + +"@solana/offchain-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" + integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/options@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/options/-/options-4.0.0.tgz#a66a7c9211d1257037551afd470b7a4380f8efcc" @@ -569,6 +887,52 @@ "@solana/codecs-strings" "4.0.0" "@solana/errors" "4.0.0" +"@solana/options@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" + integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/plugin-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" + integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== + +"@solana/plugin-interfaces@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" + integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/program-client-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" + integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/programs@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-4.0.0.tgz#473c3614c5079f0a9dfd73ec46a684a1c389b33d" @@ -577,11 +941,24 @@ "@solana/addresses" "4.0.0" "@solana/errors" "4.0.0" +"@solana/programs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" + integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/promises@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-4.0.0.tgz#0ebf2dede764be71aa708479f6c4371ee58f76da" integrity sha512-zEh815+n2OrrQunZ6m1iuNcoZRc9YnQaTeivBSgl1SYfPaq/Qj/rRiK5DID25Njo4L44p5quu7aal3Bk/eR+tQ== +"@solana/promises@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" + integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== + "@solana/rpc-api@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-4.0.0.tgz#872bcd276befe0d9b69b66d73e7fe43219b9779e" @@ -599,16 +976,45 @@ "@solana/transaction-messages" "4.0.0" "@solana/transactions" "4.0.0" +"@solana/rpc-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" + integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/rpc-parsed-types@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-4.0.0.tgz#2a328092e53cce00d647f21da2a72bbae4d124f5" integrity sha512-aOjwJwen5D0aDXoSths+ekdBO4mu7nmM+yASqCVW2PLN6v7NZmRBzV1/PgMFjDTiymVQj25ipCUvL395s1wsKg== +"@solana/rpc-parsed-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" + integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== + "@solana/rpc-spec-types@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-4.0.0.tgz#8e9450b73aa5a4a187c3f59335bcfda94321f880" integrity sha512-rpFMIaetpubeyDXIlxV08vtmiDt7ME9527kCI61slHj6O2rbj+7fABhmlN6J4YDCcL/kfnMCxZyNna94DovHZA== +"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" + integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-4.0.0.tgz#b4e1f48246286556978d2088980476815f37eea2" @@ -617,6 +1023,15 @@ "@solana/errors" "4.0.0" "@solana/rpc-spec-types" "4.0.0" +"@solana/rpc-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" + integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/rpc-subscriptions-api@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-4.0.0.tgz#fb470cdc83afd696cec06694211340b7737ddf44" @@ -630,6 +1045,19 @@ "@solana/transaction-messages" "4.0.0" "@solana/transactions" "4.0.0" +"@solana/rpc-subscriptions-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" + integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/rpc-subscriptions-channel-websocket@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-4.0.0.tgz#4abe9919b8a0f5de62b7073ba2d696cf812d8f7e" @@ -640,6 +1068,17 @@ "@solana/rpc-subscriptions-spec" "4.0.0" "@solana/subscribable" "4.0.0" +"@solana/rpc-subscriptions-channel-websocket@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" + integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/subscribable" "8.3.0" + ws "^8.21.3" + "@solana/rpc-subscriptions-spec@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-4.0.0.tgz#8b5aa7814378287250071352334ef4a415a133b1" @@ -650,6 +1089,16 @@ "@solana/rpc-spec-types" "4.0.0" "@solana/subscribable" "4.0.0" +"@solana/rpc-subscriptions-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" + integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/rpc-subscriptions@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-4.0.0.tgz#e91dfdb6bdf1c0e9ae7a8f7d91937c543932f822" @@ -667,6 +1116,23 @@ "@solana/rpc-types" "4.0.0" "@solana/subscribable" "4.0.0" +"@solana/rpc-subscriptions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" + integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions-api" "8.3.0" + "@solana/rpc-subscriptions-channel-websocket" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/rpc-transformers@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-4.0.0.tgz#6ef729305c4a2532246fcb3bbd078bcda8bfd640" @@ -678,6 +1144,17 @@ "@solana/rpc-spec-types" "4.0.0" "@solana/rpc-types" "4.0.0" +"@solana/rpc-transformers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" + integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/rpc-transport-http@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-4.0.0.tgz#047b7c5915a5cc32fdb8da57db5991dd5897ba38" @@ -688,6 +1165,16 @@ "@solana/rpc-spec-types" "4.0.0" undici-types "^7.16.0" +"@solana/rpc-transport-http@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" + integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + undici-types "^8.10.2" + "@solana/rpc-types@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-4.0.0.tgz#23eaeb262faaa92ae0a151db65ee4b592dd598c9" @@ -700,6 +1187,19 @@ "@solana/errors" "4.0.0" "@solana/nominal-types" "4.0.0" +"@solana/rpc-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" + integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-4.0.0.tgz#e70cea2943b3dac2631f67154ad4bbc03f3d34fd" @@ -715,6 +1215,21 @@ "@solana/rpc-transport-http" "4.0.0" "@solana/rpc-types" "4.0.0" +"@solana/rpc@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" + integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-transport-http" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-4.0.0.tgz#771e6188129394a0591f2d688c8132f8af933217" @@ -729,6 +1244,21 @@ "@solana/transaction-messages" "4.0.0" "@solana/transactions" "4.0.0" +"@solana/signers@8.3.0", "@solana/signers@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" + integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/subscribable@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-4.0.0.tgz#bb1ce2d36a1051ed639b1c792ae457ec388d9c46" @@ -736,6 +1266,14 @@ dependencies: "@solana/errors" "4.0.0" +"@solana/subscribable@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" + integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/sysvars@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-4.0.0.tgz#25ff5a6d6a163b88f3af5bcbab6001609ff248ab" @@ -746,6 +1284,18 @@ "@solana/errors" "4.0.0" "@solana/rpc-types" "4.0.0" +"@solana/sysvars@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" + integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-confirmation@4.0.0", "@solana/transaction-confirmation@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-4.0.0.tgz#cb6256ba7fc4cf156a2d51563fc8f8ad644fc2ba" @@ -762,6 +1312,36 @@ "@solana/transaction-messages" "4.0.0" "@solana/transactions" "4.0.0" +"@solana/transaction-confirmation@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" + integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/transaction-introspection@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" + integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/transaction-messages@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-4.0.0.tgz#ab28f345d6d0e7e8e0a63e23773c440ae2a46843" @@ -777,6 +1357,21 @@ "@solana/nominal-types" "4.0.0" "@solana/rpc-types" "4.0.0" +"@solana/transaction-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" + integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transactions@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-4.0.0.tgz#d037d7c7966c7aae110b6fa33efa780a211bb013" @@ -795,6 +1390,63 @@ "@solana/rpc-types" "4.0.0" "@solana/transaction-messages" "4.0.0" +"@solana/transactions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" + integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + +"@solana/web3.js@3.0.0-rc.3": + version "3.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" + integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== + dependencies: + "@noble/curves" "^1.4.2" + "@noble/hashes" "^1.4.0" + "@solana-program/address-lookup-table" "^0.14.0" + "@solana-program/compute-budget" "^0.18.0" + "@solana-program/loader-v3" "^0.6.0" + "@solana-program/stake" "^0.9.0" + "@solana-program/system" "^0.14.0" + "@solana/assertions" "^8.2.0" + "@solana/fast-stable-stringify" "^8.2.0" + "@solana/kit" "^8.2.0" + "@solana/rpc-spec-types" "^8.2.0" + "@solana/signers" "^8.2.0" + +"@solana/web3.js@^1.69.0": + version "1.99.0" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.99.0.tgz#864ce3fefe03b258c430e31e6672b422426821f7" + integrity sha512-QZYQ2T1z6xWisoyALPq25i/QZTsRlM02BABtAsfaQ1p8wX4SdTfxrKTRue/ZZqrhNVh5oL7T/DUFiTS9DRgxow== + dependencies: + "@babel/runtime" "^7.29.7" + "@noble/curves" "^1.9.7" + "@noble/hashes" "^1.8.0" + "@solana/buffer-layout" "^4.0.1" + "@solana/codecs-numbers" "^5.5.1" + agentkeepalive "^4.6.0" + bn.js "^5.2.5" + borsh "^0.7.0" + bs58 "^4.0.1" + buffer "6.0.3" + fast-stable-stringify "^1.0.0" + jayson "^4.3.0" + node-fetch "^2.7.0" + rpc-websockets "^9.0.2" + superstruct "^2.0.2" + "@solana/web3.js@^1.98.0", "@solana/web3.js@^1.98.2": version "1.98.4" resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" @@ -977,7 +1629,7 @@ acorn@^8.11.0, acorn@^8.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== -agentkeepalive@^4.5.0: +agentkeepalive@^4.5.0, agentkeepalive@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== @@ -1067,6 +1719,11 @@ bn.js@^4.0.0, bn.js@^4.11.9: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.3.tgz#2cc2c679188eb35b006f2d0d4710bed8437a769e" integrity sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g== +bn.js@^5.1.2, bn.js@^5.2.5: + version "5.2.5" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.5.tgz#e81ce41cf25e6f0cd1e05f20a9db8c18405e375f" + integrity sha512-Vq886eXykuP5E6HcKSSStP3bJgrE6In5WKxVUvJ8XGpWWYs2xZHWqUwzCtGgEtBcxyd57KBFDPFoUfNzdaHCNg== + bn.js@^5.2.0, bn.js@^5.2.1: version "5.2.2" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.2.tgz#82c09f9ebbb17107cd72cb7fd39bd1f9d0aaa566" @@ -1117,6 +1774,11 @@ bs58@^6.0.0: dependencies: base-x "^5.0.0" +buffer-layout@^1.2.0, buffer-layout@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" + integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== + buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" @@ -1137,7 +1799,7 @@ cac@^6.7.14: resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== -camelcase@^6.0.0: +camelcase@^6.0.0, camelcase@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== @@ -1204,11 +1866,16 @@ commander@14.0.1: resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.1.tgz#2f9225c19e6ebd0dc4404dd45821b2caa17ea09b" integrity sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A== -commander@^14.0.0: +commander@14.0.2, commander@^14.0.0: version "14.0.2" resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e" integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== +commander@15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" + integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== + commander@^2.20.3: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -1219,6 +1886,13 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== +cross-fetch@^3.1.5: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" + integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== + dependencies: + node-fetch "^2.7.0" + cross-spawn@^7.0.6: version "7.0.6" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" @@ -1359,6 +2033,11 @@ estree-walker@^3.0.3: dependencies: "@types/estree" "^1.0.0" +eventemitter3@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + eventemitter3@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" @@ -1533,6 +2212,24 @@ jayson@^4.1.1: uuid "^8.3.2" ws "^7.5.10" +jayson@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.3.0.tgz#22eb8f3dcf37a5e893830e5451f32bde6d1bde4d" + integrity sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ== + dependencies: + "@types/connect" "^3.4.33" + "@types/node" "^12.12.54" + "@types/ws" "^7.4.4" + commander "^2.20.3" + delay "^5.0.0" + es6-promisify "^5.0.0" + eyes "^0.1.8" + isomorphic-ws "^4.0.1" + json-stringify-safe "^5.0.1" + stream-json "^1.9.1" + uuid "^8.3.2" + ws "^7.5.10" + js-tokens@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-9.0.1.tgz#2ec43964658435296f6761b34e10671c2d9527f4" @@ -1677,6 +2374,11 @@ package-json-from-dist@^1.0.0: resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== +pako@^2.0.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.2.0.tgz#246b9d4c841a8d308e484c0d03786651b143e63a" + integrity sha512-zJq6RP/5q+TO2OpFV3FHzlPnFjmkb7Nc99a5SNjJE+uu/PkpChs+NIZSSzbBoD+6kjiISXjfYdwj1ZRQ81dz/w== + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -1931,6 +2633,11 @@ strip-literal@^3.0.0: dependencies: js-tokens "^9.0.1" +superstruct@^0.15.4: + version "0.15.5" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" + integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== + superstruct@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-2.0.2.tgz#3f6d32fbdc11c357deff127d591a39b996300c54" @@ -1988,6 +2695,11 @@ tinyspy@^4.0.3: resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-4.0.4.tgz#d77a002fb53a88aa1429b419c1c92492e0c81f78" integrity sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q== +toml@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" + integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== + tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" @@ -2037,6 +2749,11 @@ undici-types@^7.16.0, undici-types@~7.16.0: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== +undici-types@^8.10.2: + version "8.10.2" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" + integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== + utf-8-validate@^5.0.2: version "5.0.10" resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" @@ -2173,6 +2890,11 @@ ws@^7.5.10: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== +ws@^8.21.3: + version "8.21.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" + integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== + ws@^8.5.0: version "8.18.3" resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" diff --git a/oracle-priced-purchase/anchor/package.json b/oracle-priced-purchase/anchor/package.json index a3270cc6..ff3eb358 100644 --- a/oracle-priced-purchase/anchor/package.json +++ b/oracle-priced-purchase/anchor/package.json @@ -5,10 +5,14 @@ "test": "yarn test:local", "build": "anchor keys sync && anchor build", "test:local": ". ../../scripts/local-env.sh && npx ts-mocha -p ./tsconfig.json -t 1000000 tests/oracle-priced-purchase.ts", + "test:magicsvm": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests-magicsvm/oracle-priced-purchase.ts", + "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture", "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh oracle-priced-purchase" }, "dependencies": { - "@coral-xyz/anchor": "0.32.1" + "@coral-xyz/anchor": "0.32.1", + "@magicblock-labs/magicsvm": "0.2.0", + "@solana/web3.js": "^1.98.4" }, "devDependencies": { "@types/bn.js": "^5.1.0", @@ -19,7 +23,8 @@ "prettier": "^3.5.3", "ts-mocha": "^11.1.0", "ts-node": "^10.9.2", - "typescript": "^5.8.3" + "typescript": "^5.8.3", + "@magicblock-labs/test-utils": "link:../../test-utils/ts" }, "license": "MIT", "packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447" diff --git a/oracle-priced-purchase/anchor/programs/oracle-priced-purchase/src/lib.rs b/oracle-priced-purchase/anchor/programs/oracle-priced-purchase/src/lib.rs index 698bb029..2952f574 100644 --- a/oracle-priced-purchase/anchor/programs/oracle-priced-purchase/src/lib.rs +++ b/oracle-priced-purchase/anchor/programs/oracle-priced-purchase/src/lib.rs @@ -2,7 +2,7 @@ use anchor_lang::prelude::*; use anchor_lang::system_program::{transfer, Transfer}; use pyth_solana_receiver_sdk::price_update::{Price, PriceUpdateV2}; -declare_id!("32M8Sk4TMrktcpCwW6638MvknQbmbW4yskLaVR4vruHC"); +declare_id!("AfgVz1Ec1A51RkiuNU29zfXrssdhgiveQRCJEvZvypXD"); pub const STORE_SEED: &[u8] = b"store"; pub const RECEIPT_SEED: &[u8] = b"receipt"; diff --git a/oracle-priced-purchase/anchor/tests-magicsvm-rs/Cargo.lock b/oracle-priced-purchase/anchor/tests-magicsvm-rs/Cargo.lock new file mode 100644 index 00000000..b639c32a --- /dev/null +++ b/oracle-priced-purchase/anchor/tests-magicsvm-rs/Cargo.lock @@ -0,0 +1,6795 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common 0.1.7", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures 0.2.17", +] + +[[package]] +name = "aes-gcm-siv" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae0784134ba9375416d469ec31e7c5f9fa94405049cf08c5ce5b4698be673e0d" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "polyval", + "subtle", + "zeroize", +] + +[[package]] +name = "agave-feature-set" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e724c6d41535d61eb4cba970716f6cfcef8d3f4d15750488f77a7630faab680" +dependencies = [ + "ahash 0.8.12", + "solana-epoch-schedule 3.2.0", + "solana-hash 4.5.0", + "solana-keypair", + "solana-pubkey 4.2.0", + "solana-sha256-hasher 3.1.0", + "solana-svm-feature-set", +] + +[[package]] +name = "agave-reserved-account-keys" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa474270f9cd8d71089979f1ad8e31c2eccde8b32d1ca03f33fe1123104d562" +dependencies = [ + "agave-feature-set", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "agave-transaction-view" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11af131e96e1a0df153db2d673a28293d171da78056104ec8e0d396e2bdf305b" +dependencies = [ + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-packet 4.2.0", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-svm-transaction", + "solana-transaction 4.1.6", +] + +[[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", + "getrandom 0.3.4", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "anchor-attribute-access-control" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a0ba6f4d5cff33a16a8cb30fd7419b71cf8b8b408998a341235cefe7e76cc1c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-account" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af875fe99d9dab01317a3bac577b05f3e52d5bd7d1b424de488ba51f3310feab" +dependencies = [ + "anchor-syn", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-constant" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345a11192cd11fdc8663e3194bbcd0c983c019cd9f21804d7853eeee5ee22653" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-error" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e5f6290f0f54e0e34b8efbb4dcd69dc2c46c655ada8198f35f403d2a88cf9c7" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-event" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0159e0fae5b1b508110b8753fda23ebce778f3bd8c146b8baabd12d2cebe4a7" +dependencies = [ + "anchor-syn", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-program" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51180111bea3660c0db345bfee34cf23f8d89cf2ac8dd5d8c7a044b3fb24d961" +dependencies = [ + "anchor-lang-idl", + "anchor-syn", + "anyhow", + "heck 0.3.3", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-accounts" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b802cd6561645117219ae6ed62cd322501bf1b5b7fa1a6fd8d911428c4c37192" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-serde" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa658e7d911c4290fe9ee953e75cf95f3c4db19c053f64071512867fa9f40394" +dependencies = [ + "anchor-syn", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-space" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69520cea030ee13d2978087a467bf32078012a5ce06b2746318c359887d481ed" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-lang" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bac4de7c9a9a69180798af701e22302cc0ebf2ef683b843706a1b7809454735" +dependencies = [ + "anchor-attribute-access-control", + "anchor-attribute-account", + "anchor-attribute-constant", + "anchor-attribute-error", + "anchor-attribute-event", + "anchor-attribute-program", + "anchor-derive-accounts", + "anchor-derive-serde", + "anchor-derive-space", + "base64 0.21.7", + "bincode", + "borsh 1.8.1", + "bytemuck", + "const-crypto", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-define-syscall 3.0.0", + "solana-feature-gate-interface 3.1.0", + "solana-instruction 3.4.1", + "solana-instructions-sysvar 3.0.1", + "solana-invoke", + "solana-loader-v3-interface 6.1.1", + "solana-msg 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-stake-interface 2.0.2", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", + "thiserror 1.0.69", +] + +[[package]] +name = "anchor-lang-idl" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47914b4290ae2bdf4ec203aa821e6eba86d7c78ef497918938038dcc6919f953" +dependencies = [ + "anchor-lang-idl-spec", + "anyhow", + "heck 0.3.3", + "serde", + "serde_json", + "sha2 0.10.9", +] + +[[package]] +name = "anchor-lang-idl-spec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bdf143115440fe621bdac3a29a1f7472e09f6cd82b2aa569429a0c13f103838" +dependencies = [ + "anyhow", + "serde", +] + +[[package]] +name = "anchor-syn" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ef87b1d3ae59fbf265a9157a9082308af220b4ef5a64a360d8820dcf25b5a86" +dependencies = [ + "bs58", + "heck 0.3.3", + "proc-macro2", + "quote", + "serde", + "sha2 0.11.0", + "syn 2.0.119", + "thiserror 1.0.69", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anyhow" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" + +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-bn254" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-std 0.5.0", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", + "itertools 0.13.0", + "num-bigint 0.4.8", + "num-integer", + "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 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.8", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm 0.5.0", + "ark-ff-macros 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "educe", + "itertools 0.13.0", + "num-bigint 0.4.8", + "num-traits", + "paste", + "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-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive 0.4.2", + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint 0.4.8", +] + +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-serialize-derive 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "num-bigint 0.4.8", +] + +[[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-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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.8", +] + +[[package]] +name = "ark-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" +dependencies = [ + "num-traits", + "rand 0.8.8", +] + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" + +[[package]] +name = "ascii" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[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 = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[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.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" + +[[package]] +name = "bitvec" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddcec3d12c579d40898fe0a9a358a803c23e9c52ca3c425707f81c9436211837" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake3" +version = "1.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d9e454fc11f76977dc803893aff6304ed33d6a26efae8696573bea74baa27ae" +dependencies = [ + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "cpufeatures 0.3.1", + "digest 0.11.3", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "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-buffer" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "blst" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20659f9bbee16cbbd2f7393e40ab6309f5a98f76a2eb57a995ec508b72387fe" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "blstrs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a8a8ed6fefbeef4a8c7b460e4110e12c5e22a5b7cf32621aae6ad650c4dcf29" +dependencies = [ + "blst", + "byte-slice-cast", + "ff", + "group", + "pairing", + "rand_core 0.6.4", + "serde", + "subtle", +] + +[[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.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "553c5d846a6ba5150c65e3b1b8ec073bcf1abc20f9b7220de384a4443ea4e20a" +dependencies = [ + "borsh-derive 1.8.1", + "bytes", + "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.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12cdfe656708a01f89b451a7d36466e6fe6c414de0aa18fc54f864f6f9ca9f56" +dependencies = [ + "once_cell", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[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.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[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 = "byte-slice-cast" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" + +[[package]] +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bytemuck" +version = "1.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a1f896587b6f2c069c73d2f0913e2d590c3990285cd2f0b6aa02b786b4c679c" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" + +[[package]] +name = "cc" +version = "1.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3eb0f42d6c360dc3f8a821f6bf2fdea7f72bfd36b3076eb0e6d1e9e0752fff4" +dependencies = [ + "find-msvc-tools", + "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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" + +[[package]] +name = "cfg_eval" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45565fc9416b9896014f5732ac776f810ee53a66730c17e4020c3ec064a8f88f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common 0.1.7", + "inout", +] + +[[package]] +name = "cmov" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" + +[[package]] +name = "combine" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" +dependencies = [ + "ascii", + "byteorder", + "either", + "memchr", + "unreachable", +] + +[[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 = "const-crypto" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c06f1eb05f06cf2e380fdded278fbf056a38974299d77960555a311dcf91a52" +dependencies = [ + "keccak-const", + "sha2-const-stable", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const-oid" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" + +[[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 = "cpufeatures" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a7799fd6b852db0e61728dde9a204c423b44d689dbd432522543614b490e78" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "crypto-common" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "ct-codecs" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49fb0c6640b4507ebd99ff67677009e381ba5eee1d14df78de4a3d16eb123c39" + +[[package]] +name = "ctor" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1c888a2a4f677017373fb6c01e13e318dd9e78758445ed5eb985e355d3f8281" +dependencies = [ + "ctor-proc-macro", + "dtor", + "link-section", +] + +[[package]] +name = "ctor-proc-macro" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7ab264ea985f1bd27887d7b21ea2bb046728e05d11909ca138d700c494730db" + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "ctutils" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" +dependencies = [ + "cmov", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "rand_core 0.6.4", + "rustc_version", + "serde", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core 0.23.0", + "darling_macro 0.23.0", +] + +[[package]] +name = "darling" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed17f5901b6630b993ca003def43f2f8ef4014fc13b047b57aad617ff32bc2ec" +dependencies = [ + "darling_core 0.24.1", + "darling_macro 0.24.1", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.119", +] + +[[package]] +name = "darling_core" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6837e2cf7485aaae18f86181d2f0e9a7ed297a025e220aeabf63fdebd3a2ddff" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 3.0.5", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "darling_macro" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ac7135c3ef02b2f7833bbeb1be5ba7f966dcde8a87c6b87f65a778d71a02785" +dependencies = [ + "darling_core 0.24.1", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "dary_heap" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b1e3a325bc115f096c8b77bbf027a7c2592230e70be2d985be950d3d5e60ebe" + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid 0.9.6", + "zeroize", +] + +[[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", + "const-oid 0.9.6", + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "digest" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" +dependencies = [ + "block-buffer 0.12.1", + "const-oid 0.10.2", + "crypto-common 0.2.2", + "ctutils", +] + +[[package]] +name = "dtor" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30e4690622ab6700ced40fc370a3f07b7d111f0154bb6fb08f73b4c8834f75b6" +dependencies = [ + "dtor-proc-macro", +] + +[[package]] +name = "dtor-proc-macro" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c98b077c7463d01d22dde8a24378ddf1ca7263dc687cffbed38819ea6c21131" + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + +[[package]] +name = "eager" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abe71d579d1812060163dff96056261deb5bf6729b100fa2e36a68b9649ba3d3" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand_core 0.6.4", + "serde", + "sha2 0.10.9", + "subtle", + "zeroize", +] + +[[package]] +name = "ed25519-dalek-bip32" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b49a684b133c4980d7ee783936af771516011c8cd15f429dbda77245e282f03" +dependencies = [ + "derivation-path", + "ed25519-dalek", + "hmac", + "sha2 0.10.9", +] + +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "either" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "enum-iterator" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4549325971814bda7a44061bf3fe7e487d447cba01e4220a4b454d630d7a016" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685adfa4d6f3d765a26bc5dbc936577de9abf756c1feeb3089b01dd395034842" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "enum-ordinalize" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89dd01549b09589510cf0647475075d12071456586d70f5c75c98ae2a5537677" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a65863d15a4ce2888bd2f0f543cc963d3879c3a022c8ee43f6141d479a3ac815" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "ephemeral-rollups-sdk" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "838564736408ada011e9986c819b26cf0195bb2dd238e10be258731979213d75" +dependencies = [ + "base64ct", + "bincode", + "bytemuck", + "ephemeral-rollups-sdk-attribute-action 0.14.4", + "ephemeral-rollups-sdk-attribute-commit 0.14.4", + "ephemeral-rollups-sdk-attribute-delegate 0.14.4", + "ephemeral-rollups-sdk-attribute-ephemeral 0.14.4", + "ephemeral-rollups-sdk-attribute-ephemeral-accounts 0.14.4", + "five8 0.2.1", + "getrandom 0.2.17", + "magicblock-delegation-program-api", + "magicblock-magic-program-api 0.10.1", + "num-derive", + "num-traits", + "solana-account 3.4.0", + "solana-account-info 2.3.0", + "solana-account-info 3.1.1", + "solana-address 2.6.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program 2.3.0", + "solana-program 3.0.0", + "solana-program-error 2.2.2", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "spl-associated-token-account-interface", + "thiserror 1.0.69", +] + +[[package]] +name = "ephemeral-rollups-sdk" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a267fd1fe36f82ed50307b3757561ac59b1629a523fd179e2a66f4383c9afc0a" +dependencies = [ + "anchor-lang", + "base64ct", + "bincode", + "bytemuck", + "ephemeral-rollups-sdk-attribute-action 0.16.2", + "ephemeral-rollups-sdk-attribute-commit 0.16.2", + "ephemeral-rollups-sdk-attribute-delegate 0.16.2", + "ephemeral-rollups-sdk-attribute-ephemeral 0.16.2", + "ephemeral-rollups-sdk-attribute-ephemeral-accounts 0.16.2", + "ephemeral-vrf-sdk", + "ephemeral-vrf-sdk-vrf-macro", + "five8 0.2.1", + "getrandom 0.2.17", + "magicblock-delegation-program-api", + "magicblock-magic-program-api 0.10.1", + "solana-account-info 2.3.0", + "solana-address 2.6.1", + "solana-program 2.3.0", + "solana-program 3.0.0", + "solana-program-error 2.2.2", + "solana-system-interface 2.0.0", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-action" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a29f33b94edcdfcf1b9b7a61aa0ac00e8efdc66f89c8b4b573f7ea965a42c60a" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-action" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3847b70bac1717bfd3108fe310195e658665b2d971bcb4eb2aa5aaca2c9392" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-commit" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da9ed3ea8b850013f6bf768e5f0f2e1f22f1861b46908764536795bf67bb5c67" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-commit" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b08e06840701468449f75916e922fd9694b787596efe66cd9b8dccf3ef0eb5e6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-delegate" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f0d8ab90b4ecc7ac802bbd2115681f9fd42bc5a9018be79ba7aff1fe971aa36" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-delegate" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc365676345c77eed3651debb63af9b282902100e5852a1822ee1385e3b285fe" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ea166c57ee55b329be4eae730561fe02aad5620a35b4d89439d8d0c9e07c3a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fce2590d04b16345a3117c0b66b6822a96a5ef3bc7b9add073cb3a797529d8df" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral-accounts" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa3efae094f5c288746d479fd605b67bcd56d29ddcf1238046ac07eeec130c45" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral-accounts" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f70d4bbf6761a71df97fbadcb4cceef630e2d6e37189f5e674ff34bb2210823" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-vrf-sdk" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77f3741c733907c10e0d0b32f9aa485c20a73e0b1e7e673a0ac38185fb2a6c11" +dependencies = [ + "anchor-lang", + "borsh 1.8.1", + "ephemeral-vrf-sdk-vrf-macro", + "solana-program 3.0.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "ephemeral-vrf-sdk-vrf-macro" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7b8b3fe3863a27d4c0f32da7b3cfeff179772fd4124d6c9fdcb9d4ab23cd602" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "fast-math" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2465292146cdfc2011350fe3b1c616ac83cf0faeedb33463ba1c332ed8948d66" +dependencies = [ + "ieee754", +] + +[[package]] +name = "feature-probe" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" + +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "bitvec", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "filetime" +version = "0.2.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c287a33c7f0a620c38e641e7f60827713987b3c0f26e8ddc9462cc69cf75759" +dependencies = [ + "cfg-if", + "libc", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d" + +[[package]] +name = "five8" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75b8549488b4715defcb0d8a8a1c1c76a80661b5fa106b4ca0e7fce59d7d875" +dependencies = [ + "five8_core 0.1.2", +] + +[[package]] +name = "five8" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23f76610e969fa1784327ded240f1e28a3fd9520c9cec93b636fcf62dd37f772" +dependencies = [ + "five8_core 1.0.0", +] + +[[package]] +name = "five8_const" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26dec3da8bc3ef08f2c04f61eab298c3ab334523e55f076354d6d6f613799a7b" +dependencies = [ + "five8_core 0.1.2", +] + +[[package]] +name = "five8_const" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a0f1728185f277989ca573a402716ae0beaaea3f76a8ff87ef9dd8fb19436c5" +dependencies = [ + "five8_core 1.0.0", +] + +[[package]] +name = "five8_core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2551bf44bc5f776c15044b9b94153a00198be06743e262afaaa61f11ac7523a5" + +[[package]] +name = "five8_core" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "059c31d7d36c43fe39d89e55711858b4da8be7eb6dabac23c7289b1a19489406" + +[[package]] +name = "flate2" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb" +dependencies = [ + "zlib-rs", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures-core" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" + +[[package]] +name = "futures-task" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" + +[[package]] +name = "futures-util" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" +dependencies = [ + "futures-core", + "futures-task", + "pin-project-lite", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[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 = "glob" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand 0.8.8", + "rand_core 0.6.4", + "rand_xorshift", + "subtle", +] + +[[package]] +name = "hash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" +dependencies = [ + "byteorder", +] + +[[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.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[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 = "http" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hybrid-array" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27f864f10dfb56725ce5ce5472bc52252c8f93a4ab86327122cebf62c5f59a17" +dependencies = [ + "typenum", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "ieee754" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9007da9cacbd3e6343da136e98b0d2df013f553d35bdec8b518f07bea768e19c" + +[[package]] +name = "indexmap" +version = "2.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", +] + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "generic-array", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "js-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2 0.10.9", + "signature", +] + +[[package]] +name = "keccak" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" +dependencies = [ + "cpufeatures 0.2.17", +] + +[[package]] +name = "keccak-const" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d8d8ce877200136358e0bbff3a77965875db3af755a11e1fa6b1b3e2df13ea" + +[[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.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" + +[[package]] +name = "libflate" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "561a8da1a50e1428d3c51321dafeca849df992a5bb67720c386131234caba82e" +dependencies = [ + "adler32", + "crc32fast", + "dary_heap", + "libflate_lz77", + "no_std_io2", +] + +[[package]] +name = "libflate_lz77" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7a10e427698aef6eef269482776debfef63384d30f13aad39a1a95e0e098fd" +dependencies = [ + "hashbrown 0.16.1", + "no_std_io2", + "rle-decode-fast", +] + +[[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", + "libsecp256k1-core 0.2.2", + "libsecp256k1-gen-ecmult 0.2.1", + "libsecp256k1-gen-genmult 0.2.1", + "rand 0.7.3", + "serde", + "sha2 0.9.9", +] + +[[package]] +name = "libsecp256k1" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" +dependencies = [ + "arrayref", + "base64 0.22.1", + "digest 0.9.0", + "libsecp256k1-core 0.3.0", + "libsecp256k1-gen-ecmult 0.3.0", + "libsecp256k1-gen-genmult 0.3.0", + "rand 0.8.8", + "serde", + "sha2 0.9.9", +] + +[[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-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" +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 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" +dependencies = [ + "libsecp256k1-core 0.3.0", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" +dependencies = [ + "libsecp256k1-core 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" +dependencies = [ + "libsecp256k1-core 0.3.0", +] + +[[package]] +name = "libsodium-rs" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b8cd48c80d6c6fa5a4612d242941067219555baea82b0b49c92ea9d8156b59c" +dependencies = [ + "ct-codecs", + "ctor", + "libc", + "libsodium-sys-stable", + "pkg-config", + "thiserror 1.0.69", + "zeroize", +] + +[[package]] +name = "libsodium-sys-stable" +version = "1.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b04bf6da2c98b727af37ab62cb505f4d751b975b034a9b9ad491d333b0564e" +dependencies = [ + "cc", + "libc", + "libflate", + "minisign-verify", + "pkg-config", + "tar", + "ureq", + "vcpkg", + "zip", +] + +[[package]] +name = "light-poseidon" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c9a85a9752c549ceb7578064b4ed891179d20acd85f27318573b64d2d7ee7ee" +dependencies = [ + "ark-bn254 0.4.0", + "ark-ff 0.4.2", + "num-bigint 0.4.8", + "thiserror 1.0.69", +] + +[[package]] +name = "light-poseidon" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47a1ccadd0bb5a32c196da536fd72c59183de24a055f6bf0513bf845fefab862" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ff 0.5.0", + "num-bigint 0.4.8", + "thiserror 1.0.69", +] + +[[package]] +name = "link-section" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52437d47b0358721ec869cc7374b2a21f7b2237af9b439c0391341a1fbfbf1b" + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[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.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" + +[[package]] +name = "magicblock-account" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b5671bd1525eeab67f240455dffff31a4f6d27b067a3531f2d47c7d5af0c6e" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "thiserror 2.0.20", +] + +[[package]] +name = "magicblock-delegation-program-api" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea16e41e04319201919afca98dd4241b18549f2db0c68f58e4bc531537b5dab" +dependencies = [ + "bincode", + "borsh 0.10.4", + "borsh 1.8.1", + "bytemuck", + "const-crypto", + "libsodium-rs", + "num_enum", + "pinocchio 0.10.2", + "pinocchio-log", + "pinocchio-pubkey", + "pinocchio-system", + "rkyv", + "serde", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-loader-v3-interface 6.1.1", + "solana-program 3.0.0", + "solana-pubkey 2.4.0", + "solana-sdk", + "solana-sdk-ids 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-system-interface 2.0.0", + "static_assertions", + "strum", + "thiserror 2.0.20", +] + +[[package]] +name = "magicblock-litesvm" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82cfc1c7f4348c300f58ddd5ae8613e9b1d08564a7956af43822de59cb76d039" +dependencies = [ + "agave-feature-set", + "agave-reserved-account-keys", + "ansi_term", + "indexmap", + "itertools 0.15.0", + "log", + "magicblock-account", + "solana-account 4.3.2", + "solana-address 2.6.1", + "solana-address-lookup-table-interface 3.1.0", + "solana-builtins", + "solana-clock 3.1.1", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-feature-gate-interface 4.0.0", + "solana-fee", + "solana-fee-calculator 3.2.2", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-instructions-sysvar 4.0.0", + "solana-keypair", + "solana-last-restart-slot 3.1.0", + "solana-loader-v3-interface 8.0.1", + "solana-loader-v4-interface 3.1.0", + "solana-message 4.4.1", + "solana-native-token 3.0.0", + "solana-nonce 3.2.1", + "solana-nonce-account", + "solana-precompile-error", + "solana-program-error 3.0.1", + "solana-program-runtime", + "solana-rent 4.3.0", + "solana-runtime-transaction", + "solana-sdk-ids 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-signature 3.4.1", + "solana-signer", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stake-history", + "solana-svm-callback", + "solana-svm-log-collector", + "solana-svm-timings", + "solana-svm-transaction", + "solana-syscalls", + "solana-system-interface 3.2.0", + "solana-system-program", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "magicblock-magic-program-api" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291f7a68f6cc622741a3fae513bd71640911abefd1fae2b2602b934515ed4b95" +dependencies = [ + "bincode", + "const-crypto", + "serde", + "solana-program 2.3.0", + "solana-signature 2.3.0", +] + +[[package]] +name = "magicblock-magic-program-api" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dc8fba0307c90b91b70c9ed06d4242d6c4159f331b2f05bf8f875c2a94e0e98" +dependencies = [ + "bincode", + "const-crypto", + "serde", + "solana-program 3.0.0", + "solana-signature 3.4.1", +] + +[[package]] +name = "magicsvm" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e3effa3b8d28f3e0a14d1b72afcf65c2bec2331882a19065ec4424cd5c7ee37" +dependencies = [ + "bincode", + "borsh 1.8.1", + "ephemeral-rollups-sdk 0.14.4", + "magicblock-account", + "magicblock-delegation-program-api", + "magicblock-litesvm", + "magicblock-magic-program-api 0.8.8", + "solana-account 4.3.2", + "solana-address 2.6.1", + "solana-clock 3.1.1", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-program-runtime", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-signer", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[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 = "minisign-verify" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22f9645cb765ea72b8111f36c522475d2daa0d22c957a9826437e97534bc4e9e" + +[[package]] +name = "no_std_io2" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418abd1b6d34fbf6cae440dc874771b0525a604428704c76e48b29a5e67b8003" +dependencies = [ + "memchr", +] + +[[package]] +name = "num" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" +dependencies = [ + "num-bigint 0.2.6", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +dependencies = [ + "autocfg", + "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.119", +] + +[[package]] +name = "num-integer" +version = "0.1.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92800bd69a1eac91786bcfe9da64a897eb72911b8dc3095decbd07429e8048b" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +dependencies = [ + "autocfg", + "num-bigint 0.2.6", + "num-integer", + "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_cpus" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "oracle-priced-purchase" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "pyth-solana-receiver-sdk", +] + +[[package]] +name = "oracle-priced-purchase-magicsvm-tests" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "base64 0.22.1", + "magicsvm", + "oracle-priced-purchase", + "serde", + "serde_json", + "solana-account 4.3.2", + "solana-address 2.6.1", + "solana-clock 3.1.1", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-native-token 3.0.0", + "solana-signer", + "solana-transaction 4.1.6", + "test-utils", +] + +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group", +] + +[[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 = "pastey" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4" + +[[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 = "percentage" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd23b938276f14057220b707937bcb42fa76dda7560e57a2da30cb52d557937" +dependencies = [ + "num", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pinocchio" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8afe4f39c0e25cc471b35b89963312791a5162d45a86578cbeaad9e5e7d1b3b" + +[[package]] +name = "pinocchio" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06810dac15a4ef83d3dabdb4f2f22fb39c9adff669cd2781da4f716510a647c" +dependencies = [ + "solana-account-view", + "solana-address 2.6.1", + "solana-define-syscall 4.0.1", + "solana-instruction-view", + "solana-program-error 3.0.1", +] + +[[package]] +name = "pinocchio-log" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd11022408f312e6179ece321c1f7dc0d1b2aa7765fddd39b2a7378d65a899e8" +dependencies = [ + "pinocchio-log-macro", +] + +[[package]] +name = "pinocchio-log-macro" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69fb52edb3c5736b044cc462b0957b9767d0f574d138f4e2761438c498a4b467" +dependencies = [ + "quote", + "regex", + "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 0.1.4", + "pinocchio 0.9.3", + "sha2-const-stable", +] + +[[package]] +name = "pinocchio-system" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24044a0815753862b558e179e78f03f7344cb755de48617a09d7d23b50883b6c" +dependencies = [ + "pinocchio 0.10.2", + "solana-address 2.6.1", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "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.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "pyth-sdk" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5c805ba3dfb5b7ed6a8ffa62ec38391f485a79c7cf6b3b11d3bd44fb0325824" +dependencies = [ + "borsh 0.9.3", + "borsh-derive 0.9.3", + "hex", + "schemars", + "serde", +] + +[[package]] +name = "pyth-solana-receiver-sdk" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245b1b03dd2177402018b6072fcbb7bea5b3d280427b1954796bf1dc189be48b" +dependencies = [ + "anchor-lang", + "borsh 1.8.1", + "cfg-if", + "hex", + "pythnet-sdk", +] + +[[package]] +name = "pythnet-sdk" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8047bd7b366b37c3a24408e6677f0aa4dfe3cc7018374fab5b6ab9f2ac2f1ae" +dependencies = [ + "anchor-lang", + "bincode", + "borsh 1.8.1", + "bytemuck", + "byteorder", + "fast-math", + "hex", + "pyth-sdk", + "rustc_version", + "serde", + "sha3", + "slow_primes", + "solana-program 3.0.0", + "thiserror 1.0.69", +] + +[[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.119", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +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 = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e058c7de0b26af77780c769414d6257830bb240f3c38477dbc2c16e5f54d6d4c" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", +] + +[[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_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", +] + +[[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_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] + +[[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_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + +[[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.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "rend" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "rkyv" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2297bf9c81a3f0dc96bc9521370b88f054168c29826a75e89c55ff196e7ed6a1" +dependencies = [ + "bitvec", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d7b42d4b8d06048d3ac8db0eb31bcb942cbeb709f0b5f2b2ebde398d3038f5" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rle-decode-fast" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" + +[[package]] +name = "rustc-demangle" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b74b56ffa8bb2830709a538c2cbcae9aa062db0d2a42563bfb09bdaae44020eb" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "schemars" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.119", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-big-array" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" +dependencies = [ + "serde", +] + +[[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.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "serde_json" +version = "1.0.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_with" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "935177bb8c0cd8ca1a4e6d1a2ac8988bea69cab4f9d3a31311e012ad27868ea4" +dependencies = [ + "serde_core", + "serde_with_macros", +] + +[[package]] +name = "serde_with_macros" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d607aa01a3cb0ad757d6fd216136910db3c97b102fe686585689615a02dbcdc" +dependencies = [ + "darling 0.24.1", + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[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 0.2.17", + "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 0.2.17", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.1", + "digest 0.11.3", +] + +[[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.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77fd7028345d415a4034cf8777cd4f8ab1851274233b45f84e3d955502d93874" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "simd-adler32" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "slow_primes" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58267dd2fbaa6dceecba9e3e106d2d90a2b02497c0e8b01b8759beccf5113938" +dependencies = [ + "num", +] + +[[package]] +name = "smallvec" +version = "1.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba467056f1b547ed52077911161fc86985becbc60e8e1857c8a144dab0def891" + +[[package]] +name = "solana-account" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f949fe4edaeaea78c844023bfc1c898e0b1f5a100f8a8d2d0f85d0a7b090258" +dependencies = [ + "solana-account-info 2.3.0", + "solana-clock 2.2.3", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-account" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efc0ed36decb689413b9da5d57f2be49eea5bebb3cf7897015167b0c4336e731" +dependencies = [ + "bincode", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 3.1.1", +] + +[[package]] +name = "solana-account" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26788ba0d7eb5b250edda3e1d393739bafd5daf94882f2261d14f5ab0d6a25e0" +dependencies = [ + "bincode", + "qualifier_attr", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 4.1.0", +] + +[[package]] +name = "solana-account-info" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8f5152a288ef1912300fc6efa6c2d1f9bb55d9398eb6c72326360b8063987da" +dependencies = [ + "bincode", + "serde", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-account-info" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9cf16495d9eb53e3d04e72366a33bb1c20c24e78c171d8b8f5978357b63ae95" +dependencies = [ + "bincode", + "serde_core", + "solana-address 2.6.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.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.6.1", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-address" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2ecac8e1b7f74c2baa9e774c42817e3e75b20787134b76cc4d45e8a604488f5" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-address" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c93e262f671bf402e1040e4a7e40b05d81da5956c7681948c975a0997517bb" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8 1.0.0", + "five8_const 1.0.0", + "rand 0.9.5", + "serde", + "serde_derive", + "sha2-const-stable", + "solana-atomic-u64 3.0.1", + "solana-define-syscall 5.2.0", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.1.0", + "wincode", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1673f67efe870b64a65cb39e6194be5b26527691ce5922909939961a6e6b395" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-slot-hashes 2.2.1", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115b4f773acc4f3f3cb986b0d335e9845c0368c82b0940410935bc11ae065578" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", +] + +[[package]] +name = "solana-atomic-u64" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52e52720efe60465b052b9e7445a01c17550666beec855cce66f44766697bc2" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "solana-atomic-u64" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "085db4906d89324cef2a30840d59eaecf3d4231c560ec7c9f6614a93c652f501" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "solana-big-mod-exp" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75db7f2bbac3e62cfd139065d15bcda9e2428883ba61fc8d27ccb251081e7567" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-big-mod-exp" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30c80fb6d791b3925d5ec4bf23a7c169ef5090c013059ec3ed7d0b2c04efa085" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "solana-define-syscall 3.0.0", +] + +[[package]] +name = "solana-bincode" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19a3787b8cf9c9fe3dd360800e8b70982b9e5a8af9e11c354b6665dd4a003adc" +dependencies = [ + "bincode", + "serde", + "solana-instruction 2.3.3", +] + +[[package]] +name = "solana-bincode" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "278a1a5bad62cd9da89ac8d4b7ec444e83caa8ae96aa656dfc27684b28d49a5d" +dependencies = [ + "bincode", + "serde_core", + "solana-instruction-error", +] + +[[package]] +name = "solana-blake3-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a0801e25a1b31a14494fc80882a036be0ffd290efc4c2d640bfcca120a4672" +dependencies = [ + "blake3", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-blake3-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7116e1d942a2432ca3f514625104757ab8a56233787e95144c93950029e31176" +dependencies = [ + "blake3", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-bls-signatures" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "654ea8d31bbb4b0b9c28f9c545edb32691de27d4e2fc0e252c1ff47da50c5f2a" +dependencies = [ + "base64 0.22.1", + "blst", + "blstrs", + "cfg_eval", + "ff", + "group", + "pairing", + "rand 0.8.8", + "serde", + "serde_json", + "serde_with", + "thiserror 2.0.20", + "wincode", + "zeroize", +] + +[[package]] +name = "solana-bls12-381-syscall" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94e8256fda0542709fd1320a96d81c3c66e10ac5f680cca9b991d7d3b0e3fe86" +dependencies = [ + "blst", + "blstrs", + "bytemuck", + "bytemuck_derive", + "pairing", +] + +[[package]] +name = "solana-bn254" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62ff13a8867fcc7b0f1114764e1bf6191b4551dcaf93729ddc676cd4ec6abc9f" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "bytemuck", + "solana-define-syscall 5.2.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-borsh" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718333bcd0a1a7aed6655aa66bef8d7fb047944922b2d3a18f49cbc13e73d004" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", +] + +[[package]] +name = "solana-borsh" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c04abbae16f57178a163125805637b8a076175bb5c0002fb04f4792bea901cf7" +dependencies = [ + "borsh 1.8.1", +] + +[[package]] +name = "solana-bpf-loader-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabcc3a5785886f026b438771bf6b221b0d4877f6089af79d432c7fe877a6cd4" +dependencies = [ + "bincode", + "qualifier_attr", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-clock 3.1.1", + "solana-instruction 3.4.1", + "solana-loader-v3-interface 7.0.0", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-type-overrides", + "solana-syscalls", + "solana-system-interface 3.2.0", + "solana-transaction-context", +] + +[[package]] +name = "solana-builtins" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ab49c6f8a77bff54e811e9674747fd435e218dcbe71120039a865515151998c" +dependencies = [ + "agave-feature-set", + "solana-bpf-loader-program", + "solana-compute-budget-program", + "solana-hash 4.5.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-program", + "solana-vote-program", + "solana-zk-elgamal-proof-program", + "solana-zk-token-proof-program", +] + +[[package]] +name = "solana-builtins-default-costs" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76792b1ecab1c5f127f16062926850b52c4bb51ac1a93d220635fb13221d3503" +dependencies = [ + "agave-feature-set", + "ahash 0.8.12", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-clock" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8584296123df8fe229b95e2ebfd37ae637fe9db9b7d4dd677ac5a78e80dbfce" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-clock" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0acdace90d96e2c9e70d681465b4fe888b6bcf27c354ae9774e9f8a3b72923d" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-compute-budget" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e200042fd149d565521f7b31e082c0db0e022e9860c7e013130f812984ae846f" +dependencies = [ + "solana-fee-structure", + "solana-program-runtime", +] + +[[package]] +name = "solana-compute-budget-instruction" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a651fc5d082fd88090a7336ea85599b1ffcf6503dbcff575ae1bb2fb1cec238" +dependencies = [ + "agave-feature-set", + "solana-borsh 3.0.2", + "solana-builtins-default-costs", + "solana-compute-budget", + "solana-compute-budget-interface", + "solana-instruction 3.4.1", + "solana-packet 4.2.0", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-svm-transaction", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-compute-budget-interface" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8292c436b269ad23cecc8b24f7da3ab07ca111661e25e00ce0e1d22771951ab9" +dependencies = [ + "borsh 1.8.1", + "solana-instruction 3.4.1", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-compute-budget-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e314aeb4a86507ba77fb2d6ce9f5836af6aeaaedd4c5314e310ca72f73afe367" +dependencies = [ + "solana-program-runtime", +] + +[[package]] +name = "solana-cpi" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dc71126edddc2ba014622fc32d0f5e2e78ec6c5a1e0eb511b85618c09e9ea11" +dependencies = [ + "solana-account-info 2.3.0", + "solana-define-syscall 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-stable-layout 2.2.1", +] + +[[package]] +name = "solana-cpi" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dea26709d867aada85d0d3617db0944215c8bb28d3745b912de7db13a23280c" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 4.0.1", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-stable-layout 3.0.1", +] + +[[package]] +name = "solana-curve25519" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14b4d2a4bf0d0b0a86c22111917e86e8bd39a7b31420fb2c7d73eb83761fc7af" +dependencies = [ + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "solana-define-syscall 5.2.0", + "subtle", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-decode-error" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c781686a18db2f942e70913f7ca15dc120ec38dcab42ff7557db2c70c625a35" +dependencies = [ + "num-traits", +] + +[[package]] +name = "solana-define-syscall" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ae3e2abcf541c8122eafe9a625d4d194b4023c20adde1e251f94e056bb1aee2" + +[[package]] +name = "solana-define-syscall" +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-define-syscall" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf8209ece2bd9f1450e672858ffc0e5c8c786ff6916d2a862b126dd0128f380f" + +[[package]] +name = "solana-derivation-path" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff71743072690fdbdfcdc37700ae1cb77485aaad49019473a81aee099b1e0b8c" +dependencies = [ + "derivation-path", + "qstring", + "uriparse", +] + +[[package]] +name = "solana-epoch-info" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e093c84f6ece620a6b10cd036574b0cd51944231ab32d81f80f76d54aba833e6" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-epoch-rewards" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b575d3dd323b9ea10bb6fe89bf6bf93e249b215ba8ed7f68f1a3633f384db7" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 2.3.0", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-rewards" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf7eb4986b0b1d6f562b21f75a836f1a6df6e00c275efcef50aab5c144dc59e" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-epoch-rewards-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee8beac9bff4db9225e57d532d169b0be5e447f1e6601a2f50f27a01bf5518f" +dependencies = [ + "siphasher", + "solana-address 2.6.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-epoch-schedule" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fce071fbddecc55d727b1d7ed16a629afe4f6e4c217bc8d00af3b785f6f67ed" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-schedule" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8116e6ffa6002237d5ab5edcbda17f9ba66b6742c45a89c9fb40a94dbacd4c1d" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-program-error 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-epoch-stake" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "027e6d0b9e7daac5b2ac7c3f9ca1b727861121d9ef05084cf435ff736051e7c2" +dependencies = [ + "solana-define-syscall 5.2.0", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-example-mocks" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84461d56cbb8bb8d539347151e0525b53910102e4bced875d49d5139708e39d3" +dependencies = [ + "serde", + "serde_derive", + "solana-address-lookup-table-interface 2.2.2", + "solana-clock 2.2.3", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-keccak-hasher 2.2.1", + "solana-message 2.4.0", + "solana-nonce 2.2.1", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-example-mocks" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978855d164845c1b0235d4b4d101cadc55373fffaf0b5b6cfa2194d25b2ed658" +dependencies = [ + "serde", + "serde_derive", + "solana-address-lookup-table-interface 3.1.0", + "solana-clock 3.1.1", + "solana-hash 3.1.0", + "solana-instruction 3.4.1", + "solana-keccak-hasher 3.1.0", + "solana-message 3.1.0", + "solana-nonce 3.2.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 2.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43f5c5382b449e8e4e3016fb05e418c53d57782d8b5c30aa372fc265654b956d" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 2.2.1", + "solana-account-info 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75ca9b5cbb6f500f7fd73db5bd95640f71a83f04d6121a0e59a43b202dca2731" +dependencies = [ + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd7545e02f91da1d6996f32b18f7796aa01e0682f8f3a7434b82cd1a10448add" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-fee" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c32df41c2c93a567a1612a973faddeaca093276677c157ef9cb60a378289fc69" +dependencies = [ + "agave-feature-set", + "solana-fee-structure", + "solana-svm-transaction", +] + +[[package]] +name = "solana-fee-calculator" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89bc408da0fb3812bc3008189d148b4d3e08252c79ad810b245482a3f70cd8d" +dependencies = [ + "log", + "serde", + "serde_derive", +] + +[[package]] +name = "solana-fee-calculator" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef67f01cc6a0c72e99a08d0d484683f995de4c80e9568728fa77d1537f9b7e09" +dependencies = [ + "log", + "serde", + "serde_derive", + "wincode", +] + +[[package]] +name = "solana-fee-structure" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2abdb1223eea8ec64136f39cb1ffcf257e00f915c957c35c0dd9e3f4e700b0" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-get-sysvar" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef3bc859fc036ed490146793557386cbfae614ebba4adc704c37d94350824ed4" +dependencies = [ + "solana-address 2.6.1", + "solana-define-syscall 5.2.0", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-hard-forks" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb50b2df7a36a2af58ce24bb0229622ac845dcc196e8c23b3ea4a29dd6bee09" + +[[package]] +name = "solana-hash" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b96e9f0300fa287b545613f007dfe20043d7812bee255f418c1eb649c93b63" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "five8 0.2.1", + "js-sys", + "serde", + "serde_derive", + "solana-atomic-u64 2.2.1", + "solana-sanitize 2.2.1", + "wasm-bindgen", +] + +[[package]] +name = "solana-hash" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "337c246447142f660f778cf6cb582beba8e28deb05b3b24bfb9ffd7c562e5f41" +dependencies = [ + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-hash" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f4c847893a2ea50b4ae3ca723b124e07cd0544fecea3598f785168f9b78333f" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "five8 1.0.0", + "serde", + "serde_derive", + "solana-atomic-u64 3.0.1", + "solana-sanitize 3.0.1", + "wincode", +] + +[[package]] +name = "solana-hash-512" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce934b02bab639341f2fd62c3e7e3c39dcceb47f0196b7630ed1f82ecb704bd" + +[[package]] +name = "solana-inflation" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf186550ea7438e2708bd0c233f01fe9c3fa45b9b607ff993b650ce60af102e" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-instruction" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab5682934bd1f65f8d2c16f21cb532526fcc1a09f796e2cacdb091eee5774ad" +dependencies = [ + "bincode", + "borsh 1.8.1", + "getrandom 0.2.17", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "serde_json", + "solana-define-syscall 2.3.0", + "solana-pubkey 2.4.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-instruction" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3957ca1d31107efd9a6bb88b25c348ca5e3b4b6683e3d08adb86d3d17aa01f1" +dependencies = [ + "bincode", + "borsh 1.8.1", + "serde", + "serde_derive", + "solana-define-syscall 5.2.0", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "wincode", +] + +[[package]] +name = "solana-instruction-error" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b7d34343838343a3755b7dfb1e438d94c6db2263b519cfe3c2257af932b6e93" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-program-error 3.0.1", +] + +[[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.6.1", + "solana-define-syscall 4.0.1", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0e85a6fad5c2d0c4f5b91d34b8ca47118fc593af706e523cdbedf846a954f57" +dependencies = [ + "bitflags", + "solana-account-info 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serialize-utils 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e0732294560e88ecdb2bbc656e67383e9f88c78ec09469cef172f0d28cd1bcd" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-serialize-utils 3.1.2", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e38363a181313d607f7a118df2b401bb27b477a0104b09283cbf504f5f0f00cc" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-serialize-utils 3.1.2", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-invoke" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4065031f5c7dd29ef5f5003c1a353011eeabbafa6c5a5033da0cedbfca824b94" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 3.0.0", + "solana-instruction 3.4.1", + "solana-program-entrypoint 3.1.1", + "solana-stable-layout 3.0.1", +] + +[[package]] +name = "solana-keccak-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7aeb957fbd42a451b99235df4942d96db7ef678e8d5061ef34c9b34cae12f79" +dependencies = [ + "sha3", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-keccak-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed1c0d16d6fdeba12291a1f068cdf0d479d9bff1141bf44afd7aa9d485f65ef8" +dependencies = [ + "sha3", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-keypair" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "263d614c12aa267a3278703175fd6440552ca61bc960b5a02a4482720c53438b" +dependencies = [ + "ed25519-dalek", + "ed25519-dalek-bip32", + "five8 1.0.0", + "five8_core 1.0.0", + "rand 0.9.5", + "solana-address 2.6.1", + "solana-derivation-path", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-last-restart-slot" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a6360ac2fdc72e7463565cd256eedcf10d7ef0c28a1249d261ec168c1b55cdd" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-last-restart-slot" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22474b83d3c7c318e1c3a725784fc2d1d03b728e36369e58ce48769a61ed85e" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-loader-v2-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8ab08006dad78ae7cd30df8eea0539e207d08d91eaefb3e1d49a446e1c49654" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f7162a05b8b0773156b443bccd674ea78bb9aa406325b467ea78c06c99a63a2" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e0538d4dbc9022e01616f1c58f2db98ece739c5d5ed4a2ef8737a953e76a2d4" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68029ab11d9c891d4ce23ada75745e40f983c5674af366f447b672569634231b" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "362b468fbde4c20521b9ff5ef743bc0d9b410455a5a92a8b29fd46954e89345f" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", + "wincode", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "706a777242f1f39a83e2a96a2a6cb034cb41169c6ecbee2cf09cb873d9659e7e" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c948b33ff81fa89699911b207059e493defdba9647eaf18f23abdf3674e0fb" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-message" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1796aabce376ff74bf89b78d268fa5e683d7d7a96a0a4e4813ec34de49d5314b" +dependencies = [ + "bincode", + "blake3", + "lazy_static", + "serde", + "serde_derive", + "solana-bincode 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", + "solana-transaction-error 2.2.1", + "wasm-bindgen", +] + +[[package]] +name = "solana-message" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0448b1fd891c5f46491e5dc7d9986385ba3c852c340db2911dd29faa01d2b08d" +dependencies = [ + "bincode", + "blake3", + "lazy_static", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-message" +version = "4.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e29e655f222a3a64145fedceacdca3e696ba7aded1dbd5391aa09d5fbfba53c" +dependencies = [ + "blake3", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-msg" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36a1a14399afaabc2781a1db09cb14ee4cc4ee5c7a5a3cfcc601811379a8092" +dependencies = [ + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-msg" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726b7cbbc6be6f1c6f29146ac824343b9415133eee8cce156452ad1db93f8008" +dependencies = [ + "solana-define-syscall 5.2.0", +] + +[[package]] +name = "solana-native-token" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61515b880c36974053dd499c0510066783f0cc6ac17def0c7ef2a244874cf4a9" + +[[package]] +name = "solana-native-token" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae8dd4c280dca9d046139eb5b7a5ac9ad10403fbd64964c7d7571214950d758f" + +[[package]] +name = "solana-nonce" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703e22eb185537e06204a5bd9d509b948f0066f2d1d814a6f475dafb3ddf1325" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-pubkey 2.4.0", + "solana-sha256-hasher 2.3.0", +] + +[[package]] +name = "solana-nonce" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4172d5b33a0a38fcdb2af8f84406570dd51567267da96c28ad0f31fc11621c0" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator 3.2.2", + "solana-hash 4.5.0", + "solana-pubkey 4.2.0", + "solana-sha256-hasher 3.1.0", + "wincode", +] + +[[package]] +name = "solana-nonce-account" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b81bf7e2aa8c443724051507c1007d0b6d9c34b70925d3232dc78f5ca485209e" +dependencies = [ + "solana-account 4.3.2", + "solana-hash 4.5.0", + "solana-nonce 3.2.1", + "solana-sdk-ids 3.1.0", + "wincode", +] + +[[package]] +name = "solana-offchain-message" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e2a1141a673f72a05cf406b99e4b2b8a457792b7c01afa07b3f00d4e2de393" +dependencies = [ + "num_enum", + "solana-hash 3.1.0", + "solana-packet 3.0.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.1.0", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-packet" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edf2f25743c95229ac0fdc32f8f5893ef738dbf332c669e9861d33ddb0f469d" +dependencies = [ + "bitflags", +] + +[[package]] +name = "solana-packet" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a2a582d7863548f047f49aa3745c076cfa9e1364baa080ef0c1210f0e4ebda" +dependencies = [ + "bitflags", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-poseidon" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "737b8ab25bf4cc8e618f80f1fe40709b2ace708bc764a36b8a4c81eea8c07034" +dependencies = [ + "ark-bn254 0.4.0", + "ark-bn254 0.5.0", + "light-poseidon 0.2.0", + "light-poseidon 0.4.0", + "solana-define-syscall 4.0.1", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-precompile-error" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cafcd950de74c6c39d55dc8ca108bbb007799842ab370ef26cf45a34453c31e1" +dependencies = [ + "num-traits", +] + +[[package]] +name = "solana-presigner" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f704eaf825be3180832445b9e4983b875340696e8e7239bf2d535b0f86c14a2" +dependencies = [ + "solana-pubkey 3.0.0", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-program" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98eca145bd3545e2fbb07166e895370576e47a00a7d824e325390d33bf467210" +dependencies = [ + "bincode", + "blake3", + "borsh 0.10.4", + "borsh 1.8.1", + "bs58", + "bytemuck", + "console_error_panic_hook", + "console_log", + "getrandom 0.2.17", + "lazy_static", + "log", + "memoffset", + "num-bigint 0.4.8", + "num-derive", + "num-traits", + "rand 0.8.8", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 2.3.0", + "solana-address-lookup-table-interface 2.2.2", + "solana-atomic-u64 2.2.1", + "solana-big-mod-exp 2.2.1", + "solana-bincode 2.2.1", + "solana-blake3-hasher 2.2.1", + "solana-borsh 2.2.1", + "solana-clock 2.2.3", + "solana-cpi 2.2.1", + "solana-decode-error", + "solana-define-syscall 2.3.0", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", + "solana-example-mocks 2.2.1", + "solana-feature-gate-interface 2.2.2", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-instructions-sysvar 2.2.2", + "solana-keccak-hasher 2.2.1", + "solana-last-restart-slot 2.2.1", + "solana-loader-v2-interface", + "solana-loader-v3-interface 5.0.0", + "solana-loader-v4-interface 2.2.1", + "solana-message 2.4.0", + "solana-msg 2.2.1", + "solana-native-token 2.3.0", + "solana-nonce 2.2.1", + "solana-program-entrypoint 2.3.0", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-program-option 2.2.1", + "solana-program-pack 2.2.1", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-secp256k1-recover 2.2.1", + "solana-serde-varint 2.2.2", + "solana-serialize-utils 2.2.1", + "solana-sha256-hasher 2.3.0", + "solana-short-vec 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stable-layout 2.2.1", + "solana-stake-interface 1.2.1", + "solana-system-interface 1.0.0", + "solana-sysvar 2.3.0", + "solana-sysvar-id 2.2.1", + "solana-vote-interface 2.2.6", + "thiserror 2.0.20", + "wasm-bindgen", +] + +[[package]] +name = "solana-program" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91b12305dd81045d705f427acd0435a2e46444b65367d7179d7bdcfc3bc5f5eb" +dependencies = [ + "memoffset", + "solana-account-info 3.1.1", + "solana-big-mod-exp 3.0.0", + "solana-blake3-hasher 3.1.0", + "solana-borsh 3.0.2", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-define-syscall 3.0.0", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-epoch-stake", + "solana-example-mocks 3.0.0", + "solana-fee-calculator 3.2.2", + "solana-hash 3.1.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-instructions-sysvar 3.0.1", + "solana-keccak-hasher 3.1.0", + "solana-last-restart-slot 3.1.0", + "solana-msg 3.1.0", + "solana-native-token 3.0.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.3.0", + "solana-serde-varint 3.0.1", + "solana-serialize-utils 3.1.2", + "solana-sha256-hasher 3.1.0", + "solana-short-vec 3.2.2", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stable-layout 3.0.1", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-program-entrypoint" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32ce041b1a0ed275290a5008ee1a4a6c48f5054c8a3d78d313c08958a06aedbd" +dependencies = [ + "solana-account-info 2.3.0", + "solana-msg 2.2.1", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-program-entrypoint" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c9b0a1ff494e05f503a08b3d51150b73aa639544631e510279d6375f290997" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 4.0.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-program-error" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ee2e0217d642e2ea4bee237f37bd61bb02aec60da3647c48ff88f6556ade775" +dependencies = [ + "borsh 1.8.1", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-msg 2.2.1", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-program-error" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f04fa578707b3612b095f0c8e19b66a1233f7c42ca8082fcb3b745afcc0add6" +dependencies = [ + "borsh 1.8.1", + "serde", + "serde_derive", +] + +[[package]] +name = "solana-program-memory" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a5426090c6f3fd6cfdc10685322fede9ca8e5af43cd6a59e98bfe4e91671712" +dependencies = [ + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-program-memory" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4068648649653c2c50546e9a7fb761791b5ab0cda054c771bb5808d3a4b9eb52" +dependencies = [ + "solana-define-syscall 4.0.1", +] + +[[package]] +name = "solana-program-option" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc677a2e9bc616eda6dbdab834d463372b92848b2bfe4a1ed4e4b4adba3397d0" + +[[package]] +name = "solana-program-option" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a88006a9b8594088cec9027ab77caaaa258a2aaa2083d3f086c44b42e50aeab" + +[[package]] +name = "solana-program-pack" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "319f0ef15e6e12dc37c597faccb7d62525a509fec5f6975ecb9419efddeb277b" +dependencies = [ + "solana-program-error 2.2.2", +] + +[[package]] +name = "solana-program-pack" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7701cb15b90667ae1c89ef4ac35a59c61e66ce58ddee13d729472af7f41d59" +dependencies = [ + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-program-runtime" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2b7281bd4a6072c7e11b611f771f4e61be1d45ea0d2aecfbb77d02d1b5877d4" +dependencies = [ + "base64 0.22.1", + "bincode", + "cfg-if", + "itertools 0.14.0", + "log", + "percentage", + "rand 0.9.5", + "serde", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-loader-v3-interface 7.0.0", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", + "solana-stable-layout 3.0.1", + "solana-stake-interface 4.3.0", + "solana-svm-callback", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-timings", + "solana-svm-transaction", + "solana-svm-type-overrides", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction-context", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "solana-pubkey" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b62adb9c3261a052ca1f999398c388f1daf558a1b492f60a6d9e64857db4ff1" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8 0.2.1", + "five8_const 0.1.4", + "getrandom 0.2.17", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-atomic-u64 2.2.1", + "solana-decode-error", + "solana-define-syscall 2.3.0", + "solana-sanitize 2.2.1", + "solana-sha256-hasher 2.3.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-pubkey" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8909d399deb0851aa524420beeb5646b115fd253ef446e35fe4504c904da3941" +dependencies = [ + "rand 0.8.8", + "solana-address 1.1.0", +] + +[[package]] +name = "solana-pubkey" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7db719574990de7e8b0f55a8593ac92a5ccb42c8ce67b3e4bf05b139d5d9ee71" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-rent" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1aea8fdea9de98ca6e8c2da5827707fb3842833521b528a713810ca685d2480" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-rent" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e860d5499a705369778647e97d760f7670adfb6fc8419dd3d568deccd46d5487" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-rent" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39f0d780bf8e8a1fe8b5b5fce1acad6b209485b86dec246e7523d5e4a8b7c7fc" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-runtime-transaction" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60cf942dcefc0f4d600fed1f4d220ff27abaa04def1fefa37e0e0c2a96e4179" +dependencies = [ + "agave-feature-set", + "agave-transaction-view", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-svm-transaction", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-sanitize" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61f1bc1357b8188d9c4a3af3fc55276e56987265eb7ad073ae6f8180ee54cecf" + +[[package]] +name = "solana-sanitize" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf09694a0fc14e5ffb18f9b7b7c0f15ecb6eac5b5610bf76a1853459d19daf9" + +[[package]] +name = "solana-sbpf" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d777d7a89267dd133e985113c7e7f820fb7cfd9123a4a350cf8b39ebae1920bc" +dependencies = [ + "byteorder", + "combine", + "hash32", + "libc", + "log", + "rand 0.8.8", + "rustc-demangle", + "thiserror 2.0.20", + "winapi", +] + +[[package]] +name = "solana-sdk" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f03df7969f5e723ad31b6c9eadccc209037ac4caa34d8dc259316b05c11e82b" +dependencies = [ + "bincode", + "bs58", + "serde", + "solana-account 3.4.0", + "solana-epoch-info", + "solana-epoch-rewards-hasher", + "solana-fee-structure", + "solana-inflation", + "solana-keypair", + "solana-message 3.1.0", + "solana-offchain-message", + "solana-presigner", + "solana-program 3.0.0", + "solana-program-memory 3.1.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-serde", + "solana-serde-varint 3.0.1", + "solana-short-vec 3.2.2", + "solana-shred-version", + "solana-signature 3.4.1", + "solana-signer", + "solana-time-utils", + "solana-transaction 3.1.0", + "solana-transaction-error 3.3.2", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-sdk-ids" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5d8b9cc68d5c88b062a33e23a6466722467dde0035152d8fb1afbcdf350a5f" +dependencies = [ + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-sdk-ids" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "def234c1956ff616d46c9dd953f251fa7096ddbaa6d52b165218de97882b7280" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-sdk-macro" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86280da8b99d03560f6ab5aca9de2e38805681df34e0bb8f238e69b29433b9df" +dependencies = [ + "bs58", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "solana-sdk-macro" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8765316242300c48242d84a41614cb3388229ec353ba464f6fe62a733e41806f" +dependencies = [ + "bs58", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baa3120b6cdaa270f39444f5093a90a7b03d296d362878f7a6991d6de3bbe496" +dependencies = [ + "libsecp256k1 0.6.0", + "solana-define-syscall 2.3.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce0d2e8d53946f04e789476d6c407e4997b7fb412483df5fc10c075c65cb2edf" +dependencies = [ + "k256", + "solana-define-syscall 5.2.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-seed-derivable" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7bdb72758e3bec33ed0e2658a920f1f35dfb9ed576b951d20d63cb61ecd95c" +dependencies = [ + "solana-derivation-path", +] + +[[package]] +name = "solana-seed-phrase" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc905b200a95f2ea9146e43f2a7181e3aeb55de6bc12afb36462d00a3c7310de" +dependencies = [ + "hmac", + "pbkdf2", + "sha2 0.10.9", +] + +[[package]] +name = "solana-serde" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709a93cab694c70f40b279d497639788fc2ccbcf9b4aa32273d4b361322c02dd" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serde-varint" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a7e155eba458ecfb0107b98236088c3764a09ddf0201ec29e52a0be40857113" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serde-varint" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "950e5b83e839dc0f92c66afc124bb8f40e89bc90f0579e8ec5499296d27f54e3" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serialize-utils" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "817a284b63197d2b27afdba829c5ab34231da4a9b4e763466a003c40ca4f535e" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-serialize-utils" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "761357b0853c9623bf12c1d2314b3d6160a85b087b84c45224fb85766d22616b" +dependencies = [ + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sanitize 3.0.1", +] + +[[package]] +name = "solana-sha256-hasher" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa3feb32c28765f6aa1ce8f3feac30936f16c5c3f7eb73d63a5b8f6f8ecdc44" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", +] + +[[package]] +name = "solana-sha256-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db7dc3011ea4c0334aaaa7e7128cb390ecf546b28d412e9bf2064680f57f588f" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-sha512-hasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11e10e103ab5bd52af341e7bc2f4123a2f4e66bb7ba4e6ca40f1e00cd6314e02" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 5.2.0", + "solana-hash-512", +] + +[[package]] +name = "solana-short-vec" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c54c66f19b9766a56fa0057d060de8378676cb64987533fa088861858fc5a69" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-short-vec" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8250a4495aad49ad20556a607da53bdcb20de78da10b65afbf918b7f1de647" +dependencies = [ + "serde_core", + "wincode", +] + +[[package]] +name = "solana-shred-version" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6c79722e299d957958bf33695f7cd1ef6724ff55563c60fd9e3e24487cccde2" +dependencies = [ + "solana-hard-forks", + "solana-hash 4.5.0", + "solana-sha256-hasher 3.1.0", +] + +[[package]] +name = "solana-signature" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64c8ec8e657aecfc187522fc67495142c12f35e55ddeca8698edbb738b8dbd8c" +dependencies = [ + "five8 0.2.1", + "serde", + "serde-big-array", + "serde_derive", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-signature" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0364c7577c3c82a693ce28a1febc8d1b5d1b0a175fdc2114ae6186b69effe1e" +dependencies = [ + "ed25519-dalek", + "five8 1.0.0", + "rand 0.9.5", + "serde", + "serde-big-array", + "serde_derive", + "solana-sanitize 3.0.1", + "wincode", +] + +[[package]] +name = "solana-signer" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520bd6021163ee517f4bdc7ae03ded904f97e11320001ba0b3355f45eb14f558" +dependencies = [ + "solana-pubkey 4.2.0", + "solana-signature 3.4.1", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-slot-hashes" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c8691982114513763e88d04094c9caa0376b867a29577939011331134c301ce" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 2.3.0", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-hashes" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7ce2b4b8911bf2db3de7b6266e67bfc21a6a9f8c566fb096d9782ca2ad16ee" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-slot-history" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97ccc1b2067ca22754d5283afb2b0126d61eae734fc616d23871b0943b0d935e" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-history" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40427c04d3e808493cb5e3d1a97cef84d7c15cb6f89b15c5684d0d4027105600" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-stable-layout" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f14f7d02af8f2bc1b5efeeae71bc1c2b7f0f65cd75bcc7d8180f2c762a57f54" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-stable-layout" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9f6a291ba063a37780af29e7db14bdd3dc447584d8ba5b3fc4b88e2bbc982fa" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-stake-history" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c736a6aa0e53b9d264d90b06589fc0996f49f882f3e71842ed754fc57ffc1a43" +dependencies = [ + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-stake-interface" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5269e89fde216b4d7e1d1739cf5303f8398a1ff372a81232abbee80e554a838c" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", + "num-traits", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-cpi 2.2.1", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-system-interface 1.0.0", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-stake-interface" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9bc26191b533f9a6e5a14cca05174119819ced680a80febff2f5051a713f0db" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-stake-interface" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252b4291eb25a5a356149ed4d4a940d5f655186210fa84b5d0d8d55c3dd42a81" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-svm-callback" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf863c5b86e90e51c18ed08cfd8e21f9cfa60122d60d6364cde7083bf6de837c" +dependencies = [ + "solana-account 4.3.2", + "solana-clock 3.1.1", + "solana-precompile-error", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-feature-set" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "580d385250ddc3826e5d082b221d9d1047bddcc63ee18313f14dcafb95fdcae5" + +[[package]] +name = "solana-svm-log-collector" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f97c2c829a06a1b3bdbad1f770891768c1f0005b322acd7c192ad92157fe525" +dependencies = [ + "log", +] + +[[package]] +name = "solana-svm-measure" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79ec1451e86552456f1e9a1cc7ffafea01ba3383d8246ba636a11cf286da9fc3" + +[[package]] +name = "solana-svm-timings" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33a2692a88fabf56275bb40c39596d6e550a43f6e56b77fa6f0468e0affd977" +dependencies = [ + "eager", + "enum-iterator", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-transaction" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736d2cec944c6f8f298a7bd8ada5eb318cca9ab859281b1300842fa0e9a25afa" +dependencies = [ + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-transaction 4.1.6", +] + +[[package]] +name = "solana-svm-type-overrides" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74a3ba41956ba930a335589eedf0784dfa4be0527ef236df8ad3996a26b5f19f" +dependencies = [ + "rand 0.9.5", +] + +[[package]] +name = "solana-syscalls" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d31c37dc2425afc13ddb2fc8365db8dbd02ac860a454c25b3897831036a64dd8" +dependencies = [ + "bincode", + "libsecp256k1 0.7.2", + "num-traits", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-blake3-hasher 3.1.0", + "solana-bls12-381-syscall", + "solana-bn254", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-curve25519", + "solana-hash 4.5.0", + "solana-hash-512", + "solana-instruction 3.4.1", + "solana-keccak-hasher 3.1.0", + "solana-poseidon", + "solana-program-entrypoint 3.1.1", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.3.0", + "solana-sha256-hasher 3.1.0", + "solana-sha512-hasher", + "solana-stable-layout 3.0.1", + "solana-stake-interface 4.3.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-type-overrides", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction-context", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "solana-system-interface" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94d7c18cb1a91c6be5f5a8ac9276a1d7c737e39a21beba9ea710ab4b9c63bc90" +dependencies = [ + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-system-interface" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e1790547bfc3061f1ee68ea9d8dc6c973c02a163697b24263a8e9f2e6d4afa2" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-instruction 3.4.1", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", +] + +[[package]] +name = "solana-system-interface" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55b54965bf0b76fa8e2b35376583efddd4d916618cfe595bf48c7d7b55a9e628" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "wincode", +] + +[[package]] +name = "solana-system-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2610e0b091b920da610ad3e5ba850530702f5ac911b4e9dc5ab9a025a772138a" +dependencies = [ + "bincode", + "log", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-fee-calculator 3.2.2", + "solana-instruction 3.4.1", + "solana-nonce 3.2.1", + "solana-nonce-account", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-transaction-context", +] + +[[package]] +name = "solana-sysvar" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c3595f95069f3d90f275bb9bd235a1973c4d059028b0a7f81baca2703815db" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 2.3.0", + "solana-clock 2.2.3", + "solana-define-syscall 2.3.0", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-instructions-sysvar 2.2.2", + "solana-last-restart-slot 2.2.1", + "solana-program-entrypoint 2.3.0", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stake-interface 1.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-sysvar" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6690d3dd88f15c21edff68eb391ef8800df7a1f5cec84ee3e8d1abf05affdf74" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-define-syscall 4.0.1", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-calculator 3.2.2", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 4.2.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-sysvar" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ada7045bbfdd802af08fbc9c7e2b56ddabb20599d22e4c3840fcef5e7afb8324" +dependencies = [ + "base64 0.22.1", + "bincode", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-define-syscall 5.2.0", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-calculator 3.2.2", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stake-history", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-sysvar-id" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5762b273d3325b047cfda250787f8d796d781746860d5d0a746ee29f3e8812c1" +dependencies = [ + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-sysvar-id" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17358d1e9a13e5b9c2264d301102126cf11a47fd394cdf3dec174fe7bc96e1de" +dependencies = [ + "solana-address 2.6.1", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-time-utils" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ced92c60aa76ec4780a9d93f3bd64dfa916e1b998eacc6f1c110f3f444f02c9" + +[[package]] +name = "solana-transaction" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96697cff5075a028265324255efed226099f6d761ca67342b230d09f72cc48d2" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-message 3.1.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-signer", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-transaction" +version = "4.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8008008a75246adaf8b67411093a6d78db8232c74b00eff6041fd1da73679e7" +dependencies = [ + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-message 4.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-signer", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-transaction-context" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d61811155533aebcf806e694d3ed91be7fc168dc9bdcf25e8eb98b9234c7c3" +dependencies = [ + "bincode", + "qualifier_attr", + "serde", + "solana-account 4.3.2", + "solana-instruction 3.4.1", + "solana-instructions-sysvar 4.0.0", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-transaction-error" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222a9dc8fdb61c6088baab34fc3a8b8473a03a7a5fd404ed8dd502fa79b67cb1" +dependencies = [ + "solana-instruction 2.3.3", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-transaction-error" +version = "3.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "054e54d15164b0c34cb744600a1a0330e9fd97a12d979f2eb95904c807a07713" +dependencies = [ + "serde", + "serde_derive", + "solana-instruction-error", + "solana-sanitize 3.0.1", +] + +[[package]] +name = "solana-vote-interface" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b80d57478d6599d30acc31cc5ae7f93ec2361a06aefe8ea79bc81739a08af4c3" +dependencies = [ + "bincode", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-decode-error", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serde-varint 2.2.2", + "solana-serialize-utils 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-vote-interface" +version = "6.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13a7a204b455a53fe8c9a26a6885391a5896835e06694dbe0cf37c580f82f128" +dependencies = [ + "bincode", + "cfg_eval", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "serde_with", + "solana-clock 3.1.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-serde-varint 3.0.1", + "solana-serialize-utils 3.1.2", + "solana-short-vec 3.2.2", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-vote-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69c6faf8370369c45bc14eeca8dc0249450b940b57dcfcec0103403f9feaf88a" +dependencies = [ + "agave-feature-set", + "bincode", + "log", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-bls-signatures", + "solana-clock 3.1.1", + "solana-epoch-schedule 3.2.0", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", + "solana-system-interface 3.2.0", + "solana-transaction-context", + "solana-vote-interface 6.0.3", +] + +[[package]] +name = "solana-zk-elgamal-proof-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d55e2d0d7f884295989dae8b7e0b6d7a46d87ed2d917113007383261e5e93d" +dependencies = [ + "bytemuck", + "solana-instruction 3.4.1", + "solana-program-runtime", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-zk-sdk", +] + +[[package]] +name = "solana-zk-sdk" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09670ff59f60e6ddc2209c2e4353992a9b9f01d4e244f3e9d67bd5146e33d388" +dependencies = [ + "aes-gcm-siv", + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "itertools 0.14.0", + "merlin", + "num-derive", + "num-traits", + "rand 0.8.8", + "serde", + "serde_derive", + "serde_json", + "sha3", + "solana-address 2.6.1", + "solana-derivation-path", + "solana-instruction 3.4.1", + "solana-sdk-ids 3.1.0", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature 3.4.1", + "solana-signer", + "subtle", + "thiserror 2.0.20", + "zeroize", +] + +[[package]] +name = "solana-zk-token-proof-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc32fcd9ff8bb90837755deccefdb20518484626c0a9d0649a36e5fcb0fcf520" +dependencies = [ + "solana-program-runtime", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "spl-associated-token-account-interface" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6bbe0794e532ac08428d3abf5bf8ae75bd81dfddd785c388e326c00c92c6f5" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[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.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tar" +version = "0.4.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6221d9a6003c78398e3b239969f352578258df48c8eb051caadae0015bc840" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "test-utils" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "ephemeral-rollups-sdk 0.16.2", + "magicsvm", + "serde_json", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-signer", + "solana-transaction 4.1.6", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" +dependencies = [ + "thiserror-impl 2.0.20", +] + +[[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.119", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "tinyvec" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee" + +[[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 = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.25.15+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1340ea94a5856333492c9064b02c778b191dd2c853778d9609debdcdfea3a614" +dependencies = [ + "indexmap", + "toml_datetime", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" +dependencies = [ + "winnow", +] + +[[package]] +name = "typed-path" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" + +[[package]] +name = "typenum" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-segmentation" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +dependencies = [ + "void", +] + +[[package]] +name = "ureq" +version = "3.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a7ac20be9b7726e0bbdbf974c059676d9acb1cd414961f570a4e8231cacd7fc" +dependencies = [ + "base64 0.23.1", + "log", + "percent-encoding", + "ureq-proto", + "utf8-zero", +] + +[[package]] +name = "ureq-proto" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0809a01d1ca5a51ca70db32bb2a19157582a526505ef3c19e3b343a59aa5ad" +dependencies = [ + "base64 0.23.1", + "http", + "httparse", + "log", +] + +[[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 = "utf8-zero" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e" + +[[package]] +name = "uuid" +version = "1.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ef6dac1e96601b4fb3acccccff2139741fcb757cb9a36089bf5be91cfb285ce" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[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.4+wasi-0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aecb87a33d3b0c5e3b7aa46336eaf486cffafbd281b195e4c8b80d50df2351bf" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a690d511e3c1a8b3a55e33511e3c2c00c78415cd23650f32b808627f5696b9ed" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "411e4887f0071ef2d2164a9d5fdf2d20efbef78fccd3a78b0c10a1dc5295e48a" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 3.0.5", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81941cd78d0c92026c33e5e01312845a4cb1e9af3407f9134b100dd03144103e" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "web-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fbddc4a036f00ec4f18c83445bd3115cb306a91da554919a099d9222fe4a7f8" +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-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "wincode" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66d967db7705dc29120bb6e8ce5b5a2e27734ed5976d1c904e95bd238d1c3c5a" +dependencies = [ + "bv", + "pastey", + "proc-macro2", + "quote", + "thiserror 2.0.20", + "wincode-derive", +] + +[[package]] +name = "wincode-derive" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15ab90b719560d0fda79c74550ad1c948d17b118765942838055ebaf34d67071" +dependencies = [ + "darling 0.23.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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 = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "xattr" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" +dependencies = [ + "libc", + "rustix", +] + +[[package]] +name = "zerocopy" +version = "0.8.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d35102a9f36d089ccae9e4c6802bc118be4487b80aaffc0ab4e0cf5ce92d2873" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c01f5ab44258da43cf276c74a2763db2ff3969c9c652c3f2de07041d0b2bc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zeroize" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zip" +version = "8.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b" +dependencies = [ + "crc32fast", + "flate2", + "indexmap", + "memchr", + "typed-path", + "zopfli", +] + +[[package]] +name = "zlib-rs" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12" + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" + +[[package]] +name = "zopfli" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" +dependencies = [ + "bumpalo", + "crc32fast", + "log", + "simd-adler32", +] diff --git a/oracle-priced-purchase/anchor/tests-magicsvm-rs/Cargo.toml b/oracle-priced-purchase/anchor/tests-magicsvm-rs/Cargo.toml new file mode 100644 index 00000000..94d1ba14 --- /dev/null +++ b/oracle-priced-purchase/anchor/tests-magicsvm-rs/Cargo.toml @@ -0,0 +1,34 @@ +[package] +name = "oracle-priced-purchase-magicsvm-tests" +version = "0.1.0" +description = "MagicSVM copies of the oracle-priced-purchase tests" +edition = "2021" +publish = false +autobins = false +autoexamples = false +autotests = false +autobenches = false + +[workspace] + +[[test]] +name = "magicsvm" +path = "tests/magicsvm.rs" + +[dependencies] +anchor-lang = "=1.0.2" +base64 = "0.22" +magicsvm = "0.2.0" +test-utils = { path = "../../../test-utils/rust", features = ["anchor"] } +oracle-priced-purchase = { path = "../programs/oracle-priced-purchase", features = ["no-entrypoint"] } +serde = { version = "1", features = ["derive"] } +serde_json = "1" +solana-account = "4.3.1" +solana-address = "2.6.1" +solana-clock = "3.1.1" +solana-instruction = { version = "3.4.0", features = ["bincode"] } +solana-keypair = "3.1.2" +solana-message = "4.2.4" +solana-native-token = "3.0.0" +solana-signer = "3.0.1" +solana-transaction = { version = "4.1.5", features = ["verify"] } diff --git a/oracle-priced-purchase/anchor/tests-magicsvm-rs/tests/magicsvm.rs b/oracle-priced-purchase/anchor/tests-magicsvm-rs/tests/magicsvm.rs new file mode 100644 index 00000000..812c2875 --- /dev/null +++ b/oracle-priced-purchase/anchor/tests-magicsvm-rs/tests/magicsvm.rs @@ -0,0 +1,295 @@ +use { + anchor_lang::{prelude::Pubkey, system_program, InstructionData, ToAccountMetas}, + base64::{engine::general_purpose::STANDARD, Engine as _}, + magicsvm::{MagicSVM, TransactionTarget}, + oracle_priced_purchase::{self, accounts, instruction, RECEIPT_SEED, STORE_SEED}, + solana_account::Account, + solana_address::{address, Address}, + solana_clock::Clock, + solana_instruction::Instruction, + solana_keypair::Keypair, + solana_message::Message, + solana_native_token::LAMPORTS_PER_SOL, + solana_signer::Signer, + solana_transaction::Transaction, + std::{fs, path::PathBuf, str::FromStr}, + test_utils::{as_address, as_pubkey, client_ix, program_id_from_idl, send_ixs}, +}; + +const SOL_USD_100_PRICE: Address = address!("B8vx8v7SwZsmFYz3fkSJphr7uq34LoiVr18pimLG5FJM"); +const SOL_USD_50_PRICE: Address = address!("EpdAP2KHQAXPccREjM1WsLiyKVcchYj82pv9sWZhYUY1"); +const SOL_USD_100_FEED_ID: [u8; 32] = [ + 0x96, 0x9c, 0xef, 0xe5, 0xa1, 0xc3, 0xdc, 0x42, 0x4a, 0xea, 0xf1, 0x91, 0x89, 0x3d, 0x64, 0x27, + 0x99, 0xb8, 0x54, 0x54, 0x31, 0xb5, 0xe2, 0x56, 0x0e, 0x1c, 0xc7, 0x8c, 0xcf, 0xdd, 0x91, 0xd6, +]; +const SOL_USD_50_FEED_ID: [u8; 32] = [ + 0xcd, 0x5b, 0x1d, 0xc2, 0xe5, 0x48, 0x6e, 0xe8, 0xa1, 0xfa, 0x93, 0xa7, 0x6a, 0xd5, 0x6a, 0x1d, + 0x15, 0xfe, 0xf4, 0x5c, 0x54, 0xfa, 0xc5, 0x0c, 0x7b, 0x48, 0x9f, 0x1f, 0x3b, 0xe0, 0x13, 0x6a, +]; +const PRICE_PUBLISH_TIME_OFFSET: usize = 93; + +#[derive(serde::Deserialize)] +struct FixtureFile { + pubkey: String, + account: FixtureAccount, +} + +#[derive(serde::Deserialize)] +struct FixtureAccount { + lamports: u64, + data: (String, String), + owner: String, + executable: bool, + #[serde(rename = "rentEpoch", default)] + rent_epoch: u64, +} + +fn example_dir() -> PathBuf { + PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("..") +} + +fn program_so() -> Vec { + let path = example_dir().join("target/deploy/oracle_priced_purchase.so"); + fs::read(&path).unwrap_or_else(|err| panic!("failed to read {}: {err}", path.display())) +} + +fn load_oracle_fixtures(svm: &mut MagicSVM) -> i64 { + let fixtures_dir = example_dir().join("tests/fixtures/accounts"); + let mut publish_time = 0i64; + for entry in fs::read_dir(&fixtures_dir).unwrap() { + let path = entry.unwrap().path(); + if path.extension().and_then(|ext| ext.to_str()) != Some("json") { + continue; + } + let fixture: FixtureFile = + serde_json::from_str(&fs::read_to_string(&path).unwrap()).unwrap(); + assert_eq!( + fixture.account.data.1, "base64", + "oracle fixtures must be base64-encoded" + ); + let data = STANDARD.decode(fixture.account.data.0.as_bytes()).unwrap(); + if data.len() >= PRICE_PUBLISH_TIME_OFFSET + 8 { + publish_time = i64::from_le_bytes( + data[PRICE_PUBLISH_TIME_OFFSET..PRICE_PUBLISH_TIME_OFFSET + 8] + .try_into() + .unwrap(), + ); + } + svm.set_account( + Address::from_str(&fixture.pubkey).unwrap(), + Account { + lamports: fixture.account.lamports, + data, + owner: Address::from_str(&fixture.account.owner).unwrap(), + executable: fixture.account.executable, + rent_epoch: fixture.account.rent_epoch, + }, + ) + .unwrap(); + } + publish_time +} + +fn program_id() -> Pubkey { + as_pubkey(&program_id_from_idl( + env!("CARGO_MANIFEST_DIR"), + "oracle_priced_purchase.json", + )) +} + +fn program_address() -> Address { + as_address(program_id()) +} + +fn ix(data: impl InstructionData, accounts: impl ToAccountMetas) -> Instruction { + client_ix(program_address(), data, accounts) +} + +fn send_base(svm: &mut MagicSVM, signers: &[&Keypair], ix: Instruction) { + send_ixs(svm, TransactionTarget::Base, signers, &[ix], "transaction"); +} + +fn initialize_store_ix( + store: Pubkey, + merchant: Pubkey, + token_price_usd_cents: u64, + sol_usd_feed_id: [u8; 32], +) -> Instruction { + ix( + instruction::InitializeStore { + token_price_usd_cents, + sol_usd_feed_id, + }, + accounts::InitializeStore { + store, + merchant, + system_program: system_program::ID, + }, + ) +} + +fn buy_token_ix( + store: Pubkey, + receipt: Pubkey, + buyer: Pubkey, + merchant: Pubkey, + price_update: Pubkey, + quantity: u64, + max_lamports: u64, +) -> Instruction { + ix( + instruction::BuyToken { + quantity, + max_lamports, + }, + accounts::BuyToken { + store, + receipt, + buyer, + merchant, + price_update, + system_program: system_program::ID, + }, + ) +} + +struct StoreState { + token_price_usd_cents: u64, + sold_count: u64, +} + +fn decode_store(data: &[u8]) -> StoreState { + assert!(data.len() >= 88, "store account too small"); + StoreState { + token_price_usd_cents: u64::from_le_bytes(data[72..80].try_into().unwrap()), + sold_count: u64::from_le_bytes(data[80..88].try_into().unwrap()), + } +} + +struct ReceiptState { + buyer: Address, + total_quantity: u64, + total_paid_lamports: u64, + last_unit_price_usd_cents: u64, + last_paid_lamports: u64, + oracle_price: i64, + oracle_exponent: i32, +} + +fn decode_receipt(data: &[u8]) -> ReceiptState { + assert!(data.len() >= 88, "receipt account too small"); + ReceiptState { + buyer: Address::from(<[u8; 32]>::try_from(&data[8..40]).unwrap()), + total_quantity: u64::from_le_bytes(data[40..48].try_into().unwrap()), + total_paid_lamports: u64::from_le_bytes(data[48..56].try_into().unwrap()), + last_unit_price_usd_cents: u64::from_le_bytes(data[56..64].try_into().unwrap()), + last_paid_lamports: u64::from_le_bytes(data[64..72].try_into().unwrap()), + oracle_price: i64::from_le_bytes(data[72..80].try_into().unwrap()), + oracle_exponent: i32::from_le_bytes(data[80..84].try_into().unwrap()), + } +} + +fn setup() -> (MagicSVM, Keypair, Keypair, Address, Address) { + let merchant = Keypair::new(); + let buyer = Keypair::new(); + let mut svm = MagicSVM::new(); + svm.add_program(program_address(), &program_so()).unwrap(); + svm.airdrop(&merchant.pubkey(), 10 * LAMPORTS_PER_SOL) + .unwrap(); + svm.airdrop(&buyer.pubkey(), 2 * LAMPORTS_PER_SOL).unwrap(); + + let publish_time = load_oracle_fixtures(&mut svm); + let mut clock = svm.get_sysvar::(); + clock.unix_timestamp = publish_time; + svm.set_sysvar(&clock); + + let (store, _) = Pubkey::find_program_address(&[STORE_SEED], &program_id()); + let (receipt, _) = + Pubkey::find_program_address(&[RECEIPT_SEED, buyer.pubkey().as_ref()], &program_id()); + + send_base( + &mut svm, + &[&merchant], + initialize_store_ix( + store, + as_pubkey(&merchant.pubkey()), + 2_500, + SOL_USD_100_FEED_ID, + ), + ); + + (svm, merchant, buyer, as_address(store), as_address(receipt)) +} + +#[test] +fn uses_the_sol_usd_oracle_price_to_charge_a_usd_priced_token_purchase() { + let (mut svm, merchant, buyer, store, receipt) = setup(); + + send_base( + &mut svm, + &[&merchant, &buyer], + buy_token_ix( + as_pubkey(&store), + as_pubkey(&receipt), + as_pubkey(&buyer.pubkey()), + as_pubkey(&merchant.pubkey()), + as_pubkey(&SOL_USD_100_PRICE), + 2, + 600_000_000, + ), + ); + + let store_state = decode_store(&svm.get_account(&store).unwrap().data); + assert_eq!(store_state.token_price_usd_cents.to_string(), "2500"); + assert_eq!(store_state.sold_count.to_string(), "2"); + + let receipt_state = decode_receipt(&svm.get_account(&receipt).unwrap().data); + assert_eq!(receipt_state.buyer, buyer.pubkey()); + assert_eq!(receipt_state.total_quantity.to_string(), "2"); + assert_eq!(receipt_state.total_paid_lamports.to_string(), "500000000"); + assert_eq!(receipt_state.last_unit_price_usd_cents.to_string(), "2500"); + assert_eq!(receipt_state.last_paid_lamports.to_string(), "500000000"); + assert_eq!(receipt_state.oracle_price.to_string(), "10000"); + assert_eq!(receipt_state.oracle_exponent, -2); +} + +#[test] +fn rejects_a_purchase_when_the_oracle_derived_sol_cost_exceeds_max_lamports() { + let (mut svm, merchant, buyer, store, receipt) = setup(); + + send_base( + &mut svm, + &[&merchant], + initialize_store_ix( + as_pubkey(&store), + as_pubkey(&merchant.pubkey()), + 2_500, + SOL_USD_50_FEED_ID, + ), + ); + + let tx = Transaction::new( + &[&merchant, &buyer], + Message::new( + &[buy_token_ix( + as_pubkey(&store), + as_pubkey(&receipt), + as_pubkey(&buyer.pubkey()), + as_pubkey(&merchant.pubkey()), + as_pubkey(&SOL_USD_50_PRICE), + 1, + 400_000_000, + )], + Some(&merchant.pubkey()), + ), + svm.latest_blockhash_for(TransactionTarget::Base), + ); + let err = svm + .send_transaction_to(TransactionTarget::Base, tx) + .expect_err("expected max_lamports check to reject the purchase"); + let logs = err.meta.logs.join("\n"); + assert!( + logs.contains("PaymentTooHigh"), + "expected PaymentTooHigh, got:\n{logs}" + ); +} diff --git a/oracle-priced-purchase/anchor/tests-magicsvm/oracle-priced-purchase.ts b/oracle-priced-purchase/anchor/tests-magicsvm/oracle-priced-purchase.ts new file mode 100644 index 00000000..9bfbd861 --- /dev/null +++ b/oracle-priced-purchase/anchor/tests-magicsvm/oracle-priced-purchase.ts @@ -0,0 +1,221 @@ +import * as anchor from "@coral-xyz/anchor"; +import { Program } from "@coral-xyz/anchor"; +import { MagicSVM } from "@magicblock-labs/magicsvm"; +import { + airdropOrThrow, + bootAnchorSvm, + sendSvmIx, + setUnixTimestamp, +} from "@magicblock-labs/test-utils"; +import { + Keypair, + LAMPORTS_PER_SOL, + PublicKey, + SystemProgram, +} from "@solana/web3.js"; +import { assert } from "chai"; +import * as fs from "fs"; +import * as path from "path"; +import { OraclePricedPurchase } from "../target/types/oracle_priced_purchase"; + +const RECEIPT_SEED = "receipt"; +const STORE_SEED = "store"; +const SOL_USD_100_PRICE = new PublicKey( + "B8vx8v7SwZsmFYz3fkSJphr7uq34LoiVr18pimLG5FJM", +); +const SOL_USD_50_PRICE = new PublicKey( + "EpdAP2KHQAXPccREjM1WsLiyKVcchYj82pv9sWZhYUY1", +); +const SOL_USD_100_FEED_ID = Array.from( + Buffer.from( + "969cefe5a1c3dc424aeaf191893d642799b8545431b5e2560e1cc78ccfdd91d6", + "hex", + ), +); +const SOL_USD_50_FEED_ID = Array.from( + Buffer.from( + "cd5b1dc2e5486ee8a1fa93a76ad56a1d15fef45c54fac50c7b489f1f3be0136a", + "hex", + ), +); +const PRICE_PUBLISH_TIME_OFFSET = 93; +const FIXTURES_DIR = path.join( + __dirname, + "..", + "tests", + "fixtures", + "accounts", +); + +type FixtureAccount = { + pubkey: string; + account: { + lamports: number; + data: [string, string]; + owner: string; + executable: boolean; + rentEpoch?: number; + }; +}; + +function loadOracleFixtures(svm: MagicSVM): bigint { + let publishTime = 0n; + for (const file of fs.readdirSync(FIXTURES_DIR)) { + if (!file.endsWith(".json")) { + continue; + } + const fixture = JSON.parse( + fs.readFileSync(path.join(FIXTURES_DIR, file), "utf8"), + ) as FixtureAccount; + const encoding = fixture.account.data[1] as BufferEncoding; + const data = Buffer.from(fixture.account.data[0], encoding); + svm.setAccount({ + address: fixture.pubkey, + executable: fixture.account.executable, + lamports: BigInt(fixture.account.lamports), + programAddress: fixture.account.owner, + space: BigInt(data.length), + data: new Uint8Array(data), + }); + if (data.length > PRICE_PUBLISH_TIME_OFFSET + 8) { + publishTime = data.readBigInt64LE(PRICE_PUBLISH_TIME_OFFSET); + } + } + return publishTime; +} + +function decodeAccount( + program: Program, + name: string, + address: PublicKey, + svm: MagicSVM, +): T { + const account = svm.getAccountFor(address, { target: "base" }); + if (!account.exists) { + throw new Error(`account ${address.toBase58()} does not exist`); + } + return program.coder.accounts.decode(name, Buffer.from(account.data)) as T; +} + +describe("oracle-priced-purchase", () => { + const merchant = Keypair.generate(); + const buyer = Keypair.generate(); + const { svm, program } = bootAnchorSvm({ + fromDir: __dirname, + programName: "oracle_priced_purchase", + payer: merchant, + airdropLamports: BigInt(10 * LAMPORTS_PER_SOL), + }); + const [store] = PublicKey.findProgramAddressSync( + [Buffer.from(STORE_SEED)], + program.programId, + ); + const [receipt] = PublicKey.findProgramAddressSync( + [Buffer.from(RECEIPT_SEED), buyer.publicKey.toBuffer()], + program.programId, + ); + + before(async () => { + airdropOrThrow( + svm, + buyer.publicKey, + BigInt(2 * LAMPORTS_PER_SOL), + "airdrop buyer", + ); + setUnixTimestamp(svm, loadOracleFixtures(svm)); + sendSvmIx( + svm, + [merchant], + await program.methods + .initializeStore(new anchor.BN(2_500), SOL_USD_100_FEED_ID) + .accountsPartial({ + store, + merchant: merchant.publicKey, + systemProgram: SystemProgram.programId, + }) + .instruction(), + "base", + ); + }); + + it("uses the SOL/USD oracle price to charge a USD-priced token purchase", async () => { + sendSvmIx( + svm, + [merchant, buyer], + await program.methods + .buyToken(new anchor.BN(2), new anchor.BN(600_000_000)) + .accountsPartial({ + store, + receipt, + buyer: buyer.publicKey, + merchant: merchant.publicKey, + priceUpdate: SOL_USD_100_PRICE, + systemProgram: SystemProgram.programId, + }) + .instruction(), + "base", + ); + + const storeState = decodeAccount<{ + tokenPriceUsdCents: { toString(): string }; + soldCount: { toString(): string }; + }>(program, "store", store, svm); + assert.equal(storeState.tokenPriceUsdCents.toString(), "2500"); + assert.equal(storeState.soldCount.toString(), "2"); + + const receiptState = decodeAccount<{ + buyer: PublicKey; + totalQuantity: { toString(): string }; + totalPaidLamports: { toString(): string }; + lastUnitPriceUsdCents: { toString(): string }; + lastPaidLamports: { toString(): string }; + oraclePrice: { toString(): string }; + oracleExponent: number; + }>(program, "purchaseReceipt", receipt, svm); + assert.equal(receiptState.buyer.toBase58(), buyer.publicKey.toBase58()); + assert.equal(receiptState.totalQuantity.toString(), "2"); + assert.equal(receiptState.totalPaidLamports.toString(), "500000000"); + assert.equal(receiptState.lastUnitPriceUsdCents.toString(), "2500"); + assert.equal(receiptState.lastPaidLamports.toString(), "500000000"); + assert.equal(receiptState.oraclePrice.toString(), "10000"); + assert.equal(receiptState.oracleExponent, -2); + }); + + it("rejects a purchase when the oracle-derived SOL cost exceeds max_lamports", async () => { + sendSvmIx( + svm, + [merchant], + await program.methods + .initializeStore(new anchor.BN(2_500), SOL_USD_50_FEED_ID) + .accountsPartial({ + store, + merchant: merchant.publicKey, + systemProgram: SystemProgram.programId, + }) + .instruction(), + "base", + ); + + try { + sendSvmIx( + svm, + [merchant, buyer], + await program.methods + .buyToken(new anchor.BN(1), new anchor.BN(400_000_000)) + .accountsPartial({ + store, + receipt, + buyer: buyer.publicKey, + merchant: merchant.publicKey, + priceUpdate: SOL_USD_50_PRICE, + systemProgram: SystemProgram.programId, + }) + .instruction(), + "base", + ); + assert.fail("expected max_lamports check to reject the purchase"); + } catch (error) { + assert.include(String(error), "PaymentTooHigh"); + } + }); +}); diff --git a/oracle-priced-purchase/anchor/tsconfig.json b/oracle-priced-purchase/anchor/tsconfig.json index c464e2dd..2469f714 100644 --- a/oracle-priced-purchase/anchor/tsconfig.json +++ b/oracle-priced-purchase/anchor/tsconfig.json @@ -2,9 +2,10 @@ "compilerOptions": { "types": ["mocha", "node"], "typeRoots": ["./node_modules/@types"], - "lib": ["es2015"], + "lib": ["es2020"], "module": "commonjs", - "target": "es6", - "esModuleInterop": true + "target": "es2020", + "esModuleInterop": true, + "skipLibCheck": true } } diff --git a/oracle-priced-purchase/anchor/yarn.lock b/oracle-priced-purchase/anchor/yarn.lock index f92223f1..dd7108c8 100644 --- a/oracle-priced-purchase/anchor/yarn.lock +++ b/oracle-priced-purchase/anchor/yarn.lock @@ -2,7 +2,7 @@ # yarn lockfile v1 -"@babel/runtime@^7.25.0": +"@babel/runtime@^7.25.0", "@babel/runtime@^7.29.7": version "7.29.7" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.7.tgz#12022450c45a4da6d8d8287b18a4ff2ddb23f768" integrity sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw== @@ -76,23 +76,180 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@noble/curves@^1.4.2": +"@magicblock-labs/ephemeral-rollups-sdk@0.14.3": + version "0.14.3" + resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.14.3.tgz#536c215d1daefdbcfa82a79304b08f5014405c58" + integrity sha512-CoByiXHLLS+l7Ojl6XJuYypP/k08ymFkab8+Gh/HCv5Gn2oC4VkwszEQoTDnKo++8Oxbqr9YVGzAMUW4Km7cLA== + dependencies: + "@noble/curves" "^1.4.2" + "@noble/hashes" "^1.4.0" + "@phala/dcap-qvl" "^0.3.9" + "@solana/web3.js" "^1.98.0" + bs58 "^6.0.0" + rpc-websockets "^9.0.4" + tweetnacl "^1.0.3" + typescript "^5.3.0" + +"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" + integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== + +"@magicblock-labs/magicsvm-darwin-x64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" + integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== + +"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" + integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== + +"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" + integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== + +"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" + integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== + +"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" + integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== + +"@magicblock-labs/magicsvm@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" + integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== + dependencies: + "@solana/web3.js" "3.0.0-rc.3" + optionalDependencies: + "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" + "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" + +"@magicblock-labs/test-utils@link:../../test-utils/ts": + version "0.0.0" + uid "" + +"@noble/curves@^1.4.2", "@noble/curves@^1.9.7": version "1.9.7" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== dependencies: "@noble/hashes" "1.8.0" -"@noble/hashes@1.8.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0": +"@noble/hashes@1.8.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0", "@noble/hashes@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== +"@peculiar/asn1-schema@^2.3.13", "@peculiar/asn1-schema@^2.9.4": + version "2.9.4" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.9.4.tgz#99003d4bc87ec2ed2c4deb2843404496a912c3cf" + integrity sha512-GjzePcT9Iw8NzeOPf73iNS9xM+TBhd/FilAfP+RQGkTMQJTVWtytN3JHJACCjf/ABNau5S7mS3g+DcuxmRgYEg== + dependencies: + "@peculiar/utils" "^2.0.2" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-x509@^2.3.13": + version "2.9.4" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.9.4.tgz#f997898c48ba6536bed640f788734d36477c21ad" + integrity sha512-CxhBo/RdEbMMob7T31ZdQjGuoyRFLVwrDzTn25bihzBasRg9kRm/0IxIPvhgQtcK/9dNcO1XQL2fuPugwELL0Q== + dependencies: + "@peculiar/asn1-schema" "^2.9.4" + "@peculiar/utils" "^2.0.2" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/utils@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@peculiar/utils/-/utils-2.0.3.tgz#a27ca4c4b73652e110f19a7d16d664f458a5528e" + integrity sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ== + dependencies: + tslib "^2.8.1" + +"@phala/dcap-qvl@^0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@phala/dcap-qvl/-/dcap-qvl-0.3.9.tgz#34da2506c31954cd290afb5a46146cd52ae24481" + integrity sha512-s/4gAFVq1DRhYkuerDR9WAlX8tkCpFTHTVpWnWlrigj5la2X5OtQl9Y7PzwcqY4h0fc25yqZrcRH3AZpzB1qOw== + dependencies: + "@peculiar/asn1-schema" "^2.3.13" + "@peculiar/asn1-x509" "^2.3.13" + asn1.js "^5.4.1" + bn.js "^5.2.2" + buffer "^6.0.3" + elliptic "^6.6.1" + hash.js "^1.1.7" + node-fetch "^2.7.0" + "@pkgjs/parseargs@^0.11.0": version "0.11.0" resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== +"@solana-program/address-lookup-table@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" + integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== + +"@solana-program/compute-budget@^0.18.0": + version "0.18.1" + resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" + integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== + +"@solana-program/loader-v3@^0.6.0": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" + integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== + +"@solana-program/stake@^0.9.0": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" + integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== + +"@solana-program/system@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" + integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== + +"@solana/accounts@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" + integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/addresses@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" + integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" + integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/buffer-layout@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" @@ -107,6 +264,37 @@ dependencies: "@solana/errors" "2.3.0" +"@solana/codecs-core@5.5.1": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-5.5.1.tgz#1b2619c697ad04c99f98cc468135d584b7e2b16d" + integrity sha512-TgBt//bbKBct0t6/MpA8ElaOA3sa8eYVvR7LGslCZ84WiAwwjCY0lW/lOYsFHJQzwREMdUyuEyy5YWBKtdh8Rw== + dependencies: + "@solana/errors" "5.5.1" + +"@solana/codecs-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" + integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== + dependencies: + "@solana/errors" "8.3.0" + +"@solana/codecs-data-structures@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" + integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/codecs-numbers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" + integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/codecs-numbers@^2.1.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" @@ -115,6 +303,35 @@ "@solana/codecs-core" "2.3.0" "@solana/errors" "2.3.0" +"@solana/codecs-numbers@^5.5.1": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-5.5.1.tgz#6ebc43250133ceb7836f1ac5780a7767e383efde" + integrity sha512-rllMIZAHqmtvC0HO/dc/21wDuWaD0B8Ryv8o+YtsICQBuiL/0U4AGwH7Pi5GNFySYk0/crSuwfIqQFtmxNSPFw== + dependencies: + "@solana/codecs-core" "5.5.1" + "@solana/errors" "5.5.1" + +"@solana/codecs-strings@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" + integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/codecs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" + integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/options" "8.3.0" + "@solana/errors@2.3.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.3.0.tgz#4ac9380343dbeffb9dffbcb77c28d0e457c5fa31" @@ -123,6 +340,437 @@ chalk "^5.4.1" commander "^14.0.0" +"@solana/errors@5.5.1": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-5.5.1.tgz#1c17bc822264fd5a6305d8bfb9d597858e4ce17b" + integrity sha512-vFO3p+S7HoyyrcAectnXbdsMfwUzY2zYFUc2DEe5BwpiE9J1IAxPBGjOWO6hL1bbYdBrlmjNx8DXCslqS+Kcmg== + dependencies: + chalk "5.6.2" + commander "14.0.2" + +"@solana/errors@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" + integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== + dependencies: + chalk "5.6.2" + commander "15.0.0" + +"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" + integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== + +"@solana/fixed-points@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" + integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/functional@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" + integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== + +"@solana/instruction-plans@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" + integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/instructions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" + integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/keys@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" + integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/promises" "8.3.0" + +"@solana/kit@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" + integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/plugin-core" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/program-client-core" "8.3.0" + "@solana/programs" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/sysvars" "8.3.0" + "@solana/transaction-confirmation" "8.3.0" + "@solana/transaction-introspection" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/nominal-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" + integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== + +"@solana/offchain-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" + integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/options@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" + integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/plugin-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" + integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== + +"@solana/plugin-interfaces@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" + integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/program-client-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" + integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/signers" "8.3.0" + +"@solana/programs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" + integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/promises@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" + integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== + +"@solana/rpc-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" + integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/rpc-parsed-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" + integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== + +"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" + integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== + dependencies: + "@solana/errors" "8.3.0" + +"@solana/rpc-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" + integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-subscriptions-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" + integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/rpc-subscriptions-channel-websocket@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" + integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/subscribable" "8.3.0" + ws "^8.21.3" + +"@solana/rpc-subscriptions-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" + integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-subscriptions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" + integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions-api" "8.3.0" + "@solana/rpc-subscriptions-channel-websocket" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-transformers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" + integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/rpc-transport-http@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" + integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + undici-types "^8.10.2" + +"@solana/rpc-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" + integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/rpc@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" + integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-transport-http" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/signers@8.3.0", "@solana/signers@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" + integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/subscribable@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" + integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + +"@solana/sysvars@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" + integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/transaction-confirmation@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" + integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/transaction-introspection@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" + integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/transaction-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" + integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/transactions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" + integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + +"@solana/web3.js@3.0.0-rc.3": + version "3.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" + integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== + dependencies: + "@noble/curves" "^1.4.2" + "@noble/hashes" "^1.4.0" + "@solana-program/address-lookup-table" "^0.14.0" + "@solana-program/compute-budget" "^0.18.0" + "@solana-program/loader-v3" "^0.6.0" + "@solana-program/stake" "^0.9.0" + "@solana-program/system" "^0.14.0" + "@solana/assertions" "^8.2.0" + "@solana/fast-stable-stringify" "^8.2.0" + "@solana/kit" "^8.2.0" + "@solana/rpc-spec-types" "^8.2.0" + "@solana/signers" "^8.2.0" + "@solana/web3.js@^1.69.0": version "1.98.4" resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" @@ -144,6 +792,27 @@ rpc-websockets "^9.0.2" superstruct "^2.0.2" +"@solana/web3.js@^1.98.0", "@solana/web3.js@^1.98.4": + version "1.99.0" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.99.0.tgz#864ce3fefe03b258c430e31e6672b422426821f7" + integrity sha512-QZYQ2T1z6xWisoyALPq25i/QZTsRlM02BABtAsfaQ1p8wX4SdTfxrKTRue/ZZqrhNVh5oL7T/DUFiTS9DRgxow== + dependencies: + "@babel/runtime" "^7.29.7" + "@noble/curves" "^1.9.7" + "@noble/hashes" "^1.8.0" + "@solana/buffer-layout" "^4.0.1" + "@solana/codecs-numbers" "^5.5.1" + agentkeepalive "^4.6.0" + bn.js "^5.2.5" + borsh "^0.7.0" + bs58 "^4.0.1" + buffer "6.0.3" + fast-stable-stringify "^1.0.0" + jayson "^4.3.0" + node-fetch "^2.7.0" + rpc-websockets "^9.0.2" + superstruct "^2.0.2" + "@swc/helpers@^0.5.11": version "0.5.23" resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.23.tgz#19287d0d86d962b111376039a50c792902c9a86a" @@ -241,7 +910,7 @@ acorn@^8.11.0, acorn@^8.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.17.0.tgz#1785adb84faf8d8add10369b93826fc2bd08f1fe" integrity sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg== -agentkeepalive@^4.5.0: +agentkeepalive@^4.5.0, agentkeepalive@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== @@ -280,6 +949,25 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +asn1.js@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1js@^3.0.10: + version "3.0.10" + resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.10.tgz#df26c874c8a8b41ca605efea47b2ad07551013dd" + integrity sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg== + dependencies: + pvtsutils "^1.3.6" + pvutils "^1.1.5" + tslib "^2.8.1" + assertion-error@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" @@ -297,16 +985,31 @@ base-x@^3.0.2: dependencies: safe-buffer "^5.0.1" +base-x@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-5.0.1.tgz#16bf35254be1df8aca15e36b7c1dda74b2aa6b03" + integrity sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg== + base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +bn.js@^4.0.0, bn.js@^4.11.9: + version "4.12.5" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.5.tgz#74f119ffecd823168d188eae06d97ea40835c489" + integrity sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ== + bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: version "5.2.4" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.4.tgz#1208fc250bb193fc5f8f0b5fa59e642e706f7103" integrity sha512-QL7sb18rJ1PbdsKsqPA0guxL563vIMwRHgzNrW/uzQuRGN1Cjqd/wonUBAVqHox9KwzHA6vCbM0lXx3k4iQMow== +bn.js@^5.2.2, bn.js@^5.2.5: + version "5.2.5" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.5.tgz#e81ce41cf25e6f0cd1e05f20a9db8c18405e375f" + integrity sha512-Vq886eXykuP5E6HcKSSStP3bJgrE6In5WKxVUvJ8XGpWWYs2xZHWqUwzCtGgEtBcxyd57KBFDPFoUfNzdaHCNg== + borsh@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" @@ -323,6 +1026,11 @@ brace-expansion@^2.0.2: dependencies: balanced-match "^1.0.0" +brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + browser-stdout@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" @@ -335,6 +1043,13 @@ bs58@^4.0.0, bs58@^4.0.1: dependencies: base-x "^3.0.2" +bs58@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-6.0.0.tgz#a2cda0130558535dd281a2f8697df79caaf425d8" + integrity sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw== + dependencies: + base-x "^5.0.0" + buffer-layout@^1.2.0, buffer-layout@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" @@ -371,6 +1086,11 @@ chai@^5.2.0: loupe "^3.1.0" pathval "^2.0.0" +chalk@5.6.2, chalk@^5.4.1: + version "5.6.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" + integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== + chalk@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -379,11 +1099,6 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - check-error@^2.1.1: version "2.1.3" resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.3.tgz#2427361117b70cca8dc89680ead32b157019caf5" @@ -417,6 +1132,16 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +commander@14.0.2: + version "14.0.2" + resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e" + integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== + +commander@15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" + integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== + commander@^14.0.0: version "14.0.3" resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.3.tgz#425d79b48f9af82fcd9e4fc1ea8af6c5ec07bbc2" @@ -485,6 +1210,19 @@ eastasianwidth@^0.2.0: resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== +elliptic@^6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" + integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -580,11 +1318,28 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== +hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" @@ -597,6 +1352,11 @@ ieee754@^1.2.1: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== +inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" @@ -636,7 +1396,7 @@ jackspeak@^3.1.2: optionalDependencies: "@pkgjs/parseargs" "^0.11.0" -jayson@^4.1.1: +jayson@^4.1.1, jayson@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.3.0.tgz#22eb8f3dcf37a5e893830e5451f32bde6d1bde4d" integrity sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ== @@ -696,6 +1456,16 @@ make-error@^1.1.1: resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + minimatch@^9.0.4, minimatch@^9.0.5: version "9.0.9" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.9.tgz#9b0cb9fcb78087f6fd7eababe2511c4d3d60574e" @@ -809,6 +1579,18 @@ prettier@^3.5.3: resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.9.4.tgz#a9c477cf1614376bd1f6bbc593d8c0d414bcec87" integrity sha512-yWG/o/4oJfo036EKAfK6ACAoDOfHeRHx4tuxkfBZiauURiaSmYwlpOr5LQqKtIkRD2z1PLteme2WoxEnj4tHTg== +pvtsutils@^1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.6.tgz#ec46e34db7422b9e4fdc5490578c1883657d6001" + integrity sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg== + dependencies: + tslib "^2.8.1" + +pvutils@^1.1.5: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.2.0.tgz#4b5487a9cccd52d275b0538775790a3ca982bc22" + integrity sha512-BbubeCEyTuQjVMakvJQ/Sxbc93F2pwmbsxONT/ZRrwU7Ua38d8unYTwXpTVLAKJ4BDuH9IGztCjQcd/N/39Dvg== + randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -826,7 +1608,7 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== -rpc-websockets@^9.0.2: +rpc-websockets@^9.0.2, rpc-websockets@^9.0.4: version "9.3.10" resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.3.10.tgz#d6f9b08edfac40e873a059b358806f6d58572e80" integrity sha512-QT5PQ6LiWhA5RCS93oWwgxU4XzQltkYm8C3aTmmKEgj0HolGRo3VbdzELw7CEV35l9T7Amha8Vnr4rCfSjVP+w== @@ -845,6 +1627,11 @@ safe-buffer@^5.0.1, safe-buffer@^5.1.0: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safer-buffer@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + serialize-javascript@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" @@ -981,16 +1768,26 @@ ts-node@^10.9.2: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tslib@^2.8.0: +tslib@^2.8.0, tslib@^2.8.1: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== -typescript@^5.8.3: +tweetnacl@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" + integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== + +typescript@^5.3.0, typescript@^5.8.3: version "5.9.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== +undici-types@^8.10.2: + version "8.10.2" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" + integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== + undici-types@~8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.3.0.tgz#44e9fc9f3244648cdea35e4f9bb2d681e9410809" @@ -1061,6 +1858,11 @@ ws@^7.5.10: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.11.tgz#9460daf1812bb81a423c5b9eac746941a86310fa" integrity sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA== +ws@^8.21.3: + version "8.21.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" + integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== + ws@^8.5.0: version "8.21.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.0.tgz#012e413fc07429945121b0c153158c4343086951" diff --git a/private-counter/anchor/package.json b/private-counter/anchor/package.json index 89110f95..08a9f3d2 100644 --- a/private-counter/anchor/package.json +++ b/private-counter/anchor/package.json @@ -5,11 +5,14 @@ "build": "anchor keys sync && anchor build", "test:local": ". ../../scripts/local-env.sh && anchor test --skip-build --skip-deploy --skip-local-validator --provider.cluster devnet", "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh private-counter", - "test": "yarn test:local" + "test": "yarn test:local", + "test:magicsvm": "ts-mocha -p ./tsconfig.json -t 1000000 tests-magicsvm/**/*.ts", + "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture" }, "dependencies": { "@coral-xyz/anchor": "0.32.1", "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3", + "@magicblock-labs/magicsvm": "0.2.0", "bs58": "^6.0.0", "tweetnacl": "^1.0.3" }, @@ -17,12 +20,14 @@ "@types/bn.js": "^5.1.0", "@types/chai": "^5.2.2", "@types/mocha": "^10.0.10", + "@types/node": "^22.15.3", "chai": "^5.2.0", "mocha": "^11.2.2", "prettier": "^3.5.3", "ts-mocha": "^11.1.0", "ts-node": "^10.9.2", - "typescript": "^5.8.3" + "typescript": "^5.8.3", + "@magicblock-labs/test-utils": "link:../../test-utils/ts" }, "license": "MIT", "packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447" diff --git a/private-counter/anchor/programs/private-counter/src/lib.rs b/private-counter/anchor/programs/private-counter/src/lib.rs index aa293a43..e16ebb4a 100644 --- a/private-counter/anchor/programs/private-counter/src/lib.rs +++ b/private-counter/anchor/programs/private-counter/src/lib.rs @@ -17,7 +17,7 @@ use ephemeral_rollups_sdk::{ ephem::MagicIntentBundleBuilder, }; -declare_id!("9aXAUZm1SdXcX4m1W5SHAywp6CBUbUxymruMnkYvz9bR"); +declare_id!("8bc6ZyJAVcf4LS4xrHehetXUdp1ZX4jnEfoBdePRErfb"); pub const COUNTER_SEED: &[u8] = b"counter"; diff --git a/private-counter/anchor/tests-magicsvm-rs/Cargo.lock b/private-counter/anchor/tests-magicsvm-rs/Cargo.lock new file mode 100644 index 00000000..a09c42f1 --- /dev/null +++ b/private-counter/anchor/tests-magicsvm-rs/Cargo.lock @@ -0,0 +1,6838 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common 0.1.7", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures 0.2.17", +] + +[[package]] +name = "aes-gcm-siv" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae0784134ba9375416d469ec31e7c5f9fa94405049cf08c5ce5b4698be673e0d" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "polyval", + "subtle", + "zeroize", +] + +[[package]] +name = "agave-feature-set" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e724c6d41535d61eb4cba970716f6cfcef8d3f4d15750488f77a7630faab680" +dependencies = [ + "ahash 0.8.12", + "solana-epoch-schedule 3.2.0", + "solana-hash 4.5.0", + "solana-keypair", + "solana-pubkey 4.2.0", + "solana-sha256-hasher 3.1.0", + "solana-svm-feature-set", +] + +[[package]] +name = "agave-reserved-account-keys" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa474270f9cd8d71089979f1ad8e31c2eccde8b32d1ca03f33fe1123104d562" +dependencies = [ + "agave-feature-set", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "agave-transaction-view" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11af131e96e1a0df153db2d673a28293d171da78056104ec8e0d396e2bdf305b" +dependencies = [ + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-packet 4.2.0", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-svm-transaction", + "solana-transaction 4.1.6", +] + +[[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", + "getrandom 0.3.4", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "anchor-attribute-access-control" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a0ba6f4d5cff33a16a8cb30fd7419b71cf8b8b408998a341235cefe7e76cc1c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-account" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af875fe99d9dab01317a3bac577b05f3e52d5bd7d1b424de488ba51f3310feab" +dependencies = [ + "anchor-syn", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-constant" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345a11192cd11fdc8663e3194bbcd0c983c019cd9f21804d7853eeee5ee22653" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-error" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e5f6290f0f54e0e34b8efbb4dcd69dc2c46c655ada8198f35f403d2a88cf9c7" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-event" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0159e0fae5b1b508110b8753fda23ebce778f3bd8c146b8baabd12d2cebe4a7" +dependencies = [ + "anchor-syn", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-program" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51180111bea3660c0db345bfee34cf23f8d89cf2ac8dd5d8c7a044b3fb24d961" +dependencies = [ + "anchor-lang-idl", + "anchor-syn", + "anyhow", + "heck 0.3.3", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-accounts" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b802cd6561645117219ae6ed62cd322501bf1b5b7fa1a6fd8d911428c4c37192" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-serde" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa658e7d911c4290fe9ee953e75cf95f3c4db19c053f64071512867fa9f40394" +dependencies = [ + "anchor-syn", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-space" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69520cea030ee13d2978087a467bf32078012a5ce06b2746318c359887d481ed" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-lang" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bac4de7c9a9a69180798af701e22302cc0ebf2ef683b843706a1b7809454735" +dependencies = [ + "anchor-attribute-access-control", + "anchor-attribute-account", + "anchor-attribute-constant", + "anchor-attribute-error", + "anchor-attribute-event", + "anchor-attribute-program", + "anchor-derive-accounts", + "anchor-derive-serde", + "anchor-derive-space", + "base64 0.21.7", + "bincode", + "borsh 1.8.1", + "bytemuck", + "const-crypto", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-define-syscall 3.0.0", + "solana-feature-gate-interface 3.1.0", + "solana-instruction 3.4.1", + "solana-instructions-sysvar 3.0.1", + "solana-invoke", + "solana-loader-v3-interface 6.1.1", + "solana-msg 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-stake-interface 2.0.2", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", + "thiserror 1.0.69", +] + +[[package]] +name = "anchor-lang-idl" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47914b4290ae2bdf4ec203aa821e6eba86d7c78ef497918938038dcc6919f953" +dependencies = [ + "anchor-lang-idl-spec", + "anyhow", + "heck 0.3.3", + "serde", + "serde_json", + "sha2 0.10.9", +] + +[[package]] +name = "anchor-lang-idl-spec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bdf143115440fe621bdac3a29a1f7472e09f6cd82b2aa569429a0c13f103838" +dependencies = [ + "anyhow", + "serde", +] + +[[package]] +name = "anchor-syn" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ef87b1d3ae59fbf265a9157a9082308af220b4ef5a64a360d8820dcf25b5a86" +dependencies = [ + "bs58", + "heck 0.3.3", + "proc-macro2", + "quote", + "serde", + "sha2 0.11.0", + "syn 2.0.119", + "thiserror 1.0.69", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anstream" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" + +[[package]] +name = "anstyle-parse" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys", +] + +[[package]] +name = "anyhow" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" + +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-bn254" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-std 0.5.0", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", + "itertools 0.13.0", + "num-bigint 0.4.8", + "num-integer", + "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 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.8", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm 0.5.0", + "ark-ff-macros 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "educe", + "itertools 0.13.0", + "num-bigint 0.4.8", + "num-traits", + "paste", + "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-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive 0.4.2", + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint 0.4.8", +] + +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-serialize-derive 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "num-bigint 0.4.8", +] + +[[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-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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.8", +] + +[[package]] +name = "ark-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" +dependencies = [ + "num-traits", + "rand 0.8.8", +] + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" + +[[package]] +name = "ascii" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[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 = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[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.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" + +[[package]] +name = "bitvec" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddcec3d12c579d40898fe0a9a358a803c23e9c52ca3c425707f81c9436211837" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake3" +version = "1.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d9e454fc11f76977dc803893aff6304ed33d6a26efae8696573bea74baa27ae" +dependencies = [ + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "cpufeatures 0.3.1", + "digest 0.11.3", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "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-buffer" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "blst" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20659f9bbee16cbbd2f7393e40ab6309f5a98f76a2eb57a995ec508b72387fe" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "blstrs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a8a8ed6fefbeef4a8c7b460e4110e12c5e22a5b7cf32621aae6ad650c4dcf29" +dependencies = [ + "blst", + "byte-slice-cast", + "ff", + "group", + "pairing", + "rand_core 0.6.4", + "serde", + "subtle", +] + +[[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.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "553c5d846a6ba5150c65e3b1b8ec073bcf1abc20f9b7220de384a4443ea4e20a" +dependencies = [ + "borsh-derive 1.8.1", + "bytes", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831213f80d9423998dd696e2c5345aba6be7a0bd8cd19e31c5243e13df1cef89" +dependencies = [ + "borsh-derive-internal", + "borsh-schema-derive-internal", + "proc-macro-crate 0.1.5", + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12cdfe656708a01f89b451a7d36466e6fe6c414de0aa18fc54f864f6f9ca9f56" +dependencies = [ + "once_cell", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[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.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.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[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 = "byte-slice-cast" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" + +[[package]] +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bytemuck" +version = "1.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a1f896587b6f2c069c73d2f0913e2d590c3990285cd2f0b6aa02b786b4c679c" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" + +[[package]] +name = "cc" +version = "1.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3eb0f42d6c360dc3f8a821f6bf2fdea7f72bfd36b3076eb0e6d1e9e0752fff4" +dependencies = [ + "find-msvc-tools", + "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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" + +[[package]] +name = "cfg_eval" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45565fc9416b9896014f5732ac776f810ee53a66730c17e4020c3ec064a8f88f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common 0.1.7", + "inout", +] + +[[package]] +name = "cmov" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" + +[[package]] +name = "colorchoice" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" + +[[package]] +name = "combine" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" +dependencies = [ + "ascii", + "byteorder", + "either", + "memchr", + "unreachable", +] + +[[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 = "const-crypto" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c06f1eb05f06cf2e380fdded278fbf056a38974299d77960555a311dcf91a52" +dependencies = [ + "keccak-const", + "sha2-const-stable", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const-oid" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" + +[[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 = "cpufeatures" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a7799fd6b852db0e61728dde9a204c423b44d689dbd432522543614b490e78" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "crypto-common" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "ct-codecs" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49fb0c6640b4507ebd99ff67677009e381ba5eee1d14df78de4a3d16eb123c39" + +[[package]] +name = "ctor" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1c888a2a4f677017373fb6c01e13e318dd9e78758445ed5eb985e355d3f8281" +dependencies = [ + "ctor-proc-macro", + "dtor", + "link-section", +] + +[[package]] +name = "ctor-proc-macro" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7ab264ea985f1bd27887d7b21ea2bb046728e05d11909ca138d700c494730db" + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "ctutils" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" +dependencies = [ + "cmov", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "rand_core 0.6.4", + "rustc_version", + "serde", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core 0.23.0", + "darling_macro 0.23.0", +] + +[[package]] +name = "darling" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed17f5901b6630b993ca003def43f2f8ef4014fc13b047b57aad617ff32bc2ec" +dependencies = [ + "darling_core 0.24.1", + "darling_macro 0.24.1", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.119", +] + +[[package]] +name = "darling_core" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6837e2cf7485aaae18f86181d2f0e9a7ed297a025e220aeabf63fdebd3a2ddff" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 3.0.5", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "darling_macro" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ac7135c3ef02b2f7833bbeb1be5ba7f966dcde8a87c6b87f65a778d71a02785" +dependencies = [ + "darling_core 0.24.1", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "dary_heap" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b1e3a325bc115f096c8b77bbf027a7c2592230e70be2d985be950d3d5e60ebe" + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid 0.9.6", + "zeroize", +] + +[[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", + "const-oid 0.9.6", + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "digest" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" +dependencies = [ + "block-buffer 0.12.1", + "const-oid 0.10.2", + "crypto-common 0.2.2", + "ctutils", +] + +[[package]] +name = "dtor" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30e4690622ab6700ced40fc370a3f07b7d111f0154bb6fb08f73b4c8834f75b6" +dependencies = [ + "dtor-proc-macro", +] + +[[package]] +name = "dtor-proc-macro" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c98b077c7463d01d22dde8a24378ddf1ca7263dc687cffbed38819ea6c21131" + +[[package]] +name = "eager" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abe71d579d1812060163dff96056261deb5bf6729b100fa2e36a68b9649ba3d3" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand_core 0.6.4", + "serde", + "sha2 0.10.9", + "subtle", + "zeroize", +] + +[[package]] +name = "ed25519-dalek-bip32" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b49a684b133c4980d7ee783936af771516011c8cd15f429dbda77245e282f03" +dependencies = [ + "derivation-path", + "ed25519-dalek", + "hmac", + "sha2 0.10.9", +] + +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "either" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "enum-iterator" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4549325971814bda7a44061bf3fe7e487d447cba01e4220a4b454d630d7a016" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685adfa4d6f3d765a26bc5dbc936577de9abf756c1feeb3089b01dd395034842" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "enum-ordinalize" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89dd01549b09589510cf0647475075d12071456586d70f5c75c98ae2a5537677" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a65863d15a4ce2888bd2f0f543cc963d3879c3a022c8ee43f6141d479a3ac815" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "env_filter" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900d271a03799a1ee8d1ca9b19893b48ca674a9284fefcfb85f05e74ed314217" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "env_logger" +version = "0.11.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de671bd27a75a797dc9ae289ba1e77276e75e2026408aab65185384e2d5cd3f6" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "log", +] + +[[package]] +name = "ephemeral-rollups-sdk" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "838564736408ada011e9986c819b26cf0195bb2dd238e10be258731979213d75" +dependencies = [ + "base64ct", + "bincode", + "bytemuck", + "ephemeral-rollups-sdk-attribute-action 0.14.4", + "ephemeral-rollups-sdk-attribute-commit 0.14.4", + "ephemeral-rollups-sdk-attribute-delegate 0.14.4", + "ephemeral-rollups-sdk-attribute-ephemeral 0.14.4", + "ephemeral-rollups-sdk-attribute-ephemeral-accounts 0.14.4", + "five8 0.2.1", + "getrandom 0.2.17", + "magicblock-delegation-program-api", + "magicblock-magic-program-api 0.10.1", + "num-derive", + "num-traits", + "solana-account 3.4.0", + "solana-account-info 2.3.0", + "solana-account-info 3.1.1", + "solana-address 2.6.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program 2.3.0", + "solana-program 3.0.0", + "solana-program-error 2.2.2", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "spl-associated-token-account-interface", + "thiserror 1.0.69", +] + +[[package]] +name = "ephemeral-rollups-sdk" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a267fd1fe36f82ed50307b3757561ac59b1629a523fd179e2a66f4383c9afc0a" +dependencies = [ + "anchor-lang", + "base64ct", + "bincode", + "bytemuck", + "ephemeral-rollups-sdk-attribute-action 0.16.2", + "ephemeral-rollups-sdk-attribute-commit 0.16.2", + "ephemeral-rollups-sdk-attribute-delegate 0.16.2", + "ephemeral-rollups-sdk-attribute-ephemeral 0.16.2", + "ephemeral-rollups-sdk-attribute-ephemeral-accounts 0.16.2", + "ephemeral-vrf-sdk", + "ephemeral-vrf-sdk-vrf-macro", + "five8 0.2.1", + "getrandom 0.2.17", + "magicblock-delegation-program-api", + "magicblock-magic-program-api 0.10.1", + "num-derive", + "num-traits", + "solana-account-info 2.3.0", + "solana-address 2.6.1", + "solana-program 2.3.0", + "solana-program 3.0.0", + "solana-program-error 2.2.2", + "solana-system-interface 2.0.0", + "thiserror 1.0.69", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-action" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a29f33b94edcdfcf1b9b7a61aa0ac00e8efdc66f89c8b4b573f7ea965a42c60a" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-action" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3847b70bac1717bfd3108fe310195e658665b2d971bcb4eb2aa5aaca2c9392" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-commit" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da9ed3ea8b850013f6bf768e5f0f2e1f22f1861b46908764536795bf67bb5c67" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-commit" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b08e06840701468449f75916e922fd9694b787596efe66cd9b8dccf3ef0eb5e6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-delegate" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f0d8ab90b4ecc7ac802bbd2115681f9fd42bc5a9018be79ba7aff1fe971aa36" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-delegate" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc365676345c77eed3651debb63af9b282902100e5852a1822ee1385e3b285fe" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ea166c57ee55b329be4eae730561fe02aad5620a35b4d89439d8d0c9e07c3a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fce2590d04b16345a3117c0b66b6822a96a5ef3bc7b9add073cb3a797529d8df" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral-accounts" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa3efae094f5c288746d479fd605b67bcd56d29ddcf1238046ac07eeec130c45" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral-accounts" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f70d4bbf6761a71df97fbadcb4cceef630e2d6e37189f5e674ff34bb2210823" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-vrf-sdk" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77f3741c733907c10e0d0b32f9aa485c20a73e0b1e7e673a0ac38185fb2a6c11" +dependencies = [ + "anchor-lang", + "borsh 1.8.1", + "ephemeral-vrf-sdk-vrf-macro", + "solana-program 3.0.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "ephemeral-vrf-sdk-vrf-macro" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7b8b3fe3863a27d4c0f32da7b3cfeff179772fd4124d6c9fdcb9d4ab23cd602" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "feature-probe" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" + +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "bitvec", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "filetime" +version = "0.2.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c287a33c7f0a620c38e641e7f60827713987b3c0f26e8ddc9462cc69cf75759" +dependencies = [ + "cfg-if", + "libc", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d" + +[[package]] +name = "five8" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75b8549488b4715defcb0d8a8a1c1c76a80661b5fa106b4ca0e7fce59d7d875" +dependencies = [ + "five8_core 0.1.2", +] + +[[package]] +name = "five8" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23f76610e969fa1784327ded240f1e28a3fd9520c9cec93b636fcf62dd37f772" +dependencies = [ + "five8_core 1.0.0", +] + +[[package]] +name = "five8_const" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26dec3da8bc3ef08f2c04f61eab298c3ab334523e55f076354d6d6f613799a7b" +dependencies = [ + "five8_core 0.1.2", +] + +[[package]] +name = "five8_const" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a0f1728185f277989ca573a402716ae0beaaea3f76a8ff87ef9dd8fb19436c5" +dependencies = [ + "five8_core 1.0.0", +] + +[[package]] +name = "five8_core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2551bf44bc5f776c15044b9b94153a00198be06743e262afaaa61f11ac7523a5" + +[[package]] +name = "five8_core" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "059c31d7d36c43fe39d89e55711858b4da8be7eb6dabac23c7289b1a19489406" + +[[package]] +name = "flate2" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb" +dependencies = [ + "zlib-rs", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures-core" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" + +[[package]] +name = "futures-task" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" + +[[package]] +name = "futures-util" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" +dependencies = [ + "futures-core", + "futures-task", + "pin-project-lite", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[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 = "glob" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand 0.8.8", + "rand_core 0.6.4", + "rand_xorshift", + "subtle", +] + +[[package]] +name = "hash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" +dependencies = [ + "byteorder", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284" + +[[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 = "http" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hybrid-array" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27f864f10dfb56725ce5ce5472bc52252c8f93a4ab86327122cebf62c5f59a17" +dependencies = [ + "typenum", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "indexmap" +version = "2.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", +] + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "generic-array", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "js-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2 0.10.9", + "signature", +] + +[[package]] +name = "keccak" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" +dependencies = [ + "cpufeatures 0.2.17", +] + +[[package]] +name = "keccak-const" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d8d8ce877200136358e0bbff3a77965875db3af755a11e1fa6b1b3e2df13ea" + +[[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.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" + +[[package]] +name = "libflate" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "561a8da1a50e1428d3c51321dafeca849df992a5bb67720c386131234caba82e" +dependencies = [ + "adler32", + "crc32fast", + "dary_heap", + "libflate_lz77", + "no_std_io2", +] + +[[package]] +name = "libflate_lz77" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7a10e427698aef6eef269482776debfef63384d30f13aad39a1a95e0e098fd" +dependencies = [ + "hashbrown 0.16.1", + "no_std_io2", + "rle-decode-fast", +] + +[[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", + "libsecp256k1-core 0.2.2", + "libsecp256k1-gen-ecmult 0.2.1", + "libsecp256k1-gen-genmult 0.2.1", + "rand 0.7.3", + "serde", + "sha2 0.9.9", +] + +[[package]] +name = "libsecp256k1" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" +dependencies = [ + "arrayref", + "base64 0.22.1", + "digest 0.9.0", + "libsecp256k1-core 0.3.0", + "libsecp256k1-gen-ecmult 0.3.0", + "libsecp256k1-gen-genmult 0.3.0", + "rand 0.8.8", + "serde", + "sha2 0.9.9", +] + +[[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-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" +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 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" +dependencies = [ + "libsecp256k1-core 0.3.0", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" +dependencies = [ + "libsecp256k1-core 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" +dependencies = [ + "libsecp256k1-core 0.3.0", +] + +[[package]] +name = "libsodium-rs" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b8cd48c80d6c6fa5a4612d242941067219555baea82b0b49c92ea9d8156b59c" +dependencies = [ + "ct-codecs", + "ctor", + "libc", + "libsodium-sys-stable", + "pkg-config", + "thiserror 1.0.69", + "zeroize", +] + +[[package]] +name = "libsodium-sys-stable" +version = "1.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b04bf6da2c98b727af37ab62cb505f4d751b975b034a9b9ad491d333b0564e" +dependencies = [ + "cc", + "libc", + "libflate", + "minisign-verify", + "pkg-config", + "tar", + "ureq", + "vcpkg", + "zip", +] + +[[package]] +name = "light-poseidon" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c9a85a9752c549ceb7578064b4ed891179d20acd85f27318573b64d2d7ee7ee" +dependencies = [ + "ark-bn254 0.4.0", + "ark-ff 0.4.2", + "num-bigint 0.4.8", + "thiserror 1.0.69", +] + +[[package]] +name = "light-poseidon" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47a1ccadd0bb5a32c196da536fd72c59183de24a055f6bf0513bf845fefab862" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ff 0.5.0", + "num-bigint 0.4.8", + "thiserror 1.0.69", +] + +[[package]] +name = "link-section" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52437d47b0358721ec869cc7374b2a21f7b2237af9b439c0391341a1fbfbf1b" + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[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.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" + +[[package]] +name = "magicblock-account" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b5671bd1525eeab67f240455dffff31a4f6d27b067a3531f2d47c7d5af0c6e" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "thiserror 2.0.20", +] + +[[package]] +name = "magicblock-delegation-program-api" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea16e41e04319201919afca98dd4241b18549f2db0c68f58e4bc531537b5dab" +dependencies = [ + "bincode", + "borsh 0.10.4", + "borsh 1.8.1", + "bytemuck", + "const-crypto", + "libsodium-rs", + "num_enum", + "pinocchio 0.10.2", + "pinocchio-log", + "pinocchio-pubkey", + "pinocchio-system", + "rkyv", + "serde", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-loader-v3-interface 6.1.1", + "solana-program 3.0.0", + "solana-pubkey 2.4.0", + "solana-sdk", + "solana-sdk-ids 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-system-interface 2.0.0", + "static_assertions", + "strum", + "thiserror 2.0.20", +] + +[[package]] +name = "magicblock-litesvm" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82cfc1c7f4348c300f58ddd5ae8613e9b1d08564a7956af43822de59cb76d039" +dependencies = [ + "agave-feature-set", + "agave-reserved-account-keys", + "ansi_term", + "indexmap", + "itertools 0.15.0", + "log", + "magicblock-account", + "solana-account 4.3.2", + "solana-address 2.6.1", + "solana-address-lookup-table-interface 3.1.0", + "solana-builtins", + "solana-clock 3.1.1", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-feature-gate-interface 4.0.0", + "solana-fee", + "solana-fee-calculator 3.2.2", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-instructions-sysvar 4.0.0", + "solana-keypair", + "solana-last-restart-slot 3.1.0", + "solana-loader-v3-interface 8.0.1", + "solana-loader-v4-interface 3.1.0", + "solana-message 4.4.1", + "solana-native-token 3.0.0", + "solana-nonce 3.2.1", + "solana-nonce-account", + "solana-precompile-error", + "solana-program-error 3.0.1", + "solana-program-runtime", + "solana-rent 4.3.0", + "solana-runtime-transaction", + "solana-sdk-ids 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-signature 3.4.1", + "solana-signer", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stake-history", + "solana-svm-callback", + "solana-svm-log-collector", + "solana-svm-timings", + "solana-svm-transaction", + "solana-syscalls", + "solana-system-interface 3.2.0", + "solana-system-program", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "magicblock-magic-program-api" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291f7a68f6cc622741a3fae513bd71640911abefd1fae2b2602b934515ed4b95" +dependencies = [ + "bincode", + "const-crypto", + "serde", + "solana-program 2.3.0", + "solana-signature 2.3.0", +] + +[[package]] +name = "magicblock-magic-program-api" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dc8fba0307c90b91b70c9ed06d4242d6c4159f331b2f05bf8f875c2a94e0e98" +dependencies = [ + "bincode", + "const-crypto", + "serde", + "solana-program 3.0.0", + "solana-signature 3.4.1", +] + +[[package]] +name = "magicsvm" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e3effa3b8d28f3e0a14d1b72afcf65c2bec2331882a19065ec4424cd5c7ee37" +dependencies = [ + "bincode", + "borsh 1.8.1", + "ephemeral-rollups-sdk 0.14.4", + "magicblock-account", + "magicblock-delegation-program-api", + "magicblock-litesvm", + "magicblock-magic-program-api 0.8.8", + "solana-account 4.3.2", + "solana-address 2.6.1", + "solana-clock 3.1.1", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-program-runtime", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-signer", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "matchers" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[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 = "minisign-verify" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22f9645cb765ea72b8111f36c522475d2daa0d22c957a9826437e97534bc4e9e" + +[[package]] +name = "no_std_io2" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418abd1b6d34fbf6cae440dc874771b0525a604428704c76e48b29a5e67b8003" +dependencies = [ + "memchr", +] + +[[package]] +name = "nu-ansi-term" +version = "0.50.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "num" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" +dependencies = [ + "num-bigint 0.2.6", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +dependencies = [ + "autocfg", + "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.119", +] + +[[package]] +name = "num-integer" +version = "0.1.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92800bd69a1eac91786bcfe9da64a897eb72911b8dc3095decbd07429e8048b" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +dependencies = [ + "autocfg", + "num-bigint 0.2.6", + "num-integer", + "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_cpus" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group", +] + +[[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 = "pastey" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4" + +[[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 = "percentage" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd23b938276f14057220b707937bcb42fa76dda7560e57a2da30cb52d557937" +dependencies = [ + "num", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pinocchio" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8afe4f39c0e25cc471b35b89963312791a5162d45a86578cbeaad9e5e7d1b3b" + +[[package]] +name = "pinocchio" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06810dac15a4ef83d3dabdb4f2f22fb39c9adff669cd2781da4f716510a647c" +dependencies = [ + "solana-account-view", + "solana-address 2.6.1", + "solana-define-syscall 4.0.1", + "solana-instruction-view", + "solana-program-error 3.0.1", +] + +[[package]] +name = "pinocchio-log" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd11022408f312e6179ece321c1f7dc0d1b2aa7765fddd39b2a7378d65a899e8" +dependencies = [ + "pinocchio-log-macro", +] + +[[package]] +name = "pinocchio-log-macro" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69fb52edb3c5736b044cc462b0957b9767d0f574d138f4e2761438c498a4b467" +dependencies = [ + "quote", + "regex", + "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 0.1.4", + "pinocchio 0.9.3", + "sha2-const-stable", +] + +[[package]] +name = "pinocchio-system" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24044a0815753862b558e179e78f03f7344cb755de48617a09d7d23b50883b6c" +dependencies = [ + "pinocchio 0.10.2", + "solana-address 2.6.1", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "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 = "private-counter" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "ephemeral-rollups-sdk 0.16.2", +] + +[[package]] +name = "private-counter-magicsvm-tests" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "ephemeral-rollups-sdk 0.16.2", + "magicsvm", + "private-counter", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-native-token 3.0.0", + "solana-signer", + "solana-transaction 4.1.6", + "test-log", + "test-utils", +] + +[[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.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[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.119", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +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 = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e058c7de0b26af77780c769414d6257830bb240f3c38477dbc2c16e5f54d6d4c" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", +] + +[[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_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", +] + +[[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_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] + +[[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_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + +[[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.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "rend" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "rkyv" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2297bf9c81a3f0dc96bc9521370b88f054168c29826a75e89c55ff196e7ed6a1" +dependencies = [ + "bitvec", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d7b42d4b8d06048d3ac8db0eb31bcb942cbeb709f0b5f2b2ebde398d3038f5" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rle-decode-fast" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" + +[[package]] +name = "rustc-demangle" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b74b56ffa8bb2830709a538c2cbcae9aa062db0d2a42563bfb09bdaae44020eb" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-big-array" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" +dependencies = [ + "serde", +] + +[[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.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "serde_json" +version = "1.0.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_with" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "935177bb8c0cd8ca1a4e6d1a2ac8988bea69cab4f9d3a31311e012ad27868ea4" +dependencies = [ + "serde_core", + "serde_with_macros", +] + +[[package]] +name = "serde_with_macros" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d607aa01a3cb0ad757d6fd216136910db3c97b102fe686585689615a02dbcdc" +dependencies = [ + "darling 0.24.1", + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[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 0.2.17", + "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 0.2.17", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.1", + "digest 0.11.3", +] + +[[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.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77fd7028345d415a4034cf8777cd4f8ab1851274233b45f84e3d955502d93874" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "simd-adler32" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba467056f1b547ed52077911161fc86985becbc60e8e1857c8a144dab0def891" + +[[package]] +name = "solana-account" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f949fe4edaeaea78c844023bfc1c898e0b1f5a100f8a8d2d0f85d0a7b090258" +dependencies = [ + "solana-account-info 2.3.0", + "solana-clock 2.2.3", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-account" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efc0ed36decb689413b9da5d57f2be49eea5bebb3cf7897015167b0c4336e731" +dependencies = [ + "bincode", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 3.1.1", +] + +[[package]] +name = "solana-account" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26788ba0d7eb5b250edda3e1d393739bafd5daf94882f2261d14f5ab0d6a25e0" +dependencies = [ + "bincode", + "qualifier_attr", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 4.1.0", +] + +[[package]] +name = "solana-account-info" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8f5152a288ef1912300fc6efa6c2d1f9bb55d9398eb6c72326360b8063987da" +dependencies = [ + "bincode", + "serde", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-account-info" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9cf16495d9eb53e3d04e72366a33bb1c20c24e78c171d8b8f5978357b63ae95" +dependencies = [ + "bincode", + "serde_core", + "solana-address 2.6.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.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.6.1", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-address" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2ecac8e1b7f74c2baa9e774c42817e3e75b20787134b76cc4d45e8a604488f5" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-address" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c93e262f671bf402e1040e4a7e40b05d81da5956c7681948c975a0997517bb" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8 1.0.0", + "five8_const 1.0.0", + "rand 0.9.5", + "serde", + "serde_derive", + "sha2-const-stable", + "solana-atomic-u64 3.0.1", + "solana-define-syscall 5.2.0", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.1.0", + "wincode", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1673f67efe870b64a65cb39e6194be5b26527691ce5922909939961a6e6b395" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-slot-hashes 2.2.1", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115b4f773acc4f3f3cb986b0d335e9845c0368c82b0940410935bc11ae065578" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", +] + +[[package]] +name = "solana-atomic-u64" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52e52720efe60465b052b9e7445a01c17550666beec855cce66f44766697bc2" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "solana-atomic-u64" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "085db4906d89324cef2a30840d59eaecf3d4231c560ec7c9f6614a93c652f501" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "solana-big-mod-exp" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75db7f2bbac3e62cfd139065d15bcda9e2428883ba61fc8d27ccb251081e7567" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-big-mod-exp" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30c80fb6d791b3925d5ec4bf23a7c169ef5090c013059ec3ed7d0b2c04efa085" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "solana-define-syscall 3.0.0", +] + +[[package]] +name = "solana-bincode" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19a3787b8cf9c9fe3dd360800e8b70982b9e5a8af9e11c354b6665dd4a003adc" +dependencies = [ + "bincode", + "serde", + "solana-instruction 2.3.3", +] + +[[package]] +name = "solana-bincode" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "278a1a5bad62cd9da89ac8d4b7ec444e83caa8ae96aa656dfc27684b28d49a5d" +dependencies = [ + "bincode", + "serde_core", + "solana-instruction-error", +] + +[[package]] +name = "solana-blake3-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a0801e25a1b31a14494fc80882a036be0ffd290efc4c2d640bfcca120a4672" +dependencies = [ + "blake3", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-blake3-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7116e1d942a2432ca3f514625104757ab8a56233787e95144c93950029e31176" +dependencies = [ + "blake3", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-bls-signatures" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "654ea8d31bbb4b0b9c28f9c545edb32691de27d4e2fc0e252c1ff47da50c5f2a" +dependencies = [ + "base64 0.22.1", + "blst", + "blstrs", + "cfg_eval", + "ff", + "group", + "pairing", + "rand 0.8.8", + "serde", + "serde_json", + "serde_with", + "thiserror 2.0.20", + "wincode", + "zeroize", +] + +[[package]] +name = "solana-bls12-381-syscall" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94e8256fda0542709fd1320a96d81c3c66e10ac5f680cca9b991d7d3b0e3fe86" +dependencies = [ + "blst", + "blstrs", + "bytemuck", + "bytemuck_derive", + "pairing", +] + +[[package]] +name = "solana-bn254" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62ff13a8867fcc7b0f1114764e1bf6191b4551dcaf93729ddc676cd4ec6abc9f" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "bytemuck", + "solana-define-syscall 5.2.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-borsh" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718333bcd0a1a7aed6655aa66bef8d7fb047944922b2d3a18f49cbc13e73d004" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", +] + +[[package]] +name = "solana-borsh" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c04abbae16f57178a163125805637b8a076175bb5c0002fb04f4792bea901cf7" +dependencies = [ + "borsh 1.8.1", +] + +[[package]] +name = "solana-bpf-loader-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabcc3a5785886f026b438771bf6b221b0d4877f6089af79d432c7fe877a6cd4" +dependencies = [ + "bincode", + "qualifier_attr", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-clock 3.1.1", + "solana-instruction 3.4.1", + "solana-loader-v3-interface 7.0.0", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-type-overrides", + "solana-syscalls", + "solana-system-interface 3.2.0", + "solana-transaction-context", +] + +[[package]] +name = "solana-builtins" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ab49c6f8a77bff54e811e9674747fd435e218dcbe71120039a865515151998c" +dependencies = [ + "agave-feature-set", + "solana-bpf-loader-program", + "solana-compute-budget-program", + "solana-hash 4.5.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-program", + "solana-vote-program", + "solana-zk-elgamal-proof-program", + "solana-zk-token-proof-program", +] + +[[package]] +name = "solana-builtins-default-costs" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76792b1ecab1c5f127f16062926850b52c4bb51ac1a93d220635fb13221d3503" +dependencies = [ + "agave-feature-set", + "ahash 0.8.12", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-clock" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8584296123df8fe229b95e2ebfd37ae637fe9db9b7d4dd677ac5a78e80dbfce" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-clock" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0acdace90d96e2c9e70d681465b4fe888b6bcf27c354ae9774e9f8a3b72923d" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-compute-budget" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e200042fd149d565521f7b31e082c0db0e022e9860c7e013130f812984ae846f" +dependencies = [ + "solana-fee-structure", + "solana-program-runtime", +] + +[[package]] +name = "solana-compute-budget-instruction" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a651fc5d082fd88090a7336ea85599b1ffcf6503dbcff575ae1bb2fb1cec238" +dependencies = [ + "agave-feature-set", + "solana-borsh 3.0.2", + "solana-builtins-default-costs", + "solana-compute-budget", + "solana-compute-budget-interface", + "solana-instruction 3.4.1", + "solana-packet 4.2.0", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-svm-transaction", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-compute-budget-interface" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8292c436b269ad23cecc8b24f7da3ab07ca111661e25e00ce0e1d22771951ab9" +dependencies = [ + "borsh 1.8.1", + "solana-instruction 3.4.1", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-compute-budget-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e314aeb4a86507ba77fb2d6ce9f5836af6aeaaedd4c5314e310ca72f73afe367" +dependencies = [ + "solana-program-runtime", +] + +[[package]] +name = "solana-cpi" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dc71126edddc2ba014622fc32d0f5e2e78ec6c5a1e0eb511b85618c09e9ea11" +dependencies = [ + "solana-account-info 2.3.0", + "solana-define-syscall 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-stable-layout 2.2.1", +] + +[[package]] +name = "solana-cpi" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dea26709d867aada85d0d3617db0944215c8bb28d3745b912de7db13a23280c" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 4.0.1", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-stable-layout 3.0.1", +] + +[[package]] +name = "solana-curve25519" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14b4d2a4bf0d0b0a86c22111917e86e8bd39a7b31420fb2c7d73eb83761fc7af" +dependencies = [ + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "solana-define-syscall 5.2.0", + "subtle", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-decode-error" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c781686a18db2f942e70913f7ca15dc120ec38dcab42ff7557db2c70c625a35" +dependencies = [ + "num-traits", +] + +[[package]] +name = "solana-define-syscall" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ae3e2abcf541c8122eafe9a625d4d194b4023c20adde1e251f94e056bb1aee2" + +[[package]] +name = "solana-define-syscall" +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-define-syscall" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf8209ece2bd9f1450e672858ffc0e5c8c786ff6916d2a862b126dd0128f380f" + +[[package]] +name = "solana-derivation-path" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff71743072690fdbdfcdc37700ae1cb77485aaad49019473a81aee099b1e0b8c" +dependencies = [ + "derivation-path", + "qstring", + "uriparse", +] + +[[package]] +name = "solana-epoch-info" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e093c84f6ece620a6b10cd036574b0cd51944231ab32d81f80f76d54aba833e6" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-epoch-rewards" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b575d3dd323b9ea10bb6fe89bf6bf93e249b215ba8ed7f68f1a3633f384db7" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 2.3.0", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-rewards" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf7eb4986b0b1d6f562b21f75a836f1a6df6e00c275efcef50aab5c144dc59e" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-epoch-rewards-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee8beac9bff4db9225e57d532d169b0be5e447f1e6601a2f50f27a01bf5518f" +dependencies = [ + "siphasher", + "solana-address 2.6.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-epoch-schedule" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fce071fbddecc55d727b1d7ed16a629afe4f6e4c217bc8d00af3b785f6f67ed" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-schedule" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8116e6ffa6002237d5ab5edcbda17f9ba66b6742c45a89c9fb40a94dbacd4c1d" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-program-error 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-epoch-stake" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "027e6d0b9e7daac5b2ac7c3f9ca1b727861121d9ef05084cf435ff736051e7c2" +dependencies = [ + "solana-define-syscall 5.2.0", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-example-mocks" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84461d56cbb8bb8d539347151e0525b53910102e4bced875d49d5139708e39d3" +dependencies = [ + "serde", + "serde_derive", + "solana-address-lookup-table-interface 2.2.2", + "solana-clock 2.2.3", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-keccak-hasher 2.2.1", + "solana-message 2.4.0", + "solana-nonce 2.2.1", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-example-mocks" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978855d164845c1b0235d4b4d101cadc55373fffaf0b5b6cfa2194d25b2ed658" +dependencies = [ + "serde", + "serde_derive", + "solana-address-lookup-table-interface 3.1.0", + "solana-clock 3.1.1", + "solana-hash 3.1.0", + "solana-instruction 3.4.1", + "solana-keccak-hasher 3.1.0", + "solana-message 3.1.0", + "solana-nonce 3.2.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 2.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43f5c5382b449e8e4e3016fb05e418c53d57782d8b5c30aa372fc265654b956d" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 2.2.1", + "solana-account-info 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75ca9b5cbb6f500f7fd73db5bd95640f71a83f04d6121a0e59a43b202dca2731" +dependencies = [ + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd7545e02f91da1d6996f32b18f7796aa01e0682f8f3a7434b82cd1a10448add" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-fee" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c32df41c2c93a567a1612a973faddeaca093276677c157ef9cb60a378289fc69" +dependencies = [ + "agave-feature-set", + "solana-fee-structure", + "solana-svm-transaction", +] + +[[package]] +name = "solana-fee-calculator" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89bc408da0fb3812bc3008189d148b4d3e08252c79ad810b245482a3f70cd8d" +dependencies = [ + "log", + "serde", + "serde_derive", +] + +[[package]] +name = "solana-fee-calculator" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef67f01cc6a0c72e99a08d0d484683f995de4c80e9568728fa77d1537f9b7e09" +dependencies = [ + "log", + "serde", + "serde_derive", + "wincode", +] + +[[package]] +name = "solana-fee-structure" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2abdb1223eea8ec64136f39cb1ffcf257e00f915c957c35c0dd9e3f4e700b0" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-get-sysvar" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef3bc859fc036ed490146793557386cbfae614ebba4adc704c37d94350824ed4" +dependencies = [ + "solana-address 2.6.1", + "solana-define-syscall 5.2.0", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-hard-forks" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb50b2df7a36a2af58ce24bb0229622ac845dcc196e8c23b3ea4a29dd6bee09" + +[[package]] +name = "solana-hash" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b96e9f0300fa287b545613f007dfe20043d7812bee255f418c1eb649c93b63" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "five8 0.2.1", + "js-sys", + "serde", + "serde_derive", + "solana-atomic-u64 2.2.1", + "solana-sanitize 2.2.1", + "wasm-bindgen", +] + +[[package]] +name = "solana-hash" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "337c246447142f660f778cf6cb582beba8e28deb05b3b24bfb9ffd7c562e5f41" +dependencies = [ + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-hash" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f4c847893a2ea50b4ae3ca723b124e07cd0544fecea3598f785168f9b78333f" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "five8 1.0.0", + "serde", + "serde_derive", + "solana-atomic-u64 3.0.1", + "solana-sanitize 3.0.1", + "wincode", +] + +[[package]] +name = "solana-hash-512" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce934b02bab639341f2fd62c3e7e3c39dcceb47f0196b7630ed1f82ecb704bd" + +[[package]] +name = "solana-inflation" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf186550ea7438e2708bd0c233f01fe9c3fa45b9b607ff993b650ce60af102e" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-instruction" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab5682934bd1f65f8d2c16f21cb532526fcc1a09f796e2cacdb091eee5774ad" +dependencies = [ + "bincode", + "borsh 1.8.1", + "getrandom 0.2.17", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "serde_json", + "solana-define-syscall 2.3.0", + "solana-pubkey 2.4.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-instruction" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3957ca1d31107efd9a6bb88b25c348ca5e3b4b6683e3d08adb86d3d17aa01f1" +dependencies = [ + "bincode", + "borsh 1.8.1", + "serde", + "serde_derive", + "solana-define-syscall 5.2.0", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "wincode", +] + +[[package]] +name = "solana-instruction-error" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b7d34343838343a3755b7dfb1e438d94c6db2263b519cfe3c2257af932b6e93" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-program-error 3.0.1", +] + +[[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.6.1", + "solana-define-syscall 4.0.1", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0e85a6fad5c2d0c4f5b91d34b8ca47118fc593af706e523cdbedf846a954f57" +dependencies = [ + "bitflags", + "solana-account-info 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serialize-utils 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e0732294560e88ecdb2bbc656e67383e9f88c78ec09469cef172f0d28cd1bcd" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-serialize-utils 3.1.2", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e38363a181313d607f7a118df2b401bb27b477a0104b09283cbf504f5f0f00cc" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-serialize-utils 3.1.2", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-invoke" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4065031f5c7dd29ef5f5003c1a353011eeabbafa6c5a5033da0cedbfca824b94" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 3.0.0", + "solana-instruction 3.4.1", + "solana-program-entrypoint 3.1.1", + "solana-stable-layout 3.0.1", +] + +[[package]] +name = "solana-keccak-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7aeb957fbd42a451b99235df4942d96db7ef678e8d5061ef34c9b34cae12f79" +dependencies = [ + "sha3", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-keccak-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed1c0d16d6fdeba12291a1f068cdf0d479d9bff1141bf44afd7aa9d485f65ef8" +dependencies = [ + "sha3", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-keypair" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "263d614c12aa267a3278703175fd6440552ca61bc960b5a02a4482720c53438b" +dependencies = [ + "ed25519-dalek", + "ed25519-dalek-bip32", + "five8 1.0.0", + "five8_core 1.0.0", + "rand 0.9.5", + "solana-address 2.6.1", + "solana-derivation-path", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-last-restart-slot" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a6360ac2fdc72e7463565cd256eedcf10d7ef0c28a1249d261ec168c1b55cdd" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-last-restart-slot" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22474b83d3c7c318e1c3a725784fc2d1d03b728e36369e58ce48769a61ed85e" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-loader-v2-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8ab08006dad78ae7cd30df8eea0539e207d08d91eaefb3e1d49a446e1c49654" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f7162a05b8b0773156b443bccd674ea78bb9aa406325b467ea78c06c99a63a2" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e0538d4dbc9022e01616f1c58f2db98ece739c5d5ed4a2ef8737a953e76a2d4" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68029ab11d9c891d4ce23ada75745e40f983c5674af366f447b672569634231b" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "362b468fbde4c20521b9ff5ef743bc0d9b410455a5a92a8b29fd46954e89345f" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", + "wincode", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "706a777242f1f39a83e2a96a2a6cb034cb41169c6ecbee2cf09cb873d9659e7e" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c948b33ff81fa89699911b207059e493defdba9647eaf18f23abdf3674e0fb" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-message" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1796aabce376ff74bf89b78d268fa5e683d7d7a96a0a4e4813ec34de49d5314b" +dependencies = [ + "bincode", + "blake3", + "lazy_static", + "serde", + "serde_derive", + "solana-bincode 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", + "solana-transaction-error 2.2.1", + "wasm-bindgen", +] + +[[package]] +name = "solana-message" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0448b1fd891c5f46491e5dc7d9986385ba3c852c340db2911dd29faa01d2b08d" +dependencies = [ + "bincode", + "blake3", + "lazy_static", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-message" +version = "4.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e29e655f222a3a64145fedceacdca3e696ba7aded1dbd5391aa09d5fbfba53c" +dependencies = [ + "blake3", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-msg" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36a1a14399afaabc2781a1db09cb14ee4cc4ee5c7a5a3cfcc601811379a8092" +dependencies = [ + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-msg" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726b7cbbc6be6f1c6f29146ac824343b9415133eee8cce156452ad1db93f8008" +dependencies = [ + "solana-define-syscall 5.2.0", +] + +[[package]] +name = "solana-native-token" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61515b880c36974053dd499c0510066783f0cc6ac17def0c7ef2a244874cf4a9" + +[[package]] +name = "solana-native-token" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae8dd4c280dca9d046139eb5b7a5ac9ad10403fbd64964c7d7571214950d758f" + +[[package]] +name = "solana-nonce" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703e22eb185537e06204a5bd9d509b948f0066f2d1d814a6f475dafb3ddf1325" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-pubkey 2.4.0", + "solana-sha256-hasher 2.3.0", +] + +[[package]] +name = "solana-nonce" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4172d5b33a0a38fcdb2af8f84406570dd51567267da96c28ad0f31fc11621c0" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator 3.2.2", + "solana-hash 4.5.0", + "solana-pubkey 4.2.0", + "solana-sha256-hasher 3.1.0", + "wincode", +] + +[[package]] +name = "solana-nonce-account" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b81bf7e2aa8c443724051507c1007d0b6d9c34b70925d3232dc78f5ca485209e" +dependencies = [ + "solana-account 4.3.2", + "solana-hash 4.5.0", + "solana-nonce 3.2.1", + "solana-sdk-ids 3.1.0", + "wincode", +] + +[[package]] +name = "solana-offchain-message" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e2a1141a673f72a05cf406b99e4b2b8a457792b7c01afa07b3f00d4e2de393" +dependencies = [ + "num_enum", + "solana-hash 3.1.0", + "solana-packet 3.0.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.1.0", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-packet" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edf2f25743c95229ac0fdc32f8f5893ef738dbf332c669e9861d33ddb0f469d" +dependencies = [ + "bitflags", +] + +[[package]] +name = "solana-packet" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a2a582d7863548f047f49aa3745c076cfa9e1364baa080ef0c1210f0e4ebda" +dependencies = [ + "bitflags", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-poseidon" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "737b8ab25bf4cc8e618f80f1fe40709b2ace708bc764a36b8a4c81eea8c07034" +dependencies = [ + "ark-bn254 0.4.0", + "ark-bn254 0.5.0", + "light-poseidon 0.2.0", + "light-poseidon 0.4.0", + "solana-define-syscall 4.0.1", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-precompile-error" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cafcd950de74c6c39d55dc8ca108bbb007799842ab370ef26cf45a34453c31e1" +dependencies = [ + "num-traits", +] + +[[package]] +name = "solana-presigner" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f704eaf825be3180832445b9e4983b875340696e8e7239bf2d535b0f86c14a2" +dependencies = [ + "solana-pubkey 3.0.0", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-program" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98eca145bd3545e2fbb07166e895370576e47a00a7d824e325390d33bf467210" +dependencies = [ + "bincode", + "blake3", + "borsh 0.10.4", + "borsh 1.8.1", + "bs58", + "bytemuck", + "console_error_panic_hook", + "console_log", + "getrandom 0.2.17", + "lazy_static", + "log", + "memoffset", + "num-bigint 0.4.8", + "num-derive", + "num-traits", + "rand 0.8.8", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 2.3.0", + "solana-address-lookup-table-interface 2.2.2", + "solana-atomic-u64 2.2.1", + "solana-big-mod-exp 2.2.1", + "solana-bincode 2.2.1", + "solana-blake3-hasher 2.2.1", + "solana-borsh 2.2.1", + "solana-clock 2.2.3", + "solana-cpi 2.2.1", + "solana-decode-error", + "solana-define-syscall 2.3.0", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", + "solana-example-mocks 2.2.1", + "solana-feature-gate-interface 2.2.2", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-instructions-sysvar 2.2.2", + "solana-keccak-hasher 2.2.1", + "solana-last-restart-slot 2.2.1", + "solana-loader-v2-interface", + "solana-loader-v3-interface 5.0.0", + "solana-loader-v4-interface 2.2.1", + "solana-message 2.4.0", + "solana-msg 2.2.1", + "solana-native-token 2.3.0", + "solana-nonce 2.2.1", + "solana-program-entrypoint 2.3.0", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-program-option 2.2.1", + "solana-program-pack 2.2.1", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-secp256k1-recover 2.2.1", + "solana-serde-varint 2.2.2", + "solana-serialize-utils 2.2.1", + "solana-sha256-hasher 2.3.0", + "solana-short-vec 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stable-layout 2.2.1", + "solana-stake-interface 1.2.1", + "solana-system-interface 1.0.0", + "solana-sysvar 2.3.0", + "solana-sysvar-id 2.2.1", + "solana-vote-interface 2.2.6", + "thiserror 2.0.20", + "wasm-bindgen", +] + +[[package]] +name = "solana-program" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91b12305dd81045d705f427acd0435a2e46444b65367d7179d7bdcfc3bc5f5eb" +dependencies = [ + "memoffset", + "solana-account-info 3.1.1", + "solana-big-mod-exp 3.0.0", + "solana-blake3-hasher 3.1.0", + "solana-borsh 3.0.2", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-define-syscall 3.0.0", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-epoch-stake", + "solana-example-mocks 3.0.0", + "solana-fee-calculator 3.2.2", + "solana-hash 3.1.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-instructions-sysvar 3.0.1", + "solana-keccak-hasher 3.1.0", + "solana-last-restart-slot 3.1.0", + "solana-msg 3.1.0", + "solana-native-token 3.0.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.3.0", + "solana-serde-varint 3.0.1", + "solana-serialize-utils 3.1.2", + "solana-sha256-hasher 3.1.0", + "solana-short-vec 3.2.2", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stable-layout 3.0.1", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-program-entrypoint" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32ce041b1a0ed275290a5008ee1a4a6c48f5054c8a3d78d313c08958a06aedbd" +dependencies = [ + "solana-account-info 2.3.0", + "solana-msg 2.2.1", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-program-entrypoint" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c9b0a1ff494e05f503a08b3d51150b73aa639544631e510279d6375f290997" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 4.0.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-program-error" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ee2e0217d642e2ea4bee237f37bd61bb02aec60da3647c48ff88f6556ade775" +dependencies = [ + "borsh 1.8.1", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-msg 2.2.1", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-program-error" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f04fa578707b3612b095f0c8e19b66a1233f7c42ca8082fcb3b745afcc0add6" +dependencies = [ + "borsh 1.8.1", + "serde", + "serde_derive", +] + +[[package]] +name = "solana-program-memory" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a5426090c6f3fd6cfdc10685322fede9ca8e5af43cd6a59e98bfe4e91671712" +dependencies = [ + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-program-memory" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4068648649653c2c50546e9a7fb761791b5ab0cda054c771bb5808d3a4b9eb52" +dependencies = [ + "solana-define-syscall 4.0.1", +] + +[[package]] +name = "solana-program-option" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc677a2e9bc616eda6dbdab834d463372b92848b2bfe4a1ed4e4b4adba3397d0" + +[[package]] +name = "solana-program-option" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a88006a9b8594088cec9027ab77caaaa258a2aaa2083d3f086c44b42e50aeab" + +[[package]] +name = "solana-program-pack" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "319f0ef15e6e12dc37c597faccb7d62525a509fec5f6975ecb9419efddeb277b" +dependencies = [ + "solana-program-error 2.2.2", +] + +[[package]] +name = "solana-program-pack" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7701cb15b90667ae1c89ef4ac35a59c61e66ce58ddee13d729472af7f41d59" +dependencies = [ + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-program-runtime" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2b7281bd4a6072c7e11b611f771f4e61be1d45ea0d2aecfbb77d02d1b5877d4" +dependencies = [ + "base64 0.22.1", + "bincode", + "cfg-if", + "itertools 0.14.0", + "log", + "percentage", + "rand 0.9.5", + "serde", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-loader-v3-interface 7.0.0", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", + "solana-stable-layout 3.0.1", + "solana-stake-interface 4.3.0", + "solana-svm-callback", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-timings", + "solana-svm-transaction", + "solana-svm-type-overrides", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction-context", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "solana-pubkey" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b62adb9c3261a052ca1f999398c388f1daf558a1b492f60a6d9e64857db4ff1" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8 0.2.1", + "five8_const 0.1.4", + "getrandom 0.2.17", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-atomic-u64 2.2.1", + "solana-decode-error", + "solana-define-syscall 2.3.0", + "solana-sanitize 2.2.1", + "solana-sha256-hasher 2.3.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-pubkey" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8909d399deb0851aa524420beeb5646b115fd253ef446e35fe4504c904da3941" +dependencies = [ + "rand 0.8.8", + "solana-address 1.1.0", +] + +[[package]] +name = "solana-pubkey" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7db719574990de7e8b0f55a8593ac92a5ccb42c8ce67b3e4bf05b139d5d9ee71" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-rent" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1aea8fdea9de98ca6e8c2da5827707fb3842833521b528a713810ca685d2480" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-rent" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e860d5499a705369778647e97d760f7670adfb6fc8419dd3d568deccd46d5487" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-rent" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39f0d780bf8e8a1fe8b5b5fce1acad6b209485b86dec246e7523d5e4a8b7c7fc" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-runtime-transaction" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60cf942dcefc0f4d600fed1f4d220ff27abaa04def1fefa37e0e0c2a96e4179" +dependencies = [ + "agave-feature-set", + "agave-transaction-view", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-svm-transaction", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-sanitize" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61f1bc1357b8188d9c4a3af3fc55276e56987265eb7ad073ae6f8180ee54cecf" + +[[package]] +name = "solana-sanitize" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf09694a0fc14e5ffb18f9b7b7c0f15ecb6eac5b5610bf76a1853459d19daf9" + +[[package]] +name = "solana-sbpf" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d777d7a89267dd133e985113c7e7f820fb7cfd9123a4a350cf8b39ebae1920bc" +dependencies = [ + "byteorder", + "combine", + "hash32", + "libc", + "log", + "rand 0.8.8", + "rustc-demangle", + "thiserror 2.0.20", + "winapi", +] + +[[package]] +name = "solana-sdk" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f03df7969f5e723ad31b6c9eadccc209037ac4caa34d8dc259316b05c11e82b" +dependencies = [ + "bincode", + "bs58", + "serde", + "solana-account 3.4.0", + "solana-epoch-info", + "solana-epoch-rewards-hasher", + "solana-fee-structure", + "solana-inflation", + "solana-keypair", + "solana-message 3.1.0", + "solana-offchain-message", + "solana-presigner", + "solana-program 3.0.0", + "solana-program-memory 3.1.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-serde", + "solana-serde-varint 3.0.1", + "solana-short-vec 3.2.2", + "solana-shred-version", + "solana-signature 3.4.1", + "solana-signer", + "solana-time-utils", + "solana-transaction 3.1.0", + "solana-transaction-error 3.3.2", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-sdk-ids" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5d8b9cc68d5c88b062a33e23a6466722467dde0035152d8fb1afbcdf350a5f" +dependencies = [ + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-sdk-ids" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "def234c1956ff616d46c9dd953f251fa7096ddbaa6d52b165218de97882b7280" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-sdk-macro" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86280da8b99d03560f6ab5aca9de2e38805681df34e0bb8f238e69b29433b9df" +dependencies = [ + "bs58", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "solana-sdk-macro" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8765316242300c48242d84a41614cb3388229ec353ba464f6fe62a733e41806f" +dependencies = [ + "bs58", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baa3120b6cdaa270f39444f5093a90a7b03d296d362878f7a6991d6de3bbe496" +dependencies = [ + "libsecp256k1 0.6.0", + "solana-define-syscall 2.3.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce0d2e8d53946f04e789476d6c407e4997b7fb412483df5fc10c075c65cb2edf" +dependencies = [ + "k256", + "solana-define-syscall 5.2.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-seed-derivable" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7bdb72758e3bec33ed0e2658a920f1f35dfb9ed576b951d20d63cb61ecd95c" +dependencies = [ + "solana-derivation-path", +] + +[[package]] +name = "solana-seed-phrase" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc905b200a95f2ea9146e43f2a7181e3aeb55de6bc12afb36462d00a3c7310de" +dependencies = [ + "hmac", + "pbkdf2", + "sha2 0.10.9", +] + +[[package]] +name = "solana-serde" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709a93cab694c70f40b279d497639788fc2ccbcf9b4aa32273d4b361322c02dd" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serde-varint" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a7e155eba458ecfb0107b98236088c3764a09ddf0201ec29e52a0be40857113" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serde-varint" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "950e5b83e839dc0f92c66afc124bb8f40e89bc90f0579e8ec5499296d27f54e3" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serialize-utils" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "817a284b63197d2b27afdba829c5ab34231da4a9b4e763466a003c40ca4f535e" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-serialize-utils" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "761357b0853c9623bf12c1d2314b3d6160a85b087b84c45224fb85766d22616b" +dependencies = [ + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sanitize 3.0.1", +] + +[[package]] +name = "solana-sha256-hasher" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa3feb32c28765f6aa1ce8f3feac30936f16c5c3f7eb73d63a5b8f6f8ecdc44" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", +] + +[[package]] +name = "solana-sha256-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db7dc3011ea4c0334aaaa7e7128cb390ecf546b28d412e9bf2064680f57f588f" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-sha512-hasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11e10e103ab5bd52af341e7bc2f4123a2f4e66bb7ba4e6ca40f1e00cd6314e02" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 5.2.0", + "solana-hash-512", +] + +[[package]] +name = "solana-short-vec" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c54c66f19b9766a56fa0057d060de8378676cb64987533fa088861858fc5a69" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-short-vec" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8250a4495aad49ad20556a607da53bdcb20de78da10b65afbf918b7f1de647" +dependencies = [ + "serde_core", + "wincode", +] + +[[package]] +name = "solana-shred-version" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6c79722e299d957958bf33695f7cd1ef6724ff55563c60fd9e3e24487cccde2" +dependencies = [ + "solana-hard-forks", + "solana-hash 4.5.0", + "solana-sha256-hasher 3.1.0", +] + +[[package]] +name = "solana-signature" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64c8ec8e657aecfc187522fc67495142c12f35e55ddeca8698edbb738b8dbd8c" +dependencies = [ + "five8 0.2.1", + "serde", + "serde-big-array", + "serde_derive", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-signature" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0364c7577c3c82a693ce28a1febc8d1b5d1b0a175fdc2114ae6186b69effe1e" +dependencies = [ + "ed25519-dalek", + "five8 1.0.0", + "rand 0.9.5", + "serde", + "serde-big-array", + "serde_derive", + "solana-sanitize 3.0.1", + "wincode", +] + +[[package]] +name = "solana-signer" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520bd6021163ee517f4bdc7ae03ded904f97e11320001ba0b3355f45eb14f558" +dependencies = [ + "solana-pubkey 4.2.0", + "solana-signature 3.4.1", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-slot-hashes" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c8691982114513763e88d04094c9caa0376b867a29577939011331134c301ce" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 2.3.0", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-hashes" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7ce2b4b8911bf2db3de7b6266e67bfc21a6a9f8c566fb096d9782ca2ad16ee" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-slot-history" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97ccc1b2067ca22754d5283afb2b0126d61eae734fc616d23871b0943b0d935e" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-history" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40427c04d3e808493cb5e3d1a97cef84d7c15cb6f89b15c5684d0d4027105600" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-stable-layout" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f14f7d02af8f2bc1b5efeeae71bc1c2b7f0f65cd75bcc7d8180f2c762a57f54" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-stable-layout" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9f6a291ba063a37780af29e7db14bdd3dc447584d8ba5b3fc4b88e2bbc982fa" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-stake-history" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c736a6aa0e53b9d264d90b06589fc0996f49f882f3e71842ed754fc57ffc1a43" +dependencies = [ + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-stake-interface" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5269e89fde216b4d7e1d1739cf5303f8398a1ff372a81232abbee80e554a838c" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", + "num-traits", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-cpi 2.2.1", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-system-interface 1.0.0", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-stake-interface" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9bc26191b533f9a6e5a14cca05174119819ced680a80febff2f5051a713f0db" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-stake-interface" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252b4291eb25a5a356149ed4d4a940d5f655186210fa84b5d0d8d55c3dd42a81" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-svm-callback" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf863c5b86e90e51c18ed08cfd8e21f9cfa60122d60d6364cde7083bf6de837c" +dependencies = [ + "solana-account 4.3.2", + "solana-clock 3.1.1", + "solana-precompile-error", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-feature-set" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "580d385250ddc3826e5d082b221d9d1047bddcc63ee18313f14dcafb95fdcae5" + +[[package]] +name = "solana-svm-log-collector" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f97c2c829a06a1b3bdbad1f770891768c1f0005b322acd7c192ad92157fe525" +dependencies = [ + "log", +] + +[[package]] +name = "solana-svm-measure" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79ec1451e86552456f1e9a1cc7ffafea01ba3383d8246ba636a11cf286da9fc3" + +[[package]] +name = "solana-svm-timings" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33a2692a88fabf56275bb40c39596d6e550a43f6e56b77fa6f0468e0affd977" +dependencies = [ + "eager", + "enum-iterator", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-transaction" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736d2cec944c6f8f298a7bd8ada5eb318cca9ab859281b1300842fa0e9a25afa" +dependencies = [ + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-transaction 4.1.6", +] + +[[package]] +name = "solana-svm-type-overrides" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74a3ba41956ba930a335589eedf0784dfa4be0527ef236df8ad3996a26b5f19f" +dependencies = [ + "rand 0.9.5", +] + +[[package]] +name = "solana-syscalls" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d31c37dc2425afc13ddb2fc8365db8dbd02ac860a454c25b3897831036a64dd8" +dependencies = [ + "bincode", + "libsecp256k1 0.7.2", + "num-traits", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-blake3-hasher 3.1.0", + "solana-bls12-381-syscall", + "solana-bn254", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-curve25519", + "solana-hash 4.5.0", + "solana-hash-512", + "solana-instruction 3.4.1", + "solana-keccak-hasher 3.1.0", + "solana-poseidon", + "solana-program-entrypoint 3.1.1", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.3.0", + "solana-sha256-hasher 3.1.0", + "solana-sha512-hasher", + "solana-stable-layout 3.0.1", + "solana-stake-interface 4.3.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-type-overrides", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction-context", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "solana-system-interface" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94d7c18cb1a91c6be5f5a8ac9276a1d7c737e39a21beba9ea710ab4b9c63bc90" +dependencies = [ + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-system-interface" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e1790547bfc3061f1ee68ea9d8dc6c973c02a163697b24263a8e9f2e6d4afa2" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-instruction 3.4.1", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", +] + +[[package]] +name = "solana-system-interface" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55b54965bf0b76fa8e2b35376583efddd4d916618cfe595bf48c7d7b55a9e628" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "wincode", +] + +[[package]] +name = "solana-system-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2610e0b091b920da610ad3e5ba850530702f5ac911b4e9dc5ab9a025a772138a" +dependencies = [ + "bincode", + "log", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-fee-calculator 3.2.2", + "solana-instruction 3.4.1", + "solana-nonce 3.2.1", + "solana-nonce-account", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-transaction-context", +] + +[[package]] +name = "solana-sysvar" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c3595f95069f3d90f275bb9bd235a1973c4d059028b0a7f81baca2703815db" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 2.3.0", + "solana-clock 2.2.3", + "solana-define-syscall 2.3.0", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-instructions-sysvar 2.2.2", + "solana-last-restart-slot 2.2.1", + "solana-program-entrypoint 2.3.0", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stake-interface 1.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-sysvar" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6690d3dd88f15c21edff68eb391ef8800df7a1f5cec84ee3e8d1abf05affdf74" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-define-syscall 4.0.1", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-calculator 3.2.2", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 4.2.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-sysvar" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ada7045bbfdd802af08fbc9c7e2b56ddabb20599d22e4c3840fcef5e7afb8324" +dependencies = [ + "base64 0.22.1", + "bincode", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-define-syscall 5.2.0", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-calculator 3.2.2", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stake-history", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-sysvar-id" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5762b273d3325b047cfda250787f8d796d781746860d5d0a746ee29f3e8812c1" +dependencies = [ + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-sysvar-id" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17358d1e9a13e5b9c2264d301102126cf11a47fd394cdf3dec174fe7bc96e1de" +dependencies = [ + "solana-address 2.6.1", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-time-utils" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ced92c60aa76ec4780a9d93f3bd64dfa916e1b998eacc6f1c110f3f444f02c9" + +[[package]] +name = "solana-transaction" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96697cff5075a028265324255efed226099f6d761ca67342b230d09f72cc48d2" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-message 3.1.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-signer", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-transaction" +version = "4.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8008008a75246adaf8b67411093a6d78db8232c74b00eff6041fd1da73679e7" +dependencies = [ + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-message 4.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-signer", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-transaction-context" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d61811155533aebcf806e694d3ed91be7fc168dc9bdcf25e8eb98b9234c7c3" +dependencies = [ + "bincode", + "qualifier_attr", + "serde", + "solana-account 4.3.2", + "solana-instruction 3.4.1", + "solana-instructions-sysvar 4.0.0", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-transaction-error" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222a9dc8fdb61c6088baab34fc3a8b8473a03a7a5fd404ed8dd502fa79b67cb1" +dependencies = [ + "solana-instruction 2.3.3", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-transaction-error" +version = "3.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "054e54d15164b0c34cb744600a1a0330e9fd97a12d979f2eb95904c807a07713" +dependencies = [ + "serde", + "serde_derive", + "solana-instruction-error", + "solana-sanitize 3.0.1", +] + +[[package]] +name = "solana-vote-interface" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b80d57478d6599d30acc31cc5ae7f93ec2361a06aefe8ea79bc81739a08af4c3" +dependencies = [ + "bincode", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-decode-error", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serde-varint 2.2.2", + "solana-serialize-utils 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-vote-interface" +version = "6.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13a7a204b455a53fe8c9a26a6885391a5896835e06694dbe0cf37c580f82f128" +dependencies = [ + "bincode", + "cfg_eval", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "serde_with", + "solana-clock 3.1.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-serde-varint 3.0.1", + "solana-serialize-utils 3.1.2", + "solana-short-vec 3.2.2", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-vote-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69c6faf8370369c45bc14eeca8dc0249450b940b57dcfcec0103403f9feaf88a" +dependencies = [ + "agave-feature-set", + "bincode", + "log", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-bls-signatures", + "solana-clock 3.1.1", + "solana-epoch-schedule 3.2.0", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", + "solana-system-interface 3.2.0", + "solana-transaction-context", + "solana-vote-interface 6.0.3", +] + +[[package]] +name = "solana-zk-elgamal-proof-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d55e2d0d7f884295989dae8b7e0b6d7a46d87ed2d917113007383261e5e93d" +dependencies = [ + "bytemuck", + "solana-instruction 3.4.1", + "solana-program-runtime", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-zk-sdk", +] + +[[package]] +name = "solana-zk-sdk" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09670ff59f60e6ddc2209c2e4353992a9b9f01d4e244f3e9d67bd5146e33d388" +dependencies = [ + "aes-gcm-siv", + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "itertools 0.14.0", + "merlin", + "num-derive", + "num-traits", + "rand 0.8.8", + "serde", + "serde_derive", + "serde_json", + "sha3", + "solana-address 2.6.1", + "solana-derivation-path", + "solana-instruction 3.4.1", + "solana-sdk-ids 3.1.0", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature 3.4.1", + "solana-signer", + "subtle", + "thiserror 2.0.20", + "zeroize", +] + +[[package]] +name = "solana-zk-token-proof-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc32fcd9ff8bb90837755deccefdb20518484626c0a9d0649a36e5fcb0fcf520" +dependencies = [ + "solana-program-runtime", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "spl-associated-token-account-interface" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6bbe0794e532ac08428d3abf5bf8ae75bd81dfddd785c388e326c00c92c6f5" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[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.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tar" +version = "0.4.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6221d9a6003c78398e3b239969f352578258df48c8eb051caadae0015bc840" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "test-log" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b9c218384242b5c89b68303ab6f6fc53a312d923f0c14dc6bb860c6aeee40f1" +dependencies = [ + "env_logger", + "test-log-macros", + "tracing-subscriber", +] + +[[package]] +name = "test-log-core" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c26ef8b00e4d382e59f6a8ddb3cd790b3a5bb29f21a358a9a69ea2f29f13f27b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "test-log-macros" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "944ad38adcbb71eaa682c56bceeb079e4ca82b4b3edc2a0fde5cb297b77dac8d" +dependencies = [ + "syn 2.0.119", + "test-log-core", +] + +[[package]] +name = "test-utils" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "ephemeral-rollups-sdk 0.16.2", + "magicsvm", + "serde_json", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-signer", + "solana-transaction 4.1.6", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" +dependencies = [ + "thiserror-impl 2.0.20", +] + +[[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.119", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "thread_local" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad99c4c6d32803332c548b1af0540b357b3f5fc0be8f6c6bfe8b2e6ae784070" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "tinyvec" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee" + +[[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 = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.25.15+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1340ea94a5856333492c9064b02c778b191dd2c853778d9609debdcdfea3a614" +dependencies = [ + "indexmap", + "toml_datetime", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" +dependencies = [ + "winnow", +] + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex-automata", + "sharded-slab", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "typed-path" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" + +[[package]] +name = "typenum" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-segmentation" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +dependencies = [ + "void", +] + +[[package]] +name = "ureq" +version = "3.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a7ac20be9b7726e0bbdbf974c059676d9acb1cd414961f570a4e8231cacd7fc" +dependencies = [ + "base64 0.23.1", + "log", + "percent-encoding", + "ureq-proto", + "utf8-zero", +] + +[[package]] +name = "ureq-proto" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0809a01d1ca5a51ca70db32bb2a19157582a526505ef3c19e3b343a59aa5ad" +dependencies = [ + "base64 0.23.1", + "http", + "httparse", + "log", +] + +[[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 = "utf8-zero" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "uuid" +version = "1.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ef6dac1e96601b4fb3acccccff2139741fcb757cb9a36089bf5be91cfb285ce" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[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.4+wasi-0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aecb87a33d3b0c5e3b7aa46336eaf486cffafbd281b195e4c8b80d50df2351bf" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a690d511e3c1a8b3a55e33511e3c2c00c78415cd23650f32b808627f5696b9ed" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "411e4887f0071ef2d2164a9d5fdf2d20efbef78fccd3a78b0c10a1dc5295e48a" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 3.0.5", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81941cd78d0c92026c33e5e01312845a4cb1e9af3407f9134b100dd03144103e" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "web-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fbddc4a036f00ec4f18c83445bd3115cb306a91da554919a099d9222fe4a7f8" +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-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "wincode" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66d967db7705dc29120bb6e8ce5b5a2e27734ed5976d1c904e95bd238d1c3c5a" +dependencies = [ + "bv", + "pastey", + "proc-macro2", + "quote", + "thiserror 2.0.20", + "wincode-derive", +] + +[[package]] +name = "wincode-derive" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15ab90b719560d0fda79c74550ad1c948d17b118765942838055ebaf34d67071" +dependencies = [ + "darling 0.23.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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 = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "xattr" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" +dependencies = [ + "libc", + "rustix", +] + +[[package]] +name = "zerocopy" +version = "0.8.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d35102a9f36d089ccae9e4c6802bc118be4487b80aaffc0ab4e0cf5ce92d2873" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c01f5ab44258da43cf276c74a2763db2ff3969c9c652c3f2de07041d0b2bc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zeroize" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zip" +version = "8.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b" +dependencies = [ + "crc32fast", + "flate2", + "indexmap", + "memchr", + "typed-path", + "zopfli", +] + +[[package]] +name = "zlib-rs" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12" + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" + +[[package]] +name = "zopfli" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" +dependencies = [ + "bumpalo", + "crc32fast", + "log", + "simd-adler32", +] diff --git a/private-counter/anchor/tests-magicsvm-rs/Cargo.toml b/private-counter/anchor/tests-magicsvm-rs/Cargo.toml new file mode 100644 index 00000000..e1eaf90d --- /dev/null +++ b/private-counter/anchor/tests-magicsvm-rs/Cargo.toml @@ -0,0 +1,23 @@ +[package] +name = "private-counter-magicsvm-tests" +version = "0.1.0" +edition = "2021" +publish = false + +[workspace] + +[dev-dependencies] +anchor-lang = "=1.0.2" +ephemeral-rollups-sdk = { version = "0.16.2", features = ["anchor", "access-control"] } +magicsvm = "0.2.0" +test-utils = { path = "../../../test-utils/rust", features = ["anchor"] } +private-counter = { path = "../programs/private-counter", features = ["no-entrypoint"] } +solana-address = "2.6.1" +solana-hash = "4.5.0" +solana-instruction = { version = "3.4.0", features = ["bincode"] } +solana-keypair = "3.1.2" +solana-message = "4.2.4" +solana-native-token = "3.0.0" +solana-signer = "3.0.1" +solana-transaction = { version = "4.1.5", features = ["verify"] } +test-log = "0.2" diff --git a/private-counter/anchor/tests-magicsvm-rs/tests/magicsvm.rs b/private-counter/anchor/tests-magicsvm-rs/tests/magicsvm.rs new file mode 100644 index 00000000..75807a50 --- /dev/null +++ b/private-counter/anchor/tests-magicsvm-rs/tests/magicsvm.rs @@ -0,0 +1,316 @@ +use { + anchor_lang::{prelude::Pubkey, system_program, Id, InstructionData, ToAccountMetas}, + ephemeral_rollups_sdk::{ + access_control::structs::EphemeralPermission, + anchor::{DelegationProgram, MagicProgram}, + consts::{EPHEMERAL_VAULT_ID, MAGIC_CONTEXT_ID, MAGIC_PROGRAM_ID, PERMISSION_PROGRAM_ID}, + pda::{ + delegate_buffer_pda_from_delegated_account_and_owner_program, + delegation_metadata_pda_from_delegated_account, + delegation_record_pda_from_delegated_account, + }, + }, + magicsvm::{MagicSVM, TransactionTarget}, + private_counter::{self, accounts, instruction, COUNTER_SEED}, + solana_address::Address, + solana_instruction::Instruction, + solana_keypair::Keypair, + solana_native_token::LAMPORTS_PER_SOL, + solana_signer::Signer, + solana_transaction::Transaction, + std::path::PathBuf, + test_utils::{ + as_address, as_pubkey, client_ix, is_delegated, program_id_from_idl, send_tx, sign_tx, + }, +}; + +fn deploy_dir() -> PathBuf { + PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../target/deploy") +} + +fn program_id() -> Pubkey { + as_pubkey(&program_id_from_idl( + env!("CARGO_MANIFEST_DIR"), + "private_counter.json", + )) +} + +fn program_address() -> Address { + as_address(program_id()) +} + +fn ix(data: impl InstructionData, accounts: impl ToAccountMetas) -> Instruction { + client_ix(program_address(), data, accounts) +} + +fn send(svm: &mut MagicSVM, target: TransactionTarget, tx: Transaction) { + send_tx(svm, target, tx, "transaction"); +} + +fn tx(payer: &Keypair, ix: Instruction, blockhash: solana_hash::Hash) -> Transaction { + sign_tx(&[payer], &[ix], blockhash) +} + +fn counter_pda(authority: &Pubkey) -> Pubkey { + Pubkey::find_program_address(&[COUNTER_SEED, authority.as_ref()], &program_id()).0 +} + +fn permission_pda(counter: &Pubkey) -> Pubkey { + EphemeralPermission::find_pda(counter).0 +} + +fn counter_count(svm: &MagicSVM, target: TransactionTarget, counter: &Address) -> u64 { + let account = svm + .get_account_for(target, counter) + .expect("counter account missing"); + u64::from_le_bytes(account.data[8..16].try_into().unwrap()) +} + +fn initialize_tx(counter: Pubkey, payer: &Keypair, blockhash: solana_hash::Hash) -> Transaction { + tx( + payer, + ix( + instruction::Initialize {}, + accounts::Initialize { + counter, + authority: as_pubkey(&payer.pubkey()), + system_program: system_program::ID, + }, + ), + blockhash, + ) +} + +fn increment_tx(counter: Pubkey, payer: &Keypair, blockhash: solana_hash::Hash) -> Transaction { + tx( + payer, + ix(instruction::Increment {}, accounts::Increment { counter }), + blockhash, + ) +} + +fn delegate_tx( + counter: Pubkey, + validator: Address, + payer: &Keypair, + blockhash: solana_hash::Hash, +) -> Transaction { + tx( + payer, + ix( + instruction::Delegate {}, + accounts::DelegateCounterPrivately { + authority: as_pubkey(&payer.pubkey()), + buffer_counter: delegate_buffer_pda_from_delegated_account_and_owner_program( + &counter, + &program_id(), + ), + delegation_record_counter: delegation_record_pda_from_delegated_account(&counter), + delegation_metadata_counter: delegation_metadata_pda_from_delegated_account( + &counter, + ), + counter, + validator: Some(as_pubkey(&validator)), + owner_program: program_id(), + delegation_program: DelegationProgram::id(), + system_program: system_program::ID, + }, + ), + blockhash, + ) +} + +fn permission_accounts( + counter: Pubkey, + permission: Pubkey, + payer: &Keypair, +) -> accounts::PermissionContext { + accounts::PermissionContext { + authority: as_pubkey(&payer.pubkey()), + counter, + permission, + permission_program: PERMISSION_PROGRAM_ID, + ephemeral_vault: EPHEMERAL_VAULT_ID, + magic_program: MAGIC_PROGRAM_ID, + } +} + +fn commit_like_tx( + payer: &Keypair, + data: impl InstructionData, + accounts: impl ToAccountMetas, + blockhash: solana_hash::Hash, +) -> Transaction { + tx(payer, ix(data, accounts), blockhash) +} + +#[test_log::test] +fn private_counter_permissioned_er_flow() { + let payer = Keypair::new(); + let program = program_address(); + let mut svm = MagicSVM::new(); + svm.add_program_from_file(program, deploy_dir().join("private_counter.so")) + .unwrap(); + svm.airdrop(&payer.pubkey(), 2 * LAMPORTS_PER_SOL).unwrap(); + + let authority = as_pubkey(&payer.pubkey()); + let counter = counter_pda(&authority); + let counter_address = as_address(counter); + let permission = permission_pda(&counter); + + let base_hash = svm.latest_blockhash_for(TransactionTarget::Base); + send( + &mut svm, + TransactionTarget::Base, + initialize_tx(counter, &payer, base_hash), + ); + assert_eq!( + counter_count(&svm, TransactionTarget::Base, &counter_address), + 0 + ); + + let base_hash = svm.latest_blockhash_for(TransactionTarget::Base); + send( + &mut svm, + TransactionTarget::Base, + increment_tx(counter, &payer, base_hash), + ); + assert_eq!( + counter_count(&svm, TransactionTarget::Base, &counter_address), + 1 + ); + + let validator = svm.validator_identity(); + let base_hash = svm.latest_blockhash_for(TransactionTarget::Base); + send( + &mut svm, + TransactionTarget::Base, + delegate_tx(counter, validator, &payer, base_hash), + ); + assert!( + is_delegated(&svm, &counter_address), + "counter is not delegated" + ); + assert!( + svm.get_account_for(TransactionTarget::Ephemeral, &counter_address) + .is_some(), + "delegated counter missing on ephemeral" + ); + + let permission_program = svm.get_account_for( + TransactionTarget::Ephemeral, + &as_address(PERMISSION_PROGRAM_ID), + ); + eprintln!( + "Permission program on ephemeral: {:?}", + permission_program + .as_ref() + .map(|account| account.executable) + ); + + let ephemeral_hash = svm.latest_blockhash_for(TransactionTarget::Ephemeral); + send( + &mut svm, + TransactionTarget::Ephemeral, + tx( + &payer, + ix( + instruction::InitPermission {}, + permission_accounts(counter, permission, &payer), + ), + ephemeral_hash, + ), + ); + assert!( + svm.get_account_for(TransactionTarget::Ephemeral, &as_address(permission)) + .is_some(), + "permission PDA was not created on ephemeral" + ); + + let ephemeral_hash = svm.latest_blockhash_for(TransactionTarget::Ephemeral); + send( + &mut svm, + TransactionTarget::Ephemeral, + increment_tx(counter, &payer, ephemeral_hash), + ); + assert_eq!( + counter_count(&svm, TransactionTarget::Ephemeral, &counter_address), + 2 + ); + + for is_private in [true, false] { + let ephemeral_hash = svm.latest_blockhash_for(TransactionTarget::Ephemeral); + send( + &mut svm, + TransactionTarget::Ephemeral, + tx( + &payer, + ix( + instruction::SetPrivacy { is_private }, + permission_accounts(counter, permission, &payer), + ), + ephemeral_hash, + ), + ); + } + + let ephemeral_hash = svm.latest_blockhash_for(TransactionTarget::Ephemeral); + send( + &mut svm, + TransactionTarget::Ephemeral, + tx( + &payer, + ix( + instruction::ClosePermission {}, + permission_accounts(counter, permission, &payer), + ), + ephemeral_hash, + ), + ); + + let ephemeral_hash = svm.latest_blockhash_for(TransactionTarget::Ephemeral); + send( + &mut svm, + TransactionTarget::Ephemeral, + commit_like_tx( + &payer, + instruction::Commit {}, + accounts::IncrementAndCommit { + payer: authority, + counter, + magic_program: MagicProgram::id(), + magic_context: MAGIC_CONTEXT_ID, + }, + ephemeral_hash, + ), + ); + assert_eq!( + counter_count(&svm, TransactionTarget::Base, &counter_address), + 2 + ); + + let ephemeral_hash = svm.latest_blockhash_for(TransactionTarget::Ephemeral); + send( + &mut svm, + TransactionTarget::Ephemeral, + commit_like_tx( + &payer, + instruction::Undelegate {}, + accounts::UndelegateCounter { + payer: authority, + counter, + magic_program: MagicProgram::id(), + magic_context: MAGIC_CONTEXT_ID, + }, + ephemeral_hash, + ), + ); + let undelegated = svm + .get_account_for(TransactionTarget::Base, &counter_address) + .expect("counter missing after undelegate"); + assert_eq!(undelegated.owner, program); + assert_eq!( + counter_count(&svm, TransactionTarget::Base, &counter_address), + 2 + ); +} diff --git a/private-counter/anchor/tests-magicsvm/private-counter.ts b/private-counter/anchor/tests-magicsvm/private-counter.ts new file mode 100644 index 00000000..5b745f1a --- /dev/null +++ b/private-counter/anchor/tests-magicsvm/private-counter.ts @@ -0,0 +1,195 @@ +import { + bootAnchorSvm, + EPHEMERAL_VAULT_ID, + isDelegated, + MAGIC_PROGRAM_ID, + PERMISSION_PROGRAM_ID, + permissionPdaFromAccount, + readU64le, + sendSvmTx, + validatorPubkey, +} from "@magicblock-labs/test-utils"; +import { LAMPORTS_PER_SOL, PublicKey } from "@solana/web3.js"; +import { PrivateCounter } from "../target/types/private_counter"; + +const COUNTER_SEED = "counter"; + +describe("private-counter magicsvm", () => { + const { svm, payer, program } = bootAnchorSvm({ + fromDir: __dirname, + programName: "private_counter", + airdropLamports: BigInt(2 * LAMPORTS_PER_SOL), + }); + const [counterPDA] = PublicKey.findProgramAddressSync( + [Buffer.from(COUNTER_SEED), payer.publicKey.toBuffer()], + program.programId, + ); + const permissionPDA = permissionPdaFromAccount(counterPDA); + + console.log("Program ID: ", program.programId.toString()); + console.log("Counter PDA: ", counterPDA.toString()); + console.log("Permission PDA: ", permissionPDA.toString()); + console.log("Validator identity: ", validatorPubkey(svm).toString()); + + it("Initialize counter on Solana", async () => { + const tx = await program.methods + .initialize() + .accounts({ + authority: payer.publicKey, + }) + .transaction(); + sendSvmTx(svm, [payer], tx, "base"); + if (readU64le(svm, counterPDA, "base") !== 0n) { + throw new Error("expected count 0 after initialize"); + } + }); + + it("Increase counter on Solana", async () => { + const account = svm.getAccountFor(counterPDA, { target: "base" }); + if ( + !account.exists || + account.programAddress.toString() !== program.programId.toString() + ) { + throw new Error("counter is not owned by the program on the base layer"); + } + const tx = await program.methods + .increment() + .accounts({ + counter: counterPDA, + }) + .transaction(); + sendSvmTx(svm, [payer], tx, "base"); + if (readU64le(svm, counterPDA, "base") !== 1n) { + throw new Error("expected count 1 after base increment"); + } + }); + + it("Delegate counter to ER", async () => { + const tx = await program.methods + .delegate() + .accountsPartial({ + authority: payer.publicKey, + counter: counterPDA, + validator: new PublicKey(validatorPubkey(svm)), + }) + .transaction(); + sendSvmTx(svm, [payer], tx, "base"); + if (!isDelegated(svm, counterPDA)) { + throw new Error("counter is not delegated"); + } + const delegated = svm.getAccountFor(counterPDA, { target: "ephemeral" }); + if (!delegated.exists) { + throw new Error("delegated counter missing on ephemeral"); + } + }); + + it("Initialize ephemeral permission on ER", async () => { + const permissionProgram = svm.getAccountFor(PERMISSION_PROGRAM_ID, { + target: "ephemeral", + }); + console.log( + "Permission program on ephemeral:", + permissionProgram.exists + ? `exists executable=${permissionProgram.executable}` + : "missing", + ); + const tx = await program.methods + .initPermission() + .accountsPartial({ + authority: payer.publicKey, + counter: counterPDA, + permission: permissionPDA, + magicProgram: MAGIC_PROGRAM_ID, + permissionProgram: PERMISSION_PROGRAM_ID, + ephemeralVault: EPHEMERAL_VAULT_ID, + }) + .transaction(); + sendSvmTx(svm, [payer], tx, "ephemeral"); + const permission = svm.getAccountFor(permissionPDA, { + target: "ephemeral", + }); + if (!permission.exists) { + throw new Error("permission PDA was not created on ephemeral"); + } + }); + + it("Increase counter on ER", async () => { + const tx = await program.methods + .increment() + .accounts({ + counter: counterPDA, + }) + .transaction(); + sendSvmTx(svm, [payer], tx, "ephemeral"); + if (readU64le(svm, counterPDA, "ephemeral") !== 2n) { + throw new Error("expected count 2 after ER increment"); + } + }); + + it("Toggle privacy on ER (private -> public)", async () => { + for (const isPrivate of [true, false]) { + const tx = await program.methods + .setPrivacy(isPrivate) + .accountsPartial({ + counter: counterPDA, + authority: payer.publicKey, + permission: permissionPDA, + magicProgram: MAGIC_PROGRAM_ID, + permissionProgram: PERMISSION_PROGRAM_ID, + ephemeralVault: EPHEMERAL_VAULT_ID, + }) + .transaction(); + sendSvmTx(svm, [payer], tx, "ephemeral"); + } + }); + + it("Close permission on ER", async () => { + const tx = await program.methods + .closePermission() + .accountsPartial({ + counter: counterPDA, + authority: payer.publicKey, + permission: permissionPDA, + magicProgram: MAGIC_PROGRAM_ID, + permissionProgram: PERMISSION_PROGRAM_ID, + ephemeralVault: EPHEMERAL_VAULT_ID, + }) + .transaction(); + sendSvmTx(svm, [payer], tx, "ephemeral"); + }); + + it("Commit counter state on ER to Solana", async () => { + const tx = await program.methods + .commit() + .accountsPartial({ + payer: payer.publicKey, + counter: counterPDA, + }) + .transaction(); + sendSvmTx(svm, [payer], tx, "ephemeral"); + if (readU64le(svm, counterPDA, "base") !== 2n) { + throw new Error("expected committed count 2 on base"); + } + }); + + it("Undelegate counter from ER to Solana", async () => { + const tx = await program.methods + .undelegate() + .accountsPartial({ + payer: payer.publicKey, + counter: counterPDA, + }) + .transaction(); + sendSvmTx(svm, [payer], tx, "ephemeral"); + const account = svm.getAccountFor(counterPDA, { target: "base" }); + if ( + !account.exists || + account.programAddress.toString() !== program.programId.toString() + ) { + throw new Error("counter undelegation failed"); + } + if (readU64le(svm, counterPDA, "base") !== 2n) { + throw new Error("expected count 2 after undelegate"); + } + }); +}); diff --git a/private-counter/anchor/tsconfig.json b/private-counter/anchor/tsconfig.json index cd5d2e3d..34e670ff 100644 --- a/private-counter/anchor/tsconfig.json +++ b/private-counter/anchor/tsconfig.json @@ -1,10 +1,12 @@ { "compilerOptions": { - "types": ["mocha", "chai"], + "types": ["mocha", "chai", "node"], "typeRoots": ["./node_modules/@types"], - "lib": ["es2015"], + "lib": ["es2020"], "module": "commonjs", - "target": "es6", - "esModuleInterop": true + "target": "es2020", + "esModuleInterop": true, + "resolveJsonModule": true, + "skipLibCheck": true } } diff --git a/private-counter/anchor/yarn.lock b/private-counter/anchor/yarn.lock index 447490e2..b796af84 100644 --- a/private-counter/anchor/yarn.lock +++ b/private-counter/anchor/yarn.lock @@ -90,6 +90,54 @@ tweetnacl "^1.0.3" typescript "^5.3.0" +"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" + integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== + +"@magicblock-labs/magicsvm-darwin-x64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" + integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== + +"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" + integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== + +"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" + integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== + +"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" + integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== + +"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" + integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== + +"@magicblock-labs/magicsvm@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" + integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== + dependencies: + "@solana/web3.js" "3.0.0-rc.3" + optionalDependencies: + "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" + "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" + +"@magicblock-labs/test-utils@link:../../test-utils/ts": + version "0.0.0" + uid "" + "@noble/curves@^1.4.2": version "1.9.7" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" @@ -140,6 +188,61 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== +"@solana-program/address-lookup-table@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" + integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== + +"@solana-program/compute-budget@^0.18.0": + version "0.18.1" + resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" + integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== + +"@solana-program/loader-v3@^0.6.0": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" + integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== + +"@solana-program/stake@^0.9.0": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" + integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== + +"@solana-program/system@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" + integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== + +"@solana/accounts@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" + integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/addresses@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" + integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" + integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/buffer-layout@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" @@ -154,6 +257,30 @@ dependencies: "@solana/errors" "2.3.0" +"@solana/codecs-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" + integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== + dependencies: + "@solana/errors" "8.3.0" + +"@solana/codecs-data-structures@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" + integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/codecs-numbers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" + integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/codecs-numbers@^2.1.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" @@ -162,6 +289,27 @@ "@solana/codecs-core" "2.3.0" "@solana/errors" "2.3.0" +"@solana/codecs-strings@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" + integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/codecs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" + integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/options" "8.3.0" + "@solana/errors@2.3.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.3.0.tgz#4ac9380343dbeffb9dffbcb77c28d0e457c5fa31" @@ -170,6 +318,429 @@ chalk "^5.4.1" commander "^14.0.0" +"@solana/errors@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" + integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== + dependencies: + chalk "5.6.2" + commander "15.0.0" + +"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" + integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== + +"@solana/fixed-points@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" + integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/functional@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" + integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== + +"@solana/instruction-plans@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" + integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/instructions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" + integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/keys@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" + integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/promises" "8.3.0" + +"@solana/kit@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" + integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/plugin-core" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/program-client-core" "8.3.0" + "@solana/programs" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/sysvars" "8.3.0" + "@solana/transaction-confirmation" "8.3.0" + "@solana/transaction-introspection" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/nominal-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" + integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== + +"@solana/offchain-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" + integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/options@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" + integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/plugin-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" + integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== + +"@solana/plugin-interfaces@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" + integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/program-client-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" + integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/signers" "8.3.0" + +"@solana/programs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" + integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/promises@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" + integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== + +"@solana/rpc-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" + integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/rpc-parsed-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" + integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== + +"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" + integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== + dependencies: + "@solana/errors" "8.3.0" + +"@solana/rpc-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" + integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-subscriptions-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" + integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/rpc-subscriptions-channel-websocket@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" + integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/subscribable" "8.3.0" + ws "^8.21.3" + +"@solana/rpc-subscriptions-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" + integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-subscriptions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" + integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions-api" "8.3.0" + "@solana/rpc-subscriptions-channel-websocket" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-transformers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" + integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/rpc-transport-http@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" + integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + undici-types "^8.10.2" + +"@solana/rpc-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" + integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/rpc@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" + integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-transport-http" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/signers@8.3.0", "@solana/signers@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" + integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/subscribable@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" + integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + +"@solana/sysvars@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" + integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/transaction-confirmation@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" + integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/transaction-introspection@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" + integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/transaction-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" + integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/transactions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" + integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + +"@solana/web3.js@3.0.0-rc.3": + version "3.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" + integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== + dependencies: + "@noble/curves" "^1.4.2" + "@noble/hashes" "^1.4.0" + "@solana-program/address-lookup-table" "^0.14.0" + "@solana-program/compute-budget" "^0.18.0" + "@solana-program/loader-v3" "^0.6.0" + "@solana-program/stake" "^0.9.0" + "@solana-program/system" "^0.14.0" + "@solana/assertions" "^8.2.0" + "@solana/fast-stable-stringify" "^8.2.0" + "@solana/kit" "^8.2.0" + "@solana/rpc-spec-types" "^8.2.0" + "@solana/signers" "^8.2.0" + "@solana/web3.js@^1.69.0", "@solana/web3.js@^1.98.0": version "1.98.4" resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" @@ -262,6 +833,13 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== +"@types/node@^22.15.3": + version "22.20.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.20.2.tgz#daae777b5f5965a587f50cc80d5364c2ddf27e36" + integrity sha512-xlvWf4Vs9n1PEVYwP1n4vvG07M6y8WgvJ2t0vbrWTmijsIHp1cS+uJ2kMIRdY3nHZK0nCYKrPeD171+SzF4/zw== + dependencies: + undici-types "~6.21.0" + "@types/uuid@^8.3.4": version "8.3.4" resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" @@ -469,6 +1047,11 @@ chai@^5.2.0: loupe "^3.1.0" pathval "^2.0.0" +chalk@5.6.2, chalk@^5.4.1: + version "5.6.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" + integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== + chalk@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -477,11 +1060,6 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - check-error@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" @@ -515,6 +1093,11 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +commander@15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" + integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== + commander@^14.0.0: version "14.0.2" resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e" @@ -1158,6 +1741,16 @@ typescript@^5.3.0, typescript@^5.8.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== +undici-types@^8.10.2: + version "8.10.2" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" + integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== + +undici-types@~6.21.0: + version "6.21.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" + integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== + undici-types@~7.16.0: version "7.16.0" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" @@ -1228,6 +1821,11 @@ ws@^7.5.10: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== +ws@^8.21.3: + version "8.21.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" + integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== + ws@^8.5.0: version "8.18.3" resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" diff --git a/private-counter/pinocchio/package.json b/private-counter/pinocchio/package.json index 3d31aa9c..8ec180da 100644 --- a/private-counter/pinocchio/package.json +++ b/private-counter/pinocchio/package.json @@ -5,6 +5,8 @@ "main": "index.js", "scripts": { "test:local": ". ../../scripts/local-env.sh && npx vitest run tests/", + "test:magicsvm": "vitest run tests-magicsvm/", + "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml", "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh pinocchio-private-counter", "test": "yarn test:local", "test:watch": "vitest watch tests/", @@ -24,6 +26,7 @@ "license": "MIT", "devDependencies": { "@magicblock-labs/ephemeral-rollups-sdk": "^0.11.1", + "@magicblock-labs/magicsvm": "0.2.0", "@solana-program/system": "^0.10.0", "@solana/kit": "^5.4.0", "@solana/web3.js": "^1.93.0", @@ -34,6 +37,7 @@ "tweetnacl": "^1.0.3", "typescript": "^5.0.0", "vitest": "^3.0.0", - "prettier": "^3.5.3" + "prettier": "^3.5.3", + "@magicblock-labs/test-utils": "link:../../test-utils/ts" } } diff --git a/private-counter/pinocchio/tests-magicsvm-rs/Cargo.toml b/private-counter/pinocchio/tests-magicsvm-rs/Cargo.toml new file mode 100644 index 00000000..6b0d772c --- /dev/null +++ b/private-counter/pinocchio/tests-magicsvm-rs/Cargo.toml @@ -0,0 +1,28 @@ +[package] +name = "pinocchio-private-counter-magicsvm-tests" +version = "0.1.0" +edition = "2021" +publish = false +autolib = false + +[workspace] + +[[test]] +name = "magicsvm" +path = "tests/magicsvm.rs" + +[dev-dependencies] +ephemeral-rollups-sdk = { version = "0.14.4", features = ["modular-sdk", "access-control"] } +magicblock-delegation-program-api = { version = "3.0.0", default-features = false } +magicsvm = "0.2.0" +test-utils = { path = "../../../test-utils/rust" } +serde_json = "1" +solana-address = "~2.6.1" +solana-hash = "~4.5.0" +solana-instruction = { version = "~3.4.0", features = ["bincode"] } +solana-keypair = "3.1.2" +solana-message = "4.2.4" +solana-native-token = "3.0.0" +solana-sdk-ids = "3.1.0" +solana-signer = "3.0.1" +solana-transaction = { version = "4.1.5", features = ["verify"] } diff --git a/private-counter/pinocchio/tests-magicsvm-rs/tests/magicsvm.rs b/private-counter/pinocchio/tests-magicsvm-rs/tests/magicsvm.rs new file mode 100644 index 00000000..542157a6 --- /dev/null +++ b/private-counter/pinocchio/tests-magicsvm-rs/tests/magicsvm.rs @@ -0,0 +1,330 @@ +use { + dlp_api::consts::DELEGATION_PROGRAM_ID, + ephemeral_rollups_sdk::{ + access_control::structs::EphemeralPermission, + consts::{EPHEMERAL_VAULT_ID, MAGIC_CONTEXT_ID, MAGIC_PROGRAM_ID, PERMISSION_PROGRAM_ID}, + }, + magicsvm::{MagicSVM, TransactionTarget}, + solana_address::Address, + solana_hash::Hash, + solana_instruction::{account_meta::AccountMeta, Instruction}, + solana_keypair::Keypair, + solana_message::Message, + solana_native_token::LAMPORTS_PER_SOL, + solana_signer::Signer, + solana_transaction::Transaction, + test_utils::{program_id_from_keypair, program_so_path, send_tx}, +}; + +const COUNTER_SEED: &[u8] = b"counter"; +const INITIALIZE_COUNTER: [u8; 8] = [0, 0, 0, 0, 0, 0, 0, 0]; +const INCREASE_COUNTER: [u8; 8] = [1, 0, 0, 0, 0, 0, 0, 0]; +const DELEGATE_COUNTER: [u8; 8] = [2, 0, 0, 0, 0, 0, 0, 0]; +const COMMIT_AND_UNDELEGATE: [u8; 8] = [3, 0, 0, 0, 0, 0, 0, 0]; +const CREATE_PERMISSION: [u8; 8] = [4, 0, 0, 0, 0, 0, 0, 0]; +const UPDATE_PERMISSION: [u8; 8] = [5, 0, 0, 0, 0, 0, 0, 0]; +const CLOSE_PERMISSION: [u8; 8] = [6, 0, 0, 0, 0, 0, 0, 0]; + +fn program_id() -> Address { + program_id_from_keypair(env!("CARGO_MANIFEST_DIR"), "pinocchio_private_counter") +} + +fn send(svm: &mut MagicSVM, target: TransactionTarget, tx: Transaction) { + send_tx(svm, target, tx, "transaction"); +} + +fn counter_count(data: &[u8]) -> [u8; 8] { + data[32..40].try_into().unwrap() +} + +fn increment_tx( + program_id: Address, + counter: Address, + payer: &Keypair, + blockhash: Hash, +) -> Transaction { + let mut data = Vec::with_capacity(16); + data.extend_from_slice(&INCREASE_COUNTER); + data.extend_from_slice(&1u64.to_le_bytes()); + let instruction = Instruction { + program_id, + accounts: vec![AccountMeta::new(counter, false)], + data, + }; + Transaction::new( + &[payer], + Message::new(&[instruction], Some(&payer.pubkey())), + blockhash, + ) +} + +fn permission_accounts(payer: Address, counter: Address, permission: Address) -> Vec { + vec![ + AccountMeta::new(payer, true), + AccountMeta::new(counter, false), + AccountMeta::new_readonly(PERMISSION_PROGRAM_ID, false), + AccountMeta::new(permission, false), + AccountMeta::new_readonly(MAGIC_PROGRAM_ID, false), + AccountMeta::new(EPHEMERAL_VAULT_ID, false), + ] +} + +fn permission_tx( + program_id: Address, + payer: &Keypair, + counter: Address, + permission: Address, + discriminator: [u8; 8], + blockhash: Hash, +) -> Transaction { + let instruction = Instruction { + program_id, + accounts: permission_accounts(payer.pubkey(), counter, permission), + data: discriminator.to_vec(), + }; + Transaction::new( + &[payer], + Message::new(&[instruction], Some(&payer.pubkey())), + blockhash, + ) +} + +fn delegate_buffer(counter: &Address, owner_program: &Address) -> Address { + Address::find_program_address(&[b"buffer", counter.as_ref()], owner_program).0 +} + +fn delegation_pda(seed: &[u8], delegated_account: &Address) -> Address { + Address::find_program_address(&[seed, delegated_account.as_ref()], &DELEGATION_PROGRAM_ID).0 +} + +#[test] +fn pinocchio_private_counter_init_increment_delegate_permission_undelegate() { + let payer = Keypair::new(); + let id = Keypair::new().pubkey(); + let mut svm = MagicSVM::new(); + let program_id = program_id(); + svm.add_program_from_file( + program_id, + program_so_path(env!("CARGO_MANIFEST_DIR"), "pinocchio_private_counter"), + ) + .unwrap(); + svm.airdrop(&payer.pubkey(), 2 * LAMPORTS_PER_SOL).unwrap(); + + let (counter, _bump) = Address::find_program_address(&[COUNTER_SEED, id.as_ref()], &program_id); + let permission = EphemeralPermission::find_pda(&counter).0; + + let mut initialize_data = Vec::with_capacity(40); + initialize_data.extend_from_slice(&INITIALIZE_COUNTER); + initialize_data.extend_from_slice(id.as_ref()); + let blockhash = svm.latest_blockhash_for(TransactionTarget::Base); + send( + &mut svm, + TransactionTarget::Base, + Transaction::new( + &[&payer], + Message::new( + &[Instruction { + program_id, + accounts: vec![ + AccountMeta::new(payer.pubkey(), true), + AccountMeta::new(counter, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::id(), false), + ], + data: initialize_data, + }], + Some(&payer.pubkey()), + ), + blockhash, + ), + ); + let account = svm.get_account(&counter).expect("counter must exist"); + assert_eq!(counter_count(&account.data), [0, 0, 0, 0, 0, 0, 0, 0]); + + let blockhash = svm.latest_blockhash_for(TransactionTarget::Base); + send( + &mut svm, + TransactionTarget::Base, + increment_tx(program_id, counter, &payer, blockhash), + ); + assert_eq!( + counter_count(&svm.get_account(&counter).unwrap().data), + [1, 0, 0, 0, 0, 0, 0, 0] + ); + + let validator = svm.validator_identity(); + let blockhash = svm.latest_blockhash_for(TransactionTarget::Base); + send( + &mut svm, + TransactionTarget::Base, + Transaction::new( + &[&payer], + Message::new( + &[Instruction { + program_id, + accounts: vec![ + AccountMeta::new(payer.pubkey(), true), + AccountMeta::new(counter, false), + AccountMeta::new_readonly(program_id, false), + AccountMeta::new(delegate_buffer(&counter, &program_id), false), + AccountMeta::new(delegation_pda(b"delegation", &counter), false), + AccountMeta::new(delegation_pda(b"delegation-metadata", &counter), false), + AccountMeta::new_readonly(DELEGATION_PROGRAM_ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::id(), false), + AccountMeta::new_readonly(validator, false), + ], + data: DELEGATE_COUNTER.to_vec(), + }], + Some(&payer.pubkey()), + ), + blockhash, + ), + ); + assert_eq!( + svm.get_account(&counter).expect("delegated counter").owner, + DELEGATION_PROGRAM_ID + ); + + let blockhash = svm.latest_blockhash_for(TransactionTarget::Ephemeral); + send( + &mut svm, + TransactionTarget::Ephemeral, + increment_tx(program_id, counter, &payer, blockhash), + ); + assert_eq!( + counter_count( + &svm.get_account_for(TransactionTarget::Ephemeral, &counter) + .unwrap() + .data + ), + [2, 0, 0, 0, 0, 0, 0, 0] + ); + + let blockhash = svm.latest_blockhash_for(TransactionTarget::Ephemeral); + send( + &mut svm, + TransactionTarget::Ephemeral, + permission_tx( + program_id, + &payer, + counter, + permission, + CREATE_PERMISSION, + blockhash, + ), + ); + let permission_account = svm + .get_account_for(TransactionTarget::Ephemeral, &permission) + .expect("permission must exist"); + assert_eq!(&permission_account.data[36..68], program_id.as_ref()); + assert_eq!(&permission_account.data[69..101], payer.pubkey().as_ref()); + + svm.set_authorized_user(Some(payer.pubkey())); + assert_eq!( + counter_count( + &svm.get_account_for(TransactionTarget::Ephemeral, &counter) + .unwrap() + .data + ), + [2, 0, 0, 0, 0, 0, 0, 0] + ); + svm.set_authorized_user(Some(Keypair::new().pubkey())); + assert!( + svm.get_account_for(TransactionTarget::Ephemeral, &counter) + .is_none(), + "unauthorized viewer must not read a private counter" + ); + svm.set_authorized_user(None); + assert!( + svm.get_account_for(TransactionTarget::Ephemeral, &counter) + .is_none(), + "anonymous viewer must not read a private counter" + ); + + let blockhash = svm.latest_blockhash_for(TransactionTarget::Ephemeral); + send( + &mut svm, + TransactionTarget::Ephemeral, + permission_tx( + program_id, + &payer, + counter, + permission, + UPDATE_PERMISSION, + blockhash, + ), + ); + let permission_account = svm + .get_account_for(TransactionTarget::Ephemeral, &permission) + .expect("permission must exist"); + assert_eq!(&permission_account.data[36..68], program_id.as_ref()); + assert_eq!(permission_account.data.len(), 68); + svm.set_authorized_user(Some(payer.pubkey())); + assert!( + svm.get_account_for(TransactionTarget::Ephemeral, &counter) + .is_none(), + "private counter with no members must be hidden from the authority" + ); + svm.set_authorized_user(None); + assert!( + svm.get_account_for(TransactionTarget::Ephemeral, &counter) + .is_none(), + "private counter with no members must be hidden from anonymous viewers" + ); + + let blockhash = svm.latest_blockhash_for(TransactionTarget::Ephemeral); + send( + &mut svm, + TransactionTarget::Ephemeral, + permission_tx( + program_id, + &payer, + counter, + permission, + CLOSE_PERMISSION, + blockhash, + ), + ); + svm.set_authorized_user(None); + assert_eq!( + counter_count( + &svm.get_account_for(TransactionTarget::Ephemeral, &counter) + .unwrap() + .data + ), + [2, 0, 0, 0, 0, 0, 0, 0] + ); + svm.set_authorized_user(Some(payer.pubkey())); + assert_eq!( + counter_count( + &svm.get_account_for(TransactionTarget::Ephemeral, &counter) + .unwrap() + .data + ), + [2, 0, 0, 0, 0, 0, 0, 0] + ); + + let blockhash = svm.latest_blockhash_for(TransactionTarget::Ephemeral); + send( + &mut svm, + TransactionTarget::Ephemeral, + Transaction::new( + &[&payer], + Message::new( + &[Instruction { + program_id, + accounts: vec![ + AccountMeta::new(payer.pubkey(), true), + AccountMeta::new(counter, false), + AccountMeta::new_readonly(MAGIC_PROGRAM_ID, false), + AccountMeta::new(MAGIC_CONTEXT_ID, false), + ], + data: COMMIT_AND_UNDELEGATE.to_vec(), + }], + Some(&payer.pubkey()), + ), + blockhash, + ), + ); + let account = svm.get_account(&counter).expect("counter must exist"); + assert_eq!(account.owner, program_id); +} diff --git a/private-counter/pinocchio/tests-magicsvm/pinocchio-private-counter.test.ts b/private-counter/pinocchio/tests-magicsvm/pinocchio-private-counter.test.ts new file mode 100644 index 00000000..33c43fe6 --- /dev/null +++ b/private-counter/pinocchio/tests-magicsvm/pinocchio-private-counter.test.ts @@ -0,0 +1,465 @@ +import { + Keypair, + PublicKey, + SystemProgram, + TransactionInstruction, +} from "@solana/web3.js"; +import path from "path"; +import { MagicSVM, TransactionMetadata } from "@magicblock-labs/magicsvm"; +import { + airdropOrThrow, + DELEGATION_PROGRAM_ID, + delegateBufferPdaFromDelegatedAccountAndOwnerProgram, + delegationMetadataPdaFromDelegatedAccount, + delegationRecordPdaFromDelegatedAccount, + EPHEMERAL_VAULT_ID, + isDelegated, + MAGIC_CONTEXT_ID, + MAGIC_PROGRAM_ID, + PERMISSION_PROGRAM_ID, + permissionPdaFromAccount, + programIdFromKeypairFile, + requireAccount, + sendSvmIx, +} from "@magicblock-labs/test-utils"; +import { describe, it, beforeAll, expect } from "vitest"; + +const LAMPORTS_PER_SOL = 1_000_000_000n; +const PROGRAM_SO = path.join( + __dirname, + "..", + "target", + "deploy", + "pinocchio_private_counter.so", +); +const PROGRAM_KEYPAIR = path.join( + __dirname, + "..", + "target", + "deploy", + "pinocchio_private_counter-keypair.json", +); + +function send( + svm: MagicSVM, + target: "base" | "ephemeral", + ix: TransactionInstruction, + payer: Keypair, +): TransactionMetadata { + return sendSvmIx(svm, [payer], ix, target); +} + +function counterCount(data: Uint8Array): Uint8Array { + return Buffer.from(data.subarray(32, 40)); +} + +describe("pinocchio-private-counter magicsvm", () => { + const PROGRAM_ID = new PublicKey(programIdFromKeypairFile(PROGRAM_KEYPAIR)); + const userKeypair = Keypair.generate(); + const unauthorizedKeypair = Keypair.generate(); + const svm = new MagicSVM(); + const id = Keypair.generate().publicKey; + + const [counterPda, bump] = PublicKey.findProgramAddressSync( + [Buffer.from("counter"), id.toBuffer()], + PROGRAM_ID, + ); + const permissionPda = permissionPdaFromAccount(counterPda); + + beforeAll(() => { + svm.addProgramFromFile(PROGRAM_ID, PROGRAM_SO); + airdropOrThrow(svm, userKeypair.publicKey, 2n * LAMPORTS_PER_SOL); + console.log("Program ID: ", PROGRAM_ID.toString()); + console.log("Counter PDA: ", counterPda.toString()); + console.log("Bump: ", bump); + console.log("Permission PDA: ", permissionPda.toString()); + console.log("Validator identity: ", svm.validatorIdentity().toString()); + }); + + it("Initialize counter on Solana", () => { + const ixData = Buffer.concat([ + Buffer.from([0, 0, 0, 0, 0, 0, 0, 0]), + id.toBuffer(), + ]); + const result = send( + svm, + "base", + new TransactionInstruction({ + programId: PROGRAM_ID, + data: ixData, + keys: [ + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + { + pubkey: SystemProgram.programId, + isSigner: false, + isWritable: false, + }, + ], + }), + userKeypair, + ); + expect(result).toBeDefined(); + + const counter = requireAccount(svm, counterPda, "base"); + expect(counterCount(counter.data)).toEqual( + Buffer.from([0, 0, 0, 0, 0, 0, 0, 0]), + ); + }); + + it("Increase counter on Solana", () => { + const ixData = Buffer.concat([ + Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), + Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), + ]); + const result = send( + svm, + "base", + new TransactionInstruction({ + programId: PROGRAM_ID, + data: ixData, + keys: [ + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + ], + }), + userKeypair, + ); + expect(result).toBeDefined(); + + const counter = requireAccount(svm, counterPda, "base"); + expect(counterCount(counter.data)).toEqual( + Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), + ); + }); + + it("Delegate counter to ER", () => { + const ixData = Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]); + const result = send( + svm, + "base", + new TransactionInstruction({ + programId: PROGRAM_ID, + data: ixData, + keys: [ + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + { + pubkey: PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + { + pubkey: delegateBufferPdaFromDelegatedAccountAndOwnerProgram( + counterPda, + PROGRAM_ID, + ), + isSigner: false, + isWritable: true, + }, + { + pubkey: delegationRecordPdaFromDelegatedAccount(counterPda), + isSigner: false, + isWritable: true, + }, + { + pubkey: delegationMetadataPdaFromDelegatedAccount(counterPda), + isSigner: false, + isWritable: true, + }, + { + pubkey: DELEGATION_PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + { + pubkey: SystemProgram.programId, + isSigner: false, + isWritable: false, + }, + { + pubkey: new PublicKey(svm.validatorIdentity().toString()), + isSigner: false, + isWritable: false, + }, + ], + }), + userKeypair, + ); + expect(result).toBeDefined(); + expect(isDelegated(svm, counterPda)).toBe(true); + }); + + it("Increase counter on ER", () => { + const ixData = Buffer.concat([ + Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), + Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), + ]); + const result = send( + svm, + "ephemeral", + new TransactionInstruction({ + programId: PROGRAM_ID, + data: ixData, + keys: [ + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + ], + }), + userKeypair, + ); + expect(result).toBeDefined(); + + const counter = requireAccount(svm, counterPda, "ephemeral"); + expect(counterCount(counter.data)).toEqual( + Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), + ); + }); + + it("Create permission on ER", () => { + const ixData = Buffer.from([4, 0, 0, 0, 0, 0, 0, 0]); + const result = send( + svm, + "ephemeral", + new TransactionInstruction({ + programId: PROGRAM_ID, + data: ixData, + keys: [ + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + { + pubkey: PERMISSION_PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + { + pubkey: permissionPda, + isSigner: false, + isWritable: true, + }, + { + pubkey: MAGIC_PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + { + pubkey: EPHEMERAL_VAULT_ID, + isSigner: false, + isWritable: true, + }, + ], + }), + userKeypair, + ); + expect(result).toBeDefined(); + + svm.setAuthorizedUser(userKeypair.publicKey); + const authorized = requireAccount(svm, counterPda, "ephemeral"); + expect(counterCount(authorized.data)).toEqual( + Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), + ); + svm.setAuthorizedUser(unauthorizedKeypair.publicKey); + expect(svm.getAccountFor(counterPda, { target: "ephemeral" }).exists).toBe( + false, + ); + svm.setAuthorizedUser(null); + expect(svm.getAccountFor(counterPda, { target: "ephemeral" }).exists).toBe( + false, + ); + + const permission = requireAccount(svm, permissionPda, "ephemeral"); + expect(Buffer.from(permission.data.subarray(36, 68))).toEqual( + PROGRAM_ID.toBuffer(), + ); + expect(Buffer.from(permission.data.subarray(69, 101))).toEqual( + userKeypair.publicKey.toBuffer(), + ); + }); + + it("Update permission on ER", () => { + const ixData = Buffer.from([5, 0, 0, 0, 0, 0, 0, 0]); + const result = send( + svm, + "ephemeral", + new TransactionInstruction({ + programId: PROGRAM_ID, + data: ixData, + keys: [ + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + { + pubkey: PERMISSION_PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + { + pubkey: permissionPda, + isSigner: false, + isWritable: true, + }, + { + pubkey: MAGIC_PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + { + pubkey: EPHEMERAL_VAULT_ID, + isSigner: false, + isWritable: true, + }, + ], + }), + userKeypair, + ); + expect(result).toBeDefined(); + + const permission = requireAccount(svm, permissionPda, "ephemeral"); + expect(Buffer.from(permission.data.subarray(36, 68))).toEqual( + PROGRAM_ID.toBuffer(), + ); + expect(permission.data.length).toEqual(68); + + svm.setAuthorizedUser(userKeypair.publicKey); + expect(svm.getAccountFor(counterPda, { target: "ephemeral" }).exists).toBe( + false, + ); + svm.setAuthorizedUser(unauthorizedKeypair.publicKey); + expect(svm.getAccountFor(counterPda, { target: "ephemeral" }).exists).toBe( + false, + ); + }); + + it("Close permission on ER", () => { + const ixData = Buffer.from([6, 0, 0, 0, 0, 0, 0, 0]); + const result = send( + svm, + "ephemeral", + new TransactionInstruction({ + programId: PROGRAM_ID, + data: ixData, + keys: [ + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + { + pubkey: PERMISSION_PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + { + pubkey: permissionPda, + isSigner: false, + isWritable: true, + }, + { + pubkey: MAGIC_PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + { + pubkey: EPHEMERAL_VAULT_ID, + isSigner: false, + isWritable: true, + }, + ], + }), + userKeypair, + ); + expect(result).toBeDefined(); + + svm.setAuthorizedUser(userKeypair.publicKey); + const counter = requireAccount(svm, counterPda, "ephemeral"); + expect(counterCount(counter.data)).toEqual( + Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), + ); + svm.setAuthorizedUser(unauthorizedKeypair.publicKey); + const unauthorized = requireAccount(svm, counterPda, "ephemeral"); + expect(counterCount(unauthorized.data)).toEqual( + Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), + ); + }); + + it("Commit and undelegate counter on ER to Solana", () => { + const ixData = Buffer.from([3, 0, 0, 0, 0, 0, 0, 0]); + const result = send( + svm, + "ephemeral", + new TransactionInstruction({ + programId: PROGRAM_ID, + data: ixData, + keys: [ + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + { + pubkey: MAGIC_PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + { + pubkey: MAGIC_CONTEXT_ID, + isSigner: false, + isWritable: true, + }, + ], + }), + userKeypair, + ); + expect(result).toBeDefined(); + + const counter = requireAccount(svm, counterPda, "base"); + expect(counter.programAddress.toString()).toBe(PROGRAM_ID.toString()); + }); +}); diff --git a/private-counter/pinocchio/tsconfig.json b/private-counter/pinocchio/tsconfig.json index 42717109..2bba07b9 100644 --- a/private-counter/pinocchio/tsconfig.json +++ b/private-counter/pinocchio/tsconfig.json @@ -11,5 +11,5 @@ "forceConsistentCasingInFileNames": true, "noEmit": true }, - "include": ["tests/**/*.ts"] + "include": ["tests/**/*.ts", "tests-magicsvm/**/*.ts"] } diff --git a/private-counter/pinocchio/yarn.lock b/private-counter/pinocchio/yarn.lock index 452c7ac3..26445095 100644 --- a/private-counter/pinocchio/yarn.lock +++ b/private-counter/pinocchio/yarn.lock @@ -2,11 +2,43 @@ # yarn lockfile v1 -"@babel/runtime@^7.25.0": +"@babel/runtime@^7.25.0", "@babel/runtime@^7.29.7": version "7.29.7" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.7.tgz#12022450c45a4da6d8d8287b18a4ff2ddb23f768" integrity sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw== +"@coral-xyz/anchor-errors@^0.31.1": + version "0.31.1" + resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" + integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== + +"@coral-xyz/anchor@0.32.1": + version "0.32.1" + resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" + integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== + dependencies: + "@coral-xyz/anchor-errors" "^0.31.1" + "@coral-xyz/borsh" "^0.31.1" + "@noble/hashes" "^1.3.1" + "@solana/web3.js" "^1.69.0" + bn.js "^5.1.2" + bs58 "^4.0.1" + buffer-layout "^1.2.2" + camelcase "^6.3.0" + cross-fetch "^3.1.5" + eventemitter3 "^4.0.7" + pako "^2.0.3" + superstruct "^0.15.4" + toml "^3.0.0" + +"@coral-xyz/borsh@^0.31.1": + version "0.31.1" + resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.31.1.tgz#5328e1e0921b75d7f4a62dd3f61885a938bc7241" + integrity sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw== + dependencies: + bn.js "^5.1.2" + buffer-layout "^1.2.0" + "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" @@ -162,6 +194,20 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@magicblock-labs/ephemeral-rollups-sdk@0.14.3": + version "0.14.3" + resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.14.3.tgz#536c215d1daefdbcfa82a79304b08f5014405c58" + integrity sha512-CoByiXHLLS+l7Ojl6XJuYypP/k08ymFkab8+Gh/HCv5Gn2oC4VkwszEQoTDnKo++8Oxbqr9YVGzAMUW4Km7cLA== + dependencies: + "@noble/curves" "^1.4.2" + "@noble/hashes" "^1.4.0" + "@phala/dcap-qvl" "^0.3.9" + "@solana/web3.js" "^1.98.0" + bs58 "^6.0.0" + rpc-websockets "^9.0.4" + tweetnacl "^1.0.3" + typescript "^5.3.0" + "@magicblock-labs/ephemeral-rollups-sdk@^0.11.1": version "0.11.2" resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.11.2.tgz#8b841be14e0df50cb44fa20b0da83a55dc9cb183" @@ -176,14 +222,62 @@ tweetnacl "^1.0.3" typescript "^5.3.0" -"@noble/curves@^1.4.2": +"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" + integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== + +"@magicblock-labs/magicsvm-darwin-x64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" + integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== + +"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" + integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== + +"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" + integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== + +"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" + integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== + +"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" + integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== + +"@magicblock-labs/magicsvm@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" + integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== + dependencies: + "@solana/web3.js" "3.0.0-rc.3" + optionalDependencies: + "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" + "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" + +"@magicblock-labs/test-utils@link:../../test-utils/ts": + version "0.0.0" + uid "" + +"@noble/curves@^1.4.2", "@noble/curves@^1.9.7": version "1.9.7" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== dependencies: "@noble/hashes" "1.8.0" -"@noble/hashes@1.8.0", "@noble/hashes@^1.4.0": +"@noble/hashes@1.8.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0", "@noble/hashes@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== @@ -353,11 +447,36 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.61.1.tgz#cb98a579ab6eec9940bda7a736df5e2b94eb0a27" integrity sha512-X+zaP2x+j4RXGfbp/seSoRHWnPxzApilDszisZxbYH5C/jTxFhCtDNdPGZb9lJyYPs24wGxruPF7Y+sIXt9Gzw== +"@solana-program/address-lookup-table@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" + integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== + +"@solana-program/compute-budget@^0.18.0": + version "0.18.1" + resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" + integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== + +"@solana-program/loader-v3@^0.6.0": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" + integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== + +"@solana-program/stake@^0.9.0": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" + integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== + "@solana-program/system@^0.10.0": version "0.10.0" resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.10.0.tgz#f68ffb0a3e1c1d5e68ecfe111fbbe729f95a582a" integrity sha512-Go+LOEZmqmNlfr+Gjy5ZWAdY5HbYzk2RBewD9QinEU/bBSzpFfzqDRT55JjFRBGJUvMgf3C2vfXEGT4i8DSI4g== +"@solana-program/system@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" + integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== + "@solana/accounts@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-5.5.1.tgz#5a86ecf221dc9c4ad317f5816179a0616a0376fb" @@ -370,6 +489,18 @@ "@solana/rpc-spec" "5.5.1" "@solana/rpc-types" "5.5.1" +"@solana/accounts@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" + integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/addresses@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-5.5.1.tgz#7137c6af545724f19116f3631baa49b501e0253d" @@ -381,6 +512,17 @@ "@solana/errors" "5.5.1" "@solana/nominal-types" "5.5.1" +"@solana/addresses@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" + integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/assertions@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-5.5.1.tgz#4ffece2a6a30c951d0d9ff96bfc26f9f75c6e2be" @@ -388,6 +530,13 @@ dependencies: "@solana/errors" "5.5.1" +"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" + integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/buffer-layout@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" @@ -409,6 +558,13 @@ dependencies: "@solana/errors" "5.5.1" +"@solana/codecs-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" + integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/codecs-data-structures@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-5.5.1.tgz#4ebadc8feaa5cc30c95a485c5b34c5175245e4b2" @@ -418,7 +574,16 @@ "@solana/codecs-numbers" "5.5.1" "@solana/errors" "5.5.1" -"@solana/codecs-numbers@5.5.1": +"@solana/codecs-data-structures@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" + integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/codecs-numbers@5.5.1", "@solana/codecs-numbers@^5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-5.5.1.tgz#6ebc43250133ceb7836f1ac5780a7767e383efde" integrity sha512-rllMIZAHqmtvC0HO/dc/21wDuWaD0B8Ryv8o+YtsICQBuiL/0U4AGwH7Pi5GNFySYk0/crSuwfIqQFtmxNSPFw== @@ -426,6 +591,14 @@ "@solana/codecs-core" "5.5.1" "@solana/errors" "5.5.1" +"@solana/codecs-numbers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" + integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/codecs-numbers@^2.1.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" @@ -443,6 +616,15 @@ "@solana/codecs-numbers" "5.5.1" "@solana/errors" "5.5.1" +"@solana/codecs-strings@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" + integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/codecs@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-5.5.1.tgz#9e56d1caec5195ebaaee3e635ee6ab2c3a5a697b" @@ -454,6 +636,18 @@ "@solana/codecs-strings" "5.5.1" "@solana/options" "5.5.1" +"@solana/codecs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" + integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/options" "8.3.0" + "@solana/errors@2.3.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.3.0.tgz#4ac9380343dbeffb9dffbcb77c28d0e457c5fa31" @@ -470,16 +664,42 @@ chalk "5.6.2" commander "14.0.2" +"@solana/errors@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" + integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== + dependencies: + chalk "5.6.2" + commander "15.0.0" + "@solana/fast-stable-stringify@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-5.5.1.tgz#3c9507eb881f1eac7a22ce52c845175a7857b10d" integrity sha512-Ni7s2FN33zTzhTFgRjEbOVFO+UAmK8qi3Iu0/GRFYK4jN696OjKHnboSQH/EacQ+yGqS54bfxf409wU5dsLLCw== +"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" + integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== + +"@solana/fixed-points@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" + integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-5.5.1.tgz#b23437d15a20ac2faa50bb516911baab5f6c33bf" integrity sha512-tTHoJcEQq3gQx5qsdsDJ0LEJeFzwNpXD80xApW9o/PPoCNimI3SALkZl+zNW8VnxRrV3l3yYvfHWBKe/X3WG3w== +"@solana/functional@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" + integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== + "@solana/instruction-plans@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-5.5.1.tgz#df347bbbc77d9380a9486dfedbae5e858ef47ea6" @@ -492,6 +712,18 @@ "@solana/transaction-messages" "5.5.1" "@solana/transactions" "5.5.1" +"@solana/instruction-plans@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" + integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/instructions@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-5.5.1.tgz#864a9f2ebd4911379b56a9e01ecfa6d52bbf5173" @@ -500,6 +732,14 @@ "@solana/codecs-core" "5.5.1" "@solana/errors" "5.5.1" +"@solana/instructions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" + integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-5.5.1.tgz#62405c5b25f72add88bc3af63cca66739526f429" @@ -511,6 +751,18 @@ "@solana/errors" "5.5.1" "@solana/nominal-types" "5.5.1" +"@solana/keys@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" + integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/kit@^5.4.0": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-5.5.1.tgz#5baf7def33dcd5673fc86f8af9c7f326faa01959" @@ -539,11 +791,49 @@ "@solana/transaction-messages" "5.5.1" "@solana/transactions" "5.5.1" +"@solana/kit@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" + integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/plugin-core" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/program-client-core" "8.3.0" + "@solana/programs" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/sysvars" "8.3.0" + "@solana/transaction-confirmation" "8.3.0" + "@solana/transaction-introspection" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/nominal-types@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-5.5.1.tgz#61a06d88b463889add17656ac33734e074505af5" integrity sha512-I1ImR+kfrLFxN5z22UDiTWLdRZeKtU0J/pkWkO8qm/8WxveiwdIv4hooi8pb6JnlR4mSrWhq0pCIOxDYrL9GIQ== +"@solana/nominal-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" + integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== + "@solana/offchain-messages@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-5.5.1.tgz#0faae304d37a4bf5562b69400a67f5b900e5b877" @@ -558,6 +848,20 @@ "@solana/keys" "5.5.1" "@solana/nominal-types" "5.5.1" +"@solana/offchain-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" + integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/options@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/options/-/options-5.5.1.tgz#ee0f1e29bdb7595d3c57bb1932a439ea9055de26" @@ -569,11 +873,57 @@ "@solana/codecs-strings" "5.5.1" "@solana/errors" "5.5.1" +"@solana/options@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" + integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/plugin-core@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-5.5.1.tgz#cfd39b3a6231b662b1079f4b7561e5bf25f3f63b" integrity sha512-VUZl30lDQFJeiSyNfzU1EjYt2QZvoBFKEwjn1lilUJw7KgqD5z7mbV7diJhT+dLFs36i0OsjXvq5kSygn8YJ3A== +"@solana/plugin-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" + integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== + +"@solana/plugin-interfaces@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" + integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/program-client-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" + integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/programs@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-5.5.1.tgz#211ea9cb1811f441146539a1ad1f88622400fdbd" @@ -582,11 +932,24 @@ "@solana/addresses" "5.5.1" "@solana/errors" "5.5.1" +"@solana/programs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" + integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/promises@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-5.5.1.tgz#4dbdea765fe20fe81e92c47d72010e2ff4f35893" integrity sha512-T9lfuUYkGykJmppEcssNiCf6yiYQxJkhiLPP+pyAc2z84/7r3UVIb2tNJk4A9sucS66pzJnVHZKcZVGUUp6wzA== +"@solana/promises@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" + integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== + "@solana/rpc-api@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-5.5.1.tgz#1214e1ddc24793c101dc9a6dc2098c554a0fd327" @@ -604,16 +967,45 @@ "@solana/transaction-messages" "5.5.1" "@solana/transactions" "5.5.1" +"@solana/rpc-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" + integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/rpc-parsed-types@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-5.5.1.tgz#329ff94a5e3661c59167b58de4a55b390a9e24f8" integrity sha512-HEi3G2nZqGEsa3vX6U0FrXLaqnUCg4SKIUrOe8CezD+cSFbRTOn3rCLrUmJrhVyXlHoQVaRO9mmeovk31jWxJg== +"@solana/rpc-parsed-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" + integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== + "@solana/rpc-spec-types@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-5.5.1.tgz#6e9a9d8e6856273ee76bf23fe635a0aaac202e54" integrity sha512-6OFKtRpIEJQs8Jb2C4OO8KyP2h2Hy1MFhatMAoXA+0Ik8S3H+CicIuMZvGZ91mIu/tXicuOOsNNLu3HAkrakrw== +"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" + integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-5.5.1.tgz#3fe48f458c10df76da0f05436cba1117e955af79" @@ -622,6 +1014,15 @@ "@solana/errors" "5.5.1" "@solana/rpc-spec-types" "5.5.1" +"@solana/rpc-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" + integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/rpc-subscriptions-api@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-5.5.1.tgz#138d73745c7736ec3c78bd4ca9b3d621d16c4cce" @@ -635,6 +1036,19 @@ "@solana/transaction-messages" "5.5.1" "@solana/transactions" "5.5.1" +"@solana/rpc-subscriptions-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" + integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/rpc-subscriptions-channel-websocket@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-5.5.1.tgz#ebfa937d12c3629762a256e699342b3ce2d9c940" @@ -646,6 +1060,17 @@ "@solana/subscribable" "5.5.1" ws "^8.19.0" +"@solana/rpc-subscriptions-channel-websocket@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" + integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/subscribable" "8.3.0" + ws "^8.21.3" + "@solana/rpc-subscriptions-spec@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-5.5.1.tgz#dd7859dedcb5ca531e7c20901172c5ec1c2fa5b9" @@ -656,6 +1081,16 @@ "@solana/rpc-spec-types" "5.5.1" "@solana/subscribable" "5.5.1" +"@solana/rpc-subscriptions-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" + integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/rpc-subscriptions@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-5.5.1.tgz#a35e84b934a3a18efa1f815844f639223c4e7d88" @@ -673,6 +1108,23 @@ "@solana/rpc-types" "5.5.1" "@solana/subscribable" "5.5.1" +"@solana/rpc-subscriptions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" + integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions-api" "8.3.0" + "@solana/rpc-subscriptions-channel-websocket" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/rpc-transformers@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-5.5.1.tgz#632295520087b5935770af1da8329e97e3181bc3" @@ -684,6 +1136,17 @@ "@solana/rpc-spec-types" "5.5.1" "@solana/rpc-types" "5.5.1" +"@solana/rpc-transformers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" + integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/rpc-transport-http@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-5.5.1.tgz#27f3fbdef6dd99e2507ae2b996107960454c62a3" @@ -694,6 +1157,16 @@ "@solana/rpc-spec-types" "5.5.1" undici-types "^7.19.2" +"@solana/rpc-transport-http@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" + integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + undici-types "^8.10.2" + "@solana/rpc-types@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-5.5.1.tgz#ec16170f2470ece5de7154e920842125b7059cb5" @@ -706,6 +1179,19 @@ "@solana/errors" "5.5.1" "@solana/nominal-types" "5.5.1" +"@solana/rpc-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" + integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-5.5.1.tgz#933a20f5bfcf005e0b4082746d2f48203a3832ee" @@ -721,6 +1207,21 @@ "@solana/rpc-transport-http" "5.5.1" "@solana/rpc-types" "5.5.1" +"@solana/rpc@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" + integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-transport-http" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-5.5.1.tgz#21cdc65ed007e8173043af9db44d8adc2fb9c054" @@ -736,6 +1237,21 @@ "@solana/transaction-messages" "5.5.1" "@solana/transactions" "5.5.1" +"@solana/signers@8.3.0", "@solana/signers@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" + integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/subscribable@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-5.5.1.tgz#4321a5b8d1e9de7f94745708213f4b437e6ec70b" @@ -743,6 +1259,14 @@ dependencies: "@solana/errors" "5.5.1" +"@solana/subscribable@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" + integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/sysvars@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-5.5.1.tgz#804cbb993343d31e86a23b071a76710e3c236aca" @@ -753,6 +1277,18 @@ "@solana/errors" "5.5.1" "@solana/rpc-types" "5.5.1" +"@solana/sysvars@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" + integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-confirmation@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-5.5.1.tgz#7fd150846dac1cf177223331f0089f94516752ca" @@ -769,6 +1305,36 @@ "@solana/transaction-messages" "5.5.1" "@solana/transactions" "5.5.1" +"@solana/transaction-confirmation@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" + integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/transaction-introspection@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" + integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/transaction-messages@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-5.5.1.tgz#1fc965274ddae9fe39bf44cb6005469faf99fc02" @@ -784,6 +1350,21 @@ "@solana/nominal-types" "5.5.1" "@solana/rpc-types" "5.5.1" +"@solana/transaction-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" + integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transactions@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-5.5.1.tgz#78aee76dccc6486bd6f8be89bb4369b99d9bdba0" @@ -802,6 +1383,63 @@ "@solana/rpc-types" "5.5.1" "@solana/transaction-messages" "5.5.1" +"@solana/transactions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" + integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + +"@solana/web3.js@3.0.0-rc.3": + version "3.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" + integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== + dependencies: + "@noble/curves" "^1.4.2" + "@noble/hashes" "^1.4.0" + "@solana-program/address-lookup-table" "^0.14.0" + "@solana-program/compute-budget" "^0.18.0" + "@solana-program/loader-v3" "^0.6.0" + "@solana-program/stake" "^0.9.0" + "@solana-program/system" "^0.14.0" + "@solana/assertions" "^8.2.0" + "@solana/fast-stable-stringify" "^8.2.0" + "@solana/kit" "^8.2.0" + "@solana/rpc-spec-types" "^8.2.0" + "@solana/signers" "^8.2.0" + +"@solana/web3.js@^1.69.0": + version "1.99.0" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.99.0.tgz#864ce3fefe03b258c430e31e6672b422426821f7" + integrity sha512-QZYQ2T1z6xWisoyALPq25i/QZTsRlM02BABtAsfaQ1p8wX4SdTfxrKTRue/ZZqrhNVh5oL7T/DUFiTS9DRgxow== + dependencies: + "@babel/runtime" "^7.29.7" + "@noble/curves" "^1.9.7" + "@noble/hashes" "^1.8.0" + "@solana/buffer-layout" "^4.0.1" + "@solana/codecs-numbers" "^5.5.1" + agentkeepalive "^4.6.0" + bn.js "^5.2.5" + borsh "^0.7.0" + bs58 "^4.0.1" + buffer "6.0.3" + fast-stable-stringify "^1.0.0" + jayson "^4.3.0" + node-fetch "^2.7.0" + rpc-websockets "^9.0.2" + superstruct "^2.0.2" + "@solana/web3.js@^1.93.0", "@solana/web3.js@^1.98.0": version "1.98.4" resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" @@ -981,7 +1619,7 @@ acorn@^8.11.0, acorn@^8.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.17.0.tgz#1785adb84faf8d8add10369b93826fc2bd08f1fe" integrity sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg== -agentkeepalive@^4.5.0: +agentkeepalive@^4.5.0, agentkeepalive@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== @@ -1039,6 +1677,11 @@ bn.js@^4.0.0, bn.js@^4.11.9: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.3.tgz#2cc2c679188eb35b006f2d0d4710bed8437a769e" integrity sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g== +bn.js@^5.1.2, bn.js@^5.2.5: + version "5.2.5" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.5.tgz#e81ce41cf25e6f0cd1e05f20a9db8c18405e375f" + integrity sha512-Vq886eXykuP5E6HcKSSStP3bJgrE6In5WKxVUvJ8XGpWWYs2xZHWqUwzCtGgEtBcxyd57KBFDPFoUfNzdaHCNg== + bn.js@^5.2.0, bn.js@^5.2.1, bn.js@^5.2.2: version "5.2.3" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.3.tgz#16a9e409616b23fef3ccbedb8d42f13bff80295e" @@ -1072,6 +1715,11 @@ bs58@^6.0.0: dependencies: base-x "^5.0.0" +buffer-layout@^1.2.0, buffer-layout@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" + integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== + buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" @@ -1092,6 +1740,11 @@ cac@^6.7.14: resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== +camelcase@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + chai@^5.2.0: version "5.3.3" resolved "https://registry.yarnpkg.com/chai/-/chai-5.3.3.tgz#dd3da955e270916a4bd3f625f4b919996ada7e06" @@ -1118,6 +1771,11 @@ commander@14.0.2: resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e" integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== +commander@15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" + integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== + commander@^14.0.0: version "14.0.3" resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.3.tgz#425d79b48f9af82fcd9e4fc1ea8af6c5ec07bbc2" @@ -1133,6 +1791,13 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== +cross-fetch@^3.1.5: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" + integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== + dependencies: + node-fetch "^2.7.0" + debug@^4.4.1: version "4.4.3" resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" @@ -1229,6 +1894,11 @@ estree-walker@^3.0.3: dependencies: "@types/estree" "^1.0.0" +eventemitter3@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + eventemitter3@^5.0.1: version "5.0.4" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.4.tgz#a86d66170433712dde814707ac52b5271ceb1feb" @@ -1298,7 +1968,7 @@ isomorphic-ws@^4.0.1: resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== -jayson@^4.1.1: +jayson@^4.1.1, jayson@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.3.0.tgz#22eb8f3dcf37a5e893830e5451f32bde6d1bde4d" integrity sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ== @@ -1375,6 +2045,11 @@ node-gyp-build@^4.3.0: resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== +pako@^2.0.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.2.0.tgz#246b9d4c841a8d308e484c0d03786651b143e63a" + integrity sha512-zJq6RP/5q+TO2OpFV3FHzlPnFjmkb7Nc99a5SNjJE+uu/PkpChs+NIZSSzbBoD+6kjiISXjfYdwj1ZRQ81dz/w== + pathe@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.3.tgz#3ecbec55421685b70a9da872b2cff3e1cbed1716" @@ -1518,6 +2193,11 @@ strip-literal@^3.0.0: dependencies: js-tokens "^9.0.1" +superstruct@^0.15.4: + version "0.15.5" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" + integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== + superstruct@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-2.0.2.tgz#3f6d32fbdc11c357deff127d591a39b996300c54" @@ -1561,6 +2241,11 @@ tinyspy@^4.0.3: resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-4.0.4.tgz#d77a002fb53a88aa1429b419c1c92492e0c81f78" integrity sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q== +toml@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" + integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== + tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" @@ -1610,6 +2295,11 @@ undici-types@^7.19.2: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.27.2.tgz#fc2e1710c571b4f1822af7c7f32be52dee4098d6" integrity sha512-cH9f42mHuljpNuoS47sWDDWXVxWnJgYCzHVUlr3tn7+HVx0L6QSO+VG5qgzT4kXkR2K8ZsReaT5bupam6RNAEQ== +undici-types@^8.10.2: + version "8.10.2" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" + integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== + undici-types@~6.21.0: version "6.21.0" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" @@ -1717,6 +2407,11 @@ ws@^8.19.0, ws@^8.5.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.0.tgz#012e413fc07429945121b0c153158c4343086951" integrity sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g== +ws@^8.21.3: + version "8.21.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" + integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== + yn@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" diff --git a/rock-paper-scissor/anchor/package.json b/rock-paper-scissor/anchor/package.json index 4a8d6d6a..fc8323f4 100644 --- a/rock-paper-scissor/anchor/package.json +++ b/rock-paper-scissor/anchor/package.json @@ -4,24 +4,29 @@ "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", "build": "anchor keys sync && anchor build", "test:local": ". ../../scripts/local-env.sh && anchor test --skip-build --skip-deploy --skip-local-validator --provider.cluster devnet", + "test:magicsvm": "ts-mocha -p ./tests-magicsvm/tsconfig.json -t 120000 tests-magicsvm/**/*.ts", + "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture", "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh rock-paper-scissor", "test": "yarn test:local" }, "dependencies": { "@coral-xyz/anchor": "0.32.1", "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3", + "@magicblock-labs/magicsvm": "0.2.0", "tweetnacl": "^1.0.3" }, "devDependencies": { "@types/bn.js": "^5.1.0", "@types/chai": "^5.2.2", "@types/mocha": "^10.0.10", + "@types/node": "^22.15.0", "chai": "^5.2.0", "mocha": "^11.2.2", "prettier": "^3.5.3", "ts-mocha": "^11.1.0", "ts-node": "^10.9.2", - "typescript": "^5.8.3" + "typescript": "^5.8.3", + "@magicblock-labs/test-utils": "link:../../test-utils/ts" }, "license": "MIT", "packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447" diff --git a/rock-paper-scissor/anchor/programs/anchor-rock-paper-scissor/src/lib.rs b/rock-paper-scissor/anchor/programs/anchor-rock-paper-scissor/src/lib.rs index 83aa7755..39ee75ab 100644 --- a/rock-paper-scissor/anchor/programs/anchor-rock-paper-scissor/src/lib.rs +++ b/rock-paper-scissor/anchor/programs/anchor-rock-paper-scissor/src/lib.rs @@ -11,7 +11,7 @@ use ephemeral_rollups_sdk::consts::{EPHEMERAL_VAULT_ID, MAGIC_PROGRAM_ID, PERMIS use ephemeral_rollups_sdk::cpi::DelegateConfig; use ephemeral_rollups_sdk::ephem::MagicIntentBundleBuilder; -declare_id!("4AEU8Dhg5dRXyfPCdPUibbhQvQVrqs9ZGPvft6wyDBvE"); +declare_id!("AE1tfrvP4UYAVbMbCA8xNFTZBEuGC9qLxSxnLzkJdZW3"); pub const PLAYER_CHOICE_SEED: &[u8] = b"player_choice"; pub const GAME_SEED: &[u8] = b"game"; diff --git a/rock-paper-scissor/anchor/tests-magicsvm-rs/Cargo.lock b/rock-paper-scissor/anchor/tests-magicsvm-rs/Cargo.lock new file mode 100644 index 00000000..137318cb --- /dev/null +++ b/rock-paper-scissor/anchor/tests-magicsvm-rs/Cargo.lock @@ -0,0 +1,6619 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common 0.1.7", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures 0.2.17", +] + +[[package]] +name = "aes-gcm-siv" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae0784134ba9375416d469ec31e7c5f9fa94405049cf08c5ce5b4698be673e0d" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "polyval", + "subtle", + "zeroize", +] + +[[package]] +name = "agave-feature-set" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e724c6d41535d61eb4cba970716f6cfcef8d3f4d15750488f77a7630faab680" +dependencies = [ + "ahash 0.8.12", + "solana-epoch-schedule 3.2.0", + "solana-hash 4.5.0", + "solana-keypair", + "solana-pubkey 4.2.0", + "solana-sha256-hasher 3.1.0", + "solana-svm-feature-set", +] + +[[package]] +name = "agave-reserved-account-keys" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa474270f9cd8d71089979f1ad8e31c2eccde8b32d1ca03f33fe1123104d562" +dependencies = [ + "agave-feature-set", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "agave-transaction-view" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11af131e96e1a0df153db2d673a28293d171da78056104ec8e0d396e2bdf305b" +dependencies = [ + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-packet 4.2.0", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-svm-transaction", + "solana-transaction 4.1.6", +] + +[[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", + "getrandom 0.3.4", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "anchor-attribute-access-control" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a0ba6f4d5cff33a16a8cb30fd7419b71cf8b8b408998a341235cefe7e76cc1c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-account" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af875fe99d9dab01317a3bac577b05f3e52d5bd7d1b424de488ba51f3310feab" +dependencies = [ + "anchor-syn", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-constant" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345a11192cd11fdc8663e3194bbcd0c983c019cd9f21804d7853eeee5ee22653" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-error" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e5f6290f0f54e0e34b8efbb4dcd69dc2c46c655ada8198f35f403d2a88cf9c7" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-event" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0159e0fae5b1b508110b8753fda23ebce778f3bd8c146b8baabd12d2cebe4a7" +dependencies = [ + "anchor-syn", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-program" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51180111bea3660c0db345bfee34cf23f8d89cf2ac8dd5d8c7a044b3fb24d961" +dependencies = [ + "anchor-lang-idl", + "anchor-syn", + "anyhow", + "heck 0.3.3", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-accounts" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b802cd6561645117219ae6ed62cd322501bf1b5b7fa1a6fd8d911428c4c37192" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-serde" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa658e7d911c4290fe9ee953e75cf95f3c4db19c053f64071512867fa9f40394" +dependencies = [ + "anchor-syn", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-space" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69520cea030ee13d2978087a467bf32078012a5ce06b2746318c359887d481ed" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-lang" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bac4de7c9a9a69180798af701e22302cc0ebf2ef683b843706a1b7809454735" +dependencies = [ + "anchor-attribute-access-control", + "anchor-attribute-account", + "anchor-attribute-constant", + "anchor-attribute-error", + "anchor-attribute-event", + "anchor-attribute-program", + "anchor-derive-accounts", + "anchor-derive-serde", + "anchor-derive-space", + "base64 0.21.7", + "bincode", + "borsh 1.8.1", + "bytemuck", + "const-crypto", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-define-syscall 3.0.0", + "solana-feature-gate-interface 3.1.0", + "solana-instruction 3.4.1", + "solana-instructions-sysvar 3.0.1", + "solana-invoke", + "solana-loader-v3-interface 6.1.1", + "solana-msg 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-stake-interface 2.0.2", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", + "thiserror 1.0.69", +] + +[[package]] +name = "anchor-lang-idl" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47914b4290ae2bdf4ec203aa821e6eba86d7c78ef497918938038dcc6919f953" +dependencies = [ + "anchor-lang-idl-spec", + "anyhow", + "heck 0.3.3", + "serde", + "serde_json", + "sha2 0.10.9", +] + +[[package]] +name = "anchor-lang-idl-spec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bdf143115440fe621bdac3a29a1f7472e09f6cd82b2aa569429a0c13f103838" +dependencies = [ + "anyhow", + "serde", +] + +[[package]] +name = "anchor-rock-paper-scissor" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "ephemeral-rollups-sdk 0.16.2", +] + +[[package]] +name = "anchor-rock-paper-scissor-magicsvm-tests" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "anchor-rock-paper-scissor", + "ephemeral-rollups-sdk 0.16.2", + "magicsvm", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-native-token 3.0.0", + "solana-signer", + "solana-transaction 4.1.6", + "test-utils", +] + +[[package]] +name = "anchor-syn" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ef87b1d3ae59fbf265a9157a9082308af220b4ef5a64a360d8820dcf25b5a86" +dependencies = [ + "bs58", + "heck 0.3.3", + "proc-macro2", + "quote", + "serde", + "sha2 0.11.0", + "syn 2.0.119", + "thiserror 1.0.69", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anyhow" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" + +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-bn254" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-std 0.5.0", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", + "itertools 0.13.0", + "num-bigint 0.4.8", + "num-integer", + "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 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.8", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm 0.5.0", + "ark-ff-macros 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "educe", + "itertools 0.13.0", + "num-bigint 0.4.8", + "num-traits", + "paste", + "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-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive 0.4.2", + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint 0.4.8", +] + +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-serialize-derive 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "num-bigint 0.4.8", +] + +[[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-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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.8", +] + +[[package]] +name = "ark-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" +dependencies = [ + "num-traits", + "rand 0.8.8", +] + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" + +[[package]] +name = "ascii" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[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 = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[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.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" + +[[package]] +name = "bitvec" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddcec3d12c579d40898fe0a9a358a803c23e9c52ca3c425707f81c9436211837" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake3" +version = "1.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d9e454fc11f76977dc803893aff6304ed33d6a26efae8696573bea74baa27ae" +dependencies = [ + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "cpufeatures 0.3.1", + "digest 0.11.3", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "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-buffer" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "blst" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20659f9bbee16cbbd2f7393e40ab6309f5a98f76a2eb57a995ec508b72387fe" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "blstrs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a8a8ed6fefbeef4a8c7b460e4110e12c5e22a5b7cf32621aae6ad650c4dcf29" +dependencies = [ + "blst", + "byte-slice-cast", + "ff", + "group", + "pairing", + "rand_core 0.6.4", + "serde", + "subtle", +] + +[[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.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "553c5d846a6ba5150c65e3b1b8ec073bcf1abc20f9b7220de384a4443ea4e20a" +dependencies = [ + "borsh-derive 1.8.1", + "bytes", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831213f80d9423998dd696e2c5345aba6be7a0bd8cd19e31c5243e13df1cef89" +dependencies = [ + "borsh-derive-internal", + "borsh-schema-derive-internal", + "proc-macro-crate 0.1.5", + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12cdfe656708a01f89b451a7d36466e6fe6c414de0aa18fc54f864f6f9ca9f56" +dependencies = [ + "once_cell", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[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.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.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[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 = "byte-slice-cast" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" + +[[package]] +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bytemuck" +version = "1.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a1f896587b6f2c069c73d2f0913e2d590c3990285cd2f0b6aa02b786b4c679c" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" + +[[package]] +name = "cc" +version = "1.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3eb0f42d6c360dc3f8a821f6bf2fdea7f72bfd36b3076eb0e6d1e9e0752fff4" +dependencies = [ + "find-msvc-tools", + "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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" + +[[package]] +name = "cfg_eval" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45565fc9416b9896014f5732ac776f810ee53a66730c17e4020c3ec064a8f88f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common 0.1.7", + "inout", +] + +[[package]] +name = "cmov" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" + +[[package]] +name = "combine" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" +dependencies = [ + "ascii", + "byteorder", + "either", + "memchr", + "unreachable", +] + +[[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 = "const-crypto" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c06f1eb05f06cf2e380fdded278fbf056a38974299d77960555a311dcf91a52" +dependencies = [ + "keccak-const", + "sha2-const-stable", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const-oid" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" + +[[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 = "cpufeatures" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a7799fd6b852db0e61728dde9a204c423b44d689dbd432522543614b490e78" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "crypto-common" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "ct-codecs" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49fb0c6640b4507ebd99ff67677009e381ba5eee1d14df78de4a3d16eb123c39" + +[[package]] +name = "ctor" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1c888a2a4f677017373fb6c01e13e318dd9e78758445ed5eb985e355d3f8281" +dependencies = [ + "ctor-proc-macro", + "dtor", + "link-section", +] + +[[package]] +name = "ctor-proc-macro" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7ab264ea985f1bd27887d7b21ea2bb046728e05d11909ca138d700c494730db" + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "ctutils" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" +dependencies = [ + "cmov", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "rand_core 0.6.4", + "rustc_version", + "serde", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core 0.23.0", + "darling_macro 0.23.0", +] + +[[package]] +name = "darling" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed17f5901b6630b993ca003def43f2f8ef4014fc13b047b57aad617ff32bc2ec" +dependencies = [ + "darling_core 0.24.1", + "darling_macro 0.24.1", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.119", +] + +[[package]] +name = "darling_core" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6837e2cf7485aaae18f86181d2f0e9a7ed297a025e220aeabf63fdebd3a2ddff" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 3.0.5", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "darling_macro" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ac7135c3ef02b2f7833bbeb1be5ba7f966dcde8a87c6b87f65a778d71a02785" +dependencies = [ + "darling_core 0.24.1", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "dary_heap" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b1e3a325bc115f096c8b77bbf027a7c2592230e70be2d985be950d3d5e60ebe" + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid 0.9.6", + "zeroize", +] + +[[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", + "const-oid 0.9.6", + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "digest" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" +dependencies = [ + "block-buffer 0.12.1", + "const-oid 0.10.2", + "crypto-common 0.2.2", + "ctutils", +] + +[[package]] +name = "dtor" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30e4690622ab6700ced40fc370a3f07b7d111f0154bb6fb08f73b4c8834f75b6" +dependencies = [ + "dtor-proc-macro", +] + +[[package]] +name = "dtor-proc-macro" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c98b077c7463d01d22dde8a24378ddf1ca7263dc687cffbed38819ea6c21131" + +[[package]] +name = "eager" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abe71d579d1812060163dff96056261deb5bf6729b100fa2e36a68b9649ba3d3" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand_core 0.6.4", + "serde", + "sha2 0.10.9", + "subtle", + "zeroize", +] + +[[package]] +name = "ed25519-dalek-bip32" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b49a684b133c4980d7ee783936af771516011c8cd15f429dbda77245e282f03" +dependencies = [ + "derivation-path", + "ed25519-dalek", + "hmac", + "sha2 0.10.9", +] + +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "either" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "enum-iterator" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4549325971814bda7a44061bf3fe7e487d447cba01e4220a4b454d630d7a016" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685adfa4d6f3d765a26bc5dbc936577de9abf756c1feeb3089b01dd395034842" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "enum-ordinalize" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89dd01549b09589510cf0647475075d12071456586d70f5c75c98ae2a5537677" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a65863d15a4ce2888bd2f0f543cc963d3879c3a022c8ee43f6141d479a3ac815" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "ephemeral-rollups-sdk" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "838564736408ada011e9986c819b26cf0195bb2dd238e10be258731979213d75" +dependencies = [ + "base64ct", + "bincode", + "bytemuck", + "ephemeral-rollups-sdk-attribute-action 0.14.4", + "ephemeral-rollups-sdk-attribute-commit 0.14.4", + "ephemeral-rollups-sdk-attribute-delegate 0.14.4", + "ephemeral-rollups-sdk-attribute-ephemeral 0.14.4", + "ephemeral-rollups-sdk-attribute-ephemeral-accounts 0.14.4", + "five8 0.2.1", + "getrandom 0.2.17", + "magicblock-delegation-program-api", + "magicblock-magic-program-api 0.10.1", + "num-derive", + "num-traits", + "solana-account 3.4.0", + "solana-account-info 2.3.0", + "solana-account-info 3.1.1", + "solana-address 2.6.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program 2.3.0", + "solana-program 3.0.0", + "solana-program-error 2.2.2", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "spl-associated-token-account-interface", + "thiserror 1.0.69", +] + +[[package]] +name = "ephemeral-rollups-sdk" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a267fd1fe36f82ed50307b3757561ac59b1629a523fd179e2a66f4383c9afc0a" +dependencies = [ + "anchor-lang", + "base64ct", + "bincode", + "bytemuck", + "ephemeral-rollups-sdk-attribute-action 0.16.2", + "ephemeral-rollups-sdk-attribute-commit 0.16.2", + "ephemeral-rollups-sdk-attribute-delegate 0.16.2", + "ephemeral-rollups-sdk-attribute-ephemeral 0.16.2", + "ephemeral-rollups-sdk-attribute-ephemeral-accounts 0.16.2", + "ephemeral-vrf-sdk", + "ephemeral-vrf-sdk-vrf-macro", + "five8 0.2.1", + "getrandom 0.2.17", + "magicblock-delegation-program-api", + "magicblock-magic-program-api 0.10.1", + "num-derive", + "num-traits", + "solana-account-info 2.3.0", + "solana-address 2.6.1", + "solana-program 2.3.0", + "solana-program 3.0.0", + "solana-program-error 2.2.2", + "solana-system-interface 2.0.0", + "thiserror 1.0.69", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-action" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a29f33b94edcdfcf1b9b7a61aa0ac00e8efdc66f89c8b4b573f7ea965a42c60a" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-action" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3847b70bac1717bfd3108fe310195e658665b2d971bcb4eb2aa5aaca2c9392" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-commit" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da9ed3ea8b850013f6bf768e5f0f2e1f22f1861b46908764536795bf67bb5c67" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-commit" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b08e06840701468449f75916e922fd9694b787596efe66cd9b8dccf3ef0eb5e6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-delegate" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f0d8ab90b4ecc7ac802bbd2115681f9fd42bc5a9018be79ba7aff1fe971aa36" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-delegate" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc365676345c77eed3651debb63af9b282902100e5852a1822ee1385e3b285fe" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ea166c57ee55b329be4eae730561fe02aad5620a35b4d89439d8d0c9e07c3a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fce2590d04b16345a3117c0b66b6822a96a5ef3bc7b9add073cb3a797529d8df" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral-accounts" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa3efae094f5c288746d479fd605b67bcd56d29ddcf1238046ac07eeec130c45" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral-accounts" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f70d4bbf6761a71df97fbadcb4cceef630e2d6e37189f5e674ff34bb2210823" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-vrf-sdk" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77f3741c733907c10e0d0b32f9aa485c20a73e0b1e7e673a0ac38185fb2a6c11" +dependencies = [ + "anchor-lang", + "borsh 1.8.1", + "ephemeral-vrf-sdk-vrf-macro", + "solana-program 3.0.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "ephemeral-vrf-sdk-vrf-macro" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7b8b3fe3863a27d4c0f32da7b3cfeff179772fd4124d6c9fdcb9d4ab23cd602" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "feature-probe" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" + +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "bitvec", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "filetime" +version = "0.2.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c287a33c7f0a620c38e641e7f60827713987b3c0f26e8ddc9462cc69cf75759" +dependencies = [ + "cfg-if", + "libc", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d" + +[[package]] +name = "five8" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75b8549488b4715defcb0d8a8a1c1c76a80661b5fa106b4ca0e7fce59d7d875" +dependencies = [ + "five8_core 0.1.2", +] + +[[package]] +name = "five8" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23f76610e969fa1784327ded240f1e28a3fd9520c9cec93b636fcf62dd37f772" +dependencies = [ + "five8_core 1.0.0", +] + +[[package]] +name = "five8_const" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26dec3da8bc3ef08f2c04f61eab298c3ab334523e55f076354d6d6f613799a7b" +dependencies = [ + "five8_core 0.1.2", +] + +[[package]] +name = "five8_const" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a0f1728185f277989ca573a402716ae0beaaea3f76a8ff87ef9dd8fb19436c5" +dependencies = [ + "five8_core 1.0.0", +] + +[[package]] +name = "five8_core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2551bf44bc5f776c15044b9b94153a00198be06743e262afaaa61f11ac7523a5" + +[[package]] +name = "five8_core" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "059c31d7d36c43fe39d89e55711858b4da8be7eb6dabac23c7289b1a19489406" + +[[package]] +name = "flate2" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb" +dependencies = [ + "zlib-rs", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures-core" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" + +[[package]] +name = "futures-task" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" + +[[package]] +name = "futures-util" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" +dependencies = [ + "futures-core", + "futures-task", + "pin-project-lite", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[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 = "glob" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand 0.8.8", + "rand_core 0.6.4", + "rand_xorshift", + "subtle", +] + +[[package]] +name = "hash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" +dependencies = [ + "byteorder", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284" + +[[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 = "http" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hybrid-array" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27f864f10dfb56725ce5ce5472bc52252c8f93a4ab86327122cebf62c5f59a17" +dependencies = [ + "typenum", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "indexmap" +version = "2.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", +] + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "generic-array", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "js-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2 0.10.9", + "signature", +] + +[[package]] +name = "keccak" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" +dependencies = [ + "cpufeatures 0.2.17", +] + +[[package]] +name = "keccak-const" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d8d8ce877200136358e0bbff3a77965875db3af755a11e1fa6b1b3e2df13ea" + +[[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.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" + +[[package]] +name = "libflate" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "561a8da1a50e1428d3c51321dafeca849df992a5bb67720c386131234caba82e" +dependencies = [ + "adler32", + "crc32fast", + "dary_heap", + "libflate_lz77", + "no_std_io2", +] + +[[package]] +name = "libflate_lz77" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7a10e427698aef6eef269482776debfef63384d30f13aad39a1a95e0e098fd" +dependencies = [ + "hashbrown 0.16.1", + "no_std_io2", + "rle-decode-fast", +] + +[[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", + "libsecp256k1-core 0.2.2", + "libsecp256k1-gen-ecmult 0.2.1", + "libsecp256k1-gen-genmult 0.2.1", + "rand 0.7.3", + "serde", + "sha2 0.9.9", +] + +[[package]] +name = "libsecp256k1" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" +dependencies = [ + "arrayref", + "base64 0.22.1", + "digest 0.9.0", + "libsecp256k1-core 0.3.0", + "libsecp256k1-gen-ecmult 0.3.0", + "libsecp256k1-gen-genmult 0.3.0", + "rand 0.8.8", + "serde", + "sha2 0.9.9", +] + +[[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-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" +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 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" +dependencies = [ + "libsecp256k1-core 0.3.0", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" +dependencies = [ + "libsecp256k1-core 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" +dependencies = [ + "libsecp256k1-core 0.3.0", +] + +[[package]] +name = "libsodium-rs" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b8cd48c80d6c6fa5a4612d242941067219555baea82b0b49c92ea9d8156b59c" +dependencies = [ + "ct-codecs", + "ctor", + "libc", + "libsodium-sys-stable", + "pkg-config", + "thiserror 1.0.69", + "zeroize", +] + +[[package]] +name = "libsodium-sys-stable" +version = "1.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b04bf6da2c98b727af37ab62cb505f4d751b975b034a9b9ad491d333b0564e" +dependencies = [ + "cc", + "libc", + "libflate", + "minisign-verify", + "pkg-config", + "tar", + "ureq", + "vcpkg", + "zip", +] + +[[package]] +name = "light-poseidon" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c9a85a9752c549ceb7578064b4ed891179d20acd85f27318573b64d2d7ee7ee" +dependencies = [ + "ark-bn254 0.4.0", + "ark-ff 0.4.2", + "num-bigint 0.4.8", + "thiserror 1.0.69", +] + +[[package]] +name = "light-poseidon" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47a1ccadd0bb5a32c196da536fd72c59183de24a055f6bf0513bf845fefab862" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ff 0.5.0", + "num-bigint 0.4.8", + "thiserror 1.0.69", +] + +[[package]] +name = "link-section" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52437d47b0358721ec869cc7374b2a21f7b2237af9b439c0391341a1fbfbf1b" + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[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.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" + +[[package]] +name = "magicblock-account" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b5671bd1525eeab67f240455dffff31a4f6d27b067a3531f2d47c7d5af0c6e" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "thiserror 2.0.20", +] + +[[package]] +name = "magicblock-delegation-program-api" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea16e41e04319201919afca98dd4241b18549f2db0c68f58e4bc531537b5dab" +dependencies = [ + "bincode", + "borsh 0.10.4", + "borsh 1.8.1", + "bytemuck", + "const-crypto", + "libsodium-rs", + "num_enum", + "pinocchio 0.10.2", + "pinocchio-log", + "pinocchio-pubkey", + "pinocchio-system", + "rkyv", + "serde", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-loader-v3-interface 6.1.1", + "solana-program 3.0.0", + "solana-pubkey 2.4.0", + "solana-sdk", + "solana-sdk-ids 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-system-interface 2.0.0", + "static_assertions", + "strum", + "thiserror 2.0.20", +] + +[[package]] +name = "magicblock-litesvm" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82cfc1c7f4348c300f58ddd5ae8613e9b1d08564a7956af43822de59cb76d039" +dependencies = [ + "agave-feature-set", + "agave-reserved-account-keys", + "ansi_term", + "indexmap", + "itertools 0.15.0", + "log", + "magicblock-account", + "solana-account 4.3.2", + "solana-address 2.6.1", + "solana-address-lookup-table-interface 3.1.0", + "solana-builtins", + "solana-clock 3.1.1", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-feature-gate-interface 4.0.0", + "solana-fee", + "solana-fee-calculator 3.2.2", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-instructions-sysvar 4.0.0", + "solana-keypair", + "solana-last-restart-slot 3.1.0", + "solana-loader-v3-interface 8.0.1", + "solana-loader-v4-interface 3.1.0", + "solana-message 4.4.1", + "solana-native-token 3.0.0", + "solana-nonce 3.2.1", + "solana-nonce-account", + "solana-precompile-error", + "solana-program-error 3.0.1", + "solana-program-runtime", + "solana-rent 4.3.0", + "solana-runtime-transaction", + "solana-sdk-ids 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-signature 3.4.1", + "solana-signer", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stake-history", + "solana-svm-callback", + "solana-svm-log-collector", + "solana-svm-timings", + "solana-svm-transaction", + "solana-syscalls", + "solana-system-interface 3.2.0", + "solana-system-program", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "magicblock-magic-program-api" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291f7a68f6cc622741a3fae513bd71640911abefd1fae2b2602b934515ed4b95" +dependencies = [ + "bincode", + "const-crypto", + "serde", + "solana-program 2.3.0", + "solana-signature 2.3.0", +] + +[[package]] +name = "magicblock-magic-program-api" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dc8fba0307c90b91b70c9ed06d4242d6c4159f331b2f05bf8f875c2a94e0e98" +dependencies = [ + "bincode", + "const-crypto", + "serde", + "solana-program 3.0.0", + "solana-signature 3.4.1", +] + +[[package]] +name = "magicsvm" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e3effa3b8d28f3e0a14d1b72afcf65c2bec2331882a19065ec4424cd5c7ee37" +dependencies = [ + "bincode", + "borsh 1.8.1", + "ephemeral-rollups-sdk 0.14.4", + "magicblock-account", + "magicblock-delegation-program-api", + "magicblock-litesvm", + "magicblock-magic-program-api 0.8.8", + "solana-account 4.3.2", + "solana-address 2.6.1", + "solana-clock 3.1.1", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-program-runtime", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-signer", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[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 = "minisign-verify" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22f9645cb765ea72b8111f36c522475d2daa0d22c957a9826437e97534bc4e9e" + +[[package]] +name = "no_std_io2" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418abd1b6d34fbf6cae440dc874771b0525a604428704c76e48b29a5e67b8003" +dependencies = [ + "memchr", +] + +[[package]] +name = "num" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" +dependencies = [ + "num-bigint 0.2.6", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +dependencies = [ + "autocfg", + "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.119", +] + +[[package]] +name = "num-integer" +version = "0.1.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92800bd69a1eac91786bcfe9da64a897eb72911b8dc3095decbd07429e8048b" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +dependencies = [ + "autocfg", + "num-bigint 0.2.6", + "num-integer", + "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_cpus" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group", +] + +[[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 = "pastey" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4" + +[[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 = "percentage" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd23b938276f14057220b707937bcb42fa76dda7560e57a2da30cb52d557937" +dependencies = [ + "num", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pinocchio" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8afe4f39c0e25cc471b35b89963312791a5162d45a86578cbeaad9e5e7d1b3b" + +[[package]] +name = "pinocchio" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06810dac15a4ef83d3dabdb4f2f22fb39c9adff669cd2781da4f716510a647c" +dependencies = [ + "solana-account-view", + "solana-address 2.6.1", + "solana-define-syscall 4.0.1", + "solana-instruction-view", + "solana-program-error 3.0.1", +] + +[[package]] +name = "pinocchio-log" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd11022408f312e6179ece321c1f7dc0d1b2aa7765fddd39b2a7378d65a899e8" +dependencies = [ + "pinocchio-log-macro", +] + +[[package]] +name = "pinocchio-log-macro" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69fb52edb3c5736b044cc462b0957b9767d0f574d138f4e2761438c498a4b467" +dependencies = [ + "quote", + "regex", + "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 0.1.4", + "pinocchio 0.9.3", + "sha2-const-stable", +] + +[[package]] +name = "pinocchio-system" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24044a0815753862b558e179e78f03f7344cb755de48617a09d7d23b50883b6c" +dependencies = [ + "pinocchio 0.10.2", + "solana-address 2.6.1", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "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.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[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.119", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +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 = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e058c7de0b26af77780c769414d6257830bb240f3c38477dbc2c16e5f54d6d4c" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", +] + +[[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_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", +] + +[[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_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] + +[[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_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + +[[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.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "rend" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "rkyv" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2297bf9c81a3f0dc96bc9521370b88f054168c29826a75e89c55ff196e7ed6a1" +dependencies = [ + "bitvec", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d7b42d4b8d06048d3ac8db0eb31bcb942cbeb709f0b5f2b2ebde398d3038f5" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rle-decode-fast" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" + +[[package]] +name = "rustc-demangle" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b74b56ffa8bb2830709a538c2cbcae9aa062db0d2a42563bfb09bdaae44020eb" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-big-array" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" +dependencies = [ + "serde", +] + +[[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.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "serde_json" +version = "1.0.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_with" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "935177bb8c0cd8ca1a4e6d1a2ac8988bea69cab4f9d3a31311e012ad27868ea4" +dependencies = [ + "serde_core", + "serde_with_macros", +] + +[[package]] +name = "serde_with_macros" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d607aa01a3cb0ad757d6fd216136910db3c97b102fe686585689615a02dbcdc" +dependencies = [ + "darling 0.24.1", + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[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 0.2.17", + "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 0.2.17", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.1", + "digest 0.11.3", +] + +[[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.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77fd7028345d415a4034cf8777cd4f8ab1851274233b45f84e3d955502d93874" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "simd-adler32" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba467056f1b547ed52077911161fc86985becbc60e8e1857c8a144dab0def891" + +[[package]] +name = "solana-account" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f949fe4edaeaea78c844023bfc1c898e0b1f5a100f8a8d2d0f85d0a7b090258" +dependencies = [ + "solana-account-info 2.3.0", + "solana-clock 2.2.3", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-account" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efc0ed36decb689413b9da5d57f2be49eea5bebb3cf7897015167b0c4336e731" +dependencies = [ + "bincode", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 3.1.1", +] + +[[package]] +name = "solana-account" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26788ba0d7eb5b250edda3e1d393739bafd5daf94882f2261d14f5ab0d6a25e0" +dependencies = [ + "bincode", + "qualifier_attr", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 4.1.0", +] + +[[package]] +name = "solana-account-info" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8f5152a288ef1912300fc6efa6c2d1f9bb55d9398eb6c72326360b8063987da" +dependencies = [ + "bincode", + "serde", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-account-info" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9cf16495d9eb53e3d04e72366a33bb1c20c24e78c171d8b8f5978357b63ae95" +dependencies = [ + "bincode", + "serde_core", + "solana-address 2.6.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.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.6.1", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-address" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2ecac8e1b7f74c2baa9e774c42817e3e75b20787134b76cc4d45e8a604488f5" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-address" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c93e262f671bf402e1040e4a7e40b05d81da5956c7681948c975a0997517bb" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8 1.0.0", + "five8_const 1.0.0", + "rand 0.9.5", + "serde", + "serde_derive", + "sha2-const-stable", + "solana-atomic-u64 3.0.1", + "solana-define-syscall 5.2.0", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.1.0", + "wincode", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1673f67efe870b64a65cb39e6194be5b26527691ce5922909939961a6e6b395" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-slot-hashes 2.2.1", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115b4f773acc4f3f3cb986b0d335e9845c0368c82b0940410935bc11ae065578" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", +] + +[[package]] +name = "solana-atomic-u64" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52e52720efe60465b052b9e7445a01c17550666beec855cce66f44766697bc2" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "solana-atomic-u64" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "085db4906d89324cef2a30840d59eaecf3d4231c560ec7c9f6614a93c652f501" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "solana-big-mod-exp" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75db7f2bbac3e62cfd139065d15bcda9e2428883ba61fc8d27ccb251081e7567" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-big-mod-exp" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30c80fb6d791b3925d5ec4bf23a7c169ef5090c013059ec3ed7d0b2c04efa085" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "solana-define-syscall 3.0.0", +] + +[[package]] +name = "solana-bincode" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19a3787b8cf9c9fe3dd360800e8b70982b9e5a8af9e11c354b6665dd4a003adc" +dependencies = [ + "bincode", + "serde", + "solana-instruction 2.3.3", +] + +[[package]] +name = "solana-bincode" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "278a1a5bad62cd9da89ac8d4b7ec444e83caa8ae96aa656dfc27684b28d49a5d" +dependencies = [ + "bincode", + "serde_core", + "solana-instruction-error", +] + +[[package]] +name = "solana-blake3-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a0801e25a1b31a14494fc80882a036be0ffd290efc4c2d640bfcca120a4672" +dependencies = [ + "blake3", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-blake3-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7116e1d942a2432ca3f514625104757ab8a56233787e95144c93950029e31176" +dependencies = [ + "blake3", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-bls-signatures" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "654ea8d31bbb4b0b9c28f9c545edb32691de27d4e2fc0e252c1ff47da50c5f2a" +dependencies = [ + "base64 0.22.1", + "blst", + "blstrs", + "cfg_eval", + "ff", + "group", + "pairing", + "rand 0.8.8", + "serde", + "serde_json", + "serde_with", + "thiserror 2.0.20", + "wincode", + "zeroize", +] + +[[package]] +name = "solana-bls12-381-syscall" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94e8256fda0542709fd1320a96d81c3c66e10ac5f680cca9b991d7d3b0e3fe86" +dependencies = [ + "blst", + "blstrs", + "bytemuck", + "bytemuck_derive", + "pairing", +] + +[[package]] +name = "solana-bn254" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62ff13a8867fcc7b0f1114764e1bf6191b4551dcaf93729ddc676cd4ec6abc9f" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "bytemuck", + "solana-define-syscall 5.2.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-borsh" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718333bcd0a1a7aed6655aa66bef8d7fb047944922b2d3a18f49cbc13e73d004" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", +] + +[[package]] +name = "solana-borsh" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c04abbae16f57178a163125805637b8a076175bb5c0002fb04f4792bea901cf7" +dependencies = [ + "borsh 1.8.1", +] + +[[package]] +name = "solana-bpf-loader-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabcc3a5785886f026b438771bf6b221b0d4877f6089af79d432c7fe877a6cd4" +dependencies = [ + "bincode", + "qualifier_attr", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-clock 3.1.1", + "solana-instruction 3.4.1", + "solana-loader-v3-interface 7.0.0", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-type-overrides", + "solana-syscalls", + "solana-system-interface 3.2.0", + "solana-transaction-context", +] + +[[package]] +name = "solana-builtins" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ab49c6f8a77bff54e811e9674747fd435e218dcbe71120039a865515151998c" +dependencies = [ + "agave-feature-set", + "solana-bpf-loader-program", + "solana-compute-budget-program", + "solana-hash 4.5.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-program", + "solana-vote-program", + "solana-zk-elgamal-proof-program", + "solana-zk-token-proof-program", +] + +[[package]] +name = "solana-builtins-default-costs" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76792b1ecab1c5f127f16062926850b52c4bb51ac1a93d220635fb13221d3503" +dependencies = [ + "agave-feature-set", + "ahash 0.8.12", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-clock" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8584296123df8fe229b95e2ebfd37ae637fe9db9b7d4dd677ac5a78e80dbfce" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-clock" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0acdace90d96e2c9e70d681465b4fe888b6bcf27c354ae9774e9f8a3b72923d" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-compute-budget" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e200042fd149d565521f7b31e082c0db0e022e9860c7e013130f812984ae846f" +dependencies = [ + "solana-fee-structure", + "solana-program-runtime", +] + +[[package]] +name = "solana-compute-budget-instruction" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a651fc5d082fd88090a7336ea85599b1ffcf6503dbcff575ae1bb2fb1cec238" +dependencies = [ + "agave-feature-set", + "solana-borsh 3.0.2", + "solana-builtins-default-costs", + "solana-compute-budget", + "solana-compute-budget-interface", + "solana-instruction 3.4.1", + "solana-packet 4.2.0", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-svm-transaction", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-compute-budget-interface" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8292c436b269ad23cecc8b24f7da3ab07ca111661e25e00ce0e1d22771951ab9" +dependencies = [ + "borsh 1.8.1", + "solana-instruction 3.4.1", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-compute-budget-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e314aeb4a86507ba77fb2d6ce9f5836af6aeaaedd4c5314e310ca72f73afe367" +dependencies = [ + "solana-program-runtime", +] + +[[package]] +name = "solana-cpi" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dc71126edddc2ba014622fc32d0f5e2e78ec6c5a1e0eb511b85618c09e9ea11" +dependencies = [ + "solana-account-info 2.3.0", + "solana-define-syscall 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-stable-layout 2.2.1", +] + +[[package]] +name = "solana-cpi" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dea26709d867aada85d0d3617db0944215c8bb28d3745b912de7db13a23280c" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 4.0.1", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-stable-layout 3.0.1", +] + +[[package]] +name = "solana-curve25519" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14b4d2a4bf0d0b0a86c22111917e86e8bd39a7b31420fb2c7d73eb83761fc7af" +dependencies = [ + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "solana-define-syscall 5.2.0", + "subtle", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-decode-error" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c781686a18db2f942e70913f7ca15dc120ec38dcab42ff7557db2c70c625a35" +dependencies = [ + "num-traits", +] + +[[package]] +name = "solana-define-syscall" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ae3e2abcf541c8122eafe9a625d4d194b4023c20adde1e251f94e056bb1aee2" + +[[package]] +name = "solana-define-syscall" +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-define-syscall" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf8209ece2bd9f1450e672858ffc0e5c8c786ff6916d2a862b126dd0128f380f" + +[[package]] +name = "solana-derivation-path" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff71743072690fdbdfcdc37700ae1cb77485aaad49019473a81aee099b1e0b8c" +dependencies = [ + "derivation-path", + "qstring", + "uriparse", +] + +[[package]] +name = "solana-epoch-info" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e093c84f6ece620a6b10cd036574b0cd51944231ab32d81f80f76d54aba833e6" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-epoch-rewards" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b575d3dd323b9ea10bb6fe89bf6bf93e249b215ba8ed7f68f1a3633f384db7" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 2.3.0", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-rewards" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf7eb4986b0b1d6f562b21f75a836f1a6df6e00c275efcef50aab5c144dc59e" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-epoch-rewards-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee8beac9bff4db9225e57d532d169b0be5e447f1e6601a2f50f27a01bf5518f" +dependencies = [ + "siphasher", + "solana-address 2.6.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-epoch-schedule" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fce071fbddecc55d727b1d7ed16a629afe4f6e4c217bc8d00af3b785f6f67ed" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-schedule" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8116e6ffa6002237d5ab5edcbda17f9ba66b6742c45a89c9fb40a94dbacd4c1d" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-program-error 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-epoch-stake" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "027e6d0b9e7daac5b2ac7c3f9ca1b727861121d9ef05084cf435ff736051e7c2" +dependencies = [ + "solana-define-syscall 5.2.0", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-example-mocks" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84461d56cbb8bb8d539347151e0525b53910102e4bced875d49d5139708e39d3" +dependencies = [ + "serde", + "serde_derive", + "solana-address-lookup-table-interface 2.2.2", + "solana-clock 2.2.3", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-keccak-hasher 2.2.1", + "solana-message 2.4.0", + "solana-nonce 2.2.1", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-example-mocks" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978855d164845c1b0235d4b4d101cadc55373fffaf0b5b6cfa2194d25b2ed658" +dependencies = [ + "serde", + "serde_derive", + "solana-address-lookup-table-interface 3.1.0", + "solana-clock 3.1.1", + "solana-hash 3.1.0", + "solana-instruction 3.4.1", + "solana-keccak-hasher 3.1.0", + "solana-message 3.1.0", + "solana-nonce 3.2.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 2.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43f5c5382b449e8e4e3016fb05e418c53d57782d8b5c30aa372fc265654b956d" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 2.2.1", + "solana-account-info 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75ca9b5cbb6f500f7fd73db5bd95640f71a83f04d6121a0e59a43b202dca2731" +dependencies = [ + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd7545e02f91da1d6996f32b18f7796aa01e0682f8f3a7434b82cd1a10448add" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-fee" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c32df41c2c93a567a1612a973faddeaca093276677c157ef9cb60a378289fc69" +dependencies = [ + "agave-feature-set", + "solana-fee-structure", + "solana-svm-transaction", +] + +[[package]] +name = "solana-fee-calculator" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89bc408da0fb3812bc3008189d148b4d3e08252c79ad810b245482a3f70cd8d" +dependencies = [ + "log", + "serde", + "serde_derive", +] + +[[package]] +name = "solana-fee-calculator" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef67f01cc6a0c72e99a08d0d484683f995de4c80e9568728fa77d1537f9b7e09" +dependencies = [ + "log", + "serde", + "serde_derive", + "wincode", +] + +[[package]] +name = "solana-fee-structure" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2abdb1223eea8ec64136f39cb1ffcf257e00f915c957c35c0dd9e3f4e700b0" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-get-sysvar" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef3bc859fc036ed490146793557386cbfae614ebba4adc704c37d94350824ed4" +dependencies = [ + "solana-address 2.6.1", + "solana-define-syscall 5.2.0", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-hard-forks" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb50b2df7a36a2af58ce24bb0229622ac845dcc196e8c23b3ea4a29dd6bee09" + +[[package]] +name = "solana-hash" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b96e9f0300fa287b545613f007dfe20043d7812bee255f418c1eb649c93b63" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "five8 0.2.1", + "js-sys", + "serde", + "serde_derive", + "solana-atomic-u64 2.2.1", + "solana-sanitize 2.2.1", + "wasm-bindgen", +] + +[[package]] +name = "solana-hash" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "337c246447142f660f778cf6cb582beba8e28deb05b3b24bfb9ffd7c562e5f41" +dependencies = [ + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-hash" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f4c847893a2ea50b4ae3ca723b124e07cd0544fecea3598f785168f9b78333f" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "five8 1.0.0", + "serde", + "serde_derive", + "solana-atomic-u64 3.0.1", + "solana-sanitize 3.0.1", + "wincode", +] + +[[package]] +name = "solana-hash-512" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce934b02bab639341f2fd62c3e7e3c39dcceb47f0196b7630ed1f82ecb704bd" + +[[package]] +name = "solana-inflation" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf186550ea7438e2708bd0c233f01fe9c3fa45b9b607ff993b650ce60af102e" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-instruction" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab5682934bd1f65f8d2c16f21cb532526fcc1a09f796e2cacdb091eee5774ad" +dependencies = [ + "bincode", + "borsh 1.8.1", + "getrandom 0.2.17", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "serde_json", + "solana-define-syscall 2.3.0", + "solana-pubkey 2.4.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-instruction" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3957ca1d31107efd9a6bb88b25c348ca5e3b4b6683e3d08adb86d3d17aa01f1" +dependencies = [ + "bincode", + "borsh 1.8.1", + "serde", + "serde_derive", + "solana-define-syscall 5.2.0", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "wincode", +] + +[[package]] +name = "solana-instruction-error" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b7d34343838343a3755b7dfb1e438d94c6db2263b519cfe3c2257af932b6e93" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-program-error 3.0.1", +] + +[[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.6.1", + "solana-define-syscall 4.0.1", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0e85a6fad5c2d0c4f5b91d34b8ca47118fc593af706e523cdbedf846a954f57" +dependencies = [ + "bitflags", + "solana-account-info 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serialize-utils 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e0732294560e88ecdb2bbc656e67383e9f88c78ec09469cef172f0d28cd1bcd" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-serialize-utils 3.1.2", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e38363a181313d607f7a118df2b401bb27b477a0104b09283cbf504f5f0f00cc" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-serialize-utils 3.1.2", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-invoke" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4065031f5c7dd29ef5f5003c1a353011eeabbafa6c5a5033da0cedbfca824b94" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 3.0.0", + "solana-instruction 3.4.1", + "solana-program-entrypoint 3.1.1", + "solana-stable-layout 3.0.1", +] + +[[package]] +name = "solana-keccak-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7aeb957fbd42a451b99235df4942d96db7ef678e8d5061ef34c9b34cae12f79" +dependencies = [ + "sha3", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-keccak-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed1c0d16d6fdeba12291a1f068cdf0d479d9bff1141bf44afd7aa9d485f65ef8" +dependencies = [ + "sha3", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-keypair" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "263d614c12aa267a3278703175fd6440552ca61bc960b5a02a4482720c53438b" +dependencies = [ + "ed25519-dalek", + "ed25519-dalek-bip32", + "five8 1.0.0", + "five8_core 1.0.0", + "rand 0.9.5", + "solana-address 2.6.1", + "solana-derivation-path", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-last-restart-slot" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a6360ac2fdc72e7463565cd256eedcf10d7ef0c28a1249d261ec168c1b55cdd" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-last-restart-slot" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22474b83d3c7c318e1c3a725784fc2d1d03b728e36369e58ce48769a61ed85e" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-loader-v2-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8ab08006dad78ae7cd30df8eea0539e207d08d91eaefb3e1d49a446e1c49654" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f7162a05b8b0773156b443bccd674ea78bb9aa406325b467ea78c06c99a63a2" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e0538d4dbc9022e01616f1c58f2db98ece739c5d5ed4a2ef8737a953e76a2d4" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68029ab11d9c891d4ce23ada75745e40f983c5674af366f447b672569634231b" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "362b468fbde4c20521b9ff5ef743bc0d9b410455a5a92a8b29fd46954e89345f" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", + "wincode", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "706a777242f1f39a83e2a96a2a6cb034cb41169c6ecbee2cf09cb873d9659e7e" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c948b33ff81fa89699911b207059e493defdba9647eaf18f23abdf3674e0fb" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-message" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1796aabce376ff74bf89b78d268fa5e683d7d7a96a0a4e4813ec34de49d5314b" +dependencies = [ + "bincode", + "blake3", + "lazy_static", + "serde", + "serde_derive", + "solana-bincode 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", + "solana-transaction-error 2.2.1", + "wasm-bindgen", +] + +[[package]] +name = "solana-message" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0448b1fd891c5f46491e5dc7d9986385ba3c852c340db2911dd29faa01d2b08d" +dependencies = [ + "bincode", + "blake3", + "lazy_static", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-message" +version = "4.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e29e655f222a3a64145fedceacdca3e696ba7aded1dbd5391aa09d5fbfba53c" +dependencies = [ + "blake3", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-msg" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36a1a14399afaabc2781a1db09cb14ee4cc4ee5c7a5a3cfcc601811379a8092" +dependencies = [ + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-msg" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726b7cbbc6be6f1c6f29146ac824343b9415133eee8cce156452ad1db93f8008" +dependencies = [ + "solana-define-syscall 5.2.0", +] + +[[package]] +name = "solana-native-token" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61515b880c36974053dd499c0510066783f0cc6ac17def0c7ef2a244874cf4a9" + +[[package]] +name = "solana-native-token" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae8dd4c280dca9d046139eb5b7a5ac9ad10403fbd64964c7d7571214950d758f" + +[[package]] +name = "solana-nonce" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703e22eb185537e06204a5bd9d509b948f0066f2d1d814a6f475dafb3ddf1325" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-pubkey 2.4.0", + "solana-sha256-hasher 2.3.0", +] + +[[package]] +name = "solana-nonce" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4172d5b33a0a38fcdb2af8f84406570dd51567267da96c28ad0f31fc11621c0" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator 3.2.2", + "solana-hash 4.5.0", + "solana-pubkey 4.2.0", + "solana-sha256-hasher 3.1.0", + "wincode", +] + +[[package]] +name = "solana-nonce-account" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b81bf7e2aa8c443724051507c1007d0b6d9c34b70925d3232dc78f5ca485209e" +dependencies = [ + "solana-account 4.3.2", + "solana-hash 4.5.0", + "solana-nonce 3.2.1", + "solana-sdk-ids 3.1.0", + "wincode", +] + +[[package]] +name = "solana-offchain-message" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e2a1141a673f72a05cf406b99e4b2b8a457792b7c01afa07b3f00d4e2de393" +dependencies = [ + "num_enum", + "solana-hash 3.1.0", + "solana-packet 3.0.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.1.0", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-packet" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edf2f25743c95229ac0fdc32f8f5893ef738dbf332c669e9861d33ddb0f469d" +dependencies = [ + "bitflags", +] + +[[package]] +name = "solana-packet" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a2a582d7863548f047f49aa3745c076cfa9e1364baa080ef0c1210f0e4ebda" +dependencies = [ + "bitflags", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-poseidon" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "737b8ab25bf4cc8e618f80f1fe40709b2ace708bc764a36b8a4c81eea8c07034" +dependencies = [ + "ark-bn254 0.4.0", + "ark-bn254 0.5.0", + "light-poseidon 0.2.0", + "light-poseidon 0.4.0", + "solana-define-syscall 4.0.1", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-precompile-error" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cafcd950de74c6c39d55dc8ca108bbb007799842ab370ef26cf45a34453c31e1" +dependencies = [ + "num-traits", +] + +[[package]] +name = "solana-presigner" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f704eaf825be3180832445b9e4983b875340696e8e7239bf2d535b0f86c14a2" +dependencies = [ + "solana-pubkey 3.0.0", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-program" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98eca145bd3545e2fbb07166e895370576e47a00a7d824e325390d33bf467210" +dependencies = [ + "bincode", + "blake3", + "borsh 0.10.4", + "borsh 1.8.1", + "bs58", + "bytemuck", + "console_error_panic_hook", + "console_log", + "getrandom 0.2.17", + "lazy_static", + "log", + "memoffset", + "num-bigint 0.4.8", + "num-derive", + "num-traits", + "rand 0.8.8", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 2.3.0", + "solana-address-lookup-table-interface 2.2.2", + "solana-atomic-u64 2.2.1", + "solana-big-mod-exp 2.2.1", + "solana-bincode 2.2.1", + "solana-blake3-hasher 2.2.1", + "solana-borsh 2.2.1", + "solana-clock 2.2.3", + "solana-cpi 2.2.1", + "solana-decode-error", + "solana-define-syscall 2.3.0", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", + "solana-example-mocks 2.2.1", + "solana-feature-gate-interface 2.2.2", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-instructions-sysvar 2.2.2", + "solana-keccak-hasher 2.2.1", + "solana-last-restart-slot 2.2.1", + "solana-loader-v2-interface", + "solana-loader-v3-interface 5.0.0", + "solana-loader-v4-interface 2.2.1", + "solana-message 2.4.0", + "solana-msg 2.2.1", + "solana-native-token 2.3.0", + "solana-nonce 2.2.1", + "solana-program-entrypoint 2.3.0", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-program-option 2.2.1", + "solana-program-pack 2.2.1", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-secp256k1-recover 2.2.1", + "solana-serde-varint 2.2.2", + "solana-serialize-utils 2.2.1", + "solana-sha256-hasher 2.3.0", + "solana-short-vec 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stable-layout 2.2.1", + "solana-stake-interface 1.2.1", + "solana-system-interface 1.0.0", + "solana-sysvar 2.3.0", + "solana-sysvar-id 2.2.1", + "solana-vote-interface 2.2.6", + "thiserror 2.0.20", + "wasm-bindgen", +] + +[[package]] +name = "solana-program" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91b12305dd81045d705f427acd0435a2e46444b65367d7179d7bdcfc3bc5f5eb" +dependencies = [ + "memoffset", + "solana-account-info 3.1.1", + "solana-big-mod-exp 3.0.0", + "solana-blake3-hasher 3.1.0", + "solana-borsh 3.0.2", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-define-syscall 3.0.0", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-epoch-stake", + "solana-example-mocks 3.0.0", + "solana-fee-calculator 3.2.2", + "solana-hash 3.1.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-instructions-sysvar 3.0.1", + "solana-keccak-hasher 3.1.0", + "solana-last-restart-slot 3.1.0", + "solana-msg 3.1.0", + "solana-native-token 3.0.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.3.0", + "solana-serde-varint 3.0.1", + "solana-serialize-utils 3.1.2", + "solana-sha256-hasher 3.1.0", + "solana-short-vec 3.2.2", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stable-layout 3.0.1", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-program-entrypoint" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32ce041b1a0ed275290a5008ee1a4a6c48f5054c8a3d78d313c08958a06aedbd" +dependencies = [ + "solana-account-info 2.3.0", + "solana-msg 2.2.1", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-program-entrypoint" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c9b0a1ff494e05f503a08b3d51150b73aa639544631e510279d6375f290997" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 4.0.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-program-error" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ee2e0217d642e2ea4bee237f37bd61bb02aec60da3647c48ff88f6556ade775" +dependencies = [ + "borsh 1.8.1", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-msg 2.2.1", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-program-error" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f04fa578707b3612b095f0c8e19b66a1233f7c42ca8082fcb3b745afcc0add6" +dependencies = [ + "borsh 1.8.1", + "serde", + "serde_derive", +] + +[[package]] +name = "solana-program-memory" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a5426090c6f3fd6cfdc10685322fede9ca8e5af43cd6a59e98bfe4e91671712" +dependencies = [ + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-program-memory" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4068648649653c2c50546e9a7fb761791b5ab0cda054c771bb5808d3a4b9eb52" +dependencies = [ + "solana-define-syscall 4.0.1", +] + +[[package]] +name = "solana-program-option" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc677a2e9bc616eda6dbdab834d463372b92848b2bfe4a1ed4e4b4adba3397d0" + +[[package]] +name = "solana-program-option" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a88006a9b8594088cec9027ab77caaaa258a2aaa2083d3f086c44b42e50aeab" + +[[package]] +name = "solana-program-pack" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "319f0ef15e6e12dc37c597faccb7d62525a509fec5f6975ecb9419efddeb277b" +dependencies = [ + "solana-program-error 2.2.2", +] + +[[package]] +name = "solana-program-pack" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7701cb15b90667ae1c89ef4ac35a59c61e66ce58ddee13d729472af7f41d59" +dependencies = [ + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-program-runtime" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2b7281bd4a6072c7e11b611f771f4e61be1d45ea0d2aecfbb77d02d1b5877d4" +dependencies = [ + "base64 0.22.1", + "bincode", + "cfg-if", + "itertools 0.14.0", + "log", + "percentage", + "rand 0.9.5", + "serde", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-loader-v3-interface 7.0.0", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", + "solana-stable-layout 3.0.1", + "solana-stake-interface 4.3.0", + "solana-svm-callback", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-timings", + "solana-svm-transaction", + "solana-svm-type-overrides", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction-context", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "solana-pubkey" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b62adb9c3261a052ca1f999398c388f1daf558a1b492f60a6d9e64857db4ff1" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8 0.2.1", + "five8_const 0.1.4", + "getrandom 0.2.17", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-atomic-u64 2.2.1", + "solana-decode-error", + "solana-define-syscall 2.3.0", + "solana-sanitize 2.2.1", + "solana-sha256-hasher 2.3.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-pubkey" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8909d399deb0851aa524420beeb5646b115fd253ef446e35fe4504c904da3941" +dependencies = [ + "rand 0.8.8", + "solana-address 1.1.0", +] + +[[package]] +name = "solana-pubkey" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7db719574990de7e8b0f55a8593ac92a5ccb42c8ce67b3e4bf05b139d5d9ee71" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-rent" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1aea8fdea9de98ca6e8c2da5827707fb3842833521b528a713810ca685d2480" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-rent" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e860d5499a705369778647e97d760f7670adfb6fc8419dd3d568deccd46d5487" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-rent" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39f0d780bf8e8a1fe8b5b5fce1acad6b209485b86dec246e7523d5e4a8b7c7fc" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-runtime-transaction" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60cf942dcefc0f4d600fed1f4d220ff27abaa04def1fefa37e0e0c2a96e4179" +dependencies = [ + "agave-feature-set", + "agave-transaction-view", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-svm-transaction", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-sanitize" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61f1bc1357b8188d9c4a3af3fc55276e56987265eb7ad073ae6f8180ee54cecf" + +[[package]] +name = "solana-sanitize" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf09694a0fc14e5ffb18f9b7b7c0f15ecb6eac5b5610bf76a1853459d19daf9" + +[[package]] +name = "solana-sbpf" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d777d7a89267dd133e985113c7e7f820fb7cfd9123a4a350cf8b39ebae1920bc" +dependencies = [ + "byteorder", + "combine", + "hash32", + "libc", + "log", + "rand 0.8.8", + "rustc-demangle", + "thiserror 2.0.20", + "winapi", +] + +[[package]] +name = "solana-sdk" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f03df7969f5e723ad31b6c9eadccc209037ac4caa34d8dc259316b05c11e82b" +dependencies = [ + "bincode", + "bs58", + "serde", + "solana-account 3.4.0", + "solana-epoch-info", + "solana-epoch-rewards-hasher", + "solana-fee-structure", + "solana-inflation", + "solana-keypair", + "solana-message 3.1.0", + "solana-offchain-message", + "solana-presigner", + "solana-program 3.0.0", + "solana-program-memory 3.1.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-serde", + "solana-serde-varint 3.0.1", + "solana-short-vec 3.2.2", + "solana-shred-version", + "solana-signature 3.4.1", + "solana-signer", + "solana-time-utils", + "solana-transaction 3.1.0", + "solana-transaction-error 3.3.2", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-sdk-ids" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5d8b9cc68d5c88b062a33e23a6466722467dde0035152d8fb1afbcdf350a5f" +dependencies = [ + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-sdk-ids" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "def234c1956ff616d46c9dd953f251fa7096ddbaa6d52b165218de97882b7280" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-sdk-macro" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86280da8b99d03560f6ab5aca9de2e38805681df34e0bb8f238e69b29433b9df" +dependencies = [ + "bs58", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "solana-sdk-macro" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8765316242300c48242d84a41614cb3388229ec353ba464f6fe62a733e41806f" +dependencies = [ + "bs58", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baa3120b6cdaa270f39444f5093a90a7b03d296d362878f7a6991d6de3bbe496" +dependencies = [ + "libsecp256k1 0.6.0", + "solana-define-syscall 2.3.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce0d2e8d53946f04e789476d6c407e4997b7fb412483df5fc10c075c65cb2edf" +dependencies = [ + "k256", + "solana-define-syscall 5.2.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-seed-derivable" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7bdb72758e3bec33ed0e2658a920f1f35dfb9ed576b951d20d63cb61ecd95c" +dependencies = [ + "solana-derivation-path", +] + +[[package]] +name = "solana-seed-phrase" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc905b200a95f2ea9146e43f2a7181e3aeb55de6bc12afb36462d00a3c7310de" +dependencies = [ + "hmac", + "pbkdf2", + "sha2 0.10.9", +] + +[[package]] +name = "solana-serde" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709a93cab694c70f40b279d497639788fc2ccbcf9b4aa32273d4b361322c02dd" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serde-varint" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a7e155eba458ecfb0107b98236088c3764a09ddf0201ec29e52a0be40857113" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serde-varint" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "950e5b83e839dc0f92c66afc124bb8f40e89bc90f0579e8ec5499296d27f54e3" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serialize-utils" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "817a284b63197d2b27afdba829c5ab34231da4a9b4e763466a003c40ca4f535e" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-serialize-utils" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "761357b0853c9623bf12c1d2314b3d6160a85b087b84c45224fb85766d22616b" +dependencies = [ + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sanitize 3.0.1", +] + +[[package]] +name = "solana-sha256-hasher" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa3feb32c28765f6aa1ce8f3feac30936f16c5c3f7eb73d63a5b8f6f8ecdc44" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", +] + +[[package]] +name = "solana-sha256-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db7dc3011ea4c0334aaaa7e7128cb390ecf546b28d412e9bf2064680f57f588f" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-sha512-hasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11e10e103ab5bd52af341e7bc2f4123a2f4e66bb7ba4e6ca40f1e00cd6314e02" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 5.2.0", + "solana-hash-512", +] + +[[package]] +name = "solana-short-vec" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c54c66f19b9766a56fa0057d060de8378676cb64987533fa088861858fc5a69" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-short-vec" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8250a4495aad49ad20556a607da53bdcb20de78da10b65afbf918b7f1de647" +dependencies = [ + "serde_core", + "wincode", +] + +[[package]] +name = "solana-shred-version" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6c79722e299d957958bf33695f7cd1ef6724ff55563c60fd9e3e24487cccde2" +dependencies = [ + "solana-hard-forks", + "solana-hash 4.5.0", + "solana-sha256-hasher 3.1.0", +] + +[[package]] +name = "solana-signature" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64c8ec8e657aecfc187522fc67495142c12f35e55ddeca8698edbb738b8dbd8c" +dependencies = [ + "five8 0.2.1", + "serde", + "serde-big-array", + "serde_derive", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-signature" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0364c7577c3c82a693ce28a1febc8d1b5d1b0a175fdc2114ae6186b69effe1e" +dependencies = [ + "ed25519-dalek", + "five8 1.0.0", + "rand 0.9.5", + "serde", + "serde-big-array", + "serde_derive", + "solana-sanitize 3.0.1", + "wincode", +] + +[[package]] +name = "solana-signer" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520bd6021163ee517f4bdc7ae03ded904f97e11320001ba0b3355f45eb14f558" +dependencies = [ + "solana-pubkey 4.2.0", + "solana-signature 3.4.1", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-slot-hashes" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c8691982114513763e88d04094c9caa0376b867a29577939011331134c301ce" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 2.3.0", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-hashes" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7ce2b4b8911bf2db3de7b6266e67bfc21a6a9f8c566fb096d9782ca2ad16ee" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-slot-history" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97ccc1b2067ca22754d5283afb2b0126d61eae734fc616d23871b0943b0d935e" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-history" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40427c04d3e808493cb5e3d1a97cef84d7c15cb6f89b15c5684d0d4027105600" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-stable-layout" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f14f7d02af8f2bc1b5efeeae71bc1c2b7f0f65cd75bcc7d8180f2c762a57f54" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-stable-layout" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9f6a291ba063a37780af29e7db14bdd3dc447584d8ba5b3fc4b88e2bbc982fa" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-stake-history" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c736a6aa0e53b9d264d90b06589fc0996f49f882f3e71842ed754fc57ffc1a43" +dependencies = [ + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-stake-interface" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5269e89fde216b4d7e1d1739cf5303f8398a1ff372a81232abbee80e554a838c" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", + "num-traits", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-cpi 2.2.1", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-system-interface 1.0.0", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-stake-interface" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9bc26191b533f9a6e5a14cca05174119819ced680a80febff2f5051a713f0db" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-stake-interface" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252b4291eb25a5a356149ed4d4a940d5f655186210fa84b5d0d8d55c3dd42a81" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-svm-callback" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf863c5b86e90e51c18ed08cfd8e21f9cfa60122d60d6364cde7083bf6de837c" +dependencies = [ + "solana-account 4.3.2", + "solana-clock 3.1.1", + "solana-precompile-error", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-feature-set" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "580d385250ddc3826e5d082b221d9d1047bddcc63ee18313f14dcafb95fdcae5" + +[[package]] +name = "solana-svm-log-collector" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f97c2c829a06a1b3bdbad1f770891768c1f0005b322acd7c192ad92157fe525" +dependencies = [ + "log", +] + +[[package]] +name = "solana-svm-measure" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79ec1451e86552456f1e9a1cc7ffafea01ba3383d8246ba636a11cf286da9fc3" + +[[package]] +name = "solana-svm-timings" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33a2692a88fabf56275bb40c39596d6e550a43f6e56b77fa6f0468e0affd977" +dependencies = [ + "eager", + "enum-iterator", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-transaction" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736d2cec944c6f8f298a7bd8ada5eb318cca9ab859281b1300842fa0e9a25afa" +dependencies = [ + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-transaction 4.1.6", +] + +[[package]] +name = "solana-svm-type-overrides" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74a3ba41956ba930a335589eedf0784dfa4be0527ef236df8ad3996a26b5f19f" +dependencies = [ + "rand 0.9.5", +] + +[[package]] +name = "solana-syscalls" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d31c37dc2425afc13ddb2fc8365db8dbd02ac860a454c25b3897831036a64dd8" +dependencies = [ + "bincode", + "libsecp256k1 0.7.2", + "num-traits", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-blake3-hasher 3.1.0", + "solana-bls12-381-syscall", + "solana-bn254", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-curve25519", + "solana-hash 4.5.0", + "solana-hash-512", + "solana-instruction 3.4.1", + "solana-keccak-hasher 3.1.0", + "solana-poseidon", + "solana-program-entrypoint 3.1.1", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.3.0", + "solana-sha256-hasher 3.1.0", + "solana-sha512-hasher", + "solana-stable-layout 3.0.1", + "solana-stake-interface 4.3.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-type-overrides", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction-context", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "solana-system-interface" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94d7c18cb1a91c6be5f5a8ac9276a1d7c737e39a21beba9ea710ab4b9c63bc90" +dependencies = [ + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-system-interface" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e1790547bfc3061f1ee68ea9d8dc6c973c02a163697b24263a8e9f2e6d4afa2" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-instruction 3.4.1", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", +] + +[[package]] +name = "solana-system-interface" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55b54965bf0b76fa8e2b35376583efddd4d916618cfe595bf48c7d7b55a9e628" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "wincode", +] + +[[package]] +name = "solana-system-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2610e0b091b920da610ad3e5ba850530702f5ac911b4e9dc5ab9a025a772138a" +dependencies = [ + "bincode", + "log", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-fee-calculator 3.2.2", + "solana-instruction 3.4.1", + "solana-nonce 3.2.1", + "solana-nonce-account", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-transaction-context", +] + +[[package]] +name = "solana-sysvar" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c3595f95069f3d90f275bb9bd235a1973c4d059028b0a7f81baca2703815db" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 2.3.0", + "solana-clock 2.2.3", + "solana-define-syscall 2.3.0", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-instructions-sysvar 2.2.2", + "solana-last-restart-slot 2.2.1", + "solana-program-entrypoint 2.3.0", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stake-interface 1.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-sysvar" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6690d3dd88f15c21edff68eb391ef8800df7a1f5cec84ee3e8d1abf05affdf74" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-define-syscall 4.0.1", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-calculator 3.2.2", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 4.2.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-sysvar" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ada7045bbfdd802af08fbc9c7e2b56ddabb20599d22e4c3840fcef5e7afb8324" +dependencies = [ + "base64 0.22.1", + "bincode", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-define-syscall 5.2.0", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-calculator 3.2.2", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stake-history", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-sysvar-id" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5762b273d3325b047cfda250787f8d796d781746860d5d0a746ee29f3e8812c1" +dependencies = [ + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-sysvar-id" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17358d1e9a13e5b9c2264d301102126cf11a47fd394cdf3dec174fe7bc96e1de" +dependencies = [ + "solana-address 2.6.1", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-time-utils" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ced92c60aa76ec4780a9d93f3bd64dfa916e1b998eacc6f1c110f3f444f02c9" + +[[package]] +name = "solana-transaction" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96697cff5075a028265324255efed226099f6d761ca67342b230d09f72cc48d2" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-message 3.1.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-signer", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-transaction" +version = "4.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8008008a75246adaf8b67411093a6d78db8232c74b00eff6041fd1da73679e7" +dependencies = [ + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-message 4.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-signer", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-transaction-context" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d61811155533aebcf806e694d3ed91be7fc168dc9bdcf25e8eb98b9234c7c3" +dependencies = [ + "bincode", + "qualifier_attr", + "serde", + "solana-account 4.3.2", + "solana-instruction 3.4.1", + "solana-instructions-sysvar 4.0.0", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-transaction-error" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222a9dc8fdb61c6088baab34fc3a8b8473a03a7a5fd404ed8dd502fa79b67cb1" +dependencies = [ + "solana-instruction 2.3.3", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-transaction-error" +version = "3.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "054e54d15164b0c34cb744600a1a0330e9fd97a12d979f2eb95904c807a07713" +dependencies = [ + "serde", + "serde_derive", + "solana-instruction-error", + "solana-sanitize 3.0.1", +] + +[[package]] +name = "solana-vote-interface" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b80d57478d6599d30acc31cc5ae7f93ec2361a06aefe8ea79bc81739a08af4c3" +dependencies = [ + "bincode", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-decode-error", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serde-varint 2.2.2", + "solana-serialize-utils 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-vote-interface" +version = "6.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13a7a204b455a53fe8c9a26a6885391a5896835e06694dbe0cf37c580f82f128" +dependencies = [ + "bincode", + "cfg_eval", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "serde_with", + "solana-clock 3.1.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-serde-varint 3.0.1", + "solana-serialize-utils 3.1.2", + "solana-short-vec 3.2.2", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-vote-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69c6faf8370369c45bc14eeca8dc0249450b940b57dcfcec0103403f9feaf88a" +dependencies = [ + "agave-feature-set", + "bincode", + "log", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-bls-signatures", + "solana-clock 3.1.1", + "solana-epoch-schedule 3.2.0", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", + "solana-system-interface 3.2.0", + "solana-transaction-context", + "solana-vote-interface 6.0.3", +] + +[[package]] +name = "solana-zk-elgamal-proof-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d55e2d0d7f884295989dae8b7e0b6d7a46d87ed2d917113007383261e5e93d" +dependencies = [ + "bytemuck", + "solana-instruction 3.4.1", + "solana-program-runtime", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-zk-sdk", +] + +[[package]] +name = "solana-zk-sdk" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09670ff59f60e6ddc2209c2e4353992a9b9f01d4e244f3e9d67bd5146e33d388" +dependencies = [ + "aes-gcm-siv", + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "itertools 0.14.0", + "merlin", + "num-derive", + "num-traits", + "rand 0.8.8", + "serde", + "serde_derive", + "serde_json", + "sha3", + "solana-address 2.6.1", + "solana-derivation-path", + "solana-instruction 3.4.1", + "solana-sdk-ids 3.1.0", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature 3.4.1", + "solana-signer", + "subtle", + "thiserror 2.0.20", + "zeroize", +] + +[[package]] +name = "solana-zk-token-proof-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc32fcd9ff8bb90837755deccefdb20518484626c0a9d0649a36e5fcb0fcf520" +dependencies = [ + "solana-program-runtime", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "spl-associated-token-account-interface" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6bbe0794e532ac08428d3abf5bf8ae75bd81dfddd785c388e326c00c92c6f5" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[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.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tar" +version = "0.4.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6221d9a6003c78398e3b239969f352578258df48c8eb051caadae0015bc840" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "test-utils" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "ephemeral-rollups-sdk 0.16.2", + "magicsvm", + "serde_json", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-signer", + "solana-transaction 4.1.6", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" +dependencies = [ + "thiserror-impl 2.0.20", +] + +[[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.119", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "tinyvec" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee" + +[[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 = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.25.15+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1340ea94a5856333492c9064b02c778b191dd2c853778d9609debdcdfea3a614" +dependencies = [ + "indexmap", + "toml_datetime", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" +dependencies = [ + "winnow", +] + +[[package]] +name = "typed-path" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" + +[[package]] +name = "typenum" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-segmentation" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +dependencies = [ + "void", +] + +[[package]] +name = "ureq" +version = "3.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a7ac20be9b7726e0bbdbf974c059676d9acb1cd414961f570a4e8231cacd7fc" +dependencies = [ + "base64 0.23.1", + "log", + "percent-encoding", + "ureq-proto", + "utf8-zero", +] + +[[package]] +name = "ureq-proto" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0809a01d1ca5a51ca70db32bb2a19157582a526505ef3c19e3b343a59aa5ad" +dependencies = [ + "base64 0.23.1", + "http", + "httparse", + "log", +] + +[[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 = "utf8-zero" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e" + +[[package]] +name = "uuid" +version = "1.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ef6dac1e96601b4fb3acccccff2139741fcb757cb9a36089bf5be91cfb285ce" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[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.4+wasi-0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aecb87a33d3b0c5e3b7aa46336eaf486cffafbd281b195e4c8b80d50df2351bf" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a690d511e3c1a8b3a55e33511e3c2c00c78415cd23650f32b808627f5696b9ed" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "411e4887f0071ef2d2164a9d5fdf2d20efbef78fccd3a78b0c10a1dc5295e48a" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 3.0.5", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81941cd78d0c92026c33e5e01312845a4cb1e9af3407f9134b100dd03144103e" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "web-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fbddc4a036f00ec4f18c83445bd3115cb306a91da554919a099d9222fe4a7f8" +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-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "wincode" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66d967db7705dc29120bb6e8ce5b5a2e27734ed5976d1c904e95bd238d1c3c5a" +dependencies = [ + "bv", + "pastey", + "proc-macro2", + "quote", + "thiserror 2.0.20", + "wincode-derive", +] + +[[package]] +name = "wincode-derive" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15ab90b719560d0fda79c74550ad1c948d17b118765942838055ebaf34d67071" +dependencies = [ + "darling 0.23.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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 = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "xattr" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" +dependencies = [ + "libc", + "rustix", +] + +[[package]] +name = "zerocopy" +version = "0.8.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d35102a9f36d089ccae9e4c6802bc118be4487b80aaffc0ab4e0cf5ce92d2873" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c01f5ab44258da43cf276c74a2763db2ff3969c9c652c3f2de07041d0b2bc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zeroize" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zip" +version = "8.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b" +dependencies = [ + "crc32fast", + "flate2", + "indexmap", + "memchr", + "typed-path", + "zopfli", +] + +[[package]] +name = "zlib-rs" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12" + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" + +[[package]] +name = "zopfli" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" +dependencies = [ + "bumpalo", + "crc32fast", + "log", + "simd-adler32", +] diff --git a/rock-paper-scissor/anchor/tests-magicsvm-rs/Cargo.toml b/rock-paper-scissor/anchor/tests-magicsvm-rs/Cargo.toml new file mode 100644 index 00000000..89e0fdfd --- /dev/null +++ b/rock-paper-scissor/anchor/tests-magicsvm-rs/Cargo.toml @@ -0,0 +1,22 @@ +[workspace] + +[package] +name = "anchor-rock-paper-scissor-magicsvm-tests" +version = "0.1.0" +edition = "2021" +publish = false + +[dev-dependencies] +anchor-lang = "=1.0.2" +anchor-rock-paper-scissor = { path = "../programs/anchor-rock-paper-scissor", features = ["no-entrypoint"] } +ephemeral-rollups-sdk = { version = "0.16.2", features = ["anchor", "access-control"] } +magicsvm = "0.2.0" +test-utils = { path = "../../../test-utils/rust", features = ["anchor"] } +solana-address = "~2.6.1" +solana-hash = "~4.5.0" +solana-instruction = { version = "~3.4.0", features = ["bincode"] } +solana-keypair = "3.1.2" +solana-message = "4.2.4" +solana-native-token = "3.0.0" +solana-signer = "3.0.1" +solana-transaction = { version = "4.1.5", features = ["verify"] } diff --git a/rock-paper-scissor/anchor/tests-magicsvm-rs/tests/magicsvm.rs b/rock-paper-scissor/anchor/tests-magicsvm-rs/tests/magicsvm.rs new file mode 100644 index 00000000..eb92cae7 --- /dev/null +++ b/rock-paper-scissor/anchor/tests-magicsvm-rs/tests/magicsvm.rs @@ -0,0 +1,569 @@ +use { + anchor_lang::{prelude::Pubkey, system_program, Id, InstructionData, ToAccountMetas}, + anchor_rock_paper_scissor::{ + self, accounts, instruction, AccountType, Choice, GAME_SEED, PLAYER_CHOICE_SEED, VAULT_SEED, + }, + ephemeral_rollups_sdk::{ + access_control::structs::{EphemeralPermission, Member, AUTHORITY_FLAG, TX_LOGS_FLAG}, + anchor::{DelegationProgram, MagicProgram}, + consts::{EPHEMERAL_VAULT_ID, MAGIC_CONTEXT_ID, MAGIC_PROGRAM_ID, PERMISSION_PROGRAM_ID}, + pda::{ + delegate_buffer_pda_from_delegated_account_and_owner_program, + delegation_metadata_pda_from_delegated_account, + delegation_record_pda_from_delegated_account, + }, + }, + magicsvm::{MagicSVM, TransactionTarget}, + solana_address::Address, + solana_instruction::Instruction, + solana_keypair::Keypair, + solana_native_token::LAMPORTS_PER_SOL, + solana_signer::Signer, + std::path::PathBuf, + test_utils::{ + as_address, as_pubkey, client_ix, program_id_from_idl, program_so_path, send_ixs, + }, +}; + +const GAME_ID: u64 = 1; +const STAKE: u64 = LAMPORTS_PER_SOL / 20; +const TARGET_WINS: u8 = 2; + +fn program_so() -> PathBuf { + program_so_path(env!("CARGO_MANIFEST_DIR"), "anchor_rock_paper_scissor") +} + +fn program_id() -> Pubkey { + as_pubkey(&program_id_from_idl( + env!("CARGO_MANIFEST_DIR"), + "anchor_rock_paper_scissor.json", + )) +} + +fn program_address() -> Address { + as_address(program_id()) +} + +fn ix(data: impl InstructionData, accounts: impl ToAccountMetas) -> Instruction { + client_ix(program_address(), data, accounts) +} + +fn send( + svm: &mut MagicSVM, + target: TransactionTarget, + payer: &Keypair, + extra_signers: &[&Keypair], + ixs: Vec, + label: &str, +) { + let mut signers: Vec<&Keypair> = vec![payer]; + signers.extend_from_slice(extra_signers); + send_ixs(svm, target, &signers, &ixs, label); +} + +fn pda(seeds: &[&[u8]]) -> Pubkey { + Pubkey::find_program_address(seeds, &program_id()).0 +} + +fn permission_pda(account: &Pubkey) -> Pubkey { + EphemeralPermission::find_pda(account).0 +} + +fn game_id_bytes() -> [u8; 8] { + GAME_ID.to_le_bytes() +} + +fn member(pubkey: Pubkey) -> Member { + Member { + flags: AUTHORITY_FLAG | TX_LOGS_FLAG, + pubkey, + } +} + +fn create_game_ix( + game: Pubkey, + player_choice: Pubkey, + vault: Pubkey, + player1: Pubkey, +) -> Instruction { + ix( + instruction::CreateGame { + game_id: GAME_ID, + stake: STAKE, + target_wins: TARGET_WINS, + }, + accounts::CreateGame { + game, + player_choice, + vault, + player1, + system_program: system_program::ID, + }, + ) +} + +fn join_game_ix(game: Pubkey, player_choice: Pubkey, vault: Pubkey, player: Pubkey) -> Instruction { + ix( + instruction::JoinGame { game_id: GAME_ID }, + accounts::JoinGame { + game, + player_choice, + vault, + player, + system_program: system_program::ID, + }, + ) +} + +fn delegate_pda_ix( + pda_addr: Pubkey, + payer: Pubkey, + validator: Pubkey, + account_type: AccountType, +) -> Instruction { + ix( + instruction::DelegatePda { account_type }, + accounts::DelegatePda { + buffer_pda: delegate_buffer_pda_from_delegated_account_and_owner_program( + &pda_addr, + &program_id(), + ), + delegation_record_pda: delegation_record_pda_from_delegated_account(&pda_addr), + delegation_metadata_pda: delegation_metadata_pda_from_delegated_account(&pda_addr), + pda: pda_addr, + payer, + validator: Some(validator), + owner_program: program_id(), + delegation_program: DelegationProgram::id(), + system_program: system_program::ID, + }, + ) +} + +fn init_permission_ix( + permissioned_account: Pubkey, + permission: Pubkey, + authority: Pubkey, + account_type: AccountType, + members: Option>, +) -> Instruction { + ix( + instruction::InitPermission { + account_type, + members, + }, + accounts::PermissionContextRps { + permissioned_account, + permission, + authority, + permission_program: PERMISSION_PROGRAM_ID, + ephemeral_vault: EPHEMERAL_VAULT_ID, + magic_program: MAGIC_PROGRAM_ID, + }, + ) +} + +fn make_choice_ix(player_choice: Pubkey, player: Pubkey, choice: Choice) -> Instruction { + ix( + instruction::MakeChoice { + _game_id: GAME_ID, + choice, + }, + accounts::MakeChoice { + player_choice, + player, + }, + ) +} + +fn reveal_round_ix( + game: Pubkey, + p1_choice: Pubkey, + p2_choice: Pubkey, + permission_game: Pubkey, + permission1: Pubkey, + permission2: Pubkey, + payer: Pubkey, +) -> Instruction { + ix( + instruction::RevealRound {}, + accounts::RevealRound { + game, + player1_choice: p1_choice, + player2_choice: p2_choice, + permission_game, + permission1, + permission2, + payer, + permission_program: PERMISSION_PROGRAM_ID, + ephemeral_vault: EPHEMERAL_VAULT_ID, + magic_program: MAGIC_PROGRAM_ID, + }, + ) +} + +fn next_round_ix( + game: Pubkey, + p1_choice: Pubkey, + p2_choice: Pubkey, + permission_game: Pubkey, + permission1: Pubkey, + permission2: Pubkey, + payer: Pubkey, +) -> Instruction { + ix( + instruction::NextRound {}, + accounts::NextRound { + game, + player1_choice: p1_choice, + player2_choice: p2_choice, + permission_game, + permission1, + permission2, + payer, + permission_program: PERMISSION_PROGRAM_ID, + ephemeral_vault: EPHEMERAL_VAULT_ID, + magic_program: MAGIC_PROGRAM_ID, + }, + ) +} + +fn undelegate_all_ix( + payer: Pubkey, + game: Pubkey, + p1_choice: Pubkey, + p2_choice: Pubkey, +) -> Instruction { + ix( + instruction::UndelegateAll {}, + accounts::UndelegateAll { + payer, + game, + player1_choice: p1_choice, + player2_choice: p2_choice, + magic_program: MagicProgram::id(), + magic_context: MAGIC_CONTEXT_ID, + }, + ) +} + +fn claim_pot_ix( + game: Pubkey, + vault: Pubkey, + player1: Pubkey, + player2: Pubkey, + payer: Pubkey, +) -> Instruction { + ix( + instruction::ClaimPot {}, + accounts::ClaimPot { + game, + vault, + player1, + player2, + payer, + system_program: system_program::ID, + }, + ) +} + +#[test] +fn rock_paper_scissor_magicsvm() { + let player1 = Keypair::new(); + let player2 = Keypair::new(); + let mut svm = MagicSVM::new(); + let validator = as_pubkey(&svm.validator_identity()); + let p1 = as_pubkey(&player1.pubkey()); + let p2 = as_pubkey(&player2.pubkey()); + + svm.add_program_from_file(program_address(), program_so()) + .expect("load program"); + svm.airdrop(&player1.pubkey(), 2 * LAMPORTS_PER_SOL) + .expect("airdrop p1"); + svm.airdrop(&player2.pubkey(), 2 * LAMPORTS_PER_SOL) + .expect("airdrop p2"); + + let permission_program = svm.get_account_for( + TransactionTarget::Ephemeral, + &as_address(PERMISSION_PROGRAM_ID), + ); + eprintln!( + "PERMISSION_PROGRAM_ID on ephemeral: {}", + if permission_program.is_some() { + "present" + } else { + "MISSING" + } + ); + assert!( + svm.get_account_for(TransactionTarget::Ephemeral, &as_address(MAGIC_PROGRAM_ID)) + .is_some(), + "MAGIC_PROGRAM should be loaded on ephemeral" + ); + assert!( + svm.get_account_for( + TransactionTarget::Ephemeral, + &as_address(EPHEMERAL_VAULT_ID) + ) + .is_some(), + "ephemeral vault should be loaded" + ); + + let game = pda(&[GAME_SEED, &game_id_bytes()]); + let vault = pda(&[VAULT_SEED, &game_id_bytes()]); + let p1_choice = pda(&[PLAYER_CHOICE_SEED, &game_id_bytes(), p1.as_ref()]); + let p2_choice = pda(&[PLAYER_CHOICE_SEED, &game_id_bytes(), p2.as_ref()]); + let permission_game = permission_pda(&game); + let permission1 = permission_pda(&p1_choice); + let permission2 = permission_pda(&p2_choice); + let game_address = as_address(game); + let vault_address = as_address(vault); + let p1_choice_address = as_address(p1_choice); + let p2_choice_address = as_address(p2_choice); + + send( + &mut svm, + TransactionTarget::Base, + &player1, + &[], + vec![ + create_game_ix(game, p1_choice, vault, p1), + delegate_pda_ix( + p1_choice, + p1, + validator, + AccountType::PlayerChoice { + game_id: GAME_ID, + player: p1, + }, + ), + ], + "create game + delegate p1 choice", + ); + + send( + &mut svm, + TransactionTarget::Ephemeral, + &player1, + &[], + vec![init_permission_ix( + p1_choice, + permission1, + p1, + AccountType::PlayerChoice { + game_id: GAME_ID, + player: p1, + }, + Some(vec![member(p1)]), + )], + "init p1 choice permission", + ); + assert!( + svm.get_account_for(TransactionTarget::Ephemeral, &as_address(permission1)) + .is_some(), + "Player 1 Choice permission never activated in-process" + ); + + send( + &mut svm, + TransactionTarget::Base, + &player2, + &[], + vec![ + join_game_ix(game, p2_choice, vault, p2), + delegate_pda_ix(game, p2, validator, AccountType::Game { game_id: GAME_ID }), + delegate_pda_ix( + p2_choice, + p2, + validator, + AccountType::PlayerChoice { + game_id: GAME_ID, + player: p2, + }, + ), + ], + "join + delegate game + p2 choice", + ); + + send( + &mut svm, + TransactionTarget::Ephemeral, + &player2, + &[], + vec![ + init_permission_ix( + game, + permission_game, + p2, + AccountType::Game { game_id: GAME_ID }, + Some(vec![member(p1), member(p2)]), + ), + init_permission_ix( + p2_choice, + permission2, + p2, + AccountType::PlayerChoice { + game_id: GAME_ID, + player: p2, + }, + Some(vec![member(p2)]), + ), + ], + "init game + p2 choice permissions", + ); + assert!( + svm.get_account_for(TransactionTarget::Ephemeral, &as_address(permission2)) + .is_some(), + "Player 2 Choice permission never activated in-process" + ); + + send( + &mut svm, + TransactionTarget::Ephemeral, + &player1, + &[], + vec![make_choice_ix(p1_choice, p1, Choice::Rock)], + "p1 rock", + ); + send( + &mut svm, + TransactionTarget::Ephemeral, + &player2, + &[], + vec![make_choice_ix(p2_choice, p2, Choice::Scissors)], + "p2 scissors", + ); + + svm.set_authorized_user(Some(player1.pubkey())); + assert!( + svm.get_account_for(TransactionTarget::Ephemeral, &p1_choice_address) + .is_some(), + "Player 1 should read own choice" + ); + svm.set_authorized_user(Some(player2.pubkey())); + assert!( + svm.get_account_for(TransactionTarget::Ephemeral, &p2_choice_address) + .is_some(), + "Player 2 should read own choice" + ); + + assert!( + svm.get_account_for(TransactionTarget::Ephemeral, &p1_choice_address) + .is_none(), + "❌ Player 1 choice account exists unexpectedly!" + ); + svm.set_authorized_user(Some(player1.pubkey())); + assert!( + svm.get_account_for(TransactionTarget::Ephemeral, &p2_choice_address) + .is_none(), + "❌ Player 2 choice account exists unexpectedly!" + ); + + send( + &mut svm, + TransactionTarget::Ephemeral, + &player1, + &[], + vec![reveal_round_ix( + game, + p1_choice, + p2_choice, + permission_game, + permission1, + permission2, + p1, + )], + "reveal round 1", + ); + send( + &mut svm, + TransactionTarget::Ephemeral, + &player2, + &[], + vec![next_round_ix( + game, + p1_choice, + p2_choice, + permission_game, + permission1, + permission2, + p2, + )], + "next round", + ); + send( + &mut svm, + TransactionTarget::Ephemeral, + &player1, + &[], + vec![make_choice_ix(p1_choice, p1, Choice::Rock)], + "round 2 p1 rock", + ); + send( + &mut svm, + TransactionTarget::Ephemeral, + &player2, + &[], + vec![make_choice_ix(p2_choice, p2, Choice::Scissors)], + "round 2 p2 scissors", + ); + svm.set_authorized_user(Some(player1.pubkey())); + assert!( + svm.get_account_for(TransactionTarget::Ephemeral, &p2_choice_address) + .is_none(), + "❌ Player 2 choice readable after reset!" + ); + + send( + &mut svm, + TransactionTarget::Ephemeral, + &player1, + &[], + vec![reveal_round_ix( + game, + p1_choice, + p2_choice, + permission_game, + permission1, + permission2, + p1, + )], + "reveal round 2", + ); + send( + &mut svm, + TransactionTarget::Ephemeral, + &player1, + &[], + vec![undelegate_all_ix(p1, game, p1_choice, p2_choice)], + "undelegate all", + ); + + let game_base = svm + .get_account_for(TransactionTarget::Base, &game_address) + .expect("game back on base"); + assert_eq!( + game_base.owner, + program_address(), + "game owner should be program" + ); + + let vault_before = svm.get_balance(&vault_address).unwrap_or(0); + let p1_before = svm.get_balance(&player1.pubkey()).unwrap_or(0); + send( + &mut svm, + TransactionTarget::Base, + &player1, + &[], + vec![claim_pot_ix(game, vault, p1, p2, p1)], + "claim pot", + ); + let vault_after = svm.get_balance(&vault_address).unwrap_or(0); + let p1_after = svm.get_balance(&player1.pubkey()).unwrap_or(0); + assert_eq!(vault_after, 0, "vault not fully drained"); + assert!( + p1_after + vault_before > p1_before, + "winner did not receive pot" + ); + let _ = vault_before; +} diff --git a/rock-paper-scissor/anchor/tests-magicsvm/rock-paper-scissor.ts b/rock-paper-scissor/anchor/tests-magicsvm/rock-paper-scissor.ts new file mode 100644 index 00000000..8542891e --- /dev/null +++ b/rock-paper-scissor/anchor/tests-magicsvm/rock-paper-scissor.ts @@ -0,0 +1,643 @@ +import * as anchor from "@coral-xyz/anchor"; +import { Program } from "@coral-xyz/anchor"; +import { + Keypair, + PublicKey, + SystemProgram, + Transaction, +} from "@solana/web3.js"; +import { MagicSVM } from "@magicblock-labs/magicsvm"; +import { + airdropOrThrow, + dummyAnchorProvider, + EPHEMERAL_VAULT_ID, + MAGIC_PROGRAM_ID, + PERMISSION_PROGRAM_ID, + permissionPdaFromAccount, + sendSvmTx, +} from "@magicblock-labs/test-utils"; +import BN from "bn.js"; +import * as path from "path"; + +import { + AUTHORITY_FLAG, + Member, + TX_LOGS_FLAG, +} from "@magicblock-labs/ephemeral-rollups-sdk"; + +const PROGRAM_SO = path.resolve( + __dirname, + "../target/deploy/anchor_rock_paper_scissor.so", +); +const IDL = require("../target/idl/anchor_rock_paper_scissor.json"); + +type Choice = { rock: {} } | { paper: {} } | { scissors: {} }; + +function encodeProgram(payer: Keypair): Program { + return new Program(IDL as anchor.Idl, dummyAnchorProvider(payer)); +} + +describe("anchor-rock-paper-scissor (magicsvm)", () => { + const svm = new MagicSVM(); + const player1 = Keypair.generate(); + const player2 = Keypair.generate(); + const programId = new PublicKey(IDL.address); + const validator = new PublicKey(svm.validatorIdentity().toString()); + const program = encodeProgram(player1); + + console.log("Program ID: ", programId.toString()); + console.log("MagicSVM validator identity: ", validator.toBase58()); + + const gameId = new BN(1); + const STAKE = new BN(0.05 * anchor.web3.LAMPORTS_PER_SOL); + const TARGET_WINS = 2; + + const GAME_SEED = Buffer.from("game"); + const PLAYER_CHOICE_SEED = Buffer.from("player_choice"); + const VAULT_SEED = Buffer.from("vault"); + + const [gamePda] = PublicKey.findProgramAddressSync( + [GAME_SEED, gameId.toArrayLike(Buffer, "le", 8)], + programId, + ); + const [vaultPda] = PublicKey.findProgramAddressSync( + [VAULT_SEED, gameId.toArrayLike(Buffer, "le", 8)], + programId, + ); + const [player1ChoicePda] = PublicKey.findProgramAddressSync( + [ + PLAYER_CHOICE_SEED, + gameId.toArrayLike(Buffer, "le", 8), + player1.publicKey.toBuffer(), + ], + programId, + ); + const [player2ChoicePda] = PublicKey.findProgramAddressSync( + [ + PLAYER_CHOICE_SEED, + gameId.toArrayLike(Buffer, "le", 8), + player2.publicKey.toBuffer(), + ], + programId, + ); + + const permissionForGame = permissionPdaFromAccount(gamePda); + const permissionForPlayer1Choice = permissionPdaFromAccount(player1ChoicePda); + const permissionForPlayer2Choice = permissionPdaFromAccount(player2ChoicePda); + + function decodeGame(target: "base" | "ephemeral") { + const account = svm.getAccountFor(gamePda, { target }); + if (!account.exists) { + throw new Error(`game PDA missing on ${target}`); + } + return program.coder.accounts.decode("game", Buffer.from(account.data)); + } + + function decodeChoice(pda: PublicKey, target: "base" | "ephemeral") { + const account = svm.getAccountFor(pda, { target }); + if (!account.exists) { + return null; + } + return program.account.playerChoice.coder.accounts.decode( + "playerChoice", + Buffer.from(account.data), + ); + } + + it("Airdrop SOL to both players and load program", () => { + svm.addProgramFromFile(programId, PROGRAM_SO); + airdropOrThrow(svm, player1.publicKey, 2n * 1_000_000_000n); + airdropOrThrow(svm, player2.publicKey, 2n * 1_000_000_000n); + + const balance1 = svm.getBalance(player1.publicKey); + const balance2 = svm.getBalance(player2.publicKey); + console.log( + "💸 Player 1 Balance:", + Number(balance1) / 1_000_000_000, + "SOL", + ); + console.log( + "💸 Player 2 Balance:", + Number(balance2) / 1_000_000_000, + "SOL", + ); + + const permissionProgram = svm.getAccountFor(PERMISSION_PROGRAM_ID, { + target: "ephemeral", + }); + console.log( + "PERMISSION_PROGRAM_ID on ephemeral:", + permissionProgram.exists + ? `executable=${permissionProgram.executable}` + : "MISSING", + ); + const magicProgram = svm.getAccountFor(MAGIC_PROGRAM_ID, { + target: "ephemeral", + }); + const vault = svm.getAccountFor(EPHEMERAL_VAULT_ID, { target: "ephemeral" }); + console.log( + "MAGIC_PROGRAM_ID on ephemeral:", + magicProgram.exists ? `executable=${magicProgram.executable}` : "MISSING", + ); + console.log( + "ephemeral vault on ephemeral:", + vault.exists ? `lamports=${vault.lamports}` : "MISSING", + ); + }); + + it("Create Game by Player 1 (base: create + delegate p1_choice)", async () => { + const createGameIx = await program.methods + .createGame(gameId, STAKE, TARGET_WINS) + .accountsPartial({ + game: gamePda, + playerChoice: player1ChoicePda, + vault: vaultPda, + player1: player1.publicKey, + systemProgram: SystemProgram.programId, + }) + .instruction(); + + const delegatePlayer1ChoiceIx = await program.methods + .delegatePda({ playerChoice: { gameId, player: player1.publicKey } }) + .accounts({ + payer: player1.publicKey, + validator, + pda: player1ChoicePda, + }) + .instruction(); + + const tx = new Transaction().add(createGameIx, delegatePlayer1ChoiceIx); + sendSvmTx(svm, [player1], tx, "base", "create game + delegate p1 choice"); + console.log("✅ Game Created + P1 Choice Delegated"); + }); + + it("Init ephemeral permission for Player 1 Choice (ER)", async () => { + const onEr = svm.getAccountFor(player1ChoicePda, { target: "ephemeral" }); + if (!onEr.exists) { + throw new Error("player1_choice not on ER after delegation"); + } + + const p1Members: Member[] = [ + { flags: AUTHORITY_FLAG | TX_LOGS_FLAG, pubkey: player1.publicKey }, + ]; + const initP1ChoicePermissionIx = await program.methods + .initPermission( + { playerChoice: { gameId, player: player1.publicKey } }, + p1Members, + ) + .accountsPartial({ + permissionedAccount: player1ChoicePda, + permission: permissionForPlayer1Choice, + authority: player1.publicKey, + permissionProgram: PERMISSION_PROGRAM_ID, + ephemeralVault: EPHEMERAL_VAULT_ID, + magicProgram: MAGIC_PROGRAM_ID, + }) + .instruction(); + + const tx = new Transaction().add(initP1ChoicePermissionIx); + sendSvmTx(svm, [player1], tx, "ephemeral", "init p1 choice permission"); + console.log("✅ P1 Choice permission initialized"); + + const permission = svm.getAccountFor(permissionForPlayer1Choice, { + target: "ephemeral", + }); + if (!permission.exists) { + throw new Error( + "Player 1 Choice permission never activated in-process (waitUntilPermissionActive equivalent)", + ); + } + console.log("✅ Player 1 Choice permission active"); + }); + + it("Join Game (Player 2) — base: join + delegate game + delegate p2_choice", async () => { + const joinGameIx = await program.methods + .joinGame(gameId) + .accountsPartial({ + game: gamePda, + playerChoice: player2ChoicePda, + vault: vaultPda, + player: player2.publicKey, + systemProgram: SystemProgram.programId, + }) + .instruction(); + + const delegateGameIx = await program.methods + .delegatePda({ game: { gameId } }) + .accounts({ + payer: player2.publicKey, + validator, + pda: gamePda, + }) + .instruction(); + + const delegatePlayer2ChoiceIx = await program.methods + .delegatePda({ playerChoice: { gameId, player: player2.publicKey } }) + .accounts({ + payer: player2.publicKey, + validator, + pda: player2ChoicePda, + }) + .instruction(); + + const tx = new Transaction().add( + joinGameIx, + delegateGameIx, + delegatePlayer2ChoiceIx, + ); + sendSvmTx(svm, [player2], tx, "base", "join game + delegate game + p2 choice"); + console.log( + `✅ Player 2 joined game ${gameId} + delegated game + p2 choice`, + ); + }); + + it("Init ephemeral permissions for Game + Player 2 Choice (ER)", async () => { + if (!svm.getAccountFor(gamePda, { target: "ephemeral" }).exists) { + throw new Error("game not on ER after delegation"); + } + if (!svm.getAccountFor(player2ChoicePda, { target: "ephemeral" }).exists) { + throw new Error("player2_choice not on ER after delegation"); + } + + const gameMembers: Member[] = [ + { flags: AUTHORITY_FLAG | TX_LOGS_FLAG, pubkey: player1.publicKey }, + { flags: AUTHORITY_FLAG | TX_LOGS_FLAG, pubkey: player2.publicKey }, + ]; + const initGamePermissionIx = await program.methods + .initPermission({ game: { gameId } }, gameMembers) + .accountsPartial({ + permissionedAccount: gamePda, + permission: permissionForGame, + authority: player2.publicKey, + permissionProgram: PERMISSION_PROGRAM_ID, + ephemeralVault: EPHEMERAL_VAULT_ID, + magicProgram: MAGIC_PROGRAM_ID, + }) + .instruction(); + + const p2Members: Member[] = [ + { flags: AUTHORITY_FLAG | TX_LOGS_FLAG, pubkey: player2.publicKey }, + ]; + const initP2ChoicePermissionIx = await program.methods + .initPermission( + { playerChoice: { gameId, player: player2.publicKey } }, + p2Members, + ) + .accountsPartial({ + permissionedAccount: player2ChoicePda, + permission: permissionForPlayer2Choice, + authority: player2.publicKey, + permissionProgram: PERMISSION_PROGRAM_ID, + ephemeralVault: EPHEMERAL_VAULT_ID, + magicProgram: MAGIC_PROGRAM_ID, + }) + .instruction(); + + const tx = new Transaction().add( + initGamePermissionIx, + initP2ChoicePermissionIx, + ); + sendSvmTx(svm, [player2], tx, "ephemeral", "init game + p2 choice permissions"); + console.log("✅ Game + P2 Choice permissions initialized"); + + const permission = svm.getAccountFor(permissionForPlayer2Choice, { + target: "ephemeral", + }); + if (!permission.exists) { + throw new Error( + "Player 2 Choice permission never activated in-process (waitUntilPermissionActive equivalent)", + ); + } + console.log("✅ Player 2 Choice permission active"); + }); + + it("Round 1: Player 1 Makes Choice (Rock)", async () => { + const choice: Choice = { rock: {} }; + const makeChoice1Ix = await program.methods + .makeChoice(gameId, choice) + .accounts({ + // @ts-ignore + playerChoice: player1ChoicePda, + player: player1.publicKey, + }) + .instruction(); + + const tx = new Transaction().add(makeChoice1Ix); + sendSvmTx(svm, [player1], tx, "ephemeral", "p1 make choice"); + console.log( + `✅ Player 1 ${player1.publicKey} chose ${JSON.stringify(choice)}`, + ); + }); + + it("Round 1: Player 2 Makes Choice (Scissors)", async () => { + const choice: Choice = { scissors: {} }; + const makeChoice2Ix = await program.methods + .makeChoice(gameId, choice) + .accounts({ + // @ts-ignore + playerChoice: player2ChoicePda, + player: player2.publicKey, + }) + .instruction(); + + const tx = new Transaction().add(makeChoice2Ix); + sendSvmTx(svm, [player2], tx, "ephemeral", "p2 make choice"); + console.log( + `✅ Player 2 ${player2.publicKey} chose ${JSON.stringify(choice)}`, + ); + }); + + it("Player 1 checks own choice", () => { + svm.setAuthorizedUser(player1.publicKey); + const player1ChoiceAccount = decodeChoice(player1ChoicePda, "ephemeral"); + if (!player1ChoiceAccount) { + throw new Error("Player 1 cannot read own choice"); + } + console.log(`👀 Check Player 1 own Choice:`, player1ChoiceAccount.choice); + }); + + it("Player 2 check own choice", () => { + svm.setAuthorizedUser(player2.publicKey); + const player2ChoiceAccount = decodeChoice(player2ChoicePda, "ephemeral"); + if (!player2ChoiceAccount) { + throw new Error("Player 2 cannot read own choice"); + } + console.log(`👀 Check Player 2 own Choice:`, player2ChoiceAccount.choice); + }); + + it("Sneak Player 1 Choice", () => { + svm.setAuthorizedUser(player2.publicKey); + const accountInfo = svm.getAccountFor(player1ChoicePda, { + target: "ephemeral", + }); + if (!accountInfo.exists) { + console.log(`✅ Player 1 choice account not found — as expected.`); + return; + } + throw new Error("❌ Player 1 choice account exists unexpectedly!"); + }); + + it("Sneak Player 2 Choice", () => { + svm.setAuthorizedUser(player1.publicKey); + const accountInfo = svm.getAccountFor(player2ChoicePda, { + target: "ephemeral", + }); + if (!accountInfo.exists) { + console.log("✅ Player 2 choice account not found — as expected."); + return; + } + throw new Error("❌ Player 2 choice account exists unexpectedly!"); + }); + + it("Round 1: Reveal Winner (Player 1 leads 1-0)", async () => { + const tx = await program.methods + .revealRound() + .accountsPartial({ + //@ts-ignore + game: gamePda, + player1Choice: player1ChoicePda, + player2Choice: player2ChoicePda, + permissionGame: permissionForGame, + permission1: permissionForPlayer1Choice, + permission2: permissionForPlayer2Choice, + payer: player1.publicKey, + permissionProgram: PERMISSION_PROGRAM_ID, + ephemeralVault: EPHEMERAL_VAULT_ID, + magicProgram: MAGIC_PROGRAM_ID, + }) + .transaction(); + sendSvmTx(svm, [player1], tx, "ephemeral", "reveal round 1"); + console.log("✅ Round 1 Reveal TX Sent"); + + const gameAccount = decodeGame("ephemeral"); + printGameResult(gameAccount); + if (gameAccount.player1Wins !== 1 || gameAccount.player2Wins !== 0) { + throw new Error( + `❌ Expected score 1-0, got ${gameAccount.player1Wins}-${gameAccount.player2Wins}`, + ); + } + console.log( + `🏅 Score: ${gameAccount.player1Wins}-${gameAccount.player2Wins} (match in progress)`, + ); + }); + + it("Advance to Round 2 (score carries over)", async () => { + const tx = await program.methods + .nextRound() + .accountsPartial({ + game: gamePda, + player1Choice: player1ChoicePda, + player2Choice: player2ChoicePda, + permissionGame: permissionForGame, + permission1: permissionForPlayer1Choice, + permission2: permissionForPlayer2Choice, + payer: player2.publicKey, + permissionProgram: PERMISSION_PROGRAM_ID, + ephemeralVault: EPHEMERAL_VAULT_ID, + magicProgram: MAGIC_PROGRAM_ID, + }) + .transaction(); + sendSvmTx(svm, [player2], tx, "ephemeral", "next round"); + console.log("➡️ Advanced to round 2"); + + const gameAccount = decodeGame("ephemeral"); + if (!("none" in gameAccount.roundResult)) { + throw new Error("❌ Round result was not cleared"); + } + if (gameAccount.round !== 2) { + throw new Error(`❌ Expected round 2, got ${gameAccount.round}`); + } + if (gameAccount.player1Wins !== 1) { + throw new Error("❌ Score should carry over to round 2"); + } + console.log("✅ Round 2 ready, score preserved at 1-0"); + }); + + it("Round 2: both players make a choice (P1 Rock, P2 Scissors)", async () => { + const choices: Record = { + p1: { rock: {} }, + p2: { scissors: {} }, + }; + for (const [player, choicePda, key] of [ + [player1, player1ChoicePda, "p1"], + [player2, player2ChoicePda, "p2"], + ] as const) { + const choice = choices[key]; + const ix = await program.methods + .makeChoice(gameId, choice) + .accounts({ + // @ts-ignore + playerChoice: choicePda, + player: player.publicKey, + }) + .instruction(); + const tx = new Transaction().add(ix); + sendSvmTx(svm, [player], tx, "ephemeral", `round 2 ${key} choice`); + console.log( + `✅ Round 2: ${player.publicKey} chose ${JSON.stringify(choice)}`, + ); + } + }); + + it("Round 2: Sneak Player 2 Choice (private again after reset)", () => { + svm.setAuthorizedUser(player1.publicKey); + const accountInfo = svm.getAccountFor(player2ChoicePda, { + target: "ephemeral", + }); + if (!accountInfo.exists) { + console.log( + "✅ Player 2 choice hidden from Player 1 again — reset re-privatized it.", + ); + return; + } + throw new Error("❌ Player 2 choice readable after reset!"); + }); + + it("Round 2: Reveal Winner (Player 1 wins the match 2-0)", async () => { + const tx = await program.methods + .revealRound() + .accountsPartial({ + //@ts-ignore + game: gamePda, + player1Choice: player1ChoicePda, + player2Choice: player2ChoicePda, + permissionGame: permissionForGame, + permission1: permissionForPlayer1Choice, + permission2: permissionForPlayer2Choice, + payer: player1.publicKey, + permissionProgram: PERMISSION_PROGRAM_ID, + ephemeralVault: EPHEMERAL_VAULT_ID, + magicProgram: MAGIC_PROGRAM_ID, + }) + .transaction(); + sendSvmTx(svm, [player1], tx, "ephemeral", "reveal round 2"); + console.log("✅ Round 2 Reveal Winner TX Sent"); + + const gameAccount = decodeGame("ephemeral"); + printGameResult(gameAccount); + if (gameAccount.player1Wins !== 2) { + throw new Error( + `❌ Expected Player 1 at 2 wins, got ${gameAccount.player1Wins}`, + ); + } + console.log( + `🏆 Match decided ${gameAccount.player1Wins}-${gameAccount.player2Wins} after ${gameAccount.round} rounds`, + ); + }); + + it("Undelegate All (cleanup)", async () => { + const tx = await program.methods + .undelegateAll() + .accountsPartial({ + payer: player1.publicKey, + game: gamePda, + player1Choice: player1ChoicePda, + player2Choice: player2ChoicePda, + }) + .transaction(); + sendSvmTx(svm, [player1], tx, "ephemeral", "undelegate all"); + console.log(`🧹 All three PDAs committed + undelegated`); + }); + + it("Claim Pot (winner takes the stake)", async () => { + const info = svm.getAccountFor(gamePda, { target: "base" }); + if ( + !info.exists || + info.programAddress.toString() !== programId.toString() + ) { + throw new Error("❌ Game never came back to the base layer"); + } + + const game = program.coder.accounts.decode("game", Buffer.from(info.data)); + const vaultBefore = svm.getBalance(vaultPda); + console.log( + `🏦 Vault holds ${Number(vaultBefore ?? 0n) / 1_000_000_000} SOL (pot)`, + ); + + const winner = + "winner" in game.roundResult + ? (game.roundResult.winner["0"] as PublicKey) + : null; + const recipient = winner ?? player1.publicKey; + const balBefore = svm.getBalance(recipient) ?? 0n; + + const tx = await program.methods + .claimPot() + .accountsPartial({ + game: gamePda, + vault: vaultPda, + player1: player1.publicKey, + player2: player2.publicKey, + payer: player1.publicKey, + systemProgram: SystemProgram.programId, + }) + .transaction(); + sendSvmTx(svm, [player1], tx, "base", "claim pot"); + console.log("💰 Pot claimed"); + + const vaultAfter = svm.getBalance(vaultPda) ?? 0n; + const balAfter = svm.getBalance(recipient) ?? 0n; + const settledInfo = svm.getAccountFor(gamePda, { target: "base" }); + if (!settledInfo.exists) { + throw new Error("❌ Game missing after claim"); + } + const settled = program.coder.accounts.decode( + "game", + Buffer.from(settledInfo.data), + ); + + if (vaultAfter !== 0n) throw new Error("❌ Vault not fully drained"); + if (!settled.paid) throw new Error("❌ Game not marked paid"); + if (winner) { + const gained = balAfter - balBefore; + console.log( + `🏆 Winner net change: ${Number(gained) / 1_000_000_000} SOL`, + ); + if (gained <= 0n) throw new Error("❌ Winner did not receive the pot"); + } + console.log("✅ Pot paid out and game settled"); + }); +}); + +const choiceEmoji: Record = { + rock: "🪨 Rock", + paper: "📄 Paper", + scissors: "✂️ Scissors", +}; + +function fmtChoice(c: any): string { + if (!c) return "—"; + const key = Object.keys(c)[0]; + return choiceEmoji[key] ?? key; +} + +function fmtResult(result: any, p1: PublicKey, p2: PublicKey): string { + if (!result) return "—"; + if ("tie" in result) return "🤝 Tie"; + if ("none" in result) return "⏳ Not yet revealed"; + if ("winner" in result) { + const winner: PublicKey = result.winner["0"]; + const label = winner.equals(p1) + ? "Player 1" + : winner.equals(p2) + ? "Player 2" + : "Unknown"; + return `🏆 ${label} (${winner.toBase58()})`; + } + return JSON.stringify(result); +} + +function printGameResult(game: any) { + const p1 = game.player1 as PublicKey; + const p2 = game.player2 as PublicKey; + console.log("┌─────────────────────────────────────────────"); + console.log(`│ 🎲 Game #${game.gameId.toString()}`); + console.log( + `│ 👤 Player 1: ${p1.toBase58()} → ${fmtChoice(game.player1Choice)}`, + ); + console.log( + `│ 👤 Player 2: ${p2.toBase58()} → ${fmtChoice(game.player2Choice)}`, + ); + console.log(`│ Result: ${fmtResult(game.roundResult, p1, p2)}`); + console.log("└─────────────────────────────────────────────"); +} diff --git a/rock-paper-scissor/anchor/tests-magicsvm/tsconfig.json b/rock-paper-scissor/anchor/tests-magicsvm/tsconfig.json new file mode 100644 index 00000000..972d1bd6 --- /dev/null +++ b/rock-paper-scissor/anchor/tests-magicsvm/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "lib": ["es2020"], + "target": "es2020", + "module": "commonjs", + "esModuleInterop": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "types": ["mocha", "chai", "node"] + } +} diff --git a/rock-paper-scissor/anchor/tsconfig.json b/rock-paper-scissor/anchor/tsconfig.json index cd5d2e3d..d93d6f9e 100644 --- a/rock-paper-scissor/anchor/tsconfig.json +++ b/rock-paper-scissor/anchor/tsconfig.json @@ -2,9 +2,10 @@ "compilerOptions": { "types": ["mocha", "chai"], "typeRoots": ["./node_modules/@types"], - "lib": ["es2015"], + "lib": ["es2020"], "module": "commonjs", - "target": "es6", - "esModuleInterop": true + "target": "es2020", + "esModuleInterop": true, + "skipLibCheck": true } } diff --git a/rock-paper-scissor/anchor/yarn.lock b/rock-paper-scissor/anchor/yarn.lock index 7848fe4b..15c935c4 100644 --- a/rock-paper-scissor/anchor/yarn.lock +++ b/rock-paper-scissor/anchor/yarn.lock @@ -90,6 +90,54 @@ tweetnacl "^1.0.3" typescript "^5.3.0" +"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" + integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== + +"@magicblock-labs/magicsvm-darwin-x64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" + integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== + +"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" + integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== + +"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" + integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== + +"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" + integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== + +"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" + integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== + +"@magicblock-labs/magicsvm@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" + integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== + dependencies: + "@solana/web3.js" "3.0.0-rc.3" + optionalDependencies: + "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" + "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" + +"@magicblock-labs/test-utils@link:../../test-utils/ts": + version "0.0.0" + uid "" + "@noble/curves@^1.4.2": version "1.9.7" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" @@ -147,6 +195,61 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== +"@solana-program/address-lookup-table@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" + integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== + +"@solana-program/compute-budget@^0.18.0": + version "0.18.1" + resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" + integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== + +"@solana-program/loader-v3@^0.6.0": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" + integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== + +"@solana-program/stake@^0.9.0": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" + integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== + +"@solana-program/system@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" + integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== + +"@solana/accounts@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" + integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/addresses@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" + integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" + integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/buffer-layout@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" @@ -161,6 +264,30 @@ dependencies: "@solana/errors" "2.3.0" +"@solana/codecs-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" + integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== + dependencies: + "@solana/errors" "8.3.0" + +"@solana/codecs-data-structures@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" + integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/codecs-numbers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" + integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/codecs-numbers@^2.1.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" @@ -169,6 +296,27 @@ "@solana/codecs-core" "2.3.0" "@solana/errors" "2.3.0" +"@solana/codecs-strings@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" + integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/codecs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" + integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/options" "8.3.0" + "@solana/errors@2.3.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.3.0.tgz#4ac9380343dbeffb9dffbcb77c28d0e457c5fa31" @@ -177,6 +325,429 @@ chalk "^5.4.1" commander "^14.0.0" +"@solana/errors@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" + integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== + dependencies: + chalk "5.6.2" + commander "15.0.0" + +"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" + integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== + +"@solana/fixed-points@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" + integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/functional@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" + integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== + +"@solana/instruction-plans@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" + integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/instructions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" + integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/keys@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" + integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/promises" "8.3.0" + +"@solana/kit@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" + integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/plugin-core" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/program-client-core" "8.3.0" + "@solana/programs" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/sysvars" "8.3.0" + "@solana/transaction-confirmation" "8.3.0" + "@solana/transaction-introspection" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/nominal-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" + integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== + +"@solana/offchain-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" + integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/options@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" + integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/plugin-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" + integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== + +"@solana/plugin-interfaces@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" + integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/program-client-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" + integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/signers" "8.3.0" + +"@solana/programs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" + integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/promises@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" + integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== + +"@solana/rpc-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" + integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/rpc-parsed-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" + integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== + +"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" + integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== + dependencies: + "@solana/errors" "8.3.0" + +"@solana/rpc-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" + integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-subscriptions-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" + integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/rpc-subscriptions-channel-websocket@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" + integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/subscribable" "8.3.0" + ws "^8.21.3" + +"@solana/rpc-subscriptions-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" + integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-subscriptions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" + integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions-api" "8.3.0" + "@solana/rpc-subscriptions-channel-websocket" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-transformers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" + integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/rpc-transport-http@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" + integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + undici-types "^8.10.2" + +"@solana/rpc-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" + integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/rpc@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" + integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-transport-http" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/signers@8.3.0", "@solana/signers@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" + integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/subscribable@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" + integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + +"@solana/sysvars@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" + integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/transaction-confirmation@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" + integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/transaction-introspection@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" + integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/transaction-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" + integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/transactions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" + integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + +"@solana/web3.js@3.0.0-rc.3": + version "3.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" + integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== + dependencies: + "@noble/curves" "^1.4.2" + "@noble/hashes" "^1.4.0" + "@solana-program/address-lookup-table" "^0.14.0" + "@solana-program/compute-budget" "^0.18.0" + "@solana-program/loader-v3" "^0.6.0" + "@solana-program/stake" "^0.9.0" + "@solana-program/system" "^0.14.0" + "@solana/assertions" "^8.2.0" + "@solana/fast-stable-stringify" "^8.2.0" + "@solana/kit" "^8.2.0" + "@solana/rpc-spec-types" "^8.2.0" + "@solana/signers" "^8.2.0" + "@solana/web3.js@^1.69.0", "@solana/web3.js@^1.98.0": version "1.98.4" resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" @@ -269,6 +840,13 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== +"@types/node@^22.15.0": + version "22.20.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.20.2.tgz#daae777b5f5965a587f50cc80d5364c2ddf27e36" + integrity sha512-xlvWf4Vs9n1PEVYwP1n4vvG07M6y8WgvJ2t0vbrWTmijsIHp1cS+uJ2kMIRdY3nHZK0nCYKrPeD171+SzF4/zw== + dependencies: + undici-types "~6.21.0" + "@types/uuid@^8.3.4": version "8.3.4" resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" @@ -476,6 +1054,11 @@ chai@^5.2.0: loupe "^3.1.0" pathval "^2.0.0" +chalk@5.6.2, chalk@^5.4.1: + version "5.6.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" + integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== + chalk@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -484,11 +1067,6 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - check-error@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" @@ -522,6 +1100,11 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +commander@15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" + integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== + commander@^14.0.0: version "14.0.2" resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e" @@ -1165,6 +1748,16 @@ typescript@^5.3.0, typescript@^5.8.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== +undici-types@^8.10.2: + version "8.10.2" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" + integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== + +undici-types@~6.21.0: + version "6.21.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" + integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== + undici-types@~7.16.0: version "7.16.0" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" @@ -1235,6 +1828,11 @@ ws@^7.5.10: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== +ws@^8.21.3: + version "8.21.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" + integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== + ws@^8.5.0: version "8.18.3" resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" diff --git a/scripts/projects.sh b/scripts/projects.sh index 1aac760e..3fe408f4 100755 --- a/scripts/projects.sh +++ b/scripts/projects.sh @@ -17,6 +17,10 @@ REGULAR_PROJECTS=(anchor-counter binary-prediction crank-counter delegation-acti VRF_PROJECTS=(rewards-delegated-vrf roll-dice pinocchio-roll-dice) TEE_PROJECTS=(private-counter pinocchio-private-counter rock-paper-scissor sealed-auction) +# Examples that ship MagicsVM tests (TS and/or Rust). Independent of validator +# phases above — MagicsVM does not need a local cluster. +MAGICSVM_PROJECTS=(anchor-counter rust-counter pinocchio-counter private-counter pinocchio-private-counter oracle-priced-purchase oncurve-delegation rock-paper-scissor ephemeral-account-chats session-keys binary-prediction magic-actions delegation-actions spl-tokens) + ALL_PROJECTS=("${REGULAR_PROJECTS[@]}" "${VRF_PROJECTS[@]}" "${TEE_PROJECTS[@]}") # Print the directory for a stable project name, or empty if unknown. @@ -64,3 +68,11 @@ projects_json() { done echo "[${out%,}]" } + +magicsvm_projects_json() { + local out="" p + for p in "${MAGICSVM_PROJECTS[@]}"; do + out+="\"$p\"," + done + echo "[${out%,}]" +} diff --git a/scripts/test-magicsvm.sh b/scripts/test-magicsvm.sh new file mode 100755 index 00000000..828383a1 --- /dev/null +++ b/scripts/test-magicsvm.sh @@ -0,0 +1,126 @@ +#!/bin/bash +# Run MagicsVM tests (TypeScript and/or Rust) for every example that has them. +# +# MagicsVM tests are in-process and do not start validators. They do need the +# compiled program .so (and IDL, for Anchor examples), so each example is built +# first via `yarn build`. +# +# Usage: +# bash scripts/test-magicsvm.sh # all MagicsVM examples +# bash scripts/test-magicsvm.sh spl-tokens # substring filter +# +# Env: +# FAIL_FAST=0 keep going after a failure (default: stop on first) +# SKIP_TS=1 skip yarn test:magicsvm +# SKIP_RS=1 skip yarn test:magicsvm:rs +# SKIP_BUILD=1 skip yarn build (use existing target/deploy) +# EXACT_MATCH=1 require the filter to equal the project name (used by CI) + +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" +cd "$REPO_ROOT" + +# shellcheck source=scripts/projects.sh +. "$SCRIPT_DIR/projects.sh" + +TEST_FILTER="${1:-}" +FAIL_FAST="${FAIL_FAST:-1}" +SKIP_TS="${SKIP_TS:-0}" +SKIP_RS="${SKIP_RS:-0}" +SKIP_BUILD="${SKIP_BUILD:-0}" +EXACT_MATCH="${EXACT_MATCH:-0}" +YARN_MUTEX="${YARN_MUTEX:-file:/tmp/.yarn-install-mutex}" + +PASSED=() +FAILED=() +SKIPPED=() + +matches_filter() { + [ -z "$TEST_FILTER" ] && return 0 + if [ "$EXACT_MATCH" = "1" ]; then + [ "$1" = "$TEST_FILTER" ] + else + [[ "$1" == *"$TEST_FILTER"* ]] + fi +} + +echo "Installing MagicsVM test helpers..." +( cd "$REPO_ROOT/test-utils/ts" && yarn install --mutex "$YARN_MUTEX" && yarn build ) + +run_one() { + local name="$1" + local dir + dir="$(project_dir "$name")" + if [ -z "$dir" ]; then + echo "Unknown MagicsVM project '$name'" + return 1 + fi + if ! matches_filter "$name"; then + return 2 + fi + + echo "" + echo "========================================" + echo "MagicsVM: $name ($dir)" + echo "========================================" + + ( + cd "$dir" + yarn install --mutex "$YARN_MUTEX" + if [ "$SKIP_BUILD" != "1" ]; then + yarn build + fi + ran=0 + if [ "$SKIP_TS" != "1" ] && grep -q '"test:magicsvm"' package.json; then + yarn test:magicsvm || exit 1 + ran=1 + fi + if [ "$SKIP_RS" != "1" ] && grep -q '"test:magicsvm:rs"' package.json; then + RUSTUP_TOOLCHAIN="${MAGICSVM_RUSTUP_TOOLCHAIN:-nightly}" yarn test:magicsvm:rs || exit 1 + ran=1 + fi + if [ "$ran" -eq 0 ]; then + if [ "$SKIP_TS" = "1" ] && [ "$SKIP_RS" = "1" ]; then + exit 2 + fi + echo "No MagicsVM tests ran for $name (missing scripts or SKIP_TS/SKIP_RS)" + exit 1 + fi + ) +} + +for name in "${MAGICSVM_PROJECTS[@]}"; do + status=0 + run_one "$name" || status=$? + if [ "$status" -eq 0 ]; then + PASSED+=("$name") + elif [ "$status" -eq 2 ]; then + SKIPPED+=("$name") + else + FAILED+=("$name") + if [ "$FAIL_FAST" != "0" ]; then + echo "FAIL_FAST: stopping after $name" + echo "MagicsVM failed: $name" + exit 1 + fi + fi +done + +if [ -n "$TEST_FILTER" ] && [ "${#PASSED[@]}" -eq 0 ] && [ "${#FAILED[@]}" -eq 0 ]; then + echo "No MagicsVM project matched '$TEST_FILTER'" + exit 1 +fi + +echo "" +echo "========================================" +echo "MagicsVM: ${#PASSED[@]} passed, ${#FAILED[@]} failed, ${#SKIPPED[@]} skipped" +echo "========================================" +if [ "${#FAILED[@]}" -gt 0 ]; then + for name in "${FAILED[@]}"; do + echo " ✗ $name" + done + exit 1 +fi +exit 0 diff --git a/sealed-auction/anchor/MAGICSVM_FLAWS.md b/sealed-auction/anchor/MAGICSVM_FLAWS.md new file mode 100644 index 00000000..5296e8e2 --- /dev/null +++ b/sealed-auction/anchor/MAGICSVM_FLAWS.md @@ -0,0 +1,96 @@ +# MagicSVM flaws: sealed-auction private bids + +MagicSVM cannot support the private-bid / permission checks in +`tests/sealed-auction.ts`. Tests were not adapted (bids were not made public). + +## Original checks that require permission / privacy + +The live ER flow (`RUN_SEALED_AUCTION_LIVE=1`) is the sealed-bid lifecycle the +MagicSVM copy is supposed to replicate: + +1. `getAuthToken` + TEE-authenticated connections for the auctioneer and each + bidder (`authenticatedErConnection`, and + `it("can create TEE-authenticated bidder connections for privacy probes")`). +2. After `place_bid`, `init_bid_permission` CPIs to `PERMISSION_PROGRAM_ID` + (`ACLseoPoyC3cBqoUtkbjZ4aDrkurZW86v19pXz2XQnp1`) with + `CreateEphemeralPermissionCpi { is_private: true, members: [auctioneer, bidder] }`. +3. `settle_winning_bid` and `claim_refund` pass + `bidPermission: permissionPdaFromAccount(bid)` and close that account via + `CloseEphemeralPermissionCpi`. The permission program rejects a close unless + the account discriminator is the v2 permission header (`1`), not empty data. +4. Static checks that always run also depend on the permission surface: + `permissionPdaFromAccount(auction/bid)` is a real PDA, and + `PERMISSION_PROGRAM_ID !== ASSOCIATED_TOKEN_PROGRAM_ID`. + +Making bids public (skipping `init_bid_permission`, or creating +`is_private: false` permissions) would hide exactly these checks. + +## What MagicSVM does + +### 1. Permission program is not loaded + +`MagicSVM::new()` installs DLP, ESPL, and a builtin Magic program. It does **not** +install `PERMISSION_PROGRAM_ID`. + +``` +svm.getAccount("ACLseoPoyC3cBqoUtkbjZ4aDrkurZW86v19pXz2XQnp1") +→ { exists: false } +svm.getAccountFor(..., { target: "ephemeral" }) +→ { exists: false } +``` + +`init_bid_permission` therefore cannot CPI to the permission program on a stock +MagicSVM. + +### 2. Loading the permission program still drops private permission data + +A probe loaded +`permission-program/target/deploy/magicblock_permission_program.so` and sent +`CreateEphemeralPermission` (discriminator `6`, `is_private = 1`, one authority +member) to the ephemeral ledger, matching the SDK account order used by +`sealed-auction` (`payer`, `permissioned_account`, `permission`, vault, +magic program). + +The transaction **succeeds**: + +``` +Program ACLseoPoyC3cBqoUtkbjZ4aDrkurZW86v19pXz2XQnp1 invoke [1] +Program Magic11111111111111111111111111111111111111 invoke [2] +Program Magic11111111111111111111111111111111111111 success +Program ACLseoPoyC3cBqoUtkbjZ4aDrkurZW86v19pXz2XQnp1 consumed 6131 of 200000 compute units +Program ACLseoPoyC3cBqoUtkbjZ4aDrkurZW86v19pXz2XQnp1 success +``` + +After the send, the permission PDA exists and is owned by the permission +program, but its 101-byte data is **all zeros** (`private` flag at byte 34 is +`0`, not `1`). The permission program writes discriminator, bump, +permissioned account, `private`, and members during the same instruction; +MagicSVM’s post-transaction `create_ephemeral_account` effect then recreates +the account from a zeroed `AccountSharedData::new(0, data_len, owner)` when the +in-transaction 0-lamport account is gone. + +`close_bid_permission` / `CloseEphemeralPermission` then fails with +`InvalidAccountData` because `header.discriminator != PERMISSION_DISCRIMINATOR`. +`settle_winning_bid` and `claim_refund` cannot pass. + +This is a MagicSVM lifecycle bug (ephemeral create does not keep bytes written +in the creating transaction), not a harness account-list mistake. + +### 3. No TEE auth / privacy filter + +`getAuthToken` is an HTTP TEE handshake. MagicSVM has no RPC, no TEE endpoint, +and `getAccountFor` returns every account with no member / `is_private` filter. +The privacy-probe test (`token.length > 0` plus an authenticated +`getLatestBlockhash`) cannot run in-process. + +## Why we stopped + +- Replicating the sealed-bid expects requires a private permission account that + settle/refund can close. +- MagicSVM does not ship that program, and even when the program is loaded the + private header does not persist. +- Skipping `init_bid_permission` or flipping `is_private` would make the suite + pass while hiding the missing permission program and the wiped ephemeral + permission data. + +No `tests-magicsvm` / `tests-magicsvm-rs` suite was added. diff --git a/session-keys/anchor/package.json b/session-keys/anchor/package.json index 5c5a8717..79626212 100644 --- a/session-keys/anchor/package.json +++ b/session-keys/anchor/package.json @@ -5,6 +5,8 @@ "test": "yarn test:local", "build": "anchor keys sync && anchor build", "test:local": ". ../../scripts/local-env.sh && npx ts-mocha -p ./tsconfig.json -t 1000000 tests/anchor-counter-session.ts", + "test:magicsvm": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests-magicsvm/anchor-counter-session.ts", + "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture", "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh session-keys" }, "dependencies": { @@ -17,12 +19,14 @@ "@types/chai": "^5.2.2", "@types/mocha": "^10.0.10", "chai": "^5.2.0", + "@magicblock-labs/magicsvm": "0.2.0", "dotenv": "^17.2.3", "mocha": "^11.2.2", "prettier": "^3.5.3", "ts-mocha": "^11.1.0", "ts-node": "^10.9.2", - "typescript": "^5.8.3" + "typescript": "^5.8.3", + "@magicblock-labs/test-utils": "link:../../test-utils/ts" }, "license": "MIT", "packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447" diff --git a/session-keys/anchor/programs/anchor-counter-session/src/lib.rs b/session-keys/anchor/programs/anchor-counter-session/src/lib.rs index 86ca6230..ccfa56ab 100644 --- a/session-keys/anchor/programs/anchor-counter-session/src/lib.rs +++ b/session-keys/anchor/programs/anchor-counter-session/src/lib.rs @@ -5,9 +5,9 @@ use ephemeral_rollups_sdk::ephem::{MagicIntentBundleBuilder}; use session_keys::{session_auth_or, Session, SessionError, SessionTokenV2}; -declare_id!("DX9zogRDKEpuVVocvXWG9U7RD6RrSqLqdkhwoQVz3MBd"); +declare_id!("8bZfCCsRTV15b3Au6sit1tfnFiWtsfH8NqJ491F5sHWR"); -const COUNTER_SEED: &[u8] = b"counter"; +pub const COUNTER_SEED: &[u8] = b"counter"; #[ephemeral] #[program] diff --git a/session-keys/anchor/tests-magicsvm-rs/Cargo.lock b/session-keys/anchor/tests-magicsvm-rs/Cargo.lock new file mode 100644 index 00000000..fea54c1f --- /dev/null +++ b/session-keys/anchor/tests-magicsvm-rs/Cargo.lock @@ -0,0 +1,6656 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common 0.1.7", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures 0.2.17", +] + +[[package]] +name = "aes-gcm-siv" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae0784134ba9375416d469ec31e7c5f9fa94405049cf08c5ce5b4698be673e0d" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "polyval", + "subtle", + "zeroize", +] + +[[package]] +name = "agave-feature-set" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e724c6d41535d61eb4cba970716f6cfcef8d3f4d15750488f77a7630faab680" +dependencies = [ + "ahash 0.8.12", + "solana-epoch-schedule 3.2.0", + "solana-hash 4.5.0", + "solana-keypair", + "solana-pubkey 4.2.0", + "solana-sha256-hasher 3.1.0", + "solana-svm-feature-set", +] + +[[package]] +name = "agave-reserved-account-keys" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa474270f9cd8d71089979f1ad8e31c2eccde8b32d1ca03f33fe1123104d562" +dependencies = [ + "agave-feature-set", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "agave-transaction-view" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11af131e96e1a0df153db2d673a28293d171da78056104ec8e0d396e2bdf305b" +dependencies = [ + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-packet 4.2.0", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-svm-transaction", + "solana-transaction 4.1.6", +] + +[[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", + "getrandom 0.3.4", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "anchor-attribute-access-control" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a0ba6f4d5cff33a16a8cb30fd7419b71cf8b8b408998a341235cefe7e76cc1c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-account" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af875fe99d9dab01317a3bac577b05f3e52d5bd7d1b424de488ba51f3310feab" +dependencies = [ + "anchor-syn", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-constant" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345a11192cd11fdc8663e3194bbcd0c983c019cd9f21804d7853eeee5ee22653" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-error" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e5f6290f0f54e0e34b8efbb4dcd69dc2c46c655ada8198f35f403d2a88cf9c7" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-event" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0159e0fae5b1b508110b8753fda23ebce778f3bd8c146b8baabd12d2cebe4a7" +dependencies = [ + "anchor-syn", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-program" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51180111bea3660c0db345bfee34cf23f8d89cf2ac8dd5d8c7a044b3fb24d961" +dependencies = [ + "anchor-lang-idl", + "anchor-syn", + "anyhow", + "heck 0.3.3", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-counter-session" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "ephemeral-rollups-sdk 0.16.2", + "session-keys", +] + +[[package]] +name = "anchor-counter-session-magicsvm-tests" +version = "0.1.0" +dependencies = [ + "anchor-counter-session", + "anchor-lang", + "ephemeral-rollups-sdk 0.16.2", + "magicsvm", + "session-keys", + "solana-address 2.6.1", + "solana-clock 3.1.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-native-token 3.0.0", + "solana-signer", + "solana-transaction 4.1.6", + "test-utils", +] + +[[package]] +name = "anchor-derive-accounts" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b802cd6561645117219ae6ed62cd322501bf1b5b7fa1a6fd8d911428c4c37192" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-serde" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa658e7d911c4290fe9ee953e75cf95f3c4db19c053f64071512867fa9f40394" +dependencies = [ + "anchor-syn", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-space" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69520cea030ee13d2978087a467bf32078012a5ce06b2746318c359887d481ed" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-lang" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bac4de7c9a9a69180798af701e22302cc0ebf2ef683b843706a1b7809454735" +dependencies = [ + "anchor-attribute-access-control", + "anchor-attribute-account", + "anchor-attribute-constant", + "anchor-attribute-error", + "anchor-attribute-event", + "anchor-attribute-program", + "anchor-derive-accounts", + "anchor-derive-serde", + "anchor-derive-space", + "base64 0.21.7", + "bincode", + "borsh 1.8.1", + "bytemuck", + "const-crypto", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-define-syscall 3.0.0", + "solana-feature-gate-interface 3.1.0", + "solana-instruction 3.4.1", + "solana-instructions-sysvar 3.0.1", + "solana-invoke", + "solana-loader-v3-interface 6.1.1", + "solana-msg 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-stake-interface 2.0.2", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", + "thiserror 1.0.69", +] + +[[package]] +name = "anchor-lang-idl" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47914b4290ae2bdf4ec203aa821e6eba86d7c78ef497918938038dcc6919f953" +dependencies = [ + "anchor-lang-idl-spec", + "anyhow", + "heck 0.3.3", + "serde", + "serde_json", + "sha2 0.10.9", +] + +[[package]] +name = "anchor-lang-idl-spec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bdf143115440fe621bdac3a29a1f7472e09f6cd82b2aa569429a0c13f103838" +dependencies = [ + "anyhow", + "serde", +] + +[[package]] +name = "anchor-syn" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ef87b1d3ae59fbf265a9157a9082308af220b4ef5a64a360d8820dcf25b5a86" +dependencies = [ + "bs58", + "heck 0.3.3", + "proc-macro2", + "quote", + "serde", + "sha2 0.11.0", + "syn 2.0.119", + "thiserror 1.0.69", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anyhow" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" + +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-bn254" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-std 0.5.0", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", + "itertools 0.13.0", + "num-bigint 0.4.8", + "num-integer", + "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 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.8", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm 0.5.0", + "ark-ff-macros 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "educe", + "itertools 0.13.0", + "num-bigint 0.4.8", + "num-traits", + "paste", + "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-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive 0.4.2", + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint 0.4.8", +] + +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-serialize-derive 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "num-bigint 0.4.8", +] + +[[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-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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.8", +] + +[[package]] +name = "ark-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" +dependencies = [ + "num-traits", + "rand 0.8.8", +] + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" + +[[package]] +name = "ascii" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[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 = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[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.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" + +[[package]] +name = "bitvec" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddcec3d12c579d40898fe0a9a358a803c23e9c52ca3c425707f81c9436211837" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake3" +version = "1.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d9e454fc11f76977dc803893aff6304ed33d6a26efae8696573bea74baa27ae" +dependencies = [ + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "cpufeatures 0.3.1", + "digest 0.11.3", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "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-buffer" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "blst" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20659f9bbee16cbbd2f7393e40ab6309f5a98f76a2eb57a995ec508b72387fe" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "blstrs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a8a8ed6fefbeef4a8c7b460e4110e12c5e22a5b7cf32621aae6ad650c4dcf29" +dependencies = [ + "blst", + "byte-slice-cast", + "ff", + "group", + "pairing", + "rand_core 0.6.4", + "serde", + "subtle", +] + +[[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.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "553c5d846a6ba5150c65e3b1b8ec073bcf1abc20f9b7220de384a4443ea4e20a" +dependencies = [ + "borsh-derive 1.8.1", + "bytes", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831213f80d9423998dd696e2c5345aba6be7a0bd8cd19e31c5243e13df1cef89" +dependencies = [ + "borsh-derive-internal", + "borsh-schema-derive-internal", + "proc-macro-crate 0.1.5", + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12cdfe656708a01f89b451a7d36466e6fe6c414de0aa18fc54f864f6f9ca9f56" +dependencies = [ + "once_cell", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[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.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.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[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 = "byte-slice-cast" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" + +[[package]] +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bytemuck" +version = "1.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a1f896587b6f2c069c73d2f0913e2d590c3990285cd2f0b6aa02b786b4c679c" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" + +[[package]] +name = "cc" +version = "1.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3eb0f42d6c360dc3f8a821f6bf2fdea7f72bfd36b3076eb0e6d1e9e0752fff4" +dependencies = [ + "find-msvc-tools", + "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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" + +[[package]] +name = "cfg_eval" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45565fc9416b9896014f5732ac776f810ee53a66730c17e4020c3ec064a8f88f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common 0.1.7", + "inout", +] + +[[package]] +name = "cmov" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" + +[[package]] +name = "combine" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" +dependencies = [ + "ascii", + "byteorder", + "either", + "memchr", + "unreachable", +] + +[[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 = "const-crypto" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c06f1eb05f06cf2e380fdded278fbf056a38974299d77960555a311dcf91a52" +dependencies = [ + "keccak-const", + "sha2-const-stable", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const-oid" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" + +[[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 = "cpufeatures" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a7799fd6b852db0e61728dde9a204c423b44d689dbd432522543614b490e78" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "crypto-common" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "ct-codecs" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49fb0c6640b4507ebd99ff67677009e381ba5eee1d14df78de4a3d16eb123c39" + +[[package]] +name = "ctor" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1c888a2a4f677017373fb6c01e13e318dd9e78758445ed5eb985e355d3f8281" +dependencies = [ + "ctor-proc-macro", + "dtor", + "link-section", +] + +[[package]] +name = "ctor-proc-macro" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7ab264ea985f1bd27887d7b21ea2bb046728e05d11909ca138d700c494730db" + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "ctutils" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" +dependencies = [ + "cmov", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "rand_core 0.6.4", + "rustc_version", + "serde", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core 0.23.0", + "darling_macro 0.23.0", +] + +[[package]] +name = "darling" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed17f5901b6630b993ca003def43f2f8ef4014fc13b047b57aad617ff32bc2ec" +dependencies = [ + "darling_core 0.24.1", + "darling_macro 0.24.1", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.119", +] + +[[package]] +name = "darling_core" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6837e2cf7485aaae18f86181d2f0e9a7ed297a025e220aeabf63fdebd3a2ddff" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 3.0.5", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "darling_macro" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ac7135c3ef02b2f7833bbeb1be5ba7f966dcde8a87c6b87f65a778d71a02785" +dependencies = [ + "darling_core 0.24.1", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "dary_heap" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b1e3a325bc115f096c8b77bbf027a7c2592230e70be2d985be950d3d5e60ebe" + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid 0.9.6", + "zeroize", +] + +[[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", + "const-oid 0.9.6", + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "digest" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" +dependencies = [ + "block-buffer 0.12.1", + "const-oid 0.10.2", + "crypto-common 0.2.2", + "ctutils", +] + +[[package]] +name = "dtor" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30e4690622ab6700ced40fc370a3f07b7d111f0154bb6fb08f73b4c8834f75b6" +dependencies = [ + "dtor-proc-macro", +] + +[[package]] +name = "dtor-proc-macro" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c98b077c7463d01d22dde8a24378ddf1ca7263dc687cffbed38819ea6c21131" + +[[package]] +name = "eager" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abe71d579d1812060163dff96056261deb5bf6729b100fa2e36a68b9649ba3d3" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand_core 0.6.4", + "serde", + "sha2 0.10.9", + "subtle", + "zeroize", +] + +[[package]] +name = "ed25519-dalek-bip32" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b49a684b133c4980d7ee783936af771516011c8cd15f429dbda77245e282f03" +dependencies = [ + "derivation-path", + "ed25519-dalek", + "hmac", + "sha2 0.10.9", +] + +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "either" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "enum-iterator" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4549325971814bda7a44061bf3fe7e487d447cba01e4220a4b454d630d7a016" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685adfa4d6f3d765a26bc5dbc936577de9abf756c1feeb3089b01dd395034842" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "enum-ordinalize" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89dd01549b09589510cf0647475075d12071456586d70f5c75c98ae2a5537677" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a65863d15a4ce2888bd2f0f543cc963d3879c3a022c8ee43f6141d479a3ac815" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "ephemeral-rollups-sdk" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "838564736408ada011e9986c819b26cf0195bb2dd238e10be258731979213d75" +dependencies = [ + "base64ct", + "bincode", + "bytemuck", + "ephemeral-rollups-sdk-attribute-action 0.14.4", + "ephemeral-rollups-sdk-attribute-commit 0.14.4", + "ephemeral-rollups-sdk-attribute-delegate 0.14.4", + "ephemeral-rollups-sdk-attribute-ephemeral 0.14.4", + "ephemeral-rollups-sdk-attribute-ephemeral-accounts 0.14.4", + "five8 0.2.1", + "getrandom 0.2.17", + "magicblock-delegation-program-api", + "magicblock-magic-program-api 0.10.1", + "num-derive", + "num-traits", + "solana-account 3.4.0", + "solana-account-info 2.3.0", + "solana-account-info 3.1.1", + "solana-address 2.6.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program 2.3.0", + "solana-program 3.0.0", + "solana-program-error 2.2.2", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "spl-associated-token-account-interface", + "thiserror 1.0.69", +] + +[[package]] +name = "ephemeral-rollups-sdk" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a267fd1fe36f82ed50307b3757561ac59b1629a523fd179e2a66f4383c9afc0a" +dependencies = [ + "anchor-lang", + "base64ct", + "bincode", + "bytemuck", + "ephemeral-rollups-sdk-attribute-action 0.16.2", + "ephemeral-rollups-sdk-attribute-commit 0.16.2", + "ephemeral-rollups-sdk-attribute-delegate 0.16.2", + "ephemeral-rollups-sdk-attribute-ephemeral 0.16.2", + "ephemeral-rollups-sdk-attribute-ephemeral-accounts 0.16.2", + "ephemeral-vrf-sdk", + "ephemeral-vrf-sdk-vrf-macro", + "five8 0.2.1", + "getrandom 0.2.17", + "magicblock-delegation-program-api", + "magicblock-magic-program-api 0.10.1", + "solana-account-info 2.3.0", + "solana-address 2.6.1", + "solana-program 2.3.0", + "solana-program 3.0.0", + "solana-program-error 2.2.2", + "solana-system-interface 2.0.0", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-action" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a29f33b94edcdfcf1b9b7a61aa0ac00e8efdc66f89c8b4b573f7ea965a42c60a" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-action" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3847b70bac1717bfd3108fe310195e658665b2d971bcb4eb2aa5aaca2c9392" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-commit" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da9ed3ea8b850013f6bf768e5f0f2e1f22f1861b46908764536795bf67bb5c67" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-commit" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b08e06840701468449f75916e922fd9694b787596efe66cd9b8dccf3ef0eb5e6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-delegate" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f0d8ab90b4ecc7ac802bbd2115681f9fd42bc5a9018be79ba7aff1fe971aa36" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-delegate" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc365676345c77eed3651debb63af9b282902100e5852a1822ee1385e3b285fe" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ea166c57ee55b329be4eae730561fe02aad5620a35b4d89439d8d0c9e07c3a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fce2590d04b16345a3117c0b66b6822a96a5ef3bc7b9add073cb3a797529d8df" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral-accounts" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa3efae094f5c288746d479fd605b67bcd56d29ddcf1238046ac07eeec130c45" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral-accounts" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f70d4bbf6761a71df97fbadcb4cceef630e2d6e37189f5e674ff34bb2210823" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-vrf-sdk" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77f3741c733907c10e0d0b32f9aa485c20a73e0b1e7e673a0ac38185fb2a6c11" +dependencies = [ + "anchor-lang", + "borsh 1.8.1", + "ephemeral-vrf-sdk-vrf-macro", + "solana-program 3.0.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "ephemeral-vrf-sdk-vrf-macro" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7b8b3fe3863a27d4c0f32da7b3cfeff179772fd4124d6c9fdcb9d4ab23cd602" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "feature-probe" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" + +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "bitvec", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "filetime" +version = "0.2.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c287a33c7f0a620c38e641e7f60827713987b3c0f26e8ddc9462cc69cf75759" +dependencies = [ + "cfg-if", + "libc", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d" + +[[package]] +name = "five8" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75b8549488b4715defcb0d8a8a1c1c76a80661b5fa106b4ca0e7fce59d7d875" +dependencies = [ + "five8_core 0.1.2", +] + +[[package]] +name = "five8" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23f76610e969fa1784327ded240f1e28a3fd9520c9cec93b636fcf62dd37f772" +dependencies = [ + "five8_core 1.0.0", +] + +[[package]] +name = "five8_const" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26dec3da8bc3ef08f2c04f61eab298c3ab334523e55f076354d6d6f613799a7b" +dependencies = [ + "five8_core 0.1.2", +] + +[[package]] +name = "five8_const" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a0f1728185f277989ca573a402716ae0beaaea3f76a8ff87ef9dd8fb19436c5" +dependencies = [ + "five8_core 1.0.0", +] + +[[package]] +name = "five8_core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2551bf44bc5f776c15044b9b94153a00198be06743e262afaaa61f11ac7523a5" + +[[package]] +name = "five8_core" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "059c31d7d36c43fe39d89e55711858b4da8be7eb6dabac23c7289b1a19489406" + +[[package]] +name = "flate2" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb" +dependencies = [ + "zlib-rs", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures-core" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" + +[[package]] +name = "futures-task" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" + +[[package]] +name = "futures-util" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" +dependencies = [ + "futures-core", + "futures-task", + "pin-project-lite", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[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 = "glob" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand 0.8.8", + "rand_core 0.6.4", + "rand_xorshift", + "subtle", +] + +[[package]] +name = "hash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" +dependencies = [ + "byteorder", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284" + +[[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 = "http" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hybrid-array" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27f864f10dfb56725ce5ce5472bc52252c8f93a4ab86327122cebf62c5f59a17" +dependencies = [ + "typenum", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "indexmap" +version = "2.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", +] + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "generic-array", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "js-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2 0.10.9", + "signature", +] + +[[package]] +name = "keccak" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" +dependencies = [ + "cpufeatures 0.2.17", +] + +[[package]] +name = "keccak-const" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d8d8ce877200136358e0bbff3a77965875db3af755a11e1fa6b1b3e2df13ea" + +[[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.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" + +[[package]] +name = "libflate" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "561a8da1a50e1428d3c51321dafeca849df992a5bb67720c386131234caba82e" +dependencies = [ + "adler32", + "crc32fast", + "dary_heap", + "libflate_lz77", + "no_std_io2", +] + +[[package]] +name = "libflate_lz77" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7a10e427698aef6eef269482776debfef63384d30f13aad39a1a95e0e098fd" +dependencies = [ + "hashbrown 0.16.1", + "no_std_io2", + "rle-decode-fast", +] + +[[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", + "libsecp256k1-core 0.2.2", + "libsecp256k1-gen-ecmult 0.2.1", + "libsecp256k1-gen-genmult 0.2.1", + "rand 0.7.3", + "serde", + "sha2 0.9.9", +] + +[[package]] +name = "libsecp256k1" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" +dependencies = [ + "arrayref", + "base64 0.22.1", + "digest 0.9.0", + "libsecp256k1-core 0.3.0", + "libsecp256k1-gen-ecmult 0.3.0", + "libsecp256k1-gen-genmult 0.3.0", + "rand 0.8.8", + "serde", + "sha2 0.9.9", +] + +[[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-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" +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 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" +dependencies = [ + "libsecp256k1-core 0.3.0", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" +dependencies = [ + "libsecp256k1-core 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" +dependencies = [ + "libsecp256k1-core 0.3.0", +] + +[[package]] +name = "libsodium-rs" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b8cd48c80d6c6fa5a4612d242941067219555baea82b0b49c92ea9d8156b59c" +dependencies = [ + "ct-codecs", + "ctor", + "libc", + "libsodium-sys-stable", + "pkg-config", + "thiserror 1.0.69", + "zeroize", +] + +[[package]] +name = "libsodium-sys-stable" +version = "1.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b04bf6da2c98b727af37ab62cb505f4d751b975b034a9b9ad491d333b0564e" +dependencies = [ + "cc", + "libc", + "libflate", + "minisign-verify", + "pkg-config", + "tar", + "ureq", + "vcpkg", + "zip", +] + +[[package]] +name = "light-poseidon" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c9a85a9752c549ceb7578064b4ed891179d20acd85f27318573b64d2d7ee7ee" +dependencies = [ + "ark-bn254 0.4.0", + "ark-ff 0.4.2", + "num-bigint 0.4.8", + "thiserror 1.0.69", +] + +[[package]] +name = "light-poseidon" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47a1ccadd0bb5a32c196da536fd72c59183de24a055f6bf0513bf845fefab862" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ff 0.5.0", + "num-bigint 0.4.8", + "thiserror 1.0.69", +] + +[[package]] +name = "link-section" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52437d47b0358721ec869cc7374b2a21f7b2237af9b439c0391341a1fbfbf1b" + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[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.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" + +[[package]] +name = "magicblock-account" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b5671bd1525eeab67f240455dffff31a4f6d27b067a3531f2d47c7d5af0c6e" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "thiserror 2.0.20", +] + +[[package]] +name = "magicblock-delegation-program-api" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea16e41e04319201919afca98dd4241b18549f2db0c68f58e4bc531537b5dab" +dependencies = [ + "bincode", + "borsh 0.10.4", + "borsh 1.8.1", + "bytemuck", + "const-crypto", + "libsodium-rs", + "num_enum", + "pinocchio 0.10.2", + "pinocchio-log", + "pinocchio-pubkey", + "pinocchio-system", + "rkyv", + "serde", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-loader-v3-interface 6.1.1", + "solana-program 3.0.0", + "solana-pubkey 2.4.0", + "solana-sdk", + "solana-sdk-ids 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-system-interface 2.0.0", + "static_assertions", + "strum", + "thiserror 2.0.20", +] + +[[package]] +name = "magicblock-litesvm" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82cfc1c7f4348c300f58ddd5ae8613e9b1d08564a7956af43822de59cb76d039" +dependencies = [ + "agave-feature-set", + "agave-reserved-account-keys", + "ansi_term", + "indexmap", + "itertools 0.15.0", + "log", + "magicblock-account", + "solana-account 4.3.2", + "solana-address 2.6.1", + "solana-address-lookup-table-interface 3.1.0", + "solana-builtins", + "solana-clock 3.1.1", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-feature-gate-interface 4.0.0", + "solana-fee", + "solana-fee-calculator 3.2.2", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-instructions-sysvar 4.0.0", + "solana-keypair", + "solana-last-restart-slot 3.1.0", + "solana-loader-v3-interface 8.0.1", + "solana-loader-v4-interface 3.1.0", + "solana-message 4.4.1", + "solana-native-token 3.0.0", + "solana-nonce 3.2.1", + "solana-nonce-account", + "solana-precompile-error", + "solana-program-error 3.0.1", + "solana-program-runtime", + "solana-rent 4.3.0", + "solana-runtime-transaction", + "solana-sdk-ids 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-signature 3.4.1", + "solana-signer", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stake-history", + "solana-svm-callback", + "solana-svm-log-collector", + "solana-svm-timings", + "solana-svm-transaction", + "solana-syscalls", + "solana-system-interface 3.2.0", + "solana-system-program", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "magicblock-magic-program-api" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291f7a68f6cc622741a3fae513bd71640911abefd1fae2b2602b934515ed4b95" +dependencies = [ + "bincode", + "const-crypto", + "serde", + "solana-program 2.3.0", + "solana-signature 2.3.0", +] + +[[package]] +name = "magicblock-magic-program-api" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dc8fba0307c90b91b70c9ed06d4242d6c4159f331b2f05bf8f875c2a94e0e98" +dependencies = [ + "bincode", + "const-crypto", + "serde", + "solana-program 3.0.0", + "solana-signature 3.4.1", +] + +[[package]] +name = "magicsvm" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e3effa3b8d28f3e0a14d1b72afcf65c2bec2331882a19065ec4424cd5c7ee37" +dependencies = [ + "bincode", + "borsh 1.8.1", + "ephemeral-rollups-sdk 0.14.4", + "magicblock-account", + "magicblock-delegation-program-api", + "magicblock-litesvm", + "magicblock-magic-program-api 0.8.8", + "solana-account 4.3.2", + "solana-address 2.6.1", + "solana-clock 3.1.1", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-program-runtime", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-signer", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[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 = "minisign-verify" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22f9645cb765ea72b8111f36c522475d2daa0d22c957a9826437e97534bc4e9e" + +[[package]] +name = "no_std_io2" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418abd1b6d34fbf6cae440dc874771b0525a604428704c76e48b29a5e67b8003" +dependencies = [ + "memchr", +] + +[[package]] +name = "num" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" +dependencies = [ + "num-bigint 0.2.6", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +dependencies = [ + "autocfg", + "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.119", +] + +[[package]] +name = "num-integer" +version = "0.1.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92800bd69a1eac91786bcfe9da64a897eb72911b8dc3095decbd07429e8048b" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +dependencies = [ + "autocfg", + "num-bigint 0.2.6", + "num-integer", + "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_cpus" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group", +] + +[[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 = "pastey" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4" + +[[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 = "percentage" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd23b938276f14057220b707937bcb42fa76dda7560e57a2da30cb52d557937" +dependencies = [ + "num", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pinocchio" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8afe4f39c0e25cc471b35b89963312791a5162d45a86578cbeaad9e5e7d1b3b" + +[[package]] +name = "pinocchio" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06810dac15a4ef83d3dabdb4f2f22fb39c9adff669cd2781da4f716510a647c" +dependencies = [ + "solana-account-view", + "solana-address 2.6.1", + "solana-define-syscall 4.0.1", + "solana-instruction-view", + "solana-program-error 3.0.1", +] + +[[package]] +name = "pinocchio-log" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd11022408f312e6179ece321c1f7dc0d1b2aa7765fddd39b2a7378d65a899e8" +dependencies = [ + "pinocchio-log-macro", +] + +[[package]] +name = "pinocchio-log-macro" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69fb52edb3c5736b044cc462b0957b9767d0f574d138f4e2761438c498a4b467" +dependencies = [ + "quote", + "regex", + "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 0.1.4", + "pinocchio 0.9.3", + "sha2-const-stable", +] + +[[package]] +name = "pinocchio-system" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24044a0815753862b558e179e78f03f7344cb755de48617a09d7d23b50883b6c" +dependencies = [ + "pinocchio 0.10.2", + "solana-address 2.6.1", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "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.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[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.119", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +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 = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e058c7de0b26af77780c769414d6257830bb240f3c38477dbc2c16e5f54d6d4c" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", +] + +[[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_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", +] + +[[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_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] + +[[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_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + +[[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.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "rend" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "rkyv" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2297bf9c81a3f0dc96bc9521370b88f054168c29826a75e89c55ff196e7ed6a1" +dependencies = [ + "bitvec", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d7b42d4b8d06048d3ac8db0eb31bcb942cbeb709f0b5f2b2ebde398d3038f5" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rle-decode-fast" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" + +[[package]] +name = "rustc-demangle" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b74b56ffa8bb2830709a538c2cbcae9aa062db0d2a42563bfb09bdaae44020eb" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-big-array" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" +dependencies = [ + "serde", +] + +[[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.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "serde_json" +version = "1.0.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_with" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "935177bb8c0cd8ca1a4e6d1a2ac8988bea69cab4f9d3a31311e012ad27868ea4" +dependencies = [ + "serde_core", + "serde_with_macros", +] + +[[package]] +name = "serde_with_macros" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d607aa01a3cb0ad757d6fd216136910db3c97b102fe686585689615a02dbcdc" +dependencies = [ + "darling 0.24.1", + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "session-keys" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22bb80c43cf7ff13790166c4f2aed099e3707cea31fcf359284fdebc56b6367" +dependencies = [ + "anchor-lang", + "session-keys-macros", + "solana-security-txt", +] + +[[package]] +name = "session-keys-macros" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4fb1ba67eabc3cb947145af610d0b3599124333540f6e494812f28db2f3eefe" +dependencies = [ + "session-keys-macros-attribute", +] + +[[package]] +name = "session-keys-macros-attribute" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7962ee082ac6ed55be82e97542b2811f26b48b8973aa4a4fc4474b66d3e194a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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 0.2.17", + "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 0.2.17", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.1", + "digest 0.11.3", +] + +[[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.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77fd7028345d415a4034cf8777cd4f8ab1851274233b45f84e3d955502d93874" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "simd-adler32" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba467056f1b547ed52077911161fc86985becbc60e8e1857c8a144dab0def891" + +[[package]] +name = "solana-account" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f949fe4edaeaea78c844023bfc1c898e0b1f5a100f8a8d2d0f85d0a7b090258" +dependencies = [ + "solana-account-info 2.3.0", + "solana-clock 2.2.3", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-account" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efc0ed36decb689413b9da5d57f2be49eea5bebb3cf7897015167b0c4336e731" +dependencies = [ + "bincode", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 3.1.1", +] + +[[package]] +name = "solana-account" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26788ba0d7eb5b250edda3e1d393739bafd5daf94882f2261d14f5ab0d6a25e0" +dependencies = [ + "bincode", + "qualifier_attr", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 4.1.0", +] + +[[package]] +name = "solana-account-info" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8f5152a288ef1912300fc6efa6c2d1f9bb55d9398eb6c72326360b8063987da" +dependencies = [ + "bincode", + "serde", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-account-info" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9cf16495d9eb53e3d04e72366a33bb1c20c24e78c171d8b8f5978357b63ae95" +dependencies = [ + "bincode", + "serde_core", + "solana-address 2.6.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.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.6.1", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-address" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2ecac8e1b7f74c2baa9e774c42817e3e75b20787134b76cc4d45e8a604488f5" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-address" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c93e262f671bf402e1040e4a7e40b05d81da5956c7681948c975a0997517bb" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8 1.0.0", + "five8_const 1.0.0", + "rand 0.9.5", + "serde", + "serde_derive", + "sha2-const-stable", + "solana-atomic-u64 3.0.1", + "solana-define-syscall 5.2.0", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.1.0", + "wincode", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1673f67efe870b64a65cb39e6194be5b26527691ce5922909939961a6e6b395" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-slot-hashes 2.2.1", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115b4f773acc4f3f3cb986b0d335e9845c0368c82b0940410935bc11ae065578" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", +] + +[[package]] +name = "solana-atomic-u64" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52e52720efe60465b052b9e7445a01c17550666beec855cce66f44766697bc2" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "solana-atomic-u64" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "085db4906d89324cef2a30840d59eaecf3d4231c560ec7c9f6614a93c652f501" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "solana-big-mod-exp" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75db7f2bbac3e62cfd139065d15bcda9e2428883ba61fc8d27ccb251081e7567" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-big-mod-exp" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30c80fb6d791b3925d5ec4bf23a7c169ef5090c013059ec3ed7d0b2c04efa085" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "solana-define-syscall 3.0.0", +] + +[[package]] +name = "solana-bincode" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19a3787b8cf9c9fe3dd360800e8b70982b9e5a8af9e11c354b6665dd4a003adc" +dependencies = [ + "bincode", + "serde", + "solana-instruction 2.3.3", +] + +[[package]] +name = "solana-bincode" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "278a1a5bad62cd9da89ac8d4b7ec444e83caa8ae96aa656dfc27684b28d49a5d" +dependencies = [ + "bincode", + "serde_core", + "solana-instruction-error", +] + +[[package]] +name = "solana-blake3-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a0801e25a1b31a14494fc80882a036be0ffd290efc4c2d640bfcca120a4672" +dependencies = [ + "blake3", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-blake3-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7116e1d942a2432ca3f514625104757ab8a56233787e95144c93950029e31176" +dependencies = [ + "blake3", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-bls-signatures" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "654ea8d31bbb4b0b9c28f9c545edb32691de27d4e2fc0e252c1ff47da50c5f2a" +dependencies = [ + "base64 0.22.1", + "blst", + "blstrs", + "cfg_eval", + "ff", + "group", + "pairing", + "rand 0.8.8", + "serde", + "serde_json", + "serde_with", + "thiserror 2.0.20", + "wincode", + "zeroize", +] + +[[package]] +name = "solana-bls12-381-syscall" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94e8256fda0542709fd1320a96d81c3c66e10ac5f680cca9b991d7d3b0e3fe86" +dependencies = [ + "blst", + "blstrs", + "bytemuck", + "bytemuck_derive", + "pairing", +] + +[[package]] +name = "solana-bn254" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62ff13a8867fcc7b0f1114764e1bf6191b4551dcaf93729ddc676cd4ec6abc9f" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "bytemuck", + "solana-define-syscall 5.2.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-borsh" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718333bcd0a1a7aed6655aa66bef8d7fb047944922b2d3a18f49cbc13e73d004" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", +] + +[[package]] +name = "solana-borsh" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c04abbae16f57178a163125805637b8a076175bb5c0002fb04f4792bea901cf7" +dependencies = [ + "borsh 1.8.1", +] + +[[package]] +name = "solana-bpf-loader-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabcc3a5785886f026b438771bf6b221b0d4877f6089af79d432c7fe877a6cd4" +dependencies = [ + "bincode", + "qualifier_attr", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-clock 3.1.1", + "solana-instruction 3.4.1", + "solana-loader-v3-interface 7.0.0", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-type-overrides", + "solana-syscalls", + "solana-system-interface 3.2.0", + "solana-transaction-context", +] + +[[package]] +name = "solana-builtins" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ab49c6f8a77bff54e811e9674747fd435e218dcbe71120039a865515151998c" +dependencies = [ + "agave-feature-set", + "solana-bpf-loader-program", + "solana-compute-budget-program", + "solana-hash 4.5.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-program", + "solana-vote-program", + "solana-zk-elgamal-proof-program", + "solana-zk-token-proof-program", +] + +[[package]] +name = "solana-builtins-default-costs" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76792b1ecab1c5f127f16062926850b52c4bb51ac1a93d220635fb13221d3503" +dependencies = [ + "agave-feature-set", + "ahash 0.8.12", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-clock" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8584296123df8fe229b95e2ebfd37ae637fe9db9b7d4dd677ac5a78e80dbfce" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-clock" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0acdace90d96e2c9e70d681465b4fe888b6bcf27c354ae9774e9f8a3b72923d" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-compute-budget" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e200042fd149d565521f7b31e082c0db0e022e9860c7e013130f812984ae846f" +dependencies = [ + "solana-fee-structure", + "solana-program-runtime", +] + +[[package]] +name = "solana-compute-budget-instruction" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a651fc5d082fd88090a7336ea85599b1ffcf6503dbcff575ae1bb2fb1cec238" +dependencies = [ + "agave-feature-set", + "solana-borsh 3.0.2", + "solana-builtins-default-costs", + "solana-compute-budget", + "solana-compute-budget-interface", + "solana-instruction 3.4.1", + "solana-packet 4.2.0", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-svm-transaction", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-compute-budget-interface" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8292c436b269ad23cecc8b24f7da3ab07ca111661e25e00ce0e1d22771951ab9" +dependencies = [ + "borsh 1.8.1", + "solana-instruction 3.4.1", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-compute-budget-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e314aeb4a86507ba77fb2d6ce9f5836af6aeaaedd4c5314e310ca72f73afe367" +dependencies = [ + "solana-program-runtime", +] + +[[package]] +name = "solana-cpi" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dc71126edddc2ba014622fc32d0f5e2e78ec6c5a1e0eb511b85618c09e9ea11" +dependencies = [ + "solana-account-info 2.3.0", + "solana-define-syscall 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-stable-layout 2.2.1", +] + +[[package]] +name = "solana-cpi" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dea26709d867aada85d0d3617db0944215c8bb28d3745b912de7db13a23280c" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 4.0.1", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-stable-layout 3.0.1", +] + +[[package]] +name = "solana-curve25519" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14b4d2a4bf0d0b0a86c22111917e86e8bd39a7b31420fb2c7d73eb83761fc7af" +dependencies = [ + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "solana-define-syscall 5.2.0", + "subtle", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-decode-error" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c781686a18db2f942e70913f7ca15dc120ec38dcab42ff7557db2c70c625a35" +dependencies = [ + "num-traits", +] + +[[package]] +name = "solana-define-syscall" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ae3e2abcf541c8122eafe9a625d4d194b4023c20adde1e251f94e056bb1aee2" + +[[package]] +name = "solana-define-syscall" +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-define-syscall" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf8209ece2bd9f1450e672858ffc0e5c8c786ff6916d2a862b126dd0128f380f" + +[[package]] +name = "solana-derivation-path" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff71743072690fdbdfcdc37700ae1cb77485aaad49019473a81aee099b1e0b8c" +dependencies = [ + "derivation-path", + "qstring", + "uriparse", +] + +[[package]] +name = "solana-epoch-info" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e093c84f6ece620a6b10cd036574b0cd51944231ab32d81f80f76d54aba833e6" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-epoch-rewards" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b575d3dd323b9ea10bb6fe89bf6bf93e249b215ba8ed7f68f1a3633f384db7" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 2.3.0", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-rewards" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf7eb4986b0b1d6f562b21f75a836f1a6df6e00c275efcef50aab5c144dc59e" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-epoch-rewards-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee8beac9bff4db9225e57d532d169b0be5e447f1e6601a2f50f27a01bf5518f" +dependencies = [ + "siphasher", + "solana-address 2.6.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-epoch-schedule" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fce071fbddecc55d727b1d7ed16a629afe4f6e4c217bc8d00af3b785f6f67ed" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-schedule" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8116e6ffa6002237d5ab5edcbda17f9ba66b6742c45a89c9fb40a94dbacd4c1d" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-program-error 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-epoch-stake" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "027e6d0b9e7daac5b2ac7c3f9ca1b727861121d9ef05084cf435ff736051e7c2" +dependencies = [ + "solana-define-syscall 5.2.0", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-example-mocks" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84461d56cbb8bb8d539347151e0525b53910102e4bced875d49d5139708e39d3" +dependencies = [ + "serde", + "serde_derive", + "solana-address-lookup-table-interface 2.2.2", + "solana-clock 2.2.3", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-keccak-hasher 2.2.1", + "solana-message 2.4.0", + "solana-nonce 2.2.1", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-example-mocks" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978855d164845c1b0235d4b4d101cadc55373fffaf0b5b6cfa2194d25b2ed658" +dependencies = [ + "serde", + "serde_derive", + "solana-address-lookup-table-interface 3.1.0", + "solana-clock 3.1.1", + "solana-hash 3.1.0", + "solana-instruction 3.4.1", + "solana-keccak-hasher 3.1.0", + "solana-message 3.1.0", + "solana-nonce 3.2.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 2.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43f5c5382b449e8e4e3016fb05e418c53d57782d8b5c30aa372fc265654b956d" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 2.2.1", + "solana-account-info 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75ca9b5cbb6f500f7fd73db5bd95640f71a83f04d6121a0e59a43b202dca2731" +dependencies = [ + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd7545e02f91da1d6996f32b18f7796aa01e0682f8f3a7434b82cd1a10448add" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-fee" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c32df41c2c93a567a1612a973faddeaca093276677c157ef9cb60a378289fc69" +dependencies = [ + "agave-feature-set", + "solana-fee-structure", + "solana-svm-transaction", +] + +[[package]] +name = "solana-fee-calculator" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89bc408da0fb3812bc3008189d148b4d3e08252c79ad810b245482a3f70cd8d" +dependencies = [ + "log", + "serde", + "serde_derive", +] + +[[package]] +name = "solana-fee-calculator" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef67f01cc6a0c72e99a08d0d484683f995de4c80e9568728fa77d1537f9b7e09" +dependencies = [ + "log", + "serde", + "serde_derive", + "wincode", +] + +[[package]] +name = "solana-fee-structure" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2abdb1223eea8ec64136f39cb1ffcf257e00f915c957c35c0dd9e3f4e700b0" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-get-sysvar" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef3bc859fc036ed490146793557386cbfae614ebba4adc704c37d94350824ed4" +dependencies = [ + "solana-address 2.6.1", + "solana-define-syscall 5.2.0", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-hard-forks" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb50b2df7a36a2af58ce24bb0229622ac845dcc196e8c23b3ea4a29dd6bee09" + +[[package]] +name = "solana-hash" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b96e9f0300fa287b545613f007dfe20043d7812bee255f418c1eb649c93b63" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "five8 0.2.1", + "js-sys", + "serde", + "serde_derive", + "solana-atomic-u64 2.2.1", + "solana-sanitize 2.2.1", + "wasm-bindgen", +] + +[[package]] +name = "solana-hash" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "337c246447142f660f778cf6cb582beba8e28deb05b3b24bfb9ffd7c562e5f41" +dependencies = [ + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-hash" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f4c847893a2ea50b4ae3ca723b124e07cd0544fecea3598f785168f9b78333f" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "five8 1.0.0", + "serde", + "serde_derive", + "solana-atomic-u64 3.0.1", + "solana-sanitize 3.0.1", + "wincode", +] + +[[package]] +name = "solana-hash-512" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce934b02bab639341f2fd62c3e7e3c39dcceb47f0196b7630ed1f82ecb704bd" + +[[package]] +name = "solana-inflation" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf186550ea7438e2708bd0c233f01fe9c3fa45b9b607ff993b650ce60af102e" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-instruction" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab5682934bd1f65f8d2c16f21cb532526fcc1a09f796e2cacdb091eee5774ad" +dependencies = [ + "bincode", + "borsh 1.8.1", + "getrandom 0.2.17", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "serde_json", + "solana-define-syscall 2.3.0", + "solana-pubkey 2.4.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-instruction" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3957ca1d31107efd9a6bb88b25c348ca5e3b4b6683e3d08adb86d3d17aa01f1" +dependencies = [ + "bincode", + "borsh 1.8.1", + "serde", + "serde_derive", + "solana-define-syscall 5.2.0", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "wincode", +] + +[[package]] +name = "solana-instruction-error" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b7d34343838343a3755b7dfb1e438d94c6db2263b519cfe3c2257af932b6e93" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-program-error 3.0.1", +] + +[[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.6.1", + "solana-define-syscall 4.0.1", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0e85a6fad5c2d0c4f5b91d34b8ca47118fc593af706e523cdbedf846a954f57" +dependencies = [ + "bitflags", + "solana-account-info 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serialize-utils 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e0732294560e88ecdb2bbc656e67383e9f88c78ec09469cef172f0d28cd1bcd" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-serialize-utils 3.1.2", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e38363a181313d607f7a118df2b401bb27b477a0104b09283cbf504f5f0f00cc" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-serialize-utils 3.1.2", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-invoke" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4065031f5c7dd29ef5f5003c1a353011eeabbafa6c5a5033da0cedbfca824b94" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 3.0.0", + "solana-instruction 3.4.1", + "solana-program-entrypoint 3.1.1", + "solana-stable-layout 3.0.1", +] + +[[package]] +name = "solana-keccak-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7aeb957fbd42a451b99235df4942d96db7ef678e8d5061ef34c9b34cae12f79" +dependencies = [ + "sha3", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-keccak-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed1c0d16d6fdeba12291a1f068cdf0d479d9bff1141bf44afd7aa9d485f65ef8" +dependencies = [ + "sha3", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-keypair" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "263d614c12aa267a3278703175fd6440552ca61bc960b5a02a4482720c53438b" +dependencies = [ + "ed25519-dalek", + "ed25519-dalek-bip32", + "five8 1.0.0", + "five8_core 1.0.0", + "rand 0.9.5", + "solana-address 2.6.1", + "solana-derivation-path", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-last-restart-slot" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a6360ac2fdc72e7463565cd256eedcf10d7ef0c28a1249d261ec168c1b55cdd" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-last-restart-slot" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22474b83d3c7c318e1c3a725784fc2d1d03b728e36369e58ce48769a61ed85e" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-loader-v2-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8ab08006dad78ae7cd30df8eea0539e207d08d91eaefb3e1d49a446e1c49654" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f7162a05b8b0773156b443bccd674ea78bb9aa406325b467ea78c06c99a63a2" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e0538d4dbc9022e01616f1c58f2db98ece739c5d5ed4a2ef8737a953e76a2d4" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68029ab11d9c891d4ce23ada75745e40f983c5674af366f447b672569634231b" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "362b468fbde4c20521b9ff5ef743bc0d9b410455a5a92a8b29fd46954e89345f" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", + "wincode", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "706a777242f1f39a83e2a96a2a6cb034cb41169c6ecbee2cf09cb873d9659e7e" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c948b33ff81fa89699911b207059e493defdba9647eaf18f23abdf3674e0fb" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-message" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1796aabce376ff74bf89b78d268fa5e683d7d7a96a0a4e4813ec34de49d5314b" +dependencies = [ + "bincode", + "blake3", + "lazy_static", + "serde", + "serde_derive", + "solana-bincode 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", + "solana-transaction-error 2.2.1", + "wasm-bindgen", +] + +[[package]] +name = "solana-message" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0448b1fd891c5f46491e5dc7d9986385ba3c852c340db2911dd29faa01d2b08d" +dependencies = [ + "bincode", + "blake3", + "lazy_static", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-message" +version = "4.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e29e655f222a3a64145fedceacdca3e696ba7aded1dbd5391aa09d5fbfba53c" +dependencies = [ + "blake3", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-msg" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36a1a14399afaabc2781a1db09cb14ee4cc4ee5c7a5a3cfcc601811379a8092" +dependencies = [ + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-msg" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726b7cbbc6be6f1c6f29146ac824343b9415133eee8cce156452ad1db93f8008" +dependencies = [ + "solana-define-syscall 5.2.0", +] + +[[package]] +name = "solana-native-token" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61515b880c36974053dd499c0510066783f0cc6ac17def0c7ef2a244874cf4a9" + +[[package]] +name = "solana-native-token" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae8dd4c280dca9d046139eb5b7a5ac9ad10403fbd64964c7d7571214950d758f" + +[[package]] +name = "solana-nonce" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703e22eb185537e06204a5bd9d509b948f0066f2d1d814a6f475dafb3ddf1325" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-pubkey 2.4.0", + "solana-sha256-hasher 2.3.0", +] + +[[package]] +name = "solana-nonce" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4172d5b33a0a38fcdb2af8f84406570dd51567267da96c28ad0f31fc11621c0" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator 3.2.2", + "solana-hash 4.5.0", + "solana-pubkey 4.2.0", + "solana-sha256-hasher 3.1.0", + "wincode", +] + +[[package]] +name = "solana-nonce-account" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b81bf7e2aa8c443724051507c1007d0b6d9c34b70925d3232dc78f5ca485209e" +dependencies = [ + "solana-account 4.3.2", + "solana-hash 4.5.0", + "solana-nonce 3.2.1", + "solana-sdk-ids 3.1.0", + "wincode", +] + +[[package]] +name = "solana-offchain-message" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e2a1141a673f72a05cf406b99e4b2b8a457792b7c01afa07b3f00d4e2de393" +dependencies = [ + "num_enum", + "solana-hash 3.1.0", + "solana-packet 3.0.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.1.0", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-packet" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edf2f25743c95229ac0fdc32f8f5893ef738dbf332c669e9861d33ddb0f469d" +dependencies = [ + "bitflags", +] + +[[package]] +name = "solana-packet" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a2a582d7863548f047f49aa3745c076cfa9e1364baa080ef0c1210f0e4ebda" +dependencies = [ + "bitflags", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-poseidon" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "737b8ab25bf4cc8e618f80f1fe40709b2ace708bc764a36b8a4c81eea8c07034" +dependencies = [ + "ark-bn254 0.4.0", + "ark-bn254 0.5.0", + "light-poseidon 0.2.0", + "light-poseidon 0.4.0", + "solana-define-syscall 4.0.1", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-precompile-error" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cafcd950de74c6c39d55dc8ca108bbb007799842ab370ef26cf45a34453c31e1" +dependencies = [ + "num-traits", +] + +[[package]] +name = "solana-presigner" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f704eaf825be3180832445b9e4983b875340696e8e7239bf2d535b0f86c14a2" +dependencies = [ + "solana-pubkey 3.0.0", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-program" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98eca145bd3545e2fbb07166e895370576e47a00a7d824e325390d33bf467210" +dependencies = [ + "bincode", + "blake3", + "borsh 0.10.4", + "borsh 1.8.1", + "bs58", + "bytemuck", + "console_error_panic_hook", + "console_log", + "getrandom 0.2.17", + "lazy_static", + "log", + "memoffset", + "num-bigint 0.4.8", + "num-derive", + "num-traits", + "rand 0.8.8", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 2.3.0", + "solana-address-lookup-table-interface 2.2.2", + "solana-atomic-u64 2.2.1", + "solana-big-mod-exp 2.2.1", + "solana-bincode 2.2.1", + "solana-blake3-hasher 2.2.1", + "solana-borsh 2.2.1", + "solana-clock 2.2.3", + "solana-cpi 2.2.1", + "solana-decode-error", + "solana-define-syscall 2.3.0", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", + "solana-example-mocks 2.2.1", + "solana-feature-gate-interface 2.2.2", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-instructions-sysvar 2.2.2", + "solana-keccak-hasher 2.2.1", + "solana-last-restart-slot 2.2.1", + "solana-loader-v2-interface", + "solana-loader-v3-interface 5.0.0", + "solana-loader-v4-interface 2.2.1", + "solana-message 2.4.0", + "solana-msg 2.2.1", + "solana-native-token 2.3.0", + "solana-nonce 2.2.1", + "solana-program-entrypoint 2.3.0", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-program-option 2.2.1", + "solana-program-pack 2.2.1", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-secp256k1-recover 2.2.1", + "solana-serde-varint 2.2.2", + "solana-serialize-utils 2.2.1", + "solana-sha256-hasher 2.3.0", + "solana-short-vec 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stable-layout 2.2.1", + "solana-stake-interface 1.2.1", + "solana-system-interface 1.0.0", + "solana-sysvar 2.3.0", + "solana-sysvar-id 2.2.1", + "solana-vote-interface 2.2.6", + "thiserror 2.0.20", + "wasm-bindgen", +] + +[[package]] +name = "solana-program" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91b12305dd81045d705f427acd0435a2e46444b65367d7179d7bdcfc3bc5f5eb" +dependencies = [ + "memoffset", + "solana-account-info 3.1.1", + "solana-big-mod-exp 3.0.0", + "solana-blake3-hasher 3.1.0", + "solana-borsh 3.0.2", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-define-syscall 3.0.0", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-epoch-stake", + "solana-example-mocks 3.0.0", + "solana-fee-calculator 3.2.2", + "solana-hash 3.1.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-instructions-sysvar 3.0.1", + "solana-keccak-hasher 3.1.0", + "solana-last-restart-slot 3.1.0", + "solana-msg 3.1.0", + "solana-native-token 3.0.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.3.0", + "solana-serde-varint 3.0.1", + "solana-serialize-utils 3.1.2", + "solana-sha256-hasher 3.1.0", + "solana-short-vec 3.2.2", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stable-layout 3.0.1", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-program-entrypoint" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32ce041b1a0ed275290a5008ee1a4a6c48f5054c8a3d78d313c08958a06aedbd" +dependencies = [ + "solana-account-info 2.3.0", + "solana-msg 2.2.1", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-program-entrypoint" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c9b0a1ff494e05f503a08b3d51150b73aa639544631e510279d6375f290997" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 4.0.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-program-error" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ee2e0217d642e2ea4bee237f37bd61bb02aec60da3647c48ff88f6556ade775" +dependencies = [ + "borsh 1.8.1", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-msg 2.2.1", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-program-error" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f04fa578707b3612b095f0c8e19b66a1233f7c42ca8082fcb3b745afcc0add6" +dependencies = [ + "borsh 1.8.1", + "serde", + "serde_derive", +] + +[[package]] +name = "solana-program-memory" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a5426090c6f3fd6cfdc10685322fede9ca8e5af43cd6a59e98bfe4e91671712" +dependencies = [ + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-program-memory" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4068648649653c2c50546e9a7fb761791b5ab0cda054c771bb5808d3a4b9eb52" +dependencies = [ + "solana-define-syscall 4.0.1", +] + +[[package]] +name = "solana-program-option" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc677a2e9bc616eda6dbdab834d463372b92848b2bfe4a1ed4e4b4adba3397d0" + +[[package]] +name = "solana-program-option" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a88006a9b8594088cec9027ab77caaaa258a2aaa2083d3f086c44b42e50aeab" + +[[package]] +name = "solana-program-pack" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "319f0ef15e6e12dc37c597faccb7d62525a509fec5f6975ecb9419efddeb277b" +dependencies = [ + "solana-program-error 2.2.2", +] + +[[package]] +name = "solana-program-pack" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7701cb15b90667ae1c89ef4ac35a59c61e66ce58ddee13d729472af7f41d59" +dependencies = [ + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-program-runtime" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2b7281bd4a6072c7e11b611f771f4e61be1d45ea0d2aecfbb77d02d1b5877d4" +dependencies = [ + "base64 0.22.1", + "bincode", + "cfg-if", + "itertools 0.14.0", + "log", + "percentage", + "rand 0.9.5", + "serde", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-loader-v3-interface 7.0.0", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", + "solana-stable-layout 3.0.1", + "solana-stake-interface 4.3.0", + "solana-svm-callback", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-timings", + "solana-svm-transaction", + "solana-svm-type-overrides", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction-context", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "solana-pubkey" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b62adb9c3261a052ca1f999398c388f1daf558a1b492f60a6d9e64857db4ff1" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8 0.2.1", + "five8_const 0.1.4", + "getrandom 0.2.17", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-atomic-u64 2.2.1", + "solana-decode-error", + "solana-define-syscall 2.3.0", + "solana-sanitize 2.2.1", + "solana-sha256-hasher 2.3.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-pubkey" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8909d399deb0851aa524420beeb5646b115fd253ef446e35fe4504c904da3941" +dependencies = [ + "rand 0.8.8", + "solana-address 1.1.0", +] + +[[package]] +name = "solana-pubkey" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7db719574990de7e8b0f55a8593ac92a5ccb42c8ce67b3e4bf05b139d5d9ee71" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-rent" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1aea8fdea9de98ca6e8c2da5827707fb3842833521b528a713810ca685d2480" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-rent" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e860d5499a705369778647e97d760f7670adfb6fc8419dd3d568deccd46d5487" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-rent" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39f0d780bf8e8a1fe8b5b5fce1acad6b209485b86dec246e7523d5e4a8b7c7fc" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-runtime-transaction" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60cf942dcefc0f4d600fed1f4d220ff27abaa04def1fefa37e0e0c2a96e4179" +dependencies = [ + "agave-feature-set", + "agave-transaction-view", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-svm-transaction", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-sanitize" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61f1bc1357b8188d9c4a3af3fc55276e56987265eb7ad073ae6f8180ee54cecf" + +[[package]] +name = "solana-sanitize" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf09694a0fc14e5ffb18f9b7b7c0f15ecb6eac5b5610bf76a1853459d19daf9" + +[[package]] +name = "solana-sbpf" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d777d7a89267dd133e985113c7e7f820fb7cfd9123a4a350cf8b39ebae1920bc" +dependencies = [ + "byteorder", + "combine", + "hash32", + "libc", + "log", + "rand 0.8.8", + "rustc-demangle", + "thiserror 2.0.20", + "winapi", +] + +[[package]] +name = "solana-sdk" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f03df7969f5e723ad31b6c9eadccc209037ac4caa34d8dc259316b05c11e82b" +dependencies = [ + "bincode", + "bs58", + "serde", + "solana-account 3.4.0", + "solana-epoch-info", + "solana-epoch-rewards-hasher", + "solana-fee-structure", + "solana-inflation", + "solana-keypair", + "solana-message 3.1.0", + "solana-offchain-message", + "solana-presigner", + "solana-program 3.0.0", + "solana-program-memory 3.1.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-serde", + "solana-serde-varint 3.0.1", + "solana-short-vec 3.2.2", + "solana-shred-version", + "solana-signature 3.4.1", + "solana-signer", + "solana-time-utils", + "solana-transaction 3.1.0", + "solana-transaction-error 3.3.2", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-sdk-ids" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5d8b9cc68d5c88b062a33e23a6466722467dde0035152d8fb1afbcdf350a5f" +dependencies = [ + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-sdk-ids" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "def234c1956ff616d46c9dd953f251fa7096ddbaa6d52b165218de97882b7280" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-sdk-macro" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86280da8b99d03560f6ab5aca9de2e38805681df34e0bb8f238e69b29433b9df" +dependencies = [ + "bs58", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "solana-sdk-macro" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8765316242300c48242d84a41614cb3388229ec353ba464f6fe62a733e41806f" +dependencies = [ + "bs58", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baa3120b6cdaa270f39444f5093a90a7b03d296d362878f7a6991d6de3bbe496" +dependencies = [ + "libsecp256k1 0.6.0", + "solana-define-syscall 2.3.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce0d2e8d53946f04e789476d6c407e4997b7fb412483df5fc10c075c65cb2edf" +dependencies = [ + "k256", + "solana-define-syscall 5.2.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-security-txt" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c94a02d486b28f219a4f8f5d7dd93cbfbb93c9f466cb7871c22e50cd5ae9a7a2" + +[[package]] +name = "solana-seed-derivable" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7bdb72758e3bec33ed0e2658a920f1f35dfb9ed576b951d20d63cb61ecd95c" +dependencies = [ + "solana-derivation-path", +] + +[[package]] +name = "solana-seed-phrase" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc905b200a95f2ea9146e43f2a7181e3aeb55de6bc12afb36462d00a3c7310de" +dependencies = [ + "hmac", + "pbkdf2", + "sha2 0.10.9", +] + +[[package]] +name = "solana-serde" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709a93cab694c70f40b279d497639788fc2ccbcf9b4aa32273d4b361322c02dd" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serde-varint" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a7e155eba458ecfb0107b98236088c3764a09ddf0201ec29e52a0be40857113" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serde-varint" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "950e5b83e839dc0f92c66afc124bb8f40e89bc90f0579e8ec5499296d27f54e3" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serialize-utils" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "817a284b63197d2b27afdba829c5ab34231da4a9b4e763466a003c40ca4f535e" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-serialize-utils" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "761357b0853c9623bf12c1d2314b3d6160a85b087b84c45224fb85766d22616b" +dependencies = [ + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sanitize 3.0.1", +] + +[[package]] +name = "solana-sha256-hasher" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa3feb32c28765f6aa1ce8f3feac30936f16c5c3f7eb73d63a5b8f6f8ecdc44" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", +] + +[[package]] +name = "solana-sha256-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db7dc3011ea4c0334aaaa7e7128cb390ecf546b28d412e9bf2064680f57f588f" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-sha512-hasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11e10e103ab5bd52af341e7bc2f4123a2f4e66bb7ba4e6ca40f1e00cd6314e02" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 5.2.0", + "solana-hash-512", +] + +[[package]] +name = "solana-short-vec" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c54c66f19b9766a56fa0057d060de8378676cb64987533fa088861858fc5a69" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-short-vec" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8250a4495aad49ad20556a607da53bdcb20de78da10b65afbf918b7f1de647" +dependencies = [ + "serde_core", + "wincode", +] + +[[package]] +name = "solana-shred-version" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6c79722e299d957958bf33695f7cd1ef6724ff55563c60fd9e3e24487cccde2" +dependencies = [ + "solana-hard-forks", + "solana-hash 4.5.0", + "solana-sha256-hasher 3.1.0", +] + +[[package]] +name = "solana-signature" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64c8ec8e657aecfc187522fc67495142c12f35e55ddeca8698edbb738b8dbd8c" +dependencies = [ + "five8 0.2.1", + "serde", + "serde-big-array", + "serde_derive", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-signature" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0364c7577c3c82a693ce28a1febc8d1b5d1b0a175fdc2114ae6186b69effe1e" +dependencies = [ + "ed25519-dalek", + "five8 1.0.0", + "rand 0.9.5", + "serde", + "serde-big-array", + "serde_derive", + "solana-sanitize 3.0.1", + "wincode", +] + +[[package]] +name = "solana-signer" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520bd6021163ee517f4bdc7ae03ded904f97e11320001ba0b3355f45eb14f558" +dependencies = [ + "solana-pubkey 4.2.0", + "solana-signature 3.4.1", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-slot-hashes" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c8691982114513763e88d04094c9caa0376b867a29577939011331134c301ce" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 2.3.0", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-hashes" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7ce2b4b8911bf2db3de7b6266e67bfc21a6a9f8c566fb096d9782ca2ad16ee" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-slot-history" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97ccc1b2067ca22754d5283afb2b0126d61eae734fc616d23871b0943b0d935e" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-history" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40427c04d3e808493cb5e3d1a97cef84d7c15cb6f89b15c5684d0d4027105600" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-stable-layout" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f14f7d02af8f2bc1b5efeeae71bc1c2b7f0f65cd75bcc7d8180f2c762a57f54" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-stable-layout" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9f6a291ba063a37780af29e7db14bdd3dc447584d8ba5b3fc4b88e2bbc982fa" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-stake-history" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c736a6aa0e53b9d264d90b06589fc0996f49f882f3e71842ed754fc57ffc1a43" +dependencies = [ + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-stake-interface" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5269e89fde216b4d7e1d1739cf5303f8398a1ff372a81232abbee80e554a838c" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", + "num-traits", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-cpi 2.2.1", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-system-interface 1.0.0", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-stake-interface" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9bc26191b533f9a6e5a14cca05174119819ced680a80febff2f5051a713f0db" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-stake-interface" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252b4291eb25a5a356149ed4d4a940d5f655186210fa84b5d0d8d55c3dd42a81" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-svm-callback" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf863c5b86e90e51c18ed08cfd8e21f9cfa60122d60d6364cde7083bf6de837c" +dependencies = [ + "solana-account 4.3.2", + "solana-clock 3.1.1", + "solana-precompile-error", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-feature-set" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "580d385250ddc3826e5d082b221d9d1047bddcc63ee18313f14dcafb95fdcae5" + +[[package]] +name = "solana-svm-log-collector" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f97c2c829a06a1b3bdbad1f770891768c1f0005b322acd7c192ad92157fe525" +dependencies = [ + "log", +] + +[[package]] +name = "solana-svm-measure" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79ec1451e86552456f1e9a1cc7ffafea01ba3383d8246ba636a11cf286da9fc3" + +[[package]] +name = "solana-svm-timings" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33a2692a88fabf56275bb40c39596d6e550a43f6e56b77fa6f0468e0affd977" +dependencies = [ + "eager", + "enum-iterator", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-transaction" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736d2cec944c6f8f298a7bd8ada5eb318cca9ab859281b1300842fa0e9a25afa" +dependencies = [ + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-transaction 4.1.6", +] + +[[package]] +name = "solana-svm-type-overrides" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74a3ba41956ba930a335589eedf0784dfa4be0527ef236df8ad3996a26b5f19f" +dependencies = [ + "rand 0.9.5", +] + +[[package]] +name = "solana-syscalls" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d31c37dc2425afc13ddb2fc8365db8dbd02ac860a454c25b3897831036a64dd8" +dependencies = [ + "bincode", + "libsecp256k1 0.7.2", + "num-traits", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-blake3-hasher 3.1.0", + "solana-bls12-381-syscall", + "solana-bn254", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-curve25519", + "solana-hash 4.5.0", + "solana-hash-512", + "solana-instruction 3.4.1", + "solana-keccak-hasher 3.1.0", + "solana-poseidon", + "solana-program-entrypoint 3.1.1", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.3.0", + "solana-sha256-hasher 3.1.0", + "solana-sha512-hasher", + "solana-stable-layout 3.0.1", + "solana-stake-interface 4.3.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-type-overrides", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction-context", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "solana-system-interface" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94d7c18cb1a91c6be5f5a8ac9276a1d7c737e39a21beba9ea710ab4b9c63bc90" +dependencies = [ + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-system-interface" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e1790547bfc3061f1ee68ea9d8dc6c973c02a163697b24263a8e9f2e6d4afa2" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-instruction 3.4.1", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", +] + +[[package]] +name = "solana-system-interface" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55b54965bf0b76fa8e2b35376583efddd4d916618cfe595bf48c7d7b55a9e628" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "wincode", +] + +[[package]] +name = "solana-system-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2610e0b091b920da610ad3e5ba850530702f5ac911b4e9dc5ab9a025a772138a" +dependencies = [ + "bincode", + "log", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-fee-calculator 3.2.2", + "solana-instruction 3.4.1", + "solana-nonce 3.2.1", + "solana-nonce-account", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-transaction-context", +] + +[[package]] +name = "solana-sysvar" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c3595f95069f3d90f275bb9bd235a1973c4d059028b0a7f81baca2703815db" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 2.3.0", + "solana-clock 2.2.3", + "solana-define-syscall 2.3.0", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-instructions-sysvar 2.2.2", + "solana-last-restart-slot 2.2.1", + "solana-program-entrypoint 2.3.0", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stake-interface 1.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-sysvar" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6690d3dd88f15c21edff68eb391ef8800df7a1f5cec84ee3e8d1abf05affdf74" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-define-syscall 4.0.1", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-calculator 3.2.2", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 4.2.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-sysvar" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ada7045bbfdd802af08fbc9c7e2b56ddabb20599d22e4c3840fcef5e7afb8324" +dependencies = [ + "base64 0.22.1", + "bincode", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-define-syscall 5.2.0", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-calculator 3.2.2", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stake-history", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-sysvar-id" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5762b273d3325b047cfda250787f8d796d781746860d5d0a746ee29f3e8812c1" +dependencies = [ + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-sysvar-id" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17358d1e9a13e5b9c2264d301102126cf11a47fd394cdf3dec174fe7bc96e1de" +dependencies = [ + "solana-address 2.6.1", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-time-utils" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ced92c60aa76ec4780a9d93f3bd64dfa916e1b998eacc6f1c110f3f444f02c9" + +[[package]] +name = "solana-transaction" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96697cff5075a028265324255efed226099f6d761ca67342b230d09f72cc48d2" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-message 3.1.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-signer", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-transaction" +version = "4.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8008008a75246adaf8b67411093a6d78db8232c74b00eff6041fd1da73679e7" +dependencies = [ + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-message 4.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-signer", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-transaction-context" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d61811155533aebcf806e694d3ed91be7fc168dc9bdcf25e8eb98b9234c7c3" +dependencies = [ + "bincode", + "qualifier_attr", + "serde", + "solana-account 4.3.2", + "solana-instruction 3.4.1", + "solana-instructions-sysvar 4.0.0", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-transaction-error" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222a9dc8fdb61c6088baab34fc3a8b8473a03a7a5fd404ed8dd502fa79b67cb1" +dependencies = [ + "solana-instruction 2.3.3", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-transaction-error" +version = "3.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "054e54d15164b0c34cb744600a1a0330e9fd97a12d979f2eb95904c807a07713" +dependencies = [ + "serde", + "serde_derive", + "solana-instruction-error", + "solana-sanitize 3.0.1", +] + +[[package]] +name = "solana-vote-interface" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b80d57478d6599d30acc31cc5ae7f93ec2361a06aefe8ea79bc81739a08af4c3" +dependencies = [ + "bincode", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-decode-error", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serde-varint 2.2.2", + "solana-serialize-utils 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-vote-interface" +version = "6.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13a7a204b455a53fe8c9a26a6885391a5896835e06694dbe0cf37c580f82f128" +dependencies = [ + "bincode", + "cfg_eval", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "serde_with", + "solana-clock 3.1.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-serde-varint 3.0.1", + "solana-serialize-utils 3.1.2", + "solana-short-vec 3.2.2", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-vote-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69c6faf8370369c45bc14eeca8dc0249450b940b57dcfcec0103403f9feaf88a" +dependencies = [ + "agave-feature-set", + "bincode", + "log", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-bls-signatures", + "solana-clock 3.1.1", + "solana-epoch-schedule 3.2.0", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", + "solana-system-interface 3.2.0", + "solana-transaction-context", + "solana-vote-interface 6.0.3", +] + +[[package]] +name = "solana-zk-elgamal-proof-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d55e2d0d7f884295989dae8b7e0b6d7a46d87ed2d917113007383261e5e93d" +dependencies = [ + "bytemuck", + "solana-instruction 3.4.1", + "solana-program-runtime", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-zk-sdk", +] + +[[package]] +name = "solana-zk-sdk" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09670ff59f60e6ddc2209c2e4353992a9b9f01d4e244f3e9d67bd5146e33d388" +dependencies = [ + "aes-gcm-siv", + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "itertools 0.14.0", + "merlin", + "num-derive", + "num-traits", + "rand 0.8.8", + "serde", + "serde_derive", + "serde_json", + "sha3", + "solana-address 2.6.1", + "solana-derivation-path", + "solana-instruction 3.4.1", + "solana-sdk-ids 3.1.0", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature 3.4.1", + "solana-signer", + "subtle", + "thiserror 2.0.20", + "zeroize", +] + +[[package]] +name = "solana-zk-token-proof-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc32fcd9ff8bb90837755deccefdb20518484626c0a9d0649a36e5fcb0fcf520" +dependencies = [ + "solana-program-runtime", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "spl-associated-token-account-interface" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6bbe0794e532ac08428d3abf5bf8ae75bd81dfddd785c388e326c00c92c6f5" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[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.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tar" +version = "0.4.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6221d9a6003c78398e3b239969f352578258df48c8eb051caadae0015bc840" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "test-utils" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "ephemeral-rollups-sdk 0.16.2", + "magicsvm", + "serde_json", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-signer", + "solana-transaction 4.1.6", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" +dependencies = [ + "thiserror-impl 2.0.20", +] + +[[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.119", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "tinyvec" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee" + +[[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 = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.25.15+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1340ea94a5856333492c9064b02c778b191dd2c853778d9609debdcdfea3a614" +dependencies = [ + "indexmap", + "toml_datetime", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" +dependencies = [ + "winnow", +] + +[[package]] +name = "typed-path" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" + +[[package]] +name = "typenum" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-segmentation" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +dependencies = [ + "void", +] + +[[package]] +name = "ureq" +version = "3.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a7ac20be9b7726e0bbdbf974c059676d9acb1cd414961f570a4e8231cacd7fc" +dependencies = [ + "base64 0.23.1", + "log", + "percent-encoding", + "ureq-proto", + "utf8-zero", +] + +[[package]] +name = "ureq-proto" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0809a01d1ca5a51ca70db32bb2a19157582a526505ef3c19e3b343a59aa5ad" +dependencies = [ + "base64 0.23.1", + "http", + "httparse", + "log", +] + +[[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 = "utf8-zero" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e" + +[[package]] +name = "uuid" +version = "1.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ef6dac1e96601b4fb3acccccff2139741fcb757cb9a36089bf5be91cfb285ce" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[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.4+wasi-0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aecb87a33d3b0c5e3b7aa46336eaf486cffafbd281b195e4c8b80d50df2351bf" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a690d511e3c1a8b3a55e33511e3c2c00c78415cd23650f32b808627f5696b9ed" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "411e4887f0071ef2d2164a9d5fdf2d20efbef78fccd3a78b0c10a1dc5295e48a" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 3.0.5", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81941cd78d0c92026c33e5e01312845a4cb1e9af3407f9134b100dd03144103e" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "web-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fbddc4a036f00ec4f18c83445bd3115cb306a91da554919a099d9222fe4a7f8" +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-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "wincode" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66d967db7705dc29120bb6e8ce5b5a2e27734ed5976d1c904e95bd238d1c3c5a" +dependencies = [ + "bv", + "pastey", + "proc-macro2", + "quote", + "thiserror 2.0.20", + "wincode-derive", +] + +[[package]] +name = "wincode-derive" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15ab90b719560d0fda79c74550ad1c948d17b118765942838055ebaf34d67071" +dependencies = [ + "darling 0.23.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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 = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "xattr" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" +dependencies = [ + "libc", + "rustix", +] + +[[package]] +name = "zerocopy" +version = "0.8.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d35102a9f36d089ccae9e4c6802bc118be4487b80aaffc0ab4e0cf5ce92d2873" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c01f5ab44258da43cf276c74a2763db2ff3969c9c652c3f2de07041d0b2bc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zeroize" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zip" +version = "8.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b" +dependencies = [ + "crc32fast", + "flate2", + "indexmap", + "memchr", + "typed-path", + "zopfli", +] + +[[package]] +name = "zlib-rs" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12" + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" + +[[package]] +name = "zopfli" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" +dependencies = [ + "bumpalo", + "crc32fast", + "log", + "simd-adler32", +] diff --git a/session-keys/anchor/tests-magicsvm-rs/Cargo.toml b/session-keys/anchor/tests-magicsvm-rs/Cargo.toml new file mode 100644 index 00000000..c2e90b1d --- /dev/null +++ b/session-keys/anchor/tests-magicsvm-rs/Cargo.toml @@ -0,0 +1,24 @@ +[package] +name = "anchor-counter-session-magicsvm-tests" +version = "0.1.0" +edition = "2021" +publish = false + +[workspace] + +[dev-dependencies] +anchor-counter-session = { path = "../programs/anchor-counter-session", features = ["no-entrypoint"] } +anchor-lang = "=1.0.2" +ephemeral-rollups-sdk = { version = "0.16.2", features = ["anchor"] } +magicsvm = "0.2.0" +test-utils = { path = "../../../test-utils/rust", features = ["anchor"] } +session-keys = { version = "3.1.1", features = ["no-entrypoint"] } +solana-address = "~2.6.1" +solana-clock = "~3.1.1" +solana-hash = "~4.5.0" +solana-instruction = { version = "~3.4.0", features = ["bincode"] } +solana-keypair = "3.1.2" +solana-message = "4.2.4" +solana-native-token = "3.0.0" +solana-signer = "3.0.1" +solana-transaction = { version = "4.1.5", features = ["verify"] } diff --git a/session-keys/anchor/tests-magicsvm-rs/tests/magicsvm.rs b/session-keys/anchor/tests-magicsvm-rs/tests/magicsvm.rs new file mode 100644 index 00000000..fc9498e8 --- /dev/null +++ b/session-keys/anchor/tests-magicsvm-rs/tests/magicsvm.rs @@ -0,0 +1,395 @@ +use { + anchor_counter_session::{self, accounts, instruction, COUNTER_SEED}, + anchor_lang::{prelude::Pubkey, system_program, Id, InstructionData, ToAccountMetas}, + ephemeral_rollups_sdk::{ + anchor::{DelegationProgram, MagicProgram}, + consts::MAGIC_CONTEXT_ID, + pda::{ + delegate_buffer_pda_from_delegated_account_and_owner_program, + delegation_metadata_pda_from_delegated_account, + delegation_record_pda_from_delegated_account, + }, + }, + magicsvm::{MagicSVM, TransactionTarget}, + session_keys::{self, SessionTokenV2}, + solana_address::Address, + solana_clock::Clock, + solana_hash::Hash, + solana_instruction::{account_meta::AccountMeta, Instruction}, + solana_keypair::Keypair, + solana_native_token::LAMPORTS_PER_SOL, + solana_signer::Signer, + solana_transaction::Transaction, + std::{ + path::PathBuf, + time::{SystemTime, UNIX_EPOCH}, + }, + test_utils::{as_address, as_pubkey, program_id_from_idl, send_tx as send, sign_tx}, +}; + +fn program_so_path() -> PathBuf { + test_utils::program_so_path(env!("CARGO_MANIFEST_DIR"), "anchor_counter_session") +} + +fn session_so_path() -> PathBuf { + PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../tests-magicsvm/fixtures/session-keys.so") +} + +fn program_id() -> Pubkey { + as_pubkey(&program_id_from_idl( + env!("CARGO_MANIFEST_DIR"), + "anchor_counter_session.json", + )) +} + +fn program_address() -> Address { + as_address(program_id()) +} + +fn session_program_address() -> Address { + as_address(session_keys::ID) +} + +fn client_ix( + program: Pubkey, + data: impl InstructionData, + accounts: impl ToAccountMetas, +) -> Instruction { + test_utils::client_ix(as_address(program), data, accounts) +} + +fn sign_ix(signers: &[&Keypair], instruction: Instruction, blockhash: Hash) -> Transaction { + sign_tx(signers, &[instruction], blockhash) +} + +fn now_unix() -> i64 { + SystemTime::now() + .duration_since(UNIX_EPOCH) + .expect("time") + .as_secs() as i64 +} + +fn set_clock_now(svm: &mut MagicSVM) { + let now = now_unix(); + let mut clock: Clock = svm.get_sysvar(); + clock.unix_timestamp = now; + svm.set_sysvar(&clock); + svm.ephemeral_mut().set_sysvar(&clock); +} + +fn session_token_pda(session_signer: &Pubkey, authority: &Pubkey) -> Pubkey { + Pubkey::find_program_address( + &[ + SessionTokenV2::SEED_PREFIX.as_bytes(), + program_id().as_ref(), + session_signer.as_ref(), + authority.as_ref(), + ], + &session_keys::ID, + ) + .0 +} + +fn create_session_v2_tx( + session_token: Pubkey, + session_signer: &Keypair, + payer: &Keypair, + blockhash: Hash, +) -> Transaction { + let valid_until = now_unix() + 3600; + let lamports = (0.005 * LAMPORTS_PER_SOL as f64) as u64; + sign_ix( + &[payer, session_signer], + client_ix( + session_keys::ID, + session_keys::instruction::CreateSessionV2 { + top_up: Some(true), + valid_until: Some(valid_until), + lamports: Some(lamports), + }, + session_keys::accounts::CreateSessionTokenV2 { + session_token, + session_signer: as_pubkey(&session_signer.pubkey()), + fee_payer: as_pubkey(&payer.pubkey()), + authority: as_pubkey(&payer.pubkey()), + target_program: program_id(), + system_program: system_program::ID, + }, + ), + blockhash, + ) +} + +fn initialize_tx(counter: Pubkey, payer: &Keypair, blockhash: Hash) -> Transaction { + sign_ix( + &[payer], + client_ix( + program_id(), + instruction::Initialize {}, + accounts::Initialize { + user: as_pubkey(&payer.pubkey()), + counter, + system_program: system_program::ID, + }, + ), + blockhash, + ) +} + +fn increment_tx( + counter: Pubkey, + session_token: Pubkey, + session_signer: &Keypair, + blockhash: Hash, +) -> Transaction { + sign_ix( + &[session_signer], + client_ix( + program_id(), + instruction::Increment {}, + accounts::Increment { + payer: as_pubkey(&session_signer.pubkey()), + counter, + session_token: Some(session_token), + }, + ), + blockhash, + ) +} + +fn delegate_tx( + counter: Pubkey, + session_token: Pubkey, + session_signer: &Keypair, + validator: Address, + blockhash: Hash, +) -> Transaction { + let mut instruction = client_ix( + program_id(), + instruction::Delegate {}, + accounts::DelegateInput { + payer: as_pubkey(&session_signer.pubkey()), + buffer_pda: delegate_buffer_pda_from_delegated_account_and_owner_program( + &counter, + &program_id(), + ), + delegation_record_pda: delegation_record_pda_from_delegated_account(&counter), + delegation_metadata_pda: delegation_metadata_pda_from_delegated_account(&counter), + pda: counter, + session_token: Some(session_token), + owner_program: program_id(), + delegation_program: DelegationProgram::id(), + system_program: system_program::ID, + }, + ); + instruction + .accounts + .push(AccountMeta::new_readonly(validator, false)); + sign_ix(&[session_signer], instruction, blockhash) +} + +fn commit_style_tx( + counter: Pubkey, + session_token: Pubkey, + session_signer: &Keypair, + data: impl InstructionData, + blockhash: Hash, +) -> Transaction { + sign_ix( + &[session_signer], + client_ix( + program_id(), + data, + accounts::IncrementAndCommit { + payer: as_pubkey(&session_signer.pubkey()), + counter, + session_token: Some(session_token), + magic_program: MagicProgram::id(), + magic_context: MAGIC_CONTEXT_ID, + }, + ), + blockhash, + ) +} + +fn revoke_session_v2_tx(session_token: Pubkey, payer: &Keypair, blockhash: Hash) -> Transaction { + sign_ix( + &[payer], + client_ix( + session_keys::ID, + session_keys::instruction::RevokeSessionV2 {}, + session_keys::accounts::RevokeSessionTokenV2 { + session_token, + fee_payer: as_pubkey(&payer.pubkey()), + authority: as_pubkey(&payer.pubkey()), + system_program: system_program::ID, + }, + ), + blockhash, + ) +} + +fn counter_count(data: &[u8]) -> u64 { + u64::from_le_bytes(data[40..48].try_into().expect("counter data")) +} + +#[test] +fn anchor_counter_session_local_er_flow() { + let payer = Keypair::new(); + let session_signer = Keypair::new(); + let mut svm = MagicSVM::new(); + set_clock_now(&mut svm); + + let authority = as_pubkey(&payer.pubkey()); + let (counter, _) = + Pubkey::find_program_address(&[COUNTER_SEED, authority.as_ref()], &program_id()); + let session_token = session_token_pda(&as_pubkey(&session_signer.pubkey()), &authority); + let counter_address = as_address(counter); + let session_token_address = as_address(session_token); + + svm.add_program_from_file(program_address(), program_so_path()) + .unwrap(); + svm.add_program_from_file(session_program_address(), session_so_path()) + .unwrap(); + svm.airdrop(&payer.pubkey(), 2 * LAMPORTS_PER_SOL).unwrap(); + + let base_blockhash = svm.latest_blockhash_for(TransactionTarget::Base); + send( + &mut svm, + TransactionTarget::Base, + create_session_v2_tx(session_token, &session_signer, &payer, base_blockhash), + "createSessionV2", + ); + let session_account = svm + .get_account(&session_token_address) + .expect("session token"); + assert_eq!(session_account.owner, session_program_address()); + + let base_blockhash = svm.latest_blockhash_for(TransactionTarget::Base); + send( + &mut svm, + TransactionTarget::Base, + initialize_tx(counter, &payer, base_blockhash), + "initialize", + ); + assert_eq!( + counter_count(&svm.get_account(&counter_address).unwrap().data), + 0 + ); + + let base_blockhash = svm.latest_blockhash_for(TransactionTarget::Base); + send( + &mut svm, + TransactionTarget::Base, + increment_tx(counter, session_token, &session_signer, base_blockhash), + "increment (base)", + ); + assert_eq!( + counter_count(&svm.get_account(&counter_address).unwrap().data), + 1 + ); + + let validator = svm.validator_identity(); + let base_blockhash = svm.latest_blockhash_for(TransactionTarget::Base); + send( + &mut svm, + TransactionTarget::Base, + delegate_tx( + counter, + session_token, + &session_signer, + validator, + base_blockhash, + ), + "delegate", + ); + assert_eq!( + svm.get_account(&counter_address).unwrap().owner, + as_address(DelegationProgram::id()) + ); + + let ephemeral_blockhash = svm.latest_blockhash_for(TransactionTarget::Ephemeral); + send( + &mut svm, + TransactionTarget::Ephemeral, + increment_tx(counter, session_token, &session_signer, ephemeral_blockhash), + "increment (ER)", + ); + assert_eq!( + counter_count( + &svm.get_account_for(TransactionTarget::Ephemeral, &counter_address) + .unwrap() + .data + ), + 2 + ); + + let ephemeral_blockhash = svm.latest_blockhash_for(TransactionTarget::Ephemeral); + send( + &mut svm, + TransactionTarget::Ephemeral, + commit_style_tx( + counter, + session_token, + &session_signer, + instruction::Commit {}, + ephemeral_blockhash, + ), + "commit", + ); + let base_after_commit = svm.get_account(&counter_address).unwrap(); + assert_eq!(counter_count(&base_after_commit.data), 2); + assert_eq!(base_after_commit.owner, as_address(DelegationProgram::id())); + + let ephemeral_blockhash = svm.latest_blockhash_for(TransactionTarget::Ephemeral); + send( + &mut svm, + TransactionTarget::Ephemeral, + commit_style_tx( + counter, + session_token, + &session_signer, + instruction::IncrementAndCommit {}, + ephemeral_blockhash, + ), + "incrementAndCommit", + ); + assert_eq!( + counter_count( + &svm.get_account_for(TransactionTarget::Ephemeral, &counter_address) + .unwrap() + .data + ), + 3 + ); + assert_eq!( + counter_count(&svm.get_account(&counter_address).unwrap().data), + 3 + ); + + let ephemeral_blockhash = svm.latest_blockhash_for(TransactionTarget::Ephemeral); + send( + &mut svm, + TransactionTarget::Ephemeral, + commit_style_tx( + counter, + session_token, + &session_signer, + instruction::IncrementAndUndelegate {}, + ephemeral_blockhash, + ), + "incrementAndUndelegate", + ); + let base_after_undelegate = svm.get_account(&counter_address).unwrap(); + assert_eq!(counter_count(&base_after_undelegate.data), 4); + assert_eq!(base_after_undelegate.owner, program_address()); + + let base_blockhash = svm.latest_blockhash_for(TransactionTarget::Base); + send( + &mut svm, + TransactionTarget::Base, + revoke_session_v2_tx(session_token, &payer, base_blockhash), + "revokeSessionV2", + ); + assert!(svm.get_account(&session_token_address).is_none()); +} diff --git a/session-keys/anchor/tests-magicsvm/anchor-counter-session.ts b/session-keys/anchor/tests-magicsvm/anchor-counter-session.ts new file mode 100644 index 00000000..51de2977 --- /dev/null +++ b/session-keys/anchor/tests-magicsvm/anchor-counter-session.ts @@ -0,0 +1,199 @@ +import * as anchor from "@coral-xyz/anchor"; +import { web3 } from "@coral-xyz/anchor"; +import { + accountOwner, + bootAnchorSvm, + isDelegated, + readU64le, + sendSvmTx, + setUnixTimestamp, + validatorRemainingAccount, +} from "@magicblock-labs/test-utils"; +import { SessionTokenManager } from "@magicblock-labs/gum-sdk"; +import { LAMPORTS_PER_SOL, PublicKey } from "@solana/web3.js"; +import assert from "assert"; +import * as path from "path"; +import { AnchorCounterSession } from "../target/types/anchor_counter_session"; + +const COUNTER_SEED = "counter"; +const SESSION_TOKEN_SEED = "session_token_v2"; +const SESSION_PROGRAM_ID = "KeyspM2ssCJbqUhQ4k7sveSiY4WjnYsrXkC8oDbwde5"; + +describe("anchor-counter-session magicsvm", () => { + const sessionKeypair = web3.Keypair.generate(); + const { svm, payer, program, validator } = + bootAnchorSvm({ + fromDir: __dirname, + programName: "anchor_counter_session", + airdropLamports: BigInt(2 * LAMPORTS_PER_SOL), + extraPrograms: [ + { + id: new PublicKey(SESSION_PROGRAM_ID), + so: path.resolve(__dirname, "fixtures", "session-keys.so"), + }, + ], + }); + setUnixTimestamp(svm); + + const [counterPDA] = web3.PublicKey.findProgramAddressSync( + [Buffer.from(COUNTER_SEED), payer.publicKey.toBuffer()], + program.programId, + ); + + const sessionTokenManager = new SessionTokenManager( + new anchor.Wallet(web3.Keypair.fromSecretKey(payer.secretKey)), + new web3.Connection("http://127.0.0.1:8899"), + ); + const sessionTokenPDA = web3.PublicKey.findProgramAddressSync( + [ + Buffer.from(SESSION_TOKEN_SEED), + program.programId.toBytes(), + sessionKeypair.publicKey.toBytes(), + payer.publicKey.toBytes(), + ], + sessionTokenManager.program.programId, + )[0]; + + console.log("Program ID: ", program.programId.toString()); + console.log("Counter PDA: ", counterPDA.toString()); + console.log( + "Session Signer Public Key: ", + sessionKeypair.publicKey.toString(), + ); + console.log("Session Token PDA: ", sessionTokenPDA.toString()); + console.log("Validator identity: ", validator.toString()); + + it("Create session on Solana", async () => { + const topUp = true; + const validUntilBN = new anchor.BN(Math.floor(Date.now() / 1000) + 3600); + const topUpLamportsBN = new anchor.BN(0.005 * LAMPORTS_PER_SOL); + + const tx = await sessionTokenManager.program.methods + .createSessionV2(topUp, validUntilBN, topUpLamportsBN) + .accounts({ + targetProgram: program.programId, + sessionSigner: sessionKeypair.publicKey, + feePayer: payer.publicKey, + authority: payer.publicKey, + }) + .transaction(); + sendSvmTx(svm, [payer, sessionKeypair], tx, "base", "createSessionV2"); + + const sessionAccount = svm.getAccount(sessionTokenPDA); + assert.ok(sessionAccount.exists, "session token missing on base"); + assert.equal( + sessionAccount.programAddress.toString(), + sessionTokenManager.program.programId.toString(), + ); + }); + + it("Initialize counter on Solana", async () => { + const tx = await program.methods + .initialize() + .accounts({ + user: payer.publicKey, + }) + .transaction(); + sendSvmTx(svm, [payer], tx, "base", "initialize"); + assert.equal(readU64le(svm, counterPDA, "base", 40), 0n); + }); + + it("Increase counter on Solana", async () => { + const tx = await program.methods + .increment() + .accounts({ + counter: counterPDA, + sessionToken: sessionTokenPDA, + payer: sessionKeypair.publicKey, + }) + .transaction(); + sendSvmTx(svm, [sessionKeypair], tx, "base", "increment (base)"); + assert.equal(readU64le(svm, counterPDA, "base", 40), 1n); + }); + + it("Delegate counter to ER", async () => { + const tx = await program.methods + .delegate() + .accounts({ + payer: sessionKeypair.publicKey, + pda: counterPDA, + sessionToken: sessionTokenPDA, + }) + .remainingAccounts([validatorRemainingAccount(svm)]) + .transaction(); + sendSvmTx(svm, [sessionKeypair], tx, "base", "delegate"); + assert.ok(isDelegated(svm, counterPDA)); + }); + + it("Increase counter on ER", async () => { + const tx = await program.methods + .increment() + .accounts({ + counter: counterPDA, + sessionToken: sessionTokenPDA, + payer: sessionKeypair.publicKey, + }) + .transaction(); + sendSvmTx(svm, [sessionKeypair], tx, "ephemeral", "increment (ER)"); + assert.equal(readU64le(svm, counterPDA, "ephemeral", 40), 2n); + }); + + it("Commit counter state on ER to Solana", async () => { + const tx = await program.methods + .commit() + .accounts({ + counter: counterPDA, + sessionToken: sessionTokenPDA, + payer: sessionKeypair.publicKey, + }) + .transaction(); + sendSvmTx(svm, [sessionKeypair], tx, "ephemeral", "commit"); + assert.equal(readU64le(svm, counterPDA, "base", 40), 2n); + assert.ok(isDelegated(svm, counterPDA)); + }); + + it("Increase counter on ER and commit", async () => { + const tx = await program.methods + .incrementAndCommit() + .accounts({ + counter: counterPDA, + sessionToken: sessionTokenPDA, + payer: sessionKeypair.publicKey, + }) + .transaction(); + sendSvmTx(svm, [sessionKeypair], tx, "ephemeral", "incrementAndCommit"); + assert.equal(readU64le(svm, counterPDA, "ephemeral", 40), 3n); + assert.equal(readU64le(svm, counterPDA, "base", 40), 3n); + }); + + it("Increment and undelegate counter on ER to Solana", async () => { + const tx = await program.methods + .incrementAndUndelegate() + .accounts({ + counter: counterPDA, + sessionToken: sessionTokenPDA, + payer: sessionKeypair.publicKey, + }) + .transaction(); + sendSvmTx(svm, [sessionKeypair], tx, "ephemeral", "incrementAndUndelegate"); + assert.equal(readU64le(svm, counterPDA, "base", 40), 4n); + assert.equal( + accountOwner(svm, counterPDA, "base"), + program.programId.toString(), + ); + }); + + it("Revoke session on Solana", async () => { + const tx = await sessionTokenManager.program.methods + .revokeSessionV2() + .accounts({ + sessionToken: sessionTokenPDA, + feePayer: payer.publicKey, + authority: payer.publicKey, + }) + .transaction(); + sendSvmTx(svm, [payer], tx, "base", "revokeSessionV2"); + const sessionAccount = svm.getAccount(sessionTokenPDA); + assert.equal(sessionAccount.exists, false); + }); +}); diff --git a/session-keys/anchor/tests-magicsvm/fixtures/session-keys.so b/session-keys/anchor/tests-magicsvm/fixtures/session-keys.so new file mode 100644 index 0000000000000000000000000000000000000000..9580120b07651407bfff58055f8c74adc6c00ca5 GIT binary patch literal 522784 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�m!SKu3 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 Address { + program_id_from_idl(env!("CARGO_MANIFEST_DIR"), "spl_tokens.json") +} + +fn program_so_path() -> PathBuf { + test_utils::program_so_path(env!("CARGO_MANIFEST_DIR"), "spl_tokens") +} + +fn send( + svm: &mut MagicSVM, + target: TransactionTarget, + ixs: &[Instruction], + payer: &Keypair, + extra_signers: &[&Keypair], + label: &str, +) { + let mut signers = Vec::with_capacity(1 + extra_signers.len()); + signers.push(payer); + signers.extend_from_slice(extra_signers); + send_ixs(svm, target, &signers, ixs, label); +} + +fn derive_ata(owner: &Address, mint: &Address) -> Address { + Address::find_program_address( + &[owner.as_ref(), TOKEN_PROGRAM_ID.as_ref(), mint.as_ref()], + &ASSOCIATED_TOKEN_PROGRAM_ID, + ) + .0 +} + +fn token_amount(svm: &MagicSVM, target: TransactionTarget, ata: &Address) -> u64 { + let account = svm + .get_account_for(target, ata) + .unwrap_or_else(|| panic!("missing token account {ata} on {target:?}")); + u64::from_le_bytes(account.data[64..72].try_into().unwrap()) +} + +fn initialize_mint_ix(mint: Address, authority: Address) -> Instruction { + let mut data = vec![0u8, 0]; + data.extend_from_slice(authority.as_ref()); + data.extend_from_slice(&[0u8; 4]); + Instruction { + program_id: TOKEN_PROGRAM_ID, + accounts: vec![ + AccountMeta::new(mint, false), + AccountMeta::new_readonly(solana_sdk_ids::sysvar::rent::id(), false), + ], + data, + } +} + +fn create_ata_ix(payer: Address, ata: Address, owner: Address, mint: Address) -> Instruction { + Instruction { + program_id: ASSOCIATED_TOKEN_PROGRAM_ID, + accounts: vec![ + AccountMeta::new(payer, true), + AccountMeta::new(ata, false), + AccountMeta::new_readonly(owner, false), + AccountMeta::new_readonly(mint, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::id(), false), + AccountMeta::new_readonly(TOKEN_PROGRAM_ID, false), + AccountMeta::new_readonly(solana_sdk_ids::sysvar::rent::id(), false), + ], + data: vec![], + } +} + +fn create_ata_idempotent_ix( + payer: Address, + ata: Address, + owner: Address, + mint: Address, +) -> Instruction { + Instruction { + program_id: ASSOCIATED_TOKEN_PROGRAM_ID, + accounts: vec![ + AccountMeta::new(payer, true), + AccountMeta::new(ata, false), + AccountMeta::new_readonly(owner, false), + AccountMeta::new_readonly(mint, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::id(), false), + AccountMeta::new_readonly(TOKEN_PROGRAM_ID, false), + ], + data: vec![1], + } +} + +fn mint_to_ix(mint: Address, dest: Address, authority: Address, amount: u64) -> Instruction { + let mut data = vec![7u8]; + data.extend_from_slice(&amount.to_le_bytes()); + Instruction { + program_id: TOKEN_PROGRAM_ID, + accounts: vec![ + AccountMeta::new(mint, false), + AccountMeta::new(dest, false), + AccountMeta::new_readonly(authority, true), + ], + data, + } +} + +fn spl_transfer_ix(source: Address, dest: Address, owner: Address, amount: u64) -> Instruction { + let mut data = vec![3u8]; + data.extend_from_slice(&amount.to_le_bytes()); + Instruction { + program_id: TOKEN_PROGRAM_ID, + accounts: vec![ + AccountMeta::new(source, false), + AccountMeta::new(dest, false), + AccountMeta::new_readonly(owner, true), + ], + data, + } +} + +fn program_transfer_ix(payer: Address, from: Address, to: Address, amount: u64) -> Instruction { + Instruction { + program_id: program_address(), + accounts: accounts::TransferTokens { + payer: as_pubkey(&payer), + from: as_pubkey(&from), + to: as_pubkey(&to), + token_program: as_pubkey(&TOKEN_PROGRAM_ID), + } + .to_account_metas(None) + .into_iter() + .map(|meta| AccountMeta { + pubkey: Address::new_from_array(meta.pubkey.to_bytes()), + is_signer: meta.is_signer, + is_writable: meta.is_writable, + }) + .collect(), + data: instruction::Transfer { amount }.data(), + } +} + +/// Legacy withdraw account order from TS SDK 0.16.2 `withdrawSplIx`. +fn withdraw_spl_ix(owner: Address, mint: Address, amount: u64) -> Instruction { + let (eata, _) = EphemeralAta::find_pda(&owner, &mint); + let (vault, _) = GlobalVault::find_pda(&mint); + let vault_ata = find_vault_ata(&mint, &vault); + let user_ata = derive_ata(&owner, &mint); + let mut data = vec![3u8]; + data.extend_from_slice(&amount.to_le_bytes()); + Instruction { + program_id: ESPL_TOKEN_PROGRAM_ID, + accounts: vec![ + AccountMeta::new_readonly(owner, true), + AccountMeta::new(eata, false), + AccountMeta::new_readonly(vault, false), + AccountMeta::new_readonly(mint, false), + AccountMeta::new(vault_ata, false), + AccountMeta::new(user_ata, false), + AccountMeta::new_readonly(TOKEN_PROGRAM_ID, false), + ], + data, + } +} + +fn delegate_spl_ixs( + payer: Address, + owner: Address, + mint: Address, + amount: u64, + validator: Address, + init_vault_if_missing: bool, +) -> Vec { + let mut ixs = vec![InitializeEphemeralAtaBuilder { + payer, + user: owner, + mint, + } + .instruction()]; + if init_vault_if_missing { + let (vault, _) = GlobalVault::find_pda(&mint); + let vault_ata = find_vault_ata(&mint, &vault); + ixs.push(InitializeGlobalVaultBuilder { payer, mint }.instruction()); + ixs.push(create_ata_idempotent_ix(payer, vault_ata, vault, mint)); + ixs.push( + DelegateEphemeralAtaBuilder { + payer, + user: vault, + mint, + validator: Some(validator), + } + .instruction(), + ); + } + ixs.push( + DepositSplTokensBuilder { + authority: owner, + user: owner, + mint, + amount, + } + .instruction(), + ); + ixs.push( + DelegateEphemeralAtaBuilder { + payer, + user: owner, + mint, + validator: Some(validator), + } + .instruction(), + ); + ixs +} + +struct MintSetup { + mint: Keypair, + owner1: Keypair, + owner2: Keypair, + ata1: Address, + ata2: Address, +} + +fn setup_mint_with_recipients(svm: &mut MagicSVM, admin: &Keypair) -> MintSetup { + let mint = Keypair::new(); + let owner1 = Keypair::new(); + let owner2 = Keypair::new(); + let (sponsor_pda, _) = find_rent_pda(); + + send( + svm, + TransactionTarget::Base, + &[ + system_instruction::transfer(&admin.pubkey(), &owner1.pubkey(), LAMPORTS_PER_SOL / 5), + system_instruction::transfer(&admin.pubkey(), &owner2.pubkey(), LAMPORTS_PER_SOL / 5), + system_instruction::transfer(&admin.pubkey(), &sponsor_pda, LAMPORTS_PER_SOL / 5), + ], + admin, + &[], + "fund recipients", + ); + + let ata1 = derive_ata(&owner1.pubkey(), &mint.pubkey()); + let ata2 = derive_ata(&owner2.pubkey(), &mint.pubkey()); + let mint_lamports = svm.minimum_balance_for_rent_exemption(MINT_SIZE as usize); + + send( + svm, + TransactionTarget::Base, + &[ + system_instruction::create_account( + &admin.pubkey(), + &mint.pubkey(), + mint_lamports, + MINT_SIZE, + &TOKEN_PROGRAM_ID, + ), + initialize_mint_ix(mint.pubkey(), admin.pubkey()), + create_ata_ix(admin.pubkey(), ata1, owner1.pubkey(), mint.pubkey()), + create_ata_ix(admin.pubkey(), ata2, owner2.pubkey(), mint.pubkey()), + mint_to_ix(mint.pubkey(), ata1, admin.pubkey(), TOKEN_AMOUNT), + mint_to_ix(mint.pubkey(), ata2, admin.pubkey(), TOKEN_AMOUNT), + ], + admin, + &[&mint], + "create mint and ATAs", + ); + + assert_eq!( + token_amount(svm, TransactionTarget::Base, &ata1), + TOKEN_AMOUNT + ); + assert_eq!( + token_amount(svm, TransactionTarget::Base, &ata2), + TOKEN_AMOUNT + ); + + MintSetup { + mint, + owner1, + owner2, + ata1, + ata2, + } +} + +fn new_svm() -> (MagicSVM, Keypair) { + let admin = Keypair::new(); + let mut svm = MagicSVM::new(); + svm.add_program_from_file(program_address(), program_so_path()) + .unwrap(); + svm.airdrop(&admin.pubkey(), 10 * LAMPORTS_PER_SOL).unwrap(); + (svm, admin) +} + +#[test] +fn delegate_spl_tokens_transfer_and_undelegate() { + let (mut svm, admin) = new_svm(); + let validator = svm.validator_identity(); + let setup = setup_mint_with_recipients(&mut svm, &admin); + let mint = setup.mint.pubkey(); + + assert_eq!( + token_amount(&svm, TransactionTarget::Base, &setup.ata1), + 1000 + ); + assert_eq!( + token_amount(&svm, TransactionTarget::Base, &setup.ata2), + 1000 + ); + + send( + &mut svm, + TransactionTarget::Base, + &delegate_spl_ixs( + admin.pubkey(), + setup.owner1.pubkey(), + mint, + 50, + validator, + true, + ), + &admin, + &[&setup.owner1], + "delegate owner1", + ); + send( + &mut svm, + TransactionTarget::Base, + &delegate_spl_ixs( + admin.pubkey(), + setup.owner2.pubkey(), + mint, + 10, + validator, + false, + ), + &admin, + &[&setup.owner2], + "delegate owner2", + ); + + assert_eq!( + token_amount(&svm, TransactionTarget::Ephemeral, &setup.ata1), + 50 + ); + assert_eq!( + token_amount(&svm, TransactionTarget::Ephemeral, &setup.ata2), + 10 + ); + + send( + &mut svm, + TransactionTarget::Ephemeral, + &[spl_transfer_ix( + setup.ata1, + setup.ata2, + setup.owner1.pubkey(), + 2, + )], + &setup.owner1, + &[], + "ER transfer", + ); + + let acct_a = token_amount(&svm, TransactionTarget::Ephemeral, &setup.ata1); + let acct_b = token_amount(&svm, TransactionTarget::Ephemeral, &setup.ata2); + assert_eq!(acct_a, 48); + assert_eq!(acct_b, 12); + + for owner in [&setup.owner1, &setup.owner2] { + send( + &mut svm, + TransactionTarget::Ephemeral, + &[UndelegateEphemeralAtaBuilder { + payer: owner.pubkey(), + user: owner.pubkey(), + mint, + } + .instruction()], + owner, + &[], + "undelegate", + ); + } + + for owner in [&setup.owner1, &setup.owner2] { + let (eata, _) = EphemeralAta::find_pda(&owner.pubkey(), &mint); + let account = svm + .get_account(&eata) + .unwrap_or_else(|| panic!("missing eata {eata}")); + assert_eq!(account.owner, ESPL_TOKEN_PROGRAM_ID); + } + + send( + &mut svm, + TransactionTarget::Base, + &[ + withdraw_spl_ix(setup.owner1.pubkey(), mint, acct_a), + withdraw_spl_ix(setup.owner2.pubkey(), mint, acct_b), + ], + &admin, + &[&setup.owner1, &setup.owner2], + "withdraw", + ); + + assert_eq!( + token_amount(&svm, TransactionTarget::Base, &setup.ata1), + 998 + ); + assert_eq!( + token_amount(&svm, TransactionTarget::Base, &setup.ata2), + 1002 + ); +} + +#[test] +fn delegate_spl_tokens_and_transfer_through_program() { + let (mut svm, admin) = new_svm(); + let validator = svm.validator_identity(); + let setup = setup_mint_with_recipients(&mut svm, &admin); + let mint = setup.mint.pubkey(); + + send( + &mut svm, + TransactionTarget::Base, + &delegate_spl_ixs( + admin.pubkey(), + setup.owner1.pubkey(), + mint, + 10, + validator, + true, + ), + &admin, + &[&setup.owner1], + "delegate sender", + ); + send( + &mut svm, + TransactionTarget::Base, + &delegate_spl_ixs( + admin.pubkey(), + setup.owner2.pubkey(), + mint, + 10, + validator, + false, + ), + &admin, + &[&setup.owner2], + "delegate receiver", + ); + + assert_eq!( + token_amount(&svm, TransactionTarget::Ephemeral, &setup.ata1), + 10 + ); + assert_eq!( + token_amount(&svm, TransactionTarget::Ephemeral, &setup.ata2), + 10 + ); + + send( + &mut svm, + TransactionTarget::Ephemeral, + &[program_transfer_ix( + setup.owner1.pubkey(), + setup.ata1, + setup.ata2, + 2, + )], + &setup.owner1, + &[], + "program transfer", + ); + + assert_eq!( + token_amount(&svm, TransactionTarget::Ephemeral, &setup.ata1), + 8 + ); + assert_eq!( + token_amount(&svm, TransactionTarget::Ephemeral, &setup.ata2), + 12 + ); +} diff --git a/spl-tokens/anchor/tests-magicsvm/spl-tokens.ts b/spl-tokens/anchor/tests-magicsvm/spl-tokens.ts new file mode 100644 index 00000000..6daeb26b --- /dev/null +++ b/spl-tokens/anchor/tests-magicsvm/spl-tokens.ts @@ -0,0 +1,342 @@ +import * as anchor from "@coral-xyz/anchor"; +import { BN } from "@coral-xyz/anchor"; +import { MagicSVM } from "@magicblock-labs/magicsvm"; +import { + AccountLayout, + TOKEN_PROGRAM_ID, + createAssociatedTokenAccountInstruction, + createInitializeMintInstruction, + createMintToInstruction, + getAssociatedTokenAddressSync, +} from "@solana/spl-token"; +import { + Keypair, + LAMPORTS_PER_SOL, + PublicKey, + SystemProgram, + Transaction, +} from "@solana/web3.js"; +import { assert } from "chai"; +import { + delegateSpl, + deriveEphemeralAta, + deriveRentPda, + EPHEMERAL_SPL_TOKEN_PROGRAM_ID, + transferSpl, + undelegateIx, + withdrawSpl, +} from "@magicblock-labs/ephemeral-rollups-sdk"; +import { + bootAnchorSvm, + sendSvmTx, + accountOwner, +} from "@magicblock-labs/test-utils"; +import { SplTokens } from "../target/types/spl_tokens"; + +const MINT_SIZE = 82; +const TOKEN_AMOUNT = 1000n; + +function tokenAmount( + svm: MagicSVM, + ata: PublicKey, + target: "base" | "ephemeral", +): bigint { + const account = svm.getAccountFor(ata, { target }); + if (!account.exists) { + throw new Error(`missing token account ${ata.toBase58()} on ${target}`); + } + return AccountLayout.decode(Buffer.from(account.data)).amount; +} + +describe("spl-tokens magicsvm", () => { + const createHarness = () => { + const { + svm, + payer: admin, + program, + validator, + } = bootAnchorSvm({ + fromDir: __dirname, + programName: "spl_tokens", + airdropLamports: BigInt(10 * LAMPORTS_PER_SOL), + }); + return { admin, program, svm, validator: new PublicKey(validator) }; + }; + + const setupMintWithRecipients = ( + svm: MagicSVM, + admin: Keypair, + ): { + mint: Keypair; + owners: [Keypair, Keypair]; + atas: [PublicKey, PublicKey]; + } => { + const newMint = Keypair.generate(); + const owner1 = Keypair.generate(); + const owner2 = Keypair.generate(); + const [sponsorPda] = deriveRentPda(); + + const fundTx = new Transaction(); + for (const r of [owner1.publicKey, owner2.publicKey, sponsorPda]) { + fundTx.add( + SystemProgram.transfer({ + fromPubkey: admin.publicKey, + toPubkey: r, + lamports: 0.2 * LAMPORTS_PER_SOL, + }), + ); + } + sendSvmTx(svm, [admin], fundTx, "base", "fund recipients"); + + const ata1 = getAssociatedTokenAddressSync( + newMint.publicKey, + owner1.publicKey, + ); + const ata2 = getAssociatedTokenAddressSync( + newMint.publicKey, + owner2.publicKey, + ); + + const tx = new Transaction().add( + SystemProgram.createAccount({ + fromPubkey: admin.publicKey, + newAccountPubkey: newMint.publicKey, + space: MINT_SIZE, + lamports: Number(svm.minimumBalanceForRentExemption(BigInt(MINT_SIZE))), + programId: TOKEN_PROGRAM_ID, + }), + createInitializeMintInstruction( + newMint.publicKey, + 0, + admin.publicKey, + null, + ), + createAssociatedTokenAccountInstruction( + admin.publicKey, + ata1, + owner1.publicKey, + newMint.publicKey, + ), + createAssociatedTokenAccountInstruction( + admin.publicKey, + ata2, + owner2.publicKey, + newMint.publicKey, + ), + createMintToInstruction( + newMint.publicKey, + ata1, + admin.publicKey, + TOKEN_AMOUNT, + ), + createMintToInstruction( + newMint.publicKey, + ata2, + admin.publicKey, + TOKEN_AMOUNT, + ), + ); + sendSvmTx(svm, [admin, newMint], tx, "base", "create mint and ATAs"); + + const acct1 = tokenAmount(svm, ata1, "base"); + const acct2 = tokenAmount(svm, ata2, "base"); + if (acct1 !== TOKEN_AMOUNT) { + throw new Error(`owner1 expected ${TOKEN_AMOUNT}, got ${acct1}`); + } + if (acct2 !== TOKEN_AMOUNT) { + throw new Error(`owner2 expected ${TOKEN_AMOUNT}, got ${acct2}`); + } + + return { + mint: newMint, + owners: [owner1, owner2], + atas: [ata1, ata2], + }; + }; + + it("Delegate SPL tokens, do a transfer and undelegate", async () => { + const { admin, svm, validator } = createHarness(); + console.log("spl-tokens.ts (magicsvm)"); + console.log("Validator: ", validator.toBase58()); + const { + mint, + owners: [recipientA, recipientB], + atas: [ataA, ataB], + } = setupMintWithRecipients(svm, admin); + + console.log("\nUser1: ", recipientA.publicKey.toBase58()); + console.log("User2: ", recipientB.publicKey.toBase58()); + + assert(tokenAmount(svm, ataA, "base") == 1000n); + assert(tokenAmount(svm, ataB, "base") == 1000n); + + const delegateOpts = { + validator, + idempotent: false as const, + payer: admin.publicKey, + }; + + const delegations: [Keypair, bigint, boolean][] = [ + [recipientA, 50n, true], + [recipientB, 10n, false], + ]; + for (const [owner, amount, initVaultIfMissing] of delegations) { + const ixs = await delegateSpl(owner.publicKey, mint.publicKey, amount, { + ...delegateOpts, + initVaultIfMissing, + }); + sendSvmTx( + svm, + [admin, owner], + new Transaction().add(...ixs), + "base", + `delegate ${owner.publicKey.toBase58()}`, + ); + } + + const erAAfterDelegate = tokenAmount(svm, ataA, "ephemeral"); + const erBAfterDelegate = tokenAmount(svm, ataB, "ephemeral"); + assert( + erAAfterDelegate == 50n, + `A ER balance after delegate ${erAAfterDelegate}`, + ); + assert( + erBAfterDelegate == 10n, + `B ER balance after delegate ${erBAfterDelegate}`, + ); + + const transferIxs = await transferSpl( + recipientA.publicKey, + recipientB.publicKey, + mint.publicKey, + 2n, + { + visibility: "public", + fromBalance: "ephemeral", + toBalance: "ephemeral", + }, + ); + sendSvmTx( + svm, + [recipientA], + new Transaction().add(...transferIxs), + "ephemeral", + "ER transfer", + ); + + const acctA = tokenAmount(svm, ataA, "ephemeral"); + const acctB = tokenAmount(svm, ataB, "ephemeral"); + assert(acctA == 48n); + assert(acctB == 12n); + + for (const owner of [recipientA, recipientB]) { + sendSvmTx( + svm, + [owner], + new Transaction().add(undelegateIx(owner.publicKey, mint.publicKey)), + "ephemeral", + `undelegate ${owner.publicKey.toBase58()}`, + ); + } + + for (const owner of [recipientA, recipientB]) { + const [eata] = deriveEphemeralAta(owner.publicKey, mint.publicKey); + assert( + accountOwner(svm, eata, "base") === + EPHEMERAL_SPL_TOKEN_PROGRAM_ID.toString(), + `${eata.toBase58()} was not undelegated back to ESPL`, + ); + } + + const withdrawIxs = [ + ...(await withdrawSpl(recipientA.publicKey, mint.publicKey, acctA, { + idempotent: false, + })), + ...(await withdrawSpl(recipientB.publicKey, mint.publicKey, acctB, { + idempotent: false, + })), + ]; + sendSvmTx( + svm, + [admin, recipientA, recipientB], + new Transaction().add(...withdrawIxs), + "base", + "withdraw", + ); + + assert(tokenAmount(svm, ataA, "base") == 998n); + assert(tokenAmount(svm, ataB, "base") == 1002n); + }); + + it("Delegate SPL tokens and do a transfer through a program", async () => { + const { admin, program, svm, validator } = createHarness(); + const delegateOpts = { + validator, + idempotent: false as const, + payer: admin.publicKey, + }; + + const { + mint: mint2, + owners: [sender, receiver], + atas: [ataSender, ataReceiver], + } = setupMintWithRecipients(svm, admin); + + const ixsSender = await delegateSpl( + sender.publicKey, + mint2.publicKey, + 10n, + { + ...delegateOpts, + initVaultIfMissing: true, + }, + ); + sendSvmTx( + svm, + [admin, sender], + new Transaction().add(...ixsSender), + "base", + "delegate sender", + ); + + const ixsReceiver = await delegateSpl( + receiver.publicKey, + mint2.publicKey, + 10n, + { ...delegateOpts, initVaultIfMissing: false }, + ); + sendSvmTx( + svm, + [admin, receiver], + new Transaction().add(...ixsReceiver), + "base", + "delegate receiver", + ); + + const erSenderAfterDelegate = tokenAmount(svm, ataSender, "ephemeral"); + const erReceiverAfterDelegate = tokenAmount(svm, ataReceiver, "ephemeral"); + assert( + erSenderAfterDelegate == 10n, + `sender ER balance after delegate ${erSenderAfterDelegate}`, + ); + assert( + erReceiverAfterDelegate == 10n, + `receiver ER balance after delegate ${erReceiverAfterDelegate}`, + ); + + const txT = await program.methods + .transfer(new BN(2)) + .accounts({ + payer: sender.publicKey, + from: ataSender, + to: ataReceiver, + }) + .transaction(); + sendSvmTx(svm, [sender], txT, "ephemeral", "program transfer"); + + const erSender = tokenAmount(svm, ataSender, "ephemeral"); + const erReceiver = tokenAmount(svm, ataReceiver, "ephemeral"); + assert(erSender == 8n, `sender ER balance ${erSender}`); + assert(erReceiver == 12n, `receiver ER balance ${erReceiver}`); + }); +}); diff --git a/spl-tokens/anchor/tsconfig.json b/spl-tokens/anchor/tsconfig.json index 11ee81d7..d93d6f9e 100644 --- a/spl-tokens/anchor/tsconfig.json +++ b/spl-tokens/anchor/tsconfig.json @@ -5,6 +5,7 @@ "lib": ["es2020"], "module": "commonjs", "target": "es2020", - "esModuleInterop": true + "esModuleInterop": true, + "skipLibCheck": true } } diff --git a/spl-tokens/anchor/yarn.lock b/spl-tokens/anchor/yarn.lock index 9770c1c9..66929a31 100644 --- a/spl-tokens/anchor/yarn.lock +++ b/spl-tokens/anchor/yarn.lock @@ -206,6 +206,20 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@magicblock-labs/ephemeral-rollups-sdk@0.14.3": + version "0.14.3" + resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.14.3.tgz#536c215d1daefdbcfa82a79304b08f5014405c58" + integrity sha512-CoByiXHLLS+l7Ojl6XJuYypP/k08ymFkab8+Gh/HCv5Gn2oC4VkwszEQoTDnKo++8Oxbqr9YVGzAMUW4Km7cLA== + dependencies: + "@noble/curves" "^1.4.2" + "@noble/hashes" "^1.4.0" + "@phala/dcap-qvl" "^0.3.9" + "@solana/web3.js" "^1.98.0" + bs58 "^6.0.0" + rpc-websockets "^9.0.4" + tweetnacl "^1.0.3" + typescript "^5.3.0" + "@magicblock-labs/ephemeral-rollups-sdk@0.16.2": version "0.16.2" resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.16.2.tgz#d9ec087aad33a2ddde55756328e4bad7ae31df06" @@ -220,6 +234,54 @@ tweetnacl "^1.0.3" typescript "^5.3.0" +"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" + integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== + +"@magicblock-labs/magicsvm-darwin-x64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" + integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== + +"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" + integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== + +"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" + integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== + +"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" + integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== + +"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" + integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== + +"@magicblock-labs/magicsvm@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" + integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== + dependencies: + "@solana/web3.js" "3.0.0-rc.3" + optionalDependencies: + "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" + "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" + +"@magicblock-labs/test-utils@link:../../test-utils/ts": + version "0.0.0" + uid "" + "@noble/curves@^1.4.2": version "1.9.7" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" @@ -277,6 +339,61 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== +"@solana-program/address-lookup-table@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" + integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== + +"@solana-program/compute-budget@^0.18.0": + version "0.18.1" + resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" + integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== + +"@solana-program/loader-v3@^0.6.0": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" + integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== + +"@solana-program/stake@^0.9.0": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" + integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== + +"@solana-program/system@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" + integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== + +"@solana/accounts@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" + integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/addresses@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" + integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" + integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/buffer-layout-utils@^0.2.0": version "0.2.0" resolved "https://registry.yarnpkg.com/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz#b45a6cab3293a2eb7597cceb474f229889d875ca" @@ -308,6 +425,13 @@ dependencies: "@solana/errors" "2.3.0" +"@solana/codecs-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" + integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/codecs-data-structures@2.0.0-rc.1": version "2.0.0-rc.1" resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-2.0.0-rc.1.tgz#d47b2363d99fb3d643f5677c97d64a812982b888" @@ -317,6 +441,15 @@ "@solana/codecs-numbers" "2.0.0-rc.1" "@solana/errors" "2.0.0-rc.1" +"@solana/codecs-data-structures@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" + integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/codecs-numbers@2.0.0-rc.1": version "2.0.0-rc.1" resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.0.0-rc.1.tgz#f34978ddf7ea4016af3aaed5f7577c1d9869a614" @@ -325,6 +458,14 @@ "@solana/codecs-core" "2.0.0-rc.1" "@solana/errors" "2.0.0-rc.1" +"@solana/codecs-numbers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" + integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/codecs-numbers@^2.1.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" @@ -342,6 +483,15 @@ "@solana/codecs-numbers" "2.0.0-rc.1" "@solana/errors" "2.0.0-rc.1" +"@solana/codecs-strings@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" + integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/codecs@2.0.0-rc.1": version "2.0.0-rc.1" resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-2.0.0-rc.1.tgz#146dc5db58bd3c28e04b4c805e6096c2d2a0a875" @@ -353,6 +503,18 @@ "@solana/codecs-strings" "2.0.0-rc.1" "@solana/options" "2.0.0-rc.1" +"@solana/codecs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" + integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/options" "8.3.0" + "@solana/errors@2.0.0-rc.1": version "2.0.0-rc.1" resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.0.0-rc.1.tgz#3882120886eab98a37a595b85f81558861b29d62" @@ -369,6 +531,116 @@ chalk "^5.4.1" commander "^14.0.0" +"@solana/errors@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" + integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== + dependencies: + chalk "5.6.2" + commander "15.0.0" + +"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" + integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== + +"@solana/fixed-points@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" + integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/functional@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" + integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== + +"@solana/instruction-plans@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" + integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/instructions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" + integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/keys@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" + integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/promises" "8.3.0" + +"@solana/kit@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" + integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/plugin-core" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/program-client-core" "8.3.0" + "@solana/programs" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/sysvars" "8.3.0" + "@solana/transaction-confirmation" "8.3.0" + "@solana/transaction-introspection" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/nominal-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" + integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== + +"@solana/offchain-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" + integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/options@2.0.0-rc.1": version "2.0.0-rc.1" resolved "https://registry.yarnpkg.com/@solana/options/-/options-2.0.0-rc.1.tgz#06924ba316dc85791fc46726a51403144a85fc4d" @@ -380,6 +652,218 @@ "@solana/codecs-strings" "2.0.0-rc.1" "@solana/errors" "2.0.0-rc.1" +"@solana/options@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" + integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/plugin-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" + integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== + +"@solana/plugin-interfaces@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" + integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/program-client-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" + integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/signers" "8.3.0" + +"@solana/programs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" + integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/promises@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" + integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== + +"@solana/rpc-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" + integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/rpc-parsed-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" + integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== + +"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" + integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== + dependencies: + "@solana/errors" "8.3.0" + +"@solana/rpc-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" + integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-subscriptions-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" + integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/rpc-subscriptions-channel-websocket@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" + integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/subscribable" "8.3.0" + ws "^8.21.3" + +"@solana/rpc-subscriptions-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" + integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-subscriptions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" + integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions-api" "8.3.0" + "@solana/rpc-subscriptions-channel-websocket" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-transformers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" + integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/rpc-transport-http@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" + integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + undici-types "^8.10.2" + +"@solana/rpc-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" + integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/rpc@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" + integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-transport-http" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/signers@8.3.0", "@solana/signers@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" + integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + "@solana/spl-token-group@^0.0.7": version "0.0.7" resolved "https://registry.yarnpkg.com/@solana/spl-token-group/-/spl-token-group-0.0.7.tgz#83c00f0cd0bda33115468cd28b89d94f8ec1fee4" @@ -405,6 +889,107 @@ "@solana/spl-token-metadata" "^0.1.6" buffer "^6.0.3" +"@solana/subscribable@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" + integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + +"@solana/sysvars@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" + integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/transaction-confirmation@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" + integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/transaction-introspection@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" + integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/transaction-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" + integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/transactions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" + integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + +"@solana/web3.js@3.0.0-rc.3": + version "3.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" + integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== + dependencies: + "@noble/curves" "^1.4.2" + "@noble/hashes" "^1.4.0" + "@solana-program/address-lookup-table" "^0.14.0" + "@solana-program/compute-budget" "^0.18.0" + "@solana-program/loader-v3" "^0.6.0" + "@solana-program/stake" "^0.9.0" + "@solana-program/system" "^0.14.0" + "@solana/assertions" "^8.2.0" + "@solana/fast-stable-stringify" "^8.2.0" + "@solana/kit" "^8.2.0" + "@solana/rpc-spec-types" "^8.2.0" + "@solana/signers" "^8.2.0" + "@solana/web3.js@^1.32.0", "@solana/web3.js@^1.69.0", "@solana/web3.js@^1.98.0": version "1.98.4" resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" @@ -718,6 +1303,11 @@ chai@^5.2.0: loupe "^3.1.0" pathval "^2.0.0" +chalk@5.6.2, chalk@^5.3.0, chalk@^5.4.1: + version "5.6.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" + integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== + chalk@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -726,11 +1316,6 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^5.3.0, chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - check-error@^2.1.1: version "2.1.3" resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.3.tgz#2427361117b70cca8dc89680ead32b157019caf5" @@ -764,6 +1349,11 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +commander@15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" + integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== + commander@^12.1.0: version "12.1.0" resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" @@ -1468,6 +2058,11 @@ typescript@^5.3.0, typescript@^5.8.3: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.24.6.tgz#61275b485d7fd4e9d269c7cf04ec2873c9cc0f91" integrity sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg== +undici-types@^8.10.2: + version "8.10.2" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" + integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== + utf-8-validate@^6.0.0: version "6.0.6" resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-6.0.6.tgz#8a842c9b15af3f6323a3d5ed5eb9e61d208d8c22" @@ -1538,6 +2133,11 @@ ws@^7.5.10: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== +ws@^8.21.3: + version "8.21.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" + integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== + ws@^8.5.0: version "8.20.1" resolved "https://registry.yarnpkg.com/ws/-/ws-8.20.1.tgz#91a9ae2b312ccf98e0a85ec499b48cef45ab0ddb" diff --git a/test-utils/rust/Cargo.lock b/test-utils/rust/Cargo.lock new file mode 100644 index 00000000..0f6b530a --- /dev/null +++ b/test-utils/rust/Cargo.lock @@ -0,0 +1,6589 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common 0.1.7", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures 0.2.17", +] + +[[package]] +name = "aes-gcm-siv" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae0784134ba9375416d469ec31e7c5f9fa94405049cf08c5ce5b4698be673e0d" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "polyval", + "subtle", + "zeroize", +] + +[[package]] +name = "agave-feature-set" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e724c6d41535d61eb4cba970716f6cfcef8d3f4d15750488f77a7630faab680" +dependencies = [ + "ahash 0.8.12", + "solana-epoch-schedule 3.2.0", + "solana-hash 4.5.0", + "solana-keypair", + "solana-pubkey 4.2.0", + "solana-sha256-hasher 3.1.0", + "solana-svm-feature-set", +] + +[[package]] +name = "agave-reserved-account-keys" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa474270f9cd8d71089979f1ad8e31c2eccde8b32d1ca03f33fe1123104d562" +dependencies = [ + "agave-feature-set", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "agave-transaction-view" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11af131e96e1a0df153db2d673a28293d171da78056104ec8e0d396e2bdf305b" +dependencies = [ + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-packet 4.2.0", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-svm-transaction", + "solana-transaction 4.1.6", +] + +[[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", + "getrandom 0.3.4", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "anchor-attribute-access-control" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a0ba6f4d5cff33a16a8cb30fd7419b71cf8b8b408998a341235cefe7e76cc1c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-account" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af875fe99d9dab01317a3bac577b05f3e52d5bd7d1b424de488ba51f3310feab" +dependencies = [ + "anchor-syn", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-constant" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345a11192cd11fdc8663e3194bbcd0c983c019cd9f21804d7853eeee5ee22653" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-error" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e5f6290f0f54e0e34b8efbb4dcd69dc2c46c655ada8198f35f403d2a88cf9c7" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-event" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0159e0fae5b1b508110b8753fda23ebce778f3bd8c146b8baabd12d2cebe4a7" +dependencies = [ + "anchor-syn", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-attribute-program" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51180111bea3660c0db345bfee34cf23f8d89cf2ac8dd5d8c7a044b3fb24d961" +dependencies = [ + "anchor-lang-idl", + "anchor-syn", + "anyhow", + "heck 0.3.3", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-accounts" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b802cd6561645117219ae6ed62cd322501bf1b5b7fa1a6fd8d911428c4c37192" +dependencies = [ + "anchor-syn", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-serde" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa658e7d911c4290fe9ee953e75cf95f3c4db19c053f64071512867fa9f40394" +dependencies = [ + "anchor-syn", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-derive-space" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69520cea030ee13d2978087a467bf32078012a5ce06b2746318c359887d481ed" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "anchor-lang" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bac4de7c9a9a69180798af701e22302cc0ebf2ef683b843706a1b7809454735" +dependencies = [ + "anchor-attribute-access-control", + "anchor-attribute-account", + "anchor-attribute-constant", + "anchor-attribute-error", + "anchor-attribute-event", + "anchor-attribute-program", + "anchor-derive-accounts", + "anchor-derive-serde", + "anchor-derive-space", + "base64 0.21.7", + "bincode", + "borsh 1.8.1", + "bytemuck", + "const-crypto", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-define-syscall 3.0.0", + "solana-feature-gate-interface 3.1.0", + "solana-instruction 3.4.1", + "solana-instructions-sysvar 3.0.1", + "solana-invoke", + "solana-loader-v3-interface 6.1.1", + "solana-msg 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-stake-interface 2.0.2", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", + "thiserror 1.0.69", +] + +[[package]] +name = "anchor-lang-idl" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47914b4290ae2bdf4ec203aa821e6eba86d7c78ef497918938038dcc6919f953" +dependencies = [ + "anchor-lang-idl-spec", + "anyhow", + "heck 0.3.3", + "serde", + "serde_json", + "sha2 0.10.9", +] + +[[package]] +name = "anchor-lang-idl-spec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bdf143115440fe621bdac3a29a1f7472e09f6cd82b2aa569429a0c13f103838" +dependencies = [ + "anyhow", + "serde", +] + +[[package]] +name = "anchor-syn" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ef87b1d3ae59fbf265a9157a9082308af220b4ef5a64a360d8820dcf25b5a86" +dependencies = [ + "bs58", + "heck 0.3.3", + "proc-macro2", + "quote", + "serde", + "sha2 0.11.0", + "syn 2.0.119", + "thiserror 1.0.69", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anyhow" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" + +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-bn254" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-std 0.5.0", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", + "itertools 0.13.0", + "num-bigint 0.4.8", + "num-integer", + "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 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.8", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm 0.5.0", + "ark-ff-macros 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "educe", + "itertools 0.13.0", + "num-bigint 0.4.8", + "num-traits", + "paste", + "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-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive 0.4.2", + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint 0.4.8", +] + +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-serialize-derive 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "num-bigint 0.4.8", +] + +[[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-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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.8", +] + +[[package]] +name = "ark-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" +dependencies = [ + "num-traits", + "rand 0.8.8", +] + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" + +[[package]] +name = "ascii" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[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 = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[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.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" + +[[package]] +name = "bitvec" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddcec3d12c579d40898fe0a9a358a803c23e9c52ca3c425707f81c9436211837" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake3" +version = "1.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d9e454fc11f76977dc803893aff6304ed33d6a26efae8696573bea74baa27ae" +dependencies = [ + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "cpufeatures 0.3.1", + "digest 0.11.3", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "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-buffer" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "blst" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20659f9bbee16cbbd2f7393e40ab6309f5a98f76a2eb57a995ec508b72387fe" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "blstrs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a8a8ed6fefbeef4a8c7b460e4110e12c5e22a5b7cf32621aae6ad650c4dcf29" +dependencies = [ + "blst", + "byte-slice-cast", + "ff", + "group", + "pairing", + "rand_core 0.6.4", + "serde", + "subtle", +] + +[[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.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "553c5d846a6ba5150c65e3b1b8ec073bcf1abc20f9b7220de384a4443ea4e20a" +dependencies = [ + "borsh-derive 1.8.1", + "bytes", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831213f80d9423998dd696e2c5345aba6be7a0bd8cd19e31c5243e13df1cef89" +dependencies = [ + "borsh-derive-internal", + "borsh-schema-derive-internal", + "proc-macro-crate 0.1.5", + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12cdfe656708a01f89b451a7d36466e6fe6c414de0aa18fc54f864f6f9ca9f56" +dependencies = [ + "once_cell", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[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.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.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[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 = "byte-slice-cast" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" + +[[package]] +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bytemuck" +version = "1.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a1f896587b6f2c069c73d2f0913e2d590c3990285cd2f0b6aa02b786b4c679c" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" + +[[package]] +name = "cc" +version = "1.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3eb0f42d6c360dc3f8a821f6bf2fdea7f72bfd36b3076eb0e6d1e9e0752fff4" +dependencies = [ + "find-msvc-tools", + "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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" + +[[package]] +name = "cfg_eval" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45565fc9416b9896014f5732ac776f810ee53a66730c17e4020c3ec064a8f88f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common 0.1.7", + "inout", +] + +[[package]] +name = "cmov" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" + +[[package]] +name = "combine" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" +dependencies = [ + "ascii", + "byteorder", + "either", + "memchr", + "unreachable", +] + +[[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 = "const-crypto" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c06f1eb05f06cf2e380fdded278fbf056a38974299d77960555a311dcf91a52" +dependencies = [ + "keccak-const", + "sha2-const-stable", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const-oid" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" + +[[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 = "cpufeatures" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a7799fd6b852db0e61728dde9a204c423b44d689dbd432522543614b490e78" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "crypto-common" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "ct-codecs" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49fb0c6640b4507ebd99ff67677009e381ba5eee1d14df78de4a3d16eb123c39" + +[[package]] +name = "ctor" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1c888a2a4f677017373fb6c01e13e318dd9e78758445ed5eb985e355d3f8281" +dependencies = [ + "ctor-proc-macro", + "dtor", + "link-section", +] + +[[package]] +name = "ctor-proc-macro" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7ab264ea985f1bd27887d7b21ea2bb046728e05d11909ca138d700c494730db" + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "ctutils" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" +dependencies = [ + "cmov", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "rand_core 0.6.4", + "rustc_version", + "serde", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core 0.23.0", + "darling_macro 0.23.0", +] + +[[package]] +name = "darling" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed17f5901b6630b993ca003def43f2f8ef4014fc13b047b57aad617ff32bc2ec" +dependencies = [ + "darling_core 0.24.1", + "darling_macro 0.24.1", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.119", +] + +[[package]] +name = "darling_core" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6837e2cf7485aaae18f86181d2f0e9a7ed297a025e220aeabf63fdebd3a2ddff" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 3.0.5", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "darling_macro" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ac7135c3ef02b2f7833bbeb1be5ba7f966dcde8a87c6b87f65a778d71a02785" +dependencies = [ + "darling_core 0.24.1", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "dary_heap" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b1e3a325bc115f096c8b77bbf027a7c2592230e70be2d985be950d3d5e60ebe" + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid 0.9.6", + "zeroize", +] + +[[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", + "const-oid 0.9.6", + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "digest" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" +dependencies = [ + "block-buffer 0.12.1", + "const-oid 0.10.2", + "crypto-common 0.2.2", + "ctutils", +] + +[[package]] +name = "dtor" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30e4690622ab6700ced40fc370a3f07b7d111f0154bb6fb08f73b4c8834f75b6" +dependencies = [ + "dtor-proc-macro", +] + +[[package]] +name = "dtor-proc-macro" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c98b077c7463d01d22dde8a24378ddf1ca7263dc687cffbed38819ea6c21131" + +[[package]] +name = "eager" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abe71d579d1812060163dff96056261deb5bf6729b100fa2e36a68b9649ba3d3" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand_core 0.6.4", + "serde", + "sha2 0.10.9", + "subtle", + "zeroize", +] + +[[package]] +name = "ed25519-dalek-bip32" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b49a684b133c4980d7ee783936af771516011c8cd15f429dbda77245e282f03" +dependencies = [ + "derivation-path", + "ed25519-dalek", + "hmac", + "sha2 0.10.9", +] + +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "either" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "enum-iterator" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4549325971814bda7a44061bf3fe7e487d447cba01e4220a4b454d630d7a016" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685adfa4d6f3d765a26bc5dbc936577de9abf756c1feeb3089b01dd395034842" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "enum-ordinalize" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89dd01549b09589510cf0647475075d12071456586d70f5c75c98ae2a5537677" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a65863d15a4ce2888bd2f0f543cc963d3879c3a022c8ee43f6141d479a3ac815" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "ephemeral-rollups-sdk" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "838564736408ada011e9986c819b26cf0195bb2dd238e10be258731979213d75" +dependencies = [ + "base64ct", + "bincode", + "bytemuck", + "ephemeral-rollups-sdk-attribute-action 0.14.4", + "ephemeral-rollups-sdk-attribute-commit 0.14.4", + "ephemeral-rollups-sdk-attribute-delegate 0.14.4", + "ephemeral-rollups-sdk-attribute-ephemeral 0.14.4", + "ephemeral-rollups-sdk-attribute-ephemeral-accounts 0.14.4", + "five8 0.2.1", + "getrandom 0.2.17", + "magicblock-delegation-program-api", + "magicblock-magic-program-api 0.10.1", + "num-derive", + "num-traits", + "solana-account 3.4.0", + "solana-account-info 2.3.0", + "solana-account-info 3.1.1", + "solana-address 2.6.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program 2.3.0", + "solana-program 3.0.0", + "solana-program-error 2.2.2", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "spl-associated-token-account-interface", + "thiserror 1.0.69", +] + +[[package]] +name = "ephemeral-rollups-sdk" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a267fd1fe36f82ed50307b3757561ac59b1629a523fd179e2a66f4383c9afc0a" +dependencies = [ + "anchor-lang", + "base64ct", + "bincode", + "bytemuck", + "ephemeral-rollups-sdk-attribute-action 0.16.2", + "ephemeral-rollups-sdk-attribute-commit 0.16.2", + "ephemeral-rollups-sdk-attribute-delegate 0.16.2", + "ephemeral-rollups-sdk-attribute-ephemeral 0.16.2", + "ephemeral-rollups-sdk-attribute-ephemeral-accounts 0.16.2", + "ephemeral-vrf-sdk", + "ephemeral-vrf-sdk-vrf-macro", + "five8 0.2.1", + "getrandom 0.2.17", + "magicblock-delegation-program-api", + "magicblock-magic-program-api 0.10.1", + "solana-account-info 2.3.0", + "solana-address 2.6.1", + "solana-program 2.3.0", + "solana-program 3.0.0", + "solana-program-error 2.2.2", + "solana-system-interface 2.0.0", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-action" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a29f33b94edcdfcf1b9b7a61aa0ac00e8efdc66f89c8b4b573f7ea965a42c60a" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-action" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3847b70bac1717bfd3108fe310195e658665b2d971bcb4eb2aa5aaca2c9392" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-commit" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da9ed3ea8b850013f6bf768e5f0f2e1f22f1861b46908764536795bf67bb5c67" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-commit" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b08e06840701468449f75916e922fd9694b787596efe66cd9b8dccf3ef0eb5e6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-delegate" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f0d8ab90b4ecc7ac802bbd2115681f9fd42bc5a9018be79ba7aff1fe971aa36" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-delegate" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc365676345c77eed3651debb63af9b282902100e5852a1822ee1385e3b285fe" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ea166c57ee55b329be4eae730561fe02aad5620a35b4d89439d8d0c9e07c3a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fce2590d04b16345a3117c0b66b6822a96a5ef3bc7b9add073cb3a797529d8df" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral-accounts" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa3efae094f5c288746d479fd605b67bcd56d29ddcf1238046ac07eeec130c45" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-rollups-sdk-attribute-ephemeral-accounts" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f70d4bbf6761a71df97fbadcb4cceef630e2d6e37189f5e674ff34bb2210823" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ephemeral-vrf-sdk" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77f3741c733907c10e0d0b32f9aa485c20a73e0b1e7e673a0ac38185fb2a6c11" +dependencies = [ + "anchor-lang", + "borsh 1.8.1", + "ephemeral-vrf-sdk-vrf-macro", + "solana-program 3.0.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "ephemeral-vrf-sdk-vrf-macro" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7b8b3fe3863a27d4c0f32da7b3cfeff179772fd4124d6c9fdcb9d4ab23cd602" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "feature-probe" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" + +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "bitvec", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "filetime" +version = "0.2.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c287a33c7f0a620c38e641e7f60827713987b3c0f26e8ddc9462cc69cf75759" +dependencies = [ + "cfg-if", + "libc", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d" + +[[package]] +name = "five8" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75b8549488b4715defcb0d8a8a1c1c76a80661b5fa106b4ca0e7fce59d7d875" +dependencies = [ + "five8_core 0.1.2", +] + +[[package]] +name = "five8" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23f76610e969fa1784327ded240f1e28a3fd9520c9cec93b636fcf62dd37f772" +dependencies = [ + "five8_core 1.0.0", +] + +[[package]] +name = "five8_const" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26dec3da8bc3ef08f2c04f61eab298c3ab334523e55f076354d6d6f613799a7b" +dependencies = [ + "five8_core 0.1.2", +] + +[[package]] +name = "five8_const" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a0f1728185f277989ca573a402716ae0beaaea3f76a8ff87ef9dd8fb19436c5" +dependencies = [ + "five8_core 1.0.0", +] + +[[package]] +name = "five8_core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2551bf44bc5f776c15044b9b94153a00198be06743e262afaaa61f11ac7523a5" + +[[package]] +name = "five8_core" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "059c31d7d36c43fe39d89e55711858b4da8be7eb6dabac23c7289b1a19489406" + +[[package]] +name = "flate2" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb" +dependencies = [ + "zlib-rs", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures-core" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" + +[[package]] +name = "futures-task" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" + +[[package]] +name = "futures-util" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" +dependencies = [ + "futures-core", + "futures-task", + "pin-project-lite", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[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 = "glob" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand 0.8.8", + "rand_core 0.6.4", + "rand_xorshift", + "subtle", +] + +[[package]] +name = "hash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" +dependencies = [ + "byteorder", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284" + +[[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 = "http" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hybrid-array" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27f864f10dfb56725ce5ce5472bc52252c8f93a4ab86327122cebf62c5f59a17" +dependencies = [ + "typenum", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "indexmap" +version = "2.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", +] + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "generic-array", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "js-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2 0.10.9", + "signature", +] + +[[package]] +name = "keccak" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" +dependencies = [ + "cpufeatures 0.2.17", +] + +[[package]] +name = "keccak-const" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d8d8ce877200136358e0bbff3a77965875db3af755a11e1fa6b1b3e2df13ea" + +[[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.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" + +[[package]] +name = "libflate" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "561a8da1a50e1428d3c51321dafeca849df992a5bb67720c386131234caba82e" +dependencies = [ + "adler32", + "crc32fast", + "dary_heap", + "libflate_lz77", + "no_std_io2", +] + +[[package]] +name = "libflate_lz77" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7a10e427698aef6eef269482776debfef63384d30f13aad39a1a95e0e098fd" +dependencies = [ + "hashbrown 0.16.1", + "no_std_io2", + "rle-decode-fast", +] + +[[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", + "libsecp256k1-core 0.2.2", + "libsecp256k1-gen-ecmult 0.2.1", + "libsecp256k1-gen-genmult 0.2.1", + "rand 0.7.3", + "serde", + "sha2 0.9.9", +] + +[[package]] +name = "libsecp256k1" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" +dependencies = [ + "arrayref", + "base64 0.22.1", + "digest 0.9.0", + "libsecp256k1-core 0.3.0", + "libsecp256k1-gen-ecmult 0.3.0", + "libsecp256k1-gen-genmult 0.3.0", + "rand 0.8.8", + "serde", + "sha2 0.9.9", +] + +[[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-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" +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 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" +dependencies = [ + "libsecp256k1-core 0.3.0", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" +dependencies = [ + "libsecp256k1-core 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" +dependencies = [ + "libsecp256k1-core 0.3.0", +] + +[[package]] +name = "libsodium-rs" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b8cd48c80d6c6fa5a4612d242941067219555baea82b0b49c92ea9d8156b59c" +dependencies = [ + "ct-codecs", + "ctor", + "libc", + "libsodium-sys-stable", + "pkg-config", + "thiserror 1.0.69", + "zeroize", +] + +[[package]] +name = "libsodium-sys-stable" +version = "1.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b04bf6da2c98b727af37ab62cb505f4d751b975b034a9b9ad491d333b0564e" +dependencies = [ + "cc", + "libc", + "libflate", + "minisign-verify", + "pkg-config", + "tar", + "ureq", + "vcpkg", + "zip", +] + +[[package]] +name = "light-poseidon" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c9a85a9752c549ceb7578064b4ed891179d20acd85f27318573b64d2d7ee7ee" +dependencies = [ + "ark-bn254 0.4.0", + "ark-ff 0.4.2", + "num-bigint 0.4.8", + "thiserror 1.0.69", +] + +[[package]] +name = "light-poseidon" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47a1ccadd0bb5a32c196da536fd72c59183de24a055f6bf0513bf845fefab862" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ff 0.5.0", + "num-bigint 0.4.8", + "thiserror 1.0.69", +] + +[[package]] +name = "link-section" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52437d47b0358721ec869cc7374b2a21f7b2237af9b439c0391341a1fbfbf1b" + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[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.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" + +[[package]] +name = "magicblock-account" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b5671bd1525eeab67f240455dffff31a4f6d27b067a3531f2d47c7d5af0c6e" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "thiserror 2.0.20", +] + +[[package]] +name = "magicblock-delegation-program-api" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea16e41e04319201919afca98dd4241b18549f2db0c68f58e4bc531537b5dab" +dependencies = [ + "bincode", + "borsh 0.10.4", + "borsh 1.8.1", + "bytemuck", + "const-crypto", + "libsodium-rs", + "num_enum", + "pinocchio 0.10.2", + "pinocchio-log", + "pinocchio-pubkey", + "pinocchio-system", + "rkyv", + "serde", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-loader-v3-interface 6.1.1", + "solana-program 3.0.0", + "solana-pubkey 2.4.0", + "solana-sdk", + "solana-sdk-ids 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-system-interface 2.0.0", + "static_assertions", + "strum", + "thiserror 2.0.20", +] + +[[package]] +name = "magicblock-litesvm" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82cfc1c7f4348c300f58ddd5ae8613e9b1d08564a7956af43822de59cb76d039" +dependencies = [ + "agave-feature-set", + "agave-reserved-account-keys", + "ansi_term", + "indexmap", + "itertools 0.15.0", + "log", + "magicblock-account", + "solana-account 4.3.2", + "solana-address 2.6.1", + "solana-address-lookup-table-interface 3.1.0", + "solana-builtins", + "solana-clock 3.1.1", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-feature-gate-interface 4.0.0", + "solana-fee", + "solana-fee-calculator 3.2.2", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-instructions-sysvar 4.0.0", + "solana-keypair", + "solana-last-restart-slot 3.1.0", + "solana-loader-v3-interface 8.0.1", + "solana-loader-v4-interface 3.1.0", + "solana-message 4.4.1", + "solana-native-token 3.0.0", + "solana-nonce 3.2.1", + "solana-nonce-account", + "solana-precompile-error", + "solana-program-error 3.0.1", + "solana-program-runtime", + "solana-rent 4.3.0", + "solana-runtime-transaction", + "solana-sdk-ids 3.1.0", + "solana-sha256-hasher 3.1.0", + "solana-signature 3.4.1", + "solana-signer", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stake-history", + "solana-svm-callback", + "solana-svm-log-collector", + "solana-svm-timings", + "solana-svm-transaction", + "solana-syscalls", + "solana-system-interface 3.2.0", + "solana-system-program", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "magicblock-magic-program-api" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291f7a68f6cc622741a3fae513bd71640911abefd1fae2b2602b934515ed4b95" +dependencies = [ + "bincode", + "const-crypto", + "serde", + "solana-program 2.3.0", + "solana-signature 2.3.0", +] + +[[package]] +name = "magicblock-magic-program-api" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dc8fba0307c90b91b70c9ed06d4242d6c4159f331b2f05bf8f875c2a94e0e98" +dependencies = [ + "bincode", + "const-crypto", + "serde", + "solana-program 3.0.0", + "solana-signature 3.4.1", +] + +[[package]] +name = "magicsvm" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e3effa3b8d28f3e0a14d1b72afcf65c2bec2331882a19065ec4424cd5c7ee37" +dependencies = [ + "bincode", + "borsh 1.8.1", + "ephemeral-rollups-sdk 0.14.4", + "magicblock-account", + "magicblock-delegation-program-api", + "magicblock-litesvm", + "magicblock-magic-program-api 0.8.8", + "solana-account 4.3.2", + "solana-address 2.6.1", + "solana-clock 3.1.1", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-program-runtime", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-signer", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[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 = "minisign-verify" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22f9645cb765ea72b8111f36c522475d2daa0d22c957a9826437e97534bc4e9e" + +[[package]] +name = "no_std_io2" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418abd1b6d34fbf6cae440dc874771b0525a604428704c76e48b29a5e67b8003" +dependencies = [ + "memchr", +] + +[[package]] +name = "num" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" +dependencies = [ + "num-bigint 0.2.6", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +dependencies = [ + "autocfg", + "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.119", +] + +[[package]] +name = "num-integer" +version = "0.1.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92800bd69a1eac91786bcfe9da64a897eb72911b8dc3095decbd07429e8048b" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +dependencies = [ + "autocfg", + "num-bigint 0.2.6", + "num-integer", + "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_cpus" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group", +] + +[[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 = "pastey" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4" + +[[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 = "percentage" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd23b938276f14057220b707937bcb42fa76dda7560e57a2da30cb52d557937" +dependencies = [ + "num", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pinocchio" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8afe4f39c0e25cc471b35b89963312791a5162d45a86578cbeaad9e5e7d1b3b" + +[[package]] +name = "pinocchio" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06810dac15a4ef83d3dabdb4f2f22fb39c9adff669cd2781da4f716510a647c" +dependencies = [ + "solana-account-view", + "solana-address 2.6.1", + "solana-define-syscall 4.0.1", + "solana-instruction-view", + "solana-program-error 3.0.1", +] + +[[package]] +name = "pinocchio-log" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd11022408f312e6179ece321c1f7dc0d1b2aa7765fddd39b2a7378d65a899e8" +dependencies = [ + "pinocchio-log-macro", +] + +[[package]] +name = "pinocchio-log-macro" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69fb52edb3c5736b044cc462b0957b9767d0f574d138f4e2761438c498a4b467" +dependencies = [ + "quote", + "regex", + "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 0.1.4", + "pinocchio 0.9.3", + "sha2-const-stable", +] + +[[package]] +name = "pinocchio-system" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24044a0815753862b558e179e78f03f7344cb755de48617a09d7d23b50883b6c" +dependencies = [ + "pinocchio 0.10.2", + "solana-address 2.6.1", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "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.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[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.119", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +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 = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e058c7de0b26af77780c769414d6257830bb240f3c38477dbc2c16e5f54d6d4c" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", +] + +[[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_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", +] + +[[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_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] + +[[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_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + +[[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.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "rend" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "rkyv" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2297bf9c81a3f0dc96bc9521370b88f054168c29826a75e89c55ff196e7ed6a1" +dependencies = [ + "bitvec", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d7b42d4b8d06048d3ac8db0eb31bcb942cbeb709f0b5f2b2ebde398d3038f5" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rle-decode-fast" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" + +[[package]] +name = "rustc-demangle" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b74b56ffa8bb2830709a538c2cbcae9aa062db0d2a42563bfb09bdaae44020eb" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-big-array" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" +dependencies = [ + "serde", +] + +[[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.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "serde_json" +version = "1.0.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_with" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "935177bb8c0cd8ca1a4e6d1a2ac8988bea69cab4f9d3a31311e012ad27868ea4" +dependencies = [ + "serde_core", + "serde_with_macros", +] + +[[package]] +name = "serde_with_macros" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d607aa01a3cb0ad757d6fd216136910db3c97b102fe686585689615a02dbcdc" +dependencies = [ + "darling 0.24.1", + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[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 0.2.17", + "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 0.2.17", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.1", + "digest 0.11.3", +] + +[[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.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77fd7028345d415a4034cf8777cd4f8ab1851274233b45f84e3d955502d93874" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "simd-adler32" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba467056f1b547ed52077911161fc86985becbc60e8e1857c8a144dab0def891" + +[[package]] +name = "solana-account" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f949fe4edaeaea78c844023bfc1c898e0b1f5a100f8a8d2d0f85d0a7b090258" +dependencies = [ + "solana-account-info 2.3.0", + "solana-clock 2.2.3", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-account" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efc0ed36decb689413b9da5d57f2be49eea5bebb3cf7897015167b0c4336e731" +dependencies = [ + "bincode", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 3.1.1", +] + +[[package]] +name = "solana-account" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26788ba0d7eb5b250edda3e1d393739bafd5daf94882f2261d14f5ab0d6a25e0" +dependencies = [ + "bincode", + "qualifier_attr", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 4.1.0", +] + +[[package]] +name = "solana-account-info" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8f5152a288ef1912300fc6efa6c2d1f9bb55d9398eb6c72326360b8063987da" +dependencies = [ + "bincode", + "serde", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-account-info" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9cf16495d9eb53e3d04e72366a33bb1c20c24e78c171d8b8f5978357b63ae95" +dependencies = [ + "bincode", + "serde_core", + "solana-address 2.6.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.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.6.1", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-address" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2ecac8e1b7f74c2baa9e774c42817e3e75b20787134b76cc4d45e8a604488f5" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-address" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c93e262f671bf402e1040e4a7e40b05d81da5956c7681948c975a0997517bb" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8 1.0.0", + "five8_const 1.0.0", + "rand 0.9.5", + "serde", + "serde_derive", + "sha2-const-stable", + "solana-atomic-u64 3.0.1", + "solana-define-syscall 5.2.0", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.1.0", + "wincode", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1673f67efe870b64a65cb39e6194be5b26527691ce5922909939961a6e6b395" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-slot-hashes 2.2.1", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115b4f773acc4f3f3cb986b0d335e9845c0368c82b0940410935bc11ae065578" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", +] + +[[package]] +name = "solana-atomic-u64" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52e52720efe60465b052b9e7445a01c17550666beec855cce66f44766697bc2" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "solana-atomic-u64" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "085db4906d89324cef2a30840d59eaecf3d4231c560ec7c9f6614a93c652f501" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "solana-big-mod-exp" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75db7f2bbac3e62cfd139065d15bcda9e2428883ba61fc8d27ccb251081e7567" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-big-mod-exp" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30c80fb6d791b3925d5ec4bf23a7c169ef5090c013059ec3ed7d0b2c04efa085" +dependencies = [ + "num-bigint 0.4.8", + "num-traits", + "solana-define-syscall 3.0.0", +] + +[[package]] +name = "solana-bincode" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19a3787b8cf9c9fe3dd360800e8b70982b9e5a8af9e11c354b6665dd4a003adc" +dependencies = [ + "bincode", + "serde", + "solana-instruction 2.3.3", +] + +[[package]] +name = "solana-bincode" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "278a1a5bad62cd9da89ac8d4b7ec444e83caa8ae96aa656dfc27684b28d49a5d" +dependencies = [ + "bincode", + "serde_core", + "solana-instruction-error", +] + +[[package]] +name = "solana-blake3-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a0801e25a1b31a14494fc80882a036be0ffd290efc4c2d640bfcca120a4672" +dependencies = [ + "blake3", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-blake3-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7116e1d942a2432ca3f514625104757ab8a56233787e95144c93950029e31176" +dependencies = [ + "blake3", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-bls-signatures" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "654ea8d31bbb4b0b9c28f9c545edb32691de27d4e2fc0e252c1ff47da50c5f2a" +dependencies = [ + "base64 0.22.1", + "blst", + "blstrs", + "cfg_eval", + "ff", + "group", + "pairing", + "rand 0.8.8", + "serde", + "serde_json", + "serde_with", + "thiserror 2.0.20", + "wincode", + "zeroize", +] + +[[package]] +name = "solana-bls12-381-syscall" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94e8256fda0542709fd1320a96d81c3c66e10ac5f680cca9b991d7d3b0e3fe86" +dependencies = [ + "blst", + "blstrs", + "bytemuck", + "bytemuck_derive", + "pairing", +] + +[[package]] +name = "solana-bn254" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62ff13a8867fcc7b0f1114764e1bf6191b4551dcaf93729ddc676cd4ec6abc9f" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "bytemuck", + "solana-define-syscall 5.2.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-borsh" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718333bcd0a1a7aed6655aa66bef8d7fb047944922b2d3a18f49cbc13e73d004" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", +] + +[[package]] +name = "solana-borsh" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c04abbae16f57178a163125805637b8a076175bb5c0002fb04f4792bea901cf7" +dependencies = [ + "borsh 1.8.1", +] + +[[package]] +name = "solana-bpf-loader-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabcc3a5785886f026b438771bf6b221b0d4877f6089af79d432c7fe877a6cd4" +dependencies = [ + "bincode", + "qualifier_attr", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-clock 3.1.1", + "solana-instruction 3.4.1", + "solana-loader-v3-interface 7.0.0", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-type-overrides", + "solana-syscalls", + "solana-system-interface 3.2.0", + "solana-transaction-context", +] + +[[package]] +name = "solana-builtins" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ab49c6f8a77bff54e811e9674747fd435e218dcbe71120039a865515151998c" +dependencies = [ + "agave-feature-set", + "solana-bpf-loader-program", + "solana-compute-budget-program", + "solana-hash 4.5.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-program", + "solana-vote-program", + "solana-zk-elgamal-proof-program", + "solana-zk-token-proof-program", +] + +[[package]] +name = "solana-builtins-default-costs" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76792b1ecab1c5f127f16062926850b52c4bb51ac1a93d220635fb13221d3503" +dependencies = [ + "agave-feature-set", + "ahash 0.8.12", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-clock" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8584296123df8fe229b95e2ebfd37ae637fe9db9b7d4dd677ac5a78e80dbfce" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-clock" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0acdace90d96e2c9e70d681465b4fe888b6bcf27c354ae9774e9f8a3b72923d" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-compute-budget" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e200042fd149d565521f7b31e082c0db0e022e9860c7e013130f812984ae846f" +dependencies = [ + "solana-fee-structure", + "solana-program-runtime", +] + +[[package]] +name = "solana-compute-budget-instruction" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a651fc5d082fd88090a7336ea85599b1ffcf6503dbcff575ae1bb2fb1cec238" +dependencies = [ + "agave-feature-set", + "solana-borsh 3.0.2", + "solana-builtins-default-costs", + "solana-compute-budget", + "solana-compute-budget-interface", + "solana-instruction 3.4.1", + "solana-packet 4.2.0", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-svm-transaction", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-compute-budget-interface" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8292c436b269ad23cecc8b24f7da3ab07ca111661e25e00ce0e1d22771951ab9" +dependencies = [ + "borsh 1.8.1", + "solana-instruction 3.4.1", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-compute-budget-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e314aeb4a86507ba77fb2d6ce9f5836af6aeaaedd4c5314e310ca72f73afe367" +dependencies = [ + "solana-program-runtime", +] + +[[package]] +name = "solana-cpi" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dc71126edddc2ba014622fc32d0f5e2e78ec6c5a1e0eb511b85618c09e9ea11" +dependencies = [ + "solana-account-info 2.3.0", + "solana-define-syscall 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-stable-layout 2.2.1", +] + +[[package]] +name = "solana-cpi" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dea26709d867aada85d0d3617db0944215c8bb28d3745b912de7db13a23280c" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 4.0.1", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-stable-layout 3.0.1", +] + +[[package]] +name = "solana-curve25519" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14b4d2a4bf0d0b0a86c22111917e86e8bd39a7b31420fb2c7d73eb83761fc7af" +dependencies = [ + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "solana-define-syscall 5.2.0", + "subtle", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-decode-error" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c781686a18db2f942e70913f7ca15dc120ec38dcab42ff7557db2c70c625a35" +dependencies = [ + "num-traits", +] + +[[package]] +name = "solana-define-syscall" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ae3e2abcf541c8122eafe9a625d4d194b4023c20adde1e251f94e056bb1aee2" + +[[package]] +name = "solana-define-syscall" +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-define-syscall" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf8209ece2bd9f1450e672858ffc0e5c8c786ff6916d2a862b126dd0128f380f" + +[[package]] +name = "solana-derivation-path" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff71743072690fdbdfcdc37700ae1cb77485aaad49019473a81aee099b1e0b8c" +dependencies = [ + "derivation-path", + "qstring", + "uriparse", +] + +[[package]] +name = "solana-epoch-info" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e093c84f6ece620a6b10cd036574b0cd51944231ab32d81f80f76d54aba833e6" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-epoch-rewards" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b575d3dd323b9ea10bb6fe89bf6bf93e249b215ba8ed7f68f1a3633f384db7" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 2.3.0", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-rewards" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf7eb4986b0b1d6f562b21f75a836f1a6df6e00c275efcef50aab5c144dc59e" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-epoch-rewards-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee8beac9bff4db9225e57d532d169b0be5e447f1e6601a2f50f27a01bf5518f" +dependencies = [ + "siphasher", + "solana-address 2.6.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-epoch-schedule" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fce071fbddecc55d727b1d7ed16a629afe4f6e4c217bc8d00af3b785f6f67ed" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-epoch-schedule" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8116e6ffa6002237d5ab5edcbda17f9ba66b6742c45a89c9fb40a94dbacd4c1d" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-program-error 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-epoch-stake" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "027e6d0b9e7daac5b2ac7c3f9ca1b727861121d9ef05084cf435ff736051e7c2" +dependencies = [ + "solana-define-syscall 5.2.0", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-example-mocks" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84461d56cbb8bb8d539347151e0525b53910102e4bced875d49d5139708e39d3" +dependencies = [ + "serde", + "serde_derive", + "solana-address-lookup-table-interface 2.2.2", + "solana-clock 2.2.3", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-keccak-hasher 2.2.1", + "solana-message 2.4.0", + "solana-nonce 2.2.1", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-example-mocks" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978855d164845c1b0235d4b4d101cadc55373fffaf0b5b6cfa2194d25b2ed658" +dependencies = [ + "serde", + "serde_derive", + "solana-address-lookup-table-interface 3.1.0", + "solana-clock 3.1.1", + "solana-hash 3.1.0", + "solana-instruction 3.4.1", + "solana-keccak-hasher 3.1.0", + "solana-message 3.1.0", + "solana-nonce 3.2.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 2.0.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43f5c5382b449e8e4e3016fb05e418c53d57782d8b5c30aa372fc265654b956d" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 2.2.1", + "solana-account-info 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75ca9b5cbb6f500f7fd73db5bd95640f71a83f04d6121a0e59a43b202dca2731" +dependencies = [ + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd7545e02f91da1d6996f32b18f7796aa01e0682f8f3a7434b82cd1a10448add" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-fee" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c32df41c2c93a567a1612a973faddeaca093276677c157ef9cb60a378289fc69" +dependencies = [ + "agave-feature-set", + "solana-fee-structure", + "solana-svm-transaction", +] + +[[package]] +name = "solana-fee-calculator" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89bc408da0fb3812bc3008189d148b4d3e08252c79ad810b245482a3f70cd8d" +dependencies = [ + "log", + "serde", + "serde_derive", +] + +[[package]] +name = "solana-fee-calculator" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef67f01cc6a0c72e99a08d0d484683f995de4c80e9568728fa77d1537f9b7e09" +dependencies = [ + "log", + "serde", + "serde_derive", + "wincode", +] + +[[package]] +name = "solana-fee-structure" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2abdb1223eea8ec64136f39cb1ffcf257e00f915c957c35c0dd9e3f4e700b0" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-get-sysvar" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef3bc859fc036ed490146793557386cbfae614ebba4adc704c37d94350824ed4" +dependencies = [ + "solana-address 2.6.1", + "solana-define-syscall 5.2.0", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-hard-forks" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb50b2df7a36a2af58ce24bb0229622ac845dcc196e8c23b3ea4a29dd6bee09" + +[[package]] +name = "solana-hash" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b96e9f0300fa287b545613f007dfe20043d7812bee255f418c1eb649c93b63" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "five8 0.2.1", + "js-sys", + "serde", + "serde_derive", + "solana-atomic-u64 2.2.1", + "solana-sanitize 2.2.1", + "wasm-bindgen", +] + +[[package]] +name = "solana-hash" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "337c246447142f660f778cf6cb582beba8e28deb05b3b24bfb9ffd7c562e5f41" +dependencies = [ + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-hash" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f4c847893a2ea50b4ae3ca723b124e07cd0544fecea3598f785168f9b78333f" +dependencies = [ + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "five8 1.0.0", + "serde", + "serde_derive", + "solana-atomic-u64 3.0.1", + "solana-sanitize 3.0.1", + "wincode", +] + +[[package]] +name = "solana-hash-512" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce934b02bab639341f2fd62c3e7e3c39dcceb47f0196b7630ed1f82ecb704bd" + +[[package]] +name = "solana-inflation" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf186550ea7438e2708bd0c233f01fe9c3fa45b9b607ff993b650ce60af102e" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "solana-instruction" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab5682934bd1f65f8d2c16f21cb532526fcc1a09f796e2cacdb091eee5774ad" +dependencies = [ + "bincode", + "borsh 1.8.1", + "getrandom 0.2.17", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "serde_json", + "solana-define-syscall 2.3.0", + "solana-pubkey 2.4.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-instruction" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3957ca1d31107efd9a6bb88b25c348ca5e3b4b6683e3d08adb86d3d17aa01f1" +dependencies = [ + "bincode", + "borsh 1.8.1", + "serde", + "serde_derive", + "solana-define-syscall 5.2.0", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "wincode", +] + +[[package]] +name = "solana-instruction-error" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b7d34343838343a3755b7dfb1e438d94c6db2263b519cfe3c2257af932b6e93" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-program-error 3.0.1", +] + +[[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.6.1", + "solana-define-syscall 4.0.1", + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0e85a6fad5c2d0c4f5b91d34b8ca47118fc593af706e523cdbedf846a954f57" +dependencies = [ + "bitflags", + "solana-account-info 2.3.0", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serialize-utils 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e0732294560e88ecdb2bbc656e67383e9f88c78ec09469cef172f0d28cd1bcd" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-serialize-utils 3.1.2", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-instructions-sysvar" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e38363a181313d607f7a118df2b401bb27b477a0104b09283cbf504f5f0f00cc" +dependencies = [ + "bitflags", + "solana-account-info 3.1.1", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-program-error 3.0.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-serialize-utils 3.1.2", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-invoke" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4065031f5c7dd29ef5f5003c1a353011eeabbafa6c5a5033da0cedbfca824b94" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 3.0.0", + "solana-instruction 3.4.1", + "solana-program-entrypoint 3.1.1", + "solana-stable-layout 3.0.1", +] + +[[package]] +name = "solana-keccak-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7aeb957fbd42a451b99235df4942d96db7ef678e8d5061ef34c9b34cae12f79" +dependencies = [ + "sha3", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-keccak-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed1c0d16d6fdeba12291a1f068cdf0d479d9bff1141bf44afd7aa9d485f65ef8" +dependencies = [ + "sha3", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-keypair" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "263d614c12aa267a3278703175fd6440552ca61bc960b5a02a4482720c53438b" +dependencies = [ + "ed25519-dalek", + "ed25519-dalek-bip32", + "five8 1.0.0", + "five8_core 1.0.0", + "rand 0.9.5", + "solana-address 2.6.1", + "solana-derivation-path", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-last-restart-slot" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a6360ac2fdc72e7463565cd256eedcf10d7ef0c28a1249d261ec168c1b55cdd" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-last-restart-slot" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22474b83d3c7c318e1c3a725784fc2d1d03b728e36369e58ce48769a61ed85e" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-loader-v2-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8ab08006dad78ae7cd30df8eea0539e207d08d91eaefb3e1d49a446e1c49654" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f7162a05b8b0773156b443bccd674ea78bb9aa406325b467ea78c06c99a63a2" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e0538d4dbc9022e01616f1c58f2db98ece739c5d5ed4a2ef8737a953e76a2d4" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68029ab11d9c891d4ce23ada75745e40f983c5674af366f447b672569634231b" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "362b468fbde4c20521b9ff5ef743bc0d9b410455a5a92a8b29fd46954e89345f" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 3.2.0", + "wincode", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "706a777242f1f39a83e2a96a2a6cb034cb41169c6ecbee2cf09cb873d9659e7e" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c948b33ff81fa89699911b207059e493defdba9647eaf18f23abdf3674e0fb" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-message" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1796aabce376ff74bf89b78d268fa5e683d7d7a96a0a4e4813ec34de49d5314b" +dependencies = [ + "bincode", + "blake3", + "lazy_static", + "serde", + "serde_derive", + "solana-bincode 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", + "solana-transaction-error 2.2.1", + "wasm-bindgen", +] + +[[package]] +name = "solana-message" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0448b1fd891c5f46491e5dc7d9986385ba3c852c340db2911dd29faa01d2b08d" +dependencies = [ + "bincode", + "blake3", + "lazy_static", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-message" +version = "4.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e29e655f222a3a64145fedceacdca3e696ba7aded1dbd5391aa09d5fbfba53c" +dependencies = [ + "blake3", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-msg" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36a1a14399afaabc2781a1db09cb14ee4cc4ee5c7a5a3cfcc601811379a8092" +dependencies = [ + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-msg" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726b7cbbc6be6f1c6f29146ac824343b9415133eee8cce156452ad1db93f8008" +dependencies = [ + "solana-define-syscall 5.2.0", +] + +[[package]] +name = "solana-native-token" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61515b880c36974053dd499c0510066783f0cc6ac17def0c7ef2a244874cf4a9" + +[[package]] +name = "solana-native-token" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae8dd4c280dca9d046139eb5b7a5ac9ad10403fbd64964c7d7571214950d758f" + +[[package]] +name = "solana-nonce" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703e22eb185537e06204a5bd9d509b948f0066f2d1d814a6f475dafb3ddf1325" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-pubkey 2.4.0", + "solana-sha256-hasher 2.3.0", +] + +[[package]] +name = "solana-nonce" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4172d5b33a0a38fcdb2af8f84406570dd51567267da96c28ad0f31fc11621c0" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator 3.2.2", + "solana-hash 4.5.0", + "solana-pubkey 4.2.0", + "solana-sha256-hasher 3.1.0", + "wincode", +] + +[[package]] +name = "solana-nonce-account" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b81bf7e2aa8c443724051507c1007d0b6d9c34b70925d3232dc78f5ca485209e" +dependencies = [ + "solana-account 4.3.2", + "solana-hash 4.5.0", + "solana-nonce 3.2.1", + "solana-sdk-ids 3.1.0", + "wincode", +] + +[[package]] +name = "solana-offchain-message" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e2a1141a673f72a05cf406b99e4b2b8a457792b7c01afa07b3f00d4e2de393" +dependencies = [ + "num_enum", + "solana-hash 3.1.0", + "solana-packet 3.0.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sha256-hasher 3.1.0", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-packet" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edf2f25743c95229ac0fdc32f8f5893ef738dbf332c669e9861d33ddb0f469d" +dependencies = [ + "bitflags", +] + +[[package]] +name = "solana-packet" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a2a582d7863548f047f49aa3745c076cfa9e1364baa080ef0c1210f0e4ebda" +dependencies = [ + "bitflags", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-poseidon" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "737b8ab25bf4cc8e618f80f1fe40709b2ace708bc764a36b8a4c81eea8c07034" +dependencies = [ + "ark-bn254 0.4.0", + "ark-bn254 0.5.0", + "light-poseidon 0.2.0", + "light-poseidon 0.4.0", + "solana-define-syscall 4.0.1", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-precompile-error" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cafcd950de74c6c39d55dc8ca108bbb007799842ab370ef26cf45a34453c31e1" +dependencies = [ + "num-traits", +] + +[[package]] +name = "solana-presigner" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f704eaf825be3180832445b9e4983b875340696e8e7239bf2d535b0f86c14a2" +dependencies = [ + "solana-pubkey 3.0.0", + "solana-signature 3.4.1", + "solana-signer", +] + +[[package]] +name = "solana-program" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98eca145bd3545e2fbb07166e895370576e47a00a7d824e325390d33bf467210" +dependencies = [ + "bincode", + "blake3", + "borsh 0.10.4", + "borsh 1.8.1", + "bs58", + "bytemuck", + "console_error_panic_hook", + "console_log", + "getrandom 0.2.17", + "lazy_static", + "log", + "memoffset", + "num-bigint 0.4.8", + "num-derive", + "num-traits", + "rand 0.8.8", + "serde", + "serde_bytes", + "serde_derive", + "solana-account-info 2.3.0", + "solana-address-lookup-table-interface 2.2.2", + "solana-atomic-u64 2.2.1", + "solana-big-mod-exp 2.2.1", + "solana-bincode 2.2.1", + "solana-blake3-hasher 2.2.1", + "solana-borsh 2.2.1", + "solana-clock 2.2.3", + "solana-cpi 2.2.1", + "solana-decode-error", + "solana-define-syscall 2.3.0", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", + "solana-example-mocks 2.2.1", + "solana-feature-gate-interface 2.2.2", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-instructions-sysvar 2.2.2", + "solana-keccak-hasher 2.2.1", + "solana-last-restart-slot 2.2.1", + "solana-loader-v2-interface", + "solana-loader-v3-interface 5.0.0", + "solana-loader-v4-interface 2.2.1", + "solana-message 2.4.0", + "solana-msg 2.2.1", + "solana-native-token 2.3.0", + "solana-nonce 2.2.1", + "solana-program-entrypoint 2.3.0", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-program-option 2.2.1", + "solana-program-pack 2.2.1", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-secp256k1-recover 2.2.1", + "solana-serde-varint 2.2.2", + "solana-serialize-utils 2.2.1", + "solana-sha256-hasher 2.3.0", + "solana-short-vec 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stable-layout 2.2.1", + "solana-stake-interface 1.2.1", + "solana-system-interface 1.0.0", + "solana-sysvar 2.3.0", + "solana-sysvar-id 2.2.1", + "solana-vote-interface 2.2.6", + "thiserror 2.0.20", + "wasm-bindgen", +] + +[[package]] +name = "solana-program" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91b12305dd81045d705f427acd0435a2e46444b65367d7179d7bdcfc3bc5f5eb" +dependencies = [ + "memoffset", + "solana-account-info 3.1.1", + "solana-big-mod-exp 3.0.0", + "solana-blake3-hasher 3.1.0", + "solana-borsh 3.0.2", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-define-syscall 3.0.0", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-epoch-stake", + "solana-example-mocks 3.0.0", + "solana-fee-calculator 3.2.2", + "solana-hash 3.1.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-instructions-sysvar 3.0.1", + "solana-keccak-hasher 3.1.0", + "solana-last-restart-slot 3.1.0", + "solana-msg 3.1.0", + "solana-native-token 3.0.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.3.0", + "solana-serde-varint 3.0.1", + "solana-serialize-utils 3.1.2", + "solana-sha256-hasher 3.1.0", + "solana-short-vec 3.2.2", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stable-layout 3.0.1", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-program-entrypoint" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32ce041b1a0ed275290a5008ee1a4a6c48f5054c8a3d78d313c08958a06aedbd" +dependencies = [ + "solana-account-info 2.3.0", + "solana-msg 2.2.1", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-program-entrypoint" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c9b0a1ff494e05f503a08b3d51150b73aa639544631e510279d6375f290997" +dependencies = [ + "solana-account-info 3.1.1", + "solana-define-syscall 4.0.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-program-error" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ee2e0217d642e2ea4bee237f37bd61bb02aec60da3647c48ff88f6556ade775" +dependencies = [ + "borsh 1.8.1", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-msg 2.2.1", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-program-error" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f04fa578707b3612b095f0c8e19b66a1233f7c42ca8082fcb3b745afcc0add6" +dependencies = [ + "borsh 1.8.1", + "serde", + "serde_derive", +] + +[[package]] +name = "solana-program-memory" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a5426090c6f3fd6cfdc10685322fede9ca8e5af43cd6a59e98bfe4e91671712" +dependencies = [ + "solana-define-syscall 2.3.0", +] + +[[package]] +name = "solana-program-memory" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4068648649653c2c50546e9a7fb761791b5ab0cda054c771bb5808d3a4b9eb52" +dependencies = [ + "solana-define-syscall 4.0.1", +] + +[[package]] +name = "solana-program-option" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc677a2e9bc616eda6dbdab834d463372b92848b2bfe4a1ed4e4b4adba3397d0" + +[[package]] +name = "solana-program-option" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a88006a9b8594088cec9027ab77caaaa258a2aaa2083d3f086c44b42e50aeab" + +[[package]] +name = "solana-program-pack" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "319f0ef15e6e12dc37c597faccb7d62525a509fec5f6975ecb9419efddeb277b" +dependencies = [ + "solana-program-error 2.2.2", +] + +[[package]] +name = "solana-program-pack" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7701cb15b90667ae1c89ef4ac35a59c61e66ce58ddee13d729472af7f41d59" +dependencies = [ + "solana-program-error 3.0.1", +] + +[[package]] +name = "solana-program-runtime" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2b7281bd4a6072c7e11b611f771f4e61be1d45ea0d2aecfbb77d02d1b5877d4" +dependencies = [ + "base64 0.22.1", + "bincode", + "cfg-if", + "itertools 0.14.0", + "log", + "percentage", + "rand 0.9.5", + "serde", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-structure", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-loader-v3-interface 7.0.0", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", + "solana-stable-layout 3.0.1", + "solana-stake-interface 4.3.0", + "solana-svm-callback", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-timings", + "solana-svm-transaction", + "solana-svm-type-overrides", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction-context", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "solana-pubkey" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b62adb9c3261a052ca1f999398c388f1daf558a1b492f60a6d9e64857db4ff1" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8 0.2.1", + "five8_const 0.1.4", + "getrandom 0.2.17", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-atomic-u64 2.2.1", + "solana-decode-error", + "solana-define-syscall 2.3.0", + "solana-sanitize 2.2.1", + "solana-sha256-hasher 2.3.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-pubkey" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8909d399deb0851aa524420beeb5646b115fd253ef446e35fe4504c904da3941" +dependencies = [ + "rand 0.8.8", + "solana-address 1.1.0", +] + +[[package]] +name = "solana-pubkey" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7db719574990de7e8b0f55a8593ac92a5ccb42c8ce67b3e4bf05b139d5d9ee71" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-rent" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1aea8fdea9de98ca6e8c2da5827707fb3842833521b528a713810ca685d2480" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-rent" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e860d5499a705369778647e97d760f7670adfb6fc8419dd3d568deccd46d5487" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-rent" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39f0d780bf8e8a1fe8b5b5fce1acad6b209485b86dec246e7523d5e4a8b7c7fc" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-runtime-transaction" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60cf942dcefc0f4d600fed1f4d220ff27abaa04def1fefa37e0e0c2a96e4179" +dependencies = [ + "agave-feature-set", + "agave-transaction-view", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-program-entrypoint 3.1.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-svm-transaction", + "solana-transaction 4.1.6", + "solana-transaction-context", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-sanitize" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61f1bc1357b8188d9c4a3af3fc55276e56987265eb7ad073ae6f8180ee54cecf" + +[[package]] +name = "solana-sanitize" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf09694a0fc14e5ffb18f9b7b7c0f15ecb6eac5b5610bf76a1853459d19daf9" + +[[package]] +name = "solana-sbpf" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d777d7a89267dd133e985113c7e7f820fb7cfd9123a4a350cf8b39ebae1920bc" +dependencies = [ + "byteorder", + "combine", + "hash32", + "libc", + "log", + "rand 0.8.8", + "rustc-demangle", + "thiserror 2.0.20", + "winapi", +] + +[[package]] +name = "solana-sdk" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f03df7969f5e723ad31b6c9eadccc209037ac4caa34d8dc259316b05c11e82b" +dependencies = [ + "bincode", + "bs58", + "serde", + "solana-account 3.4.0", + "solana-epoch-info", + "solana-epoch-rewards-hasher", + "solana-fee-structure", + "solana-inflation", + "solana-keypair", + "solana-message 3.1.0", + "solana-offchain-message", + "solana-presigner", + "solana-program 3.0.0", + "solana-program-memory 3.1.0", + "solana-pubkey 3.0.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-serde", + "solana-serde-varint 3.0.1", + "solana-short-vec 3.2.2", + "solana-shred-version", + "solana-signature 3.4.1", + "solana-signer", + "solana-time-utils", + "solana-transaction 3.1.0", + "solana-transaction-error 3.3.2", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-sdk-ids" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5d8b9cc68d5c88b062a33e23a6466722467dde0035152d8fb1afbcdf350a5f" +dependencies = [ + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-sdk-ids" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "def234c1956ff616d46c9dd953f251fa7096ddbaa6d52b165218de97882b7280" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-sdk-macro" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86280da8b99d03560f6ab5aca9de2e38805681df34e0bb8f238e69b29433b9df" +dependencies = [ + "bs58", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "solana-sdk-macro" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8765316242300c48242d84a41614cb3388229ec353ba464f6fe62a733e41806f" +dependencies = [ + "bs58", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baa3120b6cdaa270f39444f5093a90a7b03d296d362878f7a6991d6de3bbe496" +dependencies = [ + "libsecp256k1 0.6.0", + "solana-define-syscall 2.3.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce0d2e8d53946f04e789476d6c407e4997b7fb412483df5fc10c075c65cb2edf" +dependencies = [ + "k256", + "solana-define-syscall 5.2.0", + "thiserror 2.0.20", +] + +[[package]] +name = "solana-seed-derivable" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7bdb72758e3bec33ed0e2658a920f1f35dfb9ed576b951d20d63cb61ecd95c" +dependencies = [ + "solana-derivation-path", +] + +[[package]] +name = "solana-seed-phrase" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc905b200a95f2ea9146e43f2a7181e3aeb55de6bc12afb36462d00a3c7310de" +dependencies = [ + "hmac", + "pbkdf2", + "sha2 0.10.9", +] + +[[package]] +name = "solana-serde" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709a93cab694c70f40b279d497639788fc2ccbcf9b4aa32273d4b361322c02dd" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serde-varint" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a7e155eba458ecfb0107b98236088c3764a09ddf0201ec29e52a0be40857113" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serde-varint" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "950e5b83e839dc0f92c66afc124bb8f40e89bc90f0579e8ec5499296d27f54e3" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serialize-utils" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "817a284b63197d2b27afdba829c5ab34231da4a9b4e763466a003c40ca4f535e" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-serialize-utils" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "761357b0853c9623bf12c1d2314b3d6160a85b087b84c45224fb85766d22616b" +dependencies = [ + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sanitize 3.0.1", +] + +[[package]] +name = "solana-sha256-hasher" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa3feb32c28765f6aa1ce8f3feac30936f16c5c3f7eb73d63a5b8f6f8ecdc44" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 2.3.0", + "solana-hash 2.3.0", +] + +[[package]] +name = "solana-sha256-hasher" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db7dc3011ea4c0334aaaa7e7128cb390ecf546b28d412e9bf2064680f57f588f" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-sha512-hasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11e10e103ab5bd52af341e7bc2f4123a2f4e66bb7ba4e6ca40f1e00cd6314e02" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall 5.2.0", + "solana-hash-512", +] + +[[package]] +name = "solana-short-vec" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c54c66f19b9766a56fa0057d060de8378676cb64987533fa088861858fc5a69" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-short-vec" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8250a4495aad49ad20556a607da53bdcb20de78da10b65afbf918b7f1de647" +dependencies = [ + "serde_core", + "wincode", +] + +[[package]] +name = "solana-shred-version" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6c79722e299d957958bf33695f7cd1ef6724ff55563c60fd9e3e24487cccde2" +dependencies = [ + "solana-hard-forks", + "solana-hash 4.5.0", + "solana-sha256-hasher 3.1.0", +] + +[[package]] +name = "solana-signature" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64c8ec8e657aecfc187522fc67495142c12f35e55ddeca8698edbb738b8dbd8c" +dependencies = [ + "five8 0.2.1", + "serde", + "serde-big-array", + "serde_derive", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-signature" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0364c7577c3c82a693ce28a1febc8d1b5d1b0a175fdc2114ae6186b69effe1e" +dependencies = [ + "ed25519-dalek", + "five8 1.0.0", + "rand 0.9.5", + "serde", + "serde-big-array", + "serde_derive", + "solana-sanitize 3.0.1", + "wincode", +] + +[[package]] +name = "solana-signer" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520bd6021163ee517f4bdc7ae03ded904f97e11320001ba0b3355f45eb14f558" +dependencies = [ + "solana-pubkey 4.2.0", + "solana-signature 3.4.1", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-slot-hashes" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c8691982114513763e88d04094c9caa0376b867a29577939011331134c301ce" +dependencies = [ + "serde", + "serde_derive", + "solana-hash 2.3.0", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-hashes" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7ce2b4b8911bf2db3de7b6266e67bfc21a6a9f8c566fb096d9782ca2ad16ee" +dependencies = [ + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-slot-history" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97ccc1b2067ca22754d5283afb2b0126d61eae734fc616d23871b0943b0d935e" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-sdk-ids 2.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-slot-history" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40427c04d3e808493cb5e3d1a97cef84d7c15cb6f89b15c5684d0d4027105600" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-stable-layout" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f14f7d02af8f2bc1b5efeeae71bc1c2b7f0f65cd75bcc7d8180f2c762a57f54" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "solana-stable-layout" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9f6a291ba063a37780af29e7db14bdd3dc447584d8ba5b3fc4b88e2bbc982fa" +dependencies = [ + "solana-instruction 3.4.1", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-stake-history" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c736a6aa0e53b9d264d90b06589fc0996f49f882f3e71842ed754fc57ffc1a43" +dependencies = [ + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-get-sysvar", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-stake-interface" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5269e89fde216b4d7e1d1739cf5303f8398a1ff372a81232abbee80e554a838c" +dependencies = [ + "borsh 0.10.4", + "borsh 1.8.1", + "num-traits", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-cpi 2.2.1", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-program-error 2.2.2", + "solana-pubkey 2.4.0", + "solana-system-interface 1.0.0", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-stake-interface" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9bc26191b533f9a6e5a14cca05174119819ced680a80febff2f5051a713f0db" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-stake-interface" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252b4291eb25a5a356149ed4d4a940d5f655186210fa84b5d0d8d55c3dd42a81" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-instruction 3.4.1", + "solana-program-error 3.0.1", + "solana-pubkey 4.2.0", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-svm-callback" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf863c5b86e90e51c18ed08cfd8e21f9cfa60122d60d6364cde7083bf6de837c" +dependencies = [ + "solana-account 4.3.2", + "solana-clock 3.1.1", + "solana-precompile-error", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-feature-set" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "580d385250ddc3826e5d082b221d9d1047bddcc63ee18313f14dcafb95fdcae5" + +[[package]] +name = "solana-svm-log-collector" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f97c2c829a06a1b3bdbad1f770891768c1f0005b322acd7c192ad92157fe525" +dependencies = [ + "log", +] + +[[package]] +name = "solana-svm-measure" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79ec1451e86552456f1e9a1cc7ffafea01ba3383d8246ba636a11cf286da9fc3" + +[[package]] +name = "solana-svm-timings" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33a2692a88fabf56275bb40c39596d6e550a43f6e56b77fa6f0468e0affd977" +dependencies = [ + "eager", + "enum-iterator", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-svm-transaction" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736d2cec944c6f8f298a7bd8ada5eb318cca9ab859281b1300842fa0e9a25afa" +dependencies = [ + "solana-hash 4.5.0", + "solana-message 4.4.1", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-signature 3.4.1", + "solana-transaction 4.1.6", +] + +[[package]] +name = "solana-svm-type-overrides" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74a3ba41956ba930a335589eedf0784dfa4be0527ef236df8ad3996a26b5f19f" +dependencies = [ + "rand 0.9.5", +] + +[[package]] +name = "solana-syscalls" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d31c37dc2425afc13ddb2fc8365db8dbd02ac860a454c25b3897831036a64dd8" +dependencies = [ + "bincode", + "libsecp256k1 0.7.2", + "num-traits", + "solana-account 4.3.2", + "solana-account-info 3.1.1", + "solana-blake3-hasher 3.1.0", + "solana-bls12-381-syscall", + "solana-bn254", + "solana-clock 3.1.1", + "solana-cpi 3.1.0", + "solana-curve25519", + "solana-hash 4.5.0", + "solana-hash-512", + "solana-instruction 3.4.1", + "solana-keccak-hasher 3.1.0", + "solana-poseidon", + "solana-program-entrypoint 3.1.1", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", + "solana-secp256k1-recover 3.3.0", + "solana-sha256-hasher 3.1.0", + "solana-sha512-hasher", + "solana-stable-layout 3.0.1", + "solana-stake-interface 4.3.0", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-type-overrides", + "solana-sysvar 4.1.0", + "solana-sysvar-id 3.1.0", + "solana-transaction-context", + "thiserror 2.0.20", + "wincode", +] + +[[package]] +name = "solana-system-interface" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94d7c18cb1a91c6be5f5a8ac9276a1d7c737e39a21beba9ea710ab4b9c63bc90" +dependencies = [ + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "wasm-bindgen", +] + +[[package]] +name = "solana-system-interface" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e1790547bfc3061f1ee68ea9d8dc6c973c02a163697b24263a8e9f2e6d4afa2" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-instruction 3.4.1", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "solana-pubkey 3.0.0", +] + +[[package]] +name = "solana-system-interface" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55b54965bf0b76fa8e2b35376583efddd4d916618cfe595bf48c7d7b55a9e628" +dependencies = [ + "num-traits", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-instruction 3.4.1", + "solana-msg 3.1.0", + "solana-program-error 3.0.1", + "wincode", +] + +[[package]] +name = "solana-system-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2610e0b091b920da610ad3e5ba850530702f5ac911b4e9dc5ab9a025a772138a" +dependencies = [ + "bincode", + "log", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-fee-calculator 3.2.2", + "solana-instruction 3.4.1", + "solana-nonce 3.2.1", + "solana-nonce-account", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-system-interface 3.2.0", + "solana-sysvar 4.1.0", + "solana-transaction-context", +] + +[[package]] +name = "solana-sysvar" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c3595f95069f3d90f275bb9bd235a1973c4d059028b0a7f81baca2703815db" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 2.3.0", + "solana-clock 2.2.3", + "solana-define-syscall 2.3.0", + "solana-epoch-rewards 2.2.1", + "solana-epoch-schedule 2.2.1", + "solana-fee-calculator 2.2.1", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-instructions-sysvar 2.2.2", + "solana-last-restart-slot 2.2.1", + "solana-program-entrypoint 2.3.0", + "solana-program-error 2.2.2", + "solana-program-memory 2.3.1", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sanitize 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-sdk-macro 2.2.1", + "solana-slot-hashes 2.2.1", + "solana-slot-history 2.2.1", + "solana-stake-interface 1.2.1", + "solana-sysvar-id 2.2.1", +] + +[[package]] +name = "solana-sysvar" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6690d3dd88f15c21edff68eb391ef8800df7a1f5cec84ee3e8d1abf05affdf74" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-define-syscall 4.0.1", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-calculator 3.2.2", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 4.2.0", + "solana-rent 3.1.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-sysvar-id 3.1.0", +] + +[[package]] +name = "solana-sysvar" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ada7045bbfdd802af08fbc9c7e2b56ddabb20599d22e4c3840fcef5e7afb8324" +dependencies = [ + "base64 0.22.1", + "bincode", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info 3.1.1", + "solana-clock 3.1.1", + "solana-define-syscall 5.2.0", + "solana-epoch-rewards 3.1.0", + "solana-epoch-schedule 3.2.0", + "solana-fee-calculator 3.2.2", + "solana-get-sysvar", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-last-restart-slot 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.1", + "solana-program-memory 3.1.0", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-sdk-macro 3.0.1", + "solana-slot-hashes 3.1.0", + "solana-slot-history 3.1.0", + "solana-stake-history", + "solana-sysvar-id 3.1.0", + "wincode", +] + +[[package]] +name = "solana-sysvar-id" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5762b273d3325b047cfda250787f8d796d781746860d5d0a746ee29f3e8812c1" +dependencies = [ + "solana-pubkey 2.4.0", + "solana-sdk-ids 2.2.1", +] + +[[package]] +name = "solana-sysvar-id" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17358d1e9a13e5b9c2264d301102126cf11a47fd394cdf3dec174fe7bc96e1de" +dependencies = [ + "solana-address 2.6.1", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-time-utils" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ced92c60aa76ec4780a9d93f3bd64dfa916e1b998eacc6f1c110f3f444f02c9" + +[[package]] +name = "solana-transaction" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96697cff5075a028265324255efed226099f6d761ca67342b230d09f72cc48d2" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-message 3.1.0", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-signer", + "solana-transaction-error 3.3.2", +] + +[[package]] +name = "solana-transaction" +version = "4.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8008008a75246adaf8b67411093a6d78db8232c74b00eff6041fd1da73679e7" +dependencies = [ + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-message 4.4.1", + "solana-sanitize 3.0.1", + "solana-sdk-ids 3.1.0", + "solana-short-vec 3.2.2", + "solana-signature 3.4.1", + "solana-signer", + "solana-transaction-error 3.3.2", + "wincode", +] + +[[package]] +name = "solana-transaction-context" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d61811155533aebcf806e694d3ed91be7fc168dc9bdcf25e8eb98b9234c7c3" +dependencies = [ + "bincode", + "qualifier_attr", + "serde", + "solana-account 4.3.2", + "solana-instruction 3.4.1", + "solana-instructions-sysvar 4.0.0", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sbpf", + "solana-sdk-ids 3.1.0", +] + +[[package]] +name = "solana-transaction-error" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222a9dc8fdb61c6088baab34fc3a8b8473a03a7a5fd404ed8dd502fa79b67cb1" +dependencies = [ + "solana-instruction 2.3.3", + "solana-sanitize 2.2.1", +] + +[[package]] +name = "solana-transaction-error" +version = "3.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "054e54d15164b0c34cb744600a1a0330e9fd97a12d979f2eb95904c807a07713" +dependencies = [ + "serde", + "serde_derive", + "solana-instruction-error", + "solana-sanitize 3.0.1", +] + +[[package]] +name = "solana-vote-interface" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b80d57478d6599d30acc31cc5ae7f93ec2361a06aefe8ea79bc81739a08af4c3" +dependencies = [ + "bincode", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "solana-clock 2.2.3", + "solana-decode-error", + "solana-hash 2.3.0", + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", + "solana-rent 2.2.1", + "solana-sdk-ids 2.2.1", + "solana-serde-varint 2.2.2", + "solana-serialize-utils 2.2.1", + "solana-short-vec 2.2.1", + "solana-system-interface 1.0.0", +] + +[[package]] +name = "solana-vote-interface" +version = "6.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13a7a204b455a53fe8c9a26a6885391a5896835e06694dbe0cf37c580f82f128" +dependencies = [ + "bincode", + "cfg_eval", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "serde_with", + "solana-clock 3.1.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-serde-varint 3.0.1", + "solana-serialize-utils 3.1.2", + "solana-short-vec 3.2.2", + "solana-system-interface 3.2.0", +] + +[[package]] +name = "solana-vote-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69c6faf8370369c45bc14eeca8dc0249450b940b57dcfcec0103403f9feaf88a" +dependencies = [ + "agave-feature-set", + "bincode", + "log", + "solana-account 4.3.2", + "solana-bincode 3.1.0", + "solana-bls-signatures", + "solana-clock 3.1.1", + "solana-epoch-schedule 3.2.0", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-packet 4.2.0", + "solana-program-runtime", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", + "solana-sdk-ids 3.1.0", + "solana-slot-hashes 3.1.0", + "solana-system-interface 3.2.0", + "solana-transaction-context", + "solana-vote-interface 6.0.3", +] + +[[package]] +name = "solana-zk-elgamal-proof-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d55e2d0d7f884295989dae8b7e0b6d7a46d87ed2d917113007383261e5e93d" +dependencies = [ + "bytemuck", + "solana-instruction 3.4.1", + "solana-program-runtime", + "solana-sdk-ids 3.1.0", + "solana-svm-log-collector", + "solana-zk-sdk", +] + +[[package]] +name = "solana-zk-sdk" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09670ff59f60e6ddc2209c2e4353992a9b9f01d4e244f3e9d67bd5146e33d388" +dependencies = [ + "aes-gcm-siv", + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "itertools 0.14.0", + "merlin", + "num-derive", + "num-traits", + "rand 0.8.8", + "serde", + "serde_derive", + "serde_json", + "sha3", + "solana-address 2.6.1", + "solana-derivation-path", + "solana-instruction 3.4.1", + "solana-sdk-ids 3.1.0", + "solana-seed-derivable", + "solana-seed-phrase", + "solana-signature 3.4.1", + "solana-signer", + "subtle", + "thiserror 2.0.20", + "zeroize", +] + +[[package]] +name = "solana-zk-token-proof-program" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc32fcd9ff8bb90837755deccefdb20518484626c0a9d0649a36e5fcb0fcf520" +dependencies = [ + "solana-program-runtime", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "spl-associated-token-account-interface" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6bbe0794e532ac08428d3abf5bf8ae75bd81dfddd785c388e326c00c92c6f5" +dependencies = [ + "solana-instruction 2.3.3", + "solana-pubkey 2.4.0", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[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.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tar" +version = "0.4.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6221d9a6003c78398e3b239969f352578258df48c8eb051caadae0015bc840" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "test-utils" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "ephemeral-rollups-sdk 0.16.2", + "magicsvm", + "serde_json", + "solana-address 2.6.1", + "solana-hash 4.5.0", + "solana-instruction 3.4.1", + "solana-keypair", + "solana-message 4.4.1", + "solana-signer", + "solana-transaction 4.1.6", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" +dependencies = [ + "thiserror-impl 2.0.20", +] + +[[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.119", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "tinyvec" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee" + +[[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 = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.25.15+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1340ea94a5856333492c9064b02c778b191dd2c853778d9609debdcdfea3a614" +dependencies = [ + "indexmap", + "toml_datetime", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" +dependencies = [ + "winnow", +] + +[[package]] +name = "typed-path" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" + +[[package]] +name = "typenum" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-segmentation" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +dependencies = [ + "void", +] + +[[package]] +name = "ureq" +version = "3.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a7ac20be9b7726e0bbdbf974c059676d9acb1cd414961f570a4e8231cacd7fc" +dependencies = [ + "base64 0.23.1", + "log", + "percent-encoding", + "ureq-proto", + "utf8-zero", +] + +[[package]] +name = "ureq-proto" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0809a01d1ca5a51ca70db32bb2a19157582a526505ef3c19e3b343a59aa5ad" +dependencies = [ + "base64 0.23.1", + "http", + "httparse", + "log", +] + +[[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 = "utf8-zero" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e" + +[[package]] +name = "uuid" +version = "1.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ef6dac1e96601b4fb3acccccff2139741fcb757cb9a36089bf5be91cfb285ce" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[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.4+wasi-0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aecb87a33d3b0c5e3b7aa46336eaf486cffafbd281b195e4c8b80d50df2351bf" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a690d511e3c1a8b3a55e33511e3c2c00c78415cd23650f32b808627f5696b9ed" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "411e4887f0071ef2d2164a9d5fdf2d20efbef78fccd3a78b0c10a1dc5295e48a" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 3.0.5", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81941cd78d0c92026c33e5e01312845a4cb1e9af3407f9134b100dd03144103e" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "web-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fbddc4a036f00ec4f18c83445bd3115cb306a91da554919a099d9222fe4a7f8" +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-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "wincode" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66d967db7705dc29120bb6e8ce5b5a2e27734ed5976d1c904e95bd238d1c3c5a" +dependencies = [ + "bv", + "pastey", + "proc-macro2", + "quote", + "thiserror 2.0.20", + "wincode-derive", +] + +[[package]] +name = "wincode-derive" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15ab90b719560d0fda79c74550ad1c948d17b118765942838055ebaf34d67071" +dependencies = [ + "darling 0.23.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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 = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "xattr" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" +dependencies = [ + "libc", + "rustix", +] + +[[package]] +name = "zerocopy" +version = "0.8.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d35102a9f36d089ccae9e4c6802bc118be4487b80aaffc0ab4e0cf5ce92d2873" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c01f5ab44258da43cf276c74a2763db2ff3969c9c652c3f2de07041d0b2bc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zeroize" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zip" +version = "8.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b" +dependencies = [ + "crc32fast", + "flate2", + "indexmap", + "memchr", + "typed-path", + "zopfli", +] + +[[package]] +name = "zlib-rs" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12" + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" + +[[package]] +name = "zopfli" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" +dependencies = [ + "bumpalo", + "crc32fast", + "log", + "simd-adler32", +] diff --git a/test-utils/rust/Cargo.toml b/test-utils/rust/Cargo.toml new file mode 100644 index 00000000..2b808194 --- /dev/null +++ b/test-utils/rust/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "test-utils" +version = "0.1.0" +edition = "2021" +publish = false + +[workspace] + +[features] +default = [] +sdk = ["dep:ephemeral-rollups-sdk"] +anchor = ["dep:anchor-lang", "sdk", "ephemeral-rollups-sdk/anchor"] + +[dependencies] +anchor-lang = { version = "=1.0.2", optional = true } +ephemeral-rollups-sdk = { version = "0.16.2", optional = true } +magicsvm = "0.2.0" +solana-address = "~2.6.1" +solana-hash = "~4.5.0" +solana-instruction = { version = "~3.4.0", features = ["bincode"] } +solana-keypair = "3.1.2" +solana-message = "4.2.4" +serde_json = "1" +solana-signer = "3.0.1" +solana-transaction = { version = "4.1.5", features = ["verify"] } diff --git a/test-utils/rust/src/anchor_ix.rs b/test-utils/rust/src/anchor_ix.rs new file mode 100644 index 00000000..c2c5f6ad --- /dev/null +++ b/test-utils/rust/src/anchor_ix.rs @@ -0,0 +1,31 @@ +use anchor_lang::{prelude::Pubkey, InstructionData, ToAccountMetas}; +use solana_address::Address; +use solana_instruction::{AccountMeta, Instruction}; + +pub fn as_pubkey(address: &Address) -> Pubkey { + Pubkey::new_from_array(address.to_bytes()) +} + +pub fn as_address(pubkey: Pubkey) -> Address { + Address::new_from_array(pubkey.to_bytes()) +} + +pub fn client_ix( + program_id: Address, + data: impl InstructionData, + accounts: impl ToAccountMetas, +) -> Instruction { + Instruction { + program_id, + accounts: accounts + .to_account_metas(None) + .into_iter() + .map(|meta| AccountMeta { + pubkey: as_address(meta.pubkey), + is_signer: meta.is_signer, + is_writable: meta.is_writable, + }) + .collect(), + data: data.data(), + } +} diff --git a/test-utils/rust/src/lib.rs b/test-utils/rust/src/lib.rs new file mode 100644 index 00000000..49197906 --- /dev/null +++ b/test-utils/rust/src/lib.rs @@ -0,0 +1,178 @@ +use magicsvm::{MagicSVM, TransactionTarget}; +use solana_address::Address; +use solana_hash::Hash; +use solana_instruction::Instruction; +use solana_keypair::Keypair; +use solana_message::Message; +use solana_signer::Signer; +use solana_transaction::Transaction; +use std::path::{Path, PathBuf}; + +#[cfg(feature = "anchor")] +mod anchor_ix; +#[cfg(feature = "anchor")] +pub use anchor_ix::*; + +#[cfg(feature = "anchor")] +pub use ephemeral_rollups_sdk::anchor::{DelegationProgram, MagicProgram}; +#[cfg(feature = "anchor")] +pub use ephemeral_rollups_sdk::consts::MAGIC_CONTEXT_ID; +#[cfg(feature = "anchor")] +pub use ephemeral_rollups_sdk::pda::{ + delegate_buffer_pda_from_delegated_account_and_owner_program, + delegation_metadata_pda_from_delegated_account, delegation_record_pda_from_delegated_account, +}; + +pub fn send_tx(svm: &mut MagicSVM, target: TransactionTarget, tx: Transaction, label: &str) { + if let Err(failed) = svm.send_transaction_to(target, tx) { + panic!( + "{label} failed on {target:?}: {:?}\nlogs: {:#?}", + failed.err, failed.meta.logs + ); + } + svm.expire_blockhash_for(target); +} + +pub fn sign_tx(signers: &[&Keypair], instructions: &[Instruction], blockhash: Hash) -> Transaction { + Transaction::new( + signers, + Message::new(instructions, Some(&signers[0].pubkey())), + blockhash, + ) +} + +fn unique_signers<'a>(signers: &[&'a Keypair]) -> Vec<&'a Keypair> { + let mut unique = Vec::with_capacity(signers.len()); + for signer in signers { + if unique + .iter() + .any(|existing: &&Keypair| existing.pubkey() == signer.pubkey()) + { + continue; + } + unique.push(*signer); + } + unique +} + +pub fn send_ixs( + svm: &mut MagicSVM, + target: TransactionTarget, + signers: &[&Keypair], + instructions: impl AsRef<[Instruction]>, + label: &str, +) { + let unique = unique_signers(signers); + let tx = sign_tx( + &unique, + instructions.as_ref(), + svm.latest_blockhash_for(target), + ); + send_tx(svm, target, tx, label); +} + +pub fn send_ix( + svm: &mut MagicSVM, + target: TransactionTarget, + signers: &[&Keypair], + instruction: Instruction, + label: &str, +) { + send_ixs(svm, target, signers, &[instruction], label); +} + +pub fn add_program(svm: &mut MagicSVM, program_id: Address, so: impl AsRef) { + let so = so.as_ref(); + svm.add_program_from_file(program_id, so) + .unwrap_or_else(|err| panic!("load {}: {err}", so.display())); +} + +pub fn airdrop(svm: &mut MagicSVM, address: &Address, lamports: u64) { + svm.airdrop(address, lamports) + .unwrap_or_else(|err| panic!("airdrop {address}: {err:?}")); +} + +pub fn boot( + manifest_dir: impl AsRef, + program_name: &str, + program_id: Address, + payer: &Keypair, + lamports: u64, +) -> MagicSVM { + let mut svm = MagicSVM::new(); + add_program( + &mut svm, + program_id, + program_so_path(manifest_dir, program_name), + ); + airdrop(&mut svm, &payer.pubkey(), lamports); + svm +} + +pub fn read_u64_le(data: &[u8], offset: usize) -> u64 { + u64::from_le_bytes(data[offset..offset + 8].try_into().expect("u64")) +} + +pub fn account_u64( + svm: &MagicSVM, + target: TransactionTarget, + address: &Address, + offset: usize, +) -> u64 { + let account = svm + .get_account_for(target, address) + .unwrap_or_else(|| panic!("missing {address} on {target:?}")); + read_u64_le(&account.data, offset) +} + +pub fn account_owner(svm: &MagicSVM, target: TransactionTarget, address: &Address) -> Address { + svm.get_account_for(target, address) + .unwrap_or_else(|| panic!("missing {address} on {target:?}")) + .owner +} + +#[cfg(feature = "sdk")] +pub fn is_delegated(svm: &MagicSVM, address: &Address) -> bool { + svm.get_account_for(TransactionTarget::Base, address) + .is_some_and(|account| { + account.owner == ephemeral_rollups_sdk::consts::DELEGATION_PROGRAM_ID + }) +} + +pub fn example_dir(manifest_dir: impl AsRef) -> PathBuf { + manifest_dir.as_ref().join("..") +} + +pub fn program_so_path(manifest_dir: impl AsRef, program_name: &str) -> PathBuf { + example_dir(manifest_dir) + .join("target/deploy") + .join(format!("{program_name}.so")) +} + +pub fn program_id_from_keypair(manifest_dir: impl AsRef, program_name: &str) -> Address { + let path = example_dir(manifest_dir) + .join("target/deploy") + .join(format!("{program_name}-keypair.json")); + let bytes: Vec = serde_json::from_slice( + &std::fs::read(&path) + .unwrap_or_else(|err| panic!("failed to read {}: {err}", path.display())), + ) + .unwrap_or_else(|err| panic!("invalid keypair {}: {err}", path.display())); + Address::new_from_array(bytes[32..64].try_into().expect("keypair pubkey")) +} + +pub fn program_id_from_idl(manifest_dir: impl AsRef, idl_name: &str) -> Address { + let path = example_dir(manifest_dir).join("target/idl").join(idl_name); + let value: serde_json::Value = serde_json::from_slice( + &std::fs::read(&path) + .unwrap_or_else(|err| panic!("failed to read {}: {err}", path.display())), + ) + .unwrap_or_else(|err| panic!("invalid IDL {}: {err}", path.display())); + let address = value + .get("address") + .and_then(|value| value.as_str()) + .unwrap_or_else(|| panic!("{} missing address", path.display())); + address + .parse() + .unwrap_or_else(|err| panic!("invalid program address in {}: {err}", path.display())) +} diff --git a/test-utils/ts/package.json b/test-utils/ts/package.json new file mode 100644 index 00000000..f6acc81b --- /dev/null +++ b/test-utils/ts/package.json @@ -0,0 +1,26 @@ +{ + "name": "@magicblock-labs/test-utils", + "version": "0.1.0", + "private": true, + "description": "Shared helpers for example tests", + "main": "dist/index.js", + "types": "src/index.ts", + "files": ["dist"], + "scripts": { + "build": "tsc", + "prepare": "tsc", + "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern \"src/**/*.ts\" --check", + "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern \"src/**/*.ts\" -w" + }, + "dependencies": { + "@coral-xyz/anchor": "0.32.1", + "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3", + "@magicblock-labs/magicsvm": "0.2.0" + }, + "devDependencies": { + "@types/node": "^20.17.0", + "prettier": "^3.5.3", + "typescript": "^5.8.3" + }, + "license": "MIT" +} diff --git a/test-utils/ts/src/index.ts b/test-utils/ts/src/index.ts new file mode 100644 index 00000000..50521328 --- /dev/null +++ b/test-utils/ts/src/index.ts @@ -0,0 +1,369 @@ +import { + AnchorProvider, + Program, + Wallet, + web3, + type Idl, +} from "@coral-xyz/anchor"; +import { DELEGATION_PROGRAM_ID } from "@magicblock-labs/ephemeral-rollups-sdk"; +import { + FailedTransactionMetadata, + MagicSVM, + TransactionMetadata, + type Address, + type SendableTransaction, + type TransactionTarget, +} from "@magicblock-labs/magicsvm"; +import * as fs from "fs"; +import * as path from "path"; + +export type { Address, TransactionTarget } from "@magicblock-labs/magicsvm"; + +export { + DELEGATION_PROGRAM_ID, + EPHEMERAL_VAULT_ID, + MAGIC_CONTEXT_ID, + MAGIC_PROGRAM_ID, + PERMISSION_PROGRAM_ID, + createCommitAndUndelegateInstruction, + createCommitInstruction, + createDelegateInstruction, + delegateBufferPdaFromDelegatedAccountAndOwnerProgram, + delegationMetadataPdaFromDelegatedAccount, + delegationRecordPdaFromDelegatedAccount, + permissionPdaFromAccount, +} from "@magicblock-labs/ephemeral-rollups-sdk"; + +/** + * Structural types so callers can pass `@solana/web3.js` v1 objects from any + * copy (Anchor, an app workspace, MagicsVM). Nominal `Keypair` / `PublicKey` + * types from nested installs are not compatible with each other. + */ +export type PublicKeyLike = { + equals?(other: unknown): boolean; + toBase58(): string; + toBuffer(): Buffer | Uint8Array; + toBytes(): Uint8Array; + toString(): string; +}; + +export type SignerLike = { + publicKey: PublicKeyLike; + secretKey: Uint8Array; +}; + +export interface TransactionLike { + feePayer?: unknown; + recentBlockhash?: string | null; + sign(...signers: SignerLike[]): unknown; +} + +export type InstructionLike = { + data: Buffer | Uint8Array; + keys: Array<{ + isSigner: boolean; + isWritable: boolean; + pubkey: PublicKeyLike | Address; + }>; + programId: PublicKeyLike | Address; +}; + +export function addressToBase58(address: PublicKeyLike | Address): string { + if (typeof address === "string") { + return address; + } + if ("toBase58" in address && typeof address.toBase58 === "function") { + return address.toBase58(); + } + return new web3.PublicKey(Buffer.from(address.toBytes())).toBase58(); +} + +function asWeb3PublicKey(address: PublicKeyLike | Address): web3.PublicKey { + if (address instanceof web3.PublicKey) { + return address; + } + if (typeof address === "string") { + return new web3.PublicKey(address); + } + if ("toBytes" in address) { + return new web3.PublicKey(Buffer.from(address.toBytes())); + } + return new web3.PublicKey(addressToBase58(address)); +} + +function isFailedTransactionMetadata( + result: unknown, +): result is FailedTransactionMetadata { + // MagicsVM is loaded once per example and once from this package. `instanceof` + // fails across those copies, so identify failures by constructor name. + return ( + typeof result === "object" && + result !== null && + (result as { constructor?: { name?: string } }).constructor?.name === + "FailedTransactionMetadata" + ); +} + +export function failOnSvmError( + result: unknown, + label = "transaction", +): asserts result is Exclude { + if (isFailedTransactionMetadata(result)) { + const logs = result.meta().logs().join("\n"); + throw new Error(`${label} failed: ${result.err()}\n${logs}`); + } +} + +function uniqueSigners(signers: SignerLike[]): SignerLike[] { + const seen = new Set(); + return signers.filter((signer) => { + const key = addressToBase58(signer.publicKey); + if (seen.has(key)) { + return false; + } + seen.add(key); + return true; + }); +} + +export function sendSvmTx( + svm: MagicSVM, + signers: SignerLike[], + tx: TransactionLike, + target: TransactionTarget = "base", + label = "transaction", +): TransactionMetadata { + const unique = uniqueSigners(signers); + tx.feePayer = unique[0].publicKey; + tx.recentBlockhash = svm.latestBlockhashFor({ target }); + tx.sign(...unique); + const result = svm.sendTransaction(tx as unknown as SendableTransaction, { + target, + }); + failOnSvmError(result, label); + svm.expireBlockhashFor({ target }); + return result as TransactionMetadata; +} + +function toWeb3Instruction(ix: InstructionLike): web3.TransactionInstruction { + return new web3.TransactionInstruction({ + data: Buffer.from(ix.data), + keys: ix.keys.map((key) => ({ + isSigner: key.isSigner, + isWritable: key.isWritable, + pubkey: asWeb3PublicKey(key.pubkey), + })), + programId: asWeb3PublicKey(ix.programId), + }); +} + +export function sendSvmIx( + svm: MagicSVM, + signers: SignerLike[], + instructions: InstructionLike | InstructionLike[], + target: TransactionTarget = "base", + label = "transaction", +): TransactionMetadata { + const ixs = Array.isArray(instructions) ? instructions : [instructions]; + return sendSvmTx( + svm, + signers.map((signer) => web3.Keypair.fromSecretKey(signer.secretKey)), + new web3.Transaction().add(...ixs.map(toWeb3Instruction)), + target, + label, + ); +} + +export function sendExpectingFailure( + svm: MagicSVM, + signers: SignerLike[], + instructions: InstructionLike | InstructionLike[], + target: TransactionTarget = "base", +): FailedTransactionMetadata { + const ixs = Array.isArray(instructions) ? instructions : [instructions]; + const unique = uniqueSigners(signers); + const tx = new web3.Transaction().add(...ixs.map(toWeb3Instruction)); + tx.feePayer = asWeb3PublicKey(unique[0].publicKey); + tx.recentBlockhash = svm.latestBlockhashFor({ target }); + tx.sign( + ...unique.map((signer) => web3.Keypair.fromSecretKey(signer.secretKey)), + ); + const result = svm.sendTransaction(tx, { target }); + svm.expireBlockhashFor({ target }); + if (!isFailedTransactionMetadata(result)) { + throw new Error("expected transaction to fail"); + } + return result; +} + +export function requireAccount( + svm: MagicSVM, + address: PublicKeyLike | Address, + target: TransactionTarget = "base", + label?: string, +) { + const account = svm.getAccountFor(addressToBase58(address), { target }); + if (!account.exists) { + throw new Error( + `expected ${label ?? addressToBase58(address)} to exist on ${target}`, + ); + } + return account; +} + +export function airdropOrThrow( + svm: MagicSVM, + address: PublicKeyLike | Address, + lamports: bigint, + label = "airdrop", +): void { + failOnSvmError(svm.airdrop(addressToBase58(address), lamports), label); +} + +export function programIdFromKeypairFile(keypairPath: string): string { + const secretKeyArray = Uint8Array.from( + JSON.parse(fs.readFileSync(keypairPath, "utf8")), + ); + return web3.Keypair.fromSecretKey(secretKeyArray).publicKey.toBase58(); +} + +export function loadJson(filePath: string): unknown { + return JSON.parse(fs.readFileSync(filePath, "utf8")); +} + +export function programSoPath(fromDir: string, programName: string): string { + return path.resolve(fromDir, "..", "target", "deploy", `${programName}.so`); +} + +export function programIdlPath(fromDir: string, programName: string): string { + return path.resolve(fromDir, "..", "target", "idl", `${programName}.json`); +} + +export function dummyAnchorProvider(payer: SignerLike): AnchorProvider { + return new AnchorProvider( + new web3.Connection("http://127.0.0.1:8899"), + new Wallet(web3.Keypair.fromSecretKey(payer.secretKey)), + { commitment: "confirmed" }, + ); +} + +export function loadAnchorProgram( + idl: T, + payer: SignerLike, +): Program { + return new Program(idl, dummyAnchorProvider(payer)); +} + +export function validatorPubkey(svm: MagicSVM): string { + return addressToBase58(svm.validatorIdentity()); +} + +export function validatorRemainingAccount(svm: MagicSVM): { + pubkey: web3.PublicKey; + isSigner: false; + isWritable: false; +} { + return { + pubkey: new web3.PublicKey(validatorPubkey(svm)), + isSigner: false, + isWritable: false, + }; +} + +export function readU64le( + svm: MagicSVM, + address: PublicKeyLike | Address, + target: TransactionTarget = "base", + offset = 8, +): bigint { + return Buffer.from(requireAccount(svm, address, target).data).readBigUInt64LE( + offset, + ); +} + +export function accountOwner( + svm: MagicSVM, + address: PublicKeyLike | Address, + target: TransactionTarget = "base", +): string { + return requireAccount(svm, address, target).programAddress.toString(); +} + +export function isDelegated( + svm: MagicSVM, + address: PublicKeyLike | Address, + target: TransactionTarget = "base", +): boolean { + const account = svm.getAccountFor(addressToBase58(address), { target }); + return ( + account.exists && + account.programAddress.toString() === DELEGATION_PROGRAM_ID.toString() + ); +} + +export function setUnixTimestamp( + svm: MagicSVM, + unix: bigint | number = Math.floor(Date.now() / 1000), +): void { + const clock = svm.getClock(); + clock.unixTimestamp = BigInt(unix); + svm.setClock(clock); +} + +export function createSvm(opts: { + programs: Array<{ id: PublicKeyLike | Address; so: string }>; + airdrops?: Array<{ + address: PublicKeyLike | Address; + lamports: bigint; + label?: string; + }>; +}): { svm: MagicSVM; validator: string } { + const svm = new MagicSVM(); + for (const program of opts.programs) { + svm.addProgramFromFile(addressToBase58(program.id), program.so); + } + for (const drop of opts.airdrops ?? []) { + airdropOrThrow(svm, drop.address, drop.lamports, drop.label); + } + return { svm, validator: validatorPubkey(svm) }; +} + +export function bootAnchorSvm(opts: { + fromDir: string; + programName: string; + payer?: SignerLike; + airdropLamports?: bigint; + extraPrograms?: Array<{ id: PublicKeyLike | Address; so: string }>; + idl?: T; +}): { + svm: MagicSVM; + payer: web3.Keypair; + program: Program; + validator: string; +} { + const payer = opts.payer + ? web3.Keypair.fromSecretKey(opts.payer.secretKey) + : web3.Keypair.generate(); + const idl = + opts.idl ?? (loadJson(programIdlPath(opts.fromDir, opts.programName)) as T); + const program = loadAnchorProgram(idl, payer); + const { svm, validator } = createSvm({ + programs: [ + { + id: program.programId, + so: programSoPath(opts.fromDir, opts.programName), + }, + ...(opts.extraPrograms ?? []), + ], + airdrops: + opts.airdropLamports == null + ? undefined + : [ + { + address: payer.publicKey, + lamports: opts.airdropLamports, + }, + ], + }); + return { svm, payer, program, validator }; +} diff --git a/test-utils/ts/tsconfig.json b/test-utils/ts/tsconfig.json new file mode 100644 index 00000000..1286b6dc --- /dev/null +++ b/test-utils/ts/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "es2020", + "module": "commonjs", + "declaration": true, + "outDir": "dist", + "rootDir": "src", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "types": ["node"] + }, + "include": ["src/**/*.ts"] +} diff --git a/test-utils/ts/yarn.lock b/test-utils/ts/yarn.lock new file mode 100644 index 00000000..38e54067 --- /dev/null +++ b/test-utils/ts/yarn.lock @@ -0,0 +1,1186 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/runtime@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.7.tgz#12022450c45a4da6d8d8287b18a4ff2ddb23f768" + integrity sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw== + +"@coral-xyz/anchor-errors@^0.31.1": + version "0.31.1" + resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" + integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== + +"@coral-xyz/anchor@0.32.1": + version "0.32.1" + resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" + integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== + dependencies: + "@coral-xyz/anchor-errors" "^0.31.1" + "@coral-xyz/borsh" "^0.31.1" + "@noble/hashes" "^1.3.1" + "@solana/web3.js" "^1.69.0" + bn.js "^5.1.2" + bs58 "^4.0.1" + buffer-layout "^1.2.2" + camelcase "^6.3.0" + cross-fetch "^3.1.5" + eventemitter3 "^4.0.7" + pako "^2.0.3" + superstruct "^0.15.4" + toml "^3.0.0" + +"@coral-xyz/borsh@^0.31.1": + version "0.31.1" + resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.31.1.tgz#5328e1e0921b75d7f4a62dd3f61885a938bc7241" + integrity sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw== + dependencies: + bn.js "^5.1.2" + buffer-layout "^1.2.0" + +"@magicblock-labs/ephemeral-rollups-sdk@0.14.3": + version "0.14.3" + resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.14.3.tgz#536c215d1daefdbcfa82a79304b08f5014405c58" + integrity sha512-CoByiXHLLS+l7Ojl6XJuYypP/k08ymFkab8+Gh/HCv5Gn2oC4VkwszEQoTDnKo++8Oxbqr9YVGzAMUW4Km7cLA== + dependencies: + "@noble/curves" "^1.4.2" + "@noble/hashes" "^1.4.0" + "@phala/dcap-qvl" "^0.3.9" + "@solana/web3.js" "^1.98.0" + bs58 "^6.0.0" + rpc-websockets "^9.0.4" + tweetnacl "^1.0.3" + typescript "^5.3.0" + +"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" + integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== + +"@magicblock-labs/magicsvm-darwin-x64@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" + integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== + +"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" + integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== + +"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" + integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== + +"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" + integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== + +"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" + integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== + +"@magicblock-labs/magicsvm@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" + integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== + dependencies: + "@solana/web3.js" "3.0.0-rc.3" + optionalDependencies: + "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" + "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" + "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" + +"@noble/curves@^1.4.2", "@noble/curves@^1.9.7": + version "1.9.7" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" + integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== + dependencies: + "@noble/hashes" "1.8.0" + +"@noble/hashes@1.8.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0", "@noble/hashes@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" + integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== + +"@peculiar/asn1-schema@^2.3.13", "@peculiar/asn1-schema@^2.9.4": + version "2.9.4" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.9.4.tgz#99003d4bc87ec2ed2c4deb2843404496a912c3cf" + integrity sha512-GjzePcT9Iw8NzeOPf73iNS9xM+TBhd/FilAfP+RQGkTMQJTVWtytN3JHJACCjf/ABNau5S7mS3g+DcuxmRgYEg== + dependencies: + "@peculiar/utils" "^2.0.2" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-x509@^2.3.13": + version "2.9.4" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.9.4.tgz#f997898c48ba6536bed640f788734d36477c21ad" + integrity sha512-CxhBo/RdEbMMob7T31ZdQjGuoyRFLVwrDzTn25bihzBasRg9kRm/0IxIPvhgQtcK/9dNcO1XQL2fuPugwELL0Q== + dependencies: + "@peculiar/asn1-schema" "^2.9.4" + "@peculiar/utils" "^2.0.2" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/utils@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@peculiar/utils/-/utils-2.0.3.tgz#a27ca4c4b73652e110f19a7d16d664f458a5528e" + integrity sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ== + dependencies: + tslib "^2.8.1" + +"@phala/dcap-qvl@^0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@phala/dcap-qvl/-/dcap-qvl-0.3.9.tgz#34da2506c31954cd290afb5a46146cd52ae24481" + integrity sha512-s/4gAFVq1DRhYkuerDR9WAlX8tkCpFTHTVpWnWlrigj5la2X5OtQl9Y7PzwcqY4h0fc25yqZrcRH3AZpzB1qOw== + dependencies: + "@peculiar/asn1-schema" "^2.3.13" + "@peculiar/asn1-x509" "^2.3.13" + asn1.js "^5.4.1" + bn.js "^5.2.2" + buffer "^6.0.3" + elliptic "^6.6.1" + hash.js "^1.1.7" + node-fetch "^2.7.0" + +"@solana-program/address-lookup-table@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" + integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== + +"@solana-program/compute-budget@^0.18.0": + version "0.18.1" + resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" + integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== + +"@solana-program/loader-v3@^0.6.0": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" + integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== + +"@solana-program/stake@^0.9.0": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" + integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== + +"@solana-program/system@^0.14.0": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" + integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== + +"@solana/accounts@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" + integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/addresses@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" + integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" + integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== + dependencies: + "@solana/errors" "8.3.0" + +"@solana/buffer-layout@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" + integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== + dependencies: + buffer "~6.0.3" + +"@solana/codecs-core@5.5.1": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-5.5.1.tgz#1b2619c697ad04c99f98cc468135d584b7e2b16d" + integrity sha512-TgBt//bbKBct0t6/MpA8ElaOA3sa8eYVvR7LGslCZ84WiAwwjCY0lW/lOYsFHJQzwREMdUyuEyy5YWBKtdh8Rw== + dependencies: + "@solana/errors" "5.5.1" + +"@solana/codecs-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" + integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== + dependencies: + "@solana/errors" "8.3.0" + +"@solana/codecs-data-structures@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" + integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/codecs-numbers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" + integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/codecs-numbers@^5.5.1": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-5.5.1.tgz#6ebc43250133ceb7836f1ac5780a7767e383efde" + integrity sha512-rllMIZAHqmtvC0HO/dc/21wDuWaD0B8Ryv8o+YtsICQBuiL/0U4AGwH7Pi5GNFySYk0/crSuwfIqQFtmxNSPFw== + dependencies: + "@solana/codecs-core" "5.5.1" + "@solana/errors" "5.5.1" + +"@solana/codecs-strings@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" + integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/codecs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" + integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/options" "8.3.0" + +"@solana/errors@5.5.1": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-5.5.1.tgz#1c17bc822264fd5a6305d8bfb9d597858e4ce17b" + integrity sha512-vFO3p+S7HoyyrcAectnXbdsMfwUzY2zYFUc2DEe5BwpiE9J1IAxPBGjOWO6hL1bbYdBrlmjNx8DXCslqS+Kcmg== + dependencies: + chalk "5.6.2" + commander "14.0.2" + +"@solana/errors@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" + integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== + dependencies: + chalk "5.6.2" + commander "15.0.0" + +"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" + integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== + +"@solana/fixed-points@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" + integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/functional@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" + integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== + +"@solana/instruction-plans@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" + integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/instructions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" + integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/keys@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" + integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== + dependencies: + "@solana/assertions" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/promises" "8.3.0" + +"@solana/kit@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" + integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/plugin-core" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/program-client-core" "8.3.0" + "@solana/programs" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/subscribable" "8.3.0" + "@solana/sysvars" "8.3.0" + "@solana/transaction-confirmation" "8.3.0" + "@solana/transaction-introspection" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/nominal-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" + integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== + +"@solana/offchain-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" + integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/options@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" + integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== + dependencies: + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/plugin-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" + integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== + +"@solana/plugin-interfaces@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" + integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/signers" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/program-client-core@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" + integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instruction-plans" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/plugin-interfaces" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/signers" "8.3.0" + +"@solana/programs@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" + integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/errors" "8.3.0" + +"@solana/promises@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" + integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== + +"@solana/rpc-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" + integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-parsed-types" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/rpc-parsed-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" + integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== + +"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" + integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== + dependencies: + "@solana/errors" "8.3.0" + +"@solana/rpc-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" + integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-subscriptions-api@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" + integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/rpc-subscriptions-channel-websocket@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" + integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/subscribable" "8.3.0" + ws "^8.21.3" + +"@solana/rpc-subscriptions-spec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" + integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-subscriptions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" + integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-subscriptions-api" "8.3.0" + "@solana/rpc-subscriptions-channel-websocket" "8.3.0" + "@solana/rpc-subscriptions-spec" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/subscribable" "8.3.0" + +"@solana/rpc-transformers@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" + integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== + dependencies: + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/rpc-transport-http@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" + integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + undici-types "^8.10.2" + +"@solana/rpc-types@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" + integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/fixed-points" "8.3.0" + "@solana/nominal-types" "8.3.0" + +"@solana/rpc@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" + integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== + dependencies: + "@solana/errors" "8.3.0" + "@solana/fast-stable-stringify" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/rpc-api" "8.3.0" + "@solana/rpc-spec" "8.3.0" + "@solana/rpc-spec-types" "8.3.0" + "@solana/rpc-transformers" "8.3.0" + "@solana/rpc-transport-http" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/signers@8.3.0", "@solana/signers@^8.2.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" + integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/offchain-messages" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/subscribable@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" + integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== + dependencies: + "@solana/errors" "8.3.0" + "@solana/promises" "8.3.0" + +"@solana/sysvars@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" + integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== + dependencies: + "@solana/accounts" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/transaction-confirmation@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" + integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/promises" "8.3.0" + "@solana/rpc" "8.3.0" + "@solana/rpc-subscriptions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/transaction-introspection@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" + integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + "@solana/transactions" "8.3.0" + +"@solana/transaction-messages@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" + integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + +"@solana/transactions@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" + integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== + dependencies: + "@solana/addresses" "8.3.0" + "@solana/codecs-core" "8.3.0" + "@solana/codecs-data-structures" "8.3.0" + "@solana/codecs-numbers" "8.3.0" + "@solana/codecs-strings" "8.3.0" + "@solana/errors" "8.3.0" + "@solana/functional" "8.3.0" + "@solana/instructions" "8.3.0" + "@solana/keys" "8.3.0" + "@solana/nominal-types" "8.3.0" + "@solana/rpc-types" "8.3.0" + "@solana/transaction-messages" "8.3.0" + +"@solana/web3.js@3.0.0-rc.3": + version "3.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" + integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== + dependencies: + "@noble/curves" "^1.4.2" + "@noble/hashes" "^1.4.0" + "@solana-program/address-lookup-table" "^0.14.0" + "@solana-program/compute-budget" "^0.18.0" + "@solana-program/loader-v3" "^0.6.0" + "@solana-program/stake" "^0.9.0" + "@solana-program/system" "^0.14.0" + "@solana/assertions" "^8.2.0" + "@solana/fast-stable-stringify" "^8.2.0" + "@solana/kit" "^8.2.0" + "@solana/rpc-spec-types" "^8.2.0" + "@solana/signers" "^8.2.0" + +"@solana/web3.js@^1.69.0", "@solana/web3.js@^1.98.0": + version "1.99.0" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.99.0.tgz#864ce3fefe03b258c430e31e6672b422426821f7" + integrity sha512-QZYQ2T1z6xWisoyALPq25i/QZTsRlM02BABtAsfaQ1p8wX4SdTfxrKTRue/ZZqrhNVh5oL7T/DUFiTS9DRgxow== + dependencies: + "@babel/runtime" "^7.29.7" + "@noble/curves" "^1.9.7" + "@noble/hashes" "^1.8.0" + "@solana/buffer-layout" "^4.0.1" + "@solana/codecs-numbers" "^5.5.1" + agentkeepalive "^4.6.0" + bn.js "^5.2.5" + borsh "^0.7.0" + bs58 "^4.0.1" + buffer "6.0.3" + fast-stable-stringify "^1.0.0" + jayson "^4.3.0" + node-fetch "^2.7.0" + rpc-websockets "^9.0.2" + superstruct "^2.0.2" + +"@swc/helpers@^0.5.11": + version "0.5.23" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.23.tgz#19287d0d86d962b111376039a50c792902c9a86a" + integrity sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw== + dependencies: + tslib "^2.8.0" + +"@types/connect@^3.4.33": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== + dependencies: + "@types/node" "*" + +"@types/node@*": + version "22.20.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.20.3.tgz#f77d48b4cb336b4e6dc44850ddb6da69caade396" + integrity sha512-DZmzkmwHzXrLPAXPyKNDzlIwMMUZCVacoD25ywdy5YTKGbOx/2ld+Q38Im2zJ0vBuZP5Prd3VZutKZyXwkOS8A== + dependencies: + undici-types "~6.21.0" + +"@types/node@^12.12.54": + version "12.20.55" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" + integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== + +"@types/node@^20.17.0": + version "20.19.43" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.19.43.tgz#fcecf580ba42a0db55cf404c372c97973c376c97" + integrity sha512-6oYBAi5ikg4Pl+kGsoYtawUMBT2zZMCvPNF7pVLnHZfd1zf38DRiWn/gT01RYCdUqkv7Fhr+C9ot4/tb+2sVvA== + dependencies: + undici-types "~6.21.0" + +"@types/ws@^7.4.4": + version "7.4.7" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" + integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== + dependencies: + "@types/node" "*" + +"@types/ws@^8.2.2": + version "8.18.1" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" + integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== + dependencies: + "@types/node" "*" + +agentkeepalive@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" + integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== + dependencies: + humanize-ms "^1.2.1" + +asn1.js@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1js@^3.0.10: + version "3.0.10" + resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.10.tgz#df26c874c8a8b41ca605efea47b2ad07551013dd" + integrity sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg== + dependencies: + pvtsutils "^1.3.6" + pvutils "^1.1.5" + tslib "^2.8.1" + +base-x@^3.0.2: + version "3.0.11" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.11.tgz#40d80e2a1aeacba29792ccc6c5354806421287ff" + integrity sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA== + dependencies: + safe-buffer "^5.0.1" + +base-x@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-5.0.1.tgz#16bf35254be1df8aca15e36b7c1dda74b2aa6b03" + integrity sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +bn.js@^4.0.0, bn.js@^4.11.9: + version "4.12.5" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.5.tgz#74f119ffecd823168d188eae06d97ea40835c489" + integrity sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ== + +bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.2, bn.js@^5.2.5: + version "5.2.5" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.5.tgz#e81ce41cf25e6f0cd1e05f20a9db8c18405e375f" + integrity sha512-Vq886eXykuP5E6HcKSSStP3bJgrE6In5WKxVUvJ8XGpWWYs2xZHWqUwzCtGgEtBcxyd57KBFDPFoUfNzdaHCNg== + +borsh@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" + integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== + dependencies: + bn.js "^5.2.0" + bs58 "^4.0.0" + text-encoding-utf-8 "^1.0.2" + +brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + +bs58@^4.0.0, bs58@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== + dependencies: + base-x "^3.0.2" + +bs58@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-6.0.0.tgz#a2cda0130558535dd281a2f8697df79caaf425d8" + integrity sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw== + dependencies: + base-x "^5.0.0" + +buffer-layout@^1.2.0, buffer-layout@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" + integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== + +buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +bufferutil@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.1.0.tgz#a4623541dd23867626bb08a051ec0d2ec0b70294" + integrity sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw== + dependencies: + node-gyp-build "^4.3.0" + +camelcase@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +chalk@5.6.2: + version "5.6.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" + integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== + +commander@14.0.2: + version "14.0.2" + resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e" + integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== + +commander@15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" + integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== + +commander@^2.20.3: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +cross-fetch@^3.1.5: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" + integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== + dependencies: + node-fetch "^2.7.0" + +delay@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" + integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== + +elliptic@^6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" + integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +es6-promise@^4.0.3: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== + dependencies: + es6-promise "^4.0.3" + +eventemitter3@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +eventemitter3@^5.0.1: + version "5.0.4" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.4.tgz#a86d66170433712dde814707ac52b5271ceb1feb" + integrity sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw== + +eyes@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" + integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== + +fast-stable-stringify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" + integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== + +hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== + dependencies: + ms "^2.0.0" + +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +isomorphic-ws@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" + integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== + +jayson@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.3.0.tgz#22eb8f3dcf37a5e893830e5451f32bde6d1bde4d" + integrity sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ== + dependencies: + "@types/connect" "^3.4.33" + "@types/node" "^12.12.54" + "@types/ws" "^7.4.4" + commander "^2.20.3" + delay "^5.0.0" + es6-promisify "^5.0.0" + eyes "^0.1.8" + isomorphic-ws "^4.0.1" + json-stringify-safe "^5.0.1" + stream-json "^1.9.1" + uuid "^8.3.2" + ws "^7.5.10" + +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + +ms@^2.0.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +node-fetch@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +node-gyp-build@^4.3.0: + version "4.8.4" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" + integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== + +pako@^2.0.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.2.0.tgz#246b9d4c841a8d308e484c0d03786651b143e63a" + integrity sha512-zJq6RP/5q+TO2OpFV3FHzlPnFjmkb7Nc99a5SNjJE+uu/PkpChs+NIZSSzbBoD+6kjiISXjfYdwj1ZRQ81dz/w== + +prettier@^3.5.3: + version "3.9.6" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.9.6.tgz#b3ea5146515d40fc53f18aa63f74dfab1e10dbf6" + integrity sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g== + +pvtsutils@^1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.6.tgz#ec46e34db7422b9e4fdc5490578c1883657d6001" + integrity sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg== + dependencies: + tslib "^2.8.1" + +pvutils@^1.1.5: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.2.0.tgz#4b5487a9cccd52d275b0538775790a3ca982bc22" + integrity sha512-BbubeCEyTuQjVMakvJQ/Sxbc93F2pwmbsxONT/ZRrwU7Ua38d8unYTwXpTVLAKJ4BDuH9IGztCjQcd/N/39Dvg== + +rpc-websockets@^9.0.2, rpc-websockets@^9.0.4: + version "9.3.10" + resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.3.10.tgz#d6f9b08edfac40e873a059b358806f6d58572e80" + integrity sha512-QT5PQ6LiWhA5RCS93oWwgxU4XzQltkYm8C3aTmmKEgj0HolGRo3VbdzELw7CEV35l9T7Amha8Vnr4rCfSjVP+w== + dependencies: + "@swc/helpers" "^0.5.11" + "@types/ws" "^8.2.2" + buffer "^6.0.3" + eventemitter3 "^5.0.1" + ws "^8.5.0" + optionalDependencies: + bufferutil "^4.0.1" + utf-8-validate "^6.0.0" + +safe-buffer@^5.0.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safer-buffer@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +stream-chain@^2.2.5: + version "2.2.5" + resolved "https://registry.yarnpkg.com/stream-chain/-/stream-chain-2.2.5.tgz#b30967e8f14ee033c5b9a19bbe8a2cba90ba0d09" + integrity sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA== + +stream-json@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/stream-json/-/stream-json-1.9.1.tgz#e3fec03e984a503718946c170db7d74556c2a187" + integrity sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw== + dependencies: + stream-chain "^2.2.5" + +superstruct@^0.15.4: + version "0.15.5" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" + integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== + +superstruct@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-2.0.2.tgz#3f6d32fbdc11c357deff127d591a39b996300c54" + integrity sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A== + +text-encoding-utf-8@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" + integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== + +toml@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" + integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +tslib@^2.8.0, tslib@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + +tweetnacl@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" + integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== + +typescript@^5.3.0, typescript@^5.8.3: + version "5.9.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" + integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== + +undici-types@^8.10.2: + version "8.10.2" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" + integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== + +undici-types@~6.21.0: + version "6.21.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" + integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== + +utf-8-validate@^6.0.0: + version "6.0.6" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-6.0.6.tgz#8a842c9b15af3f6323a3d5ed5eb9e61d208d8c22" + integrity sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA== + dependencies: + node-gyp-build "^4.3.0" + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +ws@^7.5.10: + version "7.5.13" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.13.tgz#12aa507eaca76c295c278b1aebf4698ab2c1845f" + integrity sha512-rsKI6xDBFVf4r/x8XyChGK04QR/XHroxs/jUcoWvtEZM8TPU/X/uIY9B1CsSzYws9ZJb/6bbBu7dPhFW00CAoA== + +ws@^8.21.3, ws@^8.5.0: + version "8.21.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" + integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== From 7aa9ab70e75f68b303b59a59d49ec7cd7c4db3dd Mon Sep 17 00:00:00 2001 From: Dodecahedr0x Date: Wed, 16 Sep 2026 16:31:52 +0700 Subject: [PATCH 2/9] style: lint --- .../tests-magicsvm/ephemeral-account-chats.ts | 38 +++++++++++-------- .../anchor/tests-magicsvm/magic-actions.ts | 9 ++++- .../tests-magicsvm/rock-paper-scissor.ts | 20 ++++++++-- 3 files changed, 47 insertions(+), 20 deletions(-) diff --git a/ephemeral-account-chats/anchor/tests-magicsvm/ephemeral-account-chats.ts b/ephemeral-account-chats/anchor/tests-magicsvm/ephemeral-account-chats.ts index 0d12139a..26d144fe 100644 --- a/ephemeral-account-chats/anchor/tests-magicsvm/ephemeral-account-chats.ts +++ b/ephemeral-account-chats/anchor/tests-magicsvm/ephemeral-account-chats.ts @@ -25,13 +25,17 @@ const MAX_MESSAGE_COUNT = 5; describe("ephemeral-account-chats magicsvm", () => { const userAKp = Keypair.generate(); const userBKp = Keypair.generate(); - const { svm, payer, program, validator: validatorStr } = - bootAnchorSvm({ - fromDir: __dirname, - programName: "ephemeral_account_chats", - payer: userAKp, - airdropLamports: BigInt(anchor.web3.LAMPORTS_PER_SOL), - }); + const { + svm, + payer, + program, + validator: validatorStr, + } = bootAnchorSvm({ + fromDir: __dirname, + programName: "ephemeral_account_chats", + payer: userAKp, + airdropLamports: BigInt(anchor.web3.LAMPORTS_PER_SOL), + }); const userA = new anchor.Wallet(payer); const userB = new anchor.Wallet(userBKp); const validator = new PublicKey(validatorStr); @@ -103,15 +107,11 @@ describe("ephemeral-account-chats magicsvm", () => { const profileA = program.coder.accounts.decode( "profile", - Buffer.from( - requireAccount(svm, profileAPda, "base").data, - ), + Buffer.from(requireAccount(svm, profileAPda, "base").data), ); const profileB = program.coder.accounts.decode( "profile", - Buffer.from( - requireAccount(svm, profileBPda, "base").data, - ), + Buffer.from(requireAccount(svm, profileBPda, "base").data), ); expect(profileA.handle).to.equal(nameA); expect(profileB.handle).to.equal(nameB); @@ -192,7 +192,11 @@ describe("ephemeral-account-chats magicsvm", () => { "ephemeral", ); - const conversationAccount = requireAccount(svm, conversationPda, "ephemeral"); + const conversationAccount = requireAccount( + svm, + conversationPda, + "ephemeral", + ); const conversation = program.coder.accounts.decode( "conversation", Buffer.from(conversationAccount.data), @@ -260,7 +264,11 @@ describe("ephemeral-account-chats magicsvm", () => { } } - const conversationAccount = requireAccount(svm, conversationPda, "ephemeral"); + const conversationAccount = requireAccount( + svm, + conversationPda, + "ephemeral", + ); const conversation = program.coder.accounts.decode( "conversation", Buffer.from(conversationAccount.data), diff --git a/magic-actions/anchor/tests-magicsvm/magic-actions.ts b/magic-actions/anchor/tests-magicsvm/magic-actions.ts index 8ffcbc7b..216fdadf 100644 --- a/magic-actions/anchor/tests-magicsvm/magic-actions.ts +++ b/magic-actions/anchor/tests-magicsvm/magic-actions.ts @@ -62,7 +62,9 @@ describe("magic-actions-local", () => { if (delegated) { counterBase = ""; const erInfo = svm.getAccountFor(pda, { target: "ephemeral" }); - counterER = erInfo.exists ? readU64le(svm, pda, "ephemeral").toString() : "0"; + counterER = erInfo.exists + ? readU64le(svm, pda, "ephemeral").toString() + : "0"; } else if (svm.getAccountFor(pda, { target: "base" }).exists) { counterBase = readU64le(svm, pda, "base").toString(); counterER = ""; @@ -166,7 +168,10 @@ describe("magic-actions-local", () => { .instruction(); sendSvmIx(svm, [payer], [topUpIx, delegateIx], "base"); - assert.equal(accountOwner(svm, pda, "base"), DELEGATION_PROGRAM_ID.toBase58()); + assert.equal( + accountOwner(svm, pda, "base"), + DELEGATION_PROGRAM_ID.toBase58(), + ); assert.ok(isDelegated(svm, pda)); assert.equal(readU64le(svm, pda, "ephemeral"), 1n); const escrowAccount = requireAccount(svm, escrow, "base", "escrow"); diff --git a/rock-paper-scissor/anchor/tests-magicsvm/rock-paper-scissor.ts b/rock-paper-scissor/anchor/tests-magicsvm/rock-paper-scissor.ts index 8542891e..76b7b9f9 100644 --- a/rock-paper-scissor/anchor/tests-magicsvm/rock-paper-scissor.ts +++ b/rock-paper-scissor/anchor/tests-magicsvm/rock-paper-scissor.ts @@ -134,7 +134,9 @@ describe("anchor-rock-paper-scissor (magicsvm)", () => { const magicProgram = svm.getAccountFor(MAGIC_PROGRAM_ID, { target: "ephemeral", }); - const vault = svm.getAccountFor(EPHEMERAL_VAULT_ID, { target: "ephemeral" }); + const vault = svm.getAccountFor(EPHEMERAL_VAULT_ID, { + target: "ephemeral", + }); console.log( "MAGIC_PROGRAM_ID on ephemeral:", magicProgram.exists ? `executable=${magicProgram.executable}` : "MISSING", @@ -245,7 +247,13 @@ describe("anchor-rock-paper-scissor (magicsvm)", () => { delegateGameIx, delegatePlayer2ChoiceIx, ); - sendSvmTx(svm, [player2], tx, "base", "join game + delegate game + p2 choice"); + sendSvmTx( + svm, + [player2], + tx, + "base", + "join game + delegate game + p2 choice", + ); console.log( `✅ Player 2 joined game ${gameId} + delegated game + p2 choice`, ); @@ -297,7 +305,13 @@ describe("anchor-rock-paper-scissor (magicsvm)", () => { initGamePermissionIx, initP2ChoicePermissionIx, ); - sendSvmTx(svm, [player2], tx, "ephemeral", "init game + p2 choice permissions"); + sendSvmTx( + svm, + [player2], + tx, + "ephemeral", + "init game + p2 choice permissions", + ); console.log("✅ Game + P2 Choice permissions initialized"); const permission = svm.getAccountFor(permissionForPlayer2Choice, { From a8352f59c3e5dd45f34f070ddc19a96d6038cd9b Mon Sep 17 00:00:00 2001 From: Dodecahedr0x Date: Wed, 16 Sep 2026 17:49:36 +0700 Subject: [PATCH 3/9] fix: bump CI Node to 24.10 --- .github/workflows/test-examples.yml | 9 +++++---- .github/workflows/test-magicsvm.yml | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test-examples.yml b/.github/workflows/test-examples.yml index 45420ffc..68316ae1 100644 --- a/.github/workflows/test-examples.yml +++ b/.github/workflows/test-examples.yml @@ -21,7 +21,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: "20.20" + node-version: "24.10" - name: Enable Corepack run: | @@ -64,9 +64,10 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - # Pin >=20.18 — @solana/codecs-numbers (via @solana/web3.js) rejects older 20.x. - # act's amd64 toolcache ships 20.11 unless a specific version is requested. - node-version: "20.20" + # Pin 24.10 — MagicsVM's @solana/errors@8.3.0 pulls commander@15, + # which requires Node >=22.12. Example READMEs document 24.10.0. + # Pin a specific version so act's toolcache does not pick an older Node. + node-version: "24.10" - name: Enable Corepack run: | diff --git a/.github/workflows/test-magicsvm.yml b/.github/workflows/test-magicsvm.yml index 32776c35..26d84808 100644 --- a/.github/workflows/test-magicsvm.yml +++ b/.github/workflows/test-magicsvm.yml @@ -41,7 +41,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: "20.20" + node-version: "24.10" - name: Enable Corepack run: | From 964fb3a90af6522306c114125930c603a36b460c Mon Sep 17 00:00:00 2001 From: dhruvja Date: Wed, 23 Sep 2026 17:55:42 +0700 Subject: [PATCH 4/9] refactor: replace validator TypeScript tests with MagicSVM suites --- binary-prediction/anchor/Anchor.toml | 2 +- binary-prediction/anchor/README.md | 22 +- binary-prediction/anchor/package.json | 9 +- .../programs/binary-prediction/src/lib.rs | 2 +- .../tests-magicsvm/binary-prediction.ts | 766 ----------- .../anchor/tests/binary-prediction.ts | 639 +++++----- .../anchor/tests/fixtures/dlp.so | Bin 325560 -> 0 bytes .../tests/fixtures/ephemeral_token_program.so | Bin 44472 -> 0 bytes .../fixtures/session-keys.so | Bin counter/anchor/Anchor.toml | 2 +- counter/anchor/README.md | 18 +- counter/anchor/package.json | 9 +- .../anchor/programs/public-counter/src/lib.rs | 2 +- .../anchor/tests-magicsvm/public-counter.ts | 121 -- counter/anchor/tests/advanced-magic.ts | 207 --- counter/anchor/tests/public-counter.ts | 199 +-- counter/native-rust/README.md | 18 +- counter/native-rust/package.json | 6 +- .../tests/kit/advanced-magic.test.ts | 290 ----- .../tests/kit/initializeKeypair.ts | 96 -- .../tests/kit/rust-counter.test.ts | 445 ------- .../rust-counter.test.ts | 5 +- counter/native-rust/tests/{kit => }/schema.ts | 0 .../tests/web3js/advanced-magic.test.ts | 365 ------ .../tests/web3js/initializeKeypair.ts | 65 - .../tests/web3js/rust-counter.test.ts | 532 -------- counter/native-rust/tests/web3js/schema.ts | 41 - counter/native-rust/vitest.config.ts | 4 +- counter/pinocchio/README.md | 18 +- counter/pinocchio/package.json | 3 - .../pinocchio/tests/kit/initializeKeypair.ts | 97 -- .../tests/kit/pinocchio-counter.test.ts | 445 ------- counter/pinocchio/tests/kit/schema.ts | 40 - .../pinocchio-counter.test.ts | 33 +- .../tests/web3js/initializeKeypair.ts | 51 - .../tests/web3js/pinocchio-counter.test.ts | 548 -------- counter/pinocchio/tests/web3js/schema.ts | 40 - counter/pinocchio/vitest.config.ts | 1 + delegation-actions/anchor/Anchor.toml | 2 +- delegation-actions/anchor/README.md | 18 +- delegation-actions/anchor/package.json | 9 +- .../programs/delegation-actions/src/lib.rs | 2 +- .../tests-magicsvm/delegation-actions.ts | 151 --- .../anchor/tests/delegation-actions-local.ts | 198 --- .../anchor/tests/delegation-actions.ts | 252 ++-- ephemeral-account-chats/anchor/Anchor.toml | 4 +- ephemeral-account-chats/anchor/README.md | 18 +- ephemeral-account-chats/anchor/package.json | 9 +- .../ephemeral-account-chats/src/lib.rs | 2 +- .../target/idl/ephemeral_account_chats.json | 62 +- .../target/types/ephemeral_account_chats.ts | 62 +- .../tests-magicsvm/ephemeral-account-chats.ts | 380 ------ .../anchor/tests/ephemeral-account-chats.ts | 577 ++++----- magic-actions/anchor/Anchor.toml | 2 +- magic-actions/anchor/README.md | 18 +- magic-actions/anchor/package.json | 9 +- .../anchor/programs/magic-actions/src/lib.rs | 2 +- .../anchor/tests-magicsvm/magic-actions.ts | 233 ---- .../anchor/tests/magic-actions-local.ts | 278 ---- magic-actions/anchor/tests/magic-actions.ts | 438 +++---- oncurve-delegation/client/README.md | 19 +- oncurve-delegation/client/package.json | 6 +- .../client/tests/kit/initializeKeypair.ts | 174 --- .../tests/kit/oncurve-delegation.test.ts | 204 --- .../oncurve-delegation.test.ts | 0 .../client/tests/web3js/initializeKeypair.ts | 104 -- .../tests/web3js/oncurve-delegation.test.ts | 169 --- oncurve-delegation/client/vitest.config.ts | 2 +- oracle-priced-purchase/anchor/Anchor.toml | 2 +- oracle-priced-purchase/anchor/README.md | 24 +- oracle-priced-purchase/anchor/package.json | 9 +- .../oracle-priced-purchase/src/lib.rs | 2 +- .../tests-magicsvm/oracle-priced-purchase.ts | 221 ---- .../anchor/tests/oracle-priced-purchase.ts | 212 +++- private-counter/anchor/Anchor.toml | 2 +- private-counter/anchor/README.md | 20 +- private-counter/anchor/package.json | 7 +- .../programs/private-counter/src/lib.rs | 2 +- .../anchor/tests-magicsvm/private-counter.ts | 195 --- .../anchor/tests/private-counter.ts | 322 ++--- private-counter/pinocchio/README.md | 20 +- private-counter/pinocchio/package.json | 5 +- .../pinocchio-private-counter.test.ts | 465 ------- .../tests/pinocchio-private-counter.test.ts | 1130 +++++++---------- rock-paper-scissor/anchor/Anchor.toml | 2 +- rock-paper-scissor/anchor/README.md | 22 +- rock-paper-scissor/anchor/package.json | 9 +- .../anchor-rock-paper-scissor/src/lib.rs | 2 +- .../tests-magicsvm/rock-paper-scissor.ts | 657 ---------- .../anchor/tests-magicsvm/tsconfig.json | 12 - .../anchor/tests/rock-paper-scissor.ts | 697 ++++------ rock-paper-scissor/anchor/tsconfig.json | 3 +- session-keys/anchor/Anchor.toml | 2 +- session-keys/anchor/README.md | 18 +- session-keys/anchor/package.json | 9 +- .../anchor-counter-session/src/lib.rs | 2 +- .../tests-magicsvm/anchor-counter-session.ts | 199 --- session-keys/anchor/tests/advanced-magic.ts | 291 ----- .../anchor/tests/anchor-counter-session.ts | 333 ++--- .../fixtures/session-keys.so | Bin spl-tokens/anchor/Anchor.toml | 2 +- spl-tokens/anchor/README.md | 18 +- spl-tokens/anchor/package.json | 9 +- .../anchor/programs/spl-tokens/src/lib.rs | 2 +- .../anchor/tests-magicsvm/spl-tokens.ts | 342 ----- spl-tokens/anchor/tests/fixtures/dlp.so | Bin 325560 -> 0 bytes .../tests/fixtures/ephemeral_token_program.so | Bin 44472 -> 0 bytes spl-tokens/anchor/tests/spl-tokens.ts | 442 +++---- 108 files changed, 2353 insertions(+), 11903 deletions(-) delete mode 100644 binary-prediction/anchor/tests-magicsvm/binary-prediction.ts delete mode 100755 binary-prediction/anchor/tests/fixtures/dlp.so delete mode 100755 binary-prediction/anchor/tests/fixtures/ephemeral_token_program.so rename binary-prediction/anchor/{tests-magicsvm => tests}/fixtures/session-keys.so (100%) delete mode 100644 counter/anchor/tests-magicsvm/public-counter.ts delete mode 100644 counter/anchor/tests/advanced-magic.ts delete mode 100644 counter/native-rust/tests/kit/advanced-magic.test.ts delete mode 100644 counter/native-rust/tests/kit/initializeKeypair.ts delete mode 100644 counter/native-rust/tests/kit/rust-counter.test.ts rename counter/native-rust/{tests-magicsvm => tests}/rust-counter.test.ts (99%) rename counter/native-rust/tests/{kit => }/schema.ts (100%) delete mode 100644 counter/native-rust/tests/web3js/advanced-magic.test.ts delete mode 100644 counter/native-rust/tests/web3js/initializeKeypair.ts delete mode 100644 counter/native-rust/tests/web3js/rust-counter.test.ts delete mode 100644 counter/native-rust/tests/web3js/schema.ts delete mode 100644 counter/pinocchio/tests/kit/initializeKeypair.ts delete mode 100644 counter/pinocchio/tests/kit/pinocchio-counter.test.ts delete mode 100644 counter/pinocchio/tests/kit/schema.ts rename counter/pinocchio/{tests-magicsvm => tests}/pinocchio-counter.test.ts (93%) delete mode 100644 counter/pinocchio/tests/web3js/initializeKeypair.ts delete mode 100644 counter/pinocchio/tests/web3js/pinocchio-counter.test.ts delete mode 100644 counter/pinocchio/tests/web3js/schema.ts delete mode 100644 delegation-actions/anchor/tests-magicsvm/delegation-actions.ts delete mode 100644 delegation-actions/anchor/tests/delegation-actions-local.ts delete mode 100644 ephemeral-account-chats/anchor/tests-magicsvm/ephemeral-account-chats.ts delete mode 100644 magic-actions/anchor/tests-magicsvm/magic-actions.ts delete mode 100644 magic-actions/anchor/tests/magic-actions-local.ts delete mode 100644 oncurve-delegation/client/tests/kit/initializeKeypair.ts delete mode 100644 oncurve-delegation/client/tests/kit/oncurve-delegation.test.ts rename oncurve-delegation/client/{tests-magicsvm => tests}/oncurve-delegation.test.ts (100%) delete mode 100644 oncurve-delegation/client/tests/web3js/initializeKeypair.ts delete mode 100644 oncurve-delegation/client/tests/web3js/oncurve-delegation.test.ts delete mode 100644 oracle-priced-purchase/anchor/tests-magicsvm/oracle-priced-purchase.ts delete mode 100644 private-counter/anchor/tests-magicsvm/private-counter.ts delete mode 100644 private-counter/pinocchio/tests-magicsvm/pinocchio-private-counter.test.ts delete mode 100644 rock-paper-scissor/anchor/tests-magicsvm/rock-paper-scissor.ts delete mode 100644 rock-paper-scissor/anchor/tests-magicsvm/tsconfig.json delete mode 100644 session-keys/anchor/tests-magicsvm/anchor-counter-session.ts delete mode 100644 session-keys/anchor/tests/advanced-magic.ts rename session-keys/anchor/{tests-magicsvm => tests}/fixtures/session-keys.so (100%) delete mode 100644 spl-tokens/anchor/tests-magicsvm/spl-tokens.ts delete mode 100755 spl-tokens/anchor/tests/fixtures/dlp.so delete mode 100755 spl-tokens/anchor/tests/fixtures/ephemeral_token_program.so diff --git a/binary-prediction/anchor/Anchor.toml b/binary-prediction/anchor/Anchor.toml index 40be3769..65be324f 100644 --- a/binary-prediction/anchor/Anchor.toml +++ b/binary-prediction/anchor/Anchor.toml @@ -34,4 +34,4 @@ program = "tests/fixtures/ephemeral_oracle.so" upgradeable = false [scripts] -test = "yarn run ts-mocha -p ./tsconfig.json -t 1000000 tests/binary-prediction.ts" +test = "yarn test" diff --git a/binary-prediction/anchor/README.md b/binary-prediction/anchor/README.md index 715ad88b..a8db3dfe 100644 --- a/binary-prediction/anchor/README.md +++ b/binary-prediction/anchor/README.md @@ -58,22 +58,17 @@ yarn yarn build ``` -This example runs against a local MagicBlock cluster: a base Solana validator, an Ephemeral Rollup, -and the Query Filtering Service. Start it in one terminal and leave it running: +Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash -yarn setup +yarn test ``` -Then, in a second terminal, run the lifecycle test: +MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no validators, no +network. The suite runs prediction initialization, betting, settlement, and withdrawal with a +vendored session-keys program. -```bash -yarn test:local -``` - -`test:local` sources `scripts/local-env.sh` so the SDK targets the local cluster. The test uses a -vendored `--features test-mode` `ephemeral_oracle.so` fixture, so prices are deterministic and seeded -by the test wallet. +A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. ## Client @@ -89,9 +84,8 @@ By default the client targets MagicBlock devnet — `https://rpc.magicblock.app/ layer and `https://devnet-as.magicblock.app` (`wss://devnet-as.magicblock.app`) for the ER — so `yarn dev` with no overrides works out of the box against devnet. -To point it at a local MagicBlock cluster instead, start the cluster with `yarn setup` and set these -env vars before `yarn dev` (the client reads `VITE_`-prefixed vars, not the shell exports from -`scripts/local-env.sh`): +To point it at a separately running local MagicBlock cluster, set these environment variables before +`yarn dev`: ```bash export VITE_PROVIDER_ENDPOINT=http://localhost:8899 diff --git a/binary-prediction/anchor/package.json b/binary-prediction/anchor/package.json index af034505..a900f46e 100644 --- a/binary-prediction/anchor/package.json +++ b/binary-prediction/anchor/package.json @@ -2,12 +2,9 @@ "scripts": { "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", - "test": "yarn test:local", - "build": "anchor keys sync && anchor build", - "test:local": ". ../../scripts/local-env.sh && npx ts-mocha -p ./tsconfig.json -t 1000000 tests/binary-prediction.ts", - "test:magicsvm": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests-magicsvm/binary-prediction.ts", - "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture", - "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh binary-prediction" + "test": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests/binary-prediction.ts", + "build": "anchor build --ignore-keys", + "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture" }, "dependencies": { "@coral-xyz/anchor": "0.32.1", diff --git a/binary-prediction/anchor/programs/binary-prediction/src/lib.rs b/binary-prediction/anchor/programs/binary-prediction/src/lib.rs index 964c0296..50fcbcdb 100644 --- a/binary-prediction/anchor/programs/binary-prediction/src/lib.rs +++ b/binary-prediction/anchor/programs/binary-prediction/src/lib.rs @@ -14,7 +14,7 @@ use error::ErrorCode; pub use state::{Bet, Direction, Pool}; use utils::*; -declare_id!("Ds6GFGKcKGEmefKcdAJmobh3EgdktYQJX1fHW1TP9USK"); +declare_id!("7HHiv8th2wY24iZp2ReF7QkJyFJHwHWCgZWg7CWrQnnm"); pub const POOL_SEED: &[u8] = b"pool"; pub const BET_SEED: &[u8] = b"bet"; diff --git a/binary-prediction/anchor/tests-magicsvm/binary-prediction.ts b/binary-prediction/anchor/tests-magicsvm/binary-prediction.ts deleted file mode 100644 index 90682d33..00000000 --- a/binary-prediction/anchor/tests-magicsvm/binary-prediction.ts +++ /dev/null @@ -1,766 +0,0 @@ -import * as anchor from "@coral-xyz/anchor"; -import * as borsh from "@coral-xyz/borsh"; -import { BN, Program, web3 } from "@coral-xyz/anchor"; -import { - ASSOCIATED_TOKEN_PROGRAM_ID, - createApproveInstruction, - createAssociatedTokenAccountInstruction, - createInitializeMint2Instruction, - createMintToInstruction, - getAssociatedTokenAddressSync, - TOKEN_PROGRAM_ID, -} from "@solana/spl-token"; -import { - DELEGATION_PROGRAM_ID, - delegateSpl, - EPHEMERAL_SPL_TOKEN_PROGRAM_ID, - undelegateIx, - withdrawSpl, -} from "@magicblock-labs/ephemeral-rollups-sdk"; -import { SessionTokenManager } from "@magicblock-labs/gum-sdk"; -import { MagicSVM } from "@magicblock-labs/magicsvm"; -import { airdropOrThrow, sendSvmTx } from "@magicblock-labs/test-utils"; -import { expect } from "chai"; -import * as fs from "fs"; -import * as path from "path"; - -import { BinaryPrediction } from "../target/types/binary_prediction"; - -const ORACLE_PROGRAM_ID = new web3.PublicKey( - "PriCems5tHihc6UDXDjzjeawomAwBduWMGAi8ZUjppd", -); -const SESSION_PROGRAM_ID = new web3.PublicKey( - "KeyspM2ssCJbqUhQ4k7sveSiY4WjnYsrXkC8oDbwde5", -); -const POOL_SEED = Buffer.from("pool"); -const BET_SEED = Buffer.from("bet"); -const PRICE_FEED_SEED = Buffer.from("price_feed"); -const ORACLE_PROVIDER = "pyth-lazer"; -const ORACLE_SYMBOL = "6"; -const STAKE = new BN(100); -const USER_DELEGATION = 300n; -const POOL_SEED_AMOUNT = new BN(10_000); -const BET_DURATION_SECONDS = new BN(5); -const MIN_STAKE = new BN(10); -const PAYOUT_BPS = new BN(19_000); -const MINT_SIZE = 82; - -const INITIALIZE_PRICE_FEED_DISCRIMINATOR = Buffer.from([ - 68, 180, 81, 20, 102, 213, 145, 233, -]); -const UPDATE_PRICE_FEED_DISCRIMINATOR = Buffer.from([ - 28, 9, 93, 150, 86, 153, 188, 115, -]); -const DELEGATE_PRICE_FEED_DISCRIMINATOR = Buffer.from([ - 15, 179, 172, 145, 42, 73, 160, 241, -]); - -const initializePriceFeedLayout = borsh.struct([ - borsh.str("provider"), - borsh.str("symbol"), - borsh.array(borsh.u8(), 32, "feedId"), - borsh.i32("exponent"), -]); -const updatePriceFeedLayout = borsh.struct([ - borsh.str("provider"), - borsh.struct( - [ - borsh.str("symbol"), - borsh.array(borsh.u8(), 32, "id"), - borsh.struct( - [borsh.u64("timestampNs"), borsh.i128("quantizedValue")], - "temporalNumericValue", - ), - borsh.array(borsh.u8(), 32, "publisherMerkleRoot"), - borsh.array(borsh.u8(), 32, "valueComputeAlgHash"), - borsh.array(borsh.u8(), 32, "r"), - borsh.array(borsh.u8(), 32, "s"), - borsh.u8("v"), - ], - "updateData", - ), -]); -const delegatePriceFeedLayout = borsh.struct([ - borsh.str("provider"), - borsh.str("symbol"), -]); - -function pda(seeds: Buffer[], programId: web3.PublicKey): web3.PublicKey { - return web3.PublicKey.findProgramAddressSync(seeds, programId)[0]; -} - -function eata(owner: web3.PublicKey, mint: web3.PublicKey): web3.PublicKey { - return pda( - [owner.toBuffer(), mint.toBuffer()], - EPHEMERAL_SPL_TOKEN_PROGRAM_ID, - ); -} - -function vault(mint: web3.PublicKey): web3.PublicKey { - return pda([mint.toBuffer()], EPHEMERAL_SPL_TOKEN_PROGRAM_ID); -} - -function delegationBuffer( - account: web3.PublicKey, - ownerProgram: web3.PublicKey, -): web3.PublicKey { - return pda([Buffer.from("buffer"), account.toBuffer()], ownerProgram); -} - -function delegationRecord(account: web3.PublicKey): web3.PublicKey { - return pda( - [Buffer.from("delegation"), account.toBuffer()], - DELEGATION_PROGRAM_ID, - ); -} - -function delegationMetadata(account: web3.PublicKey): web3.PublicKey { - return pda( - [Buffer.from("delegation-metadata"), account.toBuffer()], - DELEGATION_PROGRAM_ID, - ); -} - -function priceFeed(): web3.PublicKey { - return pda( - [PRICE_FEED_SEED, Buffer.from(ORACLE_PROVIDER), Buffer.from(ORACLE_SYMBOL)], - ORACLE_PROGRAM_ID, - ); -} - -function betPda( - programId: web3.PublicKey, - user: web3.PublicKey, -): web3.PublicKey { - return pda([BET_SEED, user.toBuffer()], programId); -} - -function encodeInstruction( - discriminator: Buffer, - layout: borsh.Layout, - value: unknown, -): Buffer { - const encoded = Buffer.alloc(1_000); - const span = layout.encode(value, encoded); - - return Buffer.concat([discriminator, encoded.subarray(0, span)]); -} - -function initializePriceFeedIx( - payer: web3.PublicKey, - feed: web3.PublicKey, -): web3.TransactionInstruction { - return new web3.TransactionInstruction({ - programId: ORACLE_PROGRAM_ID, - keys: [ - { pubkey: payer, isSigner: true, isWritable: true }, - { pubkey: feed, isSigner: false, isWritable: true }, - { - pubkey: web3.SystemProgram.programId, - isSigner: false, - isWritable: false, - }, - ], - data: encodeInstruction( - INITIALIZE_PRICE_FEED_DISCRIMINATOR, - initializePriceFeedLayout, - { - provider: ORACLE_PROVIDER, - symbol: ORACLE_SYMBOL, - feedId: Array.from(feed.toBytes()), - exponent: 0, - }, - ), - }); -} - -function updatePriceFeedIx( - payer: web3.PublicKey, - feed: web3.PublicKey, - price: number, - timestampNs: BN, -): web3.TransactionInstruction { - return new web3.TransactionInstruction({ - programId: ORACLE_PROGRAM_ID, - keys: [ - { pubkey: payer, isSigner: true, isWritable: true }, - { pubkey: feed, isSigner: false, isWritable: true }, - ], - data: encodeInstruction( - UPDATE_PRICE_FEED_DISCRIMINATOR, - updatePriceFeedLayout, - { - provider: ORACLE_PROVIDER, - updateData: { - symbol: ORACLE_SYMBOL, - id: Array.from(feed.toBytes()), - temporalNumericValue: { - timestampNs, - quantizedValue: new BN(price), - }, - publisherMerkleRoot: Array(32).fill(0), - valueComputeAlgHash: Array(32).fill(0), - r: Array(32).fill(0), - s: Array(32).fill(0), - v: 0, - }, - }, - ), - }); -} - -function delegatePriceFeedIx( - payer: web3.PublicKey, - feed: web3.PublicKey, -): web3.TransactionInstruction { - return new web3.TransactionInstruction({ - programId: ORACLE_PROGRAM_ID, - keys: [ - { pubkey: payer, isSigner: true, isWritable: true }, - { pubkey: feed, isSigner: false, isWritable: true }, - { - pubkey: delegationBuffer(feed, ORACLE_PROGRAM_ID), - isSigner: false, - isWritable: true, - }, - { pubkey: delegationRecord(feed), isSigner: false, isWritable: true }, - { pubkey: delegationMetadata(feed), isSigner: false, isWritable: true }, - { pubkey: ORACLE_PROGRAM_ID, isSigner: false, isWritable: false }, - { pubkey: DELEGATION_PROGRAM_ID, isSigner: false, isWritable: false }, - { - pubkey: web3.SystemProgram.programId, - isSigner: false, - isWritable: false, - }, - ], - data: encodeInstruction( - DELEGATE_PRICE_FEED_DISCRIMINATOR, - delegatePriceFeedLayout, - { - provider: ORACLE_PROVIDER, - symbol: ORACLE_SYMBOL, - }, - ), - }); -} - -function tokenAmount( - svm: MagicSVM, - address: web3.PublicKey, - target: "base" | "ephemeral", -): bigint { - const account = svm.getAccountFor(address, { target }); - expect(account.exists, `token account missing on ${target}`).to.equal(true); - if (!account.exists) { - throw new Error(`token account missing on ${target}`); - } - return Buffer.from(account.data).readBigUInt64LE(64); -} - -function readPool(svm: MagicSVM, pool: web3.PublicKey) { - const account = svm.getAccount(pool); - expect(account.exists, "pool missing").to.equal(true); - if (!account.exists) { - throw new Error("pool missing"); - } - const data = Buffer.from(account.data); - return { - priceFeedId: data.subarray(104, 136), - betDurationSeconds: Number(data.readBigInt64LE(136)), - minStake: Number(data.readBigUInt64LE(144)), - payoutBps: Number(data.readBigUInt64LE(152)), - }; -} - -function readBet( - svm: MagicSVM, - bet: web3.PublicKey, - target: "base" | "ephemeral", -) { - const account = svm.getAccountFor(bet, { target }); - expect(account.exists, `bet missing on ${target}`).to.equal(true); - if (!account.exists) { - throw new Error(`bet missing on ${target}`); - } - const data = Buffer.from(account.data); - return { - openPrice: Number(data.readBigInt64LE(8)), - stake: Number(data.readBigUInt64LE(25)), - isOpen: data[33] === 1, - }; -} - -function setUnixTimestamp(svm: MagicSVM, unixTimestamp: bigint) { - const clock = svm.getClock(); - clock.unixTimestamp = unixTimestamp; - svm.setClock(clock); -} - -function oracleTimestampNs(svm: MagicSVM): BN { - return new BN(svm.getClock().unixTimestamp.toString()).mul( - new BN(1_000_000_000), - ); -} - -describe("binary-prediction magicsvm", () => { - const soPath = path.resolve( - __dirname, - "..", - "target", - "deploy", - "binary_prediction.so", - ); - const oracleSoPath = path.resolve( - __dirname, - "..", - "tests", - "fixtures", - "ephemeral_oracle.so", - ); - const sessionSoPath = path.resolve(__dirname, "fixtures", "session-keys.so"); - expect(fs.existsSync(soPath), `missing program binary at ${soPath}`).to.equal( - true, - ); - expect( - fs.existsSync(oracleSoPath), - `missing oracle program at ${oracleSoPath}`, - ).to.equal(true); - expect( - fs.existsSync(sessionSoPath), - `missing gum session program at ${sessionSoPath}`, - ).to.equal(true); - - const idl = JSON.parse( - fs.readFileSync( - path.resolve(__dirname, "..", "target", "idl", "binary_prediction.json"), - "utf8", - ), - ); - const admin = web3.Keypair.generate(); - const user = web3.Keypair.generate(); - const sessionKeypair = web3.Keypair.generate(); - const mintKp = web3.Keypair.generate(); - const dummyProvider = new anchor.AnchorProvider( - new web3.Connection("http://127.0.0.1:8899"), - new anchor.Wallet(admin), - { commitment: "confirmed" }, - ); - const program = new Program(idl, dummyProvider); - const sessionTokenManager = new SessionTokenManager( - dummyProvider.wallet, - dummyProvider.connection, - ); - - const svm = new MagicSVM(); - const now = BigInt(Math.floor(Date.now() / 1000)); - setUnixTimestamp(svm, now); - svm.addProgramFromFile(program.programId, soPath); - svm.addProgramFromFile(ORACLE_PROGRAM_ID, oracleSoPath); - svm.addProgramFromFile(SESSION_PROGRAM_ID, sessionSoPath); - airdropOrThrow( - svm, - admin.publicKey, - BigInt(10 * web3.LAMPORTS_PER_SOL), - "airdrop admin", - ); - airdropOrThrow( - svm, - user.publicKey, - BigInt(2 * web3.LAMPORTS_PER_SOL), - "airdrop user", - ); - - const validator = new web3.PublicKey(svm.validatorIdentity().toString()); - const feed = priceFeed(); - const feedId = Array.from(feed.toBytes()); - const userBet = betPda(program.programId, user.publicKey); - const mint = mintKp.publicKey; - const userAta = getAssociatedTokenAddressSync(mint, user.publicKey); - const adminAta = getAssociatedTokenAddressSync(mint, admin.publicKey); - const pool = web3.PublicKey.findProgramAddressSync( - [POOL_SEED, mint.toBuffer()], - program.programId, - )[0]; - const poolAta = getAssociatedTokenAddressSync(mint, pool, true); - const poolEata = eata(pool, mint); - const vaultPda = vault(mint); - const vaultEata = eata(vaultPda, mint); - const vaultAta = getAssociatedTokenAddressSync(mint, vaultPda, true); - const sessionTokenPda = web3.PublicKey.findProgramAddressSync( - [ - Buffer.from("session_token_v2"), - program.programId.toBuffer(), - sessionKeypair.publicKey.toBuffer(), - user.publicKey.toBuffer(), - ], - sessionTokenManager.program.programId, - )[0]; - - it("runs initialize -> bet -> settle -> user withdraw", async () => { - const mintRent = Number( - svm.minimumBalanceForRentExemption(BigInt(MINT_SIZE)), - ); - sendSvmTx( - svm, - [admin, mintKp], - new web3.Transaction().add( - web3.SystemProgram.createAccount({ - fromPubkey: admin.publicKey, - newAccountPubkey: mint, - space: MINT_SIZE, - lamports: mintRent, - programId: TOKEN_PROGRAM_ID, - }), - createInitializeMint2Instruction(mint, 0, admin.publicKey, null), - ), - "base", - "create mint", - ); - - sendSvmTx( - svm, - [admin], - new web3.Transaction().add( - createAssociatedTokenAccountInstruction( - admin.publicKey, - userAta, - user.publicKey, - mint, - ), - createAssociatedTokenAccountInstruction( - admin.publicKey, - adminAta, - admin.publicKey, - mint, - ), - ), - "base", - "create ATAs", - ); - - sendSvmTx( - svm, - [admin], - new web3.Transaction().add( - createMintToInstruction(mint, userAta, admin.publicKey, 1_000n), - createMintToInstruction( - mint, - adminAta, - admin.publicKey, - BigInt(POOL_SEED_AMOUNT.toString()), - ), - ), - "base", - "mint tokens", - ); - - sendSvmTx( - svm, - [admin], - new web3.Transaction().add(initializePriceFeedIx(admin.publicKey, feed)), - "base", - "initialize price feed", - ); - sendSvmTx( - svm, - [admin], - new web3.Transaction().add( - updatePriceFeedIx(admin.publicKey, feed, 100, oracleTimestampNs(svm)), - ), - "base", - "update price feed 100", - ); - - const initializeTx = await program.methods - .initialize( - feed, - feedId, - POOL_SEED_AMOUNT, - BET_DURATION_SECONDS, - MIN_STAKE, - PAYOUT_BPS, - ) - .preInstructions([ - web3.ComputeBudgetProgram.setComputeUnitLimit({ units: 1_400_000 }), - ]) - .accountsPartial({ - admin: admin.publicKey, - mint, - pool, - poolTokenAccount: poolAta, - adminTokenAccount: adminAta, - poolEphemeralAta: poolEata, - vault: vaultPda, - vaultEphemeralAta: vaultEata, - vaultTokenAccount: vaultAta, - poolEataBuffer: delegationBuffer( - poolEata, - EPHEMERAL_SPL_TOKEN_PROGRAM_ID, - ), - poolEataRecord: delegationRecord(poolEata), - poolEataMetadata: delegationMetadata(poolEata), - vaultEataBuffer: delegationBuffer( - vaultEata, - EPHEMERAL_SPL_TOKEN_PROGRAM_ID, - ), - vaultEataRecord: delegationRecord(vaultEata), - vaultEataMetadata: delegationMetadata(vaultEata), - ephemeralTokenProgram: EPHEMERAL_SPL_TOKEN_PROGRAM_ID, - delegationProgram: DELEGATION_PROGRAM_ID, - tokenProgram: TOKEN_PROGRAM_ID, - associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID, - systemProgram: web3.SystemProgram.programId, - }) - .remainingAccounts([ - { pubkey: validator, isSigner: false, isWritable: false }, - ]) - .transaction(); - sendSvmTx(svm, [admin], initializeTx, "base", "initialize"); - - const poolState = readPool(svm, pool); - expect(poolState.betDurationSeconds).to.equal( - BET_DURATION_SECONDS.toNumber(), - ); - expect(Buffer.from(poolState.priceFeedId)).to.deep.equal( - Buffer.from(feedId), - ); - expect(poolState.minStake).to.equal(MIN_STAKE.toNumber()); - expect(poolState.payoutBps).to.equal(PAYOUT_BPS.toNumber()); - expect(tokenAmount(svm, poolAta, "base")).to.equal(0n); - - const initializeBetTx = await program.methods - .initializeBet() - .accountsPartial({ - payer: admin.publicKey, - user: user.publicKey, - bet: userBet, - systemProgram: web3.SystemProgram.programId, - }) - .transaction(); - sendSvmTx(svm, [admin], initializeBetTx, "base", "initialize bet"); - - sendSvmTx( - svm, - [admin], - new web3.Transaction().add(delegatePriceFeedIx(admin.publicKey, feed)), - "base", - "delegate price feed", - ); - - const delegateBetTx = await program.methods - .delegateBet() - .accountsPartial({ - payer: admin.publicKey, - user: user.publicKey, - bet: userBet, - }) - .remainingAccounts([ - { pubkey: validator, isSigner: false, isWritable: false }, - ]) - .transaction(); - sendSvmTx(svm, [admin, user], delegateBetTx, "base", "delegate bet"); - - const delegateUserIxs = await delegateSpl( - user.publicKey, - mint, - USER_DELEGATION, - { - validator, - idempotent: false, - initVaultIfMissing: false, - payer: admin.publicKey, - }, - ); - sendSvmTx( - svm, - [admin, user], - new web3.Transaction().add(...delegateUserIxs), - "base", - "delegate user SPL", - ); - - const placeWalletBetTx = await program.methods - .placeBet({ up: {} }, STAKE) - .accountsPartial({ - payer: user.publicKey, - user: user.publicKey, - mint, - pool, - bet: userBet, - userTokenAccount: userAta, - poolTokenAccount: poolAta, - priceUpdate: feed, - tokenProgram: TOKEN_PROGRAM_ID, - sessionToken: null, - }) - .transaction(); - sendSvmTx( - svm, - [admin, user], - placeWalletBetTx, - "ephemeral", - "place wallet bet", - ); - - let bet = readBet(svm, userBet, "ephemeral"); - expect(bet.openPrice).to.equal(100); - expect(bet.stake).to.equal(STAKE.toNumber()); - expect(bet.isOpen).to.equal(true); - - sendSvmTx( - svm, - [admin], - new web3.Transaction().add( - updatePriceFeedIx(admin.publicKey, feed, 110, oracleTimestampNs(svm)), - ), - "ephemeral", - "update price feed 110", - ); - setUnixTimestamp( - svm, - svm.getClock().unixTimestamp + - BigInt(BET_DURATION_SECONDS.toNumber() + 1), - ); - - const settleWinTx = await program.methods - .settle() - .accountsPartial({ - payer: admin.publicKey, - user: user.publicKey, - mint, - pool, - bet: userBet, - userTokenAccount: userAta, - poolTokenAccount: poolAta, - priceUpdate: feed, - tokenProgram: TOKEN_PROGRAM_ID, - }) - .transaction(); - sendSvmTx(svm, [admin], settleWinTx, "ephemeral", "settle win"); - - bet = readBet(svm, userBet, "ephemeral"); - expect(bet.isOpen).to.equal(false); - - const createSessionTx = await sessionTokenManager.program.methods - .createSessionV2( - true, - new BN(Number(svm.getClock().unixTimestamp) + 3600), - new BN(0.005 * web3.LAMPORTS_PER_SOL), - ) - .accounts({ - targetProgram: program.programId, - sessionSigner: sessionKeypair.publicKey, - feePayer: admin.publicKey, - authority: user.publicKey, - }) - .transaction(); - sendSvmTx( - svm, - [admin, user, sessionKeypair], - createSessionTx, - "base", - "create session", - ); - - sendSvmTx( - svm, - [admin, user], - new web3.Transaction().add( - createApproveInstruction( - userAta, - sessionKeypair.publicKey, - user.publicKey, - BigInt(STAKE.toString()), - ), - ), - "ephemeral", - "approve session delegate", - ); - - const placeSessionBetTx = await program.methods - .placeBet({ down: {} }, STAKE) - .accountsPartial({ - payer: sessionKeypair.publicKey, - user: user.publicKey, - mint, - pool, - bet: userBet, - userTokenAccount: userAta, - poolTokenAccount: poolAta, - priceUpdate: feed, - tokenProgram: TOKEN_PROGRAM_ID, - sessionToken: sessionTokenPda, - }) - .transaction(); - sendSvmTx( - svm, - [sessionKeypair], - placeSessionBetTx, - "ephemeral", - "place session bet", - ); - - sendSvmTx( - svm, - [admin], - new web3.Transaction().add( - updatePriceFeedIx(admin.publicKey, feed, 120, oracleTimestampNs(svm)), - ), - "ephemeral", - "update price feed 120", - ); - setUnixTimestamp( - svm, - svm.getClock().unixTimestamp + - BigInt(BET_DURATION_SECONDS.toNumber() + 1), - ); - - const settleLossTx = await program.methods - .settle() - .accountsPartial({ - payer: admin.publicKey, - user: user.publicKey, - mint, - pool, - bet: userBet, - userTokenAccount: userAta, - poolTokenAccount: poolAta, - priceUpdate: feed, - tokenProgram: TOKEN_PROGRAM_ID, - }) - .transaction(); - sendSvmTx(svm, [admin], settleLossTx, "ephemeral", "settle loss"); - - const erUserBalance = tokenAmount(svm, userAta, "ephemeral"); - const erPoolBalance = tokenAmount(svm, poolAta, "ephemeral"); - expect(erUserBalance).to.equal(290n); - expect(erPoolBalance).to.equal(10_010n); - - sendSvmTx( - svm, - [user], - new web3.Transaction().add(undelegateIx(user.publicKey, mint)), - "ephemeral", - "user undelegate", - ); - - const userWithdrawIxs = await withdrawSpl( - user.publicKey, - mint, - erUserBalance, - { - idempotent: false, - }, - ); - sendSvmTx( - svm, - [admin, user], - new web3.Transaction().add(...userWithdrawIxs), - "base", - "user withdraw", - ); - - expect(tokenAmount(svm, userAta, "base")).to.equal(990n); - expect(tokenAmount(svm, poolAta, "base")).to.equal(0n); - }); -}); diff --git a/binary-prediction/anchor/tests/binary-prediction.ts b/binary-prediction/anchor/tests/binary-prediction.ts index 1dd8fc08..90682d33 100644 --- a/binary-prediction/anchor/tests/binary-prediction.ts +++ b/binary-prediction/anchor/tests/binary-prediction.ts @@ -4,11 +4,10 @@ import { BN, Program, web3 } from "@coral-xyz/anchor"; import { ASSOCIATED_TOKEN_PROGRAM_ID, createApproveInstruction, - createAssociatedTokenAccount, - createMint, - getAccount, + createAssociatedTokenAccountInstruction, + createInitializeMint2Instruction, + createMintToInstruction, getAssociatedTokenAddressSync, - mintTo, TOKEN_PROGRAM_ID, } from "@solana/spl-token"; import { @@ -19,13 +18,20 @@ import { withdrawSpl, } from "@magicblock-labs/ephemeral-rollups-sdk"; import { SessionTokenManager } from "@magicblock-labs/gum-sdk"; +import { MagicSVM } from "@magicblock-labs/magicsvm"; +import { airdropOrThrow, sendSvmTx } from "@magicblock-labs/test-utils"; import { expect } from "chai"; +import * as fs from "fs"; +import * as path from "path"; import { BinaryPrediction } from "../target/types/binary_prediction"; const ORACLE_PROGRAM_ID = new web3.PublicKey( "PriCems5tHihc6UDXDjzjeawomAwBduWMGAi8ZUjppd", ); +const SESSION_PROGRAM_ID = new web3.PublicKey( + "KeyspM2ssCJbqUhQ4k7sveSiY4WjnYsrXkC8oDbwde5", +); const POOL_SEED = Buffer.from("pool"); const BET_SEED = Buffer.from("bet"); const PRICE_FEED_SEED = Buffer.from("price_feed"); @@ -37,7 +43,7 @@ const POOL_SEED_AMOUNT = new BN(10_000); const BET_DURATION_SECONDS = new BN(5); const MIN_STAKE = new BN(10); const PAYOUT_BPS = new BN(19_000); -const BET_DURATION_MS = 6_000; +const MINT_SIZE = 82; const INITIALIZE_PRICE_FEED_DISCRIMINATOR = Buffer.from([ 68, 180, 81, 20, 102, 213, 145, 233, @@ -48,8 +54,6 @@ const UPDATE_PRICE_FEED_DISCRIMINATOR = Buffer.from([ const DELEGATE_PRICE_FEED_DISCRIMINATOR = Buffer.from([ 15, 179, 172, 145, 42, 73, 160, 241, ]); -const SCHEDULED_COMMIT_PREFIX = "ScheduledCommitSent signature: "; -const COMMIT_PREFIX = "ScheduledCommitSent signature[0]: "; const initializePriceFeedLayout = borsh.struct([ borsh.str("provider"), @@ -174,6 +178,7 @@ function updatePriceFeedIx( payer: web3.PublicKey, feed: web3.PublicKey, price: number, + timestampNs: BN, ): web3.TransactionInstruction { return new web3.TransactionInstruction({ programId: ORACLE_PROGRAM_ID, @@ -186,7 +191,19 @@ function updatePriceFeedIx( updatePriceFeedLayout, { provider: ORACLE_PROVIDER, - updateData: updateData(ORACLE_SYMBOL, feed, price), + updateData: { + symbol: ORACLE_SYMBOL, + id: Array.from(feed.toBytes()), + temporalNumericValue: { + timestampNs, + quantizedValue: new BN(price), + }, + publisherMerkleRoot: Array(32).fill(0), + valueComputeAlgHash: Array(32).fill(0), + r: Array(32).fill(0), + s: Array(32).fill(0), + v: 0, + }, }, ), }); @@ -227,238 +244,231 @@ function delegatePriceFeedIx( }); } -function updateData(symbol: string, feed: web3.PublicKey, price: number) { - return { - symbol, - id: Array.from(feed.toBytes()), - temporalNumericValue: { - timestampNs: new BN(Date.now().toString()).mul(new BN(1_000_000)), - quantizedValue: new BN(price), - }, - publisherMerkleRoot: Array(32).fill(0), - valueComputeAlgHash: Array(32).fill(0), - r: Array(32).fill(0), - s: Array(32).fill(0), - v: 0, - }; -} - -async function sleep(ms: number): Promise { - await new Promise((resolve) => setTimeout(resolve, ms)); +function tokenAmount( + svm: MagicSVM, + address: web3.PublicKey, + target: "base" | "ephemeral", +): bigint { + const account = svm.getAccountFor(address, { target }); + expect(account.exists, `token account missing on ${target}`).to.equal(true); + if (!account.exists) { + throw new Error(`token account missing on ${target}`); + } + return Buffer.from(account.data).readBigUInt64LE(64); } -async function sendLocalTransaction( - connection: web3.Connection, - transaction: web3.Transaction, - feePayer: web3.Keypair, - signers: web3.Keypair[] = [], -): Promise { - const blockhash = await connection.getLatestBlockhash("confirmed"); - const signerMap = new Map(); - [feePayer, ...signers].forEach((signer) => - signerMap.set(signer.publicKey.toBase58(), signer), - ); - - transaction.feePayer = feePayer.publicKey; - transaction.recentBlockhash = blockhash.blockhash; - transaction.partialSign(...signerMap.values()); - - const signature = await connection.sendRawTransaction( - transaction.serialize(), - { skipPreflight: true }, - ); - const status = await connection.confirmTransaction( - { signature, ...blockhash }, - "confirmed", - ); - if (status.value.err) { - throw new Error( - `Transaction ${signature} failed: ${JSON.stringify(status.value.err)}`, - ); +function readPool(svm: MagicSVM, pool: web3.PublicKey) { + const account = svm.getAccount(pool); + expect(account.exists, "pool missing").to.equal(true); + if (!account.exists) { + throw new Error("pool missing"); } - - return signature; + const data = Buffer.from(account.data); + return { + priceFeedId: data.subarray(104, 136), + betDurationSeconds: Number(data.readBigInt64LE(136)), + minStake: Number(data.readBigUInt64LE(144)), + payoutBps: Number(data.readBigUInt64LE(152)), + }; } -function findLogValue(logMessages: string[], prefix: string): string | null { - const message = logMessages.find((log) => log.includes(prefix)); - - return message ? message.split(prefix)[1] : null; +function readBet( + svm: MagicSVM, + bet: web3.PublicKey, + target: "base" | "ephemeral", +) { + const account = svm.getAccountFor(bet, { target }); + expect(account.exists, `bet missing on ${target}`).to.equal(true); + if (!account.exists) { + throw new Error(`bet missing on ${target}`); + } + const data = Buffer.from(account.data); + return { + openPrice: Number(data.readBigInt64LE(8)), + stake: Number(data.readBigUInt64LE(25)), + isOpen: data[33] === 1, + }; } -function dumpLogs(label: string, logMessages: string[]): void { - console.log(`${label} logs:`); - for (const log of logMessages) { - console.log(` ${log}`); - } +function setUnixTimestamp(svm: MagicSVM, unixTimestamp: bigint) { + const clock = svm.getClock(); + clock.unixTimestamp = unixTimestamp; + svm.setClock(clock); } -async function getCommitmentSignatureWithLogs( - label: string, - transactionSignature: string, - ephemeralConnection: web3.Connection, -): Promise { - const schedulingTransaction = await ephemeralConnection.getTransaction( - transactionSignature, - { commitment: "confirmed", maxSupportedTransactionVersion: 0 }, +function oracleTimestampNs(svm: MagicSVM): BN { + return new BN(svm.getClock().unixTimestamp.toString()).mul( + new BN(1_000_000_000), ); - if (!schedulingTransaction?.meta) { - throw new Error(`${label}: scheduling transaction not found`); - } +} - const schedulingLogs = schedulingTransaction.meta.logMessages ?? []; - dumpLogs( - `${label} scheduling transaction ${transactionSignature}`, - schedulingLogs, +describe("binary-prediction magicsvm", () => { + const soPath = path.resolve( + __dirname, + "..", + "target", + "deploy", + "binary_prediction.so", ); - - const scheduledCommitSignature = findLogValue( - schedulingLogs, - SCHEDULED_COMMIT_PREFIX, + const oracleSoPath = path.resolve( + __dirname, + "..", + "tests", + "fixtures", + "ephemeral_oracle.so", ); - if (!scheduledCommitSignature) { - throw new Error(`${label}: scheduled commit signature not found`); - } - console.log(`${label} scheduled commit: ${scheduledCommitSignature}`); - - for (let attempt = 0; attempt < 60; attempt += 1) { - const scheduledTransaction = await ephemeralConnection.getTransaction( - scheduledCommitSignature, - { commitment: "confirmed", maxSupportedTransactionVersion: 0 }, - ); - if (scheduledTransaction?.meta) { - const scheduledLogs = scheduledTransaction.meta.logMessages ?? []; - dumpLogs( - `${label} scheduled commit transaction ${scheduledCommitSignature}`, - scheduledLogs, - ); - - const commitmentSignature = findLogValue(scheduledLogs, COMMIT_PREFIX); - if (!commitmentSignature) { - throw new Error(`${label}: base commitment signature not found`); - } - - return commitmentSignature; - } - await sleep(1_000); - } - - throw new Error( - `${label}: scheduled commit transaction ${scheduledCommitSignature} did not land`, + const sessionSoPath = path.resolve(__dirname, "fixtures", "session-keys.so"); + expect(fs.existsSync(soPath), `missing program binary at ${soPath}`).to.equal( + true, ); -} - -describe("binary-prediction", () => { - const provider = process.env.PROVIDER_ENDPOINT - ? new anchor.AnchorProvider( - new anchor.web3.Connection(process.env.PROVIDER_ENDPOINT, "confirmed"), - anchor.Wallet.local(), - ) - : anchor.AnchorProvider.env(); - anchor.setProvider(provider); - - const erProvider = new anchor.AnchorProvider( - new anchor.web3.Connection( - process.env.EPHEMERAL_PROVIDER_ENDPOINT || "http://localhost:7799", - { - wsEndpoint: process.env.EPHEMERAL_WS_ENDPOINT || "ws://localhost:7800", - commitment: "confirmed", - }, + expect( + fs.existsSync(oracleSoPath), + `missing oracle program at ${oracleSoPath}`, + ).to.equal(true); + expect( + fs.existsSync(sessionSoPath), + `missing gum session program at ${sessionSoPath}`, + ).to.equal(true); + + const idl = JSON.parse( + fs.readFileSync( + path.resolve(__dirname, "..", "target", "idl", "binary_prediction.json"), + "utf8", ), - anchor.Wallet.local(), ); - - const program = anchor.workspace - .BinaryPrediction as Program; - const erProgram = new Program( - program.idl, - erProvider, - ) as Program; - - const admin = (provider.wallet as anchor.Wallet).payer; + const admin = web3.Keypair.generate(); const user = web3.Keypair.generate(); const sessionKeypair = web3.Keypair.generate(); + const mintKp = web3.Keypair.generate(); + const dummyProvider = new anchor.AnchorProvider( + new web3.Connection("http://127.0.0.1:8899"), + new anchor.Wallet(admin), + { commitment: "confirmed" }, + ); + const program = new Program(idl, dummyProvider); + const sessionTokenManager = new SessionTokenManager( + dummyProvider.wallet, + dummyProvider.connection, + ); + + const svm = new MagicSVM(); + const now = BigInt(Math.floor(Date.now() / 1000)); + setUnixTimestamp(svm, now); + svm.addProgramFromFile(program.programId, soPath); + svm.addProgramFromFile(ORACLE_PROGRAM_ID, oracleSoPath); + svm.addProgramFromFile(SESSION_PROGRAM_ID, sessionSoPath); + airdropOrThrow( + svm, + admin.publicKey, + BigInt(10 * web3.LAMPORTS_PER_SOL), + "airdrop admin", + ); + airdropOrThrow( + svm, + user.publicKey, + BigInt(2 * web3.LAMPORTS_PER_SOL), + "airdrop user", + ); + + const validator = new web3.PublicKey(svm.validatorIdentity().toString()); const feed = priceFeed(); const feedId = Array.from(feed.toBytes()); const userBet = betPda(program.programId, user.publicKey); - - let pool: web3.PublicKey; - let mint: web3.PublicKey; - let userAta: web3.PublicKey; - let poolAta: web3.PublicKey; - let poolEata: web3.PublicKey; - let vaultPda: web3.PublicKey; - let vaultEata: web3.PublicKey; - let vaultAta: web3.PublicKey; - let sessionTokenPda: web3.PublicKey; + const mint = mintKp.publicKey; + const userAta = getAssociatedTokenAddressSync(mint, user.publicKey); + const adminAta = getAssociatedTokenAddressSync(mint, admin.publicKey); + const pool = web3.PublicKey.findProgramAddressSync( + [POOL_SEED, mint.toBuffer()], + program.programId, + )[0]; + const poolAta = getAssociatedTokenAddressSync(mint, pool, true); + const poolEata = eata(pool, mint); + const vaultPda = vault(mint); + const vaultEata = eata(vaultPda, mint); + const vaultAta = getAssociatedTokenAddressSync(mint, vaultPda, true); + const sessionTokenPda = web3.PublicKey.findProgramAddressSync( + [ + Buffer.from("session_token_v2"), + program.programId.toBuffer(), + sessionKeypair.publicKey.toBuffer(), + user.publicKey.toBuffer(), + ], + sessionTokenManager.program.programId, + )[0]; it("runs initialize -> bet -> settle -> user withdraw", async () => { - mint = await createMint( - provider.connection, - admin, - admin.publicKey, - null, - 0, - ); - userAta = await createAssociatedTokenAccount( - provider.connection, - admin, - mint, - user.publicKey, + const mintRent = Number( + svm.minimumBalanceForRentExemption(BigInt(MINT_SIZE)), ); - pool = web3.PublicKey.findProgramAddressSync( - [POOL_SEED, mint.toBuffer()], - program.programId, - )[0]; - poolAta = getAssociatedTokenAddressSync(mint, pool, true); - poolEata = eata(pool, mint); - vaultPda = vault(mint); - vaultEata = eata(vaultPda, mint); - vaultAta = getAssociatedTokenAddressSync(mint, vaultPda, true); - - await mintTo(provider.connection, admin, mint, userAta, admin, 1_000n); - const adminAta = await createAssociatedTokenAccount( - provider.connection, - admin, - mint, - admin.publicKey, - ); - await mintTo( - provider.connection, - admin, - mint, - adminAta, - admin, - BigInt(POOL_SEED_AMOUNT.toString()), + sendSvmTx( + svm, + [admin, mintKp], + new web3.Transaction().add( + web3.SystemProgram.createAccount({ + fromPubkey: admin.publicKey, + newAccountPubkey: mint, + space: MINT_SIZE, + lamports: mintRent, + programId: TOKEN_PROGRAM_ID, + }), + createInitializeMint2Instruction(mint, 0, admin.publicKey, null), + ), + "base", + "create mint", ); - const feedAccount = await provider.connection.getAccountInfo( - feed, - "confirmed", - ); - const feedIsDelegated = Boolean( - feedAccount?.owner.equals(DELEGATION_PROGRAM_ID), + sendSvmTx( + svm, + [admin], + new web3.Transaction().add( + createAssociatedTokenAccountInstruction( + admin.publicKey, + userAta, + user.publicKey, + mint, + ), + createAssociatedTokenAccountInstruction( + admin.publicKey, + adminAta, + admin.publicKey, + mint, + ), + ), + "base", + "create ATAs", ); - if (!feedAccount) { - await sendLocalTransaction( - provider.connection, - new anchor.web3.Transaction().add( - initializePriceFeedIx(admin.publicKey, feed), + + sendSvmTx( + svm, + [admin], + new web3.Transaction().add( + createMintToInstruction(mint, userAta, admin.publicKey, 1_000n), + createMintToInstruction( + mint, + adminAta, + admin.publicKey, + BigInt(POOL_SEED_AMOUNT.toString()), ), - admin, - ); - } - - await sendLocalTransaction( - feedIsDelegated ? erProvider.connection : provider.connection, - new anchor.web3.Transaction().add( - updatePriceFeedIx(admin.publicKey, feed, 100), ), - admin, + "base", + "mint tokens", ); - const validator = new web3.PublicKey( - process.env.VALIDATOR ?? "mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev", + sendSvmTx( + svm, + [admin], + new web3.Transaction().add(initializePriceFeedIx(admin.publicKey, feed)), + "base", + "initialize price feed", + ); + sendSvmTx( + svm, + [admin], + new web3.Transaction().add( + updatePriceFeedIx(admin.publicKey, feed, 100, oracleTimestampNs(svm)), + ), + "base", + "update price feed 100", ); const initializeTx = await program.methods @@ -471,7 +481,7 @@ describe("binary-prediction", () => { PAYOUT_BPS, ) .preInstructions([ - web3.ComputeBudgetProgram.setComputeUnitLimit({ units: 1_000_000 }), + web3.ComputeBudgetProgram.setComputeUnitLimit({ units: 1_400_000 }), ]) .accountsPartial({ admin: admin.publicKey, @@ -505,20 +515,18 @@ describe("binary-prediction", () => { { pubkey: validator, isSigner: false, isWritable: false }, ]) .transaction(); - await sendLocalTransaction(provider.connection, initializeTx, admin); + sendSvmTx(svm, [admin], initializeTx, "base", "initialize"); - const poolState = await program.account.pool.fetch(pool); - expect(poolState.betDurationSeconds.toNumber()).to.equal( + const poolState = readPool(svm, pool); + expect(poolState.betDurationSeconds).to.equal( BET_DURATION_SECONDS.toNumber(), ); expect(Buffer.from(poolState.priceFeedId)).to.deep.equal( Buffer.from(feedId), ); - expect(poolState.minStake.toNumber()).to.equal(MIN_STAKE.toNumber()); - expect(poolState.payoutBps.toNumber()).to.equal(PAYOUT_BPS.toNumber()); - expect((await getAccount(provider.connection, poolAta)).amount).to.equal( - 0n, - ); + expect(poolState.minStake).to.equal(MIN_STAKE.toNumber()); + expect(poolState.payoutBps).to.equal(PAYOUT_BPS.toNumber()); + expect(tokenAmount(svm, poolAta, "base")).to.equal(0n); const initializeBetTx = await program.methods .initializeBet() @@ -529,17 +537,15 @@ describe("binary-prediction", () => { systemProgram: web3.SystemProgram.programId, }) .transaction(); - await sendLocalTransaction(provider.connection, initializeBetTx, admin); - - if (!feedIsDelegated) { - await sendLocalTransaction( - provider.connection, - new anchor.web3.Transaction().add( - delegatePriceFeedIx(admin.publicKey, feed), - ), - admin, - ); - } + sendSvmTx(svm, [admin], initializeBetTx, "base", "initialize bet"); + + sendSvmTx( + svm, + [admin], + new web3.Transaction().add(delegatePriceFeedIx(admin.publicKey, feed)), + "base", + "delegate price feed", + ); const delegateBetTx = await program.methods .delegateBet() @@ -552,9 +558,7 @@ describe("binary-prediction", () => { { pubkey: validator, isSigner: false, isWritable: false }, ]) .transaction(); - await sendLocalTransaction(provider.connection, delegateBetTx, admin, [ - user, - ]); + sendSvmTx(svm, [admin, user], delegateBetTx, "base", "delegate bet"); const delegateUserIxs = await delegateSpl( user.publicKey, @@ -567,16 +571,15 @@ describe("binary-prediction", () => { payer: admin.publicKey, }, ); - await sendLocalTransaction( - provider.connection, - new anchor.web3.Transaction().add(...delegateUserIxs), - admin, - [user], + sendSvmTx( + svm, + [admin, user], + new web3.Transaction().add(...delegateUserIxs), + "base", + "delegate user SPL", ); - await sleep(3_000); - - const placeWalletBetTx = await erProgram.methods + const placeWalletBetTx = await program.methods .placeBet({ up: {} }, STAKE) .accountsPartial({ payer: user.publicKey, @@ -591,25 +594,35 @@ describe("binary-prediction", () => { sessionToken: null, }) .transaction(); - await sendLocalTransaction(erProvider.connection, placeWalletBetTx, admin, [ - user, - ]); + sendSvmTx( + svm, + [admin, user], + placeWalletBetTx, + "ephemeral", + "place wallet bet", + ); - let bet = await erProgram.account.bet.fetch(userBet); - expect(bet.openPrice.toNumber()).to.equal(100); - expect(bet.stake.toNumber()).to.equal(STAKE.toNumber()); + let bet = readBet(svm, userBet, "ephemeral"); + expect(bet.openPrice).to.equal(100); + expect(bet.stake).to.equal(STAKE.toNumber()); expect(bet.isOpen).to.equal(true); - await sendLocalTransaction( - erProvider.connection, - new anchor.web3.Transaction().add( - updatePriceFeedIx(admin.publicKey, feed, 110), + sendSvmTx( + svm, + [admin], + new web3.Transaction().add( + updatePriceFeedIx(admin.publicKey, feed, 110, oracleTimestampNs(svm)), ), - admin, + "ephemeral", + "update price feed 110", + ); + setUnixTimestamp( + svm, + svm.getClock().unixTimestamp + + BigInt(BET_DURATION_SECONDS.toNumber() + 1), ); - await sleep(BET_DURATION_MS); - const settleWinTx = await erProgram.methods + const settleWinTx = await program.methods .settle() .accountsPartial({ payer: admin.publicKey, @@ -623,28 +636,15 @@ describe("binary-prediction", () => { tokenProgram: TOKEN_PROGRAM_ID, }) .transaction(); - await sendLocalTransaction(erProvider.connection, settleWinTx, admin); + sendSvmTx(svm, [admin], settleWinTx, "ephemeral", "settle win"); - bet = await erProgram.account.bet.fetch(userBet); + bet = readBet(svm, userBet, "ephemeral"); expect(bet.isOpen).to.equal(false); - const sessionTokenManager = new SessionTokenManager( - provider.wallet, - provider.connection, - ); - sessionTokenPda = web3.PublicKey.findProgramAddressSync( - [ - Buffer.from("session_token_v2"), - program.programId.toBuffer(), - sessionKeypair.publicKey.toBuffer(), - user.publicKey.toBuffer(), - ], - sessionTokenManager.program.programId, - )[0]; const createSessionTx = await sessionTokenManager.program.methods .createSessionV2( true, - new BN(Math.floor(Date.now() / 1000) + 3600), + new BN(Number(svm.getClock().unixTimestamp) + 3600), new BN(0.005 * web3.LAMPORTS_PER_SOL), ) .accounts({ @@ -654,14 +654,18 @@ describe("binary-prediction", () => { authority: user.publicKey, }) .transaction(); - await sendLocalTransaction(provider.connection, createSessionTx, admin, [ - user, - sessionKeypair, - ]); - - await sendLocalTransaction( - erProvider.connection, - new anchor.web3.Transaction().add( + sendSvmTx( + svm, + [admin, user, sessionKeypair], + createSessionTx, + "base", + "create session", + ); + + sendSvmTx( + svm, + [admin, user], + new web3.Transaction().add( createApproveInstruction( userAta, sessionKeypair.publicKey, @@ -669,11 +673,11 @@ describe("binary-prediction", () => { BigInt(STAKE.toString()), ), ), - admin, - [user], + "ephemeral", + "approve session delegate", ); - const placeSessionBetTx = await erProgram.methods + const placeSessionBetTx = await program.methods .placeBet({ down: {} }, STAKE) .accountsPartial({ payer: sessionKeypair.publicKey, @@ -688,23 +692,30 @@ describe("binary-prediction", () => { sessionToken: sessionTokenPda, }) .transaction(); - await sendLocalTransaction( - erProvider.connection, - placeSessionBetTx, - admin, + sendSvmTx( + svm, [sessionKeypair], + placeSessionBetTx, + "ephemeral", + "place session bet", ); - await sendLocalTransaction( - erProvider.connection, - new anchor.web3.Transaction().add( - updatePriceFeedIx(admin.publicKey, feed, 120), + sendSvmTx( + svm, + [admin], + new web3.Transaction().add( + updatePriceFeedIx(admin.publicKey, feed, 120, oracleTimestampNs(svm)), ), - admin, + "ephemeral", + "update price feed 120", + ); + setUnixTimestamp( + svm, + svm.getClock().unixTimestamp + + BigInt(BET_DURATION_SECONDS.toNumber() + 1), ); - await sleep(BET_DURATION_MS); - const settleLossTx = await erProgram.methods + const settleLossTx = await program.methods .settle() .accountsPartial({ payer: admin.publicKey, @@ -718,28 +729,19 @@ describe("binary-prediction", () => { tokenProgram: TOKEN_PROGRAM_ID, }) .transaction(); - await sendLocalTransaction(erProvider.connection, settleLossTx, admin); + sendSvmTx(svm, [admin], settleLossTx, "ephemeral", "settle loss"); - const erUserBalance = (await getAccount(erProvider.connection, userAta)) - .amount; - const erPoolBalance = (await getAccount(erProvider.connection, poolAta)) - .amount; + const erUserBalance = tokenAmount(svm, userAta, "ephemeral"); + const erPoolBalance = tokenAmount(svm, poolAta, "ephemeral"); expect(erUserBalance).to.equal(290n); expect(erPoolBalance).to.equal(10_010n); - const userUndelegateSig = await sendLocalTransaction( - erProvider.connection, - new anchor.web3.Transaction().add(undelegateIx(user.publicKey, mint)), - user, - ); - - await provider.connection.confirmTransaction( - await getCommitmentSignatureWithLogs( - "user undelegate", - userUndelegateSig, - erProvider.connection, - ), - "confirmed", + sendSvmTx( + svm, + [user], + new web3.Transaction().add(undelegateIx(user.publicKey, mint)), + "ephemeral", + "user undelegate", ); const userWithdrawIxs = await withdrawSpl( @@ -750,18 +752,15 @@ describe("binary-prediction", () => { idempotent: false, }, ); - await sendLocalTransaction( - provider.connection, - new anchor.web3.Transaction().add(...userWithdrawIxs), - admin, - [user], + sendSvmTx( + svm, + [admin, user], + new web3.Transaction().add(...userWithdrawIxs), + "base", + "user withdraw", ); - expect((await getAccount(provider.connection, userAta)).amount).to.equal( - 990n, - ); - expect((await getAccount(provider.connection, poolAta)).amount).to.equal( - 0n, - ); + expect(tokenAmount(svm, userAta, "base")).to.equal(990n); + expect(tokenAmount(svm, poolAta, "base")).to.equal(0n); }); }); diff --git a/binary-prediction/anchor/tests/fixtures/dlp.so b/binary-prediction/anchor/tests/fixtures/dlp.so deleted file mode 100755 index 3119b947d48944b7968fe2f7995263339ec00720..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325560 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

Y$fHz^B@_z1e`@ZYgL6G0&;8qFB zxc2Kn?Dik+@-mXB@92Add_COp^&<@+p*}44?;*tW`J^xXF5)E;xUN2}tC!>Y(CvD{ z6C%(De$z4jG2n5&HG5xYX;gndrxo+*IQSIyu|^dyrb~7|_oR$tY>zkkz79!l`EG{s zo%K2K3h6l|<+>e9dj1h~ay~`JaRE`a{Z!Kf75hHg|IgijvxWr&JO05fR)nIEBTdTCS zEm{|}+S1l4KWkgmDDU%}bDo)dp3JEIx4-}UdEcYq&i6U{InP<|x%bk0yD}UP3-?st zxUYnL3HI+eeq_xS*3tU_NA<&VqLU&jV6Fl%@JP?Ef*| zE%5$qG%E^`pg!k_i$USHR7h^w0hJ17qZ%JdCrWunlAJfM@Jf%||E?X<-O=eXg$2fn z<#y03%hzRG9hF1TL;otzz0-Xia!>nq_&)FD+hXmKo-?C(Gm_>DJGI)U97pQJHJZQ61sW6&&mWEJ6i+bee6h}?a1TYK|AXGcLa$tE zpCXzL$QPPqxQcWvrE~;@oc00JRQ>Ey^}^GU0nbMafR7CKI^%C}rSFX6{r4>3t#HKz z;C=+oqg?7-El>a9q}Ad+ADxdn#L`FUJ{V2sdI$~Tn=3BHSEp0%mu9%f8y|xgEGO*j zx55?E$I~<0T`219a8jB|mpl)QdX4=Dcb}28K=dCj^&B*oYZ$|aYrOFHCppFaM*1!~ z4=9&s_!D&-Z!L3g_@m(1%crZ2OEzF74U`ztEv z6+Tl0!1WQsM|TPJ5{4Djq+n8}+V?n!*%#&f1zdSPx44fnJ^=Y)D32bcPsOX&3p)-UtF>k`~Xqb^b^5lMKgB5m0p8ULwQA?~M1rPaLoDy60>;pTPYw(Y{pr_dAZ2 z^BYS&4M5uIyN$G;kTx9x0Ym4H=sk3pZWH9w)N@vJ{u%Wg4egK7cT8GVD|wN;HbFgN zksN^ZVE%Ewjb1liD(y>emRH(`L%l=|rg$=vKO8ZEqu*s!dY^W>^hf6=>AuQVNH6A} z)_Ga=(jA3|`+y^&rET4#y*WB`$KQH_weWCSghW&Zb zuBkmxd1u%s36EPLpGV*q>Jz3Hzk}NYSJY#?rm1#<^L{j2L5}V!)D`DbR()ylqbtZa z_RPmbfZ4Mi71yU$9Vf0>f0f#LCnDTi*E?O1k9gk^DHiep;U2?@_kKXS zzhn)sQ26URDjuJZ_e8_f*H3aEKi+$ny~1CY@OMFKhq|_k_bOhH+AgjxLvAe7IlmP% zWx>(?3F@!a_J_FJCdLCOCAYjW|d^T9S5J)7$Lo) z`paG=>l+!(7B$Y%ejVL^K>z4+g+n&{=sI_y@FvdFd9IA<3F`S2*x(@jrSJA;K{#mW zIbjSJk~OkR^>e7_$b6hW?EFONZ(7v9{Bdw*t_W}1Oqmawe@>e@UC8PF+%DDbs2{;| z2BJLGHE7R~=}_Oh#Qyyx2;q>*(pI=;A+Hs|8WoUEEV7MrB+rJ@c?*8h_Xsh3wBI!m zet_8ufZ=W2E>Jsnf$IpGm(qH1KkO?Hfjk<{IGJDCpWUeXK`bZyiRrVRhoJCW;;qaO zz8c4{UcL`EOrrIIi3F2q{u@l%EADgAJd4T$!`T7#MCQtPh$O$yH(a5<||(R6NYl2{V|NE=S8b~+0R(R7w=zH=a$jE-Y<2F z^jh8fMfgYeN7$0FKf}3{0)upLz)Ng}#4C{Q;FX#y|WYm2Y2y^6eLLIF};&| z(NZFsZ}eR5R*VF4g!`;GZ=rs8klpI1qJ*)YpzYos*_H0XV%I8VkNWtw^p zfu18h=vpKkW?z;st~5`~NFF1Y;=_3_6yFHlSH=DW6R@jDIE$_$re)3*0{Y%}cAng~ zqIFF4e!_S;Zn@y;1oRNKr|&m)%6!G#%lx^F*m-!A(0SktTc(JY)(0e~bLm@Q{epJ@ z50wjN(e&;rlUxDiEBbYHJ*@6SQol{_#hW&3lJJ1_vKM}#KdhHsd^$i;kD7UEzI#5;k5gfdQKOX*%Z+&s{FK z!**B5{Qnc)15fo#_eF60Fd;3tkB`^=c2iu@9RvY@6AP#?(YJznVkhn9IHjwiU|gZDkgS;C=ne=50-Se~oLegHo#C#6uHYMxm-OG>c(v0S41Akrh#f-d5@$NC}n2SD#Y9irav$#$*w&obO;MnBk>sdT}1r`)fAct9L| zA3wGy6Z{{HuKVPi#iAnp$e{JK(hsaZ><0tbseqyUXTbUwnfg(BE*=>T zrN3oXhv1fDoxG+&zkue@t@4Wd zOeXxK`apevB8;YU+pS2F@rvtUl+gVx`py8Zr%jM!|B2UayOlpxpJfdo1hX+BE<(>S z3(4?DTp_*agVvJ=m&p0(R*(s~YQM4bdoth*N17-Px-TECA65R;zHkbG;oyFSHM~75 zJ3tEYVy6Oz>VfWif0;h~6Q1|^I{G#azwe{MZ<*O4;%TwTD?N`)@y)i)68WL`C855f z!TJ>G#=-&LCb1Fb9v3=aWdkXdjE_`+L$mggdIA zFRPcILcQSpy185x7WhQ>*dNF15BffW{y??2{m`C8f1vuWFN^1KtbdUzY=;;+l#^Eq zD&Qje3DQHA6l#~KrzW^*QdjDq1LzS%H1AYhme#0M#~?fL4RLXK94}T()@|? zw;wYAX~z1wk=4&M2rpj!+=1aJ{X@M&6>BN$fWKJoI1_{NQ2j&Nr2@tKys-S~z6{MP z@xGUk2cu5cT>nbb;My#e?USFh06pLhljAd0-ZJ#pf|hxYF~qxW2`7N5??~FgQ-9Kw4V@9fIk7z+2$l zHkv&XJH+*nUtD7S+jz;?E-@Xm?Ot(?JKBGiNqd@y1myOFaRn+G7@P-VI;q_EHVAQa z9g^XMiUKp+<`Lo2`Xm~@D*v?E(qGvcc_nw4E~pY%m&*Cpp-ZJb)(gs4OpqBklp*E3 zUa1~QZ!y_8ui6j3Wqrwp8M;aO51gUS9h;K(hUImmY6oSY7icJ4sz;g!9GoD}on!xK zttYAvI$uoj(fo+^Rb0l;#QcEfA@sZ(jxSh0U)IjnVEf3I>7(@qwKqO*!*I}8=TXmq zsIxj%`J=C8c<$k+}-k|&0RNvIk2|WiV z(R1r}OZTWJekh-4yMVlOfEBv`F8toJ8wvdR#U-Zy#gY%nW@}J+Mcdh2X`iOb^$D6c zq4I&LfGZXyJ(o)RL#P+%g!YNC{?J74%ikcG{L}Nq^xQw~>rsETtqx;>`stAEfcjr5 zC+x4GNkpF`!RI|O%D^o21^No!(LTdT&kM@6@SY3g{EE_-AzB5b^ZXv6hkM|Aq3ECH zA1(LMKA`e{Rj<_72)Y8jf&NUkt2u%L&<@b#s`3q}c|=;hl#{-uT_L$ljc3@tFuhcc z*ltDsl)om(uZi}ccG$1dxej`sqoqTpo9d&bQ>L@!KAA7vKOlqUbnp~evC(}>RbR3E z;Oab9-=xR%+*+9$cj&!IE%(Usq5Wh!uakX@44Cww<$x@Im+_P=XQ(GEzj)){3vlp~ z`q>IdzX|Se-HO*OPTBr&Jbjprr+5c3UU-i{crCL!z!vHap7WXqS9<>L%i4Q8yf=X6 zFBwkN|C$&I)Cc^-`oQ#|#$r1%;Y#&I^Lo0Ei2XI%(|l*6s{cbuPfk+pj^;hNinB;h zARbZwaNY+EjiY6!OU2tWU5I1t{TRuV@0Pp{A;?}S{Zsz;+nl02zN{RYpd7H>iE$k= zEAkD&V7@bKxVr-7sq}*MB(PeD4LT>4mLWN?MP6~5P38-f@X#XVG^L%WDLdX2=w>!nY2hPVZ zCOZFy<+N2W#wwq~@xqnn1r%QWe`I)JMGY+7Ao4Z2uU}5S$?- zL+zgKH=_NBrM=QP@^!y+i1YeEOFFT9@~|FM{eGQt!6rrXj8h;z|9>eLW4VmQ za+xV>g1)1N^7pLz6vy5M_f1JZ$bUeUFZ#bdj(@9tcN}|q&olaO{0jSVapI@vld*q- zDiiGjuhDd7$b4>v{#CRK*D*#pi1LB)dT6t>p9@8VoV8MN1q6cOY=u8~E*8hhE$6@= zWvCykQto$7miv*^KB>LZ{Tv*};WpPu+8P-E=~ulm|s8?*l+H44Ugas=6{k7 zOh5JG2LPb!fq9p_uVrn&B3&vU^gSC&H?0S8-h<&${;Xiw{Zs@Ht* zhwcv*f+ZOEDL6~TOZ^`9iMT6|eLy+QYrB~@OrUTcNR{av?G#xyH zsoEm1J5~5!mEQeM`5o7U>45ZW>6jqH|H^c%R_RzNue1(Be~^6bJJ=%qv!uIIApc(Y zS+C;3^#YcAmdane_GQg~!uAF6LQrCTA+C@wG}s3Oz*8Hh-(R=)MPEzd%@-5nt z(!<&C9bVCnsN5|2Z$dnz_p@PLC)dQG0dHNQM7p+);ruEKVWSw#KA z8OTxNNU@BkN~Lq>nX-VepF{nh?R+OXeqcGo^jl^)S`JX}|o zBHzZ1WG4IEL(Ny`x#n_oF`(NxQg&w<<9s^@J#Ps<8em^bB zLFw85MnA2E&)Q8?ub~`-UhkLXh5fYfr`m5+uPyyFmRpuecf5Yu8gD|qj_>|0YwATqWXDjd$;V9y-Uw!S>>m| zeS&X^&>%c))L>fFcZ=wKVl@8HdrrtbrI&xNi25xYXMSkOcf9A|GcD`#f9E;)PRJ*n zpZ+e_>=qAUw2=H&JkdK;E}SCc=_=Ce=Hv#d=Nh$CI27G$8R7X zG+)8_{tVDxdY%>coAC)S8n1EQ52_NKr_gyfTIXVa4NXm~UrT}zm@;&(C9qox&>e=0 zR}-#u-y(XBLdog;Otw1rLeHttds=2Y-yad_nWe&oC`J5`PAz`bUj;VD+==+XJ;vXp zu6%#}39!TPpHTUpwirn=UJnu@fJwv1@p^{5&bBWyro&Ha=eUm{(g*porVrQqR;KX} z_e(wm4}q`@57$%J)n>rH2ZoF3LKCQmfWhE>0cj6Ez|ejAz#4fU7Uy^Hc8KVAR1QGc z(43>^;xZg^V5fCE&cg<*^{C=QJwa0e#bLsg)-|-hPW43R{$|7Tdmlht^!x1tev|pVr#A1I3%Mb6@w6cBO zD?#t+zA)P!pz;J=uXXdu>ZpHqWcBW_`at7R)`0t*J3>$FC2RRmvtVA^Ad_T z&>`y)=Q$?)dtO~B9eB(O#5u9JwgxIC4?Wapa<$t@L`eqjG|5{T$LSEyLpquye< zVSk3#Y!m;+`Zw%1O<*i{yi)&9`?0uQ#&APeSYYTre+a@ulcoCOgA3;hruU}M`)=qw zRnRp~lo$3hqTH0;;W`Gxr|}@<7r}^qVoWLd&%%TtgL^diUIGk<`bA=LzwvVEj-H>V z@5vs_SL+h6M*kU3+=YX1PZk&P9J7eGUUJqZdByvuC_fD6tI*K6O8b$q`L8?|ycO~( z>Z49LH}v4gI11Q~t33{R3o(&Oc;=9pw{#iu*g5=^%W+4MU*!6k|AO=>99- zKgMwB{vf3fi`j&K&#NoNyQe_j_oVxrG+yy>*ZRJ442R}T*5@x!PUnVlRk`I-{T6~H zm?rpV!aw@nPVTV)$T!Gq+Aeve_ImIJRbJHYlzVy}jPx(?O!Emk7rPM)91NW&$(Bh!#86PiaoG+unaRiMhcZieDLy;cR`M_xZr0S8r2S(2k(EHx8y}|#{eh25-s3#lq zFcz2xL;BGk_pfX)VWazE_+A<6C*ZpGkV;pnsz^P*&>v>V3ZU_^ROxRvejFAIJ-4p= za~m6#{*gcWo-L-w4(VyRPnL5K_Pf3S+2Q1gBE2}@jinFtf${@xuzojA644q|fAaJ! zuP2Bf^b?Is+!=-Ea5E^qbA;U5Zwi6Qx z%glCsI)e3q`NeB=9SLj#(>a<@BLEnBpB{#XX756IrF~9vxA6=qr|&83RpmqNZlhn? zV>wz(Bzqy{AA5U97yLsBjRV^jO8Hh0qC8ENAGPmk(fXDNRNWuAL<8mKlFx;?jMqe4 z&Ty%#@v2~IcY3*|8waEHA~THbq!2>Pa2}5VNALS$|BLCO=VPM!rSgyVn1gt7OmRFp z4iWL>nDuya(;`2h^c3@>y+?EjI0DlI`M~s+W(YKBK7{VI^@4Iw?ywzWK4>11rtIlH z80Hi6L+8pcJZ-(8;zPN%UQlvO7tVvRKJdh2mYOf)J}O4F6|ShSq0R6I42ENEkJ;(x z$ohnI7J_|-UDeY}bPf3iIe3XaXGQ%H^=p*Bcydusq|d7VK=-1a;>blk#gUs3KZSol zr61daR!^4l!1R`4=D}F^8MJy*>7jWe>09aP(q9_&cPc&6dQ$SE>d7M4>Pg8l-&jxd zJUh;#Mg724)Q{>P@EkDKqs#D!dcpDKNw^{PEtxDaPsN`ZwiATJS`VV0#!H9s-kU4h zlZuDNcTAV4r#Ny^PjTd;p5n+&h??R(0Fj}d9aT@WWcqNOCF%(W0Weu7%PXE=(&}lZ zl$WlOSKP0`e3UBp^qd3j|DrwShvazPPHRspJd|toq~ugjAyx0VUx!Jg^LZFP&Lil( zQCVI9FqB^$$FW|m^@808*=o8ARUq*e3nZ8vdr+TOTAwC~L{kQ`3gXViJcdLE% zIaqsej!KPl6b`Nj&{&@@f)kG?9h@!|mC08fRO=d1UeYW49olvWx3U%ii%)e zPF+2?D+|>Hb5Yn>TU8b+57M=?JkSsTCsnoO!Dchm*kFcsnA<~*wdM5%W=`tq&aOOpP2 z&3nhTzqtLP%$p(yPQ>sbS2dw>NDM+%ZGA&sV;KfnpIcTJgs4jcWo3}FhIlR@{;G=F zxHi?*p)#4tqrz>d3)I%{5M{hOP*)YGZ7^j)dd(A7m{pMe#WEEpS#Jqf)CJ0ef$i17 z^&$9Cw+RcSpy1@j9T1M$RMk*v=9y5gHNo13uj#kAE(C$rtcIGD0W6FL@b87dqOYoL z2-ejGs?A_sU8t_WgcJqqg5_poEfi;2CFa3IU8<=nH%~-G$=w2#Sf5+hSX&#c%WVqP z?aU2V2O4&S>T0qZLZRwL8T^%e#75ZO_03!=Dgs|EE z7h|Zet}3I}@m~)XdV~gS+@KG+<#km%{>!B!({7DqS7TM#P82{Pl?9+e%1!?n!TQGP zhJu2|+NQcd*fY;>LSGW7HT`Sq>ip3BsvCn_YJ<&Ts622E%31*}4f?vO+At{Lf2_EW ziV*a0*vny2L&Db8LZr|#wu9oEb-{35upSyv06U}t({^-!haK&SruV;@6s4@93*6pN z7YydsLUaAEXjUx0aUu!qu2RFo|88z-0^wXJ)4CSO($NJPEUyUWR0gXmDjUodE6n;} z^$x;pGw@63unbC3!H$Ox8%97JooHl@@1;7pL;5&zh4k_j&c1fQv9u%( zxhBw1R%t?yTeh*8|%)%3>6e0c)$+I^h7ydSYcv*De()A_9A?8 zKhZQTNWJjreAWh=q9IxfZbPWSgl1rFZ)phDLkka-i{=kwMP;x$3+_-&b5H){Gtr&^L z09jjZ2F%@6LIBe>oEDgY@^a{V>S4^R2}3Igiey@*N2S{vtEyop0tt;y=VFtz*spAw zu8DbEc6rr~9c7`KnyQ9uDX0s=h*>U2=GfdYTMgC0V14%P0Cds2vv)*)hqKEXb;EXjox`<#*DDVce0wSckwv@Sv(_RxMM&>FJ{%TqD&{MBdp)ZI9w`if%u>~Tu zaG(XU6t09BVjaxQRN);Zhzu?V_v8L)cjkd1%iZNP0zfQa#C*AqGsYW4-$)WahMI) z2X{3FK{KGGt;HqD=Bk=t`NqbEXQ$44$vb<|0n;Pfo+`cITF{JYsEgIm++aA~2_3b# zQWW#FNN~=G4TVxCnubW#(Gr#N0&MVVoZnF+rXL}g>xxwd^Z@m+o{6qw{MZYb^I%d6 z{Vq-ls%k4tKdz-v2`O@^N)vsf8|c5azqS1IL&xo@yGfK?9K2s3fiTwJkf%VSu4 z6$k5Ts$eY>s$CtdtqPXchRk}XzW{iu4+qMEE1@%h;#|2KR#~E#5PhFNy6W0d9fHOM zDGi5U#54WgyoHMvFIk%JTNc<}Rvz4;7a=SrYpWWnM4^{csiCIH+Kral0@LzS*cX_j zCR8HUR!%`tM-cTL)l;$&?TC6fsXPm!4euz|DjXBl4Av3lW^ruk6zfKzj|swJ4mHW@ z02AC0g6WQ>F;GI|H59XW^-4=C*1MI)hALbRmE+p`Ol(%r63og#JydHwtZhJBKr_r8 zpb@YRhjnB?_A?DFlyU4ht16;7jM}Rfgu?_mZIo-ySQxPq(i0_?^|DVd6@5A+j+#3R zEV7}-vU-$2={9Z~Sh|B~(sE+`33lXSumMGlrOVpkP&=uF1yOYsbXlUW#-J%%vIGiX zdV+%xs5va8DUnJhhoqyjAPTw~$HeMDO&Hb@(C5{&&p;h4qKz)vuXjvLs zMreRUl@3(npx***IU0R|xgi9-nTgg_wJ=yh1Pu!yKf&Eqp+@W%&=xFn%rk=LW3K}3 zQ09cfPz&Fq5@``oBH~mng#y(YRUDE*TUfnPDo+75AWX0-SJ||7s1CL~$K15DDjdcH zk}M}qgi$+Kr&(%=M~+IM3R`v_GPY2|3ux=Gb72OMr zPNX4P+{~17BJB7|m88@X!YZM(o3Llu5^cwcW^C(VD1?NFA!02|mqfRY!ZT?W6_rLM ztEvN4H7MRn{an;)t;iP6;5UcDTf%E-#&@!uEw5ISbuM28Y8m80N>(&FOUBmLg=$U~ z+iAjUEPl#@WhRYHT=cWB4~Cs?scf~-pTulpT~Rz+C}hl1sqDPLqh-SwZYdZ>L<&|& zbMl%~)@?91ty#6@4A=zD*<7;OJTp((88{y@P7732m7R>UJyR74wpqw9Mq@y9*pZet z)>Rvo4GrP?g52C1^sya%h0hThP1le_3Kux*|2F%PE9!^H3&Pv zu)kUgtD%ZUn6W{cYK{6(V_jJg%Bwv1e-@viifhe=)rku7e|MKg?K#C}#{Ywt4Wj z|MnbN`Z88c_io-@}o zZ~pNk3$k-^V{1iWA6+@FJbBgXHET~PI`tdtPuoy@`Wc%xZ#i>o$ysO16=g+b)%iPX zYD3{&u-VnPyQ#V50xZ}ds_1`buR3}oN7S&oM~I<+0}65{{M!_&3F6Kk+%OCVYa44| znhvvc*ua6EJ*j=Ti66wf34T;fxT|XVVPgn3D4`QK{V==0sRvBE8swb@wW}vI2(}Ml z)dtINaXS*Wtd%oyyO1o^?ZJk|Fx=cypx?X8@&4bveE}PoY9j$wJ-Cwq17&QdV@D&* zoN9v&c#qGzU14z)*e*H*-0V=&U^y++VSf$+AVMbr+K`|?%c1w&UKiR4n!PSL!mG(uW?<7k>Grz8oNBx6U?c|fep5r>Z;nECc2vkvn8le z$`pnIi%;B@q`pMle}eT0%vOS+OeDsAjRxHA!h7=a?&bx-I+)r8cjAq$##;O(mNpos zC3U+RL$I?LY%YWCv|zc25N^G~>ZJ~}HYjHku%xMPiS4(Dj0+iTpw`!C!yE{1VL_fC z6Od0>Fk#vtkeWbkixAgCXpMM>8VL5QLMRZ*QiBPdkXDuCU(BG_%)61$tdK`OLG5_7*&sxyprN){}~y|i_;aO+U{TMa6E zvQXJ#(Abr717MBN)UBwWVwMU4tXxgXxvoC;J1PVhYw(uS8K9UOK`+-v)iU;LJ?IuJ zOR6bqv?&sLwN8#+>+rUw`n?)-X)E3!KN~b?liUql+gM!<5p7ah6bt!u)Sopx+9M+P_ha&Cs@B)s7^ijISq7WJ!lZ!2StadM=O=)tOv!xph0cc z;jJ~PEL&pA66@~Pgm%ED@5UXc2@P3SD<=0)`5RF|wpdj|=t6-hRY~sE%Kkx4ITz3Y z7wJH_E(^f6D0VHO-N8E8{cMU&2@x+2S zw;|)K3pO;?;ifx`8&WgHRxoa1;r>EhH7I)p4huoJNmCAYiff_dV-cy_$VX3`pNRZFSZzQtA5GogvIK78=9b5_=5e}L!8vd%wL{x@Ik-)=qd z+Q*-q^k)Yg?zf%zt(=r^zvcMcmywqHZo|y?|MBv#-LE^JeXZ*kPaeB>(S43NS%2OD zXO3*&%xOR8ieEoncjv49SL9}lf3En=o#EP3Ury`))^BQeJu;_j$8!f~EzOvA_ODMq zVeICSvYz@aFHZXKli)|5C%63T`PU<_|E>1pmp**G^k17?u;fx_kucResv8!T2XR>m zU3svg1x^qIDnfV?=jfc5=RgnC5dS_W*j3fSCR*H^pyfH?>O^+1y`xqkP@<=;EGgZz z?v&Ei>rPp>c~hbkefR9wri=d0*)b20rkHNwWBo>)yB4 zOkUx5dGa5h`Rqk}ZJF`2=Wcs`(ih0&>brKqk@p2(a@&?X&$*}ndhL;q1wZz}eFv|9aMyPNM~(>o`PCoH zY?^V$U-levigT4Uo0%2szV4AF^FOQbJyQJnYQf7-dhS&d=8i{?RXfJ$dfxHx6I+`DVelyfFL6 zFWtHGrjF0g6@2Ob?HA6fe(?7{`n+85KVK^yQ?lcMdw%nIwct7b^V2tP8h+>RAAa5- zxH~fPz0QM=J(l{#Hw9mP>Nl%hrQ5HV{l%q%H+i2~>>qjZg_FLxM(~z7Kf2+X%QoC{ z_7^t`e(Ium;aN?eyw&i<9fGg#ey{t^r{22n`Y-MkeDj43tuL3}KYafe4+?(y_Ri~X z3a|d*vtK+acxOi1q2VF-Rd0Rqq~OQ%@`77tcm3j%FP;_r;NCrb&%JZfw%n63m*G39X_rEeYID)5b(QJS4 z@L!t`I>cK!4CB(2n}?g1owV;bW2&(IK}PZmdtSP=$7jqE96t9idtO?2(e<0e*OcI0 zaFIVhaIf!Izo`+Y84Y92jN2y7nY;1MRzsfCo%`9dujJib_P4u@)xv-0!QN|p!8f~} zGS&*P z+iP=e)q+oL`tY`I-&1q<$+iZ;m+idp(LK#6ADwIarr@T`H(Ks`ck`o7wo3*75d4SIj&DD8=h`>lw%sdu z_BG3XzxXG&?>}ODQ1H2Tw%=2C+jIY%Xn$1jOHcoK^QJ?uKappDQt&$~XM8m2??+nK z+n*J@zxmu>-~N*M;tuAcs}J1!>Njuytk3?w;Pln^9$3GA_mBT-|5)(kI|?8F@VW=CPI4R(yx`KU z_oaWB)n_{7i)ZKM-SFr4?oGdaxns1rwfLRUcii>a?dgBo;+P-I@uuqfPcS`s z<_Ra5OY`D%&(m=XfbLtY2NL(+a2qZf2qq4n3@wL$gRpUl@09Ae+-4M>oMuFBX*Z0w z{{gQ+zioNk^vhGKM-LN_jB~u(Ufc+;s{yiJ6c5d0JzGAi7@#(_C$DWJU$xz6Q> z?o2-}pw*$fZ~zV*!&qqs8q9)JSY^O+0cJq3c!ImvusB<>V)_bk-UrXn;ISUM7Y%23 z@D6%`nJVS@LrLI{=pNXYfg?e1V8^`B<4Ii*EoZnbp9}K}PzrCe*XzymF7z()F7__* zF7@Vnecokx-n_iLg?Wqe7UwO=Tbh@j=gV8R(7P~i;lhQB7A{`6WZ}|<`3rpumo4%x z%3HJ$j@&O^v}DoJMfr<-ih(!8Y$mo8emcwDaMz?DXl&E~K&Pj!v5k9DTo z#@WZaj+r{a1|NR6A3J8MYnnUDHp_OtbEo}b$M@||+F!Q+(*DZm-=zH3{yY0?wgK1M z_CGlX?H`y!&SCqf&d+S4=Po~S!^Z2s``tVDTz%6mcR%u@%fFwLoU(MqiD&-3@0ZRA znM?D}+`9LB4?XrUOUu{?OyHP>GM_%lC!_PL+` z_T0yxm@+llojPj5q@~LWI`8j)H6_38hR)>FM_SArzRD-=cY7{I{C!;Ny}ZSNv9{-TylF=kIxvJ znzS}`n&Xsp`Hry=>$2q3eM^r`UhbH-#g?{k%q6$)XdD%J_Nw(|V=nckPfWf3cGtzH z-1ftQ%b&Y=S@L}6xk+r@Egu$$>R!9b8a1WU;5j5sdxWr-=Z|z zw4||4_r7bcbnbMGaik=tU+<56nzZlH^{1pXoDlhEYP~z0vG#%qqbH2snsRL9ihZXz zE;~6b`+q@>7ij(43n-4@PvOm^D$6=sbqaM||t&5!){c&BaOK;&QZ);m+3_DjaC zUcVyplM|9`&MmGfi|zZyE^wBQJ~K7)kZ;r$2rD0nw+Icqn)<2 z(M})a*W+H`w4by<1DJzNT&J8)MVHvHr6oIk_jDyRGz{ORv4|h8yqy{*Qiq__-H; z_U60rxhbb;0Qm*WSFAgA+ojim<)c6P@pC_W>E(CdGosC7Iku1U%7d5QaQk;&c}SXB@A+;ePOP_=UILeQ#*YxHWJVF>>i6Pdkx0$1 zH{TkYRU4W*t@Of+9(wq+A3r&9(s5a9PuZ{$8_7j`A3OZYZ(bkzpMTWVU*FJp%bc9t z0}nrO==qm__ttGj;jQi7>$6^Z`B$&JG_qmi+2YHEtZ?MQamp<5m8bU8*P*~VtLHY86;-kNMrnl!rDxyq3ZJ=(aWw9y65 zX|qes8t3`5BfYMRyBw2~F87N8YFf&dEum z9FYgXDmO3kvHJu^n&U*5&wae>;*oKg?%Z+Nj_GOB(<0Y6FTQQ!sEpQ|UAeC1plF#X zk*8-gjE?+v^1gIe~=QNVhxkM#geSYLd^r);&6@VbpPsvz=$9L@vpk znmRFMy)$xE(gXL7p5)BC%en8hImx44uE>4q`~Hz^Gv_CP?X}Lx(~c>Qv@y|M9Cux| z!vRY%NjiF#SsRiQy`yc)tKdd=JwDVFXSykOYjO7l?v}&$B_7!*ufmxH9y-OnYlv_= zZ0O=x1Va^00_9;wZ%)pNH2D*D%j@V7D%z`)Hh5T6&IDrj0VT^(PWXha{swvM7Dhn< z;^iopI8EaQm*3cSOouUkl9@Hy^k;pzz&w7wx8wNGef|aZ&VdETeKwG7d|@vA?udWs z=eD<(+ESY~{sUtJ%W^Z{Ugn+p_NjkA?(GeQi|;z)xWL<+hRzRc-WYm&^LL(v zFJ8PHI5YUmyUsLTo4(Z;xU1x$cc!2H{=09V(>EA6*EBvjcgVJPn-PXb(X(NiVu$~1 zMWehK>9!!~o84}6&a@pj<(yFkDJiy0r!56WQ`hm1{jM_Q^K8eHje9PCMwa?Kr!`HVWAV4r~+b6JbyW*ATYbmh4EiA7@(*en*2(4+IaP zI$WUP$@WnqR7isj0uembz6^+BnPw}pIpMCL&E~e9ZnGzkc5k=YQ${7PvrmEWY_|Nd zHi*$R$~G&-w!>*lf<)PmwL2Z@&N1*a$(Ck=m(w_>I;Po=vlrTJ$!?o{REiB+m#xu0 z!?xSuw5QmT9KVMIKx&gQM7ujF)o$}<-(RR~mPx65Uc!FkRx3@cNV{FM7 znZy2Ep<(;!bi;A2&2Jh>Rd&N^OEvAqcIbv7-N)Kpwp;C!$B(hiaUVO%W?SI!Le3zG zFcDb=C2zNnhJ5AP7D4vyb{FJ(zTIv60E^8A58I3DH#*mj%5(0qElryTIZbusLAc4b6^>ahoBKrDX#3(6C^M(sR_d@jp;&C+u{qos zqHJY7j7@g9R@tD4P#qjj$lO@_7B^;c5|*@-gRcA)Qk(?WDQF9h&lhDB#J^6P%Sf@= z|6xmYI&Ezbztd)>dXhxlCD|Q0PzCT>5D4jviI6l1uNjChEAvrrO&T$&@twC~~e3F{9o|fwr?|egC4FA-tYYZ-*9>+aC zLmbaN%4fuJzchh+l#}}qq(^@35Z*fra*Fp#kWW=%&a%k&Tjcmw0CN8f$TO9Dy1-+( z!pNtN%hk>^!!rhi}>bF%s9psd^ z$$3r#zoCQ%^GU|)ei($5W-h0^S>^Q*K0e2cW(kB(fD;1HxkH4CmF`XIPo3>@_6A-0eQUerzViEPZ0h?3DO_1$gO%)0_E>j z>9ooxf;=~l{4S7Dc@Be;QeS3mC%sFdaKR+9A5!+@t}+Cb1g3kAxES3z(tn3?*QvNy z*<0JqO_q8*obQbG9oUCc`CHv5fqUx5t#TYnCdlZG-$6Lkx1I(v^(qogz5(P^U)J`0 zC$u-{K7_H#?*ciM)ewYFZ2=vo`E*_mtX|_G!pQ-qxb}gB#)fK;&lE1CjQUwFmv3H# z_uzti`VGlB%8Xv-jMh0?UJXoP;`mDGe;nl2{^{4iq|@l{bzm$XGKB?B<0JyO?ggg4 z7RB8E8(>d$g!cae26c>@Pk^oI{}hYW+HQ9|U{S9Sm;|FpWuHC;V%{ z{eP04LGVv=2aJ!0_f_fdJVB5Dr;OhO9)$rb^JieHKWn*?{YPL=I)}2cFiEAc3YnK5 zub;W#p85=Q{|#W$L*y+iyjoyti)eo_@C^K+%oD(*mnh=;^A6aP{)EAv;d|+$26a&+kjEOA`K1ZumnD$5CXip5Kz>yM`PB*J*Cdc%n?QbD0{IOIp)K7b2-fg-h+7rrELkgUjYBmSmpV^1wyLJ&jT5? zYpeTGkk3=@Ph6$1!|z)i>;KRVWK|fee7;3KU@1qBMcxD9P+4G_DIBXj+aiAx+*6(5 zmE5PVaT+xQAir>JY@K9XKct=#D<|tb%ql+!;m}-)%V{oPm3M-Bl23r}H$(hrP>(3B zm6mw@AUEM3nmUVo9WadG(o)4Ibd-vDxI{}>0&6RqXd@o}s^&;4LRD$g0G z>g$wDVCs*`Aqgf12F5DSgQ}#pja9x7S$y|Q2FgYeKK+E*A*_UMLsBD$ii&|**JMOU=< z&XwUOO4p#pKb4;~Ummr;fnkxHt|&_f|JL|WhUV0bdUATvD&PtD1I+Qzp2x|b#&lH~7$ds>I#Is}3e#wu@0Aa70}-;+T8 z6OhM?_cM@FzhR9RK1(0npS8+y{Sz;pIA4q>9|hsWlaEdyACo{{2l81E2O4X7@I9*3 z*IDJ4f_$lTuDRa<@_6~h)2K7zxQ9EOannE6BF{X_X{aqg1J`vKDjci)evnZ)SmobK zAb%i%{GkN$hZD$CA)VAdtnp$wlRjAGg$d*b6NLX@0(otMa9#&_ymELWf&9$`@pGqLFwB*+s z4t{4mUifE2dg9410y*jVzO!Tf7-s1vVA_X*V2?5f!QLw89I>pQ(DR>I_$Z@(ovtXO z`E;+PzeTz89DUz)3NY0n+H?2KY`mYv+*|!y^MPTZ$p-gOJer9&9(mxFIGXlb<<;LQ zuiMUzjWZ`C#n$Im`F)T9>JzN;he1wd-w5I0I6>waU>Xks5Ea$yAjqjtLARd+Tjydy zR$qnZ#pdhiejm(ltn-Hc<@$VS1Gu-A(?($HeCcdp$_s|K1pHg;H3Iff3{mq{;av{y zX^o1WxO>mGSowYo_P7>Da|igN{e3J$>ffz$oaa;7_$_*hZQKL@&{*YX15;YIm&ele zJtz<=lb?Z{#&z`n2VmNxK<4^X2>M0ykZZu6!m-M)wa5+l4xn`(e?0IE3|JY@33`2T z`^Dg%@_=4W1*W!7`x#XKG#2z+D8APMrz0b{^=te_DI?Xh=W6Mn^n}_E z>1@w6(w^2`BQkg`ol5kzE?9=+p(Km0lr48a`5LR_9fh)#`$kI(tgmsf3qIH)(?R(` zJ*MB%rTmL)+IVtb0{Q9$@<0Ol`3dAWZ;BT$>PI~JeF@|^{={?tasv4u6UhIbKyH+Y zH+z(d$35V^HSkhi@diPo9^Tyv&mOmwHZ(WD%WSIQrSCOm;g(WEydQuh@GN$z_znI_ z@%}VF@p^m#*-Kd`G2_!$b4%qJUEI*2wbGG9iOlcLz(w3r66%(o&Te zh`$1&f_Hbpt7YK@mhh?t;TnbbVlb;r4;5ciE}TO8Yv5U7nGnoOO}G^L4yD-C?}Zr` ztA;`L?TmX>Lm+#fYOusbjJ;~{LiX*9yBNDw10?s|jQbdyszW39{WGEB!4S94(m6aw z=YGavY$#yJzp-3rKjT5h-W9t0BF4>yy1gG8AQ*~oka5u_-9BAyjFI~i#u3K7jE76~ z@C+O{z)*Nz#y#6~`+mma!7_{g)*ZTgL-ofLekNm2mF~WfahP!{N9W)cyOhBLqYF?c1aCAm@v8dtxc9#(m$_?T7Bsx#T{bTMy_w z(5bWkdpd_7(7EzKor@3Z-1?Bty|~~7L+LO4zRsDC=-lqY-*X^4b_y0<_A7X6$ zTDLD@-0@r8e(-lX`(D*K^EI9Qzt_3{b)DUB=lCk-&?!K6Dn6d9Y-F=vGJLB*lb@v^Ndl>f)>h6ab5ByoTPydU~ znSa%}h;b!j^L^cYG2<}f)(>>|-HiJgdxv!Qe#Rvq>GrLRGe6etD;XF6L${AG?qJ;d zPu;!eUpn^>>uh|Yvxo5jWA~@JdoSbuFLe9N5uHmIcQE$YY{G+EdNV2+!xI;py$>GA zKtt}^T{`zM&P>wnBaHhQwygao@?fk8u%hTwC0S8MiYw(slQhjJ@M@dq3k=#@_L|`x3?x#>0%wV|4#T zjC&XlGESGTvxw;vGIk%Q+m|qI zXWYZMpK+$Chi6RJxp1b=&9ihanXPl%9G$~>(8!`+t&F?yz>&p%V4lvN`8roJ?qWQ| zIP-Yjzn5`%0khB5xp1M*-HUWKLktW9(<_-mJU#GA?160bDM78ah}eDj5|wp`##3Q zj7$8w`_6#QeT;`0x0mVedl)yLuiJMpF5Icxw=*8%T&=s$tkJoUu^VqdTKXR^;}XVQ zA>DmHV+|RhUQFq_WxPx)#Zry#D zGv0`|ly^Jh9>&ehy88~sMSFDnFynT{#zngO%!_p{WZZ)X1T5(-xlHE><4(rum+S5e z84oiyuh88WF&=2u?OU(Z*|)*QWdLU_8LsbA#?a%($EJFk}CXy8jNwgN(g5>F%2u z_b@hY*4-Po=#Ms}ZyYFN?$k_XR-F=vGJL4|KLyzeG ziyzgwlk;P`eIMgt#wFdl`_3Qh+{bvBar=|H`yR%Fj4Pkg-M2CBW^6vKyD#j~Ir5Co z#Xr%x^`|72>9>$kdnWxviHuj$uQWcG|BZ|U~oKkD4ixbjcBeJ|sF#>IoW zd*d%U5B!hL;g57S|E{z5W1ans+y0^34>1mZqT6>c?q%%$On2XVL}%l3olVBxFLe7h z#ziB#{UGD8&92S2IvDpb?y~FdGaWitGER5t_Jxf7j60K<`(&N_7&p6_eTvQ<={mc| zF&?jT?=d>JX6W3_Ia9aKJXYuaDLT8S>g-`WFip2lKThY~89GO1>RdTX=kPq8I~eyc z?q8t0Z_Z|%qw_Ex__WN|!;5uJ#}`Lf>?`pgsD;y4>)ge-ca3gexnAc1#=g^-{YIV5 zGM$Smb#7+dxl_0AXWSLi?FSgUcj@*WjJp~4Gah2>uG7QwFfL;3XB=VN!MKO<0OMiC z>GgVg3K@4ZHX4|F#?6e4M%{hS9-S*M)VYiC5MvJ>z_sXK7vrJ5x_$a3I=5Y_bLAB} z_uzvHmhg=$b@nhWW*p)CE!}@Rfw2x*SWb@=l&OT9{ick?qBL`{7UDxS9I=Y z9R8hd-@&+#abdsiKFqj-amj1C`_|v$l&%(&}Q-M#Ud&Y6sd8JB#{+<&2SGvh(VUiC%{YH!7in;Ew= z?qQs1b7=KBpq^!<@Q2}Ld)E5)ICU;!+|0O#@c`pY7YmPZJL4Y4LyS#)0TCEVe<9;a z#%+wd84ogcC+p$+7*{eLVC+`!)T8uy84ohfOwr?OW!%l!r=Crv@O#y>-Nfzc9c#p0 zjE5L|j@9EYVcg2Nhw&ie^vQa7KE{=d+ZcB<9$@UA!op`<$vDEeopBfAKE^|g-Bb1W zJ&X$(moRQ-+{U0#=r|IeQF)n5tX57ZOlW`B@0mjC0di*BiUdEMKy89wi z=Vr!jjQbf6G4@Z_!)s?e$k?2ryZ13JVcg7kfN|zbJv=YtO2!e!y^IGL8?#yXj6HL7 z`x3^jj4S8r?jwx584ohf^yvPJ7&kNSVBE`ih;imTJ^Vt(m5kdM_b?u0oIYO<-@~|& zaS7uv<5tEUjJp~4Gah2>K3-3s$+(cQpK*k7JL7J~eT)YgyBFx`@h~o8T*1-_1*~7SyaWP}>a@~LXi8`mBth0x4H)H=A z-F*k+0mkN9-Myc2C*xtpC8y~A!;IS*cQNi~Jj8hL3_X0`CY_5JH#2Ty+{w6yaX({Y zvmRd|;}XUZ#_f!I822;oEz#ripQrOssm{fIo%I^L8GE<0@XB@e zGA>~pX57xWi?J`LhhNOtIA6DK-l=mN<8H?NjE5MztM%|q#y-ZCj3bOQ!+LmL#(u`l zjN2J^F)pst!*6fU+0&$R5##1&-M*V~TZ?XQep6>3V?X0&#vP2i8GA0&!|!4ozDTzp zWNhr!?Y)eP7<(eR`$EQk#vP3N8GH8W;h7if+|Ia*aq}g*`!2>Mm+AK1jE5NeF4x^x zGVWmPzCw3zG9GHx?FX;a*?*PJJ&cDKmt3v8Z)Mzejc(u1IP+TF-p{z5vHLpRebMzg zw=p)`bbCMJUdBU=-8bm|3mLaE?qTe^QTHEV+|9V3vHvFBe;eZ-#;v#L?tSe#r+-^# z5940OMYrkhjoWpOFdk;ydx!4c_>Rt9jC&b}zpK0V+^KUf9{iKe-a(x!8Mia;WnA=U-G3Y7UdEC4b@!c&dl(n~O?Mw=+{(Cv zaUbJB#*raC{5Hn@jE5Mz|3~+4GWL9|+xr=Z|Eb%zGj}OnQ*WDL7bS`n~+`+hqvEkC)hZ%P>?q{5tr2F?L z>paM~HAT1YVH{4??S~onjn?hmV|4CjoHGvhYKos4@J4>BHNY@DyBH=VJ`*vq(xv7d1><2J^fjC&aOGah2>-l?bGWb9*H z%(#+qgmF9LF2=o#2N(}CPOsL}>tS5TxP-BvaWmsK#+{6N822$AWNg&v>CI&9Wn9GA z&$yX!E8`Bv-HiJf4>C4tS$Y|J85c43Gj3+w#<-Jl595BuLyX<(TQW30nv8vniy70m zXvlwr*|#$8VBE>Li*YyO9>%?l`xy5#9$-AoI6bV_pNDZF;}XVU#;uGy75#Pj4n;ALAm%e#T+O5yowdI~aE{?qS@=c!2Q`W1~*bUpixxv6pcn<6_2s#$m=0 z#%+u{7$IpVaBbDI~aE}?qfX2*ii4Gr13kGv6pcX;}XVU#;uGy7EC4OVO+$xn6aO6 zGvijq?TkAacQfu|Y+R_P*JNDC*w46!kA#f-y@n;Ew;?qb}>c#!chWA{Eizb0c3V=rSL<08g>#%+w-8Fw-6 zWjw%mm~r~WdVV~N3mKO%4l{0L+`+h;aUbJB#>ORj`Z5`N85c43Gj3+w#<-Jl595Bu zLyX;*>ghEZ`xqB9u4Eix+|Ia*aWCTm#>0%$FVoZOVO+?#gmIX0E8`Bv-HiJf4>C3` z*VC8D*vq(xv7d1><5tFhp~@w5#tiZm5f^%cQNi}+{3t+ z@c`pt#_6qkeoe+c#zl-v7*{fGX57lSopC4QZpOWg`xy^19%k&mQqONDV-Mp(#wCoy zj9VFZFz#mD%ebHMAYB+{_2zw&Rod>=xpC`ijF#JJF`jCeh55E-ip9DV# z4#xZ=S6b4K+>9^c2ZP}!!@s_N#@r)!srS{QJDJkos`KDzo!w(~HqvzNW!ybZ zx9=LSbMrAe7f#T*$EUMdpmX|ioqZ?h9A?~BtlPJ3(z$iB&h9gHE-cZx^DLcV09v zp38OjC5)S|(CstT`zNJ|nXCsP`E~`Eflwk9vO&*=Ihb+Yd4>QSXN#_eHPk z?)%mIO31$WQ{BE>y+4HPi`4r(hzHgCIEc;hvHlSIzoLmccd7SRko(r-bo-+DI=ipZ zxzEynWB6f9f0F{-Z0T>1`z`$ovft95Ah$8@we%-wKg_tu(!Zd+$I`zbmst82XOM6B(E$tb(#L}LTi!ALEx!uyz?3(!ouFU)Z&&>P)ADZ|FXAO=`yhEQfc+teWudl%! z6aQXs;@`Jt;u~Bp)Xy6+cC{IDxfSy5cF5Ik$g};BtAmicFCk~IA-Bx@Mt>67Zwz_g zKiN-Ax%(da|9pfzmHn&Kej@utDJS2d{bv<&c~|oi^`Z4x&#z_TFT*Ru)8|?bev1E zWHW>dYWi2gUE{(U4oQZ6F5@<@Q(0U8e_FXi8TfBV!HHvgl{ZJC5TU=fX(^r!{CTxZ z&pBg%m2W$0$+GF+regG6{jX&mu5u#odVlKg$AENubYZ-CG-=%LxqX!-I!6iq$f~~_ zH{{p4Xj}dDTridLnk5TPQk|kdXASdn?*G8;>-lARZW-3-NZP*kA72af-o1f*#J^n6 Ku`Q&0v;9BPd0_ki diff --git a/binary-prediction/anchor/tests/fixtures/ephemeral_token_program.so b/binary-prediction/anchor/tests/fixtures/ephemeral_token_program.so deleted file mode 100755 index 9d42d8ca9fb5532dbb22c24068dca9164fdf5d49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44472 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

Y$fHz^B@_z1e`@ZYgL6G0&;8qFB zxc2Kn?Dik+@-mXB@92Add_COp^&<@+p*}44?;*tW`J^xXF5)E;xUN2}tC!>Y(CvD{ z6C%(De$z4jG2n5&HG5xYX;gndrxo+*IQSIyu|^dyrb~7|_oR$tY>zkkz79!l`EG{s zo%K2K3h6l|<+>e9dj1h~ay~`JaRE`a{Z!Kf75hHg|IgijvxWr&JO05fR)nIEBTdTCS zEm{|}+S1l4KWkgmDDU%}bDo)dp3JEIx4-}UdEcYq&i6U{InP<|x%bk0yD}UP3-?st zxUYnL3HI+eeq_xS*3tU_NA<&VqLU&jV6Fl%@JP?Ef*| zE%5$qG%E^`pg!k_i$USHR7h^w0hJ17qZ%JdCrWunlAJfM@Jf%||E?X<-O=eXg$2fn z<#y03%hzRG9hF1TL;otzz0-Xia!>nq_&)FD+hXmKo-?C(Gm_>DJGI)U97pQJHJZQ61sW6&&mWEJ6i+bee6h}?a1TYK|AXGcLa$tE zpCXzL$QPPqxQcWvrE~;@oc00JRQ>Ey^}^GU0nbMafR7CKI^%C}rSFX6{r4>3t#HKz z;C=+oqg?7-El>a9q}Ad+ADxdn#L`FUJ{V2sdI$~Tn=3BHSEp0%mu9%f8y|xgEGO*j zx55?E$I~<0T`219a8jB|mpl)QdX4=Dcb}28K=dCj^&B*oYZ$|aYrOFHCppFaM*1!~ z4=9&s_!D&-Z!L3g_@m(1%crZ2OEzF74U`ztEv z6+Tl0!1WQsM|TPJ5{4Djq+n8}+V?n!*%#&f1zdSPx44fnJ^=Y)D32bcPsOX&3p)-UtF>k`~Xqb^b^5lMKgB5m0p8ULwQA?~M1rPaLoDy60>;pTPYw(Y{pr_dAZ2 z^BYS&4M5uIyN$G;kTx9x0Ym4H=sk3pZWH9w)N@vJ{u%Wg4egK7cT8GVD|wN;HbFgN zksN^ZVE%Ewjb1liD(y>emRH(`L%l=|rg$=vKO8ZEqu*s!dY^W>^hf6=>AuQVNH6A} z)_Ga=(jA3|`+y^&rET4#y*WB`$KQH_weWCSghW&Zb zuBkmxd1u%s36EPLpGV*q>Jz3Hzk}NYSJY#?rm1#<^L{j2L5}V!)D`DbR()ylqbtZa z_RPmbfZ4Mi71yU$9Vf0>f0f#LCnDTi*E?O1k9gk^DHiep;U2?@_kKXS zzhn)sQ26URDjuJZ_e8_f*H3aEKi+$ny~1CY@OMFKhq|_k_bOhH+AgjxLvAe7IlmP% zWx>(?3F@!a_J_FJCdLCOCAYjW|d^T9S5J)7$Lo) z`paG=>l+!(7B$Y%ejVL^K>z4+g+n&{=sI_y@FvdFd9IA<3F`S2*x(@jrSJA;K{#mW zIbjSJk~OkR^>e7_$b6hW?EFONZ(7v9{Bdw*t_W}1Oqmawe@>e@UC8PF+%DDbs2{;| z2BJLGHE7R~=}_Oh#Qyyx2;q>*(pI=;A+Hs|8WoUEEV7MrB+rJ@c?*8h_Xsh3wBI!m zet_8ufZ=W2E>Jsnf$IpGm(qH1KkO?Hfjk<{IGJDCpWUeXK`bZyiRrVRhoJCW;;qaO zz8c4{UcL`EOrrIIi3F2q{u@l%EADgAJd4T$!`T7#MCQtPh$O$yH(a5<||(R6NYl2{V|NE=S8b~+0R(R7w=zH=a$jE-Y<2F z^jh8fMfgYeN7$0FKf}3{0)upLz)Ng}#4C{Q;FX#y|WYm2Y2y^6eLLIF};&| z(NZFsZ}eR5R*VF4g!`;GZ=rs8klpI1qJ*)YpzYos*_H0XV%I8VkNWtw^p zfu18h=vpKkW?z;st~5`~NFF1Y;=_3_6yFHlSH=DW6R@jDIE$_$re)3*0{Y%}cAng~ zqIFF4e!_S;Zn@y;1oRNKr|&m)%6!G#%lx^F*m-!A(0SktTc(JY)(0e~bLm@Q{epJ@ z50wjN(e&;rlUxDiEBbYHJ*@6SQol{_#hW&3lJJ1_vKM}#KdhHsd^$i;kD7UEzI#5;k5gfdQKOX*%Z+&s{FK z!**B5{Qnc)15fo#_eF60Fd;3tkB`^=c2iu@9RvY@6AP#?(YJznVkhn9IHjwiU|gZDkgS;C=ne=50-Se~oLegHo#C#6uHYMxm-OG>c(v0S41Akrh#f-d5@$NC}n2SD#Y9irav$#$*w&obO;MnBk>sdT}1r`)fAct9L| zA3wGy6Z{{HuKVPi#iAnp$e{JK(hsaZ><0tbseqyUXTbUwnfg(BE*=>T zrN3oXhv1fDoxG+&zkue@t@4Wd zOeXxK`apevB8;YU+pS2F@rvtUl+gVx`py8Zr%jM!|B2UayOlpxpJfdo1hX+BE<(>S z3(4?DTp_*agVvJ=m&p0(R*(s~YQM4bdoth*N17-Px-TECA65R;zHkbG;oyFSHM~75 zJ3tEYVy6Oz>VfWif0;h~6Q1|^I{G#azwe{MZ<*O4;%TwTD?N`)@y)i)68WL`C855f z!TJ>G#=-&LCb1Fb9v3=aWdkXdjE_`+L$mggdIA zFRPcILcQSpy185x7WhQ>*dNF15BffW{y??2{m`C8f1vuWFN^1KtbdUzY=;;+l#^Eq zD&Qje3DQHA6l#~KrzW^*QdjDq1LzS%H1AYhme#0M#~?fL4RLXK94}T()@|? zw;wYAX~z1wk=4&M2rpj!+=1aJ{X@M&6>BN$fWKJoI1_{NQ2j&Nr2@tKys-S~z6{MP z@xGUk2cu5cT>nbb;My#e?USFh06pLhljAd0-ZJ#pf|hxYF~qxW2`7N5??~FgQ-9Kw4V@9fIk7z+2$l zHkv&XJH+*nUtD7S+jz;?E-@Xm?Ot(?JKBGiNqd@y1myOFaRn+G7@P-VI;q_EHVAQa z9g^XMiUKp+<`Lo2`Xm~@D*v?E(qGvcc_nw4E~pY%m&*Cpp-ZJb)(gs4OpqBklp*E3 zUa1~QZ!y_8ui6j3Wqrwp8M;aO51gUS9h;K(hUImmY6oSY7icJ4sz;g!9GoD}on!xK zttYAvI$uoj(fo+^Rb0l;#QcEfA@sZ(jxSh0U)IjnVEf3I>7(@qwKqO*!*I}8=TXmq zsIxj%`J=C8c<$k+}-k|&0RNvIk2|WiV z(R1r}OZTWJekh-4yMVlOfEBv`F8toJ8wvdR#U-Zy#gY%nW@}J+Mcdh2X`iOb^$D6c zq4I&LfGZXyJ(o)RL#P+%g!YNC{?J74%ikcG{L}Nq^xQw~>rsETtqx;>`stAEfcjr5 zC+x4GNkpF`!RI|O%D^o21^No!(LTdT&kM@6@SY3g{EE_-AzB5b^ZXv6hkM|Aq3ECH zA1(LMKA`e{Rj<_72)Y8jf&NUkt2u%L&<@b#s`3q}c|=;hl#{-uT_L$ljc3@tFuhcc z*ltDsl)om(uZi}ccG$1dxej`sqoqTpo9d&bQ>L@!KAA7vKOlqUbnp~evC(}>RbR3E z;Oab9-=xR%+*+9$cj&!IE%(Usq5Wh!uakX@44Cww<$x@Im+_P=XQ(GEzj)){3vlp~ z`q>IdzX|Se-HO*OPTBr&Jbjprr+5c3UU-i{crCL!z!vHap7WXqS9<>L%i4Q8yf=X6 zFBwkN|C$&I)Cc^-`oQ#|#$r1%;Y#&I^Lo0Ei2XI%(|l*6s{cbuPfk+pj^;hNinB;h zARbZwaNY+EjiY6!OU2tWU5I1t{TRuV@0Pp{A;?}S{Zsz;+nl02zN{RYpd7H>iE$k= zEAkD&V7@bKxVr-7sq}*MB(PeD4LT>4mLWN?MP6~5P38-f@X#XVG^L%WDLdX2=w>!nY2hPVZ zCOZFy<+N2W#wwq~@xqnn1r%QWe`I)JMGY+7Ao4Z2uU}5S$?- zL+zgKH=_NBrM=QP@^!y+i1YeEOFFT9@~|FM{eGQt!6rrXj8h;z|9>eLW4VmQ za+xV>g1)1N^7pLz6vy5M_f1JZ$bUeUFZ#bdj(@9tcN}|q&olaO{0jSVapI@vld*q- zDiiGjuhDd7$b4>v{#CRK*D*#pi1LB)dT6t>p9@8VoV8MN1q6cOY=u8~E*8hhE$6@= zWvCykQto$7miv*^KB>LZ{Tv*};WpPu+8P-E=~ulm|s8?*l+H44Ugas=6{k7 zOh5JG2LPb!fq9p_uVrn&B3&vU^gSC&H?0S8-h<&${;Xiw{Zs@Ht* zhwcv*f+ZOEDL6~TOZ^`9iMT6|eLy+QYrB~@OrUTcNR{av?G#xyH zsoEm1J5~5!mEQeM`5o7U>45ZW>6jqH|H^c%R_RzNue1(Be~^6bJJ=%qv!uIIApc(Y zS+C;3^#YcAmdane_GQg~!uAF6LQrCTA+C@wG}s3Oz*8Hh-(R=)MPEzd%@-5nt z(!<&C9bVCnsN5|2Z$dnz_p@PLC)dQG0dHNQM7p+);ruEKVWSw#KA z8OTxNNU@BkN~Lq>nX-VepF{nh?R+OXeqcGo^jl^)S`JX}|o zBHzZ1WG4IEL(Ny`x#n_oF`(NxQg&w<<9s^@J#Ps<8em^bB zLFw85MnA2E&)Q8?ub~`-UhkLXh5fYfr`m5+uPyyFmRpuecf5Yu8gD|qj_>|0YwATqWXDjd$;V9y-Uw!S>>m| zeS&X^&>%c))L>fFcZ=wKVl@8HdrrtbrI&xNi25xYXMSkOcf9A|GcD`#f9E;)PRJ*n zpZ+e_>=qAUw2=H&JkdK;E}SCc=_=Ce=Hv#d=Nh$CI27G$8R7X zG+)8_{tVDxdY%>coAC)S8n1EQ52_NKr_gyfTIXVa4NXm~UrT}zm@;&(C9qox&>e=0 zR}-#u-y(XBLdog;Otw1rLeHttds=2Y-yad_nWe&oC`J5`PAz`bUj;VD+==+XJ;vXp zu6%#}39!TPpHTUpwirn=UJnu@fJwv1@p^{5&bBWyro&Ha=eUm{(g*porVrQqR;KX} z_e(wm4}q`@57$%J)n>rH2ZoF3LKCQmfWhE>0cj6Ez|ejAz#4fU7Uy^Hc8KVAR1QGc z(43>^;xZg^V5fCE&cg<*^{C=QJwa0e#bLsg)-|-hPW43R{$|7Tdmlht^!x1tev|pVr#A1I3%Mb6@w6cBO zD?#t+zA)P!pz;J=uXXdu>ZpHqWcBW_`at7R)`0t*J3>$FC2RRmvtVA^Ad_T z&>`y)=Q$?)dtO~B9eB(O#5u9JwgxIC4?Wapa<$t@L`eqjG|5{T$LSEyLpquye< zVSk3#Y!m;+`Zw%1O<*i{yi)&9`?0uQ#&APeSYYTre+a@ulcoCOgA3;hruU}M`)=qw zRnRp~lo$3hqTH0;;W`Gxr|}@<7r}^qVoWLd&%%TtgL^diUIGk<`bA=LzwvVEj-H>V z@5vs_SL+h6M*kU3+=YX1PZk&P9J7eGUUJqZdByvuC_fD6tI*K6O8b$q`L8?|ycO~( z>Z49LH}v4gI11Q~t33{R3o(&Oc;=9pw{#iu*g5=^%W+4MU*!6k|AO=>99- zKgMwB{vf3fi`j&K&#NoNyQe_j_oVxrG+yy>*ZRJ442R}T*5@x!PUnVlRk`I-{T6~H zm?rpV!aw@nPVTV)$T!Gq+Aeve_ImIJRbJHYlzVy}jPx(?O!Emk7rPM)91NW&$(Bh!#86PiaoG+unaRiMhcZieDLy;cR`M_xZr0S8r2S(2k(EHx8y}|#{eh25-s3#lq zFcz2xL;BGk_pfX)VWazE_+A<6C*ZpGkV;pnsz^P*&>v>V3ZU_^ROxRvejFAIJ-4p= za~m6#{*gcWo-L-w4(VyRPnL5K_Pf3S+2Q1gBE2}@jinFtf${@xuzojA644q|fAaJ! zuP2Bf^b?Is+!=-Ea5E^qbA;U5Zwi6Qx z%glCsI)e3q`NeB=9SLj#(>a<@BLEnBpB{#XX756IrF~9vxA6=qr|&83RpmqNZlhn? zV>wz(Bzqy{AA5U97yLsBjRV^jO8Hh0qC8ENAGPmk(fXDNRNWuAL<8mKlFx;?jMqe4 z&Ty%#@v2~IcY3*|8waEHA~THbq!2>Pa2}5VNALS$|BLCO=VPM!rSgyVn1gt7OmRFp z4iWL>nDuya(;`2h^c3@>y+?EjI0DlI`M~s+W(YKBK7{VI^@4Iw?ywzWK4>11rtIlH z80Hi6L+8pcJZ-(8;zPN%UQlvO7tVvRKJdh2mYOf)J}O4F6|ShSq0R6I42ENEkJ;(x z$ohnI7J_|-UDeY}bPf3iIe3XaXGQ%H^=p*Bcydusq|d7VK=-1a;>blk#gUs3KZSol zr61daR!^4l!1R`4=D}F^8MJy*>7jWe>09aP(q9_&cPc&6dQ$SE>d7M4>Pg8l-&jxd zJUh;#Mg724)Q{>P@EkDKqs#D!dcpDKNw^{PEtxDaPsN`ZwiATJS`VV0#!H9s-kU4h zlZuDNcTAV4r#Ny^PjTd;p5n+&h??R(0Fj}d9aT@WWcqNOCF%(W0Weu7%PXE=(&}lZ zl$WlOSKP0`e3UBp^qd3j|DrwShvazPPHRspJd|toq~ugjAyx0VUx!Jg^LZFP&Lil( zQCVI9FqB^$$FW|m^@808*=o8ARUq*e3nZ8vdr+TOTAwC~L{kQ`3gXViJcdLE% zIaqsej!KPl6b`Nj&{&@@f)kG?9h@!|mC08fRO=d1UeYW49olvWx3U%ii%)e zPF+2?D+|>Hb5Yn>TU8b+57M=?JkSsTCsnoO!Dchm*kFcsnA<~*wdM5%W=`tq&aOOpP2 z&3nhTzqtLP%$p(yPQ>sbS2dw>NDM+%ZGA&sV;KfnpIcTJgs4jcWo3}FhIlR@{;G=F zxHi?*p)#4tqrz>d3)I%{5M{hOP*)YGZ7^j)dd(A7m{pMe#WEEpS#Jqf)CJ0ef$i17 z^&$9Cw+RcSpy1@j9T1M$RMk*v=9y5gHNo13uj#kAE(C$rtcIGD0W6FL@b87dqOYoL z2-ejGs?A_sU8t_WgcJqqg5_poEfi;2CFa3IU8<=nH%~-G$=w2#Sf5+hSX&#c%WVqP z?aU2V2O4&S>T0qZLZRwL8T^%e#75ZO_03!=Dgs|EE z7h|Zet}3I}@m~)XdV~gS+@KG+<#km%{>!B!({7DqS7TM#P82{Pl?9+e%1!?n!TQGP zhJu2|+NQcd*fY;>LSGW7HT`Sq>ip3BsvCn_YJ<&Ts622E%31*}4f?vO+At{Lf2_EW ziV*a0*vny2L&Db8LZr|#wu9oEb-{35upSyv06U}t({^-!haK&SruV;@6s4@93*6pN z7YydsLUaAEXjUx0aUu!qu2RFo|88z-0^wXJ)4CSO($NJPEUyUWR0gXmDjUodE6n;} z^$x;pGw@63unbC3!H$Ox8%97JooHl@@1;7pL;5&zh4k_j&c1fQv9u%( zxhBw1R%t?yTeh*8|%)%3>6e0c)$+I^h7ydSYcv*De()A_9A?8 zKhZQTNWJjreAWh=q9IxfZbPWSgl1rFZ)phDLkka-i{=kwMP;x$3+_-&b5H){Gtr&^L z09jjZ2F%@6LIBe>oEDgY@^a{V>S4^R2}3Igiey@*N2S{vtEyop0tt;y=VFtz*spAw zu8DbEc6rr~9c7`KnyQ9uDX0s=h*>U2=GfdYTMgC0V14%P0Cds2vv)*)hqKEXb;EXjox`<#*DDVce0wSckwv@Sv(_RxMM&>FJ{%TqD&{MBdp)ZI9w`if%u>~Tu zaG(XU6t09BVjaxQRN);Zhzu?V_v8L)cjkd1%iZNP0zfQa#C*AqGsYW4-$)WahMI) z2X{3FK{KGGt;HqD=Bk=t`NqbEXQ$44$vb<|0n;Pfo+`cITF{JYsEgIm++aA~2_3b# zQWW#FNN~=G4TVxCnubW#(Gr#N0&MVVoZnF+rXL}g>xxwd^Z@m+o{6qw{MZYb^I%d6 z{Vq-ls%k4tKdz-v2`O@^N)vsf8|c5azqS1IL&xo@yGfK?9K2s3fiTwJkf%VSu4 z6$k5Ts$eY>s$CtdtqPXchRk}XzW{iu4+qMEE1@%h;#|2KR#~E#5PhFNy6W0d9fHOM zDGi5U#54WgyoHMvFIk%JTNc<}Rvz4;7a=SrYpWWnM4^{csiCIH+Kral0@LzS*cX_j zCR8HUR!%`tM-cTL)l;$&?TC6fsXPm!4euz|DjXBl4Av3lW^ruk6zfKzj|swJ4mHW@ z02AC0g6WQ>F;GI|H59XW^-4=C*1MI)hALbRmE+p`Ol(%r63og#JydHwtZhJBKr_r8 zpb@YRhjnB?_A?DFlyU4ht16;7jM}Rfgu?_mZIo-ySQxPq(i0_?^|DVd6@5A+j+#3R zEV7}-vU-$2={9Z~Sh|B~(sE+`33lXSumMGlrOVpkP&=uF1yOYsbXlUW#-J%%vIGiX zdV+%xs5va8DUnJhhoqyjAPTw~$HeMDO&Hb@(C5{&&p;h4qKz)vuXjvLs zMreRUl@3(npx***IU0R|xgi9-nTgg_wJ=yh1Pu!yKf&Eqp+@W%&=xFn%rk=LW3K}3 zQ09cfPz&Fq5@``oBH~mng#y(YRUDE*TUfnPDo+75AWX0-SJ||7s1CL~$K15DDjdcH zk}M}qgi$+Kr&(%=M~+IM3R`v_GPY2|3ux=Gb72OMr zPNX4P+{~17BJB7|m88@X!YZM(o3Llu5^cwcW^C(VD1?NFA!02|mqfRY!ZT?W6_rLM ztEvN4H7MRn{an;)t;iP6;5UcDTf%E-#&@!uEw5ISbuM28Y8m80N>(&FOUBmLg=$U~ z+iAjUEPl#@WhRYHT=cWB4~Cs?scf~-pTulpT~Rz+C}hl1sqDPLqh-SwZYdZ>L<&|& zbMl%~)@?91ty#6@4A=zD*<7;OJTp((88{y@P7732m7R>UJyR74wpqw9Mq@y9*pZet z)>Rvo4GrP?g52C1^sya%h0hThP1le_3Kux*|2F%PE9!^H3&Pv zu)kUgtD%ZUn6W{cYK{6(V_jJg%Bwv1e-@viifhe=)rku7e|MKg?K#C}#{Ywt4Wj z|MnbN`Z88c_io-@}o zZ~pNk3$k-^V{1iWA6+@FJbBgXHET~PI`tdtPuoy@`Wc%xZ#i>o$ysO16=g+b)%iPX zYD3{&u-VnPyQ#V50xZ}ds_1`buR3}oN7S&oM~I<+0}65{{M!_&3F6Kk+%OCVYa44| znhvvc*ua6EJ*j=Ti66wf34T;fxT|XVVPgn3D4`QK{V==0sRvBE8swb@wW}vI2(}Ml z)dtINaXS*Wtd%oyyO1o^?ZJk|Fx=cypx?X8@&4bveE}PoY9j$wJ-Cwq17&QdV@D&* zoN9v&c#qGzU14z)*e*H*-0V=&U^y++VSf$+AVMbr+K`|?%c1w&UKiR4n!PSL!mG(uW?<7k>Grz8oNBx6U?c|fep5r>Z;nECc2vkvn8le z$`pnIi%;B@q`pMle}eT0%vOS+OeDsAjRxHA!h7=a?&bx-I+)r8cjAq$##;O(mNpos zC3U+RL$I?LY%YWCv|zc25N^G~>ZJ~}HYjHku%xMPiS4(Dj0+iTpw`!C!yE{1VL_fC z6Od0>Fk#vtkeWbkixAgCXpMM>8VL5QLMRZ*QiBPdkXDuCU(BG_%)61$tdK`OLG5_7*&sxyprN){}~y|i_;aO+U{TMa6E zvQXJ#(Abr717MBN)UBwWVwMU4tXxgXxvoC;J1PVhYw(uS8K9UOK`+-v)iU;LJ?IuJ zOR6bqv?&sLwN8#+>+rUw`n?)-X)E3!KN~b?liUql+gM!<5p7ah6bt!u)Sopx+9M+P_ha&Cs@B)s7^ijISq7WJ!lZ!2StadM=O=)tOv!xph0cc z;jJ~PEL&pA66@~Pgm%ED@5UXc2@P3SD<=0)`5RF|wpdj|=t6-hRY~sE%Kkx4ITz3Y z7wJH_E(^f6D0VHO-N8E8{cMU&2@x+2S zw;|)K3pO;?;ifx`8&WgHRxoa1;r>EhH7I)p4huoJNmCAYiff_dV-cy_$VX3`pNRZFSZzQtA5GogvIK78=9b5_=5e}L!8vd%wL{x@Ik-)=qd z+Q*-q^k)Yg?zf%zt(=r^zvcMcmywqHZo|y?|MBv#-LE^JeXZ*kPaeB>(S43NS%2OD zXO3*&%xOR8ieEoncjv49SL9}lf3En=o#EP3Ury`))^BQeJu;_j$8!f~EzOvA_ODMq zVeICSvYz@aFHZXKli)|5C%63T`PU<_|E>1pmp**G^k17?u;fx_kucResv8!T2XR>m zU3svg1x^qIDnfV?=jfc5=RgnC5dS_W*j3fSCR*H^pyfH?>O^+1y`xqkP@<=;EGgZz z?v&Ei>rPp>c~hbkefR9wri=d0*)b20rkHNwWBo>)yB4 zOkUx5dGa5h`Rqk}ZJF`2=Wcs`(ih0&>brKqk@p2(a@&?X&$*}ndhL;q1wZz}eFv|9aMyPNM~(>o`PCoH zY?^V$U-levigT4Uo0%2szV4AF^FOQbJyQJnYQf7-dhS&d=8i{?RXfJ$dfxHx6I+`DVelyfFL6 zFWtHGrjF0g6@2Ob?HA6fe(?7{`n+85KVK^yQ?lcMdw%nIwct7b^V2tP8h+>RAAa5- zxH~fPz0QM=J(l{#Hw9mP>Nl%hrQ5HV{l%q%H+i2~>>qjZg_FLxM(~z7Kf2+X%QoC{ z_7^t`e(Ium;aN?eyw&i<9fGg#ey{t^r{22n`Y-MkeDj43tuL3}KYafe4+?(y_Ri~X z3a|d*vtK+acxOi1q2VF-Rd0Rqq~OQ%@`77tcm3j%FP;_r;NCrb&%JZfw%n63m*G39X_rEeYID)5b(QJS4 z@L!t`I>cK!4CB(2n}?g1owV;bW2&(IK}PZmdtSP=$7jqE96t9idtO?2(e<0e*OcI0 zaFIVhaIf!Izo`+Y84Y92jN2y7nY;1MRzsfCo%`9dujJib_P4u@)xv-0!QN|p!8f~} zGS&*P z+iP=e)q+oL`tY`I-&1q<$+iZ;m+idp(LK#6ADwIarr@T`H(Ks`ck`o7wo3*75d4SIj&DD8=h`>lw%sdu z_BG3XzxXG&?>}ODQ1H2Tw%=2C+jIY%Xn$1jOHcoK^QJ?uKappDQt&$~XM8m2??+nK z+n*J@zxmu>-~N*M;tuAcs}J1!>Njuytk3?w;Pln^9$3GA_mBT-|5)(kI|?8F@VW=CPI4R(yx`KU z_oaWB)n_{7i)ZKM-SFr4?oGdaxns1rwfLRUcii>a?dgBo;+P-I@uuqfPcS`s z<_Ra5OY`D%&(m=XfbLtY2NL(+a2qZf2qq4n3@wL$gRpUl@09Ae+-4M>oMuFBX*Z0w z{{gQ+zioNk^vhGKM-LN_jB~u(Ufc+;s{yiJ6c5d0JzGAi7@#(_C$DWJU$xz6Q> z?o2-}pw*$fZ~zV*!&qqs8q9)JSY^O+0cJq3c!ImvusB<>V)_bk-UrXn;ISUM7Y%23 z@D6%`nJVS@LrLI{=pNXYfg?e1V8^`B<4Ii*EoZnbp9}K}PzrCe*XzymF7z()F7__* zF7@Vnecokx-n_iLg?Wqe7UwO=Tbh@j=gV8R(7P~i;lhQB7A{`6WZ}|<`3rpumo4%x z%3HJ$j@&O^v}DoJMfr<-ih(!8Y$mo8emcwDaMz?DXl&E~K&Pj!v5k9DTo z#@WZaj+r{a1|NR6A3J8MYnnUDHp_OtbEo}b$M@||+F!Q+(*DZm-=zH3{yY0?wgK1M z_CGlX?H`y!&SCqf&d+S4=Po~S!^Z2s``tVDTz%6mcR%u@%fFwLoU(MqiD&-3@0ZRA znM?D}+`9LB4?XrUOUu{?OyHP>GM_%lC!_PL+` z_T0yxm@+llojPj5q@~LWI`8j)H6_38hR)>FM_SArzRD-=cY7{I{C!;Ny}ZSNv9{-TylF=kIxvJ znzS}`n&Xsp`Hry=>$2q3eM^r`UhbH-#g?{k%q6$)XdD%J_Nw(|V=nckPfWf3cGtzH z-1ftQ%b&Y=S@L}6xk+r@Egu$$>R!9b8a1WU;5j5sdxWr-=Z|z zw4||4_r7bcbnbMGaik=tU+<56nzZlH^{1pXoDlhEYP~z0vG#%qqbH2snsRL9ihZXz zE;~6b`+q@>7ij(43n-4@PvOm^D$6=sbqaM||t&5!){c&BaOK;&QZ);m+3_DjaC zUcVyplM|9`&MmGfi|zZyE^wBQJ~K7)kZ;r$2rD0nw+Icqn)<2 z(M})a*W+H`w4by<1DJzNT&J8)MVHvHr6oIk_jDyRGz{ORv4|h8yqy{*Qiq__-H; z_U60rxhbb;0Qm*WSFAgA+ojim<)c6P@pC_W>E(CdGosC7Iku1U%7d5QaQk;&c}SXB@A+;ePOP_=UILeQ#*YxHWJVF>>i6Pdkx0$1 zH{TkYRU4W*t@Of+9(wq+A3r&9(s5a9PuZ{$8_7j`A3OZYZ(bkzpMTWVU*FJp%bc9t z0}nrO==qm__ttGj;jQi7>$6^Z`B$&JG_qmi+2YHEtZ?MQamp<5m8bU8*P*~VtLHY86;-kNMrnl!rDxyq3ZJ=(aWw9y65 zX|qes8t3`5BfYMRyBw2~F87N8YFf&dEum z9FYgXDmO3kvHJu^n&U*5&wae>;*oKg?%Z+Nj_GOB(<0Y6FTQQ!sEpQ|UAeC1plF#X zk*8-gjE?+v^1gIe~=QNVhxkM#geSYLd^r);&6@VbpPsvz=$9L@vpk znmRFMy)$xE(gXL7p5)BC%en8hImx44uE>4q`~Hz^Gv_CP?X}Lx(~c>Qv@y|M9Cux| z!vRY%NjiF#SsRiQy`yc)tKdd=JwDVFXSykOYjO7l?v}&$B_7!*ufmxH9y-OnYlv_= zZ0O=x1Va^00_9;wZ%)pNH2D*D%j@V7D%z`)Hh5T6&IDrj0VT^(PWXha{swvM7Dhn< z;^iopI8EaQm*3cSOouUkl9@Hy^k;pzz&w7wx8wNGef|aZ&VdETeKwG7d|@vA?udWs z=eD<(+ESY~{sUtJ%W^Z{Ugn+p_NjkA?(GeQi|;z)xWL<+hRzRc-WYm&^LL(v zFJ8PHI5YUmyUsLTo4(Z;xU1x$cc!2H{=09V(>EA6*EBvjcgVJPn-PXb(X(NiVu$~1 zMWehK>9!!~o84}6&a@pj<(yFkDJiy0r!56WQ`hm1{jM_Q^K8eHje9PCMwa?Kr!`HVWAV4r~+b6JbyW*ATYbmh4EiA7@(*en*2(4+IaP zI$WUP$@WnqR7isj0uembz6^+BnPw}pIpMCL&E~e9ZnGzkc5k=YQ${7PvrmEWY_|Nd zHi*$R$~G&-w!>*lf<)PmwL2Z@&N1*a$(Ck=m(w_>I;Po=vlrTJ$!?o{REiB+m#xu0 z!?xSuw5QmT9KVMIKx&gQM7ujF)o$}<-(RR~mPx65Uc!FkRx3@cNV{FM7 znZy2Ep<(;!bi;A2&2Jh>Rd&N^OEvAqcIbv7-N)Kpwp;C!$B(hiaUVO%W?SI!Le3zG zFcDb=C2zNnhJ5AP7D4vyb{FJ(zTIv60E^8A58I3DH#*mj%5(0qElryTIZbusLAc4b6^>ahoBKrDX#3(6C^M(sR_d@jp;&C+u{qos zqHJY7j7@g9R@tD4P#qjj$lO@_7B^;c5|*@-gRcA)Qk(?WDQF9h&lhDB#J^6P%Sf@= z|6xmYI&Ezbztd)>dXhxlCD|Q0PzCT>5D4jviI6l1uNjChEAvrrO&T$&@twC~~e3F{9o|fwr?|egC4FA-tYYZ-*9>+aC zLmbaN%4fuJzchh+l#}}qq(^@35Z*fra*Fp#kWW=%&a%k&Tjcmw0CN8f$TO9Dy1-+( z!pNtN%hk>^!!rhi}>bF%s9psd^ z$$3r#zoCQ%^GU|)ei($5W-h0^S>^Q*K0e2cW(kB(fD;1HxkH4CmF`XIPo3>@_6A-0eQUerzViEPZ0h?3DO_1$gO%)0_E>j z>9ooxf;=~l{4S7Dc@Be;QeS3mC%sFdaKR+9A5!+@t}+Cb1g3kAxES3z(tn3?*QvNy z*<0JqO_q8*obQbG9oUCc`CHv5fqUx5t#TYnCdlZG-$6Lkx1I(v^(qogz5(P^U)J`0 zC$u-{K7_H#?*ciM)ewYFZ2=vo`E*_mtX|_G!pQ-qxb}gB#)fK;&lE1CjQUwFmv3H# z_uzti`VGlB%8Xv-jMh0?UJXoP;`mDGe;nl2{^{4iq|@l{bzm$XGKB?B<0JyO?ggg4 z7RB8E8(>d$g!cae26c>@Pk^oI{}hYW+HQ9|U{S9Sm;|FpWuHC;V%{ z{eP04LGVv=2aJ!0_f_fdJVB5Dr;OhO9)$rb^JieHKWn*?{YPL=I)}2cFiEAc3YnK5 zub;W#p85=Q{|#W$L*y+iyjoyti)eo_@C^K+%oD(*mnh=;^A6aP{)EAv;d|+$26a&+kjEOA`K1ZumnD$5CXip5Kz>yM`PB*J*Cdc%n?QbD0{IOIp)K7b2-fg-h+7rrELkgUjYBmSmpV^1wyLJ&jT5? zYpeTGkk3=@Ph6$1!|z)i>;KRVWK|fee7;3KU@1qBMcxD9P+4G_DIBXj+aiAx+*6(5 zmE5PVaT+xQAir>JY@K9XKct=#D<|tb%ql+!;m}-)%V{oPm3M-Bl23r}H$(hrP>(3B zm6mw@AUEM3nmUVo9WadG(o)4Ibd-vDxI{}>0&6RqXd@o}s^&;4LRD$g0G z>g$wDVCs*`Aqgf12F5DSgQ}#pja9x7S$y|Q2FgYeKK+E*A*_UMLsBD$ii&|**JMOU=< z&XwUOO4p#pKb4;~Ummr;fnkxHt|&_f|JL|WhUV0bdUATvD&PtD1I+Qzp2x|b#&lH~7$ds>I#Is}3e#wu@0Aa70}-;+T8 z6OhM?_cM@FzhR9RK1(0npS8+y{Sz;pIA4q>9|hsWlaEdyACo{{2l81E2O4X7@I9*3 z*IDJ4f_$lTuDRa<@_6~h)2K7zxQ9EOannE6BF{X_X{aqg1J`vKDjci)evnZ)SmobK zAb%i%{GkN$hZD$CA)VAdtnp$wlRjAGg$d*b6NLX@0(otMa9#&_ymELWf&9$`@pGqLFwB*+s z4t{4mUifE2dg9410y*jVzO!Tf7-s1vVA_X*V2?5f!QLw89I>pQ(DR>I_$Z@(ovtXO z`E;+PzeTz89DUz)3NY0n+H?2KY`mYv+*|!y^MPTZ$p-gOJer9&9(mxFIGXlb<<;LQ zuiMUzjWZ`C#n$Im`F)T9>JzN;he1wd-w5I0I6>waU>Xks5Ea$yAjqjtLARd+Tjydy zR$qnZ#pdhiejm(ltn-Hc<@$VS1Gu-A(?($HeCcdp$_s|K1pHg;H3Iff3{mq{;av{y zX^o1WxO>mGSowYo_P7>Da|igN{e3J$>ffz$oaa;7_$_*hZQKL@&{*YX15;YIm&ele zJtz<=lb?Z{#&z`n2VmNxK<4^X2>M0ykZZu6!m-M)wa5+l4xn`(e?0IE3|JY@33`2T z`^Dg%@_=4W1*W!7`x#XKG#2z+D8APMrz0b{^=te_DI?Xh=W6Mn^n}_E z>1@w6(w^2`BQkg`ol5kzE?9=+p(Km0lr48a`5LR_9fh)#`$kI(tgmsf3qIH)(?R(` zJ*MB%rTmL)+IVtb0{Q9$@<0Ol`3dAWZ;BT$>PI~JeF@|^{={?tasv4u6UhIbKyH+Y zH+z(d$35V^HSkhi@diPo9^Tyv&mOmwHZ(WD%WSIQrSCOm;g(WEydQuh@GN$z_znI_ z@%}VF@p^m#*-Kd`G2_!$b4%qJUEI*2wbGG9iOlcLz(w3r66%(o&Te zh`$1&f_Hbpt7YK@mhh?t;TnbbVlb;r4;5ciE}TO8Yv5U7nGnoOO}G^L4yD-C?}Zr` ztA;`L?TmX>Lm+#fYOusbjJ;~{LiX*9yBNDw10?s|jQbdyszW39{WGEB!4S94(m6aw z=YGavY$#yJzp-3rKjT5h-W9t0BF4>yy1gG8AQ*~oka5u_-9BAyjFI~i#u3K7jE76~ z@C+O{z)*Nz#y#6~`+mma!7_{g)*ZTgL-ofLekNm2mF~WfahP!{N9W)cyOhBLqYF?c1aCAm@v8dtxc9#(m$_?T7Bsx#T{bTMy_w z(5bWkdpd_7(7EzKor@3Z-1?Bty|~~7L+LO4zRsDC=-lqY-*X^4b_y0<_A7X6$ zTDLD@-0@r8e(-lX`(D*K^EI9Qzt_3{b)DUB=lCk-&?!K6Dn6d9Y-F=vGJLB*lb@v^Ndl>f)>h6ab5ByoTPydU~ znSa%}h;b!j^L^cYG2<}f)(>>|-HiJgdxv!Qe#Rvq>GrLRGe6etD;XF6L${AG?qJ;d zPu;!eUpn^>>uh|Yvxo5jWA~@JdoSbuFLe9N5uHmIcQE$YY{G+EdNV2+!xI;py$>GA zKtt}^T{`zM&P>wnBaHhQwygao@?fk8u%hTwC0S8MiYw(slQhjJ@M@dq3k=#@_L|`x3?x#>0%wV|4#T zjC&XlGESGTvxw;vGIk%Q+m|qI zXWYZMpK+$Chi6RJxp1b=&9ihanXPl%9G$~>(8!`+t&F?yz>&p%V4lvN`8roJ?qWQ| zIP-Yjzn5`%0khB5xp1M*-HUWKLktW9(<_-mJU#GA?160bDM78ah}eDj5|wp`##3Q zj7$8w`_6#QeT;`0x0mVedl)yLuiJMpF5Icxw=*8%T&=s$tkJoUu^VqdTKXR^;}XVQ zA>DmHV+|RhUQFq_WxPx)#Zry#D zGv0`|ly^Jh9>&ehy88~sMSFDnFynT{#zngO%!_p{WZZ)X1T5(-xlHE><4(rum+S5e z84oiyuh88WF&=2u?OU(Z*|)*QWdLU_8LsbA#?a%($EJFk}CXy8jNwgN(g5>F%2u z_b@hY*4-Po=#Ms}ZyYFN?$k_XR-F=vGJL4|KLyzeG ziyzgwlk;P`eIMgt#wFdl`_3Qh+{bvBar=|H`yR%Fj4Pkg-M2CBW^6vKyD#j~Ir5Co z#Xr%x^`|72>9>$kdnWxviHuj$uQWcG|BZ|U~oKkD4ixbjcBeJ|sF#>IoW zd*d%U5B!hL;g57S|E{z5W1ans+y0^34>1mZqT6>c?q%%$On2XVL}%l3olVBxFLe7h z#ziB#{UGD8&92S2IvDpb?y~FdGaWitGER5t_Jxf7j60K<`(&N_7&p6_eTvQ<={mc| zF&?jT?=d>JX6W3_Ia9aKJXYuaDLT8S>g-`WFip2lKThY~89GO1>RdTX=kPq8I~eyc z?q8t0Z_Z|%qw_Ex__WN|!;5uJ#}`Lf>?`pgsD;y4>)ge-ca3gexnAc1#=g^-{YIV5 zGM$Smb#7+dxl_0AXWSLi?FSgUcj@*WjJp~4Gah2>uG7QwFfL;3XB=VN!MKO<0OMiC z>GgVg3K@4ZHX4|F#?6e4M%{hS9-S*M)VYiC5MvJ>z_sXK7vrJ5x_$a3I=5Y_bLAB} z_uzvHmhg=$b@nhWW*p)CE!}@Rfw2x*SWb@=l&OT9{ick?qBL`{7UDxS9I=Y z9R8hd-@&+#abdsiKFqj-amj1C`_|v$l&%(&}Q-M#Ud&Y6sd8JB#{+<&2SGvh(VUiC%{YH!7in;Ew= z?qQs1b7=KBpq^!<@Q2}Ld)E5)ICU;!+|0O#@c`pY7YmPZJL4Y4LyS#)0TCEVe<9;a z#%+wd84ogcC+p$+7*{eLVC+`!)T8uy84ohfOwr?OW!%l!r=Crv@O#y>-Nfzc9c#p0 zjE5L|j@9EYVcg2Nhw&ie^vQa7KE{=d+ZcB<9$@UA!op`<$vDEeopBfAKE^|g-Bb1W zJ&X$(moRQ-+{U0#=r|IeQF)n5tX57ZOlW`B@0mjC0di*BiUdEMKy89wi z=Vr!jjQbf6G4@Z_!)s?e$k?2ryZ13JVcg7kfN|zbJv=YtO2!e!y^IGL8?#yXj6HL7 z`x3^jj4S8r?jwx584ohf^yvPJ7&kNSVBE`ih;imTJ^Vt(m5kdM_b?u0oIYO<-@~|& zaS7uv<5tEUjJp~4Gah2>K3-3s$+(cQpK*k7JL7J~eT)YgyBFx`@h~o8T*1-_1*~7SyaWP}>a@~LXi8`mBth0x4H)H=A z-F*k+0mkN9-Myc2C*xtpC8y~A!;IS*cQNi~Jj8hL3_X0`CY_5JH#2Ty+{w6yaX({Y zvmRd|;}XUZ#_f!I822;oEz#ripQrOssm{fIo%I^L8GE<0@XB@e zGA>~pX57xWi?J`LhhNOtIA6DK-l=mN<8H?NjE5MztM%|q#y-ZCj3bOQ!+LmL#(u`l zjN2J^F)pst!*6fU+0&$R5##1&-M*V~TZ?XQep6>3V?X0&#vP2i8GA0&!|!4ozDTzp zWNhr!?Y)eP7<(eR`$EQk#vP3N8GH8W;h7if+|Ia*aq}g*`!2>Mm+AK1jE5NeF4x^x zGVWmPzCw3zG9GHx?FX;a*?*PJJ&cDKmt3v8Z)Mzejc(u1IP+TF-p{z5vHLpRebMzg zw=p)`bbCMJUdBU=-8bm|3mLaE?qTe^QTHEV+|9V3vHvFBe;eZ-#;v#L?tSe#r+-^# z5940OMYrkhjoWpOFdk;ydx!4c_>Rt9jC&b}zpK0V+^KUf9{iKe-a(x!8Mia;WnA=U-G3Y7UdEC4b@!c&dl(n~O?Mw=+{(Cv zaUbJB#*raC{5Hn@jE5Mz|3~+4GWL9|+xr=Z|Eb%zGj}OnQ*WDL7bS`n~+`+hqvEkC)hZ%P>?q{5tr2F?L z>paM~HAT1YVH{4??S~onjn?hmV|4CjoHGvhYKos4@J4>BHNY@DyBH=VJ`*vq(xv7d1><2J^fjC&aOGah2>-l?bGWb9*H z%(#+qgmF9LF2=o#2N(}CPOsL}>tS5TxP-BvaWmsK#+{6N822$AWNg&v>CI&9Wn9GA z&$yX!E8`Bv-HiJf4>C4tS$Y|J85c43Gj3+w#<-Jl595BuLyX<(TQW30nv8vniy70m zXvlwr*|#$8VBE>Li*YyO9>%?l`xy5#9$-AoI6bV_pNDZF;}XVU#;uGy75#Pj4n;ALAm%e#T+O5yowdI~aE{?qS@=c!2Q`W1~*bUpixxv6pcn<6_2s#$m=0 z#%+u{7$IpVaBbDI~aE}?qfX2*ii4Gr13kGv6pcX;}XVU#;uGy7EC4OVO+$xn6aO6 zGvijq?TkAacQfu|Y+R_P*JNDC*w46!kA#f-y@n;Ew;?qb}>c#!chWA{Eizb0c3V=rSL<08g>#%+w-8Fw-6 zWjw%mm~r~WdVV~N3mKO%4l{0L+`+h;aUbJB#>ORj`Z5`N85c43Gj3+w#<-Jl595Bu zLyX;*>ghEZ`xqB9u4Eix+|Ia*aWCTm#>0%$FVoZOVO+?#gmIX0E8`Bv-HiJf4>C3` z*VC8D*vq(xv7d1><5tFhp~@w5#tiZm5f^%cQNi}+{3t+ z@c`pt#_6qkeoe+c#zl-v7*{fGX57lSopC4QZpOWg`xy^19%k&mQqONDV-Mp(#wCoy zj9VFZFz#mD%ebHMAYB+{_2zw&Rod>=xpC`ijF#JJF`jCeh55E-ip9DV# z4#xZ=S6b4K+>9^c2ZP}!!@s_N#@r)!srS{QJDJkos`KDzo!w(~HqvzNW!ybZ zx9=LSbMrAe7f#T*$EUMdpmX|ioqZ?h9A?~BtlPJ3(z$iB&h9gHE-cZx^DLcV09v zp38OjC5)S|(CstT`zNJ|nXCsP`E~`Eflwk9vO&*=Ihb+Yd4>QSXN#_eHPk z?)%mIO31$WQ{BE>y+4HPi`4r(hzHgCIEc;hvHlSIzoLmccd7SRko(r-bo-+DI=ipZ zxzEynWB6f9f0F{-Z0T>1`z`$ovft95Ah$8@we%-wKg_tu(!Zd+$I`zbmst82XOM6B(E$tb(#L}LTi!ALEx!uyz?3(!ouFU)Z&&>P)ADZ|FXAO=`yhEQfc+teWudl%! z6aQXs;@`Jt;u~Bp)Xy6+cC{IDxfSy5cF5Ik$g};BtAmicFCk~IA-Bx@Mt>67Zwz_g zKiN-Ax%(da|9pfzmHn&Kej@utDJS2d{bv<&c~|oi^`Z4x&#z_TFT*Ru)8|?bev1E zWHW>dYWi2gUE{(U4oQZ6F5@<@Q(0U8e_FXi8TfBV!HHvgl{ZJC5TU=fX(^r!{CTxZ z&pBg%m2W$0$+GF+regG6{jX&mu5u#odVlKg$AENubYZ-CG-=%LxqX!-I!6iq$f~~_ zH{{p4Xj}dDTridLnk5TPQk|kdXASdn?*G8;>-lARZW-3-NZP*kA72af-o1f*#J^n6 Ku`Q&0v;9BPd0_ki diff --git a/spl-tokens/anchor/tests/fixtures/ephemeral_token_program.so b/spl-tokens/anchor/tests/fixtures/ephemeral_token_program.so deleted file mode 100755 index 9d42d8ca9fb5532dbb22c24068dca9164fdf5d49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44472 zcmd^o4Rlr4b>`L2Gcx%R#(uV}gyCVp$V#4(goFh76UG=p;vkG)q>yS!&*E7UKa!rF z1UlTLmL20LOgbamu}w(gNCF#}x(&1X1MTX}qn&nz{;Y)Q%(S#k8r(E3le8-&Z5q-^ zqS@d6x$nL!5!=mL)73S{=Iy)p+2?QXefHV++;guU+wy@2N=r&SOJ&{&mp` zM`8P7p&PVvr9?)1b<>g`g=dBA8LUv;t!(G3RM}15Lv-a<)-Ya0ow(_1|MV)5Kh4ZM zyKFOR_q=l?H;gUj-6A*|rsS^>c#d$0*7DuTI?h0SfA)v3J^iaS2CNIZxq-;?Sms#{w5}b>5GUGFR$1{r&pf++6-8#cBA2 z&gE4PdF@{nxxT7 z*%|3y?sn+_>PJpa$6<00#zk^~yw5?Xlw4Y1yksq3K#vo2mA^yi$)%`G_$L6>F2IL+ z@*%nO|B%Kf=0J8R6Qy{?cUd5PgrlqZX;7&i`iK5iP5`5E3!r|geGv2GL`&ZK zR?f-igdx92VC5=-*)0O&v2wN#v&*2L^*?0&#HeN@cfXGNJ}DO+cgz$0SKcl8u3uoh z;x-;|HZ23olvH^n3NK#rAk*U|KVa_~r(e)x-dmYoMZdpxTW;<#)V72 zUGdY3-=_F9QYvcN^8lwq=0 zHzWP*t^S6zJ0tz`+~2S;wt>=3B@NBA6I-r@nOY9|9*A9;=`JMN%4NgFDl-n_yxt`y`i7;jOS+< z^%l{1`hPq(=T~3lF+r{g=9BsBS6^XznEyQUUuHVwk@~FEg{s)hG-WF<&k3EFENalWawJ#`FENAIi{oC#z?y>D974GeK6r<_UE|9)fG3% zdPl|s{UIN|EB^#n=V4uGc~P$Mi+Yxlsk>8RSJ^BTpcF6Z;`;KBGwO8^`A1Y=yyW3h z*k!s`=0Uz*^7|-1L6=(zRuin!@gbK;UUKP!OaUGJ0v$CZS8Qjx`F(%)rJo?r-+e*h zS%uRIrxZ>o99Gz)uw7xR!a9Wsg-aBA3a^QNc3%WVU5Bng%t{~OZ&A~70Nt=ANohgyG#~h%xBme><0SI*U=9p=obPc|1G%A z=j0Phz~-SI=q)|K*&IpXY$%)eC0tz16l z)iML-#VwI}v66Da^8)iJnf)Pmz`ZQ%QZ_C9p>+dd3;e4)rR&g0JIG$D^joEE1YLHD zalcyqPj*sq^*`AO#nu00&411JKjKeB&yY`oO8V7mf7N1t&;vB!?-e@$A0|sq{b7;( zAg_~@NeS`JWs+Aou7tmXyiYMdVNFWDDhWsGgCFFbY^Qc*pUwxVB=ns-#eO>Ig z`dUEeepg>*yr`elFUKJ$m5*U(t1q#6E2lQA#F`gb$7zKDNyGpA+V zREwW=Gt-JsGIYA$xmjHYYyXn_*IWJP4EG(Eak&}c_pASk>25~q^Q*t5xcYM)Z*+WS zcVYSzt-pRXtIrG5Cz&qt3)3f!5fzew#gUq23Yd+xNxk&o8^<@MyIiHqODb?y&dd3D(euAc1&1!CS?kmb3@ z>lnh`mR6<`4@ulvqT@Bymdd_h!)=3USsog?9f9;(2Dzd-VvGKy|>E|EabQh1gar;+ZSg4=p zn{N6x>ig6;?>zR?`uRtX{5(&aXD3d**ZP?%ffpow(Yk;}Y_!7(~_G^B`y*$D8Q1EMF$L4PrQEz||^27e>D=4SyuH~b?UnRQ9+pn%-IUIPJ8l>be7Toy5anan| zcQ&K^&PpjyVwlUY7RbJ5q?|h;{f{XfiJ;|E+QPR6=J{)gv9xShJFKf!tx(ihf$yYInx&(V!fdZv!$lqz{U z$B`CKyT{w9b%~ELzL+O*krT7^+z70QSX9niXFL4 zjC$@qt!J~=bHCLyCFNQs1=dUmtQu!%{=ly|#(2zoj4ddAM(i>D@>fMZY0jqpe^v7v zdAzp267&9y>3w8R31U5@FfYwhxlzuCzMhTv)w_rva)iCaE56Q_VfssEFLT5HcKm7w zkMqXGe>wz1s8cB_6y;)|DMp4`~a zh<#yxPE$>&f8P!K%y($M|1>{y-wpiCnj$|VexcxJ1pjG%=6AI`?55ynq?|h;{SW(@ zRvHWZOoGNkeum>Cienju^`U-7@;8cqU%=0BKI{|R-oBT{^36IbAoqkq76Z3wAZcv;g<4ezc zmB$nFKEigMKJ#wwSIqk`<8CDx3MDr>!LY0GMX|S);*Z>@_@S=G&obTiRo$ut^SiMr zDYxYX&QFzb2toVy>fdhbbjCVEuAD%DH+P|$|>DOhxL5P%s z_HP+xylc}xa(=4pFBmVPuV5iU*G=Xs-K@RKbIz7|Mc7T0NL@GgCo0E0L_FF2`T#V--3@dpnn-}BANtOO0 z+dbwLa>DV-M@i*kMc}mkgEL$~`po@mhZSrXn6G~vS!ezol|g?Yf7B0)Nj@&m8-OEJ zN@mrLX8O6ltUd>bmoBATvJ>5Jaw9d2FS@^I z_#2rg=oBTFYh{S%XGQlHn_rdrQaZ-@F4&LAaa`w4jI%slLp$fEN{77!UAfr_rsqYR zyzhg4yH)rlI5y63*%s-5`9*sk;+{0V3FhnCqVxSp5(p(XHmP)-?`pU1h)C28Pf32e z&iC>z#@&+)JlE987q8iVQxEgaYrm;q={IP9-LT~Evi2Wj+}*0<8rAl1<}0!Z*tx@OR;I@GtJ9 z`ahC8`#-v^WB;dq&Ye{M*DCc?whPRzQ~#&>%I=YQn%jP!*M;!?J;zVmHSQ<=1Xba0 z*ZYK{vi_RgoFlPfLipQd|H_$P-6;DVeyzp>p>eT)tyMp&`%K|+ik~g^qnPioSc~Jr z{D{{Uy6dZvx%O~K#3nOY;iVevrr7~{#?;axm$d76Re-yw90 ziy#K}OYkRQfAbZ}5$lmMPyxjOjHJ(eK<2A5*giY0|6HG&vHNI=bKQ)|P3~*mjOg3s zV(X{L!|sQI{Re6s6$kS@O9G(eX662*YpKrntaQlDN;_RkBlB$}A>~d;zq(e6y+cpf zfk~Bb=6v9ghnv>tRi$E(snYj(FM(cK!+h-b!{-$m)ISlB{_4I?XF7W*9+N^ph6aV8*UQ~L-50wu~xtA_U z{=?>nRL{Mf?YZ)CzPMrB*Nah-e#$2RydduD)q2V&l^$t-kJ?RaO7gcz`|&awAf;S_ zK`^gu9vIzUEb~4*za_4kzfUQCV*Wm7XJp>@13w|{LLcG%ar0yF0}qfbq|f{u&&Tvk zCquiR&r2A>PoFV_L!>sqcNk^FTTc)ZdUxM zUn}D_f0`gNPql3(KZW$g-~-*_L+>X&)YM<^&UmMZys z-JkOh%l#+%_awPyyN?a;&*4%1PrGma2+CoSQnK=>ua)TVQ%J%7oId}2J^OQC)ACq{ z3-`^sKX*#{ZTocoahWf4f5Gwz%O7@Xew_B>IDdirWTyK^#V>@*%l@0L=QA>%MKrFS z$b8`EZ6Q5ky${cWt)$cROb^?Cs^my;e~gtcSP$(v+8${qf1kh(QX_3&@O?8VF}4Ph zx8`r9d`ywt-N>bV<`IGBFAM%v{8N}N{&kG~tLqi}#W@(LE+_7o_Wy*wY$aw3wOh}C z>k65{Z|M%>mMLFwIXWf0g1@0Y8P7#6L6#=w|CQzfSpU6t4;R;o;(C z19O0GwpH_6mA^&tmVjUM**gd5X4^HtUHRJ-ZwvTgH}SHrIY2ktqxn6`->Gm-^ zUe+-ONatlVe^~kZ74HxDvGT^tcFqCPeU#=;DF3+P;{iYBL%i($bAWDkO7o|be^T+u zfS=q1@o$*}bhFc%Kdt=76h9X5BjSmdy>AZC&7Rf#v&w&3@zVi6xj*9HFbC*nFKGS+ zOeE46afM7p+M)tE~Y>lAr zVZUMfgt-T#oUISGzm0nKQ^!xEk;Nr-&m;tIR{<|LaKoqVJC|Kjy2<#~m^s ziN7*ZKWvoFwJ85PbzXiz<|XkrN9wneO&49 z7UqMT*F@@({7pfAPozIGf8N9SxKByY)gguP(&nJtXG8X4aUJv_>sATdRm_u(eDq^i zq@T;ErkGb3)c1#xev03EXOREZP|ME=wyD3MarY* zmk`toj;Cv}rIowBZ zoRvs09p?%VmnLtzlW~9hRgPC&jnwPx`Oa3(_VNb>2IonRUK9Q&h3>?idCp1u%RWg0 zp=9^h!Twj9_HRI7*C%zKr47=heh&!j`s8)-yTV52@wHzA0=u^9{uhl4s*1~F6R%g- zuRu;GrJq@C7x!J0Bu6_R2^@0OxDKE5`)5 z9CCtust3tGdPU;G-Ip0=M@8>Ahg-yt#e$L>ZD$BMBKb!XESLPa;MfnSVS3d(dMDGD zFx}r?!4T(u+CV?d!=v*&*SR0L-L;&bJAMyC+tc{}W92_l`3x z=zmz~$NL%Pb{`kG{WA;;`adT4I+;IC!VAydv%>x^X0FNE-CxIYe#81-e}nnI{x#n;;X_xD}I*t*@eEqxkTOvot1jA-*=s!%i=r+xkj=djXz$Jbuk>bApR*lrz?~C zx3>%2*rx4uGIXo8-w*<&;5qy@#S`ksMC_hhBZ{zdMl5e~(fjs_d`$lP_D*p9=I{6I zonn07-eHE=r-TLj)iPgfUicd)C7i`x(dmCGHb*)xXTRTah3P^?i}? z?1~!3bJgbpe#p(9JBIhA`zfBG_a*{9#C?ACMaIK?zs!6Wn2vb&!t>k&|Im9}O!p68 z7r6ME!0lHB?iM|V>+7NV!p}j@13w{kLLOHLcPHDpynCsgA@uwT*@2ts5&CSW)Q_8Q zN*2fY)h*Y6TRdrc3Af*QjoNDkmprS-%Ihy~<#MaNU*r2ce`7o2^xT1=+bQSsvG2D1 zb6k{v{Eao7pDGbUfqXs~&aakyw^N>n`PFq&-!6G>X7eX|yR82O`{-mo=$roc&e1=> zVBP1|$qp9xFkh}ZE%nw(#=h!d#wm;w`&r!2c)T3DL{cAM{uF*m4#fC4$;F+PamP4X zlznx!zdPhT)|}p}6ysL>~pY3r_E)a5>xer1wb~ z$9))5_*_O0$<6#R{1j5m+rZF0&cMsYr6BGTSf3UTT70SgI~zwX={ctJlK7Eg-j~_l zF+ac&w&%O;y z5tF|?k28LIKa|edOF#6zP}5`J=T36-^4?X%-#}jZO_Gl|5B)Oz1?veBv7W>{8DCi5 zosjnmDR1}B?he7j@eu_6+aX2J1$OmI zedgcnKHpVH16@^mpF`C^RVlrH&pyD_@N-qZzqR`aVj?lkW%d5OJFR?F9{05!$VWXT z(!Re~>>zs(wUhkRPR&o5-wOPdu+jP=_L0>C9JWrTEUvM65X3t(Z1<=aDdv5Fard&! zM>iw>zBdi)p)-e%GYHlL`))&Fev6+#|1edPn;zr(!h9H^UoCzmUM|n^!ugOey)VuF z1@(|gQ#}Xg)stX8@mKNk5q@45uBV3c#jl|r%+2H`c@7Zft7AU#gYohKel8cz$9(du z#b2Txs3N&Zo&$vWTAA-O_d8zR!_VKs`E8tkHW(N5p4{}2dE;tlzVlj72R~;E*VD=Q z7lL}Q;v_dcG_Rf>=DVo%e2|}~!B6yquImNHgZ=pACV3739QuJD2E=;Y{vusy!u%a2 zh1l~fTX$`q`qdTJz>0e4f0El0#@$Yj;X?1-U5Ed8Ng6=?|3Gm_dgezwp7gBD!`{0k zzxQ^rLyJf938A}(q}^QYTHZ&oeYRBDao+I*4*fe_Kb*K7FDtK}(Q|vL(ch@goAn$Z z^_T0j_=MuOAEU*>c;sA*E1`)@iTtVLtG|LA5=?KCei4o-NO2V7h-c1zmI#_Ceqnm} z{sJ}AzJc_^{DZxZE8B)FZwM@>@#Z2LFUp1eY8}Znysl0HSGnW8=1Zgp=pCLj|1A9g z%CLg{%Q#z0Sie)jIQn0dGWhkYCz+1%3x1k$nnwYh$5nld@o+!UFT77O{-Tt{FYKb4 z`k0-ObvswxF|S+)l_S3r)SsYoe)TZp{@(t8F7oeTe7^iU13q+}{1D@IzQWF*INk3m z><7xY+>F|fj^95nbz548bv=Gs z%9%fOr_~?Lh`q(>xgwIC8;X}f+tmMU4EQ`7;u4GlFj)_)p?o|l7vwE>Y+yyvBN>b7BfFDZHTYtiox9I=@Jc z7?EE)F7?#PeZF7Yskqz+`?W2K*C?z~SfTK`)NALr_1xm?{Z7W}iYC$L2|54dre*%c zD^wq|B0t#I6wPnQ9d_;XyuE9ZeE%VZ_g&|Hfsa(c@jpWvEXJFxl6>2*=_4X6Ch9jT zmr8xm7s~ni+$!vE*1``dpDU^10+{Q#qW8ZUxAHNb{nT$=4^t(wjyqkqQYCU;+3drW zBHE+*UMly$@sh%GyDOo65VutL{DeTa6r-j7CImX|x1WI2sQp_Qc)ny)e+0+6Qv80p z_?bfgaaRI+xyoQ!T&Y$<)4x<;JG10kt(TUf}53iChsIay+-+{KWr~E zic_IiXdJlzUO^=E|5vE4-ovN4es}6R`(^*=wBR#h=e7?==d#3)uSjr(?k=&T@V*q* zF*^5p4Gi>tJHx!%K$!0s^~2w&_ouZIUs~Mh@0B<+EdM1~FE!3FKkiQGdUx^?_Y33s zEowJ?W(m*p_|5kI*>di0xV{S1r|Ut!m$O+O@WJUb6;^KiAdS^VDJ(jVI|!Ta58U;RS2vmqwW80V5- zBfe|Yf7c}Q+Wg(>Sc{jSqN$tZ{yk35e+OtBbWVsXw0#ZRCr|6Xd9T`cFFqJU3Hm_I zaXr6a=dQ3Gf&=T^qx3KNjPlbp+QB@l`T}Z@1pE0WvE)YuuhjL>JtDZ%_X>I&1<%X& zl~-x;JC&s-z2vj_rFNw`56?eANtL&P?5)0eGq)eKa~qRA+izjNLh};yoVrB&AW~n< z6F)%lDeEbFixiBPEawW~M=-9WexJeiC(X_)pOJRVPv&$z2+L~)vA{oULp{%uV1d)M z$;*q#D^FvyIKoF^O>2^#J>;i^%golROuyC(1VkK8-tVf83rYx{)^SoV!h+eYeryB)F|N z{vCpc{SM#9H^|sv2S{ee80XVu3n)*`dv;%+Dt#0C8{CI2xZba6MKxZq-mhs;> zrcQ8CKfRY$!#LW3pY7Fg!Z#!3KdeyL$lqT70VuYQjCqfm>AwFu=%@!#U;#klDW?cs}F$)$);Nq=;Wb}_!T$b4B#b*E=O&E?Z4rJk5~ zC&W(ulla3utMN$f1oQbD#~HehgNy7*?ZEW!PKwmy@h|d8A(T=^ zr*@IthIWSj(X%XPJFj0jUnTn|VR|Q(ptw`?qx&t06WT!ED0=m4#cp!Df0Oxgi+@Al z_VWzsJry3PTglBYpjVyODkt}^rq|!&4i@w({^yPB711u~;s3c_ud=+u`m3RS*m=A# zUG#dH`TgUU7#8$;QRuaD|DW6aJ;rm3zbkP2HHP%Q5$iR37Y~=empnkC%BA1PNzHqyoFU-}}a5;KEvq(+_ z`5fX7xKo;M=PqBTe6qtoT`t*S5x_io44WJ}WxQiiIkeBCiyYci4y_D>=c|WXguYkq zUve9Z&)MZ_dpMuoOTB>{J|uE@S@ZY2F+0ijyoMZlZXkyqlfxAEFQ19ZVR9Z_J*% z@4q~+-pjN;7v0C>zWyY4i=VrX6OR6oYJ>43PQtnlxgh?f_a|A;y-P(4HnL$cgnbT>-<<%#TB^qQjdLaJ^u;8Ev|LjH2-;pN5~;jT9(myK%It!gE;6p z$+zeE!TICoXh4+QL4jR%{uqM>{WeU?l1h}wyc$KTt|^i-%m)RaA<%=hQ{^5Rxb}lS9 zk9u6sqrN2l%i;#)rP6nFwB5_nuNmn-?%Se%t{?u3rU7PvJK4$nCa=K1k-XTy&B(lnc^?

S?A!La?fJN`=dNu&<@U;Xm3@0Z#`W2{k=y-IssAn=ufCt-AJutK zBlhVZof5tp;j{DL?k?$%UpvA1_Ix!}+Qb=twTzSQyEPwHMSf#k{D9em8S?KF#nP6+?@`IU%Wr&OeGB1o`?sbKpq1#kzj# zxoC@*^IIhUM(Zfz=~cvH`?KM7?xUoC`d$F{D@=!7*tupr4=LKO(C0P0UxRw}?;M2J z->98UtDRxo?xe^)urI1#>`U}w?{%Z!xG(NqK|hpiJ+blH-`|f zbzq;qH?Z&Mc%Ua(kbihWaJpuEvDmT6zjyJcIp66%fWP>d;t6iRUo84{IzJ117nD!! zR_(<0?fu1KF9o|5d%^hWf707kE+5v=r%v?976~BBRQ9F z4>S1NrGF?7JIN=c+*Sh6Qw~8OrC`2l9C3)&odnUBJ+~a$UV2>OvOX%5ApA=TF^`ZA zd|WER{uQMO{-vM%!*aDl_iuW)Na+Pv%#6?m#$F zO6R%RGscM{0jtaDqK5SPLOb)>cWB=8oOIA|cS7WYzt4r#LH6(i>WIn9&R5*Cz8$gK;MrGJ?6>tRh2sv zsrz&JRgzz+a?fuT{16R4L6?2hFF@0a^&?ZR-*qTo!si(?<@fMBvUNOO{t+rg&!Nh9 zu|BY$gD%EAaTKUWa51DzxxQ~+uJ4zm&El zc{ATX#LHWG%|JQO?fDPd6&#jL@0*wF`{v~h^1gZbyZ8-Wl#6q@70icng10iBDcASS z%a`-{N$}&oBgSvROaBDlsQmiAdHLJq{d?lSgZWXb@Cz=Ah?lS8ot1d`T7JHO`Vk_< zSPH@~_`O^{UY_9RWAXBL@cZWAU&{Ovh@t<2ld)5Z)41U$z$f235Ca6C;478yW`5s1 zUcQ*$yUwp>GWA2|JNVH;@I6n$;hMs7Ks&S#%>}^^6OZxeWgN(fv2+E;42!Wg1jjtJ z_oq=FCxF6oAQItnE(rNp0qpOM0f)zlaWAF5+ZY!=g!~f5Ax+806Eph`3i2Tt^FP4x zXr_0k$g8)W5K4g`R=*rxr?1jHvw4|f>mxs^&n^AiWx@x~-R#`Zb*73>T2d;zscvi$;!Yxe2>!$Ri;5#K;=$?J%dPRqJi zE$hF@!`??iI}=6i$a)Vxh$eXNXo2^YAV0ra;)k$Y5l`7Z2(7C2lR908JooYsOMR(Q)e~jo332*%@e7D|sViiUYOh@UmLNa> z2ordH0$-~1J|?(_d%P)e1;n~~jCiT`kSBpA1K%D!)x zr}=@DS3|-$&k!EmPx5F`|J}^zs>CjnHIjWd#L8j)Ob|W!41S^CYob4$-}an3e~hy| zJMVz;;V<)9JYwzGd^SJ%FOl05)Ko!k@QNh=C&gcw+-aYi`$^x^X7~%l13lXJ^B_M+ zHs3=(lx%(@-hK!DbEl+S!LELj>p?zJ{ATf!X18`O()^Hpmln?p(GHHGkXg^A%Edk_ zhq;=<_xd!>aMPl%nD;B(URKP?L)-|BB5nk<`_)Xv_vZ3cuf-SkcN)`6>$m~GR^~7C z2ukk?p=Xz(7SdEn7oPyc6dr9mQ`hSpEQl8vb znq4lU{$AHh3+R?9D(@{eWyyPB1+~DQn(?Z zWPT*@MsiOAzaYHKukV@vEbF+e$6`-!WF4O-y;!{R)7J4< z>Aw7pjPJs~vGM)h8yw%2e`Di2L*sibyM+D0KU*9LJMyMsp^|L>xnQT_hr)Jqh3!fF zZkR51_Qvh=^~RaMK;z5bA^pTUj}^UxekiP-vvZfraZ^Mox$2V)?LKe$7DoAg8=fS& z>j)EUzbOBZ<&=Luj_r$@`H>9e@{Bbcbl{q^{mh>4oOwq%>KvD zNmg!>{CH`cFY@hzcM#xlX#XoEY!3Qi@4sY6g&+GFSOLGJ5b+>XiRWN|8M+_NlU#r! z1^)Ub`Fr4n_)+##DtnlX;~tbp97M(EQl&A@I79%VsFZNTt3v!i37LQ~ZyWPvw=(eh zNL<`Mg|;4K7HRwwtkb&Q%5v-3^U6b14lJi=T<8bZYa)3&#-;x5eu0&30_{5%ww?s# zHI6$(kjtz5y7y@LC$+pjC-|4Quj}ttsqc-p4|yl3XxGxel=V^9G20h&rzJkH`xDqH z^pS6p_Lhq|2kWVST;yu;J@(7y=szUD?q(?mxsYhR?nc2YRX$ZDEcpVSz_m&TKTN>v zGv6xZ;-z9}HgDX^(tcdOf8Rlk{D@c)7o*?sFBb?VpI$+~Vz(Cv+I>cT7pOEo*>0it z*WSgrm9uf%dr^p|FA#^nTjbQI_Gt5h4&>YXikBvkP2-m5)|F2&8l1oGAhDu~ zK85ht;d$qJgg;N?MZ!Ggc|+GcZwRv8tDos!0xs%Lf&u#l=pXSc`ya9^B)lJi6!ZRp z$B%Zy_G9r?_flr_4iR8Giqy~jJReGAFrW7Gv3bZ-tr!S;rquq8c8$p?V+rEpX9GuB>3`SEBobo;3r0Ri4VR7T0(_k_N%vyzNsm$cAc714{@(SBoGKee3{SL5y5 zDbT(TiE^-Odv6Hm@3?TkfO@q<0Tfj`Ckw)aHVP$Bv}{#>Q**Q_q7;+=Bz z6A5z0JWDn~+JXbxzDT9&F^@q}s=Py>!-S*c4-14JLOqZls!l#E@A-YK9#pCi#zU!6 z{hY;7l`7Y4O7e3L3q*aW=fJJHPW1>q7nG0( zqD1}WTJ3)zPw7_R4@_P@CN8BwPIS$3Dwq4fkJ)?75jo{naWO6@@{n=bK0MZKI8?h& zHhGx-OkU@tnxel~Pj6hkFS+zq&cXh5Azj;?Tq+I)9HPn^=@NGRUV_Wj?_)ggBmA)h{ZO+0BN{?Km`FeH1BMfP z%-&<})^#5Kv5=_0x}k5+_3XQo$vrau;5nWaiqrEuB%6ob!scb@IVakU_UFI~oj+6t za$2@x5sH&s1kU5vb9#`U@QZYV=P6v8{2svs{ri$alZVMYUh;0rp?+%r4$bbV=OOfH${oE7@8j7uh3tM7nk1$4$?2t z*HOYXV4#Q1pvd=^F^+EKx4#o(`!|Ou6XP*D?68s&$^v$;#Ff}*IR06ybjS&D*pT|o zKEh$ICRfxC`?m7{%j*cCWaI6lK{XK`)(h;~+Fh>oVjh5Qeir_vkS=XDy6HXm4xm0~ zvG2v8y#y6ReSmh~g8L?>E6m?bnUoIE{74YA?@F#!`&kQv1HF|2$6*QJ6we{8)%ZDx zZ?i(T`^BWZRulZ4Ad9yVZzhN}-z@xZI8gp358n}PAMe+f#mO!^~vNLou~i5`x%>e=GXJ{k`&Br%&f^wEsJF9V%WwmUuh%NPXe>59f~%#~~q(Lc;p{ z?}=Xd3Bk?I>3lZJ!sOZAEBR)>aXqgd^Zp%YpnsSVQU7877V{nXxUZm3FU+}@WLy~v zFn&U`7@sB}{|2TYU3+XtToBtQqQ4ixgesbM1%1(as^jU_i4m5oYiDWATz2zAmos+G7^?ELT6Zn)C>NZuEkj6I^~- zAfM$@AOG49wG(?ABRedv?~y#yC**|sG2R40%o{*kPj`q~yrEGdQo_2GAc*x0@G)I? zjPEgv4>nOIC5!Xz-06;Xp-1Dm6l68VCB@t@CmDE++GQEsA@T-}sllnEg|9~D?Ps(4Z`F8&w=t=4G^c12O=}GC3BlNUHBjCl#x3)ZI?DeO5Z=4}}n85-G`*wouQG&VT8Y5zzjy~k}E92gx)?;kjv*)uS> zCo`TH8XHXvJ(_rgc=qHrCPw=+iT#>B7BOplI@WHdW9 zI8acjHmg}592(s+I5gJRujKb4sGLl2|}_Gg0T(&M{GTp!2`_Ko&$8Ska* zAWtQPe5;6R$n|d<;uf`8t(#hZ2x1)192hoXrUr9k!^1-(qcjeeJD48PBHQ*uvHN!% z8q65!!SuLRl!IJ1?cYDtn}!|a7VgwT8Iti(uU1HqIv-!1INb8$PyN{%M_i4Q}Arcuf3vvJ(6Pe^Fy0@06_{dN%&HJH| zg1ey7-Mw0z=6=+z^bQ?3Ffd9PkI=l#jQnhlC0cpNV~q|CB@Uzqop_@}&4KiIqP{8d z4slWMNz|{u2c<{da3-hS92*_jk87+pSgGzI-cfeZVnO7j>+0(2>l*6T)iu^N)vd2< zu4}2=P+wPHU*Ax_uD-FpseXNZbA3zwhK9O^`i6#vbq$RTO%3ZCnj2agHms{#SHG@- zmb%7uP3zXLYhKr~ZbM^TV|`;o#H?D75zkYr5`j+(@n(LbDn;V+fH8(alHLq`OZfs zuBEZ1sbzgjb4yFhh7Huk4b=Pws(J$z+dw3l9J$f-$f!;aTbU&1(V>wVUYVQ^jgmq}d;1f6GC6Vr>|G+P zwz756o`!}SO!^Om%Pz8fi}&ry*h+NydXc=VO`!y*Fuj{7RyIt(pXjK)CqzB(1)}RVjaM7u|8=5=`}enmTO0kvXZ`y}qQ8xBq*nU36c>~#Kj(QX<&uBH zeB(s1aWoL0><-KLZqYJf`h7%Oh>r1T=;ej^@wUK1{O=CY-y3T85u)1|PGD=3GSkLY|J1hKVOW$kMO%f{7a6@*?J>I^V7tyw{y&Lh;WlT2u~7jV+Q^i z!sYG;nCCr2{jq+_?tsMj$TOMr%mOR)^Adt$N*XTm*?-{wJU2H4co097Y@7VbG^4zy zi7VI>lIir)jNr1%?RlRPv}jyPdR+kHSxTdtqIebQtPU79DZa5`?p$?(nyo`AwAS$?}3w&4>I{89wJ$UE|d^22JdRz9HRgAV#vUtE8C z1RsvzQxW`P1iv1^tMoq6+G~m6oe_LIf**_E=Og!1VsSF9@@UrhvWi{L#Gd?JEh ze@}6J*WX)=SK;QEl8txrfnxmX)?)l@TQRQ3(t`5++luqs-(QS-JBsni2!1JoU)@>E zKfS9Mzoh#v*8j_?;(YHz#dsouw?*)45q!9_xO}_r|5$rh(#83SfnxmX-eUZEwixdj zDaJ2E@S4NL`I8a6!Y|J6kKk7$c-u#d`7cHAnvWIddrubQEfM@;1g|?%%zu&AZX}b} zYVT`eyi48xbi5xURpzQM6sxU&BwUpbSswdTV%#uD6C?sYLBkKk94I z_0saEb$vAanEFe@&%Tw5bN|Ze@=_=tU7dV)As=16d|xr%@<=gW)mMybqNti0X-7_|Ez*f5f{Z~b3SG#fiJ=uh1* N%0*k4NY~N!|1a#q_`m=F diff --git a/spl-tokens/anchor/tests/spl-tokens.ts b/spl-tokens/anchor/tests/spl-tokens.ts index 5fea3d53..6daeb26b 100644 --- a/spl-tokens/anchor/tests/spl-tokens.ts +++ b/spl-tokens/anchor/tests/spl-tokens.ts @@ -1,23 +1,22 @@ import * as anchor from "@coral-xyz/anchor"; -import { BN, Program } from "@coral-xyz/anchor"; -import { - Keypair, - LAMPORTS_PER_SOL, - PublicKey, - SystemProgram, -} from "@solana/web3.js"; - +import { BN } from "@coral-xyz/anchor"; +import { MagicSVM } from "@magicblock-labs/magicsvm"; import { + AccountLayout, TOKEN_PROGRAM_ID, - getAssociatedTokenAddressSync, createAssociatedTokenAccountInstruction, - getAccount, createInitializeMintInstruction, - MINT_SIZE, - getMinimumBalanceForRentExemptMint, createMintToInstruction, + getAssociatedTokenAddressSync, } from "@solana/spl-token"; -import { SplTokens } from "../target/types/spl_tokens"; +import { + Keypair, + LAMPORTS_PER_SOL, + PublicKey, + SystemProgram, + Transaction, +} from "@solana/web3.js"; +import { assert } from "chai"; import { delegateSpl, deriveEphemeralAta, @@ -27,136 +26,67 @@ import { undelegateIx, withdrawSpl, } from "@magicblock-labs/ephemeral-rollups-sdk"; -import { assert } from "chai"; - -describe("spl-tokens", () => { - console.log("spl-tokens.ts"); - - const provider = process.env.PROVIDER_ENDPOINT - ? new anchor.AnchorProvider( - new anchor.web3.Connection(process.env.PROVIDER_ENDPOINT, "confirmed"), - anchor.Wallet.local(), - ) - : anchor.AnchorProvider.env(); - anchor.setProvider(provider); - const connection = provider.connection; - const validator = new PublicKey( - process.env.VALIDATOR || "mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev", - ); - console.log("Validator: ", validator.toBase58()); - - const providerEphemeralRollup = new anchor.AnchorProvider( - new anchor.web3.Connection( - process.env.EPHEMERAL_PROVIDER_ENDPOINT || - "https://devnet-as.magicblock.app/", - { - wsEndpoint: - process.env.EPHEMERAL_WS_ENDPOINT || - "wss://devnet-as.magicblock.app/", - }, - ), - anchor.Wallet.local(), - ); - console.log( - "Ephemeral Rollup Connection: ", - providerEphemeralRollup.connection.rpcEndpoint, - ); - const ephemeralConnection = providerEphemeralRollup.connection; - - let mint: Keypair; - let recipientA: Keypair; - let recipientB: Keypair; - - const TOKEN_AMOUNT = 1000n; - - const sleep = async (ms: number): Promise => { - await new Promise((resolve) => setTimeout(resolve, ms)); - }; - - /** - * Base-layer delegation can confirm before the ER has cloned the token - * account. Poll the ER view before sending transfer instructions that write - * those delegated accounts. - */ - const waitForErTokenAccount = async ( - ata: PublicKey, - expectedAmount: bigint, - ): Promise => { - let lastError: unknown; - for (let attempt = 0; attempt < 60; attempt += 1) { - try { - const account = await getAccount(ephemeralConnection, ata); - if (account.amount === expectedAmount) { - return; - } - lastError = new Error( - `expected ${expectedAmount}, got ${account.amount}`, - ); - } catch (error) { - lastError = error; - } - await sleep(500); - } - - throw new Error( - `Timed out waiting for ER token account ${ata.toBase58()}: ${lastError}`, - ); - }; +import { + bootAnchorSvm, + sendSvmTx, + accountOwner, +} from "@magicblock-labs/test-utils"; +import { SplTokens } from "../target/types/spl_tokens"; - // Poll the base layer until `account` is owned by the ephemeral SPL token - // program again, i.e. the ER's commit + undelegate for it has landed. - const waitForUndelegation = async (account: PublicKey): Promise => { - let lastError: unknown; - for (let attempt = 0; attempt < 60; attempt += 1) { - if (attempt > 0) { - await sleep(1000); - } - try { - const info = await connection.getAccountInfo(account, "confirmed"); - if (info?.owner.equals(EPHEMERAL_SPL_TOKEN_PROGRAM_ID)) { - return; - } - lastError = new Error( - `expected ${EPHEMERAL_SPL_TOKEN_PROGRAM_ID.toBase58()}, got ${info?.owner.toBase58() ?? "missing account"}`, - ); - } catch (error) { - lastError = error; - } - } - throw new Error( - `${account.toBase58()} was not undelegated back to the base layer in time: ${lastError}`, - ); +const MINT_SIZE = 82; +const TOKEN_AMOUNT = 1000n; + +function tokenAmount( + svm: MagicSVM, + ata: PublicKey, + target: "base" | "ephemeral", +): bigint { + const account = svm.getAccountFor(ata, { target }); + if (!account.exists) { + throw new Error(`missing token account ${ata.toBase58()} on ${target}`); + } + return AccountLayout.decode(Buffer.from(account.data)).amount; +} + +describe("spl-tokens magicsvm", () => { + const createHarness = () => { + const { + svm, + payer: admin, + program, + validator, + } = bootAnchorSvm({ + fromDir: __dirname, + programName: "spl_tokens", + airdropLamports: BigInt(10 * LAMPORTS_PER_SOL), + }); + return { admin, program, svm, validator: new PublicKey(validator) }; }; - /** - * Create a fresh mint and two recipients, each funded with SOL and holding - * {@link TOKEN_AMOUNT} SPL tokens. Returns the mint, owners and their ATAs. - */ - const setupMintWithRecipients = async (): Promise<{ + const setupMintWithRecipients = ( + svm: MagicSVM, + admin: Keypair, + ): { mint: Keypair; owners: [Keypair, Keypair]; atas: [PublicKey, PublicKey]; - }> => { - const payer = (provider.wallet as anchor.Wallet).payer; - + } => { const newMint = Keypair.generate(); const owner1 = Keypair.generate(); const owner2 = Keypair.generate(); - /// We need to fund the sponsor PDA to pay for the rent of the shuttles const [sponsorPda] = deriveRentPda(); - // fund recipients from payer wallet (avoids faucet rate limits / 429s) - const fundTx = new anchor.web3.Transaction(); + const fundTx = new Transaction(); for (const r of [owner1.publicKey, owner2.publicKey, sponsorPda]) { fundTx.add( SystemProgram.transfer({ - fromPubkey: payer.publicKey, + fromPubkey: admin.publicKey, toPubkey: r, lamports: 0.2 * LAMPORTS_PER_SOL, }), ); } - await anchor.web3.sendAndConfirmTransaction(connection, fundTx, [payer]); + sendSvmTx(svm, [admin], fundTx, "base", "fund recipients"); const ata1 = getAssociatedTokenAddressSync( newMint.publicKey, @@ -167,62 +97,54 @@ describe("spl-tokens", () => { owner2.publicKey, ); - const tx = new anchor.web3.Transaction().add( - // create mint + const tx = new Transaction().add( SystemProgram.createAccount({ - fromPubkey: payer.publicKey, + fromPubkey: admin.publicKey, newAccountPubkey: newMint.publicKey, space: MINT_SIZE, - lamports: await getMinimumBalanceForRentExemptMint(connection), + lamports: Number(svm.minimumBalanceForRentExemption(BigInt(MINT_SIZE))), programId: TOKEN_PROGRAM_ID, }), createInitializeMintInstruction( newMint.publicKey, 0, - payer.publicKey, + admin.publicKey, null, ), - - // create ATAs createAssociatedTokenAccountInstruction( - payer.publicKey, + admin.publicKey, ata1, owner1.publicKey, newMint.publicKey, ), createAssociatedTokenAccountInstruction( - payer.publicKey, + admin.publicKey, ata2, owner2.publicKey, newMint.publicKey, ), - - // mint tokens createMintToInstruction( newMint.publicKey, ata1, - payer.publicKey, + admin.publicKey, TOKEN_AMOUNT, ), createMintToInstruction( newMint.publicKey, ata2, - payer.publicKey, + admin.publicKey, TOKEN_AMOUNT, ), ); + sendSvmTx(svm, [admin, newMint], tx, "base", "create mint and ATAs"); - await provider.sendAndConfirm(tx, [payer, newMint], { - commitment: "confirmed", - }); - - const acct1 = await getAccount(connection, ata1); - const acct2 = await getAccount(connection, ata2); - if (acct1.amount !== TOKEN_AMOUNT) { - throw new Error(`owner1 expected ${TOKEN_AMOUNT}, got ${acct1.amount}`); + const acct1 = tokenAmount(svm, ata1, "base"); + const acct2 = tokenAmount(svm, ata2, "base"); + if (acct1 !== TOKEN_AMOUNT) { + throw new Error(`owner1 expected ${TOKEN_AMOUNT}, got ${acct1}`); } - if (acct2.amount !== TOKEN_AMOUNT) { - throw new Error(`owner2 expected ${TOKEN_AMOUNT}, got ${acct2.amount}`); + if (acct2 !== TOKEN_AMOUNT) { + throw new Error(`owner2 expected ${TOKEN_AMOUNT}, got ${acct2}`); } return { @@ -232,40 +154,28 @@ describe("spl-tokens", () => { }; }; - /** - * Setup 2 recipients, with 1000 SPL tokens each for a random mint - */ - before(async () => { - const setup = await setupMintWithRecipients(); - mint = setup.mint; - [recipientA, recipientB] = setup.owners; - }); - it("Delegate SPL tokens, do a transfer and undelegate", async () => { - const admin = (provider.wallet as anchor.Wallet).payer; + const { admin, svm, validator } = createHarness(); + console.log("spl-tokens.ts (magicsvm)"); + console.log("Validator: ", validator.toBase58()); + const { + mint, + owners: [recipientA, recipientB], + atas: [ataA, ataB], + } = setupMintWithRecipients(svm, admin); + console.log("\nUser1: ", recipientA.publicKey.toBase58()); console.log("User2: ", recipientB.publicKey.toBase58()); - const ataA = getAssociatedTokenAddressSync( - mint.publicKey, - recipientA.publicKey, - ); - const ataB = getAssociatedTokenAddressSync( - mint.publicKey, - recipientB.publicKey, - ); - assert((await getAccount(connection, ataA)).amount == 1000n); - assert((await getAccount(connection, ataB)).amount == 1000n); + assert(tokenAmount(svm, ataA, "base") == 1000n); + assert(tokenAmount(svm, ataB, "base") == 1000n); - // Legacy vault flow — must match undelegateIx/withdrawSpl below (the SDK's - // default idempotent shuttle path uses a different account layout). const delegateOpts = { validator, idempotent: false as const, payer: admin.publicKey, }; - // A's delegation creates the shared vault for this mint; B reuses it. const delegations: [Keypair, bigint, boolean][] = [ [recipientA, 50n, true], [recipientB, 10n, false], @@ -275,18 +185,26 @@ describe("spl-tokens", () => { ...delegateOpts, initVaultIfMissing, }); - await provider.sendAndConfirm( - new anchor.web3.Transaction().add(...ixs), - [owner, admin], - { commitment: "confirmed", skipPreflight: true }, + sendSvmTx( + svm, + [admin, owner], + new Transaction().add(...ixs), + "base", + `delegate ${owner.publicKey.toBase58()}`, ); } - await Promise.all([ - waitForErTokenAccount(ataA, 50n), - waitForErTokenAccount(ataB, 10n), - ]); - // Transfer 2 tokens A -> B inside the ER via the SDK helper. + const erAAfterDelegate = tokenAmount(svm, ataA, "ephemeral"); + const erBAfterDelegate = tokenAmount(svm, ataB, "ephemeral"); + assert( + erAAfterDelegate == 50n, + `A ER balance after delegate ${erAAfterDelegate}`, + ); + assert( + erBAfterDelegate == 10n, + `B ER balance after delegate ${erBAfterDelegate}`, + ); + const transferIxs = await transferSpl( recipientA.publicKey, recipientB.publicKey, @@ -298,96 +216,72 @@ describe("spl-tokens", () => { toBalance: "ephemeral", }, ); - const sgnTransfer = await providerEphemeralRollup.sendAndConfirm( - new anchor.web3.Transaction().add(...transferIxs), + sendSvmTx( + svm, [recipientA], - { commitment: "confirmed", skipPreflight: true }, + new Transaction().add(...transferIxs), + "ephemeral", + "ER transfer", ); - console.log(`\nTransfer signature: ${sgnTransfer}`); - // Check balances in the ER - const acctA = await getAccount(ephemeralConnection, ataA); - const acctB = await getAccount(ephemeralConnection, ataB); - assert(acctA.amount == 48n); - assert(acctB.amount == 12n); + const acctA = tokenAmount(svm, ataA, "ephemeral"); + const acctB = tokenAmount(svm, ataB, "ephemeral"); + assert(acctA == 48n); + assert(acctB == 12n); - // Undelegate each owner in the ER (one per tx — combined undelegates are flaky - // in CI). Withdraw runs on the base layer and requires each ephemeral ATA to be - // owned by the SDK program again, which only happens once that owner's - // undelegation has committed back to base — so wait for BOTH before - // withdrawing (waiting for one races the other's withdraw → InvalidAccountOwner). - // Ownership is polled on the base layer rather than resolved through the ER's - // commit signature: the local committor can re-send the finalize tx after a - // transient error and the duplicate then fails on-chain (the original already - // landed), which surfaces as "Unable to find Commitment signature". for (const owner of [recipientA, recipientB]) { - const sgn = await providerEphemeralRollup.sendAndConfirm( - new anchor.web3.Transaction().add( - undelegateIx(owner.publicKey, mint.publicKey), - ), + sendSvmTx( + svm, [owner], - { commitment: "confirmed", skipPreflight: true }, + new Transaction().add(undelegateIx(owner.publicKey, mint.publicKey)), + "ephemeral", + `undelegate ${owner.publicKey.toBase58()}`, + ); + } + + for (const owner of [recipientA, recipientB]) { + const [eata] = deriveEphemeralAta(owner.publicKey, mint.publicKey); + assert( + accountOwner(svm, eata, "base") === + EPHEMERAL_SPL_TOKEN_PROGRAM_ID.toString(), + `${eata.toBase58()} was not undelegated back to ESPL`, ); - console.log(`Undelegate ${owner.publicKey.toBase58()} signature: ${sgn}`); } - await Promise.all( - [recipientA, recipientB].map((owner) => - waitForUndelegation( - deriveEphemeralAta(owner.publicKey, mint.publicKey)[0], - ), - ), - ); - // Withdraw both balances back to their base-layer ATAs via the SDK helper. const withdrawIxs = [ - ...(await withdrawSpl( - recipientA.publicKey, - mint.publicKey, - acctA.amount, - { - idempotent: false, - }, - )), - ...(await withdrawSpl( - recipientB.publicKey, - mint.publicKey, - acctB.amount, - { - idempotent: false, - }, - )), + ...(await withdrawSpl(recipientA.publicKey, mint.publicKey, acctA, { + idempotent: false, + })), + ...(await withdrawSpl(recipientB.publicKey, mint.publicKey, acctB, { + idempotent: false, + })), ]; - await provider.sendAndConfirm( - new anchor.web3.Transaction().add(...withdrawIxs), - [recipientA, recipientB], - { commitment: "confirmed" }, + sendSvmTx( + svm, + [admin, recipientA, recipientB], + new Transaction().add(...withdrawIxs), + "base", + "withdraw", ); - // Check balances - assert((await getAccount(connection, ataA)).amount == 998n); - assert((await getAccount(connection, ataB)).amount == 1002n); + assert(tokenAmount(svm, ataA, "base") == 998n); + assert(tokenAmount(svm, ataB, "base") == 1002n); }); - const program = anchor.workspace.SplTokens as Program; - it("Delegate SPL tokens and do a transfer through a program", async () => { - const admin = (provider.wallet as anchor.Wallet).payer; + const { admin, program, svm, validator } = createHarness(); const delegateOpts = { validator, idempotent: false as const, payer: admin.publicKey, }; - // Use a fresh mint + fresh recipients so this test does not depend on the - // delegate/undelegate lifecycle of the first test. const { mint: mint2, owners: [sender, receiver], atas: [ataSender, ataReceiver], - } = await setupMintWithRecipients(); + } = setupMintWithRecipients(svm, admin); - // Delegate 10 tokens for the sender (first delegation for this mint creates - // the vault) and 10 for the receiver. const ixsSender = await delegateSpl( sender.publicKey, mint2.publicKey, @@ -397,10 +291,12 @@ describe("spl-tokens", () => { initVaultIfMissing: true, }, ); - await provider.sendAndConfirm( - new anchor.web3.Transaction().add(...ixsSender), - [sender, admin], - { commitment: "confirmed", skipPreflight: true }, + sendSvmTx( + svm, + [admin, sender], + new Transaction().add(...ixsSender), + "base", + "delegate sender", ); const ixsReceiver = await delegateSpl( @@ -409,17 +305,25 @@ describe("spl-tokens", () => { 10n, { ...delegateOpts, initVaultIfMissing: false }, ); - await provider.sendAndConfirm( - new anchor.web3.Transaction().add(...ixsReceiver), - [receiver, admin], - { commitment: "confirmed", skipPreflight: true }, + sendSvmTx( + svm, + [admin, receiver], + new Transaction().add(...ixsReceiver), + "base", + "delegate receiver", + ); + + const erSenderAfterDelegate = tokenAmount(svm, ataSender, "ephemeral"); + const erReceiverAfterDelegate = tokenAmount(svm, ataReceiver, "ephemeral"); + assert( + erSenderAfterDelegate == 10n, + `sender ER balance after delegate ${erSenderAfterDelegate}`, + ); + assert( + erReceiverAfterDelegate == 10n, + `receiver ER balance after delegate ${erReceiverAfterDelegate}`, ); - await Promise.all([ - waitForErTokenAccount(ataSender, 10n), - waitForErTokenAccount(ataReceiver, 10n), - ]); - /// Transfer some tokens in the ER through the program const txT = await program.methods .transfer(new BN(2)) .accounts({ @@ -428,29 +332,11 @@ describe("spl-tokens", () => { to: ataReceiver, }) .transaction(); - txT.recentBlockhash = ( - await ephemeralConnection.getLatestBlockhash() - ).blockhash; - txT.sign(sender); + sendSvmTx(svm, [sender], txT, "ephemeral", "program transfer"); - const sgn = await ephemeralConnection.sendRawTransaction(txT.serialize(), { - skipPreflight: true, - }); - const conf = await ephemeralConnection.confirmTransaction(sgn, "confirmed"); - if (conf.value.err) { - throw new Error( - `Program transfer failed: ${JSON.stringify(conf.value.err)}`, - ); - } - console.log(`\nTransfer signature: ${sgn}`); - - // Verify the transfer actually moved tokens inside the ER. - const erSender = await getAccount(ephemeralConnection, ataSender); - const erReceiver = await getAccount(ephemeralConnection, ataReceiver); - assert(erSender.amount == 8n, `sender ER balance ${erSender.amount}`); - assert( - erReceiver.amount == 12n, - `receiver ER balance ${erReceiver.amount}`, - ); + const erSender = tokenAmount(svm, ataSender, "ephemeral"); + const erReceiver = tokenAmount(svm, ataReceiver, "ephemeral"); + assert(erSender == 8n, `sender ER balance ${erSender}`); + assert(erReceiver == 12n, `receiver ER balance ${erReceiver}`); }); }); From 6da5e39f3b3c3718dffaa5d4ac4de1509cadafb5 Mon Sep 17 00:00:00 2001 From: dhruvja Date: Wed, 23 Sep 2026 17:55:42 +0700 Subject: [PATCH 5/9] ci: run MagicSVM examples in-process with prebuilt anchor and build caches --- .github/workflows/test-examples.yml | 6 ++- .github/workflows/test-magicsvm.yml | 64 ++++++++++++++++++++++++++--- README.md | 58 +++++++++++++++----------- scripts/projects.sh | 24 ++++++----- scripts/test-magicsvm.sh | 23 +++++++---- 5 files changed, 125 insertions(+), 50 deletions(-) diff --git a/.github/workflows/test-examples.yml b/.github/workflows/test-examples.yml index 68316ae1..67a969ea 100644 --- a/.github/workflows/test-examples.yml +++ b/.github/workflows/test-examples.yml @@ -102,8 +102,12 @@ jobs: echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH - name: Install Anchor + # Prebuilt release binary: building anchor-cli from source took ~5 min per job. run: | - cargo install --git https://github.com/solana-foundation/anchor --tag v1.0.2 anchor-cli + curl -sSfL -o /tmp/anchor \ + https://github.com/solana-foundation/anchor/releases/download/v1.0.2/anchor-1.0.2-x86_64-unknown-linux-gnu + sudo install -m 755 /tmp/anchor /usr/local/bin/anchor + anchor --version - name: Install MagicBlock Ephemeral Validator run: | diff --git a/.github/workflows/test-magicsvm.yml b/.github/workflows/test-magicsvm.yml index 26d84808..72d7dcb3 100644 --- a/.github/workflows/test-magicsvm.yml +++ b/.github/workflows/test-magicsvm.yml @@ -1,4 +1,4 @@ -name: Test MagicsVM +name: Test MagicSVM on: push: @@ -12,7 +12,7 @@ concurrency: cancel-in-progress: true jobs: - # Emit MagicsVM example names as JSON so the test job can fan out one runner + # Emit MagicSVM example names as JSON so the test job can fan out one runner # per example. Source of truth: MAGICSVM_PROJECTS in scripts/projects.sh. list-examples: runs-on: ubuntu-latest @@ -26,7 +26,10 @@ jobs: . scripts/projects.sh echo "matrix=$(magicsvm_projects_json)" >> "$GITHUB_OUTPUT" - # In-process MagicsVM tests: no local validators, VRF oracle, or TEE stack. + # In-process MagicSVM tests: no local validators, VRF oracle, or TEE stack. + # The tests themselves take seconds; the job time is toolchain install plus + # `anchor build`, so Anchor comes from its prebuilt binary and the program and + # Rust-suite build outputs are cached between runs. test-magicsvm: needs: list-examples name: magicsvm (${{ matrix.example }}) @@ -35,13 +38,30 @@ jobs: fail-fast: false matrix: example: ${{ fromJSON(needs.list-examples.outputs.matrix) }} + env: + # One native target dir for every example's tests-magicsvm-rs suite: they share + # the same magicsvm/solana dependency graph, so one cache serves all of them. + MAGICSVM_RS_TARGET_DIR: ${{ github.workspace }}/.magicsvm-rs-target steps: - uses: actions/checkout@v4 + - name: Resolve example directory + id: dir + run: | + # shellcheck source=scripts/projects.sh + . scripts/projects.sh + echo "dir=$(project_dir "${{ matrix.example }}")" >> "$GITHUB_OUTPUT" + - name: Setup Node.js uses: actions/setup-node@v4 with: + # Pin 24.10 — MagicSVM's @solana/errors@8.3.0 pulls commander@15, + # which requires Node >=22.12. Example READMEs document 24.10.0. node-version: "24.10" + cache: yarn + cache-dependency-path: | + ${{ steps.dir.outputs.dir }}/yarn.lock + test-utils/ts/yarn.lock - name: Enable Corepack run: | @@ -54,7 +74,7 @@ jobs: with: toolchain: "1.89.0" - - name: Setup Rust nightly (MagicsVM tests) + - name: Setup Rust nightly (MagicSVM Rust suites) uses: dtolnay/rust-toolchain@nightly with: toolchain: nightly @@ -76,10 +96,42 @@ jobs: echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH - name: Install Anchor + # Prebuilt release binary: building anchor-cli from source took ~5 min per job. run: | - cargo install --git https://github.com/solana-foundation/anchor --tag v1.0.2 anchor-cli + curl -sSfL -o /tmp/anchor \ + https://github.com/solana-foundation/anchor/releases/download/v1.0.2/anchor-1.0.2-x86_64-unknown-linux-gnu + sudo install -m 755 /tmp/anchor /usr/local/bin/anchor + anchor --version + + # Program build cache (per example): the SBF toolchain download plus the + # example's target/ so `anchor build` / `cargo build-sbf` only recompiles the + # program crate itself. + - name: Cache program build + uses: actions/cache@v4 + with: + path: | + ~/.cache/solana + ${{ steps.dir.outputs.dir }}/target + key: magicsvm-program-${{ matrix.example }}-${{ hashFiles(format('{0}/Cargo.lock', steps.dir.outputs.dir)) }}-${{ hashFiles(format('{0}/programs/**', steps.dir.outputs.dir), format('{0}/src/**', steps.dir.outputs.dir), format('{0}/Cargo.toml', steps.dir.outputs.dir)) }} + restore-keys: | + magicsvm-program-${{ matrix.example }}-${{ hashFiles(format('{0}/Cargo.lock', steps.dir.outputs.dir)) }}- + magicsvm-program-${{ matrix.example }}- + + # Cargo registry plus the shared native target dir for the Rust MagicSVM suites. + - name: Cache Rust suite build + uses: actions/cache@v4 + with: + path: | + ~/.cargo/registry/index + ~/.cargo/registry/cache + ~/.cargo/git/db + ${{ env.MAGICSVM_RS_TARGET_DIR }} + key: magicsvm-rs-${{ hashFiles('**/tests-magicsvm-rs/Cargo.lock', 'test-utils/rust/Cargo.lock') }}-${{ matrix.example }} + restore-keys: | + magicsvm-rs-${{ hashFiles('**/tests-magicsvm-rs/Cargo.lock', 'test-utils/rust/Cargo.lock') }}- + magicsvm-rs- - - name: Test MagicsVM ${{ matrix.example }} + - name: Test MagicSVM ${{ matrix.example }} env: EXACT_MATCH: "1" run: bash scripts/test-magicsvm.sh "${{ matrix.example }}" diff --git a/README.md b/README.md index d358caf9..f00d8814 100644 --- a/README.md +++ b/README.md @@ -297,9 +297,32 @@ Deployed frontends for the examples that ship a UI. ## Testing -To run local tests for any example project, use the following steps: +Most examples test in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): a base +layer and an Ephemeral Rollup in one process, no validators and no network. -1. **Install Dependencies (Local nodes + example directory):** +```bash +cd +yarn install +yarn build +yarn test +``` + +The TypeScript suite lives in each example's `tests/`; most examples also ship a Rust suite in +`tests-magicsvm-rs/` (`yarn test:magicsvm:rs`, needs a nightly toolchain). Shared helpers are in +`test-utils/ts` and `test-utils/rust`. To run every MagicSVM example from the repo root: + +```bash +bash scripts/test-magicsvm.sh # all MagicSVM examples +bash scripts/test-magicsvm.sh spl-tokens # one example (substring match) +``` + +### Examples that still need local nodes + +MagicSVM does not simulate scheduled tasks, the VRF oracle, or the private-permission flow yet, so +`crank-counter`, `gachapon-example`, `roll-dice` (Anchor and Pinocchio), `rewards-delegated-vrf` +and `sealed-auction` run against a local MagicBlock cluster instead: + +1. **Install the local nodes and the example:** ```bash npm install -g @magicblock-labs/ephemeral-validator@latest @@ -307,36 +330,21 @@ To run local tests for any example project, use the following steps: yarn install ``` -2. **Setup local nodes:** +2. **Start the local nodes** (builds the example, boots the validators, holds them until a key press): ```bash yarn setup ``` -3. **Run Tests Locally:** - ```bash -yarn test:local -``` - -**Example:** To test the `pinocchio-roll-dice` example: - -```bash -cd roll-dice/pinocchio -yarn build -yarn test:local -``` - -### MagicsVM tests - -In-process MagicsVM tests (no local validators) live under `tests-magicsvm/` and `tests-magicsvm-rs/`. Shared helpers are in `test-utils/ts` (TypeScript) and `test-utils/rust` (Rust). +3. **Run the tests against them** in a second terminal: -```bash -bash scripts/test-magicsvm.sh # every example that has MagicsVM tests -bash scripts/test-magicsvm.sh spl-tokens # one example (substring match) -``` - -CI runs the same script per example via `.github/workflows/test-magicsvm.yml`. + ```bash + yarn test:local + ``` +CI mirrors this split: `.github/workflows/test-magicsvm.yml` runs one MagicSVM job per example and +`.github/workflows/test-examples.yml` runs the validator-based examples. Both matrices come from +`scripts/projects.sh`. ### Local nodes diff --git a/scripts/projects.sh b/scripts/projects.sh index 3fe408f4..ef1a7402 100755 --- a/scripts/projects.sh +++ b/scripts/projects.sh @@ -1,24 +1,28 @@ #!/bin/bash -# Single source of truth for the example projects, grouped by the test phase that -# runs them. The project name is the stable CLI/CI identifier; project_dir maps -# that identifier to its location in the use-case/framework folder layout. Each -# project exposes `yarn build` (compile only) and `yarn test:local` (the local -# test subset). +# Single source of truth for the example projects. The project name is the stable +# CLI/CI identifier; project_dir maps that identifier to its location in the +# use-case/framework folder layout. Every project exposes `yarn build`; MagicSVM +# projects expose `yarn test` (in-process), validator projects `yarn test:local`. # # Sourced by: # - scripts/test-locally.sh (full suite, runs every phase) # - scripts/test-example.sh (one example per invocation — CI matrix entry point) -# - the CI matrix generator (reads projects_json to fan out one runner per example) +# - scripts/test-magicsvm.sh (MagicSVM projects, no validators) +# - the CI matrix generators (projects_json / magicsvm_projects_json) # # Keep this list in sync when adding/removing examples; both the local runner and # CI pick it up automatically. -REGULAR_PROJECTS=(anchor-counter binary-prediction crank-counter delegation-actions ephemeral-account-chats gachapon-example magic-actions oracle-priced-purchase pinocchio-counter rust-counter session-keys spl-tokens) +# Validator-based examples, grouped by the phase (validators/oracles) they need. Only the +# examples MagicSVM cannot simulate yet stay here: scheduled tasks (crank-counter), the VRF +# oracle (gachapon-example, roll-dice, pinocchio-roll-dice, rewards-delegated-vrf) and the +# private-permission flow of sealed-auction (see sealed-auction/anchor/MAGICSVM_FLAWS.md). +REGULAR_PROJECTS=(crank-counter gachapon-example) VRF_PROJECTS=(rewards-delegated-vrf roll-dice pinocchio-roll-dice) -TEE_PROJECTS=(private-counter pinocchio-private-counter rock-paper-scissor sealed-auction) +TEE_PROJECTS=(sealed-auction) -# Examples that ship MagicsVM tests (TS and/or Rust). Independent of validator -# phases above — MagicsVM does not need a local cluster. +# Examples whose `yarn test` runs in-process on MagicSVM (TypeScript; most also ship a Rust +# suite under tests-magicsvm-rs/ run by `yarn test:magicsvm:rs`). No local cluster needed. MAGICSVM_PROJECTS=(anchor-counter rust-counter pinocchio-counter private-counter pinocchio-private-counter oracle-priced-purchase oncurve-delegation rock-paper-scissor ephemeral-account-chats session-keys binary-prediction magic-actions delegation-actions spl-tokens) ALL_PROJECTS=("${REGULAR_PROJECTS[@]}" "${VRF_PROJECTS[@]}" "${TEE_PROJECTS[@]}") diff --git a/scripts/test-magicsvm.sh b/scripts/test-magicsvm.sh index 828383a1..0904e8dd 100755 --- a/scripts/test-magicsvm.sh +++ b/scripts/test-magicsvm.sh @@ -1,7 +1,8 @@ #!/bin/bash -# Run MagicsVM tests (TypeScript and/or Rust) for every example that has them. +# Run the MagicSVM tests (TypeScript `yarn test`, plus the Rust suite when the +# example has one) for every MagicSVM example (MAGICSVM_PROJECTS in projects.sh). # -# MagicsVM tests are in-process and do not start validators. They do need the +# MagicSVM tests are in-process and do not start validators. They do need the # compiled program .so (and IDL, for Anchor examples), so each example is built # first via `yarn build`. # @@ -11,10 +12,11 @@ # # Env: # FAIL_FAST=0 keep going after a failure (default: stop on first) -# SKIP_TS=1 skip yarn test:magicsvm +# SKIP_TS=1 skip yarn test (TypeScript suite) # SKIP_RS=1 skip yarn test:magicsvm:rs # SKIP_BUILD=1 skip yarn build (use existing target/deploy) # EXACT_MATCH=1 require the filter to equal the project name (used by CI) +# MAGICSVM_RS_TARGET_DIR=

CARGO_TARGET_DIR for the Rust suites (CI shares one cache) set -euo pipefail @@ -46,7 +48,7 @@ matches_filter() { fi } -echo "Installing MagicsVM test helpers..." +echo "Installing MagicSVM test helpers..." ( cd "$REPO_ROOT/test-utils/ts" && yarn install --mutex "$YARN_MUTEX" && yarn build ) run_one() { @@ -73,19 +75,24 @@ run_one() { yarn build fi ran=0 - if [ "$SKIP_TS" != "1" ] && grep -q '"test:magicsvm"' package.json; then - yarn test:magicsvm || exit 1 + if [ "$SKIP_TS" != "1" ]; then + yarn test || exit 1 ran=1 fi if [ "$SKIP_RS" != "1" ] && grep -q '"test:magicsvm:rs"' package.json; then - RUSTUP_TOOLCHAIN="${MAGICSVM_RUSTUP_TOOLCHAIN:-nightly}" yarn test:magicsvm:rs || exit 1 + rs_env=() + if [ -n "${MAGICSVM_RS_TARGET_DIR:-}" ]; then + rs_env+=("CARGO_TARGET_DIR=$MAGICSVM_RS_TARGET_DIR") + fi + env ${rs_env[@]+"${rs_env[@]}"} RUSTUP_TOOLCHAIN="${MAGICSVM_RUSTUP_TOOLCHAIN:-nightly}" \ + yarn test:magicsvm:rs || exit 1 ran=1 fi if [ "$ran" -eq 0 ]; then if [ "$SKIP_TS" = "1" ] && [ "$SKIP_RS" = "1" ]; then exit 2 fi - echo "No MagicsVM tests ran for $name (missing scripts or SKIP_TS/SKIP_RS)" + echo "No MagicSVM tests ran for $name (SKIP_TS/SKIP_RS)" exit 1 fi ) From 9d012ec56a752745b8f9d3e90d245fe29d4caa82 Mon Sep 17 00:00:00 2001 From: dhruvja Date: Wed, 23 Sep 2026 18:05:32 +0700 Subject: [PATCH 6/9] fix: point Rust MagicSVM suites at the moved fixtures --- binary-prediction/anchor/tests-magicsvm-rs/tests/magicsvm.rs | 2 +- counter/pinocchio/tsconfig.json | 2 +- private-counter/pinocchio/tsconfig.json | 2 +- session-keys/anchor/tests-magicsvm-rs/tests/magicsvm.rs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/binary-prediction/anchor/tests-magicsvm-rs/tests/magicsvm.rs b/binary-prediction/anchor/tests-magicsvm-rs/tests/magicsvm.rs index 47a6e041..af4dbfdc 100644 --- a/binary-prediction/anchor/tests-magicsvm-rs/tests/magicsvm.rs +++ b/binary-prediction/anchor/tests-magicsvm-rs/tests/magicsvm.rs @@ -81,7 +81,7 @@ fn oracle_so_path() -> PathBuf { fn session_so_path() -> PathBuf { let mut so_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - so_path.push("../tests-magicsvm/fixtures/session-keys.so"); + so_path.push("../tests/fixtures/session-keys.so"); so_path } diff --git a/counter/pinocchio/tsconfig.json b/counter/pinocchio/tsconfig.json index 29a313fc..948855f4 100644 --- a/counter/pinocchio/tsconfig.json +++ b/counter/pinocchio/tsconfig.json @@ -18,6 +18,6 @@ "noImplicitReturns": true, "noFallthroughCasesInSwitch": true }, - "include": ["tests/**/*", "tests-magicsvm/**/*", "src/**/*"], + "include": ["tests/**/*", "src/**/*"], "exclude": ["node_modules", "dist", "target"] } diff --git a/private-counter/pinocchio/tsconfig.json b/private-counter/pinocchio/tsconfig.json index 2bba07b9..42717109 100644 --- a/private-counter/pinocchio/tsconfig.json +++ b/private-counter/pinocchio/tsconfig.json @@ -11,5 +11,5 @@ "forceConsistentCasingInFileNames": true, "noEmit": true }, - "include": ["tests/**/*.ts", "tests-magicsvm/**/*.ts"] + "include": ["tests/**/*.ts"] } diff --git a/session-keys/anchor/tests-magicsvm-rs/tests/magicsvm.rs b/session-keys/anchor/tests-magicsvm-rs/tests/magicsvm.rs index fc9498e8..61fd2e37 100644 --- a/session-keys/anchor/tests-magicsvm-rs/tests/magicsvm.rs +++ b/session-keys/anchor/tests-magicsvm-rs/tests/magicsvm.rs @@ -32,7 +32,7 @@ fn program_so_path() -> PathBuf { } fn session_so_path() -> PathBuf { - PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../tests-magicsvm/fixtures/session-keys.so") + PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../tests/fixtures/session-keys.so") } fn program_id() -> Pubkey { From 2ee6fd980d45c86dcaff3b38d37b74ba7f191fa1 Mon Sep 17 00:00:00 2001 From: dhruvja Date: Thu, 24 Sep 2026 14:41:52 +0700 Subject: [PATCH 7/9] refactor: drop TypeScript MagicSVM tests in favor of the Rust suites --- README.md | 7 +- binary-prediction/anchor/README.md | 4 +- binary-prediction/anchor/package.json | 24 +- .../anchor/tests/binary-prediction.ts | 766 ----- binary-prediction/anchor/tsconfig.json | 11 - binary-prediction/anchor/yarn.lock | 2470 +------------- counter/anchor/README.md | 4 +- counter/anchor/package.json | 23 +- counter/anchor/tests/public-counter.ts | 121 - counter/anchor/tsconfig.json | 11 - counter/anchor/yarn.lock | 1861 +---------- counter/native-rust/README.md | 4 +- counter/native-rust/package.json | 28 +- .../native-rust/tests/rust-counter.test.ts | 398 --- counter/native-rust/tests/schema.ts | 41 - counter/native-rust/tsconfig.json | 23 - counter/native-rust/vitest.config.ts | 9 - counter/native-rust/yarn.lock | 2904 +--------------- counter/pinocchio/README.md | 4 +- counter/pinocchio/package.json | 21 +- .../pinocchio/tests/pinocchio-counter.test.ts | 387 --- counter/pinocchio/tsconfig.json | 23 - counter/pinocchio/vitest.config.ts | 13 - counter/pinocchio/yarn.lock | 2855 +--------------- delegation-actions/anchor/README.md | 4 +- .../anchor/migrations/deploy.ts | 12 - delegation-actions/anchor/package.json | 21 +- .../anchor/tests/delegation-actions.ts | 151 - delegation-actions/anchor/tsconfig.json | 11 - delegation-actions/anchor/yarn.lock | 1904 ----------- ephemeral-account-chats/anchor/README.md | 4 +- ephemeral-account-chats/anchor/package.json | 18 +- .../tests-magicsvm-rs/rust-toolchain.toml | 2 - .../anchor/tests/ephemeral-account-chats.ts | 380 --- ephemeral-account-chats/anchor/tsconfig.json | 12 - ephemeral-account-chats/anchor/yarn.lock | 1877 ----------- magic-actions/anchor/README.md | 4 +- magic-actions/anchor/migrations/deploy.ts | 12 - magic-actions/anchor/package.json | 20 +- magic-actions/anchor/tests/magic-actions.ts | 233 -- magic-actions/anchor/tsconfig.json | 11 - magic-actions/anchor/yarn.lock | 1892 ----------- oncurve-delegation/client/README.md | 60 +- oncurve-delegation/client/package.json | 30 +- .../client/tests/oncurve-delegation.test.ts | 112 - oncurve-delegation/client/vitest.config.ts | 9 - oncurve-delegation/client/yarn.lock | 2942 +---------------- oracle-priced-purchase/anchor/README.md | 4 +- oracle-priced-purchase/anchor/package.json | 21 +- .../anchor/tests/oracle-priced-purchase.ts | 221 -- oracle-priced-purchase/anchor/tsconfig.json | 11 - oracle-priced-purchase/anchor/yarn.lock | 1910 +---------- private-counter/anchor/README.md | 4 +- private-counter/anchor/package.json | 22 +- .../anchor/tests/private-counter.ts | 195 -- private-counter/anchor/tsconfig.json | 12 - private-counter/anchor/yarn.lock | 1873 +---------- private-counter/pinocchio/README.md | 4 +- private-counter/pinocchio/package.json | 19 +- .../tests/pinocchio-private-counter.test.ts | 465 --- private-counter/pinocchio/tsconfig.json | 15 - private-counter/pinocchio/yarn.lock | 2416 +------------- rock-paper-scissor/anchor/README.md | 4 +- rock-paper-scissor/anchor/package.json | 21 +- .../anchor/tests/rock-paper-scissor.ts | 666 ---- rock-paper-scissor/anchor/tsconfig.json | 12 - rock-paper-scissor/anchor/yarn.lock | 1880 +---------- scripts/projects.sh | 4 +- session-keys/anchor/README.md | 4 +- session-keys/anchor/package.json | 23 +- .../anchor/tests/anchor-counter-session.ts | 199 -- session-keys/anchor/tsconfig.json | 11 - .../anchor/utils/initializeKeypair.ts | 60 - session-keys/anchor/yarn.lock | 2158 +----------- spl-tokens/anchor/README.md | 4 +- spl-tokens/anchor/package.json | 23 +- spl-tokens/anchor/tests/spl-tokens.ts | 342 -- spl-tokens/anchor/tsconfig.json | 11 - spl-tokens/anchor/yarn.lock | 2185 +----------- test-utils/ts/package.json | 26 - test-utils/ts/src/index.ts | 369 --- test-utils/ts/tsconfig.json | 14 - test-utils/ts/yarn.lock | 1186 ------- 83 files changed, 104 insertions(+), 38023 deletions(-) delete mode 100644 binary-prediction/anchor/tests/binary-prediction.ts delete mode 100644 binary-prediction/anchor/tsconfig.json delete mode 100644 counter/anchor/tests/public-counter.ts delete mode 100644 counter/anchor/tsconfig.json delete mode 100644 counter/native-rust/tests/rust-counter.test.ts delete mode 100644 counter/native-rust/tests/schema.ts delete mode 100644 counter/native-rust/tsconfig.json delete mode 100644 counter/native-rust/vitest.config.ts delete mode 100644 counter/pinocchio/tests/pinocchio-counter.test.ts delete mode 100644 counter/pinocchio/tsconfig.json delete mode 100644 counter/pinocchio/vitest.config.ts delete mode 100644 delegation-actions/anchor/migrations/deploy.ts delete mode 100644 delegation-actions/anchor/tests/delegation-actions.ts delete mode 100644 delegation-actions/anchor/tsconfig.json delete mode 100644 ephemeral-account-chats/anchor/tests-magicsvm-rs/rust-toolchain.toml delete mode 100644 ephemeral-account-chats/anchor/tests/ephemeral-account-chats.ts delete mode 100644 ephemeral-account-chats/anchor/tsconfig.json delete mode 100644 magic-actions/anchor/migrations/deploy.ts delete mode 100644 magic-actions/anchor/tests/magic-actions.ts delete mode 100644 magic-actions/anchor/tsconfig.json delete mode 100644 oncurve-delegation/client/tests/oncurve-delegation.test.ts delete mode 100644 oncurve-delegation/client/vitest.config.ts delete mode 100644 oracle-priced-purchase/anchor/tests/oracle-priced-purchase.ts delete mode 100644 oracle-priced-purchase/anchor/tsconfig.json delete mode 100644 private-counter/anchor/tests/private-counter.ts delete mode 100644 private-counter/anchor/tsconfig.json delete mode 100644 private-counter/pinocchio/tests/pinocchio-private-counter.test.ts delete mode 100644 private-counter/pinocchio/tsconfig.json delete mode 100644 rock-paper-scissor/anchor/tests/rock-paper-scissor.ts delete mode 100644 rock-paper-scissor/anchor/tsconfig.json delete mode 100644 session-keys/anchor/tests/anchor-counter-session.ts delete mode 100644 session-keys/anchor/tsconfig.json delete mode 100644 session-keys/anchor/utils/initializeKeypair.ts delete mode 100644 spl-tokens/anchor/tests/spl-tokens.ts delete mode 100644 spl-tokens/anchor/tsconfig.json delete mode 100644 test-utils/ts/package.json delete mode 100644 test-utils/ts/src/index.ts delete mode 100644 test-utils/ts/tsconfig.json delete mode 100644 test-utils/ts/yarn.lock diff --git a/README.md b/README.md index f00d8814..c7cba24c 100644 --- a/README.md +++ b/README.md @@ -302,14 +302,13 @@ layer and an Ephemeral Rollup in one process, no validators and no network. ```bash cd -yarn install yarn build yarn test ``` -The TypeScript suite lives in each example's `tests/`; most examples also ship a Rust suite in -`tests-magicsvm-rs/` (`yarn test:magicsvm:rs`, needs a nightly toolchain). Shared helpers are in -`test-utils/ts` and `test-utils/rust`. To run every MagicSVM example from the repo root: +Each example's suite is Rust, in `tests-magicsvm-rs/`; shared helpers are in `test-utils/rust`. +`yarn test` runs `cargo +stable test`, since MagicSVM needs a newer Rust than the 1.89 toolchain +used for program builds. To run every MagicSVM example from the repo root: ```bash bash scripts/test-magicsvm.sh # all MagicSVM examples diff --git a/binary-prediction/anchor/README.md b/binary-prediction/anchor/README.md index a8db3dfe..3eb52101 100644 --- a/binary-prediction/anchor/README.md +++ b/binary-prediction/anchor/README.md @@ -58,7 +58,7 @@ yarn yarn build ``` -Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): +Run the Rust test suite in `tests-magicsvm-rs/` in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash yarn test @@ -68,7 +68,7 @@ MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no va network. The suite runs prediction initialization, betting, settlement, and withdrawal with a vendored session-keys program. -A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. +`yarn test` runs `cargo +stable test`: MagicSVM needs a newer Rust than the 1.89 toolchain used for program builds. ## Client diff --git a/binary-prediction/anchor/package.json b/binary-prediction/anchor/package.json index a900f46e..f4a9f82e 100644 --- a/binary-prediction/anchor/package.json +++ b/binary-prediction/anchor/package.json @@ -2,29 +2,11 @@ "scripts": { "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", - "test": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests/binary-prediction.ts", - "build": "anchor build --ignore-keys", - "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture" - }, - "dependencies": { - "@coral-xyz/anchor": "0.32.1", - "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3", - "@magicblock-labs/gum-sdk": "^3.0.10" + "test": "cargo +stable test --manifest-path tests-magicsvm-rs/Cargo.toml", + "build": "anchor build --ignore-keys" }, "devDependencies": { - "@magicblock-labs/magicsvm": "0.2.0", - "@solana/spl-token": "^0.4.14", - "@types/bn.js": "^5.1.0", - "@types/chai": "^4.3.20", - "@types/mocha": "^10.0.10", - "chai": "^4.5.0", - "mocha": "^11.2.2", - "prettier": "^3.5.3", - "ts-mocha": "^11.1.0", - "ts-node": "^10.9.2", - "tsx": "^4.22.0", - "typescript": "^5.8.3", - "@magicblock-labs/test-utils": "link:../../test-utils/ts" + "prettier": "^3.5.3" }, "license": "MIT", "packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447" diff --git a/binary-prediction/anchor/tests/binary-prediction.ts b/binary-prediction/anchor/tests/binary-prediction.ts deleted file mode 100644 index 90682d33..00000000 --- a/binary-prediction/anchor/tests/binary-prediction.ts +++ /dev/null @@ -1,766 +0,0 @@ -import * as anchor from "@coral-xyz/anchor"; -import * as borsh from "@coral-xyz/borsh"; -import { BN, Program, web3 } from "@coral-xyz/anchor"; -import { - ASSOCIATED_TOKEN_PROGRAM_ID, - createApproveInstruction, - createAssociatedTokenAccountInstruction, - createInitializeMint2Instruction, - createMintToInstruction, - getAssociatedTokenAddressSync, - TOKEN_PROGRAM_ID, -} from "@solana/spl-token"; -import { - DELEGATION_PROGRAM_ID, - delegateSpl, - EPHEMERAL_SPL_TOKEN_PROGRAM_ID, - undelegateIx, - withdrawSpl, -} from "@magicblock-labs/ephemeral-rollups-sdk"; -import { SessionTokenManager } from "@magicblock-labs/gum-sdk"; -import { MagicSVM } from "@magicblock-labs/magicsvm"; -import { airdropOrThrow, sendSvmTx } from "@magicblock-labs/test-utils"; -import { expect } from "chai"; -import * as fs from "fs"; -import * as path from "path"; - -import { BinaryPrediction } from "../target/types/binary_prediction"; - -const ORACLE_PROGRAM_ID = new web3.PublicKey( - "PriCems5tHihc6UDXDjzjeawomAwBduWMGAi8ZUjppd", -); -const SESSION_PROGRAM_ID = new web3.PublicKey( - "KeyspM2ssCJbqUhQ4k7sveSiY4WjnYsrXkC8oDbwde5", -); -const POOL_SEED = Buffer.from("pool"); -const BET_SEED = Buffer.from("bet"); -const PRICE_FEED_SEED = Buffer.from("price_feed"); -const ORACLE_PROVIDER = "pyth-lazer"; -const ORACLE_SYMBOL = "6"; -const STAKE = new BN(100); -const USER_DELEGATION = 300n; -const POOL_SEED_AMOUNT = new BN(10_000); -const BET_DURATION_SECONDS = new BN(5); -const MIN_STAKE = new BN(10); -const PAYOUT_BPS = new BN(19_000); -const MINT_SIZE = 82; - -const INITIALIZE_PRICE_FEED_DISCRIMINATOR = Buffer.from([ - 68, 180, 81, 20, 102, 213, 145, 233, -]); -const UPDATE_PRICE_FEED_DISCRIMINATOR = Buffer.from([ - 28, 9, 93, 150, 86, 153, 188, 115, -]); -const DELEGATE_PRICE_FEED_DISCRIMINATOR = Buffer.from([ - 15, 179, 172, 145, 42, 73, 160, 241, -]); - -const initializePriceFeedLayout = borsh.struct([ - borsh.str("provider"), - borsh.str("symbol"), - borsh.array(borsh.u8(), 32, "feedId"), - borsh.i32("exponent"), -]); -const updatePriceFeedLayout = borsh.struct([ - borsh.str("provider"), - borsh.struct( - [ - borsh.str("symbol"), - borsh.array(borsh.u8(), 32, "id"), - borsh.struct( - [borsh.u64("timestampNs"), borsh.i128("quantizedValue")], - "temporalNumericValue", - ), - borsh.array(borsh.u8(), 32, "publisherMerkleRoot"), - borsh.array(borsh.u8(), 32, "valueComputeAlgHash"), - borsh.array(borsh.u8(), 32, "r"), - borsh.array(borsh.u8(), 32, "s"), - borsh.u8("v"), - ], - "updateData", - ), -]); -const delegatePriceFeedLayout = borsh.struct([ - borsh.str("provider"), - borsh.str("symbol"), -]); - -function pda(seeds: Buffer[], programId: web3.PublicKey): web3.PublicKey { - return web3.PublicKey.findProgramAddressSync(seeds, programId)[0]; -} - -function eata(owner: web3.PublicKey, mint: web3.PublicKey): web3.PublicKey { - return pda( - [owner.toBuffer(), mint.toBuffer()], - EPHEMERAL_SPL_TOKEN_PROGRAM_ID, - ); -} - -function vault(mint: web3.PublicKey): web3.PublicKey { - return pda([mint.toBuffer()], EPHEMERAL_SPL_TOKEN_PROGRAM_ID); -} - -function delegationBuffer( - account: web3.PublicKey, - ownerProgram: web3.PublicKey, -): web3.PublicKey { - return pda([Buffer.from("buffer"), account.toBuffer()], ownerProgram); -} - -function delegationRecord(account: web3.PublicKey): web3.PublicKey { - return pda( - [Buffer.from("delegation"), account.toBuffer()], - DELEGATION_PROGRAM_ID, - ); -} - -function delegationMetadata(account: web3.PublicKey): web3.PublicKey { - return pda( - [Buffer.from("delegation-metadata"), account.toBuffer()], - DELEGATION_PROGRAM_ID, - ); -} - -function priceFeed(): web3.PublicKey { - return pda( - [PRICE_FEED_SEED, Buffer.from(ORACLE_PROVIDER), Buffer.from(ORACLE_SYMBOL)], - ORACLE_PROGRAM_ID, - ); -} - -function betPda( - programId: web3.PublicKey, - user: web3.PublicKey, -): web3.PublicKey { - return pda([BET_SEED, user.toBuffer()], programId); -} - -function encodeInstruction( - discriminator: Buffer, - layout: borsh.Layout, - value: unknown, -): Buffer { - const encoded = Buffer.alloc(1_000); - const span = layout.encode(value, encoded); - - return Buffer.concat([discriminator, encoded.subarray(0, span)]); -} - -function initializePriceFeedIx( - payer: web3.PublicKey, - feed: web3.PublicKey, -): web3.TransactionInstruction { - return new web3.TransactionInstruction({ - programId: ORACLE_PROGRAM_ID, - keys: [ - { pubkey: payer, isSigner: true, isWritable: true }, - { pubkey: feed, isSigner: false, isWritable: true }, - { - pubkey: web3.SystemProgram.programId, - isSigner: false, - isWritable: false, - }, - ], - data: encodeInstruction( - INITIALIZE_PRICE_FEED_DISCRIMINATOR, - initializePriceFeedLayout, - { - provider: ORACLE_PROVIDER, - symbol: ORACLE_SYMBOL, - feedId: Array.from(feed.toBytes()), - exponent: 0, - }, - ), - }); -} - -function updatePriceFeedIx( - payer: web3.PublicKey, - feed: web3.PublicKey, - price: number, - timestampNs: BN, -): web3.TransactionInstruction { - return new web3.TransactionInstruction({ - programId: ORACLE_PROGRAM_ID, - keys: [ - { pubkey: payer, isSigner: true, isWritable: true }, - { pubkey: feed, isSigner: false, isWritable: true }, - ], - data: encodeInstruction( - UPDATE_PRICE_FEED_DISCRIMINATOR, - updatePriceFeedLayout, - { - provider: ORACLE_PROVIDER, - updateData: { - symbol: ORACLE_SYMBOL, - id: Array.from(feed.toBytes()), - temporalNumericValue: { - timestampNs, - quantizedValue: new BN(price), - }, - publisherMerkleRoot: Array(32).fill(0), - valueComputeAlgHash: Array(32).fill(0), - r: Array(32).fill(0), - s: Array(32).fill(0), - v: 0, - }, - }, - ), - }); -} - -function delegatePriceFeedIx( - payer: web3.PublicKey, - feed: web3.PublicKey, -): web3.TransactionInstruction { - return new web3.TransactionInstruction({ - programId: ORACLE_PROGRAM_ID, - keys: [ - { pubkey: payer, isSigner: true, isWritable: true }, - { pubkey: feed, isSigner: false, isWritable: true }, - { - pubkey: delegationBuffer(feed, ORACLE_PROGRAM_ID), - isSigner: false, - isWritable: true, - }, - { pubkey: delegationRecord(feed), isSigner: false, isWritable: true }, - { pubkey: delegationMetadata(feed), isSigner: false, isWritable: true }, - { pubkey: ORACLE_PROGRAM_ID, isSigner: false, isWritable: false }, - { pubkey: DELEGATION_PROGRAM_ID, isSigner: false, isWritable: false }, - { - pubkey: web3.SystemProgram.programId, - isSigner: false, - isWritable: false, - }, - ], - data: encodeInstruction( - DELEGATE_PRICE_FEED_DISCRIMINATOR, - delegatePriceFeedLayout, - { - provider: ORACLE_PROVIDER, - symbol: ORACLE_SYMBOL, - }, - ), - }); -} - -function tokenAmount( - svm: MagicSVM, - address: web3.PublicKey, - target: "base" | "ephemeral", -): bigint { - const account = svm.getAccountFor(address, { target }); - expect(account.exists, `token account missing on ${target}`).to.equal(true); - if (!account.exists) { - throw new Error(`token account missing on ${target}`); - } - return Buffer.from(account.data).readBigUInt64LE(64); -} - -function readPool(svm: MagicSVM, pool: web3.PublicKey) { - const account = svm.getAccount(pool); - expect(account.exists, "pool missing").to.equal(true); - if (!account.exists) { - throw new Error("pool missing"); - } - const data = Buffer.from(account.data); - return { - priceFeedId: data.subarray(104, 136), - betDurationSeconds: Number(data.readBigInt64LE(136)), - minStake: Number(data.readBigUInt64LE(144)), - payoutBps: Number(data.readBigUInt64LE(152)), - }; -} - -function readBet( - svm: MagicSVM, - bet: web3.PublicKey, - target: "base" | "ephemeral", -) { - const account = svm.getAccountFor(bet, { target }); - expect(account.exists, `bet missing on ${target}`).to.equal(true); - if (!account.exists) { - throw new Error(`bet missing on ${target}`); - } - const data = Buffer.from(account.data); - return { - openPrice: Number(data.readBigInt64LE(8)), - stake: Number(data.readBigUInt64LE(25)), - isOpen: data[33] === 1, - }; -} - -function setUnixTimestamp(svm: MagicSVM, unixTimestamp: bigint) { - const clock = svm.getClock(); - clock.unixTimestamp = unixTimestamp; - svm.setClock(clock); -} - -function oracleTimestampNs(svm: MagicSVM): BN { - return new BN(svm.getClock().unixTimestamp.toString()).mul( - new BN(1_000_000_000), - ); -} - -describe("binary-prediction magicsvm", () => { - const soPath = path.resolve( - __dirname, - "..", - "target", - "deploy", - "binary_prediction.so", - ); - const oracleSoPath = path.resolve( - __dirname, - "..", - "tests", - "fixtures", - "ephemeral_oracle.so", - ); - const sessionSoPath = path.resolve(__dirname, "fixtures", "session-keys.so"); - expect(fs.existsSync(soPath), `missing program binary at ${soPath}`).to.equal( - true, - ); - expect( - fs.existsSync(oracleSoPath), - `missing oracle program at ${oracleSoPath}`, - ).to.equal(true); - expect( - fs.existsSync(sessionSoPath), - `missing gum session program at ${sessionSoPath}`, - ).to.equal(true); - - const idl = JSON.parse( - fs.readFileSync( - path.resolve(__dirname, "..", "target", "idl", "binary_prediction.json"), - "utf8", - ), - ); - const admin = web3.Keypair.generate(); - const user = web3.Keypair.generate(); - const sessionKeypair = web3.Keypair.generate(); - const mintKp = web3.Keypair.generate(); - const dummyProvider = new anchor.AnchorProvider( - new web3.Connection("http://127.0.0.1:8899"), - new anchor.Wallet(admin), - { commitment: "confirmed" }, - ); - const program = new Program(idl, dummyProvider); - const sessionTokenManager = new SessionTokenManager( - dummyProvider.wallet, - dummyProvider.connection, - ); - - const svm = new MagicSVM(); - const now = BigInt(Math.floor(Date.now() / 1000)); - setUnixTimestamp(svm, now); - svm.addProgramFromFile(program.programId, soPath); - svm.addProgramFromFile(ORACLE_PROGRAM_ID, oracleSoPath); - svm.addProgramFromFile(SESSION_PROGRAM_ID, sessionSoPath); - airdropOrThrow( - svm, - admin.publicKey, - BigInt(10 * web3.LAMPORTS_PER_SOL), - "airdrop admin", - ); - airdropOrThrow( - svm, - user.publicKey, - BigInt(2 * web3.LAMPORTS_PER_SOL), - "airdrop user", - ); - - const validator = new web3.PublicKey(svm.validatorIdentity().toString()); - const feed = priceFeed(); - const feedId = Array.from(feed.toBytes()); - const userBet = betPda(program.programId, user.publicKey); - const mint = mintKp.publicKey; - const userAta = getAssociatedTokenAddressSync(mint, user.publicKey); - const adminAta = getAssociatedTokenAddressSync(mint, admin.publicKey); - const pool = web3.PublicKey.findProgramAddressSync( - [POOL_SEED, mint.toBuffer()], - program.programId, - )[0]; - const poolAta = getAssociatedTokenAddressSync(mint, pool, true); - const poolEata = eata(pool, mint); - const vaultPda = vault(mint); - const vaultEata = eata(vaultPda, mint); - const vaultAta = getAssociatedTokenAddressSync(mint, vaultPda, true); - const sessionTokenPda = web3.PublicKey.findProgramAddressSync( - [ - Buffer.from("session_token_v2"), - program.programId.toBuffer(), - sessionKeypair.publicKey.toBuffer(), - user.publicKey.toBuffer(), - ], - sessionTokenManager.program.programId, - )[0]; - - it("runs initialize -> bet -> settle -> user withdraw", async () => { - const mintRent = Number( - svm.minimumBalanceForRentExemption(BigInt(MINT_SIZE)), - ); - sendSvmTx( - svm, - [admin, mintKp], - new web3.Transaction().add( - web3.SystemProgram.createAccount({ - fromPubkey: admin.publicKey, - newAccountPubkey: mint, - space: MINT_SIZE, - lamports: mintRent, - programId: TOKEN_PROGRAM_ID, - }), - createInitializeMint2Instruction(mint, 0, admin.publicKey, null), - ), - "base", - "create mint", - ); - - sendSvmTx( - svm, - [admin], - new web3.Transaction().add( - createAssociatedTokenAccountInstruction( - admin.publicKey, - userAta, - user.publicKey, - mint, - ), - createAssociatedTokenAccountInstruction( - admin.publicKey, - adminAta, - admin.publicKey, - mint, - ), - ), - "base", - "create ATAs", - ); - - sendSvmTx( - svm, - [admin], - new web3.Transaction().add( - createMintToInstruction(mint, userAta, admin.publicKey, 1_000n), - createMintToInstruction( - mint, - adminAta, - admin.publicKey, - BigInt(POOL_SEED_AMOUNT.toString()), - ), - ), - "base", - "mint tokens", - ); - - sendSvmTx( - svm, - [admin], - new web3.Transaction().add(initializePriceFeedIx(admin.publicKey, feed)), - "base", - "initialize price feed", - ); - sendSvmTx( - svm, - [admin], - new web3.Transaction().add( - updatePriceFeedIx(admin.publicKey, feed, 100, oracleTimestampNs(svm)), - ), - "base", - "update price feed 100", - ); - - const initializeTx = await program.methods - .initialize( - feed, - feedId, - POOL_SEED_AMOUNT, - BET_DURATION_SECONDS, - MIN_STAKE, - PAYOUT_BPS, - ) - .preInstructions([ - web3.ComputeBudgetProgram.setComputeUnitLimit({ units: 1_400_000 }), - ]) - .accountsPartial({ - admin: admin.publicKey, - mint, - pool, - poolTokenAccount: poolAta, - adminTokenAccount: adminAta, - poolEphemeralAta: poolEata, - vault: vaultPda, - vaultEphemeralAta: vaultEata, - vaultTokenAccount: vaultAta, - poolEataBuffer: delegationBuffer( - poolEata, - EPHEMERAL_SPL_TOKEN_PROGRAM_ID, - ), - poolEataRecord: delegationRecord(poolEata), - poolEataMetadata: delegationMetadata(poolEata), - vaultEataBuffer: delegationBuffer( - vaultEata, - EPHEMERAL_SPL_TOKEN_PROGRAM_ID, - ), - vaultEataRecord: delegationRecord(vaultEata), - vaultEataMetadata: delegationMetadata(vaultEata), - ephemeralTokenProgram: EPHEMERAL_SPL_TOKEN_PROGRAM_ID, - delegationProgram: DELEGATION_PROGRAM_ID, - tokenProgram: TOKEN_PROGRAM_ID, - associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID, - systemProgram: web3.SystemProgram.programId, - }) - .remainingAccounts([ - { pubkey: validator, isSigner: false, isWritable: false }, - ]) - .transaction(); - sendSvmTx(svm, [admin], initializeTx, "base", "initialize"); - - const poolState = readPool(svm, pool); - expect(poolState.betDurationSeconds).to.equal( - BET_DURATION_SECONDS.toNumber(), - ); - expect(Buffer.from(poolState.priceFeedId)).to.deep.equal( - Buffer.from(feedId), - ); - expect(poolState.minStake).to.equal(MIN_STAKE.toNumber()); - expect(poolState.payoutBps).to.equal(PAYOUT_BPS.toNumber()); - expect(tokenAmount(svm, poolAta, "base")).to.equal(0n); - - const initializeBetTx = await program.methods - .initializeBet() - .accountsPartial({ - payer: admin.publicKey, - user: user.publicKey, - bet: userBet, - systemProgram: web3.SystemProgram.programId, - }) - .transaction(); - sendSvmTx(svm, [admin], initializeBetTx, "base", "initialize bet"); - - sendSvmTx( - svm, - [admin], - new web3.Transaction().add(delegatePriceFeedIx(admin.publicKey, feed)), - "base", - "delegate price feed", - ); - - const delegateBetTx = await program.methods - .delegateBet() - .accountsPartial({ - payer: admin.publicKey, - user: user.publicKey, - bet: userBet, - }) - .remainingAccounts([ - { pubkey: validator, isSigner: false, isWritable: false }, - ]) - .transaction(); - sendSvmTx(svm, [admin, user], delegateBetTx, "base", "delegate bet"); - - const delegateUserIxs = await delegateSpl( - user.publicKey, - mint, - USER_DELEGATION, - { - validator, - idempotent: false, - initVaultIfMissing: false, - payer: admin.publicKey, - }, - ); - sendSvmTx( - svm, - [admin, user], - new web3.Transaction().add(...delegateUserIxs), - "base", - "delegate user SPL", - ); - - const placeWalletBetTx = await program.methods - .placeBet({ up: {} }, STAKE) - .accountsPartial({ - payer: user.publicKey, - user: user.publicKey, - mint, - pool, - bet: userBet, - userTokenAccount: userAta, - poolTokenAccount: poolAta, - priceUpdate: feed, - tokenProgram: TOKEN_PROGRAM_ID, - sessionToken: null, - }) - .transaction(); - sendSvmTx( - svm, - [admin, user], - placeWalletBetTx, - "ephemeral", - "place wallet bet", - ); - - let bet = readBet(svm, userBet, "ephemeral"); - expect(bet.openPrice).to.equal(100); - expect(bet.stake).to.equal(STAKE.toNumber()); - expect(bet.isOpen).to.equal(true); - - sendSvmTx( - svm, - [admin], - new web3.Transaction().add( - updatePriceFeedIx(admin.publicKey, feed, 110, oracleTimestampNs(svm)), - ), - "ephemeral", - "update price feed 110", - ); - setUnixTimestamp( - svm, - svm.getClock().unixTimestamp + - BigInt(BET_DURATION_SECONDS.toNumber() + 1), - ); - - const settleWinTx = await program.methods - .settle() - .accountsPartial({ - payer: admin.publicKey, - user: user.publicKey, - mint, - pool, - bet: userBet, - userTokenAccount: userAta, - poolTokenAccount: poolAta, - priceUpdate: feed, - tokenProgram: TOKEN_PROGRAM_ID, - }) - .transaction(); - sendSvmTx(svm, [admin], settleWinTx, "ephemeral", "settle win"); - - bet = readBet(svm, userBet, "ephemeral"); - expect(bet.isOpen).to.equal(false); - - const createSessionTx = await sessionTokenManager.program.methods - .createSessionV2( - true, - new BN(Number(svm.getClock().unixTimestamp) + 3600), - new BN(0.005 * web3.LAMPORTS_PER_SOL), - ) - .accounts({ - targetProgram: program.programId, - sessionSigner: sessionKeypair.publicKey, - feePayer: admin.publicKey, - authority: user.publicKey, - }) - .transaction(); - sendSvmTx( - svm, - [admin, user, sessionKeypair], - createSessionTx, - "base", - "create session", - ); - - sendSvmTx( - svm, - [admin, user], - new web3.Transaction().add( - createApproveInstruction( - userAta, - sessionKeypair.publicKey, - user.publicKey, - BigInt(STAKE.toString()), - ), - ), - "ephemeral", - "approve session delegate", - ); - - const placeSessionBetTx = await program.methods - .placeBet({ down: {} }, STAKE) - .accountsPartial({ - payer: sessionKeypair.publicKey, - user: user.publicKey, - mint, - pool, - bet: userBet, - userTokenAccount: userAta, - poolTokenAccount: poolAta, - priceUpdate: feed, - tokenProgram: TOKEN_PROGRAM_ID, - sessionToken: sessionTokenPda, - }) - .transaction(); - sendSvmTx( - svm, - [sessionKeypair], - placeSessionBetTx, - "ephemeral", - "place session bet", - ); - - sendSvmTx( - svm, - [admin], - new web3.Transaction().add( - updatePriceFeedIx(admin.publicKey, feed, 120, oracleTimestampNs(svm)), - ), - "ephemeral", - "update price feed 120", - ); - setUnixTimestamp( - svm, - svm.getClock().unixTimestamp + - BigInt(BET_DURATION_SECONDS.toNumber() + 1), - ); - - const settleLossTx = await program.methods - .settle() - .accountsPartial({ - payer: admin.publicKey, - user: user.publicKey, - mint, - pool, - bet: userBet, - userTokenAccount: userAta, - poolTokenAccount: poolAta, - priceUpdate: feed, - tokenProgram: TOKEN_PROGRAM_ID, - }) - .transaction(); - sendSvmTx(svm, [admin], settleLossTx, "ephemeral", "settle loss"); - - const erUserBalance = tokenAmount(svm, userAta, "ephemeral"); - const erPoolBalance = tokenAmount(svm, poolAta, "ephemeral"); - expect(erUserBalance).to.equal(290n); - expect(erPoolBalance).to.equal(10_010n); - - sendSvmTx( - svm, - [user], - new web3.Transaction().add(undelegateIx(user.publicKey, mint)), - "ephemeral", - "user undelegate", - ); - - const userWithdrawIxs = await withdrawSpl( - user.publicKey, - mint, - erUserBalance, - { - idempotent: false, - }, - ); - sendSvmTx( - svm, - [admin, user], - new web3.Transaction().add(...userWithdrawIxs), - "base", - "user withdraw", - ); - - expect(tokenAmount(svm, userAta, "base")).to.equal(990n); - expect(tokenAmount(svm, poolAta, "base")).to.equal(0n); - }); -}); diff --git a/binary-prediction/anchor/tsconfig.json b/binary-prediction/anchor/tsconfig.json deleted file mode 100644 index d93d6f9e..00000000 --- a/binary-prediction/anchor/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "types": ["mocha", "chai"], - "typeRoots": ["./node_modules/@types"], - "lib": ["es2020"], - "module": "commonjs", - "target": "es2020", - "esModuleInterop": true, - "skipLibCheck": true - } -} diff --git a/binary-prediction/anchor/yarn.lock b/binary-prediction/anchor/yarn.lock index 5e7e9511..4a9f7977 100644 --- a/binary-prediction/anchor/yarn.lock +++ b/binary-prediction/anchor/yarn.lock @@ -2,2471 +2,7 @@ # yarn lockfile v1 -"@babel/runtime@^7.25.0": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.7.tgz#12022450c45a4da6d8d8287b18a4ff2ddb23f768" - integrity sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw== - -"@coral-xyz/anchor-errors@^0.30.1": - version "0.30.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.30.1.tgz#bdfd3a353131345244546876eb4afc0e125bec30" - integrity sha512-9Mkradf5yS5xiLWrl9WrpjqOrAV+/W2RQHDlbnAZBivoGpOs1ECjoDCkVk4aRG8ZdiFiB8zQEVlxf+8fKkmSfQ== - -"@coral-xyz/anchor-errors@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" - integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== - -"@coral-xyz/anchor@0.32.1": - version "0.32.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" - integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== - dependencies: - "@coral-xyz/anchor-errors" "^0.31.1" - "@coral-xyz/borsh" "^0.31.1" - "@noble/hashes" "^1.3.1" - "@solana/web3.js" "^1.69.0" - bn.js "^5.1.2" - bs58 "^4.0.1" - buffer-layout "^1.2.2" - camelcase "^6.3.0" - cross-fetch "^3.1.5" - eventemitter3 "^4.0.7" - pako "^2.0.3" - superstruct "^0.15.4" - toml "^3.0.0" - -"@coral-xyz/anchor@^0.30.1": - version "0.30.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.30.1.tgz#17f3e9134c28cd0ea83574c6bab4e410bcecec5d" - integrity sha512-gDXFoF5oHgpriXAaLpxyWBHdCs8Awgf/gLHIo6crv7Aqm937CNdY+x+6hoj7QR5vaJV7MxWSQ0NGFzL3kPbWEQ== - dependencies: - "@coral-xyz/anchor-errors" "^0.30.1" - "@coral-xyz/borsh" "^0.30.1" - "@noble/hashes" "^1.3.1" - "@solana/web3.js" "^1.68.0" - bn.js "^5.1.2" - bs58 "^4.0.1" - buffer-layout "^1.2.2" - camelcase "^6.3.0" - cross-fetch "^3.1.5" - crypto-hash "^1.3.0" - eventemitter3 "^4.0.7" - pako "^2.0.3" - snake-case "^3.0.4" - superstruct "^0.15.4" - toml "^3.0.0" - -"@coral-xyz/borsh@^0.30.1": - version "0.30.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.30.1.tgz#869d8833abe65685c72e9199b8688477a4f6b0e3" - integrity sha512-aaxswpPrCFKl8vZTbxLssA2RvwX2zmKLlRCIktJOwW+VpVwYtXRtlWiIP+c2pPRKneiTiWCN2GEMSH9j1zTlWQ== - dependencies: - bn.js "^5.1.2" - buffer-layout "^1.2.0" - -"@coral-xyz/borsh@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.31.1.tgz#5328e1e0921b75d7f4a62dd3f61885a938bc7241" - integrity sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw== - dependencies: - bn.js "^5.1.2" - buffer-layout "^1.2.0" - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@esbuild/aix-ppc64@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz#7a01a8d2ec2fbb2dac78adad09b0fa781e4082be" - integrity sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ== - -"@esbuild/android-arm64@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz#b540a27d14e4afd058496a4dbec4d3f414db110a" - integrity sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg== - -"@esbuild/android-arm@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.28.1.tgz#704bd297de6d762de54eabbeafbf55f6756abe2f" - integrity sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ== - -"@esbuild/android-x64@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.28.1.tgz#d1cb166d34b0fbf0fe8ab460a5594f24a378701e" - integrity sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng== - -"@esbuild/darwin-arm64@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz#1034b26457fc886368fe61bbd09f653f6afa8e54" - integrity sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q== - -"@esbuild/darwin-x64@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz#65556a432a1e4d72032d8218c1932fcca1a49772" - integrity sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ== - -"@esbuild/freebsd-arm64@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz#2e61e0592f9030d7e3dae18ee25ebc535918aef6" - integrity sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw== - -"@esbuild/freebsd-x64@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz#c95ec289959ef8079c4dca817a1e2c4be66b9bd3" - integrity sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ== - -"@esbuild/linux-arm64@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz#40b22175dda06182f3ee8141186c5ff304c4a717" - integrity sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g== - -"@esbuild/linux-arm@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz#c09a0f67917592ac0de892a9be4d3814debd2a6c" - integrity sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ== - -"@esbuild/linux-ia32@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz#a580f9c676797833891e519fc7a1337c8afd8db3" - integrity sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w== - -"@esbuild/linux-loong64@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz#46452cf321dc7f9e91c2fa780a56bb56e79cd68b" - integrity sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg== - -"@esbuild/linux-mips64el@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz#4211b3184dd6608f53dcb22e39f5d34ee08852c8" - integrity sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ== - -"@esbuild/linux-ppc64@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz#697857c2a61cb9b0b6bb6652e40c1dc5e1ca8e5d" - integrity sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ== - -"@esbuild/linux-riscv64@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz#d192943eb146a40ac4c6497d0cf7be35b986bf08" - integrity sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ== - -"@esbuild/linux-s390x@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz#acea0356da0e0ebc08f97cf7b9c2e401e1e648dc" - integrity sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag== - -"@esbuild/linux-x64@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz#6f0c3ce0cb64c534b70c4c45ecb2c16d34e35dfd" - integrity sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA== - -"@esbuild/netbsd-arm64@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz#8bcd77077a0dce3378b574fedb26d2a253b73d36" - integrity sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw== - -"@esbuild/netbsd-x64@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz#e7fb2a01e99c830c94e6623cd9fefb4c8fb58347" - integrity sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg== - -"@esbuild/openbsd-arm64@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz#c52909372db8b86e2c55e05a8940033b5660a3b2" - integrity sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q== - -"@esbuild/openbsd-x64@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz#c427b9be5a64c262ff9a7eb70b5fbbaadf446c6c" - integrity sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw== - -"@esbuild/openharmony-arm64@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz#dc9b147baca2e6c4b3c85571741ef4860a489097" - integrity sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg== - -"@esbuild/sunos-x64@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz#ce866d12df13c15e4c99f073a3d466f6e0649b3a" - integrity sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ== - -"@esbuild/win32-arm64@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz#7468e3692d01d629d5941e5d83817bb80f9e39b4" - integrity sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA== - -"@esbuild/win32-ia32@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz#a5bc0063fb2bcab6d0ed63f2a1537958bc269ec6" - integrity sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg== - -"@esbuild/win32-x64@0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz#10064ee44f4347b90c9a02b446bbf80a91632b12" - integrity sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A== - -"@graphql-typed-document-node/core@^3.1.1": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" - integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== - -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" - integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@magicblock-labs/ephemeral-rollups-sdk@0.14.3": - version "0.14.3" - resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.14.3.tgz#536c215d1daefdbcfa82a79304b08f5014405c58" - integrity sha512-CoByiXHLLS+l7Ojl6XJuYypP/k08ymFkab8+Gh/HCv5Gn2oC4VkwszEQoTDnKo++8Oxbqr9YVGzAMUW4Km7cLA== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@phala/dcap-qvl" "^0.3.9" - "@solana/web3.js" "^1.98.0" - bs58 "^6.0.0" - rpc-websockets "^9.0.4" - tweetnacl "^1.0.3" - typescript "^5.3.0" - -"@magicblock-labs/gum-sdk@^3.0.10": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@magicblock-labs/gum-sdk/-/gum-sdk-3.0.10.tgz#09ccdc0f2606285750b3afcea09b85f3027b38eb" - integrity sha512-t+0VjH29ul7NMvDIySbmrja16kLqmYI7dB+Ir70DSDcYpVgmGqqVJc5ODkSthcH1Duaoj6EjGmAM7NJo5udCPA== - dependencies: - "@coral-xyz/anchor" "^0.30.1" - axios "^1.2.6" - graphql "^16.6.0" - graphql-request "^5.1.0" - js-sha3 "^0.8.0" - randombytes "^2.1.0" - tweetnacl "^1.0.3" - -"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" - integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== - -"@magicblock-labs/magicsvm-darwin-x64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" - integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== - -"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" - integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== - -"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" - integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== - -"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" - integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== - -"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" - integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== - -"@magicblock-labs/magicsvm@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" - integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== - dependencies: - "@solana/web3.js" "3.0.0-rc.3" - optionalDependencies: - "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" - "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" - -"@magicblock-labs/test-utils@link:../../test-utils/ts": - version "0.0.0" - uid "" - -"@noble/curves@^1.4.2": - version "1.9.7" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" - integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== - dependencies: - "@noble/hashes" "1.8.0" - -"@noble/hashes@1.8.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" - integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== - -"@peculiar/asn1-schema@^2.3.13", "@peculiar/asn1-schema@^2.8.0": - version "2.8.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.8.0.tgz#69699f84259b2161607cabfc34e512a4023dbef9" - integrity sha512-7YT0U/ze0tF2QOBbE15gKZwy5tvgGyLRiRHLzhlbOpf7BT032oBSd0haZqXn5W6l26WLlu3dyxzjM+2638/z2Q== - dependencies: - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.10" - tslib "^2.8.1" - -"@peculiar/asn1-x509@^2.3.13": - version "2.8.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.8.0.tgz#9958a9ef35dec8426aabad78ffe8798e318b06e2" - integrity sha512-N0CMuhWUzsWEVq6F1q9X6+VKUnWzSW+cSVg+aPaGGwDdbFoFWTYgin5MHwXgpWd6y9COMBxnfy/Qc+Xc7F0Zwg== - dependencies: - "@peculiar/asn1-schema" "^2.8.0" - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.10" - tslib "^2.8.1" - -"@peculiar/utils@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@peculiar/utils/-/utils-2.0.3.tgz#a27ca4c4b73652e110f19a7d16d664f458a5528e" - integrity sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ== - dependencies: - tslib "^2.8.1" - -"@phala/dcap-qvl@^0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@phala/dcap-qvl/-/dcap-qvl-0.3.9.tgz#34da2506c31954cd290afb5a46146cd52ae24481" - integrity sha512-s/4gAFVq1DRhYkuerDR9WAlX8tkCpFTHTVpWnWlrigj5la2X5OtQl9Y7PzwcqY4h0fc25yqZrcRH3AZpzB1qOw== - dependencies: - "@peculiar/asn1-schema" "^2.3.13" - "@peculiar/asn1-x509" "^2.3.13" - asn1.js "^5.4.1" - bn.js "^5.2.2" - buffer "^6.0.3" - elliptic "^6.6.1" - hash.js "^1.1.7" - node-fetch "^2.7.0" - -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - -"@solana-program/address-lookup-table@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" - integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== - -"@solana-program/compute-budget@^0.18.0": - version "0.18.1" - resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" - integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== - -"@solana-program/loader-v3@^0.6.0": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" - integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== - -"@solana-program/stake@^0.9.0": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" - integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== - -"@solana-program/system@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" - integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== - -"@solana/accounts@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" - integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/addresses@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" - integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" - integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/buffer-layout-utils@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz#b45a6cab3293a2eb7597cceb474f229889d875ca" - integrity sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g== - dependencies: - "@solana/buffer-layout" "^4.0.0" - "@solana/web3.js" "^1.32.0" - bigint-buffer "^1.1.5" - bignumber.js "^9.0.1" - -"@solana/buffer-layout@^4.0.0", "@solana/buffer-layout@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" - integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== - dependencies: - buffer "~6.0.3" - -"@solana/codecs-core@2.0.0-rc.1": - version "2.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-2.0.0-rc.1.tgz#1a2d76b9c7b9e7b7aeb3bd78be81c2ba21e3ce22" - integrity sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ== - dependencies: - "@solana/errors" "2.0.0-rc.1" - -"@solana/codecs-core@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-2.3.0.tgz#6bf2bb565cb1ae880f8018635c92f751465d8695" - integrity sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw== - dependencies: - "@solana/errors" "2.3.0" - -"@solana/codecs-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" - integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/codecs-data-structures@2.0.0-rc.1": - version "2.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-2.0.0-rc.1.tgz#d47b2363d99fb3d643f5677c97d64a812982b888" - integrity sha512-rinCv0RrAVJ9rE/rmaibWJQxMwC5lSaORSZuwjopSUE6T0nb/MVg6Z1siNCXhh/HFTOg0l8bNvZHgBcN/yvXog== - dependencies: - "@solana/codecs-core" "2.0.0-rc.1" - "@solana/codecs-numbers" "2.0.0-rc.1" - "@solana/errors" "2.0.0-rc.1" - -"@solana/codecs-data-structures@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" - integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@2.0.0-rc.1": - version "2.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.0.0-rc.1.tgz#f34978ddf7ea4016af3aaed5f7577c1d9869a614" - integrity sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ== - dependencies: - "@solana/codecs-core" "2.0.0-rc.1" - "@solana/errors" "2.0.0-rc.1" - -"@solana/codecs-numbers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" - integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@^2.1.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" - integrity sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg== - dependencies: - "@solana/codecs-core" "2.3.0" - "@solana/errors" "2.3.0" - -"@solana/codecs-strings@2.0.0-rc.1": - version "2.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-2.0.0-rc.1.tgz#e1d9167075b8c5b0b60849f8add69c0f24307018" - integrity sha512-9/wPhw8TbGRTt6mHC4Zz1RqOnuPTqq1Nb4EyuvpZ39GW6O2t2Q7Q0XxiB3+BdoEjwA2XgPw6e2iRfvYgqty44g== - dependencies: - "@solana/codecs-core" "2.0.0-rc.1" - "@solana/codecs-numbers" "2.0.0-rc.1" - "@solana/errors" "2.0.0-rc.1" - -"@solana/codecs-strings@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" - integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs@2.0.0-rc.1": - version "2.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-2.0.0-rc.1.tgz#146dc5db58bd3c28e04b4c805e6096c2d2a0a875" - integrity sha512-qxoR7VybNJixV51L0G1RD2boZTcxmwUWnKCaJJExQ5qNKwbpSyDdWfFJfM5JhGyKe9DnPVOZB+JHWXnpbZBqrQ== - dependencies: - "@solana/codecs-core" "2.0.0-rc.1" - "@solana/codecs-data-structures" "2.0.0-rc.1" - "@solana/codecs-numbers" "2.0.0-rc.1" - "@solana/codecs-strings" "2.0.0-rc.1" - "@solana/options" "2.0.0-rc.1" - -"@solana/codecs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" - integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/options" "8.3.0" - -"@solana/errors@2.0.0-rc.1": - version "2.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.0.0-rc.1.tgz#3882120886eab98a37a595b85f81558861b29d62" - integrity sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ== - dependencies: - chalk "^5.3.0" - commander "^12.1.0" - -"@solana/errors@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.3.0.tgz#4ac9380343dbeffb9dffbcb77c28d0e457c5fa31" - integrity sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ== - dependencies: - chalk "^5.4.1" - commander "^14.0.0" - -"@solana/errors@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" - integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== - dependencies: - chalk "5.6.2" - commander "15.0.0" - -"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" - integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== - -"@solana/fixed-points@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" - integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/functional@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" - integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== - -"@solana/instruction-plans@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" - integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/instructions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" - integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/keys@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" - integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/kit@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" - integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/plugin-core" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/program-client-core" "8.3.0" - "@solana/programs" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/subscribable" "8.3.0" - "@solana/sysvars" "8.3.0" - "@solana/transaction-confirmation" "8.3.0" - "@solana/transaction-introspection" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/nominal-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" - integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== - -"@solana/offchain-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" - integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/options@2.0.0-rc.1": - version "2.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@solana/options/-/options-2.0.0-rc.1.tgz#06924ba316dc85791fc46726a51403144a85fc4d" - integrity sha512-mLUcR9mZ3qfHlmMnREdIFPf9dpMc/Bl66tLSOOWxw4ml5xMT2ohFn7WGqoKcu/UHkT9CrC6+amEdqCNvUqI7AA== - dependencies: - "@solana/codecs-core" "2.0.0-rc.1" - "@solana/codecs-data-structures" "2.0.0-rc.1" - "@solana/codecs-numbers" "2.0.0-rc.1" - "@solana/codecs-strings" "2.0.0-rc.1" - "@solana/errors" "2.0.0-rc.1" - -"@solana/options@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" - integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/plugin-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" - integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== - -"@solana/plugin-interfaces@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" - integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/program-client-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" - integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/signers" "8.3.0" - -"@solana/programs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" - integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/promises@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" - integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== - -"@solana/rpc-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" - integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-parsed-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" - integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== - -"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" - integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/rpc-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" - integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" - integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-subscriptions-channel-websocket@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" - integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/subscribable" "8.3.0" - ws "^8.21.3" - -"@solana/rpc-subscriptions-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" - integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" - integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions-api" "8.3.0" - "@solana/rpc-subscriptions-channel-websocket" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-transformers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" - integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/rpc-transport-http@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" - integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - undici-types "^8.10.2" - -"@solana/rpc-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" - integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/rpc@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" - integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-transport-http" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/signers@8.3.0", "@solana/signers@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" - integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/spl-token-group@^0.0.7": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@solana/spl-token-group/-/spl-token-group-0.0.7.tgz#83c00f0cd0bda33115468cd28b89d94f8ec1fee4" - integrity sha512-V1N/iX7Cr7H0uazWUT2uk27TMqlqedpXHRqqAbVO2gvmJyT0E0ummMEAVQeXZ05ZhQ/xF39DLSdBp90XebWEug== - dependencies: - "@solana/codecs" "2.0.0-rc.1" - -"@solana/spl-token-metadata@^0.1.6": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@solana/spl-token-metadata/-/spl-token-metadata-0.1.6.tgz#d240947aed6e7318d637238022a7b0981b32ae80" - integrity sha512-7sMt1rsm/zQOQcUWllQX9mD2O6KhSAtY1hFR2hfFwgqfFWzSY9E9GDvFVNYUI1F0iQKcm6HmePU9QbKRXTEBiA== - dependencies: - "@solana/codecs" "2.0.0-rc.1" - -"@solana/spl-token@^0.4.14": - version "0.4.14" - resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.4.14.tgz#b86bc8a17f50e9680137b585eca5f5eb9d55c025" - integrity sha512-u09zr96UBpX4U685MnvQsNzlvw9TiY005hk1vJmJr7gMJldoPG1eYU5/wNEyOA5lkMLiR/gOi9SFD4MefOYEsA== - dependencies: - "@solana/buffer-layout" "^4.0.0" - "@solana/buffer-layout-utils" "^0.2.0" - "@solana/spl-token-group" "^0.0.7" - "@solana/spl-token-metadata" "^0.1.6" - buffer "^6.0.3" - -"@solana/subscribable@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" - integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/sysvars@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" - integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transaction-confirmation@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" - integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-introspection@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" - integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" - integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transactions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" - integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - -"@solana/web3.js@3.0.0-rc.3": - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" - integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@solana-program/address-lookup-table" "^0.14.0" - "@solana-program/compute-budget" "^0.18.0" - "@solana-program/loader-v3" "^0.6.0" - "@solana-program/stake" "^0.9.0" - "@solana-program/system" "^0.14.0" - "@solana/assertions" "^8.2.0" - "@solana/fast-stable-stringify" "^8.2.0" - "@solana/kit" "^8.2.0" - "@solana/rpc-spec-types" "^8.2.0" - "@solana/signers" "^8.2.0" - -"@solana/web3.js@^1.32.0", "@solana/web3.js@^1.68.0", "@solana/web3.js@^1.69.0", "@solana/web3.js@^1.98.0": - version "1.98.4" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" - integrity sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw== - 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.1.0" - agentkeepalive "^4.5.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.1.1" - node-fetch "^2.7.0" - rpc-websockets "^9.0.2" - superstruct "^2.0.2" - -"@swc/helpers@^0.5.11": - version "0.5.23" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.23.tgz#19287d0d86d962b111376039a50c792902c9a86a" - integrity sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw== - dependencies: - tslib "^2.8.0" - -"@tsconfig/node10@^1.0.7": - version "1.0.12" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.12.tgz#be57ceac1e4692b41be9de6be8c32a106636dba4" - integrity sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@types/bn.js@^5.1.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.2.0.tgz#4349b9710e98f9ab3cdc50f1c5e4dcbd8ef29c80" - integrity sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q== - dependencies: - "@types/node" "*" - -"@types/chai@^4.3.20": - version "4.3.20" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.20.tgz#cb291577ed342ca92600430841a00329ba05cecc" - integrity sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ== - -"@types/connect@^3.4.33": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" - integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== - dependencies: - "@types/node" "*" - -"@types/mocha@^10.0.10": - version "10.0.10" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.10.tgz#91f62905e8d23cbd66225312f239454a23bebfa0" - integrity sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q== - -"@types/node@*": - version "26.0.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-26.0.1.tgz#4a60e2c7a6d68bd261e265f8983bfe1601263ce3" - integrity sha512-fc3KiUoBt6kie0N9bIW3E47vZsuaMf0PM2AaUpLCLT0s/LvX1nxAim6Fc049cNxODPpGm6qRAuUOB86SkRuPQw== - dependencies: - undici-types "~8.3.0" - -"@types/node@^12.12.54": - version "12.20.55" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - -"@types/ws@^7.4.4": - version "7.4.7" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - dependencies: - "@types/node" "*" - -"@types/ws@^8.2.2": - version "8.18.1" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" - integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== - dependencies: - "@types/node" "*" - -acorn-walk@^8.1.1: - version "8.3.5" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.5.tgz#8a6b8ca8fc5b34685af15dabb44118663c296496" - integrity sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw== - dependencies: - acorn "^8.11.0" - -acorn@^8.11.0, acorn@^8.4.1: - version "8.17.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.17.0.tgz#1785adb84faf8d8add10369b93826fc2bd08f1fe" - integrity sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg== - -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -agentkeepalive@^4.5.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" - integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== - dependencies: - humanize-ms "^1.2.1" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" - integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^6.1.0: - version "6.2.3" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" - integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -asn1.js@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1js@^3.0.10: - version "3.0.10" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.10.tgz#df26c874c8a8b41ca605efea47b2ad07551013dd" - integrity sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg== - dependencies: - pvtsutils "^1.3.6" - pvutils "^1.1.5" - tslib "^2.8.1" - -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -axios@^1.2.6: - version "1.18.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.18.1.tgz#d63f9863bcd8938815c86f9e2abd380189d96dfe" - integrity sha512-3nTvFlvpn9Zu/RkHUqtc7/+al4UpRW5az71ap5zccp6e8RAYEzhMTecX8Dz1wWDYrPpUoB1HAQEGEAEvUr7S9g== - dependencies: - follow-redirects "^1.16.0" - form-data "^4.0.5" - https-proxy-agent "^5.0.1" - proxy-from-env "^2.1.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base-x@^3.0.2: - version "3.0.11" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.11.tgz#40d80e2a1aeacba29792ccc6c5354806421287ff" - integrity sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA== - dependencies: - safe-buffer "^5.0.1" - -base-x@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-5.0.1.tgz#16bf35254be1df8aca15e36b7c1dda74b2aa6b03" - integrity sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bigint-buffer@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/bigint-buffer/-/bigint-buffer-1.1.5.tgz#d038f31c8e4534c1f8d0015209bf34b4fa6dd442" - integrity sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA== - dependencies: - bindings "^1.3.0" - -bignumber.js@^9.0.1: - version "9.3.1" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.3.1.tgz#759c5aaddf2ffdc4f154f7b493e1c8770f88c4d7" - integrity sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ== - -bindings@^1.3.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bn.js@^4.0.0, bn.js@^4.11.9: - version "4.12.4" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.4.tgz#72627bb262f2385c51d313cd5e9596ca7cda77d6" - integrity sha512-njR1b+ixG2ufvL9Zn9JGneW+b5GV6jqpYyPPpg4QVt723b5kJPGUczkUyWEH9BwEA74UakJZ43I4FDLBF7ci0g== - -bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1, bn.js@^5.2.2: - version "5.2.4" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.4.tgz#1208fc250bb193fc5f8f0b5fa59e642e706f7103" - integrity sha512-QL7sb18rJ1PbdsKsqPA0guxL563vIMwRHgzNrW/uzQuRGN1Cjqd/wonUBAVqHox9KwzHA6vCbM0lXx3k4iQMow== - -borsh@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" - integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== - dependencies: - bn.js "^5.2.0" - bs58 "^4.0.0" - text-encoding-utf-8 "^1.0.2" - -brace-expansion@^2.0.2: - version "2.1.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.1.1.tgz#c68b1c4111c76aae3a6fba55d496cee10c39dad8" - integrity sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA== - dependencies: - balanced-match "^1.0.0" - -brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browser-stdout@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -bs58@^4.0.0, bs58@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - dependencies: - base-x "^3.0.2" - -bs58@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-6.0.0.tgz#a2cda0130558535dd281a2f8697df79caaf425d8" - integrity sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw== - dependencies: - base-x "^5.0.0" - -buffer-layout@^1.2.0, buffer-layout@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" - integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== - -buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -bufferutil@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.1.0.tgz#a4623541dd23867626bb08a051ec0d2ec0b70294" - integrity sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw== - dependencies: - node-gyp-build "^4.3.0" - -call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" - integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== - dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - -camelcase@^6.0.0, camelcase@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -chai@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.5.0.tgz#707e49923afdd9b13a8b0b47d33d732d13812fd8" - integrity sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw== - 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.6" - pathval "^1.1.1" - type-detect "^4.1.0" - -chalk@5.6.2, chalk@^5.3.0, chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - -chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -check-error@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" - integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== - dependencies: - get-func-name "^2.0.2" - -chokidar@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" - integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== - dependencies: - readdirp "^4.0.1" - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" - integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== - -commander@^12.1.0: - version "12.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" - integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== - -commander@^14.0.0: - version "14.0.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.3.tgz#425d79b48f9af82fcd9e4fc1ea8af6c5ec07bbc2" - integrity sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw== - -commander@^2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-fetch@^3.1.5: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" - integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== - dependencies: - node-fetch "^2.7.0" - -cross-spawn@^7.0.6: - version "7.0.6" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" - integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-hash@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/crypto-hash/-/crypto-hash-1.3.0.tgz#b402cb08f4529e9f4f09346c3e275942f845e247" - integrity sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg== - -debug@4, debug@^4.3.5: - version "4.4.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" - integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== - dependencies: - ms "^2.1.3" - -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - -deep-eql@^4.1.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.4.tgz#d0d3912865911bb8fac5afb4e3acfa6a28dc72b7" - integrity sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg== - dependencies: - type-detect "^4.0.0" - -delay@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" - integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -diff@^4.0.1: - version "4.0.4" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.4.tgz#7a6dbfda325f25f07517e9b518f897c08332e07d" - integrity sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ== - -diff@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-7.0.0.tgz#3fb34d387cd76d803f6eebea67b921dab0182a9a" - integrity sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw== - -dot-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" - integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -dunder-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" - integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== - dependencies: - call-bind-apply-helpers "^1.0.1" - es-errors "^1.3.0" - gopd "^1.2.0" - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -elliptic@^6.6.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" - integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -es-define-property@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" - integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== - -es-errors@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" - integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - -es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.2.tgz#a2d0b373205724dfa525d23b0c3e1b1ca582c99b" - integrity sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw== - dependencies: - es-errors "^1.3.0" - -es-set-tostringtag@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" - integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== - dependencies: - es-errors "^1.3.0" - get-intrinsic "^1.2.6" - has-tostringtag "^1.0.2" - hasown "^2.0.2" - -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== - dependencies: - es6-promise "^4.0.3" - -esbuild@~0.28.0: - version "0.28.1" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.28.1.tgz#ef45b4634c9c9d97a296aea4114a5f9840f95578" - integrity sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw== - optionalDependencies: - "@esbuild/aix-ppc64" "0.28.1" - "@esbuild/android-arm" "0.28.1" - "@esbuild/android-arm64" "0.28.1" - "@esbuild/android-x64" "0.28.1" - "@esbuild/darwin-arm64" "0.28.1" - "@esbuild/darwin-x64" "0.28.1" - "@esbuild/freebsd-arm64" "0.28.1" - "@esbuild/freebsd-x64" "0.28.1" - "@esbuild/linux-arm" "0.28.1" - "@esbuild/linux-arm64" "0.28.1" - "@esbuild/linux-ia32" "0.28.1" - "@esbuild/linux-loong64" "0.28.1" - "@esbuild/linux-mips64el" "0.28.1" - "@esbuild/linux-ppc64" "0.28.1" - "@esbuild/linux-riscv64" "0.28.1" - "@esbuild/linux-s390x" "0.28.1" - "@esbuild/linux-x64" "0.28.1" - "@esbuild/netbsd-arm64" "0.28.1" - "@esbuild/netbsd-x64" "0.28.1" - "@esbuild/openbsd-arm64" "0.28.1" - "@esbuild/openbsd-x64" "0.28.1" - "@esbuild/openharmony-arm64" "0.28.1" - "@esbuild/sunos-x64" "0.28.1" - "@esbuild/win32-arm64" "0.28.1" - "@esbuild/win32-ia32" "0.28.1" - "@esbuild/win32-x64" "0.28.1" - -escalade@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eventemitter3@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -eventemitter3@^5.0.1: - version "5.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.4.tgz#a86d66170433712dde814707ac52b5271ceb1feb" - integrity sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw== - -extract-files@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-9.0.0.tgz#8a7744f2437f81f5ed3250ed9f1550de902fe54a" - integrity sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ== - -eyes@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" - integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== - -fast-stable-stringify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" - integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -follow-redirects@^1.16.0: - version "1.16.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.16.0.tgz#28474a159d3b9d11ef62050a14ed60e4df6d61bc" - integrity sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw== - -foreground-child@^3.1.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" - integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== - dependencies: - cross-spawn "^7.0.6" - signal-exit "^4.0.1" - -form-data@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.5.tgz#2ea3ec24f0dcb7e0262a11efb732031240ea8e9f" - integrity sha512-j23EibVLnp4zNXGW7LjryXYa2X6U/M96yoOX+ybZxwkYajdxRNEqYY3zhh7y0i6kfISKS2jr+EJq1YTUDEv5+w== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - es-set-tostringtag "^2.1.0" - hasown "^2.0.4" - mime-types "^2.1.35" - -form-data@^4.0.5: - version "4.0.6" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.6.tgz#28e864e1b786dbebb68db1f452f9635278665827" - integrity sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - es-set-tostringtag "^2.1.0" - hasown "^2.0.4" - mime-types "^2.1.35" - -fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-func-name@^2.0.1, get-func-name@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" - integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== - -get-intrinsic@^1.2.6: - version "1.3.0" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" - integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== - 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: - version "1.0.1" - resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" - integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== - dependencies: - dunder-proto "^1.0.1" - es-object-atoms "^1.0.0" - -glob@^10.4.5: - version "10.5.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" - integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== - dependencies: - foreground-child "^3.1.0" - jackspeak "^3.1.2" - minimatch "^9.0.4" - minipass "^7.1.2" - package-json-from-dist "^1.0.0" - path-scurry "^1.11.1" - -gopd@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" - integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== - -graphql-request@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-5.2.0.tgz#a05fb54a517d91bb2d7aefa17ade4523dc5ebdca" - integrity sha512-pLhKIvnMyBERL0dtFI3medKqWOz/RhHdcgbZ+hMMIb32mEPa5MJSzS4AuXxfI4sRAu6JVVk5tvXuGfCWl9JYWQ== - dependencies: - "@graphql-typed-document-node/core" "^3.1.1" - cross-fetch "^3.1.5" - extract-files "^9.0.0" - form-data "^3.0.0" - -graphql@^16.6.0: - version "16.14.2" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.14.2.tgz#83faf25869e3df727cc855161db5da85b0e5b2c0" - integrity sha512-Chq1s4CY7jmh8gO2qvLIJyfCDIN+EHLFW/9iShnp1z8FjBQMoodWP1kDC36VAMXXIvAjj4ARa7ntfAV2BrjsbA== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.3, has-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" - integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== - -has-tostringtag@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" - integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== - dependencies: - has-symbols "^1.0.3" - -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hasown@^2.0.2, hasown@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.4.tgz#8c62d8cb90beb2aad5d0a5b67581ad9854c3f003" - integrity sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A== - dependencies: - function-bind "^1.1.2" - -he@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -https-proxy-agent@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - -jackspeak@^3.1.2: - version "3.4.3" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" - integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - -jayson@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.3.0.tgz#22eb8f3dcf37a5e893830e5451f32bde6d1bde4d" - integrity sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ== - dependencies: - "@types/connect" "^3.4.33" - "@types/node" "^12.12.54" - "@types/ws" "^7.4.4" - commander "^2.20.3" - delay "^5.0.0" - es6-promisify "^5.0.0" - eyes "^0.1.8" - isomorphic-ws "^4.0.1" - json-stringify-safe "^5.0.1" - stream-json "^1.9.1" - uuid "^8.3.2" - ws "^7.5.10" - -js-sha3@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - -js-yaml@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.3.0.tgz#d1900572a7f7cf0b5f540c83673e60bad3436592" - integrity sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q== - dependencies: - argparse "^2.0.1" - -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -loupe@^2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" - integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== - dependencies: - get-func-name "^2.0.1" - -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" - integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== - dependencies: - tslib "^2.0.3" - -lru-cache@^10.2.0: - version "10.4.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" - integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -math-intrinsics@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" - integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.35: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -minimatch@^9.0.4, minimatch@^9.0.5: - version "9.0.9" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.9.tgz#9b0cb9fcb78087f6fd7eababe2511c4d3d60574e" - integrity sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg== - dependencies: - brace-expansion "^2.0.2" - -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: - version "7.1.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.3.tgz#79389b4eb1bb2d003a9bba87d492f2bd37bdc65b" - integrity sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A== - -mocha@^11.2.2: - version "11.7.6" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.7.6.tgz#ebbe22989d04cbb9424a36307320476624c41a33" - integrity sha512-nS9xOGbw2I3cjCpxwZAEJ9xK9lmJ08vEkQvLtz4du9ZrF9UrjRpeJGiIgl2Z+Qs++pmB4ecDe48Fwsh+j+j7xA== - dependencies: - browser-stdout "^1.3.1" - chokidar "^4.0.1" - debug "^4.3.5" - diff "^7.0.0" - escape-string-regexp "^4.0.0" - find-up "^5.0.0" - glob "^10.4.5" - he "^1.2.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - log-symbols "^4.1.0" - minimatch "^9.0.5" - ms "^2.1.3" - picocolors "^1.1.1" - serialize-javascript "^6.0.2" - strip-json-comments "^3.1.1" - supports-color "^8.1.1" - workerpool "^9.2.0" - yargs "^17.7.2" - yargs-parser "^21.1.1" - yargs-unparser "^2.0.0" - -ms@^2.0.0, ms@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -no-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" - integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== - dependencies: - lower-case "^2.0.2" - tslib "^2.0.3" - -node-fetch@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - -node-gyp-build@^4.3.0: - version "4.8.4" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" - integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -package-json-from-dist@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" - integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== - -pako@^2.0.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.2.0.tgz#246b9d4c841a8d308e484c0d03786651b143e63a" - integrity sha512-zJq6RP/5q+TO2OpFV3FHzlPnFjmkb7Nc99a5SNjJE+uu/PkpChs+NIZSSzbBoD+6kjiISXjfYdwj1ZRQ81dz/w== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-scurry@^1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" - integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== - dependencies: - lru-cache "^10.2.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - -pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== - -picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - prettier@^3.5.3: - version "3.9.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.9.4.tgz#a9c477cf1614376bd1f6bbc593d8c0d414bcec87" - integrity sha512-yWG/o/4oJfo036EKAfK6ACAoDOfHeRHx4tuxkfBZiauURiaSmYwlpOr5LQqKtIkRD2z1PLteme2WoxEnj4tHTg== - -proxy-from-env@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-2.1.0.tgz#a7487568adad577cfaaa7e88c49cab3ab3081aba" - integrity sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA== - -pvtsutils@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.6.tgz#ec46e34db7422b9e4fdc5490578c1883657d6001" - integrity sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg== - dependencies: - tslib "^2.8.1" - -pvutils@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.5.tgz#84b0dea4a5d670249aa9800511804ee0b7c2809c" - integrity sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -readdirp@^4.0.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" - integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -rpc-websockets@^9.0.2, rpc-websockets@^9.0.4: - version "9.3.10" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.3.10.tgz#d6f9b08edfac40e873a059b358806f6d58572e80" - integrity sha512-QT5PQ6LiWhA5RCS93oWwgxU4XzQltkYm8C3aTmmKEgj0HolGRo3VbdzELw7CEV35l9T7Amha8Vnr4rCfSjVP+w== - dependencies: - "@swc/helpers" "^0.5.11" - "@types/ws" "^8.2.2" - buffer "^6.0.3" - eventemitter3 "^5.0.1" - ws "^8.5.0" - optionalDependencies: - bufferutil "^4.0.1" - utf-8-validate "^6.0.0" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -serialize-javascript@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" - integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== - dependencies: - randombytes "^2.1.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -snake-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" - integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - -stream-chain@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/stream-chain/-/stream-chain-2.2.5.tgz#b30967e8f14ee033c5b9a19bbe8a2cba90ba0d09" - integrity sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA== - -stream-json@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/stream-json/-/stream-json-1.9.1.tgz#e3fec03e984a503718946c170db7d74556c2a187" - integrity sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw== - dependencies: - stream-chain "^2.2.5" - -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.2.0.tgz#d22a269522836a627af8d04b5c3fd2c7fa3e32e3" - integrity sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w== - dependencies: - ansi-regex "^6.2.2" - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -superstruct@^0.15.4: - version "0.15.5" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" - integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== - -superstruct@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-2.0.2.tgz#3f6d32fbdc11c357deff127d591a39b996300c54" - integrity sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A== - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -text-encoding-utf-8@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" - integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== - -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -ts-mocha@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-11.1.0.tgz#d8336ec0146bd6f36cca2555f4cfc7df85bd1586" - integrity sha512-yT7FfzNRCu8ZKkYvAOiH01xNma/vLq6Vit7yINKYFNVP8e5UyrYXSOMIipERTpzVKJQ4Qcos5bQo1tNERNZevQ== - -ts-node@^10.9.2: - version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" - integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tslib@^2.0.3, tslib@^2.8.0, tslib@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" - integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - -tsx@^4.22.0: - version "4.22.4" - resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.22.4.tgz#0ab3b7fb4ec7feeee74e5b1f26337caa71e44700" - integrity sha512-X8EX+XV4QR5xCsrgxaED954zTDfY8KqlDtskKEL0cHhyS/P8b4IFOvGDQpsC9Q1XnLq915wEfwwY/zzskCtmhg== - dependencies: - esbuild "~0.28.0" - optionalDependencies: - fsevents "~2.3.3" - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -type-detect@^4.0.0, type-detect@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.1.0.tgz#deb2453e8f08dcae7ae98c626b13dddb0155906c" - integrity sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw== - -typescript@^5.3.0, typescript@^5.8.3: - version "5.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" - integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== - -undici-types@^8.10.2: - version "8.10.2" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" - integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== - -undici-types@~8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.3.0.tgz#44e9fc9f3244648cdea35e4f9bb2d681e9410809" - integrity sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ== - -utf-8-validate@^6.0.0: - version "6.0.6" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-6.0.6.tgz#8a842c9b15af3f6323a3d5ed5eb9e61d208d8c22" - integrity sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA== - dependencies: - node-gyp-build "^4.3.0" - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -workerpool@^9.2.0: - version "9.3.4" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-9.3.4.tgz#f6c92395b2141afd78e2a889e80cb338fe9fca41" - integrity sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg== - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - -ws@^7.5.10: - version "7.5.11" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.11.tgz#9460daf1812bb81a423c5b9eac746941a86310fa" - integrity sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA== - -ws@^8.21.3: - version "8.21.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" - integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== - -ws@^8.5.0: - version "8.21.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.0.tgz#012e413fc07429945121b0c153158c4343086951" - integrity sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs-unparser@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@^17.7.2: - version "17.7.3" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.3.tgz#779dffe6bcafec596a7172e983289a588647faaa" - integrity sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + version "3.9.9" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.9.9.tgz#09b826918c91cd4cbc80e0cbd1d2a922ff04f233" + integrity sha512-Z/CJHIkdujO/OtN7nXUii0Rf3VT5SRuhjBA82Xvu2XhBUgX3nhP67T0LHceBdQLex7OOFGTox+Q5Yg8Jk2Qivg== diff --git a/counter/anchor/README.md b/counter/anchor/README.md index ca386aef..d3c3740f 100644 --- a/counter/anchor/README.md +++ b/counter/anchor/README.md @@ -30,7 +30,7 @@ yarn yarn build ``` -Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): +Run the Rust test suite in `tests-magicsvm-rs/` in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash yarn test @@ -40,7 +40,7 @@ MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no va network. The suite initializes and increments a counter, delegates it, commits updates, and undelegates it. -A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. +`yarn test` runs `cargo +stable test`: MagicSVM needs a newer Rust than the 1.89 toolchain used for program builds. ## 📤 Delegate an account diff --git a/counter/anchor/package.json b/counter/anchor/package.json index 3a962f20..f4a9f82e 100644 --- a/counter/anchor/package.json +++ b/counter/anchor/package.json @@ -2,28 +2,11 @@ "scripts": { "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", - "test": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests/public-counter.ts", - "build": "anchor build --ignore-keys", - "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture" - }, - "dependencies": { - "@coral-xyz/anchor": "0.32.1", - "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3", - "bs58": "^6.0.0", - "tweetnacl": "^1.0.3" + "test": "cargo +stable test --manifest-path tests-magicsvm-rs/Cargo.toml", + "build": "anchor build --ignore-keys" }, "devDependencies": { - "@types/bn.js": "^5.1.0", - "@types/chai": "^5.2.2", - "@types/mocha": "^10.0.10", - "@magicblock-labs/magicsvm": "0.2.0", - "chai": "^5.2.0", - "mocha": "^11.2.2", - "prettier": "^3.5.3", - "ts-mocha": "^11.1.0", - "ts-node": "^10.9.2", - "typescript": "^5.8.3", - "@magicblock-labs/test-utils": "link:../../test-utils/ts" + "prettier": "^3.5.3" }, "license": "MIT", "packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447" diff --git a/counter/anchor/tests/public-counter.ts b/counter/anchor/tests/public-counter.ts deleted file mode 100644 index cb2ded17..00000000 --- a/counter/anchor/tests/public-counter.ts +++ /dev/null @@ -1,121 +0,0 @@ -import { web3 } from "@coral-xyz/anchor"; -import { - accountOwner, - bootAnchorSvm, - isDelegated, - readU64le, - sendSvmTx, - validatorRemainingAccount, -} from "@magicblock-labs/test-utils"; -import assert from "assert"; -import { PublicCounter } from "../target/types/public_counter"; - -const COUNTER_SEED = "counter"; - -describe("public-counter magicsvm", () => { - const { svm, payer, program, validator } = bootAnchorSvm({ - fromDir: __dirname, - programName: "public_counter", - airdropLamports: BigInt(2 * web3.LAMPORTS_PER_SOL), - }); - const [counterPDA] = web3.PublicKey.findProgramAddressSync( - [Buffer.from(COUNTER_SEED)], - program.programId, - ); - - console.log("Program ID: ", program.programId.toString()); - console.log("Counter PDA: ", counterPDA.toString()); - console.log("Validator identity: ", validator.toString()); - - it("Initialize counter on Solana", async () => { - const tx = await program.methods - .initialize() - .accounts({ - user: payer.publicKey, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "base", "initialize"); - assert.equal(readU64le(svm, counterPDA, "base"), 0n); - }); - - it("Increase counter on Solana", async () => { - const tx = await program.methods - .increment() - .accounts({ - counter: counterPDA, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "base", "increment (base)"); - assert.equal(readU64le(svm, counterPDA, "base"), 1n); - }); - - it("Delegate counter to ER", async () => { - const tx = await program.methods - .delegate() - .accounts({ - payer: payer.publicKey, - pda: counterPDA, - }) - .remainingAccounts([validatorRemainingAccount(svm)]) - .transaction(); - sendSvmTx(svm, [payer], tx, "base", "delegate"); - assert.ok(isDelegated(svm, counterPDA)); - }); - - it("Increase counter on ER", async () => { - const tx = await program.methods - .increment() - .accounts({ - counter: counterPDA, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "ephemeral", "increment (ER)"); - assert.equal(readU64le(svm, counterPDA, "ephemeral"), 2n); - }); - - it("Commit counter state on ER to Solana", async () => { - const tx = await program.methods - .commit() - .accounts({ - payer: payer.publicKey, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "ephemeral", "commit"); - const committed = svm.getAccountFor(counterPDA, { target: "base" }); - assert.ok(committed.exists, "counter missing on base after commit"); - console.log( - "base account after commit:", - committed.programAddress.toString(), - Buffer.from(committed.data).readBigUInt64LE(8).toString(), - ); - assert.equal(readU64le(svm, counterPDA, "base"), 2n); - assert.ok(isDelegated(svm, counterPDA)); - }); - - it("Increase counter on ER and commit", async () => { - const tx = await program.methods - .incrementAndCommit() - .accounts({ - payer: payer.publicKey, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "ephemeral", "incrementAndCommit"); - assert.equal(readU64le(svm, counterPDA, "ephemeral"), 3n); - assert.equal(readU64le(svm, counterPDA, "base"), 3n); - }); - - it("Increment and undelegate counter on ER to Solana", async () => { - const tx = await program.methods - .incrementAndUndelegate() - .accounts({ - payer: payer.publicKey, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "ephemeral", "incrementAndUndelegate"); - assert.equal(readU64le(svm, counterPDA, "base"), 4n); - assert.equal( - accountOwner(svm, counterPDA, "base"), - program.programId.toString(), - ); - }); -}); diff --git a/counter/anchor/tsconfig.json b/counter/anchor/tsconfig.json deleted file mode 100644 index d93d6f9e..00000000 --- a/counter/anchor/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "types": ["mocha", "chai"], - "typeRoots": ["./node_modules/@types"], - "lib": ["es2020"], - "module": "commonjs", - "target": "es2020", - "esModuleInterop": true, - "skipLibCheck": true - } -} diff --git a/counter/anchor/yarn.lock b/counter/anchor/yarn.lock index 56acb82f..4a9f7977 100644 --- a/counter/anchor/yarn.lock +++ b/counter/anchor/yarn.lock @@ -2,1862 +2,7 @@ # yarn lockfile v1 -"@babel/runtime@^7.25.0": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326" - integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== - -"@coral-xyz/anchor-errors@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" - integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== - -"@coral-xyz/anchor@0.32.1": - version "0.32.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" - integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== - dependencies: - "@coral-xyz/anchor-errors" "^0.31.1" - "@coral-xyz/borsh" "^0.31.1" - "@noble/hashes" "^1.3.1" - "@solana/web3.js" "^1.69.0" - bn.js "^5.1.2" - bs58 "^4.0.1" - buffer-layout "^1.2.2" - camelcase "^6.3.0" - cross-fetch "^3.1.5" - eventemitter3 "^4.0.7" - pako "^2.0.3" - superstruct "^0.15.4" - toml "^3.0.0" - -"@coral-xyz/borsh@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.31.1.tgz#5328e1e0921b75d7f4a62dd3f61885a938bc7241" - integrity sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw== - dependencies: - bn.js "^5.1.2" - buffer-layout "^1.2.0" - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" - integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@magicblock-labs/ephemeral-rollups-sdk@0.14.3": - version "0.14.3" - resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.14.3.tgz#536c215d1daefdbcfa82a79304b08f5014405c58" - integrity sha512-CoByiXHLLS+l7Ojl6XJuYypP/k08ymFkab8+Gh/HCv5Gn2oC4VkwszEQoTDnKo++8Oxbqr9YVGzAMUW4Km7cLA== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@phala/dcap-qvl" "^0.3.9" - "@solana/web3.js" "^1.98.0" - bs58 "^6.0.0" - rpc-websockets "^9.0.4" - tweetnacl "^1.0.3" - typescript "^5.3.0" - -"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" - integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== - -"@magicblock-labs/magicsvm-darwin-x64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" - integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== - -"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" - integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== - -"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" - integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== - -"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" - integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== - -"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" - integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== - -"@magicblock-labs/magicsvm@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" - integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== - dependencies: - "@solana/web3.js" "3.0.0-rc.3" - optionalDependencies: - "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" - "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" - -"@magicblock-labs/test-utils@link:../../test-utils/ts": - version "0.0.0" - uid "" - -"@noble/curves@^1.4.2": - version "1.9.7" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" - integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== - dependencies: - "@noble/hashes" "1.8.0" - -"@noble/hashes@1.8.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" - integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== - -"@peculiar/asn1-schema@^2.3.13", "@peculiar/asn1-schema@^2.6.0": - version "2.6.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.6.0.tgz#0dca1601d5b0fed2a72fed7a5f1d0d7dbe3a6f82" - integrity sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg== - dependencies: - asn1js "^3.0.6" - pvtsutils "^1.3.6" - tslib "^2.8.1" - -"@peculiar/asn1-x509@^2.3.13": - version "2.6.1" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.6.1.tgz#4e8995659e16178e0e90fe90519aa269045af262" - integrity sha512-O9jT5F1A2+t3r7C4VT7LYGXqkGLK7Kj1xFpz7U0isPrubwU5PbDoyYtx6MiGst29yq7pXN5vZbQFKRCP+lLZlA== - dependencies: - "@peculiar/asn1-schema" "^2.6.0" - asn1js "^3.0.6" - pvtsutils "^1.3.6" - tslib "^2.8.1" - -"@phala/dcap-qvl@^0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@phala/dcap-qvl/-/dcap-qvl-0.3.9.tgz#34da2506c31954cd290afb5a46146cd52ae24481" - integrity sha512-s/4gAFVq1DRhYkuerDR9WAlX8tkCpFTHTVpWnWlrigj5la2X5OtQl9Y7PzwcqY4h0fc25yqZrcRH3AZpzB1qOw== - dependencies: - "@peculiar/asn1-schema" "^2.3.13" - "@peculiar/asn1-x509" "^2.3.13" - asn1.js "^5.4.1" - bn.js "^5.2.2" - buffer "^6.0.3" - elliptic "^6.6.1" - hash.js "^1.1.7" - node-fetch "^2.7.0" - -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - -"@solana-program/address-lookup-table@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" - integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== - -"@solana-program/compute-budget@^0.18.0": - version "0.18.1" - resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" - integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== - -"@solana-program/loader-v3@^0.6.0": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" - integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== - -"@solana-program/stake@^0.9.0": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" - integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== - -"@solana-program/system@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" - integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== - -"@solana/accounts@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" - integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/addresses@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" - integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" - integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/buffer-layout@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" - integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== - dependencies: - buffer "~6.0.3" - -"@solana/codecs-core@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-2.3.0.tgz#6bf2bb565cb1ae880f8018635c92f751465d8695" - integrity sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw== - dependencies: - "@solana/errors" "2.3.0" - -"@solana/codecs-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" - integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/codecs-data-structures@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" - integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" - integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@^2.1.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" - integrity sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg== - dependencies: - "@solana/codecs-core" "2.3.0" - "@solana/errors" "2.3.0" - -"@solana/codecs-strings@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" - integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" - integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/options" "8.3.0" - -"@solana/errors@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.3.0.tgz#4ac9380343dbeffb9dffbcb77c28d0e457c5fa31" - integrity sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ== - dependencies: - chalk "^5.4.1" - commander "^14.0.0" - -"@solana/errors@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" - integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== - dependencies: - chalk "5.6.2" - commander "15.0.0" - -"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" - integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== - -"@solana/fixed-points@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" - integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/functional@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" - integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== - -"@solana/instruction-plans@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" - integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/instructions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" - integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/keys@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" - integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/kit@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" - integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/plugin-core" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/program-client-core" "8.3.0" - "@solana/programs" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/subscribable" "8.3.0" - "@solana/sysvars" "8.3.0" - "@solana/transaction-confirmation" "8.3.0" - "@solana/transaction-introspection" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/nominal-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" - integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== - -"@solana/offchain-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" - integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/options@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" - integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/plugin-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" - integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== - -"@solana/plugin-interfaces@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" - integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/program-client-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" - integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/signers" "8.3.0" - -"@solana/programs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" - integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/promises@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" - integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== - -"@solana/rpc-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" - integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-parsed-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" - integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== - -"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" - integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/rpc-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" - integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" - integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-subscriptions-channel-websocket@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" - integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/subscribable" "8.3.0" - ws "^8.21.3" - -"@solana/rpc-subscriptions-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" - integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" - integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions-api" "8.3.0" - "@solana/rpc-subscriptions-channel-websocket" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-transformers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" - integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/rpc-transport-http@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" - integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - undici-types "^8.10.2" - -"@solana/rpc-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" - integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/rpc@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" - integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-transport-http" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/signers@8.3.0", "@solana/signers@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" - integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/subscribable@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" - integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/sysvars@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" - integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transaction-confirmation@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" - integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-introspection@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" - integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" - integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transactions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" - integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - -"@solana/web3.js@3.0.0-rc.3": - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" - integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@solana-program/address-lookup-table" "^0.14.0" - "@solana-program/compute-budget" "^0.18.0" - "@solana-program/loader-v3" "^0.6.0" - "@solana-program/stake" "^0.9.0" - "@solana-program/system" "^0.14.0" - "@solana/assertions" "^8.2.0" - "@solana/fast-stable-stringify" "^8.2.0" - "@solana/kit" "^8.2.0" - "@solana/rpc-spec-types" "^8.2.0" - "@solana/signers" "^8.2.0" - -"@solana/web3.js@^1.69.0", "@solana/web3.js@^1.98.0": - version "1.98.4" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" - integrity sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw== - 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.1.0" - agentkeepalive "^4.5.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.1.1" - node-fetch "^2.7.0" - rpc-websockets "^9.0.2" - superstruct "^2.0.2" - -"@swc/helpers@^0.5.11": - version "0.5.17" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.17.tgz#5a7be95ac0f0bf186e7e6e890e7a6f6cda6ce971" - integrity sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A== - dependencies: - tslib "^2.8.0" - -"@tsconfig/node10@^1.0.7": - version "1.0.12" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.12.tgz#be57ceac1e4692b41be9de6be8c32a106636dba4" - integrity sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@types/bn.js@^5.1.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.2.0.tgz#4349b9710e98f9ab3cdc50f1c5e4dcbd8ef29c80" - integrity sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q== - dependencies: - "@types/node" "*" - -"@types/chai@^5.2.2": - version "5.2.3" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-5.2.3.tgz#8e9cd9e1c3581fa6b341a5aed5588eb285be0b4a" - integrity sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA== - dependencies: - "@types/deep-eql" "*" - assertion-error "^2.0.1" - -"@types/connect@^3.4.33": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" - integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== - dependencies: - "@types/node" "*" - -"@types/deep-eql@*": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/deep-eql/-/deep-eql-4.0.2.tgz#334311971d3a07121e7eb91b684a605e7eea9cbd" - integrity sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw== - -"@types/mocha@^10.0.10": - version "10.0.10" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.10.tgz#91f62905e8d23cbd66225312f239454a23bebfa0" - integrity sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q== - -"@types/node@*": - version "24.10.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.1.tgz#91e92182c93db8bd6224fca031e2370cef9a8f01" - integrity sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ== - dependencies: - undici-types "~7.16.0" - -"@types/node@^12.12.54": - version "12.20.55" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - -"@types/uuid@^8.3.4": - version "8.3.4" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" - integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== - -"@types/ws@^7.4.4": - version "7.4.7" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - dependencies: - "@types/node" "*" - -"@types/ws@^8.2.2": - version "8.18.1" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" - integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== - dependencies: - "@types/node" "*" - -acorn-walk@^8.1.1: - version "8.3.4" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" - integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== - dependencies: - acorn "^8.11.0" - -acorn@^8.11.0, acorn@^8.4.1: - version "8.15.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" - integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== - -agentkeepalive@^4.5.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" - integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== - dependencies: - humanize-ms "^1.2.1" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" - integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^6.1.0: - version "6.2.3" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" - integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -asn1.js@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1js@^3.0.6: - version "3.0.7" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.7.tgz#15f1f2f59e60f80d5b43ef14047a294a969f824f" - integrity sha512-uLvq6KJu04qoQM6gvBfKFjlh6Gl0vOKQuR5cJMDHQkmwfMOQeN3F3SHCv9SNYSL+CRoHvOGFfllDlVz03GQjvQ== - dependencies: - pvtsutils "^1.3.6" - pvutils "^1.1.3" - tslib "^2.8.1" - -assertion-error@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" - integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base-x@^3.0.2: - version "3.0.11" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.11.tgz#40d80e2a1aeacba29792ccc6c5354806421287ff" - integrity sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA== - dependencies: - safe-buffer "^5.0.1" - -base-x@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-5.0.1.tgz#16bf35254be1df8aca15e36b7c1dda74b2aa6b03" - integrity sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bn.js@^4.0.0, bn.js@^4.11.9: - version "4.12.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.3.tgz#2cc2c679188eb35b006f2d0d4710bed8437a769e" - integrity sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g== - -bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: - version "5.2.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.2.tgz#82c09f9ebbb17107cd72cb7fd39bd1f9d0aaa566" - integrity sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw== - -bn.js@^5.2.2: - version "5.2.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.3.tgz#16a9e409616b23fef3ccbedb8d42f13bff80295e" - integrity sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w== - -borsh@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" - integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== - dependencies: - bn.js "^5.2.0" - bs58 "^4.0.0" - text-encoding-utf-8 "^1.0.2" - -brace-expansion@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" - integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== - dependencies: - balanced-match "^1.0.0" - -brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browser-stdout@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -bs58@^4.0.0, bs58@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - dependencies: - base-x "^3.0.2" - -bs58@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-6.0.0.tgz#a2cda0130558535dd281a2f8697df79caaf425d8" - integrity sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw== - dependencies: - base-x "^5.0.0" - -buffer-layout@^1.2.0, buffer-layout@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" - integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== - -buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -bufferutil@^4.0.1: - version "4.0.9" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.9.tgz#6e81739ad48a95cad45a279588e13e95e24a800a" - integrity sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw== - dependencies: - node-gyp-build "^4.3.0" - -camelcase@^6.0.0, camelcase@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -chai@^5.2.0: - version "5.3.3" - resolved "https://registry.yarnpkg.com/chai/-/chai-5.3.3.tgz#dd3da955e270916a4bd3f625f4b919996ada7e06" - integrity sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw== - dependencies: - assertion-error "^2.0.1" - check-error "^2.1.1" - deep-eql "^5.0.1" - loupe "^3.1.0" - pathval "^2.0.0" - -chalk@5.6.2, chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - -chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -check-error@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" - integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== - -chokidar@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" - integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== - dependencies: - readdirp "^4.0.1" - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -commander@15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" - integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== - -commander@^14.0.0: - version "14.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e" - integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== - -commander@^2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-fetch@^3.1.5: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" - integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== - dependencies: - node-fetch "^2.7.0" - -cross-spawn@^7.0.6: - version "7.0.6" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" - integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -debug@^4.3.5: - version "4.4.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" - integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== - dependencies: - ms "^2.1.3" - -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - -deep-eql@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" - integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== - -delay@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" - integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -diff@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-7.0.0.tgz#3fb34d387cd76d803f6eebea67b921dab0182a9a" - integrity sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw== - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -elliptic@^6.6.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" - integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== - dependencies: - es6-promise "^4.0.3" - -escalade@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eventemitter3@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -eventemitter3@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" - integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - -eyes@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" - integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== - -fast-stable-stringify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" - integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -foreground-child@^3.1.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" - integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== - dependencies: - cross-spawn "^7.0.6" - signal-exit "^4.0.1" - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -glob@^10.4.5: - version "10.5.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" - integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== - dependencies: - foreground-child "^3.1.0" - jackspeak "^3.1.2" - minimatch "^9.0.4" - minipass "^7.1.2" - package-json-from-dist "^1.0.0" - path-scurry "^1.11.1" - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - -jackspeak@^3.1.2: - version "3.4.3" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" - integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - -jayson@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.2.0.tgz#b71762393fa40bc9637eaf734ca6f40d3b8c0c93" - integrity sha512-VfJ9t1YLwacIubLhONk0KFeosUBwstRWQ0IRT1KDjEjnVnSOVHC3uwugyV7L0c7R9lpVyrUGT2XWiBA1UTtpyg== - dependencies: - "@types/connect" "^3.4.33" - "@types/node" "^12.12.54" - "@types/ws" "^7.4.4" - commander "^2.20.3" - delay "^5.0.0" - es6-promisify "^5.0.0" - eyes "^0.1.8" - isomorphic-ws "^4.0.1" - json-stringify-safe "^5.0.1" - stream-json "^1.9.1" - uuid "^8.3.2" - ws "^7.5.10" - -js-yaml@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" - integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== - dependencies: - argparse "^2.0.1" - -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -loupe@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.2.1.tgz#0095cf56dc5b7a9a7c08ff5b1a8796ec8ad17e76" - integrity sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ== - -lru-cache@^10.2.0: - version "10.4.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" - integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -minimatch@^9.0.4, minimatch@^9.0.5: - version "9.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" - integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== - dependencies: - brace-expansion "^2.0.1" - -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" - integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== - -mocha@^11.2.2: - version "11.7.5" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.7.5.tgz#58f5bbfa5e0211ce7e5ee6128107cefc2515a627" - integrity sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig== - dependencies: - browser-stdout "^1.3.1" - chokidar "^4.0.1" - debug "^4.3.5" - diff "^7.0.0" - escape-string-regexp "^4.0.0" - find-up "^5.0.0" - glob "^10.4.5" - he "^1.2.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - log-symbols "^4.1.0" - minimatch "^9.0.5" - ms "^2.1.3" - picocolors "^1.1.1" - serialize-javascript "^6.0.2" - strip-json-comments "^3.1.1" - supports-color "^8.1.1" - workerpool "^9.2.0" - yargs "^17.7.2" - yargs-parser "^21.1.1" - yargs-unparser "^2.0.0" - -ms@^2.0.0, ms@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -node-fetch@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - -node-gyp-build@^4.3.0: - version "4.8.4" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" - integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -package-json-from-dist@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" - integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== - -pako@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" - integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-scurry@^1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" - integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== - dependencies: - lru-cache "^10.2.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - -pathval@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.1.tgz#8855c5a2899af072d6ac05d11e46045ad0dc605d" - integrity sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ== - -picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - prettier@^3.5.3: - version "3.6.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.6.2.tgz#ccda02a1003ebbb2bfda6f83a074978f608b9393" - integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ== - -pvtsutils@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.6.tgz#ec46e34db7422b9e4fdc5490578c1883657d6001" - integrity sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg== - dependencies: - tslib "^2.8.1" - -pvutils@^1.1.3: - version "1.1.5" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.5.tgz#84b0dea4a5d670249aa9800511804ee0b7c2809c" - integrity sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -readdirp@^4.0.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" - integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -rpc-websockets@^9.0.2, rpc-websockets@^9.0.4: - version "9.3.1" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.3.1.tgz#d817a59d812f68bae1215740a3f78fcdd3813698" - integrity sha512-bY6a+i/lEtBJ/mUxwsCTgevoV1P0foXTVA7UoThzaIWbM+3NDqorf8NBWs5DmqKTFeA1IoNzgvkWjFCPgnzUiQ== - dependencies: - "@swc/helpers" "^0.5.11" - "@types/uuid" "^8.3.4" - "@types/ws" "^8.2.2" - buffer "^6.0.3" - eventemitter3 "^5.0.1" - uuid "^8.3.2" - ws "^8.5.0" - optionalDependencies: - bufferutil "^4.0.1" - utf-8-validate "^5.0.2" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -serialize-javascript@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" - integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== - dependencies: - randombytes "^2.1.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -stream-chain@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/stream-chain/-/stream-chain-2.2.5.tgz#b30967e8f14ee033c5b9a19bbe8a2cba90ba0d09" - integrity sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA== - -stream-json@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/stream-json/-/stream-json-1.9.1.tgz#e3fec03e984a503718946c170db7d74556c2a187" - integrity sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw== - dependencies: - stream-chain "^2.2.5" - -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1: - version "7.1.2" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" - integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== - dependencies: - ansi-regex "^6.0.1" - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -superstruct@^0.15.4: - version "0.15.5" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" - integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== - -superstruct@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-2.0.2.tgz#3f6d32fbdc11c357deff127d591a39b996300c54" - integrity sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A== - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -text-encoding-utf-8@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" - integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== - -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -ts-mocha@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-11.1.0.tgz#d8336ec0146bd6f36cca2555f4cfc7df85bd1586" - integrity sha512-yT7FfzNRCu8ZKkYvAOiH01xNma/vLq6Vit7yINKYFNVP8e5UyrYXSOMIipERTpzVKJQ4Qcos5bQo1tNERNZevQ== - -ts-node@^10.9.2: - version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" - integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tslib@^2.8.0, tslib@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" - integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -typescript@^5.3.0, typescript@^5.8.3: - version "5.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" - integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== - -undici-types@^8.10.2: - version "8.10.2" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" - integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== - -undici-types@~7.16.0: - version "7.16.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" - integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== - -utf-8-validate@^5.0.2: - version "5.0.10" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" - integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== - dependencies: - node-gyp-build "^4.3.0" - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -workerpool@^9.2.0: - version "9.3.4" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-9.3.4.tgz#f6c92395b2141afd78e2a889e80cb338fe9fca41" - integrity sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg== - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - -ws@^7.5.10: - version "7.5.10" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" - integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== - -ws@^8.21.3: - version "8.21.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" - integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== - -ws@^8.5.0: - version "8.18.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" - integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs-unparser@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@^17.7.2: - version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + version "3.9.9" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.9.9.tgz#09b826918c91cd4cbc80e0cbd1d2a922ff04f233" + integrity sha512-Z/CJHIkdujO/OtN7nXUii0Rf3VT5SRuhjBA82Xvu2XhBUgX3nhP67T0LHceBdQLex7OOFGTox+Q5Yg8Jk2Qivg== diff --git a/counter/native-rust/README.md b/counter/native-rust/README.md index 7b4a38b2..36714bf0 100644 --- a/counter/native-rust/README.md +++ b/counter/native-rust/README.md @@ -24,7 +24,7 @@ yarn yarn build ``` -Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): +Run the Rust test suite in `tests-magicsvm-rs/` in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash yarn test @@ -34,7 +34,7 @@ MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no va network. The suite covers counter delegation, commits, undelegation, and the increment-and-commit CPI paths. -A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. +`yarn test` runs `cargo +stable test`: MagicSVM needs a newer Rust than the 1.89 toolchain used for program builds. ## 📤 Delegate an account diff --git a/counter/native-rust/package.json b/counter/native-rust/package.json index 8c34f543..5b997a10 100644 --- a/counter/native-rust/package.json +++ b/counter/native-rust/package.json @@ -3,38 +3,14 @@ "version": "1.0.0", "main": "index.js", "license": "ISC", - "dependencies": { - "@magicblock-labs/ephemeral-rollups-kit": "0.14.3", - "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3", - "@magicblock-labs/magicsvm": "0.2.0", - "@solana-program/system": "^0.9.0", - "@solana/buffer-layout": "^4.0.1", - "@solana/kit": "^4.0.0", - "@solana/transaction-confirmation": "^4.0.0", - "@solana/web3.js": "^1.98.2", - "borsh": "0.7.0", - "dotenv": "^16.5.0", - "fs": "0.0.2" - }, "scripts": { - "test": "npx vitest run ./tests/rust-counter.test.ts", - "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture", + "test": "cargo +stable test --manifest-path tests-magicsvm-rs/Cargo.toml", "build": "cargo build-sbf", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w" }, "devDependencies": { - "@types/chai": "^5.2.2", - "@types/mocha": "^10.0.10", - "bs58": "^6.0.0", - "chai": "^5.2.0", - "mocha": "^11.2.2", - "prettier": "^3.5.3", - "ts-mocha": "^11.1.0", - "ts-node": "^10.9.2", - "typescript": "^5.8.3", - "vitest": "^2.1.8", - "@magicblock-labs/test-utils": "link:../../test-utils/ts" + "prettier": "^3.5.3" }, "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" } diff --git a/counter/native-rust/tests/rust-counter.test.ts b/counter/native-rust/tests/rust-counter.test.ts deleted file mode 100644 index 8d90ff53..00000000 --- a/counter/native-rust/tests/rust-counter.test.ts +++ /dev/null @@ -1,398 +0,0 @@ -import { - Keypair, - PublicKey, - SystemProgram, - Transaction, - TransactionInstruction, - LAMPORTS_PER_SOL, -} from "@solana/web3.js"; -import * as borsh from "borsh"; -import bs58 from "bs58"; -import { CounterInstruction, IncreaseCounterPayload } from "./schema"; -import { - MagicSVM, - TransactionMetadata, - type TransactionTarget, -} from "@magicblock-labs/magicsvm"; -import { - DELEGATION_PROGRAM_ID, - MAGIC_CONTEXT_ID, - MAGIC_PROGRAM_ID, - accountOwner, - createSvm, - delegateBufferPdaFromDelegatedAccountAndOwnerProgram, - delegationMetadataPdaFromDelegatedAccount, - delegationRecordPdaFromDelegatedAccount, - isDelegated, - programIdFromKeypairFile, - readU64le, - sendSvmTx, -} from "@magicblock-labs/test-utils"; -import { describe, it, beforeAll, expect } from "vitest"; - -const PROGRAM_SO_PATH = "target/deploy/rust_counter.so"; -const PROGRAM_KEYPAIR_PATH = "target/deploy/rust_counter-keypair.json"; - -function readCounter( - svm: MagicSVM, - counterPda: PublicKey, - target: TransactionTarget, -): bigint { - return readU64le(svm, counterPda, target, 0); -} - -function signatureOf(meta: TransactionMetadata): string { - return bs58.encode(Buffer.from(meta.signature())); -} - -function signAndSend( - svm: MagicSVM, - tx: Transaction, - signers: Keypair[], - target: TransactionTarget, -): TransactionMetadata { - return sendSvmTx(svm, signers, tx, target); -} - -function initializeCounterIx( - programId: PublicKey, - user: PublicKey, - counterPda: PublicKey, -) { - return new TransactionInstruction({ - keys: [ - { pubkey: user, isSigner: true, isWritable: true }, - { pubkey: counterPda, isSigner: false, isWritable: true }, - { pubkey: SystemProgram.programId, isSigner: false, isWritable: false }, - ], - programId, - data: Buffer.from(CounterInstruction.InitializeCounter, "hex"), - }); -} - -function increaseCounterIx( - programId: PublicKey, - user: PublicKey, - counterPda: PublicKey, - increaseBy: number, -) { - return new TransactionInstruction({ - keys: [ - { pubkey: user, isSigner: true, isWritable: true }, - { pubkey: counterPda, isSigner: false, isWritable: true }, - ], - programId, - data: Buffer.concat([ - Buffer.from(CounterInstruction.IncreaseCounter, "hex"), - Buffer.from( - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(increaseBy), - ), - ), - ]), - }); -} - -function delegateCounterIx( - programId: PublicKey, - user: PublicKey, - counterPda: PublicKey, - validator: PublicKey, -) { - return new TransactionInstruction({ - keys: [ - { pubkey: user, isSigner: true, isWritable: true }, - { pubkey: SystemProgram.programId, isSigner: false, isWritable: false }, - { pubkey: counterPda, isSigner: false, isWritable: true }, - { pubkey: programId, isSigner: false, isWritable: false }, - { - pubkey: delegateBufferPdaFromDelegatedAccountAndOwnerProgram( - counterPda, - programId, - ), - isSigner: false, - isWritable: true, - }, - { - pubkey: delegationRecordPdaFromDelegatedAccount(counterPda), - isSigner: false, - isWritable: true, - }, - { - pubkey: delegationMetadataPdaFromDelegatedAccount(counterPda), - isSigner: false, - isWritable: true, - }, - { pubkey: DELEGATION_PROGRAM_ID, isSigner: false, isWritable: false }, - { pubkey: validator, isSigner: false, isWritable: false }, - ], - programId, - data: Buffer.from(CounterInstruction.Delegate, "hex"), - }); -} - -function commitStyleIx( - programId: PublicKey, - user: PublicKey, - counterPda: PublicKey, - discriminator: CounterInstruction, - increaseBy?: number, -) { - const data = - increaseBy === undefined - ? Buffer.from(discriminator, "hex") - : Buffer.concat([ - Buffer.from(discriminator, "hex"), - Buffer.from( - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(increaseBy), - ), - ), - ]); - return new TransactionInstruction({ - keys: [ - { pubkey: user, isSigner: true, isWritable: true }, - { pubkey: counterPda, isSigner: false, isWritable: true }, - { pubkey: MAGIC_PROGRAM_ID, isSigner: false, isWritable: false }, - { pubkey: MAGIC_CONTEXT_ID, isSigner: false, isWritable: true }, - ], - programId, - data, - }); -} - -function bootCounterSvm(programId: PublicKey, user: Keypair): MagicSVM { - return createSvm({ - programs: [{ id: programId, so: PROGRAM_SO_PATH }], - airdrops: [ - { - address: user.publicKey, - lamports: BigInt(2 * LAMPORTS_PER_SOL), - label: "airdrop", - }, - ], - }).svm; -} - -describe("basic-test", () => { - const PROGRAM_ID = new PublicKey( - programIdFromKeypairFile(PROGRAM_KEYPAIR_PATH), - ); - const userKeypair = Keypair.generate(); - const [counterPda] = PublicKey.findProgramAddressSync( - [Buffer.from("counter"), userKeypair.publicKey.toBuffer()], - PROGRAM_ID, - ); - let svm: MagicSVM; - let validatorPubkey: PublicKey; - - beforeAll(() => { - svm = bootCounterSvm(PROGRAM_ID, userKeypair); - validatorPubkey = new PublicKey(svm.validatorIdentity().toString()); - console.log("Program ID: ", PROGRAM_ID.toString()); - console.log("Counter PDA: ", counterPda.toString()); - console.log("Validator identity: ", validatorPubkey.toString()); - }); - - it("Initialize counter on Solana", () => { - const start = Date.now(); - const tx = new Transaction().add( - initializeCounterIx(PROGRAM_ID, userKeypair.publicKey, counterPda), - ); - const meta = signAndSend(svm, tx, [userKeypair], "base"); - const txHash = signatureOf(meta); - console.log( - `${Date.now() - start}ms (Base Layer) Initialize txHash: ${txHash}`, - ); - expect(txHash).toBeDefined(); - expect(readCounter(svm, counterPda, "base")).toBe(0n); - }); - - it("Increase counter on Solana", () => { - const start = Date.now(); - const tx = new Transaction().add( - increaseCounterIx(PROGRAM_ID, userKeypair.publicKey, counterPda, 1), - ); - const meta = signAndSend(svm, tx, [userKeypair], "base"); - const txHash = signatureOf(meta); - console.log( - `${Date.now() - start}ms (Base Layer) Increment txHash: ${txHash}`, - ); - expect(txHash).toBeDefined(); - expect(readCounter(svm, counterPda, "base")).toBe(1n); - }); - - it("Delegate counter to ER", () => { - const start = Date.now(); - const tx = new Transaction().add( - delegateCounterIx( - PROGRAM_ID, - userKeypair.publicKey, - counterPda, - validatorPubkey, - ), - ); - const meta = signAndSend(svm, tx, [userKeypair], "base"); - const txHash = signatureOf(meta); - console.log( - `${Date.now() - start}ms (Base Layer) Delegate txHash: ${txHash}`, - ); - expect(txHash).toBeDefined(); - expect(isDelegated(svm, counterPda)).toBe(true); - expect(readCounter(svm, counterPda, "ephemeral")).toBe(1n); - }); - - it("Increase counter on ER (1)", () => { - const start = Date.now(); - const tx = new Transaction().add( - increaseCounterIx(PROGRAM_ID, userKeypair.publicKey, counterPda, 1), - ); - const meta = signAndSend(svm, tx, [userKeypair], "ephemeral"); - const txHash = signatureOf(meta); - console.log(`${Date.now() - start}ms (ER) Increment txHash: ${txHash}`); - expect(txHash).toBeDefined(); - expect(readCounter(svm, counterPda, "ephemeral")).toBe(2n); - }); - - it("Commit counter state on ER to Solana", () => { - const start = Date.now(); - const tx = new Transaction().add( - commitStyleIx( - PROGRAM_ID, - userKeypair.publicKey, - counterPda, - CounterInstruction.Commit, - ), - ); - const meta = signAndSend(svm, tx, [userKeypair], "ephemeral"); - const txHash = signatureOf(meta); - console.log(`${Date.now() - start}ms (ER) Commit txHash: ${txHash}`); - expect(txHash).toBeDefined(); - expect(readCounter(svm, counterPda, "base")).toBe(2n); - expect(isDelegated(svm, counterPda)).toBe(true); - }); - - it("Increase counter on ER (2)", () => { - const start = Date.now(); - const tx = new Transaction().add( - increaseCounterIx(PROGRAM_ID, userKeypair.publicKey, counterPda, 1), - ); - const meta = signAndSend(svm, tx, [userKeypair], "ephemeral"); - const txHash = signatureOf(meta); - console.log(`${Date.now() - start}ms (ER) Increment txHash: ${txHash}`); - expect(txHash).toBeDefined(); - expect(readCounter(svm, counterPda, "ephemeral")).toBe(3n); - }); - - it("Commit and undelegate counter on ER to Solana", () => { - const start = Date.now(); - const tx = new Transaction().add( - commitStyleIx( - PROGRAM_ID, - userKeypair.publicKey, - counterPda, - CounterInstruction.CommitAndUndelegate, - ), - ); - const meta = signAndSend(svm, tx, [userKeypair], "ephemeral"); - const txHash = signatureOf(meta); - console.log(`${Date.now() - start}ms (ER) Undelegate txHash: ${txHash}`); - expect(txHash).toBeDefined(); - expect(readCounter(svm, counterPda, "base")).toBe(3n); - expect(accountOwner(svm, counterPda, "base")).toBe(PROGRAM_ID.toString()); - }); -}); - -describe("increment-and-commit-cpi", () => { - const PROGRAM_ID = new PublicKey( - programIdFromKeypairFile(PROGRAM_KEYPAIR_PATH), - ); - const userKeypair = Keypair.generate(); - const [counterPda] = PublicKey.findProgramAddressSync( - [Buffer.from("counter"), userKeypair.publicKey.toBuffer()], - PROGRAM_ID, - ); - let svm: MagicSVM; - let validatorPubkey: PublicKey; - - beforeAll(() => { - svm = bootCounterSvm(PROGRAM_ID, userKeypair); - validatorPubkey = new PublicKey(svm.validatorIdentity().toString()); - }); - - it("Initialize counter on Solana", () => { - const meta = signAndSend( - svm, - new Transaction().add( - initializeCounterIx(PROGRAM_ID, userKeypair.publicKey, counterPda), - ), - [userKeypair], - "base", - ); - expect(signatureOf(meta)).toBeDefined(); - expect(readCounter(svm, counterPda, "base")).toBe(0n); - }); - - it("Delegate counter to ER", () => { - const meta = signAndSend( - svm, - new Transaction().add( - delegateCounterIx( - PROGRAM_ID, - userKeypair.publicKey, - counterPda, - validatorPubkey, - ), - ), - [userKeypair], - "base", - ); - expect(signatureOf(meta)).toBeDefined(); - expect(isDelegated(svm, counterPda)).toBe(true); - }); - - it("Increase delegated counter and commit through CPI", () => { - const start = Date.now(); - const tx = new Transaction().add( - commitStyleIx( - PROGRAM_ID, - userKeypair.publicKey, - counterPda, - CounterInstruction.IncrementAndCommit, - 1, - ), - ); - const meta = signAndSend(svm, tx, [userKeypair], "ephemeral"); - const txHash = signatureOf(meta); - console.log( - `${Date.now() - start}ms (ER) Increment And Commit txHash: ${txHash}`, - ); - expect(txHash).toBeDefined(); - expect(readCounter(svm, counterPda, "ephemeral")).toBe(1n); - expect(readCounter(svm, counterPda, "base")).toBe(1n); - expect(isDelegated(svm, counterPda)).toBe(true); - }); - - it("Increase delegated counter and undelegate through CPI", () => { - const start = Date.now(); - const tx = new Transaction().add( - commitStyleIx( - PROGRAM_ID, - userKeypair.publicKey, - counterPda, - CounterInstruction.IncrementAndUndelegate, - 1, - ), - ); - const meta = signAndSend(svm, tx, [userKeypair], "ephemeral"); - const txHash = signatureOf(meta); - console.log( - `${Date.now() - start}ms (ER) Increment and Undelegate txHash: ${txHash}`, - ); - expect(txHash).toBeDefined(); - expect(readCounter(svm, counterPda, "base")).toBe(2n); - expect(accountOwner(svm, counterPda, "base")).toBe(PROGRAM_ID.toString()); - }); -}); diff --git a/counter/native-rust/tests/schema.ts b/counter/native-rust/tests/schema.ts deleted file mode 100644 index 72c17edd..00000000 --- a/counter/native-rust/tests/schema.ts +++ /dev/null @@ -1,41 +0,0 @@ -export class Counter { - count = 0; - constructor(fields: { count: number } | undefined = undefined) { - if (fields) { - this.count = fields.count; - } - } -} - -export const CounterSchema = new Map([ - [Counter, { kind: "struct", fields: [["count", "u64"]] }], -]); - -export enum CounterInstruction { - InitializeCounter = "0000000000000000", // [0, 0, 0, 0, 0, 0, 0, 0] - IncreaseCounter = "0100000000000000", // [1, 0, 0, 0, 0, 0, 0, 0] - Delegate = "0200000000000000", // [2, 0, 0, 0, 0, 0, 0, 0] - CommitAndUndelegate = "0300000000000000", // [3, 0, 0, 0, 0, 0, 0, 0] - Commit = "0400000000000000", // [4, 0, 0, 0, 0, 0, 0, 0] - IncrementAndCommit = "0500000000000000", // [5, 0, 0, 0, 0, 0, 0, 0] - IncrementAndUndelegate = "0600000000000000", // [6, 0, 0, 0, 0, 0, 0, 0] - Undelegate = "C41C29CE302533A7", // [196, 28, 41, 206, 48, 37, 51, 167] -} - -export class IncreaseCounterPayload { - increase_by: number; - - constructor(increase_by: number) { - this.increase_by = increase_by; - } - - static schema = new Map([ - [ - IncreaseCounterPayload, - { - kind: "struct", - fields: [["increase_by", "u64"]], - }, - ], - ]); -} diff --git a/counter/native-rust/tsconfig.json b/counter/native-rust/tsconfig.json deleted file mode 100644 index e37d7074..00000000 --- a/counter/native-rust/tsconfig.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "compilerOptions": { - "types": ["mocha", "chai"], - "typeRoots": ["./node_modules/@types"], - "lib": ["es2020", "dom"], - "module": "commonjs", - "target": "es2020", - "esModuleInterop": true, - "skipLibCheck": true - } - } - -// { -// "compilerOptions": { -// "types": ["mocha", "chai"], -// "typeRoots": ["./node_modules/@types"], -// "lib": ["es2015"], -// "module": "ES2020", -// "target": "ES2020", -// "esModuleInterop": true, -// "moduleResolution": "node" -// } -// } \ No newline at end of file diff --git a/counter/native-rust/vitest.config.ts b/counter/native-rust/vitest.config.ts deleted file mode 100644 index a89ef7e1..00000000 --- a/counter/native-rust/vitest.config.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { defineConfig } from 'vitest/config'; - -export default defineConfig({ - test: { - fileParallelism: false, - include: ['tests/**/*.test.ts'], - reporters: 'verbose', - }, -}); diff --git a/counter/native-rust/yarn.lock b/counter/native-rust/yarn.lock index 43fa9380..4a9f7977 100644 --- a/counter/native-rust/yarn.lock +++ b/counter/native-rust/yarn.lock @@ -2,2905 +2,7 @@ # yarn lockfile v1 -"@babel/runtime@^7.25.0": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326" - integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== - -"@babel/runtime@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.7.tgz#12022450c45a4da6d8d8287b18a4ff2ddb23f768" - integrity sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw== - -"@coral-xyz/anchor-errors@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" - integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== - -"@coral-xyz/anchor@0.32.1": - version "0.32.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" - integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== - dependencies: - "@coral-xyz/anchor-errors" "^0.31.1" - "@coral-xyz/borsh" "^0.31.1" - "@noble/hashes" "^1.3.1" - "@solana/web3.js" "^1.69.0" - bn.js "^5.1.2" - bs58 "^4.0.1" - buffer-layout "^1.2.2" - camelcase "^6.3.0" - cross-fetch "^3.1.5" - eventemitter3 "^4.0.7" - pako "^2.0.3" - superstruct "^0.15.4" - toml "^3.0.0" - -"@coral-xyz/borsh@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.31.1.tgz#5328e1e0921b75d7f4a62dd3f61885a938bc7241" - integrity sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw== - dependencies: - bn.js "^5.1.2" - buffer-layout "^1.2.0" - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@esbuild/aix-ppc64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" - integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== - -"@esbuild/android-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" - integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== - -"@esbuild/android-arm@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" - integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== - -"@esbuild/android-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" - integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== - -"@esbuild/darwin-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" - integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== - -"@esbuild/darwin-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" - integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== - -"@esbuild/freebsd-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" - integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== - -"@esbuild/freebsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" - integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== - -"@esbuild/linux-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" - integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== - -"@esbuild/linux-arm@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" - integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== - -"@esbuild/linux-ia32@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" - integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== - -"@esbuild/linux-loong64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" - integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== - -"@esbuild/linux-mips64el@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" - integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== - -"@esbuild/linux-ppc64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" - integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== - -"@esbuild/linux-riscv64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" - integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== - -"@esbuild/linux-s390x@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" - integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== - -"@esbuild/linux-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" - integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== - -"@esbuild/netbsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" - integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== - -"@esbuild/openbsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" - integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== - -"@esbuild/sunos-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" - integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== - -"@esbuild/win32-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" - integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== - -"@esbuild/win32-ia32@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" - integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== - -"@esbuild/win32-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" - integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== - -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.5.5": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" - integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@magicblock-labs/ephemeral-rollups-kit@0.14.3": - version "0.14.3" - resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-kit/-/ephemeral-rollups-kit-0.14.3.tgz#599045705218ba35486a5cb92638d5c6566247cd" - integrity sha512-taQaRDWgY12My0wSPJAU5WTTNjk1rJcUebgsKIRiWH6Jy1A1yPZSfI+Xzd/GTu7PPZTmV5ldbC8lY/EGir2wyA== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@phala/dcap-qvl" "^0.3.9" - "@solana-program/system" "^0.9.0" - "@solana/kit" "^4.0.0" - "@solana/transaction-confirmation" "^4.0.0" - bs58 "^6.0.0" - rpc-websockets "^9.0.4" - tweetnacl "^1.0.3" - typescript "^5.3.0" - -"@magicblock-labs/ephemeral-rollups-sdk@0.14.3": - version "0.14.3" - resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.14.3.tgz#536c215d1daefdbcfa82a79304b08f5014405c58" - integrity sha512-CoByiXHLLS+l7Ojl6XJuYypP/k08ymFkab8+Gh/HCv5Gn2oC4VkwszEQoTDnKo++8Oxbqr9YVGzAMUW4Km7cLA== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@phala/dcap-qvl" "^0.3.9" - "@solana/web3.js" "^1.98.0" - bs58 "^6.0.0" - rpc-websockets "^9.0.4" - tweetnacl "^1.0.3" - typescript "^5.3.0" - -"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" - integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== - -"@magicblock-labs/magicsvm-darwin-x64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" - integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== - -"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" - integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== - -"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" - integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== - -"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" - integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== - -"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" - integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== - -"@magicblock-labs/magicsvm@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" - integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== - dependencies: - "@solana/web3.js" "3.0.0-rc.3" - optionalDependencies: - "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" - "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" - -"@magicblock-labs/test-utils@link:../../test-utils/ts": - version "0.0.0" - uid "" - -"@noble/curves@^1.4.2", "@noble/curves@^1.9.7": - version "1.9.7" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" - integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== - dependencies: - "@noble/hashes" "1.8.0" - -"@noble/hashes@1.8.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0", "@noble/hashes@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" - integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== - -"@peculiar/asn1-schema@^2.3.13", "@peculiar/asn1-schema@^2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.7.0.tgz#f2dcb25995ce7cac8687ba1039f043e5eff43820" - integrity sha512-W8ZfWzLmQnrcky+eh3tni4IozMdqBDiHWU0N+vve/UGjMaUs8c0L7A2oEdkBXS8rTpWDpK/aoI3DG/L/hxmxPg== - dependencies: - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.6" - tslib "^2.8.1" - -"@peculiar/asn1-x509@^2.3.13": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.7.0.tgz#84793efb7819dbc9526fd6b0a4ccd86f90464b96" - integrity sha512-mUn9RRrkGDnG4ALfunDmzyRW5dg+sWCj/pfnCCqEHYbkGxEpvUt6iVJv8Yw1cyp6SWZ26ZE5oSmI5SqEaen15g== - dependencies: - "@peculiar/asn1-schema" "^2.7.0" - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.6" - tslib "^2.8.1" - -"@peculiar/utils@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@peculiar/utils/-/utils-2.0.3.tgz#a27ca4c4b73652e110f19a7d16d664f458a5528e" - integrity sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ== - dependencies: - tslib "^2.8.1" - -"@phala/dcap-qvl@^0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@phala/dcap-qvl/-/dcap-qvl-0.3.9.tgz#34da2506c31954cd290afb5a46146cd52ae24481" - integrity sha512-s/4gAFVq1DRhYkuerDR9WAlX8tkCpFTHTVpWnWlrigj5la2X5OtQl9Y7PzwcqY4h0fc25yqZrcRH3AZpzB1qOw== - dependencies: - "@peculiar/asn1-schema" "^2.3.13" - "@peculiar/asn1-x509" "^2.3.13" - asn1.js "^5.4.1" - bn.js "^5.2.2" - buffer "^6.0.3" - elliptic "^6.6.1" - hash.js "^1.1.7" - node-fetch "^2.7.0" - -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - -"@rollup/rollup-android-arm-eabi@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.2.tgz#a19c645c375158cd5c50a344106f0fa18eb821c4" - integrity sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw== - -"@rollup/rollup-android-arm64@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.2.tgz#1af19aa9d3ad6d00df2681f59cfcb8bf7499576b" - integrity sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg== - -"@rollup/rollup-darwin-arm64@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.2.tgz#3b8463e03ba2a393453fea70e7d907379c27b649" - integrity sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA== - -"@rollup/rollup-darwin-x64@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.2.tgz#28da23d69fe117f5f0ff330a8549e51bd09f1b6a" - integrity sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g== - -"@rollup/rollup-freebsd-arm64@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.2.tgz#94bacac3190f621de1355922b599f3817786044c" - integrity sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw== - -"@rollup/rollup-freebsd-x64@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.2.tgz#8a0094f533b9fda160b5c90ad9e0c78fca341788" - integrity sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ== - -"@rollup/rollup-linux-arm-gnueabihf@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.2.tgz#3b7e901a555c7245c87f7440979bee0a1ec882bb" - integrity sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg== - -"@rollup/rollup-linux-arm-musleabihf@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.2.tgz#ee9a09b72e8ad764cfd6188b32ff1de528ff7ebe" - integrity sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw== - -"@rollup/rollup-linux-arm64-gnu@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.2.tgz#ba483f4aca9be141171d086dbd01ada6ab03b58d" - integrity sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg== - -"@rollup/rollup-linux-arm64-musl@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.2.tgz#17b595b790e6df68e91c5d02526fc832a985ce4f" - integrity sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA== - -"@rollup/rollup-linux-loong64-gnu@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.2.tgz#551718714075a2bfb36a2813c466e3a0e9d56abf" - integrity sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A== - -"@rollup/rollup-linux-loong64-musl@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.2.tgz#ba156ed1243447a3d710972001d5dcfe3827ff3d" - integrity sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q== - -"@rollup/rollup-linux-ppc64-gnu@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.2.tgz#6a957a709b86ac62ef68e597ac03dbd4336782b1" - integrity sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw== - -"@rollup/rollup-linux-ppc64-musl@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.2.tgz#ca4176b4ad53f3edee3b4bfa6f9ef48ff38f167b" - integrity sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ== - -"@rollup/rollup-linux-riscv64-gnu@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.2.tgz#4e6b08f72ebeafdb41f3ec433bd228ba8573473b" - integrity sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A== - -"@rollup/rollup-linux-riscv64-musl@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.2.tgz#a0b8b8580c7680c8086cb3226527e5472253b895" - integrity sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ== - -"@rollup/rollup-linux-s390x-gnu@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.2.tgz#79fe15b92ce0bae2b609cf26dd158cd3e2b73634" - integrity sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA== - -"@rollup/rollup-linux-x64-gnu@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.2.tgz#6aa8302fa45fd3cbbc510ccd223c9c37bf67e53f" - integrity sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ== - -"@rollup/rollup-linux-x64-musl@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.2.tgz#0c1a5e9799f80c47a66f2c3a5f1a280f38356047" - integrity sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw== - -"@rollup/rollup-openbsd-x64@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.2.tgz#5f07c863e74fd428794f1dc5749f321b661d1f17" - integrity sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg== - -"@rollup/rollup-openharmony-arm64@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.2.tgz#8e0d71324be0f423428b12b25a2eb8ea8e0a7833" - integrity sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q== - -"@rollup/rollup-win32-arm64-msvc@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.2.tgz#a553fdf90a785ace6d7501eed6241c468b088999" - integrity sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ== - -"@rollup/rollup-win32-ia32-msvc@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.2.tgz#0fb04f0a88027fbfd323e25a446debce4773868c" - integrity sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg== - -"@rollup/rollup-win32-x64-gnu@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.2.tgz#aaa9e36dbdc0f0e397e5966dcce1b4285354ede2" - integrity sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA== - -"@rollup/rollup-win32-x64-msvc@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.2.tgz#3418dcf1388f2abd6b0ccc08fe1ef205ae76d696" - integrity sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA== - -"@solana-program/address-lookup-table@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" - integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== - -"@solana-program/compute-budget@^0.18.0": - version "0.18.1" - resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" - integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== - -"@solana-program/loader-v3@^0.6.0": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" - integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== - -"@solana-program/stake@^0.9.0": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" - integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== - -"@solana-program/system@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" - integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== - -"@solana-program/system@^0.9.0": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.9.1.tgz#fafd9abaa2a48adb80a78e5f712847b3d817b37c" - integrity sha512-2N30CgYJw0qX8jKU8vW808yLmx5oRoDSM+FC6tqhsLQiph7agK9eRXJlnrq6OUfTAZd5yCYQHQvGtx0S8I9SAA== - -"@solana/accounts@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-4.0.0.tgz#55b3b2a9186aceb444872adcde76786c0c40dc1e" - integrity sha512-fxTtTk7PCJrigdzqhkc0eZYACVZpONKJZy4MkGvZzx5tCC7rUeDJvzau3IYACUCRaaAGPpkINHwYtp8weKsn8w== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/rpc-spec" "4.0.0" - "@solana/rpc-types" "4.0.0" - -"@solana/accounts@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" - integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/addresses@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-4.0.0.tgz#cd836e473ecdd286d5787401f16193ca5725b39e" - integrity sha512-1OS4nU0HFZxHRxgUb6A72Qg0QbIz6Vu2AbB0j/YSxN4EI+S2BftA83Y6uXhTFDQjKuA+MtHjxe6edB3cs1Pqxw== - dependencies: - "@solana/assertions" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/nominal-types" "4.0.0" - -"@solana/addresses@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" - integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/assertions@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-4.0.0.tgz#ec863ea412a66edb1a97ef789e694439fd4ee679" - integrity sha512-QwtImPVM5JLEWOFpvHh+eKdvmxdNP6PW8FkmFFEVYR6VFDaZD/hbmSJlwt5p3L69sVmxJA0ughYgD/kkHM7fbg== - dependencies: - "@solana/errors" "4.0.0" - -"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" - integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/buffer-layout@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" - integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== - dependencies: - buffer "~6.0.3" - -"@solana/codecs-core@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-2.3.0.tgz#6bf2bb565cb1ae880f8018635c92f751465d8695" - integrity sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw== - dependencies: - "@solana/errors" "2.3.0" - -"@solana/codecs-core@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-4.0.0.tgz#0668b964df5a3e278ff276b5aa812bd739e29510" - integrity sha512-28kNUsyIlhU3MO3/7ZLDqeJf2YAm32B4tnTjl5A9HrbBqsTZ+upT/RzxZGP1MMm7jnPuIKCMwmTpsyqyR6IUpw== - dependencies: - "@solana/errors" "4.0.0" - -"@solana/codecs-core@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-5.5.1.tgz#1b2619c697ad04c99f98cc468135d584b7e2b16d" - integrity sha512-TgBt//bbKBct0t6/MpA8ElaOA3sa8eYVvR7LGslCZ84WiAwwjCY0lW/lOYsFHJQzwREMdUyuEyy5YWBKtdh8Rw== - dependencies: - "@solana/errors" "5.5.1" - -"@solana/codecs-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" - integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/codecs-data-structures@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-4.0.0.tgz#8e60f68f26ae7dac5c88d4f5684c4c5ce7d6db62" - integrity sha512-pvh+Oxz6UIbWxcgwvVwMJIV4nvZn3EHL5ZvCIPClE5Ep8K5sJ8RoRvOohqLcIv9LYn/EZNoXpCodREX/OYpsGw== - dependencies: - "@solana/codecs-core" "4.0.0" - "@solana/codecs-numbers" "4.0.0" - "@solana/errors" "4.0.0" - -"@solana/codecs-data-structures@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" - integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-4.0.0.tgz#fc5c451ff2f1ca1e3a13cf85230e768a47b9a788" - integrity sha512-z9zpjtcwzqT9rbkKVZpkWB5/0V7+6YRKs6BccHkGJlaDx8Pe/+XOvPi2rEdXPqrPd9QWb5Xp1iBfcgaDMyiOiA== - dependencies: - "@solana/codecs-core" "4.0.0" - "@solana/errors" "4.0.0" - -"@solana/codecs-numbers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" - integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@^2.1.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" - integrity sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg== - dependencies: - "@solana/codecs-core" "2.3.0" - "@solana/errors" "2.3.0" - -"@solana/codecs-numbers@^5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-5.5.1.tgz#6ebc43250133ceb7836f1ac5780a7767e383efde" - integrity sha512-rllMIZAHqmtvC0HO/dc/21wDuWaD0B8Ryv8o+YtsICQBuiL/0U4AGwH7Pi5GNFySYk0/crSuwfIqQFtmxNSPFw== - dependencies: - "@solana/codecs-core" "5.5.1" - "@solana/errors" "5.5.1" - -"@solana/codecs-strings@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-4.0.0.tgz#b4c77d6ff6eeec868a71e5b0cb42bdb9f0c6b500" - integrity sha512-XvyD+sQ1zyA0amfxbpoFZsucLoe+yASQtDiLUGMDg5TZ82IHE3B7n82jE8d8cTAqi0HgqQiwU13snPhvg1O0Ow== - dependencies: - "@solana/codecs-core" "4.0.0" - "@solana/codecs-numbers" "4.0.0" - "@solana/errors" "4.0.0" - -"@solana/codecs-strings@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" - integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-4.0.0.tgz#211235fd56fa60f5d96b88b14d7317bf6d88535b" - integrity sha512-qh+Le1u9QBDPubqUrFU5BGX3Kyj7x0viO6z2SUuM0CSqYUvwE7w724LXwDA9QoEL5JkED1rB3bQg4M0bDrABpA== - dependencies: - "@solana/codecs-core" "4.0.0" - "@solana/codecs-data-structures" "4.0.0" - "@solana/codecs-numbers" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/options" "4.0.0" - -"@solana/codecs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" - integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/options" "8.3.0" - -"@solana/errors@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.3.0.tgz#4ac9380343dbeffb9dffbcb77c28d0e457c5fa31" - integrity sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ== - dependencies: - chalk "^5.4.1" - commander "^14.0.0" - -"@solana/errors@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-4.0.0.tgz#7fa9e8b69c4a199acab1b863b234be69772b1914" - integrity sha512-3YEtvcMvtcnTl4HahqLt0VnaGVf7vVWOnt6/uPky5e0qV6BlxDSbGkbBzttNjxLXHognV0AQi3pjvrtfUnZmbg== - dependencies: - chalk "5.6.2" - commander "14.0.1" - -"@solana/errors@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-5.5.1.tgz#1c17bc822264fd5a6305d8bfb9d597858e4ce17b" - integrity sha512-vFO3p+S7HoyyrcAectnXbdsMfwUzY2zYFUc2DEe5BwpiE9J1IAxPBGjOWO6hL1bbYdBrlmjNx8DXCslqS+Kcmg== - dependencies: - chalk "5.6.2" - commander "14.0.2" - -"@solana/errors@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" - integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== - dependencies: - chalk "5.6.2" - commander "15.0.0" - -"@solana/fast-stable-stringify@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-4.0.0.tgz#ecba09686fdd3a6a6dd1e41be3395d2bb6dd583e" - integrity sha512-sNJRi0RQ93vkGQ9VyFTSGm6mfKLk0FWOFpJLcqyP0BNUK1CugBaUMnxAmGqNaVSCktJagTSLqAMi9k1VSdh+Cg== - -"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" - integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== - -"@solana/fixed-points@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" - integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/functional@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-4.0.0.tgz#157febe2cb837b7272956794853ba80b5315da22" - integrity sha512-duprxASuT0VXlHj3bLBdy9+ZpqdmCZhzCUmTsXps4UlDKr9PxSCQIQ+NK6OPhtBWOh1sNEcT1f1nY/MVqF/KHg== - -"@solana/functional@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" - integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== - -"@solana/instruction-plans@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-4.0.0.tgz#38a4021eb99b9136204d77b84d579740cd94a979" - integrity sha512-FcyptPR5XmKoj1EyF9xARiqy2BuF+CfrIxTU0WQn5Tix/y7whKYz5CCFtBlWbwIcGxQftmG5tAlcidgnCb7jVw== - dependencies: - "@solana/errors" "4.0.0" - "@solana/instructions" "4.0.0" - "@solana/promises" "4.0.0" - "@solana/transaction-messages" "4.0.0" - "@solana/transactions" "4.0.0" - -"@solana/instruction-plans@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" - integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/instructions@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-4.0.0.tgz#989c3ad30de9e3c52a8a7a094964b4500b1a717e" - integrity sha512-/Lf3E+6mhe6EL7a3+9FY020yq71lVNgueplJGr221b4wP6ykwPVtoaAiNf+lIrRRYkW8DC81auhmjd2DYpND1w== - dependencies: - "@solana/codecs-core" "4.0.0" - "@solana/errors" "4.0.0" - -"@solana/instructions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" - integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/keys@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-4.0.0.tgz#12c39db588115beaf13648b778bcdb1acfe09052" - integrity sha512-aPz+LF9QK3EHjuklYBnnalcLVHUNz5s4m4DXNVGAtjJD7Q9zEu2dBUm9mRKwlLbQibNOEGa1m86HCjcboqXdjg== - dependencies: - "@solana/assertions" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/nominal-types" "4.0.0" - -"@solana/keys@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" - integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/kit@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-4.0.0.tgz#741cf567426e88c194dfd27ef2616d261f6ff7b9" - integrity sha512-5c4qMRL+ciWewEtNZ2gX4wf4VpscZYXbWnU2kBiyQhWiqj8zzFIh6iCHbqMX/Myx3pOHfQs/m/iQCnQHPOag9Q== - dependencies: - "@solana/accounts" "4.0.0" - "@solana/addresses" "4.0.0" - "@solana/codecs" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/functional" "4.0.0" - "@solana/instruction-plans" "4.0.0" - "@solana/instructions" "4.0.0" - "@solana/keys" "4.0.0" - "@solana/programs" "4.0.0" - "@solana/rpc" "4.0.0" - "@solana/rpc-parsed-types" "4.0.0" - "@solana/rpc-spec-types" "4.0.0" - "@solana/rpc-subscriptions" "4.0.0" - "@solana/rpc-types" "4.0.0" - "@solana/signers" "4.0.0" - "@solana/sysvars" "4.0.0" - "@solana/transaction-confirmation" "4.0.0" - "@solana/transaction-messages" "4.0.0" - "@solana/transactions" "4.0.0" - -"@solana/kit@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" - integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/plugin-core" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/program-client-core" "8.3.0" - "@solana/programs" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/subscribable" "8.3.0" - "@solana/sysvars" "8.3.0" - "@solana/transaction-confirmation" "8.3.0" - "@solana/transaction-introspection" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/nominal-types@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-4.0.0.tgz#0ba8f10ef7c1de4b12c0781d44805d8984a17c18" - integrity sha512-zIjHZY+5uboigbzsNhHmF3AlP/xACYxbB0Cb1VAI9i+eFShMeu/3VIrj7x1vbq9hfQKGSFHNFGFqQTivdzpbLw== - -"@solana/nominal-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" - integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== - -"@solana/offchain-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" - integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/options@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/options/-/options-4.0.0.tgz#a66a7c9211d1257037551afd470b7a4380f8efcc" - integrity sha512-QTjBh24a34At66mGfs0lVF1voug1KnA13IZkvcVPr52zFb90+xYiqYeKiICTaf3HkoeoKG+TC2Q0K64+se0+CQ== - dependencies: - "@solana/codecs-core" "4.0.0" - "@solana/codecs-data-structures" "4.0.0" - "@solana/codecs-numbers" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - -"@solana/options@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" - integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/plugin-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" - integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== - -"@solana/plugin-interfaces@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" - integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/program-client-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" - integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/signers" "8.3.0" - -"@solana/programs@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-4.0.0.tgz#473c3614c5079f0a9dfd73ec46a684a1c389b33d" - integrity sha512-tJCNoKyDKfipGTsQtUO6R9EXk4l4ai+gYuD2R3NubJgMaLPBqIv3IMSCeDSvhuSCDuN2lQ1mLkQrDnE3lm0/iQ== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/errors" "4.0.0" - -"@solana/programs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" - integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/promises@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-4.0.0.tgz#0ebf2dede764be71aa708479f6c4371ee58f76da" - integrity sha512-zEh815+n2OrrQunZ6m1iuNcoZRc9YnQaTeivBSgl1SYfPaq/Qj/rRiK5DID25Njo4L44p5quu7aal3Bk/eR+tQ== - -"@solana/promises@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" - integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== - -"@solana/rpc-api@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-4.0.0.tgz#872bcd276befe0d9b69b66d73e7fe43219b9779e" - integrity sha512-nfQkTJCIW3qzUDRrhvr9MBm9jKQ+dZn4ypK35UDPrV+QB5Gc9UmPJ6prvpPtDq8WoU7wqUzswKeY3k7qtgYjEg== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/keys" "4.0.0" - "@solana/rpc-parsed-types" "4.0.0" - "@solana/rpc-spec" "4.0.0" - "@solana/rpc-transformers" "4.0.0" - "@solana/rpc-types" "4.0.0" - "@solana/transaction-messages" "4.0.0" - "@solana/transactions" "4.0.0" - -"@solana/rpc-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" - integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-parsed-types@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-4.0.0.tgz#2a328092e53cce00d647f21da2a72bbae4d124f5" - integrity sha512-aOjwJwen5D0aDXoSths+ekdBO4mu7nmM+yASqCVW2PLN6v7NZmRBzV1/PgMFjDTiymVQj25ipCUvL395s1wsKg== - -"@solana/rpc-parsed-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" - integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== - -"@solana/rpc-spec-types@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-4.0.0.tgz#8e9450b73aa5a4a187c3f59335bcfda94321f880" - integrity sha512-rpFMIaetpubeyDXIlxV08vtmiDt7ME9527kCI61slHj6O2rbj+7fABhmlN6J4YDCcL/kfnMCxZyNna94DovHZA== - -"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" - integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/rpc-spec@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-4.0.0.tgz#b4e1f48246286556978d2088980476815f37eea2" - integrity sha512-9PFTFWjdgA/KFG4rgzbgA7gm9+aRDwsRJgI1aP7n3dGsGzYUp8vNgRQBhogWscEOETkgZNlsi/artLxgvHEHEg== - dependencies: - "@solana/errors" "4.0.0" - "@solana/rpc-spec-types" "4.0.0" - -"@solana/rpc-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" - integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions-api@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-4.0.0.tgz#fb470cdc83afd696cec06694211340b7737ddf44" - integrity sha512-6/MzQT9VkcD7Rh8ExoGdbERTSEubA5eI+Q0R9FRuujl/SIy2BsWaNxaBMuZS0DFmKbIHM+m1ptUFdjKAVjGQuw== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/keys" "4.0.0" - "@solana/rpc-subscriptions-spec" "4.0.0" - "@solana/rpc-transformers" "4.0.0" - "@solana/rpc-types" "4.0.0" - "@solana/transaction-messages" "4.0.0" - "@solana/transactions" "4.0.0" - -"@solana/rpc-subscriptions-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" - integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-subscriptions-channel-websocket@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-4.0.0.tgz#4abe9919b8a0f5de62b7073ba2d696cf812d8f7e" - integrity sha512-dc4cGfkQJEdkux/CXpItffuytnSU6wktReHEBL+2xaYmF+yGMBeBLzTvkCJ9BbGGfBMf06c5y5QH8X48W5CJdg== - dependencies: - "@solana/errors" "4.0.0" - "@solana/functional" "4.0.0" - "@solana/rpc-subscriptions-spec" "4.0.0" - "@solana/subscribable" "4.0.0" - -"@solana/rpc-subscriptions-channel-websocket@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" - integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/subscribable" "8.3.0" - ws "^8.21.3" - -"@solana/rpc-subscriptions-spec@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-4.0.0.tgz#8b5aa7814378287250071352334ef4a415a133b1" - integrity sha512-2ROfFymoy/TjDAlEPpsmSQAr6LZwG4l/UIhkW7+/VraRu7QPAycuWfSopJnG8D7F3fksICFSeQNwwgBXTN1TWA== - dependencies: - "@solana/errors" "4.0.0" - "@solana/promises" "4.0.0" - "@solana/rpc-spec-types" "4.0.0" - "@solana/subscribable" "4.0.0" - -"@solana/rpc-subscriptions-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" - integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-4.0.0.tgz#e91dfdb6bdf1c0e9ae7a8f7d91937c543932f822" - integrity sha512-rM+R4Xpsym0tYF3sGAEpdY+D+c6fOMk/fhCEewR+veqdubRfvI5QEhq4kHs8qdKKuRbcpGmedPC306H+PQ6Hmg== - dependencies: - "@solana/errors" "4.0.0" - "@solana/fast-stable-stringify" "4.0.0" - "@solana/functional" "4.0.0" - "@solana/promises" "4.0.0" - "@solana/rpc-spec-types" "4.0.0" - "@solana/rpc-subscriptions-api" "4.0.0" - "@solana/rpc-subscriptions-channel-websocket" "4.0.0" - "@solana/rpc-subscriptions-spec" "4.0.0" - "@solana/rpc-transformers" "4.0.0" - "@solana/rpc-types" "4.0.0" - "@solana/subscribable" "4.0.0" - -"@solana/rpc-subscriptions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" - integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions-api" "8.3.0" - "@solana/rpc-subscriptions-channel-websocket" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-transformers@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-4.0.0.tgz#6ef729305c4a2532246fcb3bbd078bcda8bfd640" - integrity sha512-3B3C9zpqN2O76CJV9tethtybMFdT2ViN5b2u8sObftGNFqxPmjt7XmbOmPdn7zwLyRM5S2RuZShzfcVJpBf+yQ== - dependencies: - "@solana/errors" "4.0.0" - "@solana/functional" "4.0.0" - "@solana/nominal-types" "4.0.0" - "@solana/rpc-spec-types" "4.0.0" - "@solana/rpc-types" "4.0.0" - -"@solana/rpc-transformers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" - integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/rpc-transport-http@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-4.0.0.tgz#047b7c5915a5cc32fdb8da57db5991dd5897ba38" - integrity sha512-RjXcQehF3wHm8eoIala+MrdmS3mDSPRl+xwEWzmA1QmBdQl44/XTNOdPJvNkqWXrzE+bAsZGfn0gVua/oCC+zQ== - dependencies: - "@solana/errors" "4.0.0" - "@solana/rpc-spec" "4.0.0" - "@solana/rpc-spec-types" "4.0.0" - undici-types "^7.16.0" - -"@solana/rpc-transport-http@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" - integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - undici-types "^8.10.2" - -"@solana/rpc-types@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-4.0.0.tgz#23eaeb262faaa92ae0a151db65ee4b592dd598c9" - integrity sha512-mY4W6DQVaLf3M8hSSzIEtaRsVgLg9zv5qdjjYvxkALw0fzjkLW55h3ctGbJ/k+dNpYm9gcKg7zatA7eBNnNmtQ== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/codecs-numbers" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/nominal-types" "4.0.0" - -"@solana/rpc-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" - integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/rpc@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-4.0.0.tgz#e70cea2943b3dac2631f67154ad4bbc03f3d34fd" - integrity sha512-KF91ghi7P48aeWd4eSY5Fly/ioYz9ww2loQd/YqV3eLQwo3/2HUWd6r6lpSHsLh/HUoUkm+EsYmVN8r/3mE5fg== - dependencies: - "@solana/errors" "4.0.0" - "@solana/fast-stable-stringify" "4.0.0" - "@solana/functional" "4.0.0" - "@solana/rpc-api" "4.0.0" - "@solana/rpc-spec" "4.0.0" - "@solana/rpc-spec-types" "4.0.0" - "@solana/rpc-transformers" "4.0.0" - "@solana/rpc-transport-http" "4.0.0" - "@solana/rpc-types" "4.0.0" - -"@solana/rpc@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" - integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-transport-http" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/signers@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-4.0.0.tgz#771e6188129394a0591f2d688c8132f8af933217" - integrity sha512-r3ZrltruadsQXmx3fsGOSqAZ3SsgD7zq/QB8sT6IOVcg11Pgdvx48/CEv7djdy44wF4HVpqNCZLfi12EhoaSXQ== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/instructions" "4.0.0" - "@solana/keys" "4.0.0" - "@solana/nominal-types" "4.0.0" - "@solana/transaction-messages" "4.0.0" - "@solana/transactions" "4.0.0" - -"@solana/signers@8.3.0", "@solana/signers@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" - integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/subscribable@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-4.0.0.tgz#bb1ce2d36a1051ed639b1c792ae457ec388d9c46" - integrity sha512-lDI4HkDuGkmdnX7hSgvJsFFadkQxt0pLHIpZTxOt7/6KBDtNs63NTwJGd3d/EuA7ReXwYg5HDG0QtOm64divXQ== - dependencies: - "@solana/errors" "4.0.0" - -"@solana/subscribable@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" - integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/sysvars@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-4.0.0.tgz#25ff5a6d6a163b88f3af5bcbab6001609ff248ab" - integrity sha512-HUu2B8P7iRYWAt1KL/5a6nNTKp73y04cSxZ9PZf2Ap1/KE0/5D8WnkEfnurUQmU3zBner95d+szNOyWMNBOoTw== - dependencies: - "@solana/accounts" "4.0.0" - "@solana/codecs" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/rpc-types" "4.0.0" - -"@solana/sysvars@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" - integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transaction-confirmation@4.0.0", "@solana/transaction-confirmation@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-4.0.0.tgz#cb6256ba7fc4cf156a2d51563fc8f8ad644fc2ba" - integrity sha512-DTBIMB5/UCOpVyL5E0xwswtxs/PGeSD1VL5+C1UCPlggpZNIOlhZoaQqFO56wrJDFASzPMx+dakda5BUuhQkBg== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/keys" "4.0.0" - "@solana/promises" "4.0.0" - "@solana/rpc" "4.0.0" - "@solana/rpc-subscriptions" "4.0.0" - "@solana/rpc-types" "4.0.0" - "@solana/transaction-messages" "4.0.0" - "@solana/transactions" "4.0.0" - -"@solana/transaction-confirmation@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" - integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-introspection@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" - integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-messages@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-4.0.0.tgz#ab28f345d6d0e7e8e0a63e23773c440ae2a46843" - integrity sha512-rQo0rRyvkrROFZHUT0uL3vqeBBtxTsNKDtx8pZo6BC3TgGA7V1MoSC3rVOLwYCK6rK5NJZiYNjmneHz/7hVpwQ== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/codecs-data-structures" "4.0.0" - "@solana/codecs-numbers" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/functional" "4.0.0" - "@solana/instructions" "4.0.0" - "@solana/nominal-types" "4.0.0" - "@solana/rpc-types" "4.0.0" - -"@solana/transaction-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" - integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transactions@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-4.0.0.tgz#d037d7c7966c7aae110b6fa33efa780a211bb013" - integrity sha512-bmHIIVTQq+Wlqg4es91Ew4KSbOrvdfPsKg/pVha8ZR77huwvfqQMxRyYF4zMQ+Fm3QXGFKOU0RPVKKYic15jBw== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/codecs-data-structures" "4.0.0" - "@solana/codecs-numbers" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/functional" "4.0.0" - "@solana/instructions" "4.0.0" - "@solana/keys" "4.0.0" - "@solana/nominal-types" "4.0.0" - "@solana/rpc-types" "4.0.0" - "@solana/transaction-messages" "4.0.0" - -"@solana/transactions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" - integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - -"@solana/web3.js@3.0.0-rc.3": - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" - integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@solana-program/address-lookup-table" "^0.14.0" - "@solana-program/compute-budget" "^0.18.0" - "@solana-program/loader-v3" "^0.6.0" - "@solana-program/stake" "^0.9.0" - "@solana-program/system" "^0.14.0" - "@solana/assertions" "^8.2.0" - "@solana/fast-stable-stringify" "^8.2.0" - "@solana/kit" "^8.2.0" - "@solana/rpc-spec-types" "^8.2.0" - "@solana/signers" "^8.2.0" - -"@solana/web3.js@^1.69.0": - version "1.99.0" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.99.0.tgz#864ce3fefe03b258c430e31e6672b422426821f7" - integrity sha512-QZYQ2T1z6xWisoyALPq25i/QZTsRlM02BABtAsfaQ1p8wX4SdTfxrKTRue/ZZqrhNVh5oL7T/DUFiTS9DRgxow== - dependencies: - "@babel/runtime" "^7.29.7" - "@noble/curves" "^1.9.7" - "@noble/hashes" "^1.8.0" - "@solana/buffer-layout" "^4.0.1" - "@solana/codecs-numbers" "^5.5.1" - agentkeepalive "^4.6.0" - bn.js "^5.2.5" - borsh "^0.7.0" - bs58 "^4.0.1" - buffer "6.0.3" - fast-stable-stringify "^1.0.0" - jayson "^4.3.0" - node-fetch "^2.7.0" - rpc-websockets "^9.0.2" - superstruct "^2.0.2" - -"@solana/web3.js@^1.98.0", "@solana/web3.js@^1.98.2": - version "1.98.4" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" - integrity sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw== - 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.1.0" - agentkeepalive "^4.5.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.1.1" - node-fetch "^2.7.0" - rpc-websockets "^9.0.2" - superstruct "^2.0.2" - -"@swc/helpers@^0.5.11": - version "0.5.17" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.17.tgz#5a7be95ac0f0bf186e7e6e890e7a6f6cda6ce971" - integrity sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A== - dependencies: - tslib "^2.8.0" - -"@tsconfig/node10@^1.0.7": - version "1.0.12" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.12.tgz#be57ceac1e4692b41be9de6be8c32a106636dba4" - integrity sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@types/chai@^5.2.2": - version "5.2.3" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-5.2.3.tgz#8e9cd9e1c3581fa6b341a5aed5588eb285be0b4a" - integrity sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA== - dependencies: - "@types/deep-eql" "*" - assertion-error "^2.0.1" - -"@types/connect@^3.4.33": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" - integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== - dependencies: - "@types/node" "*" - -"@types/deep-eql@*": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/deep-eql/-/deep-eql-4.0.2.tgz#334311971d3a07121e7eb91b684a605e7eea9cbd" - integrity sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw== - -"@types/estree@1.0.8", "@types/estree@^1.0.0": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" - integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== - -"@types/mocha@^10.0.10": - version "10.0.10" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.10.tgz#91f62905e8d23cbd66225312f239454a23bebfa0" - integrity sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q== - -"@types/node@*": - version "24.10.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.1.tgz#91e92182c93db8bd6224fca031e2370cef9a8f01" - integrity sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ== - dependencies: - undici-types "~7.16.0" - -"@types/node@^12.12.54": - version "12.20.55" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - -"@types/uuid@^8.3.4": - version "8.3.4" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" - integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== - -"@types/ws@^7.4.4": - version "7.4.7" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - dependencies: - "@types/node" "*" - -"@types/ws@^8.2.2": - version "8.18.1" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" - integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== - dependencies: - "@types/node" "*" - -"@vitest/expect@2.1.9": - version "2.1.9" - resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-2.1.9.tgz#b566ea20d58ea6578d8dc37040d6c1a47ebe5ff8" - integrity sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw== - dependencies: - "@vitest/spy" "2.1.9" - "@vitest/utils" "2.1.9" - chai "^5.1.2" - tinyrainbow "^1.2.0" - -"@vitest/mocker@2.1.9": - version "2.1.9" - resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-2.1.9.tgz#36243b27351ca8f4d0bbc4ef91594ffd2dc25ef5" - integrity sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg== - dependencies: - "@vitest/spy" "2.1.9" - estree-walker "^3.0.3" - magic-string "^0.30.12" - -"@vitest/pretty-format@2.1.9", "@vitest/pretty-format@^2.1.9": - version "2.1.9" - resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-2.1.9.tgz#434ff2f7611689f9ce70cd7d567eceb883653fdf" - integrity sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ== - dependencies: - tinyrainbow "^1.2.0" - -"@vitest/runner@2.1.9": - version "2.1.9" - resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-2.1.9.tgz#cc18148d2d797fd1fd5908d1f1851d01459be2f6" - integrity sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g== - dependencies: - "@vitest/utils" "2.1.9" - pathe "^1.1.2" - -"@vitest/snapshot@2.1.9": - version "2.1.9" - resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-2.1.9.tgz#24260b93f798afb102e2dcbd7e61c6dfa118df91" - integrity sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ== - dependencies: - "@vitest/pretty-format" "2.1.9" - magic-string "^0.30.12" - pathe "^1.1.2" - -"@vitest/spy@2.1.9": - version "2.1.9" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-2.1.9.tgz#cb28538c5039d09818b8bfa8edb4043c94727c60" - integrity sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ== - dependencies: - tinyspy "^3.0.2" - -"@vitest/utils@2.1.9": - version "2.1.9" - resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-2.1.9.tgz#4f2486de8a54acf7ecbf2c5c24ad7994a680a6c1" - integrity sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ== - dependencies: - "@vitest/pretty-format" "2.1.9" - loupe "^3.1.2" - tinyrainbow "^1.2.0" - -acorn-walk@^8.1.1: - version "8.3.4" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" - integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== - dependencies: - acorn "^8.11.0" - -acorn@^8.11.0, acorn@^8.4.1: - version "8.15.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" - integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== - -agentkeepalive@^4.5.0, agentkeepalive@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" - integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== - dependencies: - humanize-ms "^1.2.1" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" - integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^6.1.0: - version "6.2.3" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" - integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -asn1.js@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1js@^3.0.6: - version "3.0.10" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.10.tgz#df26c874c8a8b41ca605efea47b2ad07551013dd" - integrity sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg== - dependencies: - pvtsutils "^1.3.6" - pvutils "^1.1.5" - tslib "^2.8.1" - -assertion-error@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" - integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base-x@^3.0.2: - version "3.0.11" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.11.tgz#40d80e2a1aeacba29792ccc6c5354806421287ff" - integrity sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA== - dependencies: - safe-buffer "^5.0.1" - -base-x@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-5.0.1.tgz#16bf35254be1df8aca15e36b7c1dda74b2aa6b03" - integrity sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bn.js@^4.0.0, bn.js@^4.11.9: - version "4.12.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.3.tgz#2cc2c679188eb35b006f2d0d4710bed8437a769e" - integrity sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g== - -bn.js@^5.1.2, bn.js@^5.2.5: - version "5.2.5" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.5.tgz#e81ce41cf25e6f0cd1e05f20a9db8c18405e375f" - integrity sha512-Vq886eXykuP5E6HcKSSStP3bJgrE6In5WKxVUvJ8XGpWWYs2xZHWqUwzCtGgEtBcxyd57KBFDPFoUfNzdaHCNg== - -bn.js@^5.2.0, bn.js@^5.2.1: - version "5.2.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.2.tgz#82c09f9ebbb17107cd72cb7fd39bd1f9d0aaa566" - integrity sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw== - -bn.js@^5.2.2: - version "5.2.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.3.tgz#16a9e409616b23fef3ccbedb8d42f13bff80295e" - integrity sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w== - -borsh@0.7.0, borsh@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" - integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== - dependencies: - bn.js "^5.2.0" - bs58 "^4.0.0" - text-encoding-utf-8 "^1.0.2" - -brace-expansion@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" - integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== - dependencies: - balanced-match "^1.0.0" - -brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browser-stdout@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -bs58@^4.0.0, bs58@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - dependencies: - base-x "^3.0.2" - -bs58@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-6.0.0.tgz#a2cda0130558535dd281a2f8697df79caaf425d8" - integrity sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw== - dependencies: - base-x "^5.0.0" - -buffer-layout@^1.2.0, buffer-layout@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" - integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== - -buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -bufferutil@^4.0.1: - version "4.0.9" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.9.tgz#6e81739ad48a95cad45a279588e13e95e24a800a" - integrity sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw== - dependencies: - node-gyp-build "^4.3.0" - -cac@^6.7.14: - version "6.7.14" - resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" - integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== - -camelcase@^6.0.0, camelcase@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -chai@^5.1.2, chai@^5.2.0: - version "5.3.3" - resolved "https://registry.yarnpkg.com/chai/-/chai-5.3.3.tgz#dd3da955e270916a4bd3f625f4b919996ada7e06" - integrity sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw== - dependencies: - assertion-error "^2.0.1" - check-error "^2.1.1" - deep-eql "^5.0.1" - loupe "^3.1.0" - pathval "^2.0.0" - -chalk@5.6.2, chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - -chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -check-error@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" - integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== - -chokidar@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" - integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== - dependencies: - readdirp "^4.0.1" - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -commander@14.0.1: - version "14.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.1.tgz#2f9225c19e6ebd0dc4404dd45821b2caa17ea09b" - integrity sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A== - -commander@14.0.2, commander@^14.0.0: - version "14.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e" - integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== - -commander@15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" - integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== - -commander@^2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-fetch@^3.1.5: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" - integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== - dependencies: - node-fetch "^2.7.0" - -cross-spawn@^7.0.6: - version "7.0.6" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" - integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -debug@^4.3.5, debug@^4.3.7: - version "4.4.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" - integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== - dependencies: - ms "^2.1.3" - -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - -deep-eql@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" - integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== - -delay@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" - integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -diff@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-7.0.0.tgz#3fb34d387cd76d803f6eebea67b921dab0182a9a" - integrity sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw== - -dotenv@^16.5.0: - version "16.6.1" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.6.1.tgz#773f0e69527a8315c7285d5ee73c4459d20a8020" - integrity sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow== - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -elliptic@^6.6.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" - integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -es-module-lexer@^1.5.4: - version "1.7.0" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz#9159601561880a85f2734560a9099b2c31e5372a" - integrity sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA== - -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== - dependencies: - es6-promise "^4.0.3" - -esbuild@^0.21.3: - version "0.21.5" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" - integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== - optionalDependencies: - "@esbuild/aix-ppc64" "0.21.5" - "@esbuild/android-arm" "0.21.5" - "@esbuild/android-arm64" "0.21.5" - "@esbuild/android-x64" "0.21.5" - "@esbuild/darwin-arm64" "0.21.5" - "@esbuild/darwin-x64" "0.21.5" - "@esbuild/freebsd-arm64" "0.21.5" - "@esbuild/freebsd-x64" "0.21.5" - "@esbuild/linux-arm" "0.21.5" - "@esbuild/linux-arm64" "0.21.5" - "@esbuild/linux-ia32" "0.21.5" - "@esbuild/linux-loong64" "0.21.5" - "@esbuild/linux-mips64el" "0.21.5" - "@esbuild/linux-ppc64" "0.21.5" - "@esbuild/linux-riscv64" "0.21.5" - "@esbuild/linux-s390x" "0.21.5" - "@esbuild/linux-x64" "0.21.5" - "@esbuild/netbsd-x64" "0.21.5" - "@esbuild/openbsd-x64" "0.21.5" - "@esbuild/sunos-x64" "0.21.5" - "@esbuild/win32-arm64" "0.21.5" - "@esbuild/win32-ia32" "0.21.5" - "@esbuild/win32-x64" "0.21.5" - -escalade@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -estree-walker@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" - integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== - dependencies: - "@types/estree" "^1.0.0" - -eventemitter3@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -eventemitter3@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" - integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - -expect-type@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/expect-type/-/expect-type-1.3.0.tgz#0d58ed361877a31bbc4dd6cf71bbfef7faf6bd68" - integrity sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA== - -eyes@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" - integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== - -fast-stable-stringify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" - integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -foreground-child@^3.1.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" - integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== - dependencies: - cross-spawn "^7.0.6" - signal-exit "^4.0.1" - -fs@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/fs/-/fs-0.0.2.tgz#e1f244ef3933c1b2a64bd4799136060d0f5914f8" - integrity sha512-YAiVokMCrSIFZiroB1oz51hPiPRVcUtSa4x2U5RYXyhS9VAPdiFigKbPTnOSq7XY8wd3FIVPYmXpo5lMzFmxgg== - -fsevents@~2.3.2, fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -glob@^10.4.5: - version "10.5.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" - integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== - dependencies: - foreground-child "^3.1.0" - jackspeak "^3.1.2" - minimatch "^9.0.4" - minipass "^7.1.2" - package-json-from-dist "^1.0.0" - path-scurry "^1.11.1" - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - -jackspeak@^3.1.2: - version "3.4.3" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" - integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - -jayson@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.2.0.tgz#b71762393fa40bc9637eaf734ca6f40d3b8c0c93" - integrity sha512-VfJ9t1YLwacIubLhONk0KFeosUBwstRWQ0IRT1KDjEjnVnSOVHC3uwugyV7L0c7R9lpVyrUGT2XWiBA1UTtpyg== - dependencies: - "@types/connect" "^3.4.33" - "@types/node" "^12.12.54" - "@types/ws" "^7.4.4" - commander "^2.20.3" - delay "^5.0.0" - es6-promisify "^5.0.0" - eyes "^0.1.8" - isomorphic-ws "^4.0.1" - json-stringify-safe "^5.0.1" - stream-json "^1.9.1" - uuid "^8.3.2" - ws "^7.5.10" - -jayson@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.3.0.tgz#22eb8f3dcf37a5e893830e5451f32bde6d1bde4d" - integrity sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ== - dependencies: - "@types/connect" "^3.4.33" - "@types/node" "^12.12.54" - "@types/ws" "^7.4.4" - commander "^2.20.3" - delay "^5.0.0" - es6-promisify "^5.0.0" - eyes "^0.1.8" - isomorphic-ws "^4.0.1" - json-stringify-safe "^5.0.1" - stream-json "^1.9.1" - uuid "^8.3.2" - ws "^7.5.10" - -js-yaml@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" - integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== - dependencies: - argparse "^2.0.1" - -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -loupe@^3.1.0, loupe@^3.1.2: - version "3.2.1" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.2.1.tgz#0095cf56dc5b7a9a7c08ff5b1a8796ec8ad17e76" - integrity sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ== - -lru-cache@^10.2.0: - version "10.4.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" - integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== - -magic-string@^0.30.12: - version "0.30.21" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.21.tgz#56763ec09a0fa8091df27879fd94d19078c00d91" - integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== - dependencies: - "@jridgewell/sourcemap-codec" "^1.5.5" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -minimatch@^9.0.4, minimatch@^9.0.5: - version "9.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" - integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== - dependencies: - brace-expansion "^2.0.1" - -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" - integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== - -mocha@^11.2.2: - version "11.7.5" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.7.5.tgz#58f5bbfa5e0211ce7e5ee6128107cefc2515a627" - integrity sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig== - dependencies: - browser-stdout "^1.3.1" - chokidar "^4.0.1" - debug "^4.3.5" - diff "^7.0.0" - escape-string-regexp "^4.0.0" - find-up "^5.0.0" - glob "^10.4.5" - he "^1.2.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - log-symbols "^4.1.0" - minimatch "^9.0.5" - ms "^2.1.3" - picocolors "^1.1.1" - serialize-javascript "^6.0.2" - strip-json-comments "^3.1.1" - supports-color "^8.1.1" - workerpool "^9.2.0" - yargs "^17.7.2" - yargs-parser "^21.1.1" - yargs-unparser "^2.0.0" - -ms@^2.0.0, ms@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -nanoid@^3.3.11: - version "3.3.11" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" - integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== - -node-fetch@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - -node-gyp-build@^4.3.0: - version "4.8.4" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" - integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -package-json-from-dist@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" - integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== - -pako@^2.0.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.2.0.tgz#246b9d4c841a8d308e484c0d03786651b143e63a" - integrity sha512-zJq6RP/5q+TO2OpFV3FHzlPnFjmkb7Nc99a5SNjJE+uu/PkpChs+NIZSSzbBoD+6kjiISXjfYdwj1ZRQ81dz/w== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-scurry@^1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" - integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== - dependencies: - lru-cache "^10.2.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - -pathe@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" - integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== - -pathval@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.1.tgz#8855c5a2899af072d6ac05d11e46045ad0dc605d" - integrity sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ== - -picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - -postcss@^8.4.43: - version "8.5.10" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.10.tgz#8992d8c30acf3f12169e7c09514a12fed7e48356" - integrity sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ== - dependencies: - nanoid "^3.3.11" - picocolors "^1.1.1" - source-map-js "^1.2.1" - prettier@^3.5.3: - version "3.6.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.6.2.tgz#ccda02a1003ebbb2bfda6f83a074978f608b9393" - integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ== - -pvtsutils@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.6.tgz#ec46e34db7422b9e4fdc5490578c1883657d6001" - integrity sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg== - dependencies: - tslib "^2.8.1" - -pvutils@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.5.tgz#84b0dea4a5d670249aa9800511804ee0b7c2809c" - integrity sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -readdirp@^4.0.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" - integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -rollup@^4.20.0: - version "4.60.2" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.60.2.tgz#ac23fe4bd530304cef9fa61e639d7098b6762cf4" - integrity sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ== - dependencies: - "@types/estree" "1.0.8" - optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.60.2" - "@rollup/rollup-android-arm64" "4.60.2" - "@rollup/rollup-darwin-arm64" "4.60.2" - "@rollup/rollup-darwin-x64" "4.60.2" - "@rollup/rollup-freebsd-arm64" "4.60.2" - "@rollup/rollup-freebsd-x64" "4.60.2" - "@rollup/rollup-linux-arm-gnueabihf" "4.60.2" - "@rollup/rollup-linux-arm-musleabihf" "4.60.2" - "@rollup/rollup-linux-arm64-gnu" "4.60.2" - "@rollup/rollup-linux-arm64-musl" "4.60.2" - "@rollup/rollup-linux-loong64-gnu" "4.60.2" - "@rollup/rollup-linux-loong64-musl" "4.60.2" - "@rollup/rollup-linux-ppc64-gnu" "4.60.2" - "@rollup/rollup-linux-ppc64-musl" "4.60.2" - "@rollup/rollup-linux-riscv64-gnu" "4.60.2" - "@rollup/rollup-linux-riscv64-musl" "4.60.2" - "@rollup/rollup-linux-s390x-gnu" "4.60.2" - "@rollup/rollup-linux-x64-gnu" "4.60.2" - "@rollup/rollup-linux-x64-musl" "4.60.2" - "@rollup/rollup-openbsd-x64" "4.60.2" - "@rollup/rollup-openharmony-arm64" "4.60.2" - "@rollup/rollup-win32-arm64-msvc" "4.60.2" - "@rollup/rollup-win32-ia32-msvc" "4.60.2" - "@rollup/rollup-win32-x64-gnu" "4.60.2" - "@rollup/rollup-win32-x64-msvc" "4.60.2" - fsevents "~2.3.2" - -rpc-websockets@^9.0.2, rpc-websockets@^9.0.4: - version "9.3.1" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.3.1.tgz#d817a59d812f68bae1215740a3f78fcdd3813698" - integrity sha512-bY6a+i/lEtBJ/mUxwsCTgevoV1P0foXTVA7UoThzaIWbM+3NDqorf8NBWs5DmqKTFeA1IoNzgvkWjFCPgnzUiQ== - dependencies: - "@swc/helpers" "^0.5.11" - "@types/uuid" "^8.3.4" - "@types/ws" "^8.2.2" - buffer "^6.0.3" - eventemitter3 "^5.0.1" - uuid "^8.3.2" - ws "^8.5.0" - optionalDependencies: - bufferutil "^4.0.1" - utf-8-validate "^5.0.2" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -serialize-javascript@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" - integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== - dependencies: - randombytes "^2.1.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -siginfo@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" - integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== - -signal-exit@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -source-map-js@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" - integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== - -stackback@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" - integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== - -std-env@^3.8.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.10.0.tgz#d810b27e3a073047b2b5e40034881f5ea6f9c83b" - integrity sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg== - -stream-chain@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/stream-chain/-/stream-chain-2.2.5.tgz#b30967e8f14ee033c5b9a19bbe8a2cba90ba0d09" - integrity sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA== - -stream-json@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/stream-json/-/stream-json-1.9.1.tgz#e3fec03e984a503718946c170db7d74556c2a187" - integrity sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw== - dependencies: - stream-chain "^2.2.5" - -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1: - version "7.1.2" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" - integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== - dependencies: - ansi-regex "^6.0.1" - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -superstruct@^0.15.4: - version "0.15.5" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" - integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== - -superstruct@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-2.0.2.tgz#3f6d32fbdc11c357deff127d591a39b996300c54" - integrity sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A== - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -text-encoding-utf-8@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" - integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== - -tinybench@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.9.0.tgz#103c9f8ba6d7237a47ab6dd1dcff77251863426b" - integrity sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg== - -tinyexec@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.2.tgz#941794e657a85e496577995c6eef66f53f42b3d2" - integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA== - -tinypool@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-1.1.1.tgz#059f2d042bd37567fbc017d3d426bdd2a2612591" - integrity sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg== - -tinyrainbow@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-1.2.0.tgz#5c57d2fc0fb3d1afd78465c33ca885d04f02abb5" - integrity sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ== - -tinyspy@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-3.0.2.tgz#86dd3cf3d737b15adcf17d7887c84a75201df20a" - integrity sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q== - -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -ts-mocha@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-11.1.0.tgz#d8336ec0146bd6f36cca2555f4cfc7df85bd1586" - integrity sha512-yT7FfzNRCu8ZKkYvAOiH01xNma/vLq6Vit7yINKYFNVP8e5UyrYXSOMIipERTpzVKJQ4Qcos5bQo1tNERNZevQ== - -ts-node@^10.9.2: - version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" - integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tslib@^2.8.0, tslib@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" - integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -typescript@^5.3.0, typescript@^5.8.3: - version "5.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" - integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== - -undici-types@^7.16.0, undici-types@~7.16.0: - version "7.16.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" - integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== - -undici-types@^8.10.2: - version "8.10.2" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" - integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== - -utf-8-validate@^5.0.2: - version "5.0.10" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" - integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== - dependencies: - node-gyp-build "^4.3.0" - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -vite-node@2.1.9: - version "2.1.9" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-2.1.9.tgz#549710f76a643f1c39ef34bdb5493a944e4f895f" - integrity sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA== - dependencies: - cac "^6.7.14" - debug "^4.3.7" - es-module-lexer "^1.5.4" - pathe "^1.1.2" - vite "^5.0.0" - -vite@^5.0.0: - version "5.4.21" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.21.tgz#84a4f7c5d860b071676d39ba513c0d598fdc7027" - integrity sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw== - dependencies: - esbuild "^0.21.3" - postcss "^8.4.43" - rollup "^4.20.0" - optionalDependencies: - fsevents "~2.3.3" - -vitest@^2.1.8: - version "2.1.9" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-2.1.9.tgz#7d01ffd07a553a51c87170b5e80fea3da7fb41e7" - integrity sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q== - dependencies: - "@vitest/expect" "2.1.9" - "@vitest/mocker" "2.1.9" - "@vitest/pretty-format" "^2.1.9" - "@vitest/runner" "2.1.9" - "@vitest/snapshot" "2.1.9" - "@vitest/spy" "2.1.9" - "@vitest/utils" "2.1.9" - chai "^5.1.2" - debug "^4.3.7" - expect-type "^1.1.0" - magic-string "^0.30.12" - pathe "^1.1.2" - std-env "^3.8.0" - tinybench "^2.9.0" - tinyexec "^0.3.1" - tinypool "^1.0.1" - tinyrainbow "^1.2.0" - vite "^5.0.0" - vite-node "2.1.9" - why-is-node-running "^2.3.0" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -why-is-node-running@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.3.0.tgz#a3f69a97107f494b3cdc3bdddd883a7d65cebf04" - integrity sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w== - dependencies: - siginfo "^2.0.0" - stackback "0.0.2" - -workerpool@^9.2.0: - version "9.3.4" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-9.3.4.tgz#f6c92395b2141afd78e2a889e80cb338fe9fca41" - integrity sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg== - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - -ws@^7.5.10: - version "7.5.10" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" - integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== - -ws@^8.21.3: - version "8.21.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" - integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== - -ws@^8.5.0: - version "8.18.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" - integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs-unparser@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@^17.7.2: - version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + version "3.9.9" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.9.9.tgz#09b826918c91cd4cbc80e0cbd1d2a922ff04f233" + integrity sha512-Z/CJHIkdujO/OtN7nXUii0Rf3VT5SRuhjBA82Xvu2XhBUgX3nhP67T0LHceBdQLex7OOFGTox+Q5Yg8Jk2Qivg== diff --git a/counter/pinocchio/README.md b/counter/pinocchio/README.md index d61d4512..58d3f1ff 100644 --- a/counter/pinocchio/README.md +++ b/counter/pinocchio/README.md @@ -26,7 +26,7 @@ yarn yarn build ``` -Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): +Run the Rust test suite in `tests-magicsvm-rs/` in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash yarn test @@ -36,7 +36,7 @@ MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no va network. The suite initializes and increments a Pinocchio counter, then tests delegation, commits, and undelegation. -A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. +`yarn test` runs `cargo +stable test`: MagicSVM needs a newer Rust than the 1.89 toolchain used for program builds. ## Key Differences from Rust Counter diff --git a/counter/pinocchio/package.json b/counter/pinocchio/package.json index c13a2cc7..629138cc 100644 --- a/counter/pinocchio/package.json +++ b/counter/pinocchio/package.json @@ -4,9 +4,7 @@ "description": "Client tests for pinocchio-counter program", "main": "index.js", "scripts": { - "test": "vitest run tests/", - "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml", - "test:watch": "vitest watch tests/", + "test": "cargo +stable test --manifest-path tests-magicsvm-rs/Cargo.toml", "build": "cargo build-sbf --features logging", "build:release": "cargo build --release", "build:dev": "cargo build", @@ -23,22 +21,7 @@ "author": "", "license": "Apache-2.0", "devDependencies": { - "@types/node": "^20.0.0", - "ts-node": "^10.9.0", - "typescript": "^5.0.0", - "vitest": "^0.34.0", - "prettier": "^3.5.3", - "@magicblock-labs/test-utils": "link:../../test-utils/ts" - }, - "dependencies": { - "@magicblock-labs/ephemeral-rollups-kit": "0.14.3", - "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3", - "@magicblock-labs/magicsvm": "0.2.0", - "@solana-program/system": "^0.10.0", - "@solana/kit": "^5.4.0", - "@solana/web3.js": "^1.93.0", - "borsh": "^0.7.0", - "dotenv": "^16.0.0" + "prettier": "^3.5.3" }, "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" } diff --git a/counter/pinocchio/tests/pinocchio-counter.test.ts b/counter/pinocchio/tests/pinocchio-counter.test.ts deleted file mode 100644 index 71c51e4e..00000000 --- a/counter/pinocchio/tests/pinocchio-counter.test.ts +++ /dev/null @@ -1,387 +0,0 @@ -import { - Keypair, - PublicKey, - SystemProgram, - TransactionInstruction, -} from "@solana/web3.js"; -import * as borsh from "borsh"; -import * as path from "path"; -import { - DELEGATION_PROGRAM_ID, - MAGIC_CONTEXT_ID, - MAGIC_PROGRAM_ID, - createSvm, - delegateBufferPdaFromDelegatedAccountAndOwnerProgram, - delegationMetadataPdaFromDelegatedAccount, - delegationRecordPdaFromDelegatedAccount, - isDelegated, - programIdFromKeypairFile, - readU64le, - requireAccount, - sendSvmIx, -} from "@magicblock-labs/test-utils"; -import { describe, it, expect } from "vitest"; - -const LAMPORTS_PER_SOL = 1_000_000_000n; - -enum CounterInstruction { - InitializeCounter = "0000000000000000", - IncreaseCounter = "0100000000000000", - Delegate = "0200000000000000", - CommitAndUndelegate = "0300000000000000", - Commit = "0400000000000000", - IncrementAndCommit = "0500000000000000", - IncrementAndUndelegate = "0600000000000000", -} - -class IncreaseCounterPayload { - increase_by: number; - - constructor(increase_by: number) { - this.increase_by = increase_by; - } - - static schema = new Map([ - [ - IncreaseCounterPayload, - { - kind: "struct", - fields: [["increase_by", "u64"]], - }, - ], - ]); -} - -const PROGRAM_SO = path.join("target", "deploy", "pinocchio_counter.so"); -const PROGRAM_KEYPAIR = path.join( - "target", - "deploy", - "pinocchio_counter-keypair.json", -); - -function send( - svm: ReturnType["svm"], - target: "base" | "ephemeral", - ix: TransactionInstruction, - payer: Keypair, -) { - return sendSvmIx(svm, [payer], ix, target); -} - -describe("pinocchio-counter magicsvm", () => { - const PROGRAM_ID = new PublicKey(programIdFromKeypairFile(PROGRAM_KEYPAIR)); - const userKeypair = Keypair.generate(); - const { svm } = createSvm({ - programs: [{ id: PROGRAM_ID, so: PROGRAM_SO }], - airdrops: [ - { address: userKeypair.publicKey, lamports: 2n * LAMPORTS_PER_SOL }, - ], - }); - const [counterPda, bump] = PublicKey.findProgramAddressSync( - [Buffer.from("counter"), userKeypair.publicKey.toBuffer()], - PROGRAM_ID, - ); - const bumpBytes = Buffer.from([bump]); - - it("Initialize counter on Solana", () => { - const keys = [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: SystemProgram.programId, - isSigner: false, - isWritable: false, - }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.InitializeCounter, "hex"), - bumpBytes, - ]); - const result = send( - svm, - "base", - new TransactionInstruction({ - keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }), - userKeypair, - ); - expect(result).toBeDefined(); - - const account = requireAccount(svm, counterPda, "base"); - expect(account.programAddress.toString()).toBe(PROGRAM_ID.toBase58()); - expect(account.data.length).toBe(8); - expect(readU64le(svm, counterPda, "base", 0)).toBe(0n); - }); - - it("Increase counter on Solana", () => { - const keys = [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncreaseCounter, "hex"), - bumpBytes, - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(1), - ), - ]); - const result = send( - svm, - "base", - new TransactionInstruction({ - keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }), - userKeypair, - ); - expect(result).toBeDefined(); - expect(readU64le(svm, counterPda, "base", 0)).toBe(1n); - }); - - it("Delegate counter to ER", () => { - const remainingAccounts = [ - { - pubkey: new PublicKey(svm.validatorIdentity().toString()), - isSigner: false, - isWritable: false, - }, - ]; - const keys = [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: delegateBufferPdaFromDelegatedAccountAndOwnerProgram( - counterPda, - PROGRAM_ID, - ), - isSigner: false, - isWritable: true, - }, - { - pubkey: delegationRecordPdaFromDelegatedAccount(counterPda), - isSigner: false, - isWritable: true, - }, - { - pubkey: delegationMetadataPdaFromDelegatedAccount(counterPda), - isSigner: false, - isWritable: true, - }, - { - pubkey: DELEGATION_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: SystemProgram.programId, - isSigner: false, - isWritable: false, - }, - ...remainingAccounts, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.Delegate, "hex"), - bumpBytes, - ]); - const result = send( - svm, - "base", - new TransactionInstruction({ - keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }), - userKeypair, - ); - expect(result).toBeDefined(); - expect(isDelegated(svm, counterPda)).toBe(true); - }); - - it("Increase counter on ER (1)", () => { - const keys = [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncreaseCounter, "hex"), - bumpBytes, - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(1), - ), - ]); - const result = send( - svm, - "ephemeral", - new TransactionInstruction({ - keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }), - userKeypair, - ); - expect(result).toBeDefined(); - expect(readU64le(svm, counterPda, "ephemeral", 0)).toBe(2n); - }); - - it("Commit counter state on ER to Solana", () => { - const keys = [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: MAGIC_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: MAGIC_CONTEXT_ID, - isSigner: false, - isWritable: true, - }, - ]; - const serializedInstructionData = Buffer.from( - CounterInstruction.Commit, - "hex", - ); - const result = send( - svm, - "ephemeral", - new TransactionInstruction({ - keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }), - userKeypair, - ); - expect(result).toBeDefined(); - expect(readU64le(svm, counterPda, "base", 0)).toBe(2n); - }); - - it("Increase counter on ER (2)", () => { - const keys = [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncreaseCounter, "hex"), - bumpBytes, - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(1), - ), - ]); - const result = send( - svm, - "ephemeral", - new TransactionInstruction({ - keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }), - userKeypair, - ); - expect(result).toBeDefined(); - expect(readU64le(svm, counterPda, "ephemeral", 0)).toBe(3n); - }); - - it("Commit and undelegate counter on ER to Solana", () => { - const keys = [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: MAGIC_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: MAGIC_CONTEXT_ID, - isSigner: false, - isWritable: true, - }, - ]; - const serializedInstructionData = Buffer.from( - CounterInstruction.CommitAndUndelegate, - "hex", - ); - const result = send( - svm, - "ephemeral", - new TransactionInstruction({ - keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }), - userKeypair, - ); - expect(result).toBeDefined(); - - const account = requireAccount(svm, counterPda, "base"); - expect(account.programAddress.toString()).toBe(PROGRAM_ID.toBase58()); - expect(readU64le(svm, counterPda, "base", 0)).toBe(3n); - }); -}); diff --git a/counter/pinocchio/tsconfig.json b/counter/pinocchio/tsconfig.json deleted file mode 100644 index 948855f4..00000000 --- a/counter/pinocchio/tsconfig.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2020", - "module": "commonjs", - "lib": ["ES2020"], - "outDir": "./dist", - "rootDir": "./", - "strict": true, - "esModuleInterop": true, - "skipLibCheck": true, - "forceConsistentCasingInFileNames": true, - "resolveJsonModule": true, - "declaration": true, - "declarationMap": true, - "sourceMap": true, - "noUnusedLocals": false, - "noUnusedParameters": false, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true - }, - "include": ["tests/**/*", "src/**/*"], - "exclude": ["node_modules", "dist", "target"] -} diff --git a/counter/pinocchio/vitest.config.ts b/counter/pinocchio/vitest.config.ts deleted file mode 100644 index 181557aa..00000000 --- a/counter/pinocchio/vitest.config.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { defineConfig } from 'vitest/config' - -export default defineConfig({ - test: { - include: ['tests/**/*.test.ts'], - globals: true, - threads: false, - isolate: true, - hookTimeout: 60000, - testTimeout: 60000, - reporter: 'verbose', - }, -}) diff --git a/counter/pinocchio/yarn.lock b/counter/pinocchio/yarn.lock index a9095409..4a9f7977 100644 --- a/counter/pinocchio/yarn.lock +++ b/counter/pinocchio/yarn.lock @@ -2,2856 +2,7 @@ # yarn lockfile v1 -"@babel/runtime@^7.25.0": - version "7.28.6" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz" - integrity sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA== - -"@babel/runtime@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.7.tgz#12022450c45a4da6d8d8287b18a4ff2ddb23f768" - integrity sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw== - -"@coral-xyz/anchor-errors@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" - integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== - -"@coral-xyz/anchor@0.32.1": - version "0.32.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" - integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== - dependencies: - "@coral-xyz/anchor-errors" "^0.31.1" - "@coral-xyz/borsh" "^0.31.1" - "@noble/hashes" "^1.3.1" - "@solana/web3.js" "^1.69.0" - bn.js "^5.1.2" - bs58 "^4.0.1" - buffer-layout "^1.2.2" - camelcase "^6.3.0" - cross-fetch "^3.1.5" - eventemitter3 "^4.0.7" - pako "^2.0.3" - superstruct "^0.15.4" - toml "^3.0.0" - -"@coral-xyz/borsh@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.31.1.tgz#5328e1e0921b75d7f4a62dd3f61885a938bc7241" - integrity sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw== - dependencies: - bn.js "^5.1.2" - buffer-layout "^1.2.0" - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@esbuild/aix-ppc64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" - integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== - -"@esbuild/android-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" - integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== - -"@esbuild/android-arm@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" - integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== - -"@esbuild/android-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" - integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== - -"@esbuild/darwin-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz" - integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== - -"@esbuild/darwin-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" - integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== - -"@esbuild/freebsd-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" - integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== - -"@esbuild/freebsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" - integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== - -"@esbuild/linux-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" - integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== - -"@esbuild/linux-arm@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" - integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== - -"@esbuild/linux-ia32@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" - integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== - -"@esbuild/linux-loong64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" - integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== - -"@esbuild/linux-mips64el@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" - integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== - -"@esbuild/linux-ppc64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" - integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== - -"@esbuild/linux-riscv64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" - integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== - -"@esbuild/linux-s390x@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" - integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== - -"@esbuild/linux-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" - integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== - -"@esbuild/netbsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" - integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== - -"@esbuild/openbsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" - integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== - -"@esbuild/sunos-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" - integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== - -"@esbuild/win32-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" - integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== - -"@esbuild/win32-ia32@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" - integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== - -"@esbuild/win32-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" - integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== - -"@jest/schemas@^29.6.3": - version "29.6.3" - resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz" - integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== - dependencies: - "@sinclair/typebox" "^0.27.8" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.2" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.5.5": - version "1.5.5" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz" - integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@magicblock-labs/ephemeral-rollups-kit@0.14.3": - version "0.14.3" - resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-kit/-/ephemeral-rollups-kit-0.14.3.tgz#599045705218ba35486a5cb92638d5c6566247cd" - integrity sha512-taQaRDWgY12My0wSPJAU5WTTNjk1rJcUebgsKIRiWH6Jy1A1yPZSfI+Xzd/GTu7PPZTmV5ldbC8lY/EGir2wyA== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@phala/dcap-qvl" "^0.3.9" - "@solana-program/system" "^0.9.0" - "@solana/kit" "^4.0.0" - "@solana/transaction-confirmation" "^4.0.0" - bs58 "^6.0.0" - rpc-websockets "^9.0.4" - tweetnacl "^1.0.3" - typescript "^5.3.0" - -"@magicblock-labs/ephemeral-rollups-sdk@0.14.3": - version "0.14.3" - resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.14.3.tgz#536c215d1daefdbcfa82a79304b08f5014405c58" - integrity sha512-CoByiXHLLS+l7Ojl6XJuYypP/k08ymFkab8+Gh/HCv5Gn2oC4VkwszEQoTDnKo++8Oxbqr9YVGzAMUW4Km7cLA== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@phala/dcap-qvl" "^0.3.9" - "@solana/web3.js" "^1.98.0" - bs58 "^6.0.0" - rpc-websockets "^9.0.4" - tweetnacl "^1.0.3" - typescript "^5.3.0" - -"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" - integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== - -"@magicblock-labs/magicsvm-darwin-x64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" - integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== - -"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" - integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== - -"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" - integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== - -"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" - integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== - -"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" - integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== - -"@magicblock-labs/magicsvm@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" - integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== - dependencies: - "@solana/web3.js" "3.0.0-rc.3" - optionalDependencies: - "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" - "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" - -"@magicblock-labs/test-utils@link:../../test-utils/ts": - version "0.0.0" - uid "" - -"@noble/curves@^1.4.2", "@noble/curves@^1.9.7": - version "1.9.7" - resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz" - integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== - dependencies: - "@noble/hashes" "1.8.0" - -"@noble/hashes@1.8.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0", "@noble/hashes@^1.8.0": - version "1.8.0" - resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz" - integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== - -"@peculiar/asn1-schema@^2.3.13", "@peculiar/asn1-schema@^2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.7.0.tgz#f2dcb25995ce7cac8687ba1039f043e5eff43820" - integrity sha512-W8ZfWzLmQnrcky+eh3tni4IozMdqBDiHWU0N+vve/UGjMaUs8c0L7A2oEdkBXS8rTpWDpK/aoI3DG/L/hxmxPg== - dependencies: - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.6" - tslib "^2.8.1" - -"@peculiar/asn1-x509@^2.3.13": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.7.0.tgz#84793efb7819dbc9526fd6b0a4ccd86f90464b96" - integrity sha512-mUn9RRrkGDnG4ALfunDmzyRW5dg+sWCj/pfnCCqEHYbkGxEpvUt6iVJv8Yw1cyp6SWZ26ZE5oSmI5SqEaen15g== - dependencies: - "@peculiar/asn1-schema" "^2.7.0" - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.6" - tslib "^2.8.1" - -"@peculiar/utils@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@peculiar/utils/-/utils-2.0.3.tgz#a27ca4c4b73652e110f19a7d16d664f458a5528e" - integrity sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ== - dependencies: - tslib "^2.8.1" - -"@phala/dcap-qvl@^0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@phala/dcap-qvl/-/dcap-qvl-0.3.9.tgz#34da2506c31954cd290afb5a46146cd52ae24481" - integrity sha512-s/4gAFVq1DRhYkuerDR9WAlX8tkCpFTHTVpWnWlrigj5la2X5OtQl9Y7PzwcqY4h0fc25yqZrcRH3AZpzB1qOw== - dependencies: - "@peculiar/asn1-schema" "^2.3.13" - "@peculiar/asn1-x509" "^2.3.13" - asn1.js "^5.4.1" - bn.js "^5.2.2" - buffer "^6.0.3" - elliptic "^6.6.1" - hash.js "^1.1.7" - node-fetch "^2.7.0" - -"@rollup/rollup-android-arm-eabi@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz#76e0fef6533b3ce313f969879e61e8f21f0eeb28" - integrity sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg== - -"@rollup/rollup-android-arm64@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz#d3cfc675a40bbdec97bda6d7fe3b3b05f0e1cd93" - integrity sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg== - -"@rollup/rollup-darwin-arm64@4.55.1": - version "4.55.1" - resolved "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz" - integrity sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg== - -"@rollup/rollup-darwin-x64@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz#e7d0839fdfd1276a1d34bc5ebbbd0dfd7d0b81a0" - integrity sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ== - -"@rollup/rollup-freebsd-arm64@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz#7ff8118760f7351e48fd0cd3717ff80543d6aac8" - integrity sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg== - -"@rollup/rollup-freebsd-x64@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz#49d330dadbda1d4e9b86b4a3951b59928a9489a9" - integrity sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw== - -"@rollup/rollup-linux-arm-gnueabihf@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz#98c5f1f8b9776b4a36e466e2a1c9ed1ba52ef1b6" - integrity sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ== - -"@rollup/rollup-linux-arm-musleabihf@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz#b9acecd3672e742f70b0c8a94075c816a91ff040" - integrity sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg== - -"@rollup/rollup-linux-arm64-gnu@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz#7a6ab06651bc29e18b09a50ed1a02bc972977c9b" - integrity sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ== - -"@rollup/rollup-linux-arm64-musl@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz#3c8c9072ba4a4d4ef1156b85ab9a2cbb57c1fad0" - integrity sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA== - -"@rollup/rollup-linux-loong64-gnu@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz#17a7af13530f4e4a7b12cd26276c54307a84a8b0" - integrity sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g== - -"@rollup/rollup-linux-loong64-musl@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz#5cd7a900fd7b077ecd753e34a9b7ff1157fe70c1" - integrity sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw== - -"@rollup/rollup-linux-ppc64-gnu@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz#03a097e70243ddf1c07b59d3c20f38e6f6800539" - integrity sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw== - -"@rollup/rollup-linux-ppc64-musl@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz#a5389873039d4650f35b4fa060d286392eb21a94" - integrity sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw== - -"@rollup/rollup-linux-riscv64-gnu@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz#789e60e7d6e2b76132d001ffb24ba80007fb17d0" - integrity sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw== - -"@rollup/rollup-linux-riscv64-musl@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz#3556fa88d139282e9a73c337c9a170f3c5fe7aa4" - integrity sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg== - -"@rollup/rollup-linux-s390x-gnu@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz#c085995b10143c16747a67f1a5487512b2ff04b2" - integrity sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg== - -"@rollup/rollup-linux-x64-gnu@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.1.tgz#9563a5419dd2604841bad31a39ccfdd2891690fb" - integrity sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg== - -"@rollup/rollup-linux-x64-musl@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz#691bb06e6269a8959c13476b0cd2aa7458facb31" - integrity sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w== - -"@rollup/rollup-openbsd-x64@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz#223e71224746a59ce6d955bbc403577bb5a8be9d" - integrity sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg== - -"@rollup/rollup-openharmony-arm64@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz#0817e5d8ecbfeb8b7939bf58f8ce3c9dd67fce77" - integrity sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw== - -"@rollup/rollup-win32-arm64-msvc@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz#de56d8f2013c84570ef5fb917aae034abda93e4a" - integrity sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g== - -"@rollup/rollup-win32-ia32-msvc@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz#659aff5244312475aeea2c9479a6c7d397b517bf" - integrity sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA== - -"@rollup/rollup-win32-x64-gnu@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz#2cb09549cbb66c1b979f9238db6dd454cac14a88" - integrity sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg== - -"@rollup/rollup-win32-x64-msvc@4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz#f79437939020b83057faf07e98365b1fa51c458b" - integrity sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw== - -"@sinclair/typebox@^0.27.8": - version "0.27.8" - resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz" - integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== - -"@solana-program/address-lookup-table@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" - integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== - -"@solana-program/compute-budget@^0.18.0": - version "0.18.1" - resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" - integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== - -"@solana-program/loader-v3@^0.6.0": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" - integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== - -"@solana-program/stake@^0.9.0": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" - integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== - -"@solana-program/system@^0.10.0": - version "0.10.0" - resolved "https://registry.npmjs.org/@solana-program/system/-/system-0.10.0.tgz" - integrity sha512-Go+LOEZmqmNlfr+Gjy5ZWAdY5HbYzk2RBewD9QinEU/bBSzpFfzqDRT55JjFRBGJUvMgf3C2vfXEGT4i8DSI4g== - -"@solana-program/system@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" - integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== - -"@solana-program/system@^0.9.0": - version "0.9.1" - resolved "https://registry.npmjs.org/@solana-program/system/-/system-0.9.1.tgz" - integrity sha512-2N30CgYJw0qX8jKU8vW808yLmx5oRoDSM+FC6tqhsLQiph7agK9eRXJlnrq6OUfTAZd5yCYQHQvGtx0S8I9SAA== - -"@solana/accounts@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/accounts/-/accounts-4.0.0.tgz" - integrity sha512-fxTtTk7PCJrigdzqhkc0eZYACVZpONKJZy4MkGvZzx5tCC7rUeDJvzau3IYACUCRaaAGPpkINHwYtp8weKsn8w== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/rpc-spec" "4.0.0" - "@solana/rpc-types" "4.0.0" - -"@solana/accounts@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/accounts/-/accounts-5.4.0.tgz" - integrity sha512-qHtAtwCcCFTXcya6JOOG1nzYicivivN/JkcYNHr10qOp9b4MVRkfW1ZAAG1CNzjMe5+mwtEl60RwdsY9jXNb+Q== - dependencies: - "@solana/addresses" "5.4.0" - "@solana/codecs-core" "5.4.0" - "@solana/codecs-strings" "5.4.0" - "@solana/errors" "5.4.0" - "@solana/rpc-spec" "5.4.0" - "@solana/rpc-types" "5.4.0" - -"@solana/accounts@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" - integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/addresses@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/addresses/-/addresses-4.0.0.tgz" - integrity sha512-1OS4nU0HFZxHRxgUb6A72Qg0QbIz6Vu2AbB0j/YSxN4EI+S2BftA83Y6uXhTFDQjKuA+MtHjxe6edB3cs1Pqxw== - dependencies: - "@solana/assertions" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/nominal-types" "4.0.0" - -"@solana/addresses@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/addresses/-/addresses-5.4.0.tgz" - integrity sha512-YRHiH30S8qDV4bZ+mtEk589PGfBuXHzD/fK2Z+YI5f/+s+yi/5le/fVw7PN6LxnnmVQKiRCDUiNF+WmFFKi6QQ== - dependencies: - "@solana/assertions" "5.4.0" - "@solana/codecs-core" "5.4.0" - "@solana/codecs-strings" "5.4.0" - "@solana/errors" "5.4.0" - "@solana/nominal-types" "5.4.0" - -"@solana/addresses@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" - integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/assertions@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/assertions/-/assertions-4.0.0.tgz" - integrity sha512-QwtImPVM5JLEWOFpvHh+eKdvmxdNP6PW8FkmFFEVYR6VFDaZD/hbmSJlwt5p3L69sVmxJA0ughYgD/kkHM7fbg== - dependencies: - "@solana/errors" "4.0.0" - -"@solana/assertions@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/assertions/-/assertions-5.4.0.tgz" - integrity sha512-8EP7mkdnrPc9y67FqWeAPzdWq2qAOkxsuo+ZBIXNWtIixDtXIdHrgjZ/wqbWxLgSTtXEfBCjpZU55Xw2Qfbwyg== - dependencies: - "@solana/errors" "5.4.0" - -"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" - integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/buffer-layout@^4.0.1": - version "4.0.1" - resolved "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz" - integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== - dependencies: - buffer "~6.0.3" - -"@solana/codecs-core@2.3.0": - version "2.3.0" - resolved "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.3.0.tgz" - integrity sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw== - dependencies: - "@solana/errors" "2.3.0" - -"@solana/codecs-core@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-4.0.0.tgz" - integrity sha512-28kNUsyIlhU3MO3/7ZLDqeJf2YAm32B4tnTjl5A9HrbBqsTZ+upT/RzxZGP1MMm7jnPuIKCMwmTpsyqyR6IUpw== - dependencies: - "@solana/errors" "4.0.0" - -"@solana/codecs-core@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-5.4.0.tgz" - integrity sha512-rQ5jXgiDe2vIU+mYCHDjgwMd9WdzZfh4sc5H6JgYleAUjeTUX6mx8hTV2+pcXvvn27LPrgrt9jfxswbDb8O8ww== - dependencies: - "@solana/errors" "5.4.0" - -"@solana/codecs-core@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-5.5.1.tgz#1b2619c697ad04c99f98cc468135d584b7e2b16d" - integrity sha512-TgBt//bbKBct0t6/MpA8ElaOA3sa8eYVvR7LGslCZ84WiAwwjCY0lW/lOYsFHJQzwREMdUyuEyy5YWBKtdh8Rw== - dependencies: - "@solana/errors" "5.5.1" - -"@solana/codecs-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" - integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/codecs-data-structures@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/codecs-data-structures/-/codecs-data-structures-4.0.0.tgz" - integrity sha512-pvh+Oxz6UIbWxcgwvVwMJIV4nvZn3EHL5ZvCIPClE5Ep8K5sJ8RoRvOohqLcIv9LYn/EZNoXpCodREX/OYpsGw== - dependencies: - "@solana/codecs-core" "4.0.0" - "@solana/codecs-numbers" "4.0.0" - "@solana/errors" "4.0.0" - -"@solana/codecs-data-structures@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/codecs-data-structures/-/codecs-data-structures-5.4.0.tgz" - integrity sha512-LVssbdQ1GfY6upnxW3mufYsNfvTWKnHNk5Hx2gHuOYJhm3HZlp+Y8zvuoY65G1d1xAXkPz5YVGxaSeVIRWLGWg== - dependencies: - "@solana/codecs-core" "5.4.0" - "@solana/codecs-numbers" "5.4.0" - "@solana/errors" "5.4.0" - -"@solana/codecs-data-structures@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" - integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-4.0.0.tgz" - integrity sha512-z9zpjtcwzqT9rbkKVZpkWB5/0V7+6YRKs6BccHkGJlaDx8Pe/+XOvPi2rEdXPqrPd9QWb5Xp1iBfcgaDMyiOiA== - dependencies: - "@solana/codecs-core" "4.0.0" - "@solana/errors" "4.0.0" - -"@solana/codecs-numbers@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-5.4.0.tgz" - integrity sha512-z6LMkY+kXWx1alrvIDSAxexY5QLhsso638CjM7XI1u6dB7drTLWKhifyjnm1vOQc1VPVFmbYxTgKKpds8TY8tg== - dependencies: - "@solana/codecs-core" "5.4.0" - "@solana/errors" "5.4.0" - -"@solana/codecs-numbers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" - integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@^2.1.0": - version "2.3.0" - resolved "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz" - integrity sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg== - dependencies: - "@solana/codecs-core" "2.3.0" - "@solana/errors" "2.3.0" - -"@solana/codecs-numbers@^5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-5.5.1.tgz#6ebc43250133ceb7836f1ac5780a7767e383efde" - integrity sha512-rllMIZAHqmtvC0HO/dc/21wDuWaD0B8Ryv8o+YtsICQBuiL/0U4AGwH7Pi5GNFySYk0/crSuwfIqQFtmxNSPFw== - dependencies: - "@solana/codecs-core" "5.5.1" - "@solana/errors" "5.5.1" - -"@solana/codecs-strings@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-4.0.0.tgz" - integrity sha512-XvyD+sQ1zyA0amfxbpoFZsucLoe+yASQtDiLUGMDg5TZ82IHE3B7n82jE8d8cTAqi0HgqQiwU13snPhvg1O0Ow== - dependencies: - "@solana/codecs-core" "4.0.0" - "@solana/codecs-numbers" "4.0.0" - "@solana/errors" "4.0.0" - -"@solana/codecs-strings@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-5.4.0.tgz" - integrity sha512-w0trrjfQDhkCVz7O1GTmHBk9m+MkljKx2uNBbQAD3/yW2Qn9dYiTrZ1/jDVq0/+lPPAUkbT3s3Yo7HUZ2QFmHw== - dependencies: - "@solana/codecs-core" "5.4.0" - "@solana/codecs-numbers" "5.4.0" - "@solana/errors" "5.4.0" - -"@solana/codecs-strings@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" - integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/codecs/-/codecs-4.0.0.tgz" - integrity sha512-qh+Le1u9QBDPubqUrFU5BGX3Kyj7x0viO6z2SUuM0CSqYUvwE7w724LXwDA9QoEL5JkED1rB3bQg4M0bDrABpA== - dependencies: - "@solana/codecs-core" "4.0.0" - "@solana/codecs-data-structures" "4.0.0" - "@solana/codecs-numbers" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/options" "4.0.0" - -"@solana/codecs@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/codecs/-/codecs-5.4.0.tgz" - integrity sha512-IbDCUvNX0MrkQahxiXj9rHzkd/fYfp1F2nTJkHGH8v+vPfD+YPjl007ZBM38EnCeXj/Xn+hxqBBivPvIHP29dA== - dependencies: - "@solana/codecs-core" "5.4.0" - "@solana/codecs-data-structures" "5.4.0" - "@solana/codecs-numbers" "5.4.0" - "@solana/codecs-strings" "5.4.0" - "@solana/options" "5.4.0" - -"@solana/codecs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" - integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/options" "8.3.0" - -"@solana/errors@2.3.0": - version "2.3.0" - resolved "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz" - integrity sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ== - dependencies: - chalk "^5.4.1" - commander "^14.0.0" - -"@solana/errors@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/errors/-/errors-4.0.0.tgz" - integrity sha512-3YEtvcMvtcnTl4HahqLt0VnaGVf7vVWOnt6/uPky5e0qV6BlxDSbGkbBzttNjxLXHognV0AQi3pjvrtfUnZmbg== - dependencies: - chalk "5.6.2" - commander "14.0.1" - -"@solana/errors@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/errors/-/errors-5.4.0.tgz" - integrity sha512-hNoAOmlZAszaVBrAy1Jf7amHJ8wnUnTU0BqhNQXknbSvirvsYr81yEud2iq18YiCqhyJ9SuQ5kWrSAT0x7S0oA== - dependencies: - chalk "5.6.2" - commander "14.0.2" - -"@solana/errors@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-5.5.1.tgz#1c17bc822264fd5a6305d8bfb9d597858e4ce17b" - integrity sha512-vFO3p+S7HoyyrcAectnXbdsMfwUzY2zYFUc2DEe5BwpiE9J1IAxPBGjOWO6hL1bbYdBrlmjNx8DXCslqS+Kcmg== - dependencies: - chalk "5.6.2" - commander "14.0.2" - -"@solana/errors@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" - integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== - dependencies: - chalk "5.6.2" - commander "15.0.0" - -"@solana/fast-stable-stringify@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/fast-stable-stringify/-/fast-stable-stringify-4.0.0.tgz" - integrity sha512-sNJRi0RQ93vkGQ9VyFTSGm6mfKLk0FWOFpJLcqyP0BNUK1CugBaUMnxAmGqNaVSCktJagTSLqAMi9k1VSdh+Cg== - -"@solana/fast-stable-stringify@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/fast-stable-stringify/-/fast-stable-stringify-5.4.0.tgz" - integrity sha512-KB7PUL7yalPvbWCezzyUDVRDp39eHLPH7OJ6S8VFT8YNIFUANwwj5ctui50Fim76kvSYDdYJOclXV45O2gfQ8Q== - -"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" - integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== - -"@solana/fixed-points@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" - integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/functional@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/functional/-/functional-4.0.0.tgz" - integrity sha512-duprxASuT0VXlHj3bLBdy9+ZpqdmCZhzCUmTsXps4UlDKr9PxSCQIQ+NK6OPhtBWOh1sNEcT1f1nY/MVqF/KHg== - -"@solana/functional@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/functional/-/functional-5.4.0.tgz" - integrity sha512-32ghHO0bg6GgX/7++0/7Lps6RgeXD2gKF1okiuyEGuVfKENIapgaQdcGhUwb3q6D6fv6MRAVn/Yve4jopGVNMQ== - -"@solana/functional@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" - integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== - -"@solana/instruction-plans@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/instruction-plans/-/instruction-plans-4.0.0.tgz" - integrity sha512-FcyptPR5XmKoj1EyF9xARiqy2BuF+CfrIxTU0WQn5Tix/y7whKYz5CCFtBlWbwIcGxQftmG5tAlcidgnCb7jVw== - dependencies: - "@solana/errors" "4.0.0" - "@solana/instructions" "4.0.0" - "@solana/promises" "4.0.0" - "@solana/transaction-messages" "4.0.0" - "@solana/transactions" "4.0.0" - -"@solana/instruction-plans@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/instruction-plans/-/instruction-plans-5.4.0.tgz" - integrity sha512-5xbJ+I/pP2aWECmK75bEM1zCnIITlohAK83dVN+t5X2vBFrr6M9gifo8r4Opdnibsgo6QVVkKPxRo5zow5j0ig== - dependencies: - "@solana/errors" "5.4.0" - "@solana/instructions" "5.4.0" - "@solana/keys" "5.4.0" - "@solana/promises" "5.4.0" - "@solana/transaction-messages" "5.4.0" - "@solana/transactions" "5.4.0" - -"@solana/instruction-plans@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" - integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/instructions@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/instructions/-/instructions-4.0.0.tgz" - integrity sha512-/Lf3E+6mhe6EL7a3+9FY020yq71lVNgueplJGr221b4wP6ykwPVtoaAiNf+lIrRRYkW8DC81auhmjd2DYpND1w== - dependencies: - "@solana/codecs-core" "4.0.0" - "@solana/errors" "4.0.0" - -"@solana/instructions@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/instructions/-/instructions-5.4.0.tgz" - integrity sha512-//a7jpHbNoAgTqy3YyqG1X6QhItJLKzJa6zuYJGCwaAAJye7BxS9pxJBgb2mUt7CGidhUksf+U8pmLlxCNWYyg== - dependencies: - "@solana/codecs-core" "5.4.0" - "@solana/errors" "5.4.0" - -"@solana/instructions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" - integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/keys@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/keys/-/keys-4.0.0.tgz" - integrity sha512-aPz+LF9QK3EHjuklYBnnalcLVHUNz5s4m4DXNVGAtjJD7Q9zEu2dBUm9mRKwlLbQibNOEGa1m86HCjcboqXdjg== - dependencies: - "@solana/assertions" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/nominal-types" "4.0.0" - -"@solana/keys@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/keys/-/keys-5.4.0.tgz" - integrity sha512-zQVbAwdoXorgXjlhlVTZaymFG6N8n1zn2NT+xI6S8HtbrKIB/42xPdXFh+zIihGzRw+9k8jzU7Axki/IPm6qWQ== - dependencies: - "@solana/assertions" "5.4.0" - "@solana/codecs-core" "5.4.0" - "@solana/codecs-strings" "5.4.0" - "@solana/errors" "5.4.0" - "@solana/nominal-types" "5.4.0" - -"@solana/keys@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" - integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/kit@^4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/kit/-/kit-4.0.0.tgz" - integrity sha512-5c4qMRL+ciWewEtNZ2gX4wf4VpscZYXbWnU2kBiyQhWiqj8zzFIh6iCHbqMX/Myx3pOHfQs/m/iQCnQHPOag9Q== - dependencies: - "@solana/accounts" "4.0.0" - "@solana/addresses" "4.0.0" - "@solana/codecs" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/functional" "4.0.0" - "@solana/instruction-plans" "4.0.0" - "@solana/instructions" "4.0.0" - "@solana/keys" "4.0.0" - "@solana/programs" "4.0.0" - "@solana/rpc" "4.0.0" - "@solana/rpc-parsed-types" "4.0.0" - "@solana/rpc-spec-types" "4.0.0" - "@solana/rpc-subscriptions" "4.0.0" - "@solana/rpc-types" "4.0.0" - "@solana/signers" "4.0.0" - "@solana/sysvars" "4.0.0" - "@solana/transaction-confirmation" "4.0.0" - "@solana/transaction-messages" "4.0.0" - "@solana/transactions" "4.0.0" - -"@solana/kit@^5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/kit/-/kit-5.4.0.tgz" - integrity sha512-aVjN26jOEzJA6UBYxSTQciZPXgTxWnO/WysHrw+yeBL/5AaTZnXEgb4j5xV6cUFzOlVxhJBrx51xtoxSqJ0u3g== - dependencies: - "@solana/accounts" "5.4.0" - "@solana/addresses" "5.4.0" - "@solana/codecs" "5.4.0" - "@solana/errors" "5.4.0" - "@solana/functional" "5.4.0" - "@solana/instruction-plans" "5.4.0" - "@solana/instructions" "5.4.0" - "@solana/keys" "5.4.0" - "@solana/offchain-messages" "5.4.0" - "@solana/plugin-core" "5.4.0" - "@solana/programs" "5.4.0" - "@solana/rpc" "5.4.0" - "@solana/rpc-api" "5.4.0" - "@solana/rpc-parsed-types" "5.4.0" - "@solana/rpc-spec-types" "5.4.0" - "@solana/rpc-subscriptions" "5.4.0" - "@solana/rpc-types" "5.4.0" - "@solana/signers" "5.4.0" - "@solana/sysvars" "5.4.0" - "@solana/transaction-confirmation" "5.4.0" - "@solana/transaction-messages" "5.4.0" - "@solana/transactions" "5.4.0" - -"@solana/kit@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" - integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/plugin-core" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/program-client-core" "8.3.0" - "@solana/programs" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/subscribable" "8.3.0" - "@solana/sysvars" "8.3.0" - "@solana/transaction-confirmation" "8.3.0" - "@solana/transaction-introspection" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/nominal-types@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/nominal-types/-/nominal-types-4.0.0.tgz" - integrity sha512-zIjHZY+5uboigbzsNhHmF3AlP/xACYxbB0Cb1VAI9i+eFShMeu/3VIrj7x1vbq9hfQKGSFHNFGFqQTivdzpbLw== - -"@solana/nominal-types@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/nominal-types/-/nominal-types-5.4.0.tgz" - integrity sha512-h4dTRQwTerzksE5B1WmObN6TvLo8dYUd7kpUUynGd8WJjK0zz3zkDhq0MkA3aF6A1C2C82BSGqSsN9EN0E6Exg== - -"@solana/nominal-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" - integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== - -"@solana/offchain-messages@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/offchain-messages/-/offchain-messages-5.4.0.tgz" - integrity sha512-DjdlYJCcKfgh4dkdk+owH1bP+Q4BRqCs55mgWWp9PTwm/HHy/a5vcMtCi1GyIQXfhtNNvKBLbXrUE0Fxej8qlg== - dependencies: - "@solana/addresses" "5.4.0" - "@solana/codecs-core" "5.4.0" - "@solana/codecs-data-structures" "5.4.0" - "@solana/codecs-numbers" "5.4.0" - "@solana/codecs-strings" "5.4.0" - "@solana/errors" "5.4.0" - "@solana/keys" "5.4.0" - "@solana/nominal-types" "5.4.0" - -"@solana/offchain-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" - integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/options@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/options/-/options-4.0.0.tgz" - integrity sha512-QTjBh24a34At66mGfs0lVF1voug1KnA13IZkvcVPr52zFb90+xYiqYeKiICTaf3HkoeoKG+TC2Q0K64+se0+CQ== - dependencies: - "@solana/codecs-core" "4.0.0" - "@solana/codecs-data-structures" "4.0.0" - "@solana/codecs-numbers" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - -"@solana/options@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/options/-/options-5.4.0.tgz" - integrity sha512-h4vTWRChEXPhaHo9i1pCyQBWWs+NqYPQRXSAApqpUYvHb9Kct/C6KbHjfyaRMyqNQnDHLcJCX7oW9tk0iRDzIg== - dependencies: - "@solana/codecs-core" "5.4.0" - "@solana/codecs-data-structures" "5.4.0" - "@solana/codecs-numbers" "5.4.0" - "@solana/codecs-strings" "5.4.0" - "@solana/errors" "5.4.0" - -"@solana/options@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" - integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/plugin-core@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/plugin-core/-/plugin-core-5.4.0.tgz" - integrity sha512-e1aLGLldW7C5113qTOjFYSGq95a4QC9TWb77iq+8l6h085DcNj+195r4E2zKaINrevQjQTwvxo00oUyHP7hSJA== - -"@solana/plugin-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" - integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== - -"@solana/plugin-interfaces@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" - integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/program-client-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" - integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/signers" "8.3.0" - -"@solana/programs@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/programs/-/programs-4.0.0.tgz" - integrity sha512-tJCNoKyDKfipGTsQtUO6R9EXk4l4ai+gYuD2R3NubJgMaLPBqIv3IMSCeDSvhuSCDuN2lQ1mLkQrDnE3lm0/iQ== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/errors" "4.0.0" - -"@solana/programs@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/programs/-/programs-5.4.0.tgz" - integrity sha512-Sc90WK9ZZ7MghOflIvkrIm08JwsFC99yqSJy28/K+hDP2tcx+1x+H6OFP9cumW9eUA1+JVRDeKAhA8ak7e/kUA== - dependencies: - "@solana/addresses" "5.4.0" - "@solana/errors" "5.4.0" - -"@solana/programs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" - integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/promises@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/promises/-/promises-4.0.0.tgz" - integrity sha512-zEh815+n2OrrQunZ6m1iuNcoZRc9YnQaTeivBSgl1SYfPaq/Qj/rRiK5DID25Njo4L44p5quu7aal3Bk/eR+tQ== - -"@solana/promises@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/promises/-/promises-5.4.0.tgz" - integrity sha512-23mfgNBbuP6Q+4vsixGy+GkyZ7wBLrxTBNXqrG/XWrJhjuuSkjEUGaK4Fx5o7LIrBi6KGqPknKxmTlvqnJhy2Q== - -"@solana/promises@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" - integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== - -"@solana/rpc-api@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/rpc-api/-/rpc-api-4.0.0.tgz" - integrity sha512-nfQkTJCIW3qzUDRrhvr9MBm9jKQ+dZn4ypK35UDPrV+QB5Gc9UmPJ6prvpPtDq8WoU7wqUzswKeY3k7qtgYjEg== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/keys" "4.0.0" - "@solana/rpc-parsed-types" "4.0.0" - "@solana/rpc-spec" "4.0.0" - "@solana/rpc-transformers" "4.0.0" - "@solana/rpc-types" "4.0.0" - "@solana/transaction-messages" "4.0.0" - "@solana/transactions" "4.0.0" - -"@solana/rpc-api@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/rpc-api/-/rpc-api-5.4.0.tgz" - integrity sha512-FJL6KaAsQ4DhfhLKKMcqbTpToNFwHlABCemIpOunE3OSqJFDrmc/NbsEaLIoeHyIg3d1Imo49GIUOn2TEouFUA== - dependencies: - "@solana/addresses" "5.4.0" - "@solana/codecs-core" "5.4.0" - "@solana/codecs-strings" "5.4.0" - "@solana/errors" "5.4.0" - "@solana/keys" "5.4.0" - "@solana/rpc-parsed-types" "5.4.0" - "@solana/rpc-spec" "5.4.0" - "@solana/rpc-transformers" "5.4.0" - "@solana/rpc-types" "5.4.0" - "@solana/transaction-messages" "5.4.0" - "@solana/transactions" "5.4.0" - -"@solana/rpc-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" - integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-parsed-types@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/rpc-parsed-types/-/rpc-parsed-types-4.0.0.tgz" - integrity sha512-aOjwJwen5D0aDXoSths+ekdBO4mu7nmM+yASqCVW2PLN6v7NZmRBzV1/PgMFjDTiymVQj25ipCUvL395s1wsKg== - -"@solana/rpc-parsed-types@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/rpc-parsed-types/-/rpc-parsed-types-5.4.0.tgz" - integrity sha512-IRQuSzx+Sj1A3XGiIzguNZlMjMMybXTTjV/RnTwBgnJQPd/H4us4pfPD94r+/yolWDVfGjJRm04hnKVMjJU8Rg== - -"@solana/rpc-parsed-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" - integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== - -"@solana/rpc-spec-types@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/rpc-spec-types/-/rpc-spec-types-4.0.0.tgz" - integrity sha512-rpFMIaetpubeyDXIlxV08vtmiDt7ME9527kCI61slHj6O2rbj+7fABhmlN6J4YDCcL/kfnMCxZyNna94DovHZA== - -"@solana/rpc-spec-types@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/rpc-spec-types/-/rpc-spec-types-5.4.0.tgz" - integrity sha512-JU9hC5/iyJx30ym17gpoXDtT9rCbO6hLpB6UDhSFFoNeirxtTVb4OdnKtsjJDfXAiXsynJRsZRwfj3vGxRLgQw== - -"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" - integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/rpc-spec@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/rpc-spec/-/rpc-spec-4.0.0.tgz" - integrity sha512-9PFTFWjdgA/KFG4rgzbgA7gm9+aRDwsRJgI1aP7n3dGsGzYUp8vNgRQBhogWscEOETkgZNlsi/artLxgvHEHEg== - dependencies: - "@solana/errors" "4.0.0" - "@solana/rpc-spec-types" "4.0.0" - -"@solana/rpc-spec@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/rpc-spec/-/rpc-spec-5.4.0.tgz" - integrity sha512-XMhxBb1GuZ3Kaeu5WNHB5KteCQ/aVuMByZmUKPqaanD+gs5MQZr0g62CvN7iwRlFU7GC18Q73ROWR3/JjzbXTA== - dependencies: - "@solana/errors" "5.4.0" - "@solana/rpc-spec-types" "5.4.0" - -"@solana/rpc-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" - integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions-api@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-4.0.0.tgz" - integrity sha512-6/MzQT9VkcD7Rh8ExoGdbERTSEubA5eI+Q0R9FRuujl/SIy2BsWaNxaBMuZS0DFmKbIHM+m1ptUFdjKAVjGQuw== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/keys" "4.0.0" - "@solana/rpc-subscriptions-spec" "4.0.0" - "@solana/rpc-transformers" "4.0.0" - "@solana/rpc-types" "4.0.0" - "@solana/transaction-messages" "4.0.0" - "@solana/transactions" "4.0.0" - -"@solana/rpc-subscriptions-api@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-5.4.0.tgz" - integrity sha512-euAFIG6ruEsqK+MsrL1tGSMbbOumm8UAyGzlD/kmXsAqqhcVsSeZdv5+BMIHIBsQ93GHcloA8UYw1BTPhpgl9w== - dependencies: - "@solana/addresses" "5.4.0" - "@solana/keys" "5.4.0" - "@solana/rpc-subscriptions-spec" "5.4.0" - "@solana/rpc-transformers" "5.4.0" - "@solana/rpc-types" "5.4.0" - "@solana/transaction-messages" "5.4.0" - "@solana/transactions" "5.4.0" - -"@solana/rpc-subscriptions-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" - integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-subscriptions-channel-websocket@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-4.0.0.tgz" - integrity sha512-dc4cGfkQJEdkux/CXpItffuytnSU6wktReHEBL+2xaYmF+yGMBeBLzTvkCJ9BbGGfBMf06c5y5QH8X48W5CJdg== - dependencies: - "@solana/errors" "4.0.0" - "@solana/functional" "4.0.0" - "@solana/rpc-subscriptions-spec" "4.0.0" - "@solana/subscribable" "4.0.0" - -"@solana/rpc-subscriptions-channel-websocket@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-5.4.0.tgz" - integrity sha512-kWCmlW65MccxqXwKsIz+LkXUYQizgvBrrgYOkyclJHPa+zx4gqJjam87+wzvO9cfbDZRer3wtJBaRm61gTHNbw== - dependencies: - "@solana/errors" "5.4.0" - "@solana/functional" "5.4.0" - "@solana/rpc-subscriptions-spec" "5.4.0" - "@solana/subscribable" "5.4.0" - ws "^8.19.0" - -"@solana/rpc-subscriptions-channel-websocket@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" - integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/subscribable" "8.3.0" - ws "^8.21.3" - -"@solana/rpc-subscriptions-spec@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-4.0.0.tgz" - integrity sha512-2ROfFymoy/TjDAlEPpsmSQAr6LZwG4l/UIhkW7+/VraRu7QPAycuWfSopJnG8D7F3fksICFSeQNwwgBXTN1TWA== - dependencies: - "@solana/errors" "4.0.0" - "@solana/promises" "4.0.0" - "@solana/rpc-spec-types" "4.0.0" - "@solana/subscribable" "4.0.0" - -"@solana/rpc-subscriptions-spec@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-5.4.0.tgz" - integrity sha512-ELaV9Z39GtKyUO0++he00ymWleb07QXYJhSfA0e1N5Q9hXu/Y366kgXHDcbZ/oUJkT3ylNgTupkrsdtiy8Ryow== - dependencies: - "@solana/errors" "5.4.0" - "@solana/promises" "5.4.0" - "@solana/rpc-spec-types" "5.4.0" - "@solana/subscribable" "5.4.0" - -"@solana/rpc-subscriptions-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" - integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/rpc-subscriptions/-/rpc-subscriptions-4.0.0.tgz" - integrity sha512-rM+R4Xpsym0tYF3sGAEpdY+D+c6fOMk/fhCEewR+veqdubRfvI5QEhq4kHs8qdKKuRbcpGmedPC306H+PQ6Hmg== - dependencies: - "@solana/errors" "4.0.0" - "@solana/fast-stable-stringify" "4.0.0" - "@solana/functional" "4.0.0" - "@solana/promises" "4.0.0" - "@solana/rpc-spec-types" "4.0.0" - "@solana/rpc-subscriptions-api" "4.0.0" - "@solana/rpc-subscriptions-channel-websocket" "4.0.0" - "@solana/rpc-subscriptions-spec" "4.0.0" - "@solana/rpc-transformers" "4.0.0" - "@solana/rpc-types" "4.0.0" - "@solana/subscribable" "4.0.0" - -"@solana/rpc-subscriptions@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/rpc-subscriptions/-/rpc-subscriptions-5.4.0.tgz" - integrity sha512-051t1CEjjAzM9ohjj2zb3ED70yeS3ZY8J5wSytL6tthTGImw/JB2a0D9DWMOKriFKt496n95IC+IdpJ35CpBWA== - dependencies: - "@solana/errors" "5.4.0" - "@solana/fast-stable-stringify" "5.4.0" - "@solana/functional" "5.4.0" - "@solana/promises" "5.4.0" - "@solana/rpc-spec-types" "5.4.0" - "@solana/rpc-subscriptions-api" "5.4.0" - "@solana/rpc-subscriptions-channel-websocket" "5.4.0" - "@solana/rpc-subscriptions-spec" "5.4.0" - "@solana/rpc-transformers" "5.4.0" - "@solana/rpc-types" "5.4.0" - "@solana/subscribable" "5.4.0" - -"@solana/rpc-subscriptions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" - integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions-api" "8.3.0" - "@solana/rpc-subscriptions-channel-websocket" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-transformers@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/rpc-transformers/-/rpc-transformers-4.0.0.tgz" - integrity sha512-3B3C9zpqN2O76CJV9tethtybMFdT2ViN5b2u8sObftGNFqxPmjt7XmbOmPdn7zwLyRM5S2RuZShzfcVJpBf+yQ== - dependencies: - "@solana/errors" "4.0.0" - "@solana/functional" "4.0.0" - "@solana/nominal-types" "4.0.0" - "@solana/rpc-spec-types" "4.0.0" - "@solana/rpc-types" "4.0.0" - -"@solana/rpc-transformers@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/rpc-transformers/-/rpc-transformers-5.4.0.tgz" - integrity sha512-dZ8keYloLW+eRAwAPb471uWCFs58yHloLoI+QH0FulYpsSJ7F2BNWYcdnjSS/WiggsNcU6DhpWzYAzlEY66lGQ== - dependencies: - "@solana/errors" "5.4.0" - "@solana/functional" "5.4.0" - "@solana/nominal-types" "5.4.0" - "@solana/rpc-spec-types" "5.4.0" - "@solana/rpc-types" "5.4.0" - -"@solana/rpc-transformers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" - integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/rpc-transport-http@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/rpc-transport-http/-/rpc-transport-http-4.0.0.tgz" - integrity sha512-RjXcQehF3wHm8eoIala+MrdmS3mDSPRl+xwEWzmA1QmBdQl44/XTNOdPJvNkqWXrzE+bAsZGfn0gVua/oCC+zQ== - dependencies: - "@solana/errors" "4.0.0" - "@solana/rpc-spec" "4.0.0" - "@solana/rpc-spec-types" "4.0.0" - undici-types "^7.16.0" - -"@solana/rpc-transport-http@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/rpc-transport-http/-/rpc-transport-http-5.4.0.tgz" - integrity sha512-vidA+Qtqrnqp3QSVumWHdWJ/986yCr5+qX3fbc9KPm9Ofoto88OMWB/oLJvi2Tfges1UBu/jl+lJdsVckCM1bA== - dependencies: - "@solana/errors" "5.4.0" - "@solana/rpc-spec" "5.4.0" - "@solana/rpc-spec-types" "5.4.0" - undici-types "^7.18.2" - -"@solana/rpc-transport-http@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" - integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - undici-types "^8.10.2" - -"@solana/rpc-types@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/rpc-types/-/rpc-types-4.0.0.tgz" - integrity sha512-mY4W6DQVaLf3M8hSSzIEtaRsVgLg9zv5qdjjYvxkALw0fzjkLW55h3ctGbJ/k+dNpYm9gcKg7zatA7eBNnNmtQ== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/codecs-numbers" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/nominal-types" "4.0.0" - -"@solana/rpc-types@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/rpc-types/-/rpc-types-5.4.0.tgz" - integrity sha512-+C4N4/5AYzBdt3Y2yzkScknScy/jTx6wfvuJIY9XjOXtdDyZ8TmrnMwdPMTZPGLdLuHplJwlwy1acu/4hqmrBQ== - dependencies: - "@solana/addresses" "5.4.0" - "@solana/codecs-core" "5.4.0" - "@solana/codecs-numbers" "5.4.0" - "@solana/codecs-strings" "5.4.0" - "@solana/errors" "5.4.0" - "@solana/nominal-types" "5.4.0" - -"@solana/rpc-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" - integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/rpc@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/rpc/-/rpc-4.0.0.tgz" - integrity sha512-KF91ghi7P48aeWd4eSY5Fly/ioYz9ww2loQd/YqV3eLQwo3/2HUWd6r6lpSHsLh/HUoUkm+EsYmVN8r/3mE5fg== - dependencies: - "@solana/errors" "4.0.0" - "@solana/fast-stable-stringify" "4.0.0" - "@solana/functional" "4.0.0" - "@solana/rpc-api" "4.0.0" - "@solana/rpc-spec" "4.0.0" - "@solana/rpc-spec-types" "4.0.0" - "@solana/rpc-transformers" "4.0.0" - "@solana/rpc-transport-http" "4.0.0" - "@solana/rpc-types" "4.0.0" - -"@solana/rpc@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/rpc/-/rpc-5.4.0.tgz" - integrity sha512-S6GRG+usnubDs0JSpgc0ZWEh9IPL5KPWMuBoD8ggGVOIVWntp53FpvhYslNzbxWBXlTvJecr2todBipGVM/AqQ== - dependencies: - "@solana/errors" "5.4.0" - "@solana/fast-stable-stringify" "5.4.0" - "@solana/functional" "5.4.0" - "@solana/rpc-api" "5.4.0" - "@solana/rpc-spec" "5.4.0" - "@solana/rpc-spec-types" "5.4.0" - "@solana/rpc-transformers" "5.4.0" - "@solana/rpc-transport-http" "5.4.0" - "@solana/rpc-types" "5.4.0" - -"@solana/rpc@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" - integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-transport-http" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/signers@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/signers/-/signers-4.0.0.tgz" - integrity sha512-r3ZrltruadsQXmx3fsGOSqAZ3SsgD7zq/QB8sT6IOVcg11Pgdvx48/CEv7djdy44wF4HVpqNCZLfi12EhoaSXQ== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/instructions" "4.0.0" - "@solana/keys" "4.0.0" - "@solana/nominal-types" "4.0.0" - "@solana/transaction-messages" "4.0.0" - "@solana/transactions" "4.0.0" - -"@solana/signers@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/signers/-/signers-5.4.0.tgz" - integrity sha512-s+fZxpi6UPr6XNk2pH/R84WjNRoSktrgG8AGNfsj/V8MJ++eKX7hhIf4JsHZtnnQXXrHmS3ozB2oHlc8yEJvCQ== - dependencies: - "@solana/addresses" "5.4.0" - "@solana/codecs-core" "5.4.0" - "@solana/errors" "5.4.0" - "@solana/instructions" "5.4.0" - "@solana/keys" "5.4.0" - "@solana/nominal-types" "5.4.0" - "@solana/offchain-messages" "5.4.0" - "@solana/transaction-messages" "5.4.0" - "@solana/transactions" "5.4.0" - -"@solana/signers@8.3.0", "@solana/signers@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" - integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/subscribable@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/subscribable/-/subscribable-4.0.0.tgz" - integrity sha512-lDI4HkDuGkmdnX7hSgvJsFFadkQxt0pLHIpZTxOt7/6KBDtNs63NTwJGd3d/EuA7ReXwYg5HDG0QtOm64divXQ== - dependencies: - "@solana/errors" "4.0.0" - -"@solana/subscribable@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/subscribable/-/subscribable-5.4.0.tgz" - integrity sha512-72LmfNX7UENgA24sn/xjlWpPAOsrxkWb9DQhuPZxly/gq8rl/rvr7Xu9qBkvFF2po9XpdUrKlccqY4awvfpltA== - dependencies: - "@solana/errors" "5.4.0" - -"@solana/subscribable@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" - integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/sysvars@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/sysvars/-/sysvars-4.0.0.tgz" - integrity sha512-HUu2B8P7iRYWAt1KL/5a6nNTKp73y04cSxZ9PZf2Ap1/KE0/5D8WnkEfnurUQmU3zBner95d+szNOyWMNBOoTw== - dependencies: - "@solana/accounts" "4.0.0" - "@solana/codecs" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/rpc-types" "4.0.0" - -"@solana/sysvars@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/sysvars/-/sysvars-5.4.0.tgz" - integrity sha512-A5NES7sOlFmpnsiEts5vgyL3NXrt/tGGVSEjlEGvsgwl5EDZNv+xWnNA400uMDqd9O3a5PmH7p/6NsgR+kUzSg== - dependencies: - "@solana/accounts" "5.4.0" - "@solana/codecs" "5.4.0" - "@solana/errors" "5.4.0" - "@solana/rpc-types" "5.4.0" - -"@solana/sysvars@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" - integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transaction-confirmation@4.0.0", "@solana/transaction-confirmation@^4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/transaction-confirmation/-/transaction-confirmation-4.0.0.tgz" - integrity sha512-DTBIMB5/UCOpVyL5E0xwswtxs/PGeSD1VL5+C1UCPlggpZNIOlhZoaQqFO56wrJDFASzPMx+dakda5BUuhQkBg== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/keys" "4.0.0" - "@solana/promises" "4.0.0" - "@solana/rpc" "4.0.0" - "@solana/rpc-subscriptions" "4.0.0" - "@solana/rpc-types" "4.0.0" - "@solana/transaction-messages" "4.0.0" - "@solana/transactions" "4.0.0" - -"@solana/transaction-confirmation@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/transaction-confirmation/-/transaction-confirmation-5.4.0.tgz" - integrity sha512-EdSDgxs84/4gkjQw2r7N+Kgus8x9U+NFo0ufVG+48V8Hzy2t0rlBuXgIxwx0zZwUuTIgaKhpIutJgVncwZ5koA== - dependencies: - "@solana/addresses" "5.4.0" - "@solana/codecs-strings" "5.4.0" - "@solana/errors" "5.4.0" - "@solana/keys" "5.4.0" - "@solana/promises" "5.4.0" - "@solana/rpc" "5.4.0" - "@solana/rpc-subscriptions" "5.4.0" - "@solana/rpc-types" "5.4.0" - "@solana/transaction-messages" "5.4.0" - "@solana/transactions" "5.4.0" - -"@solana/transaction-confirmation@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" - integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-introspection@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" - integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-messages@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/transaction-messages/-/transaction-messages-4.0.0.tgz" - integrity sha512-rQo0rRyvkrROFZHUT0uL3vqeBBtxTsNKDtx8pZo6BC3TgGA7V1MoSC3rVOLwYCK6rK5NJZiYNjmneHz/7hVpwQ== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/codecs-data-structures" "4.0.0" - "@solana/codecs-numbers" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/functional" "4.0.0" - "@solana/instructions" "4.0.0" - "@solana/nominal-types" "4.0.0" - "@solana/rpc-types" "4.0.0" - -"@solana/transaction-messages@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/transaction-messages/-/transaction-messages-5.4.0.tgz" - integrity sha512-qd/3kZDaPiHM0amhn3vXnupfcsFTVz6CYuHXvq9HFv/fq32+5Kp1FMLnmHwoSxQxdTMDghPdOhC4vhNhuWmuVQ== - dependencies: - "@solana/addresses" "5.4.0" - "@solana/codecs-core" "5.4.0" - "@solana/codecs-data-structures" "5.4.0" - "@solana/codecs-numbers" "5.4.0" - "@solana/errors" "5.4.0" - "@solana/functional" "5.4.0" - "@solana/instructions" "5.4.0" - "@solana/nominal-types" "5.4.0" - "@solana/rpc-types" "5.4.0" - -"@solana/transaction-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" - integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transactions@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@solana/transactions/-/transactions-4.0.0.tgz" - integrity sha512-bmHIIVTQq+Wlqg4es91Ew4KSbOrvdfPsKg/pVha8ZR77huwvfqQMxRyYF4zMQ+Fm3QXGFKOU0RPVKKYic15jBw== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/codecs-data-structures" "4.0.0" - "@solana/codecs-numbers" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/functional" "4.0.0" - "@solana/instructions" "4.0.0" - "@solana/keys" "4.0.0" - "@solana/nominal-types" "4.0.0" - "@solana/rpc-types" "4.0.0" - "@solana/transaction-messages" "4.0.0" - -"@solana/transactions@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@solana/transactions/-/transactions-5.4.0.tgz" - integrity sha512-OuY4M4x/xna8KZQIrz8tSrI9EEul9Od97XejqFmGGkEjbRsUOfJW8705TveTW8jU3bd5RGecFYscPgS2F+m7jQ== - dependencies: - "@solana/addresses" "5.4.0" - "@solana/codecs-core" "5.4.0" - "@solana/codecs-data-structures" "5.4.0" - "@solana/codecs-numbers" "5.4.0" - "@solana/codecs-strings" "5.4.0" - "@solana/errors" "5.4.0" - "@solana/functional" "5.4.0" - "@solana/instructions" "5.4.0" - "@solana/keys" "5.4.0" - "@solana/nominal-types" "5.4.0" - "@solana/rpc-types" "5.4.0" - "@solana/transaction-messages" "5.4.0" - -"@solana/transactions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" - integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - -"@solana/web3.js@3.0.0-rc.3": - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" - integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@solana-program/address-lookup-table" "^0.14.0" - "@solana-program/compute-budget" "^0.18.0" - "@solana-program/loader-v3" "^0.6.0" - "@solana-program/stake" "^0.9.0" - "@solana-program/system" "^0.14.0" - "@solana/assertions" "^8.2.0" - "@solana/fast-stable-stringify" "^8.2.0" - "@solana/kit" "^8.2.0" - "@solana/rpc-spec-types" "^8.2.0" - "@solana/signers" "^8.2.0" - -"@solana/web3.js@^1.69.0": - version "1.99.0" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.99.0.tgz#864ce3fefe03b258c430e31e6672b422426821f7" - integrity sha512-QZYQ2T1z6xWisoyALPq25i/QZTsRlM02BABtAsfaQ1p8wX4SdTfxrKTRue/ZZqrhNVh5oL7T/DUFiTS9DRgxow== - dependencies: - "@babel/runtime" "^7.29.7" - "@noble/curves" "^1.9.7" - "@noble/hashes" "^1.8.0" - "@solana/buffer-layout" "^4.0.1" - "@solana/codecs-numbers" "^5.5.1" - agentkeepalive "^4.6.0" - bn.js "^5.2.5" - borsh "^0.7.0" - bs58 "^4.0.1" - buffer "6.0.3" - fast-stable-stringify "^1.0.0" - jayson "^4.3.0" - node-fetch "^2.7.0" - rpc-websockets "^9.0.2" - superstruct "^2.0.2" - -"@solana/web3.js@^1.93.0", "@solana/web3.js@^1.98.0": - version "1.98.4" - resolved "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.98.4.tgz" - integrity sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw== - 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.1.0" - agentkeepalive "^4.5.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.1.1" - node-fetch "^2.7.0" - rpc-websockets "^9.0.2" - superstruct "^2.0.2" - -"@swc/helpers@^0.5.11": - version "0.5.18" - resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.18.tgz" - integrity sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ== - dependencies: - tslib "^2.8.0" - -"@tsconfig/node10@^1.0.7": - version "1.0.12" - resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.12.tgz" - integrity sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@types/chai-subset@^1.3.3": - version "1.3.6" - resolved "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.6.tgz" - integrity sha512-m8lERkkQj+uek18hXOZuec3W/fCRTrU4hrnXjH3qhHy96ytuPaPiWGgu7sJb7tZxZonO75vYAjCvpe/e4VUwRw== - -"@types/chai@^4.3.5": - version "4.3.20" - resolved "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz" - integrity sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ== - -"@types/connect@^3.4.33": - version "3.4.38" - resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz" - integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== - dependencies: - "@types/node" "*" - -"@types/estree@1.0.8": - version "1.0.8" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz" - integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== - -"@types/node@*", "@types/node@^20.0.0": - version "20.19.29" - resolved "https://registry.npmjs.org/@types/node/-/node-20.19.29.tgz" - integrity sha512-YrT9ArrGaHForBaCNwFjoqJWmn8G1Pr7+BH/vwyLHciA9qT/wSiuOhxGCT50JA5xLvFBd6PIiGkE3afxcPE1nw== - dependencies: - undici-types "~6.21.0" - -"@types/node@^12.12.54": - version "12.20.55" - resolved "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - -"@types/uuid@^8.3.4": - version "8.3.4" - resolved "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz" - integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== - -"@types/ws@^7.4.4": - version "7.4.7" - resolved "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - dependencies: - "@types/node" "*" - -"@types/ws@^8.2.2": - version "8.18.1" - resolved "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz" - integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== - dependencies: - "@types/node" "*" - -"@vitest/expect@0.34.6": - version "0.34.6" - resolved "https://registry.npmjs.org/@vitest/expect/-/expect-0.34.6.tgz" - integrity sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw== - dependencies: - "@vitest/spy" "0.34.6" - "@vitest/utils" "0.34.6" - chai "^4.3.10" - -"@vitest/runner@0.34.6": - version "0.34.6" - resolved "https://registry.npmjs.org/@vitest/runner/-/runner-0.34.6.tgz" - integrity sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ== - dependencies: - "@vitest/utils" "0.34.6" - p-limit "^4.0.0" - pathe "^1.1.1" - -"@vitest/snapshot@0.34.6": - version "0.34.6" - resolved "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.34.6.tgz" - integrity sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w== - dependencies: - magic-string "^0.30.1" - pathe "^1.1.1" - pretty-format "^29.5.0" - -"@vitest/spy@0.34.6": - version "0.34.6" - resolved "https://registry.npmjs.org/@vitest/spy/-/spy-0.34.6.tgz" - integrity sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ== - dependencies: - tinyspy "^2.1.1" - -"@vitest/utils@0.34.6": - version "0.34.6" - resolved "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.6.tgz" - integrity sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A== - dependencies: - diff-sequences "^29.4.3" - loupe "^2.3.6" - pretty-format "^29.5.0" - -acorn-walk@^8.1.1, acorn-walk@^8.2.0: - version "8.3.4" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz" - integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== - dependencies: - acorn "^8.11.0" - -acorn@^8.10.0, acorn@^8.11.0, acorn@^8.15.0, acorn@^8.4.1, acorn@^8.9.0: - version "8.15.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz" - integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== - -agentkeepalive@^4.5.0, agentkeepalive@^4.6.0: - version "4.6.0" - resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz" - integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== - dependencies: - humanize-ms "^1.2.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -asn1.js@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1js@^3.0.6: - version "3.0.10" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.10.tgz#df26c874c8a8b41ca605efea47b2ad07551013dd" - integrity sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg== - dependencies: - pvtsutils "^1.3.6" - pvutils "^1.1.5" - tslib "^2.8.1" - -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - -base-x@^3.0.2: - version "3.0.11" - resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.11.tgz" - integrity sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA== - dependencies: - safe-buffer "^5.0.1" - -base-x@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/base-x/-/base-x-5.0.1.tgz" - integrity sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bn.js@^4.0.0, bn.js@^4.11.9: - version "4.12.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.3.tgz#2cc2c679188eb35b006f2d0d4710bed8437a769e" - integrity sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g== - -bn.js@^5.1.2, bn.js@^5.2.5: - version "5.2.5" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.5.tgz#e81ce41cf25e6f0cd1e05f20a9db8c18405e375f" - integrity sha512-Vq886eXykuP5E6HcKSSStP3bJgrE6In5WKxVUvJ8XGpWWYs2xZHWqUwzCtGgEtBcxyd57KBFDPFoUfNzdaHCNg== - -bn.js@^5.2.0, bn.js@^5.2.1: - version "5.2.2" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz" - integrity sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw== - -bn.js@^5.2.2: - version "5.2.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.3.tgz#16a9e409616b23fef3ccbedb8d42f13bff80295e" - integrity sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w== - -borsh@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz" - integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== - dependencies: - bn.js "^5.2.0" - bs58 "^4.0.0" - text-encoding-utf-8 "^1.0.2" - -brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -bs58@^4.0.0, bs58@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz" - integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - dependencies: - base-x "^3.0.2" - -bs58@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/bs58/-/bs58-6.0.0.tgz" - integrity sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw== - dependencies: - base-x "^5.0.0" - -buffer-layout@^1.2.0, buffer-layout@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" - integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== - -buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: - version "6.0.3" - resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -bufferutil@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.1.0.tgz#a4623541dd23867626bb08a051ec0d2ec0b70294" - integrity sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw== - dependencies: - node-gyp-build "^4.3.0" - -cac@^6.7.14: - version "6.7.14" - resolved "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz" - integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== - -camelcase@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -chai@^4.3.10: - version "4.5.0" - resolved "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz" - integrity sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw== - 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.6" - pathval "^1.1.1" - type-detect "^4.1.0" - -chalk@5.6.2, chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - -check-error@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz" - integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== - dependencies: - get-func-name "^2.0.2" - -commander@14.0.1: - version "14.0.1" - resolved "https://registry.npmjs.org/commander/-/commander-14.0.1.tgz" - integrity sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A== - -commander@14.0.2, commander@^14.0.0: - version "14.0.2" - resolved "https://registry.npmjs.org/commander/-/commander-14.0.2.tgz" - integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== - -commander@15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" - integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== - -commander@^2.20.3: - version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -confbox@^0.1.8: - version "0.1.8" - resolved "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz" - integrity sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w== - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-fetch@^3.1.5: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" - integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== - dependencies: - node-fetch "^2.7.0" - -debug@^4.3.4: - version "4.4.3" - resolved "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz" - integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== - dependencies: - ms "^2.1.3" - -deep-eql@^4.1.3: - version "4.1.4" - resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz" - integrity sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg== - dependencies: - type-detect "^4.0.0" - -delay@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz" - integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - -diff-sequences@^29.4.3: - version "29.6.3" - resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz" - integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -dotenv@^16.0.0: - version "16.6.1" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz" - integrity sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow== - -elliptic@^6.6.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" - integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz" - integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== - dependencies: - es6-promise "^4.0.3" - -esbuild@^0.21.3: - version "0.21.5" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz" - integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== - optionalDependencies: - "@esbuild/aix-ppc64" "0.21.5" - "@esbuild/android-arm" "0.21.5" - "@esbuild/android-arm64" "0.21.5" - "@esbuild/android-x64" "0.21.5" - "@esbuild/darwin-arm64" "0.21.5" - "@esbuild/darwin-x64" "0.21.5" - "@esbuild/freebsd-arm64" "0.21.5" - "@esbuild/freebsd-x64" "0.21.5" - "@esbuild/linux-arm" "0.21.5" - "@esbuild/linux-arm64" "0.21.5" - "@esbuild/linux-ia32" "0.21.5" - "@esbuild/linux-loong64" "0.21.5" - "@esbuild/linux-mips64el" "0.21.5" - "@esbuild/linux-ppc64" "0.21.5" - "@esbuild/linux-riscv64" "0.21.5" - "@esbuild/linux-s390x" "0.21.5" - "@esbuild/linux-x64" "0.21.5" - "@esbuild/netbsd-x64" "0.21.5" - "@esbuild/openbsd-x64" "0.21.5" - "@esbuild/sunos-x64" "0.21.5" - "@esbuild/win32-arm64" "0.21.5" - "@esbuild/win32-ia32" "0.21.5" - "@esbuild/win32-x64" "0.21.5" - -eventemitter3@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -eventemitter3@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz" - integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - -eyes@^0.1.8: - version "0.1.8" - resolved "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz" - integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== - -fast-stable-stringify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz" - integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== - -fsevents@~2.3.2, fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -get-func-name@^2.0.1, get-func-name@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz" - integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== - -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - -jayson@^4.1.1, jayson@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/jayson/-/jayson-4.3.0.tgz" - integrity sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ== - dependencies: - "@types/connect" "^3.4.33" - "@types/node" "^12.12.54" - "@types/ws" "^7.4.4" - commander "^2.20.3" - delay "^5.0.0" - es6-promisify "^5.0.0" - eyes "^0.1.8" - isomorphic-ws "^4.0.1" - json-stringify-safe "^5.0.1" - stream-json "^1.9.1" - uuid "^8.3.2" - ws "^7.5.10" - -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -local-pkg@^0.4.3: - version "0.4.3" - resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz" - integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== - -loupe@^2.3.6: - version "2.3.7" - resolved "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz" - integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== - dependencies: - get-func-name "^2.0.1" - -magic-string@^0.30.1: - version "0.30.21" - resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz" - integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== - dependencies: - "@jridgewell/sourcemap-codec" "^1.5.5" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -mlly@^1.4.0, mlly@^1.7.4: - version "1.8.0" - resolved "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz" - integrity sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g== - dependencies: - acorn "^8.15.0" - pathe "^2.0.3" - pkg-types "^1.3.1" - ufo "^1.6.1" - -ms@^2.0.0, ms@^2.1.3: - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -nanoid@^3.3.11: - version "3.3.11" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz" - integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== - -node-fetch@^2.7.0: - version "2.7.0" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - -node-gyp-build@^4.3.0: - version "4.8.4" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" - integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== - -p-limit@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz" - integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== - dependencies: - yocto-queue "^1.0.0" - -pako@^2.0.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.2.0.tgz#246b9d4c841a8d308e484c0d03786651b143e63a" - integrity sha512-zJq6RP/5q+TO2OpFV3FHzlPnFjmkb7Nc99a5SNjJE+uu/PkpChs+NIZSSzbBoD+6kjiISXjfYdwj1ZRQ81dz/w== - -pathe@^1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz" - integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== - -pathe@^2.0.1, pathe@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz" - integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== - -pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== - -picocolors@^1.0.0, picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - -pkg-types@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz" - integrity sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ== - dependencies: - confbox "^0.1.8" - mlly "^1.7.4" - pathe "^2.0.1" - -postcss@^8.4.43: - version "8.5.6" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz" - integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== - dependencies: - nanoid "^3.3.11" - picocolors "^1.1.1" - source-map-js "^1.2.1" - prettier@^3.5.3: - version "3.8.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.8.4.tgz#f334f013ac04a96676f24dabc23c1c4ae1bae411" - integrity sha512-N2MylSdi48+5N/6S5j+maeHbUSIzzZ5uOcX5Hm4QpV8Dkb1HFjfAKTKX6yNPJQD9AhcT3ifHNB66tWTTJDi11Q== - -pretty-format@^29.5.0: - version "29.7.0" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz" - integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== - dependencies: - "@jest/schemas" "^29.6.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -pvtsutils@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.6.tgz#ec46e34db7422b9e4fdc5490578c1883657d6001" - integrity sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg== - dependencies: - tslib "^2.8.1" - -pvutils@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.5.tgz#84b0dea4a5d670249aa9800511804ee0b7c2809c" - integrity sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA== - -react-is@^18.0.0: - version "18.3.1" - resolved "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz" - integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== - -rollup@^4.20.0: - version "4.55.1" - resolved "https://registry.npmjs.org/rollup/-/rollup-4.55.1.tgz" - integrity sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A== - dependencies: - "@types/estree" "1.0.8" - optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.55.1" - "@rollup/rollup-android-arm64" "4.55.1" - "@rollup/rollup-darwin-arm64" "4.55.1" - "@rollup/rollup-darwin-x64" "4.55.1" - "@rollup/rollup-freebsd-arm64" "4.55.1" - "@rollup/rollup-freebsd-x64" "4.55.1" - "@rollup/rollup-linux-arm-gnueabihf" "4.55.1" - "@rollup/rollup-linux-arm-musleabihf" "4.55.1" - "@rollup/rollup-linux-arm64-gnu" "4.55.1" - "@rollup/rollup-linux-arm64-musl" "4.55.1" - "@rollup/rollup-linux-loong64-gnu" "4.55.1" - "@rollup/rollup-linux-loong64-musl" "4.55.1" - "@rollup/rollup-linux-ppc64-gnu" "4.55.1" - "@rollup/rollup-linux-ppc64-musl" "4.55.1" - "@rollup/rollup-linux-riscv64-gnu" "4.55.1" - "@rollup/rollup-linux-riscv64-musl" "4.55.1" - "@rollup/rollup-linux-s390x-gnu" "4.55.1" - "@rollup/rollup-linux-x64-gnu" "4.55.1" - "@rollup/rollup-linux-x64-musl" "4.55.1" - "@rollup/rollup-openbsd-x64" "4.55.1" - "@rollup/rollup-openharmony-arm64" "4.55.1" - "@rollup/rollup-win32-arm64-msvc" "4.55.1" - "@rollup/rollup-win32-ia32-msvc" "4.55.1" - "@rollup/rollup-win32-x64-gnu" "4.55.1" - "@rollup/rollup-win32-x64-msvc" "4.55.1" - fsevents "~2.3.2" - -rpc-websockets@^9.0.2, rpc-websockets@^9.0.4: - version "9.3.2" - resolved "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-9.3.2.tgz" - integrity sha512-VuW2xJDnl1k8n8kjbdRSWawPRkwaVqUQNjE1TdeTawf0y0abGhtVJFTXCLfgpgGDBkO/Fj6kny8Dc/nvOW78MA== - dependencies: - "@swc/helpers" "^0.5.11" - "@types/uuid" "^8.3.4" - "@types/ws" "^8.2.2" - buffer "^6.0.3" - eventemitter3 "^5.0.1" - uuid "^8.3.2" - ws "^8.5.0" - optionalDependencies: - bufferutil "^4.0.1" - utf-8-validate "^5.0.2" - -safe-buffer@^5.0.1: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -siginfo@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz" - integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== - -source-map-js@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz" - integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== - -stackback@0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz" - integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== - -std-env@^3.3.3: - version "3.10.0" - resolved "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz" - integrity sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg== - -stream-chain@^2.2.5: - version "2.2.5" - resolved "https://registry.npmjs.org/stream-chain/-/stream-chain-2.2.5.tgz" - integrity sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA== - -stream-json@^1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/stream-json/-/stream-json-1.9.1.tgz" - integrity sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw== - dependencies: - stream-chain "^2.2.5" - -strip-literal@^1.0.1: - version "1.3.0" - resolved "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz" - integrity sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg== - dependencies: - acorn "^8.10.0" - -superstruct@^0.15.4: - version "0.15.5" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" - integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== - -superstruct@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/superstruct/-/superstruct-2.0.2.tgz" - integrity sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A== - -text-encoding-utf-8@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz" - integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== - -tinybench@^2.5.0: - version "2.9.0" - resolved "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz" - integrity sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg== - -tinypool@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/tinypool/-/tinypool-0.7.0.tgz" - integrity sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww== - -tinyspy@^2.1.1: - version "2.2.1" - resolved "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz" - integrity sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A== - -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -ts-node@^10.9.0: - version "10.9.2" - resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz" - integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tslib@^2.8.0, tslib@^2.8.1: - version "2.8.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz" - integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -type-detect@^4.0.0, type-detect@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz" - integrity sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw== - -typescript@^5.0.0, typescript@^5.3.0: - version "5.9.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz" - integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== - -ufo@^1.6.1: - version "1.6.3" - resolved "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz" - integrity sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q== - -undici-types@^7.16.0, undici-types@^7.18.2: - version "7.18.2" - resolved "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz" - integrity sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w== - -undici-types@^8.10.2: - version "8.10.2" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" - integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== - -undici-types@~6.21.0: - version "6.21.0" - resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz" - integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== - -utf-8-validate@^5.0.2: - version "5.0.10" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" - integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== - dependencies: - node-gyp-build "^4.3.0" - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -vite-node@0.34.6: - version "0.34.6" - resolved "https://registry.npmjs.org/vite-node/-/vite-node-0.34.6.tgz" - integrity sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA== - dependencies: - cac "^6.7.14" - debug "^4.3.4" - mlly "^1.4.0" - pathe "^1.1.1" - picocolors "^1.0.0" - vite "^3.0.0 || ^4.0.0 || ^5.0.0-0" - -"vite@^3.0.0 || ^4.0.0 || ^5.0.0-0", "vite@^3.1.0 || ^4.0.0 || ^5.0.0-0": - version "5.4.21" - resolved "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz" - integrity sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw== - dependencies: - esbuild "^0.21.3" - postcss "^8.4.43" - rollup "^4.20.0" - optionalDependencies: - fsevents "~2.3.3" - -vitest@^0.34.0: - version "0.34.6" - resolved "https://registry.npmjs.org/vitest/-/vitest-0.34.6.tgz" - integrity sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q== - dependencies: - "@types/chai" "^4.3.5" - "@types/chai-subset" "^1.3.3" - "@types/node" "*" - "@vitest/expect" "0.34.6" - "@vitest/runner" "0.34.6" - "@vitest/snapshot" "0.34.6" - "@vitest/spy" "0.34.6" - "@vitest/utils" "0.34.6" - acorn "^8.9.0" - acorn-walk "^8.2.0" - cac "^6.7.14" - chai "^4.3.10" - debug "^4.3.4" - local-pkg "^0.4.3" - magic-string "^0.30.1" - pathe "^1.1.1" - picocolors "^1.0.0" - std-env "^3.3.3" - strip-literal "^1.0.1" - tinybench "^2.5.0" - tinypool "^0.7.0" - vite "^3.1.0 || ^4.0.0 || ^5.0.0-0" - vite-node "0.34.6" - why-is-node-running "^2.2.2" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -why-is-node-running@^2.2.2: - version "2.3.0" - resolved "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz" - integrity sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w== - dependencies: - siginfo "^2.0.0" - stackback "0.0.2" - -ws@^7.5.10: - version "7.5.10" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz" - integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== - -ws@^8.19.0, ws@^8.5.0: - version "8.19.0" - resolved "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz" - integrity sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg== - -ws@^8.21.3: - version "8.21.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" - integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^1.0.0: - version "1.2.2" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz" - integrity sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ== + version "3.9.9" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.9.9.tgz#09b826918c91cd4cbc80e0cbd1d2a922ff04f233" + integrity sha512-Z/CJHIkdujO/OtN7nXUii0Rf3VT5SRuhjBA82Xvu2XhBUgX3nhP67T0LHceBdQLex7OOFGTox+Q5Yg8Jk2Qivg== diff --git a/delegation-actions/anchor/README.md b/delegation-actions/anchor/README.md index 4c6c0c9f..0869829c 100644 --- a/delegation-actions/anchor/README.md +++ b/delegation-actions/anchor/README.md @@ -69,7 +69,7 @@ yarn yarn build ``` -Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): +Run the Rust test suite in `tests-magicsvm-rs/` in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash yarn test @@ -79,6 +79,6 @@ MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no va network. The suite tests a post-delegation action, base and Ephemeral Rollup increments, and undelegation. -A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. +`yarn test` runs `cargo +stable test`: MagicSVM needs a newer Rust than the 1.89 toolchain used for program builds. [delegation program]: https://github.com/magicblock-labs/delegation-program diff --git a/delegation-actions/anchor/migrations/deploy.ts b/delegation-actions/anchor/migrations/deploy.ts deleted file mode 100644 index 439431ec..00000000 --- a/delegation-actions/anchor/migrations/deploy.ts +++ /dev/null @@ -1,12 +0,0 @@ -// Migrations are an early feature. Currently, they're nothing more than this -// single deploy script that's invoked from the CLI, injecting a provider -// configured from the workspace's Anchor.toml. - -import * as anchor from "@coral-xyz/anchor"; - -module.exports = async function (provider: anchor.AnchorProvider) { - // Configure client to use the provider. - anchor.setProvider(provider); - - // Add your deploy script here. -}; diff --git a/delegation-actions/anchor/package.json b/delegation-actions/anchor/package.json index 01796a1c..094f3247 100644 --- a/delegation-actions/anchor/package.json +++ b/delegation-actions/anchor/package.json @@ -4,27 +4,10 @@ "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", "build": "anchor build --ignore-keys", - "test": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests/delegation-actions.ts", - "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture" - }, - "dependencies": { - "@coral-xyz/anchor": "^0.32.1", - "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3", - "@magicblock-labs/magicsvm": "0.2.0", - "@solana/web3.js": "^1.98.2", - "magic-router-sdk": "^1.0.8" + "test": "cargo +stable test --manifest-path tests-magicsvm-rs/Cargo.toml" }, "devDependencies": { - "@types/bn.js": "^5.1.0", - "@types/chai": "^4.3.0", - "@types/mocha": "^9.0.0", - "@types/node": "^22.13.10", - "chai": "^4.3.4", - "mocha": "^9.0.3", - "prettier": "^2.6.2", - "ts-mocha": "^10.0.0", - "typescript": "^5.7.3", - "@magicblock-labs/test-utils": "link:../../test-utils/ts" + "prettier": "^2.6.2" }, "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" } diff --git a/delegation-actions/anchor/tests/delegation-actions.ts b/delegation-actions/anchor/tests/delegation-actions.ts deleted file mode 100644 index 7c3c5095..00000000 --- a/delegation-actions/anchor/tests/delegation-actions.ts +++ /dev/null @@ -1,151 +0,0 @@ -import { web3 } from "@coral-xyz/anchor"; -import { - bootAnchorSvm, - isDelegated, - sendSvmTx, - validatorRemainingAccount, -} from "@magicblock-labs/test-utils"; -import { assert } from "chai"; -import { DelegationActions } from "../target/types/delegation_actions"; - -const COUNTER_SEED = "counter"; -const LAMPORTS_PER_SOL = 1_000_000_000n; - -describe("delegation-actions-magicsvm", () => { - const { svm, payer, program, validator } = bootAnchorSvm({ - fromDir: __dirname, - programName: "delegation_actions", - airdropLamports: 2n * LAMPORTS_PER_SOL, - }); - const [pda] = web3.PublicKey.findProgramAddressSync( - [Buffer.from(COUNTER_SEED)], - program.programId, - ); - - console.log("Program ID: ", program.programId.toBase58()); - console.log("Counter PDA: ", pda.toBase58()); - console.log("Validator identity: ", validator.toString()); - - function getCounter(target: "base" | "ephemeral"): number | null { - const info = svm.getAccountFor(pda, { target }); - if (!info.exists) return null; - return Number(Buffer.from(info.data).readBigUInt64LE(8)); - } - - function printCounter(message: string) { - const delegated = isDelegated(svm, pda); - let counterBase = ""; - let counterER = ""; - if (delegated) { - counterBase = ""; - counterER = getCounter("ephemeral")?.toString() ?? ""; - } else { - counterBase = getCounter("base")?.toString() ?? ""; - counterER = ""; - } - console.log("--------------------------------"); - console.log(`| ${delegated ? "✅ Delegated" : "❌ Not Delegated"}`); - console.log("--------------------------------"); - console.log("| Counter (Base): ", counterBase); - console.log("| Counter (ER): ", counterER); - console.log("--------------------------------"); - console.log(message); - } - - it("Initialize Counter", async () => { - sendSvmTx( - svm, - [payer], - await program.methods - .initialize() - .accounts({ - counter: pda, - user: payer.publicKey, - systemProgram: web3.SystemProgram.programId, - } as never) - .transaction(), - "base", - ); - printCounter("✅ Initialized"); - assert.equal(getCounter("base"), 0); - }); - - it("Increment Counter on base layer", async () => { - sendSvmTx( - svm, - [payer], - await program.methods - .increment() - .accounts({ counter: pda }) - .transaction(), - "base", - ); - printCounter("Counter incremented on base layer"); - assert.equal(getCounter("base"), 1); - }); - - it("Delegate Counter with a post-delegation action", async () => { - const before = getCounter("base"); - assert.isNotNull(before); - - // `delegate_with_actions` delegates the counter AND attaches an `increment` - // action. MagicSVM should run that action automatically once the account is - // delegated — no separate increment transaction is sent here. - sendSvmTx( - svm, - [payer], - await program.methods - .delegateWithActions() - .accounts({ payer: payer.publicKey, pda }) - .remainingAccounts([validatorRemainingAccount(svm)]) - .transaction(), - "base", - ); - - const after = getCounter("ephemeral"); - printCounter( - `Post-delegation action result — ER counter: ${after} (was ${before})`, - ); - - if (after !== before! + 1) { - throw new Error( - `Post-delegation action did not run: expected ${ - before! + 1 - } in ER, got ${after}`, - ); - } - console.log("✅ Post-delegation action executed automatically in the ER"); - assert.isTrue(isDelegated(svm, pda)); - }); - - it("Increment Counter in ER", async () => { - assert.isTrue(isDelegated(svm, pda)); - const before = getCounter("ephemeral"); - sendSvmTx( - svm, - [payer], - await program.methods - .increment() - .accounts({ counter: pda }) - .transaction(), - "ephemeral", - ); - printCounter("✅ Incremented (ER)"); - assert.equal(getCounter("ephemeral"), (before ?? 0) + 1); - }); - - it("Undelegate Counter", async () => { - assert.isTrue(isDelegated(svm, pda)); - sendSvmTx( - svm, - [payer], - await program.methods - .undelegate() - .accounts({ payer: payer.publicKey }) - .transaction(), - "ephemeral", - ); - printCounter("✅ Undelegated"); - assert.isFalse(isDelegated(svm, pda)); - }); -}); diff --git a/delegation-actions/anchor/tsconfig.json b/delegation-actions/anchor/tsconfig.json deleted file mode 100644 index 219f1fd6..00000000 --- a/delegation-actions/anchor/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "types": ["mocha", "chai", "node"], - "typeRoots": ["./node_modules/@types"], - "lib": ["es2020"], - "module": "commonjs", - "target": "es2020", - "esModuleInterop": true, - "skipLibCheck": true - } -} diff --git a/delegation-actions/anchor/yarn.lock b/delegation-actions/anchor/yarn.lock index 27be2e14..05a48e23 100644 --- a/delegation-actions/anchor/yarn.lock +++ b/delegation-actions/anchor/yarn.lock @@ -2,1911 +2,7 @@ # yarn lockfile v1 -"@babel/runtime@^7.25.0": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326" - integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== - -"@coral-xyz/anchor-errors@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" - integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== - -"@coral-xyz/anchor@0.32.1", "@coral-xyz/anchor@^0.32.1": - version "0.32.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" - integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== - dependencies: - "@coral-xyz/anchor-errors" "^0.31.1" - "@coral-xyz/borsh" "^0.31.1" - "@noble/hashes" "^1.3.1" - "@solana/web3.js" "^1.69.0" - bn.js "^5.1.2" - bs58 "^4.0.1" - buffer-layout "^1.2.2" - camelcase "^6.3.0" - cross-fetch "^3.1.5" - eventemitter3 "^4.0.7" - pako "^2.0.3" - superstruct "^0.15.4" - toml "^3.0.0" - -"@coral-xyz/borsh@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.31.1.tgz#5328e1e0921b75d7f4a62dd3f61885a938bc7241" - integrity sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw== - dependencies: - bn.js "^5.1.2" - buffer-layout "^1.2.0" - -"@magicblock-labs/ephemeral-rollups-sdk@0.14.3": - version "0.14.3" - resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.14.3.tgz#536c215d1daefdbcfa82a79304b08f5014405c58" - integrity sha512-CoByiXHLLS+l7Ojl6XJuYypP/k08ymFkab8+Gh/HCv5Gn2oC4VkwszEQoTDnKo++8Oxbqr9YVGzAMUW4Km7cLA== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@phala/dcap-qvl" "^0.3.9" - "@solana/web3.js" "^1.98.0" - bs58 "^6.0.0" - rpc-websockets "^9.0.4" - tweetnacl "^1.0.3" - typescript "^5.3.0" - -"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" - integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== - -"@magicblock-labs/magicsvm-darwin-x64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" - integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== - -"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" - integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== - -"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" - integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== - -"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" - integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== - -"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" - integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== - -"@magicblock-labs/magicsvm@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" - integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== - dependencies: - "@solana/web3.js" "3.0.0-rc.3" - optionalDependencies: - "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" - "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" - -"@magicblock-labs/test-utils@link:../../test-utils/ts": - version "0.0.0" - uid "" - -"@noble/curves@^1.4.2": - version "1.9.7" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" - integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== - dependencies: - "@noble/hashes" "1.8.0" - -"@noble/hashes@1.8.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" - integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== - -"@peculiar/asn1-schema@^2.3.13", "@peculiar/asn1-schema@^2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.7.0.tgz#f2dcb25995ce7cac8687ba1039f043e5eff43820" - integrity sha512-W8ZfWzLmQnrcky+eh3tni4IozMdqBDiHWU0N+vve/UGjMaUs8c0L7A2oEdkBXS8rTpWDpK/aoI3DG/L/hxmxPg== - dependencies: - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.6" - tslib "^2.8.1" - -"@peculiar/asn1-x509@^2.3.13": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.7.0.tgz#84793efb7819dbc9526fd6b0a4ccd86f90464b96" - integrity sha512-mUn9RRrkGDnG4ALfunDmzyRW5dg+sWCj/pfnCCqEHYbkGxEpvUt6iVJv8Yw1cyp6SWZ26ZE5oSmI5SqEaen15g== - dependencies: - "@peculiar/asn1-schema" "^2.7.0" - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.6" - tslib "^2.8.1" - -"@peculiar/utils@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@peculiar/utils/-/utils-2.0.3.tgz#a27ca4c4b73652e110f19a7d16d664f458a5528e" - integrity sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ== - dependencies: - tslib "^2.8.1" - -"@phala/dcap-qvl@^0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@phala/dcap-qvl/-/dcap-qvl-0.3.9.tgz#34da2506c31954cd290afb5a46146cd52ae24481" - integrity sha512-s/4gAFVq1DRhYkuerDR9WAlX8tkCpFTHTVpWnWlrigj5la2X5OtQl9Y7PzwcqY4h0fc25yqZrcRH3AZpzB1qOw== - dependencies: - "@peculiar/asn1-schema" "^2.3.13" - "@peculiar/asn1-x509" "^2.3.13" - asn1.js "^5.4.1" - bn.js "^5.2.2" - buffer "^6.0.3" - elliptic "^6.6.1" - hash.js "^1.1.7" - node-fetch "^2.7.0" - -"@solana-program/address-lookup-table@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" - integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== - -"@solana-program/compute-budget@^0.18.0": - version "0.18.1" - resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" - integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== - -"@solana-program/loader-v3@^0.6.0": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" - integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== - -"@solana-program/stake@^0.9.0": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" - integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== - -"@solana-program/system@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" - integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== - -"@solana/accounts@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" - integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/addresses@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" - integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" - integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/buffer-layout@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" - integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== - dependencies: - buffer "~6.0.3" - -"@solana/codecs-core@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-2.3.0.tgz#6bf2bb565cb1ae880f8018635c92f751465d8695" - integrity sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw== - dependencies: - "@solana/errors" "2.3.0" - -"@solana/codecs-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" - integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/codecs-data-structures@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" - integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" - integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@^2.1.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" - integrity sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg== - dependencies: - "@solana/codecs-core" "2.3.0" - "@solana/errors" "2.3.0" - -"@solana/codecs-strings@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" - integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" - integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/options" "8.3.0" - -"@solana/errors@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.3.0.tgz#4ac9380343dbeffb9dffbcb77c28d0e457c5fa31" - integrity sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ== - dependencies: - chalk "^5.4.1" - commander "^14.0.0" - -"@solana/errors@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" - integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== - dependencies: - chalk "5.6.2" - commander "15.0.0" - -"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" - integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== - -"@solana/fixed-points@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" - integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/functional@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" - integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== - -"@solana/instruction-plans@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" - integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/instructions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" - integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/keys@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" - integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/kit@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" - integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/plugin-core" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/program-client-core" "8.3.0" - "@solana/programs" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/subscribable" "8.3.0" - "@solana/sysvars" "8.3.0" - "@solana/transaction-confirmation" "8.3.0" - "@solana/transaction-introspection" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/nominal-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" - integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== - -"@solana/offchain-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" - integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/options@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" - integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/plugin-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" - integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== - -"@solana/plugin-interfaces@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" - integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/program-client-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" - integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/signers" "8.3.0" - -"@solana/programs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" - integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/promises@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" - integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== - -"@solana/rpc-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" - integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-parsed-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" - integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== - -"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" - integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/rpc-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" - integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" - integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-subscriptions-channel-websocket@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" - integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/subscribable" "8.3.0" - ws "^8.21.3" - -"@solana/rpc-subscriptions-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" - integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" - integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions-api" "8.3.0" - "@solana/rpc-subscriptions-channel-websocket" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-transformers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" - integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/rpc-transport-http@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" - integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - undici-types "^8.10.2" - -"@solana/rpc-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" - integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/rpc@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" - integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-transport-http" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/signers@8.3.0", "@solana/signers@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" - integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/subscribable@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" - integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/sysvars@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" - integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transaction-confirmation@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" - integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-introspection@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" - integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" - integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transactions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" - integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - -"@solana/web3.js@3.0.0-rc.3": - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" - integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@solana-program/address-lookup-table" "^0.14.0" - "@solana-program/compute-budget" "^0.18.0" - "@solana-program/loader-v3" "^0.6.0" - "@solana-program/stake" "^0.9.0" - "@solana-program/system" "^0.14.0" - "@solana/assertions" "^8.2.0" - "@solana/fast-stable-stringify" "^8.2.0" - "@solana/kit" "^8.2.0" - "@solana/rpc-spec-types" "^8.2.0" - "@solana/signers" "^8.2.0" - -"@solana/web3.js@^1.69.0", "@solana/web3.js@^1.98.0", "@solana/web3.js@^1.98.2": - version "1.98.4" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" - integrity sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw== - 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.1.0" - agentkeepalive "^4.5.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.1.1" - node-fetch "^2.7.0" - rpc-websockets "^9.0.2" - superstruct "^2.0.2" - -"@swc/helpers@^0.5.11": - version "0.5.17" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.17.tgz#5a7be95ac0f0bf186e7e6e890e7a6f6cda6ce971" - integrity sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A== - dependencies: - tslib "^2.8.0" - -"@types/bn.js@^5.1.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.2.0.tgz#4349b9710e98f9ab3cdc50f1c5e4dcbd8ef29c80" - integrity sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q== - dependencies: - "@types/node" "*" - -"@types/chai@^4.3.0": - version "4.3.20" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.20.tgz#cb291577ed342ca92600430841a00329ba05cecc" - integrity sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ== - -"@types/connect@^3.4.33": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" - integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== - dependencies: - "@types/node" "*" - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== - -"@types/mocha@^9.0.0": - version "9.1.1" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-9.1.1.tgz#e7c4f1001eefa4b8afbd1eee27a237fee3bf29c4" - integrity sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw== - -"@types/node@*": - version "24.10.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.1.tgz#91e92182c93db8bd6224fca031e2370cef9a8f01" - integrity sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ== - dependencies: - undici-types "~7.16.0" - -"@types/node@^12.12.54": - version "12.20.55" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - -"@types/node@^22.13.10": - version "22.20.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.20.2.tgz#daae777b5f5965a587f50cc80d5364c2ddf27e36" - integrity sha512-xlvWf4Vs9n1PEVYwP1n4vvG07M6y8WgvJ2t0vbrWTmijsIHp1cS+uJ2kMIRdY3nHZK0nCYKrPeD171+SzF4/zw== - dependencies: - undici-types "~6.21.0" - -"@types/uuid@^8.3.4": - version "8.3.4" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" - integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== - -"@types/ws@^7.4.4": - version "7.4.7" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - dependencies: - "@types/node" "*" - -"@types/ws@^8.2.2": - version "8.18.1" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" - integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== - dependencies: - "@types/node" "*" - -"@ungap/promise-all-settled@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" - integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== - -agentkeepalive@^4.5.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" - integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== - dependencies: - humanize-ms "^1.2.1" - -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -arrify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== - -asn1.js@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1js@^3.0.6: - version "3.0.10" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.10.tgz#df26c874c8a8b41ca605efea47b2ad07551013dd" - integrity sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg== - dependencies: - pvtsutils "^1.3.6" - pvutils "^1.1.5" - tslib "^2.8.1" - -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base-x@^3.0.2: - version "3.0.11" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.11.tgz#40d80e2a1aeacba29792ccc6c5354806421287ff" - integrity sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA== - dependencies: - safe-buffer "^5.0.1" - -base-x@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-5.0.1.tgz#16bf35254be1df8aca15e36b7c1dda74b2aa6b03" - integrity sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -binary-extensions@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" - integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== - -bn.js@^4.0.0, bn.js@^4.11.9: - version "4.12.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.3.tgz#2cc2c679188eb35b006f2d0d4710bed8437a769e" - integrity sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g== - -bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: - version "5.2.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.2.tgz#82c09f9ebbb17107cd72cb7fd39bd1f9d0aaa566" - integrity sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw== - -bn.js@^5.2.2: - version "5.2.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.3.tgz#16a9e409616b23fef3ccbedb8d42f13bff80295e" - integrity sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w== - -borsh@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" - integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== - dependencies: - bn.js "^5.2.0" - bs58 "^4.0.0" - text-encoding-utf-8 "^1.0.2" - -brace-expansion@^1.1.7: - version "1.1.12" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" - integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@~3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - dependencies: - fill-range "^7.1.1" - -brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -bs58@^4.0.0, bs58@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - dependencies: - base-x "^3.0.2" - -bs58@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-6.0.0.tgz#a2cda0130558535dd281a2f8697df79caaf425d8" - integrity sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw== - dependencies: - base-x "^5.0.0" - -buffer-from@^1.0.0, buffer-from@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer-layout@^1.2.0, buffer-layout@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" - integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== - -buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -bufferutil@^4.0.1: - version "4.0.9" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.9.tgz#6e81739ad48a95cad45a279588e13e95e24a800a" - integrity sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw== - dependencies: - node-gyp-build "^4.3.0" - -camelcase@^6.0.0, camelcase@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -chai@^4.3.4: - version "4.5.0" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.5.0.tgz#707e49923afdd9b13a8b0b47d33d732d13812fd8" - integrity sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw== - 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.6" - pathval "^1.1.1" - type-detect "^4.1.0" - -chalk@5.6.2, chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - -chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -check-error@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" - integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== - dependencies: - get-func-name "^2.0.2" - -chokidar@3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -commander@15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" - integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== - -commander@^14.0.0: - version "14.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e" - integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== - -commander@^2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -cross-fetch@^3.1.5: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" - integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== - dependencies: - node-fetch "^2.7.0" - -debug@4.3.3: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== - dependencies: - ms "2.1.2" - -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - -deep-eql@^4.1.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.4.tgz#d0d3912865911bb8fac5afb4e3acfa6a28dc72b7" - integrity sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg== - dependencies: - type-detect "^4.0.0" - -delay@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" - integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - -diff@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== - -diff@^3.1.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== - -elliptic@^6.6.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" - integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== - dependencies: - es6-promise "^4.0.3" - -escalade@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - -escape-string-regexp@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eventemitter3@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -eventemitter3@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" - integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - -eyes@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" - integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== - -fast-stable-stringify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" - integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== - -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - dependencies: - to-regex-range "^5.0.1" - -find-up@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-func-name@^2.0.1, get-func-name@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" - integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== - -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -growl@1.10.5: - version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" - integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - -jayson@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.2.0.tgz#b71762393fa40bc9637eaf734ca6f40d3b8c0c93" - integrity sha512-VfJ9t1YLwacIubLhONk0KFeosUBwstRWQ0IRT1KDjEjnVnSOVHC3uwugyV7L0c7R9lpVyrUGT2XWiBA1UTtpyg== - dependencies: - "@types/connect" "^3.4.33" - "@types/node" "^12.12.54" - "@types/ws" "^7.4.4" - commander "^2.20.3" - delay "^5.0.0" - es6-promisify "^5.0.0" - eyes "^0.1.8" - isomorphic-ws "^4.0.1" - json-stringify-safe "^5.0.1" - stream-json "^1.9.1" - uuid "^8.3.2" - ws "^7.5.10" - -js-yaml@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -json5@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -log-symbols@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -loupe@^2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" - integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== - dependencies: - get-func-name "^2.0.1" - -magic-router-sdk@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/magic-router-sdk/-/magic-router-sdk-1.0.10.tgz#cc6dba7f0fe39ec3abafb128f98ab1c618fa7c7b" - integrity sha512-N06E03QfRes2U/04yc1hRUJd24T3dSKAsEozifvwr3vtPxwDaiYsfWCMI14nRWHB24Hf+muvGlK/aSt3IUeA6A== - dependencies: - "@solana/web3.js" "^1.98.2" - bs58 "^6.0.0" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -minimatch@4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-4.2.1.tgz#40d9d511a46bdc4e563c22c3080cde9c0d8299b4" - integrity sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^3.0.4: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.6: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -mkdirp@^0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mocha@^9.0.3: - version "9.2.2" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-9.2.2.tgz#d70db46bdb93ca57402c809333e5a84977a88fb9" - integrity sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g== - 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" - 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: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3, ms@^2.0.0: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -nanoid@3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" - integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== - -node-fetch@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - -node-gyp-build@^4.3.0: - version "4.8.4" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" - integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -pako@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" - integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== - -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - prettier@^2.6.2: version "2.8.8" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== - -pvtsutils@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.6.tgz#ec46e34db7422b9e4fdc5490578c1883657d6001" - integrity sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg== - dependencies: - tslib "^2.8.1" - -pvutils@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.5.tgz#84b0dea4a5d670249aa9800511804ee0b7c2809c" - integrity sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -rpc-websockets@^9.0.2, rpc-websockets@^9.0.4: - version "9.3.1" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.3.1.tgz#d817a59d812f68bae1215740a3f78fcdd3813698" - integrity sha512-bY6a+i/lEtBJ/mUxwsCTgevoV1P0foXTVA7UoThzaIWbM+3NDqorf8NBWs5DmqKTFeA1IoNzgvkWjFCPgnzUiQ== - dependencies: - "@swc/helpers" "^0.5.11" - "@types/uuid" "^8.3.4" - "@types/ws" "^8.2.2" - buffer "^6.0.3" - eventemitter3 "^5.0.1" - uuid "^8.3.2" - ws "^8.5.0" - optionalDependencies: - bufferutil "^4.0.1" - utf-8-validate "^5.0.2" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -serialize-javascript@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== - dependencies: - randombytes "^2.1.0" - -source-map-support@^0.5.6: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -stream-chain@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/stream-chain/-/stream-chain-2.2.5.tgz#b30967e8f14ee033c5b9a19bbe8a2cba90ba0d09" - integrity sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA== - -stream-json@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/stream-json/-/stream-json-1.9.1.tgz#e3fec03e984a503718946c170db7d74556c2a187" - integrity sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw== - dependencies: - stream-chain "^2.2.5" - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -strip-json-comments@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -superstruct@^0.15.4: - version "0.15.5" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" - integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== - -superstruct@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-2.0.2.tgz#3f6d32fbdc11c357deff127d591a39b996300c54" - integrity sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A== - -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -text-encoding-utf-8@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" - integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -ts-mocha@^10.0.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-10.1.0.tgz#17a1c055f5f7733fd82447c4420740db87221bc8" - integrity sha512-T0C0Xm3/WqCuF2tpa0GNGESTBoKZaiqdUP8guNv4ZY316AFXlyidnrzQ1LUrCT0Wb1i3J0zFTgOh/55Un44WdA== - dependencies: - ts-node "7.0.1" - optionalDependencies: - tsconfig-paths "^3.5.0" - -ts-node@7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-7.0.1.tgz#9562dc2d1e6d248d24bc55f773e3f614337d9baf" - integrity sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw== - dependencies: - arrify "^1.0.0" - buffer-from "^1.1.0" - diff "^3.1.0" - make-error "^1.1.1" - minimist "^1.2.0" - mkdirp "^0.5.1" - source-map-support "^0.5.6" - yn "^2.0.0" - -tsconfig-paths@^3.5.0: - version "3.15.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" - integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.2" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tslib@^2.8.0, tslib@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" - integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -type-detect@^4.0.0, type-detect@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.1.0.tgz#deb2453e8f08dcae7ae98c626b13dddb0155906c" - integrity sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw== - -typescript@^5.3.0, typescript@^5.7.3: - version "5.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" - integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== - -undici-types@^8.10.2: - version "8.10.2" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" - integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== - -undici-types@~6.21.0: - version "6.21.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" - integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== - -undici-types@~7.16.0: - version "7.16.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" - integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== - -utf-8-validate@^5.0.2: - version "5.0.10" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" - integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== - dependencies: - node-gyp-build "^4.3.0" - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which@2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -workerpool@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.0.tgz#827d93c9ba23ee2019c3ffaff5c27fccea289e8b" - integrity sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A== - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -ws@^7.5.10: - version "7.5.10" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" - integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== - -ws@^8.21.3: - version "8.21.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" - integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== - -ws@^8.5.0: - version "8.18.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" - integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-unparser@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yn@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" - integrity sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== diff --git a/ephemeral-account-chats/anchor/README.md b/ephemeral-account-chats/anchor/README.md index 9e62da95..4922af66 100644 --- a/ephemeral-account-chats/anchor/README.md +++ b/ephemeral-account-chats/anchor/README.md @@ -28,7 +28,7 @@ yarn yarn build ``` -Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): +Run the Rust test suite in `tests-magicsvm-rs/` in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash yarn test @@ -38,4 +38,4 @@ MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no va network. The suite creates and delegates profiles, manages a conversation and its messages, then closes the conversation and profiles. -A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. +`yarn test` runs `cargo +stable test`: MagicSVM needs a newer Rust than the 1.89 toolchain used for program builds. diff --git a/ephemeral-account-chats/anchor/package.json b/ephemeral-account-chats/anchor/package.json index 5bf301fd..4cca1cf6 100644 --- a/ephemeral-account-chats/anchor/package.json +++ b/ephemeral-account-chats/anchor/package.json @@ -4,24 +4,10 @@ "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", "build": "anchor build --ignore-keys", - "test": "npx ts-mocha -p ./tsconfig.json -t 1000000 'tests/**/*.ts'", - "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture" - }, - "dependencies": { - "@coral-xyz/anchor": "^0.32.1", - "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3", - "@magicblock-labs/magicsvm": "0.2.0" + "test": "cargo +stable test --manifest-path tests-magicsvm-rs/Cargo.toml" }, "devDependencies": { - "@types/bn.js": "^5.1.0", - "@types/chai": "^4.3.0", - "@types/mocha": "^9.0.0", - "chai": "^4.3.4", - "mocha": "^9.0.3", - "prettier": "^2.6.2", - "ts-mocha": "^10.0.0", - "typescript": "^5.7.3", - "@magicblock-labs/test-utils": "link:../../test-utils/ts" + "prettier": "^2.6.2" }, "packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447" } diff --git a/ephemeral-account-chats/anchor/tests-magicsvm-rs/rust-toolchain.toml b/ephemeral-account-chats/anchor/tests-magicsvm-rs/rust-toolchain.toml deleted file mode 100644 index 5d56faf9..00000000 --- a/ephemeral-account-chats/anchor/tests-magicsvm-rs/rust-toolchain.toml +++ /dev/null @@ -1,2 +0,0 @@ -[toolchain] -channel = "nightly" diff --git a/ephemeral-account-chats/anchor/tests/ephemeral-account-chats.ts b/ephemeral-account-chats/anchor/tests/ephemeral-account-chats.ts deleted file mode 100644 index 26d144fe..00000000 --- a/ephemeral-account-chats/anchor/tests/ephemeral-account-chats.ts +++ /dev/null @@ -1,380 +0,0 @@ -import * as anchor from "@coral-xyz/anchor"; -import { expect } from "chai"; -import { Keypair, PublicKey, SystemProgram } from "@solana/web3.js"; -import { - airdropOrThrow, - bootAnchorSvm, - DELEGATION_PROGRAM_ID, - requireAccount, - sendExpectingFailure, - sendSvmIx, -} from "@magicblock-labs/test-utils"; -import { EphemeralAccountChats } from "../target/types/ephemeral_account_chats"; - -function generateName(): string { - const randomNumber = Math.floor(Math.random() * 10000000000); - return randomNumber.toString().padStart(10, "0"); -} - -function conversationSize(messageCount: number): number { - return 8 + 1 + 3 * 4 + 2 * 32 + messageCount * 324; -} - -const MAX_MESSAGE_COUNT = 5; - -describe("ephemeral-account-chats magicsvm", () => { - const userAKp = Keypair.generate(); - const userBKp = Keypair.generate(); - const { - svm, - payer, - program, - validator: validatorStr, - } = bootAnchorSvm({ - fromDir: __dirname, - programName: "ephemeral_account_chats", - payer: userAKp, - airdropLamports: BigInt(anchor.web3.LAMPORTS_PER_SOL), - }); - const userA = new anchor.Wallet(payer); - const userB = new anchor.Wallet(userBKp); - const validator = new PublicKey(validatorStr); - - const nameA = generateName(); - const nameB = generateName(); - - const [profileAPda] = PublicKey.findProgramAddressSync( - [Buffer.from("profile"), Buffer.from(nameA)], - program.programId, - ); - const [profileBPda] = PublicKey.findProgramAddressSync( - [Buffer.from("profile"), Buffer.from(nameB)], - program.programId, - ); - const [conversationPda] = PublicKey.findProgramAddressSync( - [Buffer.from("conversation"), Buffer.from(nameA), Buffer.from(nameB)], - program.programId, - ); - - async function instruction(builder: { - instruction(): Promise[2]>; - }): Promise[2]> { - return builder.instruction(); - } - - before(() => { - airdropOrThrow( - svm, - userB.publicKey, - BigInt(anchor.web3.LAMPORTS_PER_SOL), - "airdrop user B", - ); - - console.log("Program ID: ", program.programId.toBase58()); - console.log("Validator: ", validator.toBase58()); - console.log("User A: ", userA.publicKey.toBase58()); - console.log("User B: ", userB.publicKey.toBase58()); - console.log("Profile A: ", profileAPda.toBase58()); - console.log("Profile B: ", profileBPda.toBase58()); - console.log("Conversation: ", conversationPda.toBase58()); - }); - - it("creates profiles", async () => { - sendSvmIx( - svm, - [userAKp], - await instruction( - program.methods.createProfile(nameA).accountsPartial({ - authority: userA.publicKey, - profile: profileAPda, - systemProgram: SystemProgram.programId, - }), - ), - "base", - ); - sendSvmIx( - svm, - [userBKp], - await instruction( - program.methods.createProfile(nameB).accountsPartial({ - authority: userB.publicKey, - profile: profileBPda, - systemProgram: SystemProgram.programId, - }), - ), - "base", - ); - - const profileA = program.coder.accounts.decode( - "profile", - Buffer.from(requireAccount(svm, profileAPda, "base").data), - ); - const profileB = program.coder.accounts.decode( - "profile", - Buffer.from(requireAccount(svm, profileBPda, "base").data), - ); - expect(profileA.handle).to.equal(nameA); - expect(profileB.handle).to.equal(nameB); - }); - - it("tops up profiles", async () => { - const profileABefore = requireAccount(svm, profileAPda, "base"); - const profileALamportsBefore = Number(profileABefore.lamports); - - sendSvmIx( - svm, - [userAKp], - await instruction( - program.methods - .topUpProfile(new anchor.BN(0.05 * anchor.web3.LAMPORTS_PER_SOL)) - .accounts({ - authority: userA.publicKey, - profile: profileAPda, - systemProgram: SystemProgram.programId, - }), - ), - "base", - ); - - const profileA = requireAccount(svm, profileAPda, "base"); - expect(Number(profileA.lamports)).to.equal( - 0.05 * anchor.web3.LAMPORTS_PER_SOL + profileALamportsBefore, - ); - }); - - it("delegates profiles", async () => { - sendSvmIx( - svm, - [userAKp], - await instruction( - program.methods.delegateProfile(validator).accounts({ - authority: userA.publicKey, - profile: profileAPda, - }), - ), - "base", - ); - sendSvmIx( - svm, - [userBKp], - await instruction( - program.methods.delegateProfile(validator).accounts({ - authority: userB.publicKey, - profile: profileBPda, - }), - ), - "base", - ); - - const profileA = requireAccount(svm, profileAPda, "base"); - const profileB = requireAccount(svm, profileBPda, "base"); - expect(profileA.programAddress.toString()).to.equal( - DELEGATION_PROGRAM_ID.toBase58(), - ); - expect(profileB.programAddress.toString()).to.equal( - DELEGATION_PROGRAM_ID.toBase58(), - ); - }); - - it("creates a conversation", async () => { - sendSvmIx( - svm, - [userAKp], - await instruction( - program.methods.createConversation().accounts({ - authority: userA.publicKey, - profileOwner: profileAPda, - profileOther: profileBPda, - conversation: conversationPda, - systemProgram: SystemProgram.programId, - }), - ), - "ephemeral", - ); - - const conversationAccount = requireAccount( - svm, - conversationPda, - "ephemeral", - ); - const conversation = program.coder.accounts.decode( - "conversation", - Buffer.from(conversationAccount.data), - ); - expect(conversation.messages.length).to.equal(0); - expect(conversationAccount.data.length).to.equal(conversationSize(0)); - }); - - it("extends a conversation", async () => { - sendSvmIx( - svm, - [userAKp], - await instruction( - program.methods.extendConversation(MAX_MESSAGE_COUNT).accountsPartial({ - authority: userA.publicKey, - profileSender: profileAPda, - profileOther: profileBPda, - conversation: conversationPda, - }), - ), - "ephemeral", - ); - - const conversation = requireAccount(svm, conversationPda, "ephemeral"); - expect(conversation.data.length).to.equal( - conversationSize(MAX_MESSAGE_COUNT), - ); - }); - - it("appends messages to a conversation", async () => { - const nMessages = MAX_MESSAGE_COUNT; - for (let i = 0; i < nMessages; i++) { - if (i % 2 === 0) { - sendSvmIx( - svm, - [userAKp], - await instruction( - program.methods - .appendMessage(`Hello ${i} from user A!`) - .accountsPartial({ - authority: userA.publicKey, - profileOwner: profileAPda, - profileOther: profileBPda, - conversation: conversationPda, - }), - ), - "ephemeral", - ); - } else { - sendSvmIx( - svm, - [userBKp], - await instruction( - program.methods - .appendMessage(`Hello ${i} from user B!`) - .accountsPartial({ - authority: userB.publicKey, - profileOwner: profileAPda, - profileOther: profileBPda, - conversation: conversationPda, - }), - ), - "ephemeral", - ); - } - } - - const conversationAccount = requireAccount( - svm, - conversationPda, - "ephemeral", - ); - const conversation = program.coder.accounts.decode( - "conversation", - Buffer.from(conversationAccount.data), - ); - expect(conversation.messages.length).to.equal(nMessages); - - const failed = sendExpectingFailure( - svm, - [userAKp], - await instruction( - program.methods - .appendMessage( - "Hello world, appending another message, this should be failed!", - ) - .accountsPartial({ - authority: userA.publicKey, - profileOwner: profileAPda, - profileOther: profileBPda, - conversation: conversationPda, - }), - ), - "ephemeral", - ); - const expectedError = program.idl.errors.find( - (e) => - e.name === "conversationCapacityExceeded" || - e.name === "ConversationCapacityExceeded", - ); - expect(failed.meta().logs().join("\n")).to.include(expectedError?.msg); - }); - - it("closes a conversation", async () => { - sendSvmIx( - svm, - [userAKp], - await instruction( - program.methods.closeConversation().accounts({ - authority: userA.publicKey, - profileOwner: profileAPda, - profileOther: profileBPda, - conversation: conversationPda, - }), - ), - "ephemeral", - ); - }); - - it("undelegates profiles", async () => { - sendSvmIx( - svm, - [userAKp], - await instruction( - program.methods.undelegateProfile().accountsPartial({ - authority: userA.publicKey, - profile: profileAPda, - }), - ), - "ephemeral", - ); - sendSvmIx( - svm, - [userBKp], - await instruction( - program.methods.undelegateProfile().accountsPartial({ - authority: userB.publicKey, - profile: profileBPda, - }), - ), - "ephemeral", - ); - - const profileA = requireAccount(svm, profileAPda, "base"); - const profileB = requireAccount(svm, profileBPda, "base"); - expect(profileA.programAddress.toString()).to.equal( - program.programId.toBase58(), - ); - expect(profileB.programAddress.toString()).to.equal( - program.programId.toBase58(), - ); - }); - - it("closes profiles and refunds user A", async () => { - sendSvmIx( - svm, - [userAKp], - await instruction( - program.methods.closeProfile().accounts({ - authority: userA.publicKey, - profile: profileAPda, - }), - ), - "base", - ); - sendSvmIx( - svm, - [userBKp], - await instruction( - program.methods.closeProfile().accounts({ - authority: userB.publicKey, - profile: profileBPda, - }), - ), - "base", - ); - - expect(svm.getAccount(profileAPda).exists).to.equal(false); - expect(svm.getAccount(profileBPda).exists).to.equal(false); - }); -}); diff --git a/ephemeral-account-chats/anchor/tsconfig.json b/ephemeral-account-chats/anchor/tsconfig.json deleted file mode 100644 index 684e9db8..00000000 --- a/ephemeral-account-chats/anchor/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "compilerOptions": { - "strict": true, - "types": ["mocha", "chai"], - "typeRoots": ["./node_modules/@types"], - "lib": ["es2020"], - "module": "commonjs", - "target": "es2020", - "esModuleInterop": true, - "skipLibCheck": true - } -} diff --git a/ephemeral-account-chats/anchor/yarn.lock b/ephemeral-account-chats/anchor/yarn.lock index 9cb96790..05a48e23 100644 --- a/ephemeral-account-chats/anchor/yarn.lock +++ b/ephemeral-account-chats/anchor/yarn.lock @@ -2,1884 +2,7 @@ # yarn lockfile v1 -"@babel/runtime@^7.25.0": - version "7.29.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.2.tgz#9a6e2d05f4b6692e1801cd4fb176ad823930ed5e" - integrity sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g== - -"@coral-xyz/anchor-errors@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" - integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== - -"@coral-xyz/anchor@0.32.1", "@coral-xyz/anchor@^0.32.1": - version "0.32.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" - integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== - dependencies: - "@coral-xyz/anchor-errors" "^0.31.1" - "@coral-xyz/borsh" "^0.31.1" - "@noble/hashes" "^1.3.1" - "@solana/web3.js" "^1.69.0" - bn.js "^5.1.2" - bs58 "^4.0.1" - buffer-layout "^1.2.2" - camelcase "^6.3.0" - cross-fetch "^3.1.5" - eventemitter3 "^4.0.7" - pako "^2.0.3" - superstruct "^0.15.4" - toml "^3.0.0" - -"@coral-xyz/borsh@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.31.1.tgz#5328e1e0921b75d7f4a62dd3f61885a938bc7241" - integrity sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw== - dependencies: - bn.js "^5.1.2" - buffer-layout "^1.2.0" - -"@magicblock-labs/ephemeral-rollups-sdk@0.14.3": - version "0.14.3" - resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.14.3.tgz#536c215d1daefdbcfa82a79304b08f5014405c58" - integrity sha512-CoByiXHLLS+l7Ojl6XJuYypP/k08ymFkab8+Gh/HCv5Gn2oC4VkwszEQoTDnKo++8Oxbqr9YVGzAMUW4Km7cLA== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@phala/dcap-qvl" "^0.3.9" - "@solana/web3.js" "^1.98.0" - bs58 "^6.0.0" - rpc-websockets "^9.0.4" - tweetnacl "^1.0.3" - typescript "^5.3.0" - -"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" - integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== - -"@magicblock-labs/magicsvm-darwin-x64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" - integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== - -"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" - integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== - -"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" - integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== - -"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" - integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== - -"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" - integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== - -"@magicblock-labs/magicsvm@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" - integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== - dependencies: - "@solana/web3.js" "3.0.0-rc.3" - optionalDependencies: - "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" - "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" - -"@magicblock-labs/test-utils@link:../../test-utils/ts": - version "0.0.0" - uid "" - -"@noble/curves@^1.4.2": - version "1.9.7" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" - integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== - dependencies: - "@noble/hashes" "1.8.0" - -"@noble/hashes@1.8.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" - integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== - -"@peculiar/asn1-schema@^2.3.13", "@peculiar/asn1-schema@^2.6.0": - version "2.6.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.6.0.tgz#0dca1601d5b0fed2a72fed7a5f1d0d7dbe3a6f82" - integrity sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg== - dependencies: - asn1js "^3.0.6" - pvtsutils "^1.3.6" - tslib "^2.8.1" - -"@peculiar/asn1-x509@^2.3.13": - version "2.6.1" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.6.1.tgz#4e8995659e16178e0e90fe90519aa269045af262" - integrity sha512-O9jT5F1A2+t3r7C4VT7LYGXqkGLK7Kj1xFpz7U0isPrubwU5PbDoyYtx6MiGst29yq7pXN5vZbQFKRCP+lLZlA== - dependencies: - "@peculiar/asn1-schema" "^2.6.0" - asn1js "^3.0.6" - pvtsutils "^1.3.6" - tslib "^2.8.1" - -"@phala/dcap-qvl@^0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@phala/dcap-qvl/-/dcap-qvl-0.3.9.tgz#34da2506c31954cd290afb5a46146cd52ae24481" - integrity sha512-s/4gAFVq1DRhYkuerDR9WAlX8tkCpFTHTVpWnWlrigj5la2X5OtQl9Y7PzwcqY4h0fc25yqZrcRH3AZpzB1qOw== - dependencies: - "@peculiar/asn1-schema" "^2.3.13" - "@peculiar/asn1-x509" "^2.3.13" - asn1.js "^5.4.1" - bn.js "^5.2.2" - buffer "^6.0.3" - elliptic "^6.6.1" - hash.js "^1.1.7" - node-fetch "^2.7.0" - -"@solana-program/address-lookup-table@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" - integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== - -"@solana-program/compute-budget@^0.18.0": - version "0.18.1" - resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" - integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== - -"@solana-program/loader-v3@^0.6.0": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" - integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== - -"@solana-program/stake@^0.9.0": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" - integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== - -"@solana-program/system@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" - integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== - -"@solana/accounts@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" - integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/addresses@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" - integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" - integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/buffer-layout@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" - integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== - dependencies: - buffer "~6.0.3" - -"@solana/codecs-core@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-2.3.0.tgz#6bf2bb565cb1ae880f8018635c92f751465d8695" - integrity sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw== - dependencies: - "@solana/errors" "2.3.0" - -"@solana/codecs-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" - integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/codecs-data-structures@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" - integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" - integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@^2.1.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" - integrity sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg== - dependencies: - "@solana/codecs-core" "2.3.0" - "@solana/errors" "2.3.0" - -"@solana/codecs-strings@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" - integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" - integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/options" "8.3.0" - -"@solana/errors@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.3.0.tgz#4ac9380343dbeffb9dffbcb77c28d0e457c5fa31" - integrity sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ== - dependencies: - chalk "^5.4.1" - commander "^14.0.0" - -"@solana/errors@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" - integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== - dependencies: - chalk "5.6.2" - commander "15.0.0" - -"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" - integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== - -"@solana/fixed-points@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" - integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/functional@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" - integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== - -"@solana/instruction-plans@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" - integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/instructions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" - integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/keys@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" - integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/kit@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" - integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/plugin-core" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/program-client-core" "8.3.0" - "@solana/programs" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/subscribable" "8.3.0" - "@solana/sysvars" "8.3.0" - "@solana/transaction-confirmation" "8.3.0" - "@solana/transaction-introspection" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/nominal-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" - integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== - -"@solana/offchain-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" - integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/options@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" - integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/plugin-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" - integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== - -"@solana/plugin-interfaces@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" - integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/program-client-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" - integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/signers" "8.3.0" - -"@solana/programs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" - integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/promises@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" - integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== - -"@solana/rpc-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" - integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-parsed-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" - integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== - -"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" - integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/rpc-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" - integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" - integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-subscriptions-channel-websocket@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" - integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/subscribable" "8.3.0" - ws "^8.21.3" - -"@solana/rpc-subscriptions-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" - integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" - integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions-api" "8.3.0" - "@solana/rpc-subscriptions-channel-websocket" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-transformers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" - integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/rpc-transport-http@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" - integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - undici-types "^8.10.2" - -"@solana/rpc-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" - integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/rpc@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" - integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-transport-http" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/signers@8.3.0", "@solana/signers@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" - integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/subscribable@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" - integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/sysvars@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" - integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transaction-confirmation@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" - integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-introspection@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" - integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" - integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transactions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" - integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - -"@solana/web3.js@3.0.0-rc.3": - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" - integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@solana-program/address-lookup-table" "^0.14.0" - "@solana-program/compute-budget" "^0.18.0" - "@solana-program/loader-v3" "^0.6.0" - "@solana-program/stake" "^0.9.0" - "@solana-program/system" "^0.14.0" - "@solana/assertions" "^8.2.0" - "@solana/fast-stable-stringify" "^8.2.0" - "@solana/kit" "^8.2.0" - "@solana/rpc-spec-types" "^8.2.0" - "@solana/signers" "^8.2.0" - -"@solana/web3.js@^1.69.0", "@solana/web3.js@^1.98.0": - version "1.98.4" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" - integrity sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw== - 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.1.0" - agentkeepalive "^4.5.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.1.1" - node-fetch "^2.7.0" - rpc-websockets "^9.0.2" - superstruct "^2.0.2" - -"@swc/helpers@^0.5.11": - version "0.5.19" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.19.tgz#9a8c8a0bdaecfdfb9b8ae5421c0c8e09246dfee9" - integrity sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA== - dependencies: - tslib "^2.8.0" - -"@types/bn.js@^5.1.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.2.0.tgz#4349b9710e98f9ab3cdc50f1c5e4dcbd8ef29c80" - integrity sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q== - dependencies: - "@types/node" "*" - -"@types/chai@^4.3.0": - version "4.3.20" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.20.tgz#cb291577ed342ca92600430841a00329ba05cecc" - integrity sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ== - -"@types/connect@^3.4.33": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" - integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== - dependencies: - "@types/node" "*" - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== - -"@types/mocha@^9.0.0": - version "9.1.1" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-9.1.1.tgz#e7c4f1001eefa4b8afbd1eee27a237fee3bf29c4" - integrity sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw== - -"@types/node@*": - version "25.5.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-25.5.0.tgz#5c99f37c443d9ccc4985866913f1ed364217da31" - integrity sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw== - dependencies: - undici-types "~7.18.0" - -"@types/node@^12.12.54": - version "12.20.55" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - -"@types/uuid@^10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-10.0.0.tgz#e9c07fe50da0f53dc24970cca94d619ff03f6f6d" - integrity sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ== - -"@types/ws@^7.4.4": - version "7.4.7" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - dependencies: - "@types/node" "*" - -"@types/ws@^8.2.2": - version "8.18.1" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" - integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== - dependencies: - "@types/node" "*" - -"@ungap/promise-all-settled@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" - integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== - -agentkeepalive@^4.5.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" - integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== - dependencies: - humanize-ms "^1.2.1" - -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -arrify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== - -asn1.js@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1js@^3.0.6: - version "3.0.7" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.7.tgz#15f1f2f59e60f80d5b43ef14047a294a969f824f" - integrity sha512-uLvq6KJu04qoQM6gvBfKFjlh6Gl0vOKQuR5cJMDHQkmwfMOQeN3F3SHCv9SNYSL+CRoHvOGFfllDlVz03GQjvQ== - dependencies: - pvtsutils "^1.3.6" - pvutils "^1.1.3" - tslib "^2.8.1" - -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base-x@^3.0.2: - version "3.0.11" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.11.tgz#40d80e2a1aeacba29792ccc6c5354806421287ff" - integrity sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA== - dependencies: - safe-buffer "^5.0.1" - -base-x@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-5.0.1.tgz#16bf35254be1df8aca15e36b7c1dda74b2aa6b03" - integrity sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -binary-extensions@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" - integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== - -bn.js@^4.0.0, bn.js@^4.11.9: - version "4.12.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.3.tgz#2cc2c679188eb35b006f2d0d4710bed8437a769e" - integrity sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g== - -bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1, bn.js@^5.2.2: - version "5.2.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.3.tgz#16a9e409616b23fef3ccbedb8d42f13bff80295e" - integrity sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w== - -borsh@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" - integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== - dependencies: - bn.js "^5.2.0" - bs58 "^4.0.0" - text-encoding-utf-8 "^1.0.2" - -brace-expansion@^1.1.7: - version "1.1.12" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" - integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@~3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - dependencies: - fill-range "^7.1.1" - -brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -bs58@^4.0.0, bs58@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - dependencies: - base-x "^3.0.2" - -bs58@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-6.0.0.tgz#a2cda0130558535dd281a2f8697df79caaf425d8" - integrity sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw== - dependencies: - base-x "^5.0.0" - -buffer-from@^1.0.0, buffer-from@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer-layout@^1.2.0, buffer-layout@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" - integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== - -buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -bufferutil@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.1.0.tgz#a4623541dd23867626bb08a051ec0d2ec0b70294" - integrity sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw== - dependencies: - node-gyp-build "^4.3.0" - -camelcase@^6.0.0, camelcase@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -chai@^4.3.4: - version "4.5.0" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.5.0.tgz#707e49923afdd9b13a8b0b47d33d732d13812fd8" - integrity sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw== - 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.6" - pathval "^1.1.1" - type-detect "^4.1.0" - -chalk@5.6.2, chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - -chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -check-error@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" - integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== - dependencies: - get-func-name "^2.0.2" - -chokidar@3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -commander@15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" - integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== - -commander@^14.0.0: - version "14.0.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.3.tgz#425d79b48f9af82fcd9e4fc1ea8af6c5ec07bbc2" - integrity sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw== - -commander@^2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -cross-fetch@^3.1.5: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" - integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== - dependencies: - node-fetch "^2.7.0" - -debug@4.3.3: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== - dependencies: - ms "2.1.2" - -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - -deep-eql@^4.1.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.4.tgz#d0d3912865911bb8fac5afb4e3acfa6a28dc72b7" - integrity sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg== - dependencies: - type-detect "^4.0.0" - -delay@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" - integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - -diff@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== - -diff@^3.1.0: - version "3.5.1" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.1.tgz#e7fae480379d2e944c68ff0f5e1c29b6e28c77ab" - integrity sha512-Z3u54A8qGyqFOSr2pk0ijYs8mOE9Qz8kTvtKeBI+upoG9j04Sq+oI7W8zAJiQybDcESET8/uIdHzs0p3k4fZlw== - -elliptic@^6.6.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" - integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== - dependencies: - es6-promise "^4.0.3" - -escalade@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - -escape-string-regexp@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eventemitter3@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -eventemitter3@^5.0.1: - version "5.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.4.tgz#a86d66170433712dde814707ac52b5271ceb1feb" - integrity sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw== - -eyes@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" - integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== - -fast-stable-stringify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" - integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== - -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - dependencies: - to-regex-range "^5.0.1" - -find-up@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-func-name@^2.0.1, get-func-name@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" - integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== - -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -growl@1.10.5: - version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" - integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - -jayson@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.3.0.tgz#22eb8f3dcf37a5e893830e5451f32bde6d1bde4d" - integrity sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ== - dependencies: - "@types/connect" "^3.4.33" - "@types/node" "^12.12.54" - "@types/ws" "^7.4.4" - commander "^2.20.3" - delay "^5.0.0" - es6-promisify "^5.0.0" - eyes "^0.1.8" - isomorphic-ws "^4.0.1" - json-stringify-safe "^5.0.1" - stream-json "^1.9.1" - uuid "^8.3.2" - ws "^7.5.10" - -js-yaml@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -json5@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -log-symbols@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -loupe@^2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" - integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== - dependencies: - get-func-name "^2.0.1" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -minimatch@4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-4.2.1.tgz#40d9d511a46bdc4e563c22c3080cde9c0d8299b4" - integrity sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^3.0.4: - version "3.1.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.5.tgz#580c88f8d5445f2bd6aa8f3cadefa0de79fbd69e" - integrity sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.6: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -mkdirp@^0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mocha@^9.0.3: - version "9.2.2" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-9.2.2.tgz#d70db46bdb93ca57402c809333e5a84977a88fb9" - integrity sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g== - 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" - 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: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3, ms@^2.0.0: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -nanoid@3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" - integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== - -node-fetch@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - -node-gyp-build@^4.3.0: - version "4.8.4" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" - integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -pako@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" - integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== - -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - prettier@^2.6.2: version "2.8.8" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== - -pvtsutils@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.6.tgz#ec46e34db7422b9e4fdc5490578c1883657d6001" - integrity sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg== - dependencies: - tslib "^2.8.1" - -pvutils@^1.1.3: - version "1.1.5" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.5.tgz#84b0dea4a5d670249aa9800511804ee0b7c2809c" - integrity sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -rpc-websockets@^9.0.2, rpc-websockets@^9.0.4: - version "9.3.5" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.3.5.tgz#9adb87514cb219434d67b7d3f455e5c132aff956" - integrity sha512-4mAmr+AEhPYJ9TmDtxF3r3ZcbWy7W8kvZ4PoZYw/Xgp2J7WixjwTgiQZsoTDvch5nimmg3Ay6/0Kuh9oIvVs9A== - dependencies: - "@swc/helpers" "^0.5.11" - "@types/uuid" "^10.0.0" - "@types/ws" "^8.2.2" - buffer "^6.0.3" - eventemitter3 "^5.0.1" - uuid "^11.0.0" - ws "^8.5.0" - optionalDependencies: - bufferutil "^4.0.1" - utf-8-validate "^6.0.0" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -serialize-javascript@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== - dependencies: - randombytes "^2.1.0" - -source-map-support@^0.5.6: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -stream-chain@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/stream-chain/-/stream-chain-2.2.5.tgz#b30967e8f14ee033c5b9a19bbe8a2cba90ba0d09" - integrity sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA== - -stream-json@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/stream-json/-/stream-json-1.9.1.tgz#e3fec03e984a503718946c170db7d74556c2a187" - integrity sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw== - dependencies: - stream-chain "^2.2.5" - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -strip-json-comments@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -superstruct@^0.15.4: - version "0.15.5" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" - integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== - -superstruct@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-2.0.2.tgz#3f6d32fbdc11c357deff127d591a39b996300c54" - integrity sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A== - -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -text-encoding-utf-8@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" - integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -ts-mocha@^10.0.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-10.1.0.tgz#17a1c055f5f7733fd82447c4420740db87221bc8" - integrity sha512-T0C0Xm3/WqCuF2tpa0GNGESTBoKZaiqdUP8guNv4ZY316AFXlyidnrzQ1LUrCT0Wb1i3J0zFTgOh/55Un44WdA== - dependencies: - ts-node "7.0.1" - optionalDependencies: - tsconfig-paths "^3.5.0" - -ts-node@7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-7.0.1.tgz#9562dc2d1e6d248d24bc55f773e3f614337d9baf" - integrity sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw== - dependencies: - arrify "^1.0.0" - buffer-from "^1.1.0" - diff "^3.1.0" - make-error "^1.1.1" - minimist "^1.2.0" - mkdirp "^0.5.1" - source-map-support "^0.5.6" - yn "^2.0.0" - -tsconfig-paths@^3.5.0: - version "3.15.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" - integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.2" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tslib@^2.8.0, tslib@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" - integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -type-detect@^4.0.0, type-detect@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.1.0.tgz#deb2453e8f08dcae7ae98c626b13dddb0155906c" - integrity sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw== - -typescript@^5.3.0, typescript@^5.7.3: - version "5.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" - integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== - -undici-types@^8.10.2: - version "8.10.2" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" - integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== - -undici-types@~7.18.0: - version "7.18.2" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.18.2.tgz#29357a89e7b7ca4aef3bf0fd3fd0cd73884229e9" - integrity sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w== - -utf-8-validate@^6.0.0: - version "6.0.6" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-6.0.6.tgz#8a842c9b15af3f6323a3d5ed5eb9e61d208d8c22" - integrity sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA== - dependencies: - node-gyp-build "^4.3.0" - -uuid@^11.0.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.1.0.tgz#9549028be1753bb934fc96e2bca09bb4105ae912" - integrity sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A== - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which@2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -workerpool@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.0.tgz#827d93c9ba23ee2019c3ffaff5c27fccea289e8b" - integrity sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A== - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -ws@^7.5.10: - version "7.5.10" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" - integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== - -ws@^8.21.3: - version "8.21.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" - integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== - -ws@^8.5.0: - version "8.19.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.19.0.tgz#ddc2bdfa5b9ad860204f5a72a4863a8895fd8c8b" - integrity sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-unparser@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yn@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" - integrity sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== diff --git a/magic-actions/anchor/README.md b/magic-actions/anchor/README.md index 094832b2..da4dfbc7 100644 --- a/magic-actions/anchor/README.md +++ b/magic-actions/anchor/README.md @@ -28,7 +28,7 @@ yarn yarn build ``` -Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): +Run the Rust test suite in `tests-magicsvm-rs/` in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash yarn test @@ -38,4 +38,4 @@ MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no va network. The suite checks counter delegation, escrow and leaderboard actions, invalid account rejections, undelegation, and escrow closure. -A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. +`yarn test` runs `cargo +stable test`: MagicSVM needs a newer Rust than the 1.89 toolchain used for program builds. diff --git a/magic-actions/anchor/migrations/deploy.ts b/magic-actions/anchor/migrations/deploy.ts deleted file mode 100644 index 439431ec..00000000 --- a/magic-actions/anchor/migrations/deploy.ts +++ /dev/null @@ -1,12 +0,0 @@ -// Migrations are an early feature. Currently, they're nothing more than this -// single deploy script that's invoked from the CLI, injecting a provider -// configured from the workspace's Anchor.toml. - -import * as anchor from "@coral-xyz/anchor"; - -module.exports = async function (provider: anchor.AnchorProvider) { - // Configure client to use the provider. - anchor.setProvider(provider); - - // Add your deploy script here. -}; diff --git a/magic-actions/anchor/package.json b/magic-actions/anchor/package.json index 5604371d..094f3247 100644 --- a/magic-actions/anchor/package.json +++ b/magic-actions/anchor/package.json @@ -4,26 +4,10 @@ "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", "build": "anchor build --ignore-keys", - "test": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests/magic-actions.ts", - "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture" - }, - "dependencies": { - "@coral-xyz/anchor": "^0.32.1", - "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3", - "@magicblock-labs/magicsvm": "0.2.0", - "@solana/web3.js": "^1.98.2", - "magic-router-sdk": "^1.0.8" + "test": "cargo +stable test --manifest-path tests-magicsvm-rs/Cargo.toml" }, "devDependencies": { - "@types/bn.js": "^5.1.0", - "@types/chai": "^4.3.0", - "@types/mocha": "^9.0.0", - "chai": "^4.3.4", - "mocha": "^9.0.3", - "prettier": "^2.6.2", - "ts-mocha": "^10.0.0", - "typescript": "^5.7.3", - "@magicblock-labs/test-utils": "link:../../test-utils/ts" + "prettier": "^2.6.2" }, "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" } diff --git a/magic-actions/anchor/tests/magic-actions.ts b/magic-actions/anchor/tests/magic-actions.ts deleted file mode 100644 index e9c7634a..00000000 --- a/magic-actions/anchor/tests/magic-actions.ts +++ /dev/null @@ -1,233 +0,0 @@ -import * as anchor from "@coral-xyz/anchor"; -import { strict as assert } from "assert"; -import { - createCloseEscrowInstruction, - createTopUpEscrowInstruction, - escrowPdaFromEscrowAuthority, -} from "@magicblock-labs/ephemeral-rollups-sdk"; -import { - accountOwner, - bootAnchorSvm, - DELEGATION_PROGRAM_ID, - isDelegated, - readU64le, - requireAccount, - sendExpectingFailure, - sendSvmIx, -} from "@magicblock-labs/test-utils"; -import { LAMPORTS_PER_SOL, PublicKey } from "@solana/web3.js"; -import { MagicActions } from "../target/types/magic_actions"; - -const COUNTER_SEED = "counter"; -const SEED_LEADERBOARD = "leaderboard"; - -function failedBlob(result: { - err(): unknown; - meta(): { logs(): string[] }; - toString(): string; -}): string { - const logs = result.meta().logs().join("\n"); - const err = JSON.stringify(result.err()); - const raw = `${result.toString()}\n${err}\n${logs}`; - if (/SignatureFailure|signature/i.test(raw)) { - return `signature verification failed\n${raw}`; - } - return raw; -} - -describe("magic-actions-local", () => { - const { svm, payer, program, validator } = bootAnchorSvm({ - fromDir: __dirname, - programName: "magic_actions", - airdropLamports: BigInt(LAMPORTS_PER_SOL) * 10n, - }); - const programId = program.programId; - const [pda] = PublicKey.findProgramAddressSync( - [Buffer.from(COUNTER_SEED)], - programId, - ); - const [leaderboardPda] = PublicKey.findProgramAddressSync( - [Buffer.from(SEED_LEADERBOARD)], - programId, - ); - const escrow = escrowPdaFromEscrowAuthority(payer.publicKey); - const validatorKey = new PublicKey(validator); - - function printCounter(message: string) { - const delegated = isDelegated(svm, pda); - const highScore = readU64le(svm, leaderboardPda, "base"); - - let counterBase = ""; - let counterER = ""; - if (delegated) { - counterBase = ""; - const erInfo = svm.getAccountFor(pda, { target: "ephemeral" }); - counterER = erInfo.exists - ? readU64le(svm, pda, "ephemeral").toString() - : "0"; - } else if (svm.getAccountFor(pda, { target: "base" }).exists) { - counterBase = readU64le(svm, pda, "base").toString(); - counterER = ""; - } - console.log("--------------------------------"); - console.log(`| ${delegated ? "✅ Delegated" : "❌ Not Delegated"}`); - console.log("--------------------------------"); - console.log("| Counter (Base): ", counterBase); - console.log("| Counter (ER): ", counterER); - console.log("| High Score: ", highScore.toString()); - console.log("--------------------------------"); - console.log(message); - } - - it("Initialize Counter", async () => { - const ix = await program.methods - .initialize() - .accounts({ - counter: pda, - user: payer.publicKey, - systemProgram: anchor.web3.SystemProgram.programId, - } as never) - .instruction(); - sendSvmIx(svm, [payer], ix, "base"); - requireAccount(svm, pda, "base", "counter"); - requireAccount(svm, leaderboardPda, "base", "leaderboard"); - assert.equal(readU64le(svm, pda, "base"), 0n); - assert.equal(readU64le(svm, leaderboardPda, "base"), 0n); - printCounter("✅ Initialized"); - }); - - it("Increment Counter on base layer", async () => { - const ix = await program.methods - .increment() - .accounts({ counter: pda }) - .instruction(); - sendSvmIx(svm, [payer], ix, "base"); - assert.equal(readU64le(svm, pda, "base"), 1n); - console.log("✅ Incremented (base)"); - }); - - it("Reject direct leaderboard updates", async () => { - const ix = await program.methods - .updateLeaderboard() - .accounts({ - counter: pda, - escrowAuth: payer.publicKey, - escrow, - }) - .instruction(); - const blob = failedBlob(sendExpectingFailure(svm, [payer], ix, "base")); - assert.match(blob, /signature verification failed|unknown signer/i); - }); - - it("Reject an incorrect counter PDA", async () => { - const invalidEscrow = anchor.web3.Keypair.generate(); - const ix = await program.methods - .updateLeaderboard() - .accounts({ - counter: leaderboardPda, - escrowAuth: payer.publicKey, - escrow: invalidEscrow.publicKey, - }) - .instruction(); - const blob = failedBlob( - sendExpectingFailure(svm, [payer, invalidEscrow], ix, "base"), - ); - assert.match(blob, /Error Code: ConstraintSeeds/); - }); - - it("Reject an incorrect escrow PDA", async () => { - const invalidEscrow = anchor.web3.Keypair.generate(); - const ix = await program.methods - .updateLeaderboard() - .accounts({ - counter: pda, - escrowAuth: payer.publicKey, - escrow: invalidEscrow.publicKey, - }) - .instruction(); - const blob = failedBlob( - sendExpectingFailure(svm, [payer, invalidEscrow], ix, "base"), - ); - assert.match(blob, /Error Code: ConstraintAddress/); - }); - - it("Delegate Counter and create Escrow", async () => { - const remainingAccounts = [ - { pubkey: validatorKey, isSigner: false, isWritable: false }, - ]; - const topUpIx = createTopUpEscrowInstruction( - escrow, - payer.publicKey, - payer.publicKey, - 10000, - ); - const delegateIx = await program.methods - .delegate() - .accounts({ payer: payer.publicKey, pda }) - .remainingAccounts(remainingAccounts) - .instruction(); - sendSvmIx(svm, [payer], [topUpIx, delegateIx], "base"); - - assert.equal( - accountOwner(svm, pda, "base"), - DELEGATION_PROGRAM_ID.toBase58(), - ); - assert.ok(isDelegated(svm, pda)); - assert.equal(readU64le(svm, pda, "ephemeral"), 1n); - const escrowAccount = requireAccount(svm, escrow, "base", "escrow"); - assert.ok(escrowAccount.lamports > 0n); - console.log("✅ Delegated"); - }); - - it("Increment Counter in ER", async () => { - const ix = await program.methods - .increment() - .accounts({ counter: pda }) - .instruction(); - sendSvmIx(svm, [payer], ix, "ephemeral"); - assert.equal(readU64le(svm, pda, "ephemeral"), 2n); - printCounter("✅ Incremented (ER)"); - }); - - it("Update Leaderboard while delegated", async () => { - const ix = await program.methods - .commitAndUpdateLeaderboard() - .accounts({ - payer: payer.publicKey, - programId, - } as never) - .instruction(); - sendSvmIx(svm, [payer], ix, "ephemeral"); - - const highScore = readU64le(svm, leaderboardPda, "base"); - const erCount = readU64le(svm, pda, "ephemeral"); - assert.equal( - highScore, - erCount, - "post-commit magic action must update the base leaderboard from the committed counter", - ); - printCounter("✅ Updated leaderboard while delegated"); - }); - - it("Undelegate Counter", async () => { - const ix = await program.methods - .undelegate() - .accounts({ payer: payer.publicKey }) - .instruction(); - sendSvmIx(svm, [payer], ix, "ephemeral"); - assert.equal(accountOwner(svm, pda, "base"), programId.toBase58()); - assert.equal(readU64le(svm, pda, "base"), 2n); - printCounter("✅ Undelegated"); - }); - - it("Close Escrow", async () => { - const ix = createCloseEscrowInstruction(escrow, payer.publicKey); - sendSvmIx(svm, [payer], ix, "base"); - const escrowAccount = svm.getAccountFor(escrow, { target: "base" }); - assert.ok( - !escrowAccount.exists || escrowAccount.lamports === 0n, - "escrow should be closed", - ); - console.log("✅ Escrow closed"); - }); -}); diff --git a/magic-actions/anchor/tsconfig.json b/magic-actions/anchor/tsconfig.json deleted file mode 100644 index d93d6f9e..00000000 --- a/magic-actions/anchor/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "types": ["mocha", "chai"], - "typeRoots": ["./node_modules/@types"], - "lib": ["es2020"], - "module": "commonjs", - "target": "es2020", - "esModuleInterop": true, - "skipLibCheck": true - } -} diff --git a/magic-actions/anchor/yarn.lock b/magic-actions/anchor/yarn.lock index d9247175..05a48e23 100644 --- a/magic-actions/anchor/yarn.lock +++ b/magic-actions/anchor/yarn.lock @@ -2,1899 +2,7 @@ # yarn lockfile v1 -"@babel/runtime@^7.25.0": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326" - integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== - -"@coral-xyz/anchor-errors@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" - integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== - -"@coral-xyz/anchor@0.32.1", "@coral-xyz/anchor@^0.32.1": - version "0.32.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" - integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== - dependencies: - "@coral-xyz/anchor-errors" "^0.31.1" - "@coral-xyz/borsh" "^0.31.1" - "@noble/hashes" "^1.3.1" - "@solana/web3.js" "^1.69.0" - bn.js "^5.1.2" - bs58 "^4.0.1" - buffer-layout "^1.2.2" - camelcase "^6.3.0" - cross-fetch "^3.1.5" - eventemitter3 "^4.0.7" - pako "^2.0.3" - superstruct "^0.15.4" - toml "^3.0.0" - -"@coral-xyz/borsh@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.31.1.tgz#5328e1e0921b75d7f4a62dd3f61885a938bc7241" - integrity sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw== - dependencies: - bn.js "^5.1.2" - buffer-layout "^1.2.0" - -"@magicblock-labs/ephemeral-rollups-sdk@0.14.3": - version "0.14.3" - resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.14.3.tgz#536c215d1daefdbcfa82a79304b08f5014405c58" - integrity sha512-CoByiXHLLS+l7Ojl6XJuYypP/k08ymFkab8+Gh/HCv5Gn2oC4VkwszEQoTDnKo++8Oxbqr9YVGzAMUW4Km7cLA== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@phala/dcap-qvl" "^0.3.9" - "@solana/web3.js" "^1.98.0" - bs58 "^6.0.0" - rpc-websockets "^9.0.4" - tweetnacl "^1.0.3" - typescript "^5.3.0" - -"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" - integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== - -"@magicblock-labs/magicsvm-darwin-x64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" - integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== - -"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" - integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== - -"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" - integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== - -"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" - integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== - -"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" - integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== - -"@magicblock-labs/magicsvm@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" - integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== - dependencies: - "@solana/web3.js" "3.0.0-rc.3" - optionalDependencies: - "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" - "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" - -"@magicblock-labs/test-utils@link:../../test-utils/ts": - version "0.0.0" - uid "" - -"@noble/curves@^1.4.2": - version "1.9.7" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" - integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== - dependencies: - "@noble/hashes" "1.8.0" - -"@noble/hashes@1.8.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" - integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== - -"@peculiar/asn1-schema@^2.3.13", "@peculiar/asn1-schema@^2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.7.0.tgz#f2dcb25995ce7cac8687ba1039f043e5eff43820" - integrity sha512-W8ZfWzLmQnrcky+eh3tni4IozMdqBDiHWU0N+vve/UGjMaUs8c0L7A2oEdkBXS8rTpWDpK/aoI3DG/L/hxmxPg== - dependencies: - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.6" - tslib "^2.8.1" - -"@peculiar/asn1-x509@^2.3.13": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.7.0.tgz#84793efb7819dbc9526fd6b0a4ccd86f90464b96" - integrity sha512-mUn9RRrkGDnG4ALfunDmzyRW5dg+sWCj/pfnCCqEHYbkGxEpvUt6iVJv8Yw1cyp6SWZ26ZE5oSmI5SqEaen15g== - dependencies: - "@peculiar/asn1-schema" "^2.7.0" - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.6" - tslib "^2.8.1" - -"@peculiar/utils@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@peculiar/utils/-/utils-2.0.3.tgz#a27ca4c4b73652e110f19a7d16d664f458a5528e" - integrity sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ== - dependencies: - tslib "^2.8.1" - -"@phala/dcap-qvl@^0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@phala/dcap-qvl/-/dcap-qvl-0.3.9.tgz#34da2506c31954cd290afb5a46146cd52ae24481" - integrity sha512-s/4gAFVq1DRhYkuerDR9WAlX8tkCpFTHTVpWnWlrigj5la2X5OtQl9Y7PzwcqY4h0fc25yqZrcRH3AZpzB1qOw== - dependencies: - "@peculiar/asn1-schema" "^2.3.13" - "@peculiar/asn1-x509" "^2.3.13" - asn1.js "^5.4.1" - bn.js "^5.2.2" - buffer "^6.0.3" - elliptic "^6.6.1" - hash.js "^1.1.7" - node-fetch "^2.7.0" - -"@solana-program/address-lookup-table@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" - integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== - -"@solana-program/compute-budget@^0.18.0": - version "0.18.1" - resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" - integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== - -"@solana-program/loader-v3@^0.6.0": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" - integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== - -"@solana-program/stake@^0.9.0": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" - integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== - -"@solana-program/system@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" - integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== - -"@solana/accounts@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" - integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/addresses@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" - integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" - integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/buffer-layout@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" - integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== - dependencies: - buffer "~6.0.3" - -"@solana/codecs-core@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-2.3.0.tgz#6bf2bb565cb1ae880f8018635c92f751465d8695" - integrity sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw== - dependencies: - "@solana/errors" "2.3.0" - -"@solana/codecs-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" - integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/codecs-data-structures@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" - integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" - integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@^2.1.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" - integrity sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg== - dependencies: - "@solana/codecs-core" "2.3.0" - "@solana/errors" "2.3.0" - -"@solana/codecs-strings@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" - integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" - integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/options" "8.3.0" - -"@solana/errors@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.3.0.tgz#4ac9380343dbeffb9dffbcb77c28d0e457c5fa31" - integrity sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ== - dependencies: - chalk "^5.4.1" - commander "^14.0.0" - -"@solana/errors@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" - integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== - dependencies: - chalk "5.6.2" - commander "15.0.0" - -"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" - integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== - -"@solana/fixed-points@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" - integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/functional@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" - integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== - -"@solana/instruction-plans@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" - integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/instructions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" - integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/keys@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" - integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/kit@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" - integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/plugin-core" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/program-client-core" "8.3.0" - "@solana/programs" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/subscribable" "8.3.0" - "@solana/sysvars" "8.3.0" - "@solana/transaction-confirmation" "8.3.0" - "@solana/transaction-introspection" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/nominal-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" - integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== - -"@solana/offchain-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" - integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/options@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" - integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/plugin-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" - integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== - -"@solana/plugin-interfaces@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" - integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/program-client-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" - integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/signers" "8.3.0" - -"@solana/programs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" - integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/promises@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" - integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== - -"@solana/rpc-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" - integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-parsed-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" - integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== - -"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" - integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/rpc-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" - integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" - integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-subscriptions-channel-websocket@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" - integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/subscribable" "8.3.0" - ws "^8.21.3" - -"@solana/rpc-subscriptions-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" - integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" - integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions-api" "8.3.0" - "@solana/rpc-subscriptions-channel-websocket" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-transformers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" - integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/rpc-transport-http@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" - integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - undici-types "^8.10.2" - -"@solana/rpc-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" - integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/rpc@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" - integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-transport-http" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/signers@8.3.0", "@solana/signers@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" - integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/subscribable@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" - integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/sysvars@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" - integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transaction-confirmation@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" - integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-introspection@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" - integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" - integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transactions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" - integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - -"@solana/web3.js@3.0.0-rc.3": - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" - integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@solana-program/address-lookup-table" "^0.14.0" - "@solana-program/compute-budget" "^0.18.0" - "@solana-program/loader-v3" "^0.6.0" - "@solana-program/stake" "^0.9.0" - "@solana-program/system" "^0.14.0" - "@solana/assertions" "^8.2.0" - "@solana/fast-stable-stringify" "^8.2.0" - "@solana/kit" "^8.2.0" - "@solana/rpc-spec-types" "^8.2.0" - "@solana/signers" "^8.2.0" - -"@solana/web3.js@^1.69.0", "@solana/web3.js@^1.98.0", "@solana/web3.js@^1.98.2": - version "1.98.4" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" - integrity sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw== - 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.1.0" - agentkeepalive "^4.5.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.1.1" - node-fetch "^2.7.0" - rpc-websockets "^9.0.2" - superstruct "^2.0.2" - -"@swc/helpers@^0.5.11": - version "0.5.17" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.17.tgz#5a7be95ac0f0bf186e7e6e890e7a6f6cda6ce971" - integrity sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A== - dependencies: - tslib "^2.8.0" - -"@types/bn.js@^5.1.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.2.0.tgz#4349b9710e98f9ab3cdc50f1c5e4dcbd8ef29c80" - integrity sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q== - dependencies: - "@types/node" "*" - -"@types/chai@^4.3.0": - version "4.3.20" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.20.tgz#cb291577ed342ca92600430841a00329ba05cecc" - integrity sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ== - -"@types/connect@^3.4.33": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" - integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== - dependencies: - "@types/node" "*" - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== - -"@types/mocha@^9.0.0": - version "9.1.1" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-9.1.1.tgz#e7c4f1001eefa4b8afbd1eee27a237fee3bf29c4" - integrity sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw== - -"@types/node@*": - version "24.10.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.1.tgz#91e92182c93db8bd6224fca031e2370cef9a8f01" - integrity sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ== - dependencies: - undici-types "~7.16.0" - -"@types/node@^12.12.54": - version "12.20.55" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - -"@types/uuid@^8.3.4": - version "8.3.4" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" - integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== - -"@types/ws@^7.4.4": - version "7.4.7" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - dependencies: - "@types/node" "*" - -"@types/ws@^8.2.2": - version "8.18.1" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" - integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== - dependencies: - "@types/node" "*" - -"@ungap/promise-all-settled@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" - integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== - -agentkeepalive@^4.5.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" - integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== - dependencies: - humanize-ms "^1.2.1" - -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -arrify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== - -asn1.js@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1js@^3.0.6: - version "3.0.10" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.10.tgz#df26c874c8a8b41ca605efea47b2ad07551013dd" - integrity sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg== - dependencies: - pvtsutils "^1.3.6" - pvutils "^1.1.5" - tslib "^2.8.1" - -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base-x@^3.0.2: - version "3.0.11" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.11.tgz#40d80e2a1aeacba29792ccc6c5354806421287ff" - integrity sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA== - dependencies: - safe-buffer "^5.0.1" - -base-x@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-5.0.1.tgz#16bf35254be1df8aca15e36b7c1dda74b2aa6b03" - integrity sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -binary-extensions@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" - integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== - -bn.js@^4.0.0, bn.js@^4.11.9: - version "4.12.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.3.tgz#2cc2c679188eb35b006f2d0d4710bed8437a769e" - integrity sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g== - -bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: - version "5.2.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.2.tgz#82c09f9ebbb17107cd72cb7fd39bd1f9d0aaa566" - integrity sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw== - -bn.js@^5.2.2: - version "5.2.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.3.tgz#16a9e409616b23fef3ccbedb8d42f13bff80295e" - integrity sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w== - -borsh@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" - integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== - dependencies: - bn.js "^5.2.0" - bs58 "^4.0.0" - text-encoding-utf-8 "^1.0.2" - -brace-expansion@^1.1.7: - version "1.1.12" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" - integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@~3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - dependencies: - fill-range "^7.1.1" - -brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -bs58@^4.0.0, bs58@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - dependencies: - base-x "^3.0.2" - -bs58@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-6.0.0.tgz#a2cda0130558535dd281a2f8697df79caaf425d8" - integrity sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw== - dependencies: - base-x "^5.0.0" - -buffer-from@^1.0.0, buffer-from@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer-layout@^1.2.0, buffer-layout@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" - integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== - -buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -bufferutil@^4.0.1: - version "4.0.9" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.9.tgz#6e81739ad48a95cad45a279588e13e95e24a800a" - integrity sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw== - dependencies: - node-gyp-build "^4.3.0" - -camelcase@^6.0.0, camelcase@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -chai@^4.3.4: - version "4.5.0" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.5.0.tgz#707e49923afdd9b13a8b0b47d33d732d13812fd8" - integrity sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw== - 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.6" - pathval "^1.1.1" - type-detect "^4.1.0" - -chalk@5.6.2, chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - -chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -check-error@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" - integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== - dependencies: - get-func-name "^2.0.2" - -chokidar@3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -commander@15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" - integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== - -commander@^14.0.0: - version "14.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e" - integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== - -commander@^2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -cross-fetch@^3.1.5: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" - integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== - dependencies: - node-fetch "^2.7.0" - -debug@4.3.3: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== - dependencies: - ms "2.1.2" - -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - -deep-eql@^4.1.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.4.tgz#d0d3912865911bb8fac5afb4e3acfa6a28dc72b7" - integrity sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg== - dependencies: - type-detect "^4.0.0" - -delay@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" - integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - -diff@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== - -diff@^3.1.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== - -elliptic@^6.6.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" - integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== - dependencies: - es6-promise "^4.0.3" - -escalade@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - -escape-string-regexp@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eventemitter3@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -eventemitter3@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" - integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - -eyes@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" - integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== - -fast-stable-stringify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" - integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== - -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - dependencies: - to-regex-range "^5.0.1" - -find-up@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-func-name@^2.0.1, get-func-name@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" - integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== - -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -growl@1.10.5: - version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" - integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - -jayson@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.2.0.tgz#b71762393fa40bc9637eaf734ca6f40d3b8c0c93" - integrity sha512-VfJ9t1YLwacIubLhONk0KFeosUBwstRWQ0IRT1KDjEjnVnSOVHC3uwugyV7L0c7R9lpVyrUGT2XWiBA1UTtpyg== - dependencies: - "@types/connect" "^3.4.33" - "@types/node" "^12.12.54" - "@types/ws" "^7.4.4" - commander "^2.20.3" - delay "^5.0.0" - es6-promisify "^5.0.0" - eyes "^0.1.8" - isomorphic-ws "^4.0.1" - json-stringify-safe "^5.0.1" - stream-json "^1.9.1" - uuid "^8.3.2" - ws "^7.5.10" - -js-yaml@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -json5@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -log-symbols@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -loupe@^2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" - integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== - dependencies: - get-func-name "^2.0.1" - -magic-router-sdk@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/magic-router-sdk/-/magic-router-sdk-1.0.10.tgz#cc6dba7f0fe39ec3abafb128f98ab1c618fa7c7b" - integrity sha512-N06E03QfRes2U/04yc1hRUJd24T3dSKAsEozifvwr3vtPxwDaiYsfWCMI14nRWHB24Hf+muvGlK/aSt3IUeA6A== - dependencies: - "@solana/web3.js" "^1.98.2" - bs58 "^6.0.0" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -minimatch@4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-4.2.1.tgz#40d9d511a46bdc4e563c22c3080cde9c0d8299b4" - integrity sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^3.0.4: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.6: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -mkdirp@^0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mocha@^9.0.3: - version "9.2.2" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-9.2.2.tgz#d70db46bdb93ca57402c809333e5a84977a88fb9" - integrity sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g== - 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" - 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: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3, ms@^2.0.0: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -nanoid@3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" - integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== - -node-fetch@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - -node-gyp-build@^4.3.0: - version "4.8.4" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" - integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -pako@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" - integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== - -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - prettier@^2.6.2: version "2.8.8" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== - -pvtsutils@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.6.tgz#ec46e34db7422b9e4fdc5490578c1883657d6001" - integrity sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg== - dependencies: - tslib "^2.8.1" - -pvutils@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.5.tgz#84b0dea4a5d670249aa9800511804ee0b7c2809c" - integrity sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -rpc-websockets@^9.0.2, rpc-websockets@^9.0.4: - version "9.3.1" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.3.1.tgz#d817a59d812f68bae1215740a3f78fcdd3813698" - integrity sha512-bY6a+i/lEtBJ/mUxwsCTgevoV1P0foXTVA7UoThzaIWbM+3NDqorf8NBWs5DmqKTFeA1IoNzgvkWjFCPgnzUiQ== - dependencies: - "@swc/helpers" "^0.5.11" - "@types/uuid" "^8.3.4" - "@types/ws" "^8.2.2" - buffer "^6.0.3" - eventemitter3 "^5.0.1" - uuid "^8.3.2" - ws "^8.5.0" - optionalDependencies: - bufferutil "^4.0.1" - utf-8-validate "^5.0.2" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -serialize-javascript@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== - dependencies: - randombytes "^2.1.0" - -source-map-support@^0.5.6: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -stream-chain@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/stream-chain/-/stream-chain-2.2.5.tgz#b30967e8f14ee033c5b9a19bbe8a2cba90ba0d09" - integrity sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA== - -stream-json@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/stream-json/-/stream-json-1.9.1.tgz#e3fec03e984a503718946c170db7d74556c2a187" - integrity sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw== - dependencies: - stream-chain "^2.2.5" - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -strip-json-comments@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -superstruct@^0.15.4: - version "0.15.5" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" - integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== - -superstruct@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-2.0.2.tgz#3f6d32fbdc11c357deff127d591a39b996300c54" - integrity sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A== - -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -text-encoding-utf-8@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" - integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -ts-mocha@^10.0.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-10.1.0.tgz#17a1c055f5f7733fd82447c4420740db87221bc8" - integrity sha512-T0C0Xm3/WqCuF2tpa0GNGESTBoKZaiqdUP8guNv4ZY316AFXlyidnrzQ1LUrCT0Wb1i3J0zFTgOh/55Un44WdA== - dependencies: - ts-node "7.0.1" - optionalDependencies: - tsconfig-paths "^3.5.0" - -ts-node@7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-7.0.1.tgz#9562dc2d1e6d248d24bc55f773e3f614337d9baf" - integrity sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw== - dependencies: - arrify "^1.0.0" - buffer-from "^1.1.0" - diff "^3.1.0" - make-error "^1.1.1" - minimist "^1.2.0" - mkdirp "^0.5.1" - source-map-support "^0.5.6" - yn "^2.0.0" - -tsconfig-paths@^3.5.0: - version "3.15.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" - integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.2" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tslib@^2.8.0, tslib@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" - integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -type-detect@^4.0.0, type-detect@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.1.0.tgz#deb2453e8f08dcae7ae98c626b13dddb0155906c" - integrity sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw== - -typescript@^5.3.0, typescript@^5.7.3: - version "5.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" - integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== - -undici-types@^8.10.2: - version "8.10.2" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" - integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== - -undici-types@~7.16.0: - version "7.16.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" - integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== - -utf-8-validate@^5.0.2: - version "5.0.10" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" - integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== - dependencies: - node-gyp-build "^4.3.0" - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which@2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -workerpool@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.0.tgz#827d93c9ba23ee2019c3ffaff5c27fccea289e8b" - integrity sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A== - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -ws@^7.5.10: - version "7.5.10" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" - integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== - -ws@^8.21.3: - version "8.21.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" - integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== - -ws@^8.5.0: - version "8.18.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" - integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-unparser@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yn@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" - integrity sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== diff --git a/oncurve-delegation/client/README.md b/oncurve-delegation/client/README.md index e46a4762..9df63861 100644 --- a/oncurve-delegation/client/README.md +++ b/oncurve-delegation/client/README.md @@ -8,35 +8,22 @@ This project demonstrates how to delegate Solana on-curve accounts (such as syst ## Test Structure -The project contains two test implementations: +There is no on-chain program here: the example builds the delegation instructions client-side. -- **`tests/kit/`**: Tests using the Solana Kit library - - `oncurve-delegation.test.ts`: Main test suite using Solana Kit - - `initializeKeypair.ts`: Helper functions for keypair initialization and management - -- **`tests/web3js/`**: Tests using the web3.js library - - `oncurve-delegation.test.ts`: Main test suite using web3.js - - `initializeKeypair.ts`: Helper functions for keypair initialization and management +- **`tests-magicsvm-rs/tests/magicsvm.rs`**: Rust suite that runs the full lifecycle on + [MagicSVM](https://github.com/magicblock-labs/magicsvm) ## Software Packages | Software | Version | Installation Guide | | ---------- | ------- | ------------------------------------------------------- | | **Solana** | 3.1.9 | [Install Solana](https://docs.anza.xyz/cli/install) | +| **Rust** | stable | [Install Rust](https://www.rust-lang.org/tools/install) | | **Node** | 24.10.0 | [Install Node](https://nodejs.org/en/download/current) | ## Build and Test -Install dependencies: - -```bash -yarn -yarn build -``` - -This is an SDK-only integration example — there is no on-chain program here, so `yarn build` is a no-op. - -Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): +There is no program to build, so `yarn build` is a no-op. Run the Rust test suite in `tests-magicsvm-rs/` in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash yarn test @@ -45,11 +32,7 @@ yarn test MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no validators, no network. The suite assigns and delegates an on-curve account, commits its state, and undelegates it. -A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. - -```bash -yarn test:web3js -``` +`yarn test` runs `cargo +stable test` on that suite. ## Delegation Workflow @@ -67,34 +50,3 @@ The test suite demonstrates the complete delegation lifecycle: 3. **Commit and Undelegate**: - Commits the final state and undelegates the account in a single transaction - Restores the account to its original state - -## Environment Variables - -Configure these in your `.env` file: - -```env -# Base Layer RPC Endpoints -PROVIDER_ENDPOINT=https://api.devnet.solana.com # Base layer HTTP RPC -WS_ENDPOINT=wss://api.devnet.solana.com # Base layer WebSocket - -# Ephemeral Rollups RPC Endpoints -EPHEMERAL_PROVIDER_ENDPOINT=https://devnet-as.magicblock.app # ER HTTP RPC -EPHEMERAL_WS_ENDPOINT=wss://devnet-as.magicblock.app # ER WebSocket -``` - -## Dependencies - -Key dependencies for this project: - -- `@magicblock-labs/ephemeral-rollups-kit`: v0.14.3 - High-level SDK for ER interactions -- `@magicblock-labs/ephemeral-rollups-sdk`: v0.14.3 - Low-level ER SDK -- `@solana/kit`: v4.0.0 - Solana Kit library -- `@solana/web3.js`: v1.98.2 - Web3.js library -- `vitest`: v3.2.4 - Test runner - -## Notes - -- Tests use `vitest` for execution and are configured to run sequentially -- Default test timeout is 60 seconds per test -- Tests depend on previous state, so they must run in order -- Two RPC endpoints are required: one for the base layer and one for Ephemeral Rollups diff --git a/oncurve-delegation/client/package.json b/oncurve-delegation/client/package.json index 55b163c9..e16a6ddb 100644 --- a/oncurve-delegation/client/package.json +++ b/oncurve-delegation/client/package.json @@ -3,38 +3,14 @@ "version": "1.0.0", "main": "index.js", "license": "ISC", - "dependencies": { - "@magicblock-labs/ephemeral-rollups-kit": "0.14.3", - "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3", - "@magicblock-labs/magicsvm": "0.2.0", - "@solana-program/system": "^0.9.0", - "@solana/buffer-layout": "^4.0.1", - "@solana/kit": "^4.0.0", - "@solana/transaction-confirmation": "^4.0.0", - "@solana/web3.js": "^1.98.2", - "borsh": "0.7.0", - "dotenv": "^16.5.0", - "fs": "0.0.2" - }, "scripts": { - "test": "npx vitest run ./tests/oncurve-delegation.test.ts", - "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture", - "build": "echo \"No program to build \u2014 SDK integration tests only\"", + "test": "cargo +stable test --manifest-path tests-magicsvm-rs/Cargo.toml", + "build": "echo \"No program to build — SDK integration tests only\"", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w" }, "devDependencies": { - "@types/chai": "^5.2.2", - "@types/mocha": "^10.0.10", - "bs58": "^6.0.0", - "chai": "^5.2.0", - "mocha": "^11.2.2", - "prettier": "^3.5.3", - "ts-mocha": "^11.1.0", - "ts-node": "^10.9.2", - "typescript": "^5.8.3", - "vitest": "^3.2.4", - "@magicblock-labs/test-utils": "link:../../test-utils/ts" + "prettier": "^3.5.3" }, "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" } diff --git a/oncurve-delegation/client/tests/oncurve-delegation.test.ts b/oncurve-delegation/client/tests/oncurve-delegation.test.ts deleted file mode 100644 index 9dcbd582..00000000 --- a/oncurve-delegation/client/tests/oncurve-delegation.test.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { - Keypair, - LAMPORTS_PER_SOL, - PublicKey, - SystemProgram, -} from "@solana/web3.js"; -import { MagicSVM } from "@magicblock-labs/magicsvm"; -import { - createCommitAndUndelegateInstruction, - createCommitInstruction, - createDelegateInstruction, - DELEGATION_PROGRAM_ID, - airdropOrThrow, - isDelegated, - sendExpectingFailure, - sendSvmIx, - validatorPubkey, -} from "@magicblock-labs/test-utils"; -import { describe, expect, it } from "vitest"; - -const ownerProgram = SystemProgram.programId; - -describe("on-curve-delegation-magicsvm", () => { - const svm = new MagicSVM(); - const userKeypair = Keypair.generate(); - const feePayerKeypair = Keypair.generate(); - const userPubkey = userKeypair.publicKey; - const feePayerPubkey = feePayerKeypair.publicKey; - const validator = new PublicKey(validatorPubkey(svm)); - - airdropOrThrow(svm, userPubkey, BigInt(2 * LAMPORTS_PER_SOL), "user airdrop"); - airdropOrThrow( - svm, - feePayerPubkey, - BigInt(LAMPORTS_PER_SOL), - "fee payer airdrop", - ); - - it("Assign owner + Delegate on-curve account", () => { - const assignInstruction = SystemProgram.assign({ - accountPubkey: userPubkey, - programId: DELEGATION_PROGRAM_ID, - }); - const delegateInstruction = createDelegateInstruction({ - payer: feePayerPubkey, - delegatedAccount: userPubkey, - ownerProgram, - validator, - }); - - sendSvmIx( - svm, - [feePayerKeypair, userKeypair], - [assignInstruction, delegateInstruction], - "base", - "delegate", - ); - - const base = svm.getAccount(userPubkey); - expect(base.exists).toBe(true); - if (!base.exists) { - throw new Error("delegated account missing on base"); - } - expect(isDelegated(svm, userPubkey)).toBe(true); - - const ephemeral = svm.getAccountFor(userPubkey, { target: "ephemeral" }); - expect(ephemeral.exists).toBe(true); - }); - - it("Commit on-curve account", () => { - const commitInstruction = createCommitInstruction(userPubkey, [userPubkey]); - sendSvmIx( - svm, - [feePayerKeypair, userKeypair], - [commitInstruction], - "ephemeral", - "commit", - ); - - const base = svm.getAccount(userPubkey); - const ephemeral = svm.getAccountFor(userPubkey, { target: "ephemeral" }); - expect(base.exists).toBe(true); - expect(ephemeral.exists).toBe(true); - }); - - it("Commit and undelegate on-curve account", () => { - const commitAndUndelegateInstruction = createCommitAndUndelegateInstruction( - userPubkey, - [userPubkey], - ); - sendSvmIx( - svm, - [feePayerKeypair, userKeypair], - [commitAndUndelegateInstruction], - "ephemeral", - "commit-and-undelegate", - ); - - const base = svm.getAccount(userPubkey); - expect(base.exists).toBe(true); - - sendExpectingFailure( - svm, - [feePayerKeypair, userKeypair], - SystemProgram.allocate({ - accountPubkey: userPubkey, - space: 8, - }), - "ephemeral", - ); - }); -}); diff --git a/oncurve-delegation/client/vitest.config.ts b/oncurve-delegation/client/vitest.config.ts deleted file mode 100644 index 312d44b3..00000000 --- a/oncurve-delegation/client/vitest.config.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { defineConfig } from "vitest/config"; - -export default defineConfig({ - test: { - fileParallelism: false, - include: ["tests/**/*.test.ts"], - reporters: "verbose", - }, -}); diff --git a/oncurve-delegation/client/yarn.lock b/oncurve-delegation/client/yarn.lock index bd9d8d2a..4a9f7977 100644 --- a/oncurve-delegation/client/yarn.lock +++ b/oncurve-delegation/client/yarn.lock @@ -2,2943 +2,7 @@ # yarn lockfile v1 -"@babel/runtime@^7.25.0": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326" - integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== - -"@babel/runtime@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.7.tgz#12022450c45a4da6d8d8287b18a4ff2ddb23f768" - integrity sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw== - -"@coral-xyz/anchor-errors@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" - integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== - -"@coral-xyz/anchor@0.32.1": - version "0.32.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" - integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== - dependencies: - "@coral-xyz/anchor-errors" "^0.31.1" - "@coral-xyz/borsh" "^0.31.1" - "@noble/hashes" "^1.3.1" - "@solana/web3.js" "^1.69.0" - bn.js "^5.1.2" - bs58 "^4.0.1" - buffer-layout "^1.2.2" - camelcase "^6.3.0" - cross-fetch "^3.1.5" - eventemitter3 "^4.0.7" - pako "^2.0.3" - superstruct "^0.15.4" - toml "^3.0.0" - -"@coral-xyz/borsh@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.31.1.tgz#5328e1e0921b75d7f4a62dd3f61885a938bc7241" - integrity sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw== - dependencies: - bn.js "^5.1.2" - buffer-layout "^1.2.0" - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@esbuild/aix-ppc64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz#80fcbe36130e58b7670511e888b8e88a259ed76c" - integrity sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA== - -"@esbuild/android-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz#8aa4965f8d0a7982dc21734bf6601323a66da752" - integrity sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg== - -"@esbuild/android-arm@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.12.tgz#300712101f7f50f1d2627a162e6e09b109b6767a" - integrity sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg== - -"@esbuild/android-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.12.tgz#87dfb27161202bdc958ef48bb61b09c758faee16" - integrity sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg== - -"@esbuild/darwin-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz#79197898ec1ff745d21c071e1c7cc3c802f0c1fd" - integrity sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg== - -"@esbuild/darwin-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz#146400a8562133f45c4d2eadcf37ddd09718079e" - integrity sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA== - -"@esbuild/freebsd-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz#1c5f9ba7206e158fd2b24c59fa2d2c8bb47ca0fe" - integrity sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg== - -"@esbuild/freebsd-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz#ea631f4a36beaac4b9279fa0fcc6ca29eaeeb2b3" - integrity sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ== - -"@esbuild/linux-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz#e1066bce58394f1b1141deec8557a5f0a22f5977" - integrity sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ== - -"@esbuild/linux-arm@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz#452cd66b20932d08bdc53a8b61c0e30baf4348b9" - integrity sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw== - -"@esbuild/linux-ia32@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz#b24f8acc45bcf54192c7f2f3be1b53e6551eafe0" - integrity sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA== - -"@esbuild/linux-loong64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz#f9cfffa7fc8322571fbc4c8b3268caf15bd81ad0" - integrity sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng== - -"@esbuild/linux-mips64el@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz#575a14bd74644ffab891adc7d7e60d275296f2cd" - integrity sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw== - -"@esbuild/linux-ppc64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz#75b99c70a95fbd5f7739d7692befe60601591869" - integrity sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA== - -"@esbuild/linux-riscv64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz#2e3259440321a44e79ddf7535c325057da875cd6" - integrity sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w== - -"@esbuild/linux-s390x@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz#17676cabbfe5928da5b2a0d6df5d58cd08db2663" - integrity sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg== - -"@esbuild/linux-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz#0583775685ca82066d04c3507f09524d3cd7a306" - integrity sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw== - -"@esbuild/netbsd-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz#f04c4049cb2e252fe96b16fed90f70746b13f4a4" - integrity sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg== - -"@esbuild/netbsd-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz#77da0d0a0d826d7c921eea3d40292548b258a076" - integrity sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ== - -"@esbuild/openbsd-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz#6296f5867aedef28a81b22ab2009c786a952dccd" - integrity sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A== - -"@esbuild/openbsd-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz#f8d23303360e27b16cf065b23bbff43c14142679" - integrity sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw== - -"@esbuild/openharmony-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz#49e0b768744a3924be0d7fd97dd6ce9b2923d88d" - integrity sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg== - -"@esbuild/sunos-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz#a6ed7d6778d67e528c81fb165b23f4911b9b13d6" - integrity sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w== - -"@esbuild/win32-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz#9ac14c378e1b653af17d08e7d3ce34caef587323" - integrity sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg== - -"@esbuild/win32-ia32@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz#918942dcbbb35cc14fca39afb91b5e6a3d127267" - integrity sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ== - -"@esbuild/win32-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz#9bdad8176be7811ad148d1f8772359041f46c6c5" - integrity sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA== - -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.5.5": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" - integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@magicblock-labs/ephemeral-rollups-kit@0.14.3": - version "0.14.3" - resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-kit/-/ephemeral-rollups-kit-0.14.3.tgz#599045705218ba35486a5cb92638d5c6566247cd" - integrity sha512-taQaRDWgY12My0wSPJAU5WTTNjk1rJcUebgsKIRiWH6Jy1A1yPZSfI+Xzd/GTu7PPZTmV5ldbC8lY/EGir2wyA== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@phala/dcap-qvl" "^0.3.9" - "@solana-program/system" "^0.9.0" - "@solana/kit" "^4.0.0" - "@solana/transaction-confirmation" "^4.0.0" - bs58 "^6.0.0" - rpc-websockets "^9.0.4" - tweetnacl "^1.0.3" - typescript "^5.3.0" - -"@magicblock-labs/ephemeral-rollups-sdk@0.14.3": - version "0.14.3" - resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.14.3.tgz#536c215d1daefdbcfa82a79304b08f5014405c58" - integrity sha512-CoByiXHLLS+l7Ojl6XJuYypP/k08ymFkab8+Gh/HCv5Gn2oC4VkwszEQoTDnKo++8Oxbqr9YVGzAMUW4Km7cLA== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@phala/dcap-qvl" "^0.3.9" - "@solana/web3.js" "^1.98.0" - bs58 "^6.0.0" - rpc-websockets "^9.0.4" - tweetnacl "^1.0.3" - typescript "^5.3.0" - -"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" - integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== - -"@magicblock-labs/magicsvm-darwin-x64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" - integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== - -"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" - integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== - -"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" - integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== - -"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" - integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== - -"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" - integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== - -"@magicblock-labs/magicsvm@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" - integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== - dependencies: - "@solana/web3.js" "3.0.0-rc.3" - optionalDependencies: - "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" - "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" - -"@magicblock-labs/test-utils@link:../../test-utils/ts": - version "0.0.0" - uid "" - -"@noble/curves@^1.4.2", "@noble/curves@^1.9.7": - version "1.9.7" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" - integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== - dependencies: - "@noble/hashes" "1.8.0" - -"@noble/hashes@1.8.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0", "@noble/hashes@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" - integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== - -"@peculiar/asn1-schema@^2.3.13", "@peculiar/asn1-schema@^2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.7.0.tgz#f2dcb25995ce7cac8687ba1039f043e5eff43820" - integrity sha512-W8ZfWzLmQnrcky+eh3tni4IozMdqBDiHWU0N+vve/UGjMaUs8c0L7A2oEdkBXS8rTpWDpK/aoI3DG/L/hxmxPg== - dependencies: - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.6" - tslib "^2.8.1" - -"@peculiar/asn1-x509@^2.3.13": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.7.0.tgz#84793efb7819dbc9526fd6b0a4ccd86f90464b96" - integrity sha512-mUn9RRrkGDnG4ALfunDmzyRW5dg+sWCj/pfnCCqEHYbkGxEpvUt6iVJv8Yw1cyp6SWZ26ZE5oSmI5SqEaen15g== - dependencies: - "@peculiar/asn1-schema" "^2.7.0" - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.6" - tslib "^2.8.1" - -"@peculiar/utils@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@peculiar/utils/-/utils-2.0.3.tgz#a27ca4c4b73652e110f19a7d16d664f458a5528e" - integrity sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ== - dependencies: - tslib "^2.8.1" - -"@phala/dcap-qvl@^0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@phala/dcap-qvl/-/dcap-qvl-0.3.9.tgz#34da2506c31954cd290afb5a46146cd52ae24481" - integrity sha512-s/4gAFVq1DRhYkuerDR9WAlX8tkCpFTHTVpWnWlrigj5la2X5OtQl9Y7PzwcqY4h0fc25yqZrcRH3AZpzB1qOw== - dependencies: - "@peculiar/asn1-schema" "^2.3.13" - "@peculiar/asn1-x509" "^2.3.13" - asn1.js "^5.4.1" - bn.js "^5.2.2" - buffer "^6.0.3" - elliptic "^6.6.1" - hash.js "^1.1.7" - node-fetch "^2.7.0" - -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - -"@rollup/rollup-android-arm-eabi@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz#7e478b66180c5330429dd161bf84dad66b59c8eb" - integrity sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w== - -"@rollup/rollup-android-arm64@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.3.tgz#2b025510c53a5e3962d3edade91fba9368c9d71c" - integrity sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w== - -"@rollup/rollup-darwin-arm64@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.3.tgz#3577c38af68ccf34c03e84f476bfd526abca10a0" - integrity sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA== - -"@rollup/rollup-darwin-x64@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.3.tgz#2bf5f2520a1f3b551723d274b9669ba5b75ed69c" - integrity sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ== - -"@rollup/rollup-freebsd-arm64@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.3.tgz#4bb9cc80252564c158efc0710153c71633f1927c" - integrity sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w== - -"@rollup/rollup-freebsd-x64@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.3.tgz#2301289094d49415a380cf942219ae9d8b127440" - integrity sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q== - -"@rollup/rollup-linux-arm-gnueabihf@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.3.tgz#1d03d776f2065e09fc141df7d143476e94acca88" - integrity sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw== - -"@rollup/rollup-linux-arm-musleabihf@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.3.tgz#8623de0e040b2fd52a541c602688228f51f96701" - integrity sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg== - -"@rollup/rollup-linux-arm64-gnu@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.3.tgz#ce2d1999bc166277935dde0301cde3dd0417fb6e" - integrity sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w== - -"@rollup/rollup-linux-arm64-musl@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.3.tgz#88c2523778444da952651a2219026416564a4899" - integrity sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A== - -"@rollup/rollup-linux-loong64-gnu@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.3.tgz#578ca2220a200ac4226c536c10c8cc6e4f276714" - integrity sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g== - -"@rollup/rollup-linux-ppc64-gnu@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.3.tgz#aa338d3effd4168a20a5023834a74ba2c3081293" - integrity sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw== - -"@rollup/rollup-linux-riscv64-gnu@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.3.tgz#16ba582f9f6cff58119aa242782209b1557a1508" - integrity sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g== - -"@rollup/rollup-linux-riscv64-musl@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.3.tgz#e404a77ebd6378483888b8064c703adb011340ab" - integrity sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A== - -"@rollup/rollup-linux-s390x-gnu@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.3.tgz#92ad52d306227c56bec43d96ad2164495437ffe6" - integrity sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg== - -"@rollup/rollup-linux-x64-gnu@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz#fd0dea3bb9aa07e7083579f25e1c2285a46cb9fa" - integrity sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w== - -"@rollup/rollup-linux-x64-musl@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.3.tgz#37a3efb09f18d555f8afc490e1f0444885de8951" - integrity sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q== - -"@rollup/rollup-openharmony-arm64@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.3.tgz#c489bec9f4f8320d42c9b324cca220c90091c1f7" - integrity sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw== - -"@rollup/rollup-win32-arm64-msvc@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.3.tgz#152832b5f79dc22d1606fac3db946283601b7080" - integrity sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw== - -"@rollup/rollup-win32-ia32-msvc@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.3.tgz#54d91b2bb3bf3e9f30d32b72065a4e52b3a172a5" - integrity sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA== - -"@rollup/rollup-win32-x64-gnu@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.3.tgz#df9df03e61a003873efec8decd2034e7f135c71e" - integrity sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg== - -"@rollup/rollup-win32-x64-msvc@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.3.tgz#38ae84f4c04226c1d56a3b17296ef1e0460ecdfe" - integrity sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ== - -"@solana-program/address-lookup-table@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" - integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== - -"@solana-program/compute-budget@^0.18.0": - version "0.18.1" - resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" - integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== - -"@solana-program/loader-v3@^0.6.0": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" - integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== - -"@solana-program/stake@^0.9.0": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" - integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== - -"@solana-program/system@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" - integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== - -"@solana-program/system@^0.9.0": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.9.1.tgz#fafd9abaa2a48adb80a78e5f712847b3d817b37c" - integrity sha512-2N30CgYJw0qX8jKU8vW808yLmx5oRoDSM+FC6tqhsLQiph7agK9eRXJlnrq6OUfTAZd5yCYQHQvGtx0S8I9SAA== - -"@solana/accounts@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-4.0.0.tgz#55b3b2a9186aceb444872adcde76786c0c40dc1e" - integrity sha512-fxTtTk7PCJrigdzqhkc0eZYACVZpONKJZy4MkGvZzx5tCC7rUeDJvzau3IYACUCRaaAGPpkINHwYtp8weKsn8w== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/rpc-spec" "4.0.0" - "@solana/rpc-types" "4.0.0" - -"@solana/accounts@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" - integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/addresses@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-4.0.0.tgz#cd836e473ecdd286d5787401f16193ca5725b39e" - integrity sha512-1OS4nU0HFZxHRxgUb6A72Qg0QbIz6Vu2AbB0j/YSxN4EI+S2BftA83Y6uXhTFDQjKuA+MtHjxe6edB3cs1Pqxw== - dependencies: - "@solana/assertions" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/nominal-types" "4.0.0" - -"@solana/addresses@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" - integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/assertions@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-4.0.0.tgz#ec863ea412a66edb1a97ef789e694439fd4ee679" - integrity sha512-QwtImPVM5JLEWOFpvHh+eKdvmxdNP6PW8FkmFFEVYR6VFDaZD/hbmSJlwt5p3L69sVmxJA0ughYgD/kkHM7fbg== - dependencies: - "@solana/errors" "4.0.0" - -"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" - integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/buffer-layout@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" - integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== - dependencies: - buffer "~6.0.3" - -"@solana/codecs-core@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-2.3.0.tgz#6bf2bb565cb1ae880f8018635c92f751465d8695" - integrity sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw== - dependencies: - "@solana/errors" "2.3.0" - -"@solana/codecs-core@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-4.0.0.tgz#0668b964df5a3e278ff276b5aa812bd739e29510" - integrity sha512-28kNUsyIlhU3MO3/7ZLDqeJf2YAm32B4tnTjl5A9HrbBqsTZ+upT/RzxZGP1MMm7jnPuIKCMwmTpsyqyR6IUpw== - dependencies: - "@solana/errors" "4.0.0" - -"@solana/codecs-core@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-5.5.1.tgz#1b2619c697ad04c99f98cc468135d584b7e2b16d" - integrity sha512-TgBt//bbKBct0t6/MpA8ElaOA3sa8eYVvR7LGslCZ84WiAwwjCY0lW/lOYsFHJQzwREMdUyuEyy5YWBKtdh8Rw== - dependencies: - "@solana/errors" "5.5.1" - -"@solana/codecs-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" - integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/codecs-data-structures@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-4.0.0.tgz#8e60f68f26ae7dac5c88d4f5684c4c5ce7d6db62" - integrity sha512-pvh+Oxz6UIbWxcgwvVwMJIV4nvZn3EHL5ZvCIPClE5Ep8K5sJ8RoRvOohqLcIv9LYn/EZNoXpCodREX/OYpsGw== - dependencies: - "@solana/codecs-core" "4.0.0" - "@solana/codecs-numbers" "4.0.0" - "@solana/errors" "4.0.0" - -"@solana/codecs-data-structures@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" - integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-4.0.0.tgz#fc5c451ff2f1ca1e3a13cf85230e768a47b9a788" - integrity sha512-z9zpjtcwzqT9rbkKVZpkWB5/0V7+6YRKs6BccHkGJlaDx8Pe/+XOvPi2rEdXPqrPd9QWb5Xp1iBfcgaDMyiOiA== - dependencies: - "@solana/codecs-core" "4.0.0" - "@solana/errors" "4.0.0" - -"@solana/codecs-numbers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" - integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@^2.1.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" - integrity sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg== - dependencies: - "@solana/codecs-core" "2.3.0" - "@solana/errors" "2.3.0" - -"@solana/codecs-numbers@^5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-5.5.1.tgz#6ebc43250133ceb7836f1ac5780a7767e383efde" - integrity sha512-rllMIZAHqmtvC0HO/dc/21wDuWaD0B8Ryv8o+YtsICQBuiL/0U4AGwH7Pi5GNFySYk0/crSuwfIqQFtmxNSPFw== - dependencies: - "@solana/codecs-core" "5.5.1" - "@solana/errors" "5.5.1" - -"@solana/codecs-strings@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-4.0.0.tgz#b4c77d6ff6eeec868a71e5b0cb42bdb9f0c6b500" - integrity sha512-XvyD+sQ1zyA0amfxbpoFZsucLoe+yASQtDiLUGMDg5TZ82IHE3B7n82jE8d8cTAqi0HgqQiwU13snPhvg1O0Ow== - dependencies: - "@solana/codecs-core" "4.0.0" - "@solana/codecs-numbers" "4.0.0" - "@solana/errors" "4.0.0" - -"@solana/codecs-strings@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" - integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-4.0.0.tgz#211235fd56fa60f5d96b88b14d7317bf6d88535b" - integrity sha512-qh+Le1u9QBDPubqUrFU5BGX3Kyj7x0viO6z2SUuM0CSqYUvwE7w724LXwDA9QoEL5JkED1rB3bQg4M0bDrABpA== - dependencies: - "@solana/codecs-core" "4.0.0" - "@solana/codecs-data-structures" "4.0.0" - "@solana/codecs-numbers" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/options" "4.0.0" - -"@solana/codecs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" - integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/options" "8.3.0" - -"@solana/errors@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.3.0.tgz#4ac9380343dbeffb9dffbcb77c28d0e457c5fa31" - integrity sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ== - dependencies: - chalk "^5.4.1" - commander "^14.0.0" - -"@solana/errors@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-4.0.0.tgz#7fa9e8b69c4a199acab1b863b234be69772b1914" - integrity sha512-3YEtvcMvtcnTl4HahqLt0VnaGVf7vVWOnt6/uPky5e0qV6BlxDSbGkbBzttNjxLXHognV0AQi3pjvrtfUnZmbg== - dependencies: - chalk "5.6.2" - commander "14.0.1" - -"@solana/errors@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-5.5.1.tgz#1c17bc822264fd5a6305d8bfb9d597858e4ce17b" - integrity sha512-vFO3p+S7HoyyrcAectnXbdsMfwUzY2zYFUc2DEe5BwpiE9J1IAxPBGjOWO6hL1bbYdBrlmjNx8DXCslqS+Kcmg== - dependencies: - chalk "5.6.2" - commander "14.0.2" - -"@solana/errors@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" - integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== - dependencies: - chalk "5.6.2" - commander "15.0.0" - -"@solana/fast-stable-stringify@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-4.0.0.tgz#ecba09686fdd3a6a6dd1e41be3395d2bb6dd583e" - integrity sha512-sNJRi0RQ93vkGQ9VyFTSGm6mfKLk0FWOFpJLcqyP0BNUK1CugBaUMnxAmGqNaVSCktJagTSLqAMi9k1VSdh+Cg== - -"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" - integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== - -"@solana/fixed-points@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" - integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/functional@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-4.0.0.tgz#157febe2cb837b7272956794853ba80b5315da22" - integrity sha512-duprxASuT0VXlHj3bLBdy9+ZpqdmCZhzCUmTsXps4UlDKr9PxSCQIQ+NK6OPhtBWOh1sNEcT1f1nY/MVqF/KHg== - -"@solana/functional@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" - integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== - -"@solana/instruction-plans@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-4.0.0.tgz#38a4021eb99b9136204d77b84d579740cd94a979" - integrity sha512-FcyptPR5XmKoj1EyF9xARiqy2BuF+CfrIxTU0WQn5Tix/y7whKYz5CCFtBlWbwIcGxQftmG5tAlcidgnCb7jVw== - dependencies: - "@solana/errors" "4.0.0" - "@solana/instructions" "4.0.0" - "@solana/promises" "4.0.0" - "@solana/transaction-messages" "4.0.0" - "@solana/transactions" "4.0.0" - -"@solana/instruction-plans@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" - integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/instructions@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-4.0.0.tgz#989c3ad30de9e3c52a8a7a094964b4500b1a717e" - integrity sha512-/Lf3E+6mhe6EL7a3+9FY020yq71lVNgueplJGr221b4wP6ykwPVtoaAiNf+lIrRRYkW8DC81auhmjd2DYpND1w== - dependencies: - "@solana/codecs-core" "4.0.0" - "@solana/errors" "4.0.0" - -"@solana/instructions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" - integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/keys@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-4.0.0.tgz#12c39db588115beaf13648b778bcdb1acfe09052" - integrity sha512-aPz+LF9QK3EHjuklYBnnalcLVHUNz5s4m4DXNVGAtjJD7Q9zEu2dBUm9mRKwlLbQibNOEGa1m86HCjcboqXdjg== - dependencies: - "@solana/assertions" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/nominal-types" "4.0.0" - -"@solana/keys@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" - integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/kit@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-4.0.0.tgz#741cf567426e88c194dfd27ef2616d261f6ff7b9" - integrity sha512-5c4qMRL+ciWewEtNZ2gX4wf4VpscZYXbWnU2kBiyQhWiqj8zzFIh6iCHbqMX/Myx3pOHfQs/m/iQCnQHPOag9Q== - dependencies: - "@solana/accounts" "4.0.0" - "@solana/addresses" "4.0.0" - "@solana/codecs" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/functional" "4.0.0" - "@solana/instruction-plans" "4.0.0" - "@solana/instructions" "4.0.0" - "@solana/keys" "4.0.0" - "@solana/programs" "4.0.0" - "@solana/rpc" "4.0.0" - "@solana/rpc-parsed-types" "4.0.0" - "@solana/rpc-spec-types" "4.0.0" - "@solana/rpc-subscriptions" "4.0.0" - "@solana/rpc-types" "4.0.0" - "@solana/signers" "4.0.0" - "@solana/sysvars" "4.0.0" - "@solana/transaction-confirmation" "4.0.0" - "@solana/transaction-messages" "4.0.0" - "@solana/transactions" "4.0.0" - -"@solana/kit@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" - integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/plugin-core" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/program-client-core" "8.3.0" - "@solana/programs" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/subscribable" "8.3.0" - "@solana/sysvars" "8.3.0" - "@solana/transaction-confirmation" "8.3.0" - "@solana/transaction-introspection" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/nominal-types@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-4.0.0.tgz#0ba8f10ef7c1de4b12c0781d44805d8984a17c18" - integrity sha512-zIjHZY+5uboigbzsNhHmF3AlP/xACYxbB0Cb1VAI9i+eFShMeu/3VIrj7x1vbq9hfQKGSFHNFGFqQTivdzpbLw== - -"@solana/nominal-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" - integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== - -"@solana/offchain-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" - integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/options@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/options/-/options-4.0.0.tgz#a66a7c9211d1257037551afd470b7a4380f8efcc" - integrity sha512-QTjBh24a34At66mGfs0lVF1voug1KnA13IZkvcVPr52zFb90+xYiqYeKiICTaf3HkoeoKG+TC2Q0K64+se0+CQ== - dependencies: - "@solana/codecs-core" "4.0.0" - "@solana/codecs-data-structures" "4.0.0" - "@solana/codecs-numbers" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - -"@solana/options@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" - integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/plugin-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" - integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== - -"@solana/plugin-interfaces@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" - integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/program-client-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" - integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/signers" "8.3.0" - -"@solana/programs@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-4.0.0.tgz#473c3614c5079f0a9dfd73ec46a684a1c389b33d" - integrity sha512-tJCNoKyDKfipGTsQtUO6R9EXk4l4ai+gYuD2R3NubJgMaLPBqIv3IMSCeDSvhuSCDuN2lQ1mLkQrDnE3lm0/iQ== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/errors" "4.0.0" - -"@solana/programs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" - integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/promises@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-4.0.0.tgz#0ebf2dede764be71aa708479f6c4371ee58f76da" - integrity sha512-zEh815+n2OrrQunZ6m1iuNcoZRc9YnQaTeivBSgl1SYfPaq/Qj/rRiK5DID25Njo4L44p5quu7aal3Bk/eR+tQ== - -"@solana/promises@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" - integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== - -"@solana/rpc-api@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-4.0.0.tgz#872bcd276befe0d9b69b66d73e7fe43219b9779e" - integrity sha512-nfQkTJCIW3qzUDRrhvr9MBm9jKQ+dZn4ypK35UDPrV+QB5Gc9UmPJ6prvpPtDq8WoU7wqUzswKeY3k7qtgYjEg== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/keys" "4.0.0" - "@solana/rpc-parsed-types" "4.0.0" - "@solana/rpc-spec" "4.0.0" - "@solana/rpc-transformers" "4.0.0" - "@solana/rpc-types" "4.0.0" - "@solana/transaction-messages" "4.0.0" - "@solana/transactions" "4.0.0" - -"@solana/rpc-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" - integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-parsed-types@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-4.0.0.tgz#2a328092e53cce00d647f21da2a72bbae4d124f5" - integrity sha512-aOjwJwen5D0aDXoSths+ekdBO4mu7nmM+yASqCVW2PLN6v7NZmRBzV1/PgMFjDTiymVQj25ipCUvL395s1wsKg== - -"@solana/rpc-parsed-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" - integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== - -"@solana/rpc-spec-types@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-4.0.0.tgz#8e9450b73aa5a4a187c3f59335bcfda94321f880" - integrity sha512-rpFMIaetpubeyDXIlxV08vtmiDt7ME9527kCI61slHj6O2rbj+7fABhmlN6J4YDCcL/kfnMCxZyNna94DovHZA== - -"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" - integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/rpc-spec@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-4.0.0.tgz#b4e1f48246286556978d2088980476815f37eea2" - integrity sha512-9PFTFWjdgA/KFG4rgzbgA7gm9+aRDwsRJgI1aP7n3dGsGzYUp8vNgRQBhogWscEOETkgZNlsi/artLxgvHEHEg== - dependencies: - "@solana/errors" "4.0.0" - "@solana/rpc-spec-types" "4.0.0" - -"@solana/rpc-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" - integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions-api@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-4.0.0.tgz#fb470cdc83afd696cec06694211340b7737ddf44" - integrity sha512-6/MzQT9VkcD7Rh8ExoGdbERTSEubA5eI+Q0R9FRuujl/SIy2BsWaNxaBMuZS0DFmKbIHM+m1ptUFdjKAVjGQuw== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/keys" "4.0.0" - "@solana/rpc-subscriptions-spec" "4.0.0" - "@solana/rpc-transformers" "4.0.0" - "@solana/rpc-types" "4.0.0" - "@solana/transaction-messages" "4.0.0" - "@solana/transactions" "4.0.0" - -"@solana/rpc-subscriptions-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" - integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-subscriptions-channel-websocket@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-4.0.0.tgz#4abe9919b8a0f5de62b7073ba2d696cf812d8f7e" - integrity sha512-dc4cGfkQJEdkux/CXpItffuytnSU6wktReHEBL+2xaYmF+yGMBeBLzTvkCJ9BbGGfBMf06c5y5QH8X48W5CJdg== - dependencies: - "@solana/errors" "4.0.0" - "@solana/functional" "4.0.0" - "@solana/rpc-subscriptions-spec" "4.0.0" - "@solana/subscribable" "4.0.0" - -"@solana/rpc-subscriptions-channel-websocket@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" - integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/subscribable" "8.3.0" - ws "^8.21.3" - -"@solana/rpc-subscriptions-spec@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-4.0.0.tgz#8b5aa7814378287250071352334ef4a415a133b1" - integrity sha512-2ROfFymoy/TjDAlEPpsmSQAr6LZwG4l/UIhkW7+/VraRu7QPAycuWfSopJnG8D7F3fksICFSeQNwwgBXTN1TWA== - dependencies: - "@solana/errors" "4.0.0" - "@solana/promises" "4.0.0" - "@solana/rpc-spec-types" "4.0.0" - "@solana/subscribable" "4.0.0" - -"@solana/rpc-subscriptions-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" - integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-4.0.0.tgz#e91dfdb6bdf1c0e9ae7a8f7d91937c543932f822" - integrity sha512-rM+R4Xpsym0tYF3sGAEpdY+D+c6fOMk/fhCEewR+veqdubRfvI5QEhq4kHs8qdKKuRbcpGmedPC306H+PQ6Hmg== - dependencies: - "@solana/errors" "4.0.0" - "@solana/fast-stable-stringify" "4.0.0" - "@solana/functional" "4.0.0" - "@solana/promises" "4.0.0" - "@solana/rpc-spec-types" "4.0.0" - "@solana/rpc-subscriptions-api" "4.0.0" - "@solana/rpc-subscriptions-channel-websocket" "4.0.0" - "@solana/rpc-subscriptions-spec" "4.0.0" - "@solana/rpc-transformers" "4.0.0" - "@solana/rpc-types" "4.0.0" - "@solana/subscribable" "4.0.0" - -"@solana/rpc-subscriptions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" - integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions-api" "8.3.0" - "@solana/rpc-subscriptions-channel-websocket" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-transformers@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-4.0.0.tgz#6ef729305c4a2532246fcb3bbd078bcda8bfd640" - integrity sha512-3B3C9zpqN2O76CJV9tethtybMFdT2ViN5b2u8sObftGNFqxPmjt7XmbOmPdn7zwLyRM5S2RuZShzfcVJpBf+yQ== - dependencies: - "@solana/errors" "4.0.0" - "@solana/functional" "4.0.0" - "@solana/nominal-types" "4.0.0" - "@solana/rpc-spec-types" "4.0.0" - "@solana/rpc-types" "4.0.0" - -"@solana/rpc-transformers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" - integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/rpc-transport-http@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-4.0.0.tgz#047b7c5915a5cc32fdb8da57db5991dd5897ba38" - integrity sha512-RjXcQehF3wHm8eoIala+MrdmS3mDSPRl+xwEWzmA1QmBdQl44/XTNOdPJvNkqWXrzE+bAsZGfn0gVua/oCC+zQ== - dependencies: - "@solana/errors" "4.0.0" - "@solana/rpc-spec" "4.0.0" - "@solana/rpc-spec-types" "4.0.0" - undici-types "^7.16.0" - -"@solana/rpc-transport-http@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" - integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - undici-types "^8.10.2" - -"@solana/rpc-types@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-4.0.0.tgz#23eaeb262faaa92ae0a151db65ee4b592dd598c9" - integrity sha512-mY4W6DQVaLf3M8hSSzIEtaRsVgLg9zv5qdjjYvxkALw0fzjkLW55h3ctGbJ/k+dNpYm9gcKg7zatA7eBNnNmtQ== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/codecs-numbers" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/nominal-types" "4.0.0" - -"@solana/rpc-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" - integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/rpc@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-4.0.0.tgz#e70cea2943b3dac2631f67154ad4bbc03f3d34fd" - integrity sha512-KF91ghi7P48aeWd4eSY5Fly/ioYz9ww2loQd/YqV3eLQwo3/2HUWd6r6lpSHsLh/HUoUkm+EsYmVN8r/3mE5fg== - dependencies: - "@solana/errors" "4.0.0" - "@solana/fast-stable-stringify" "4.0.0" - "@solana/functional" "4.0.0" - "@solana/rpc-api" "4.0.0" - "@solana/rpc-spec" "4.0.0" - "@solana/rpc-spec-types" "4.0.0" - "@solana/rpc-transformers" "4.0.0" - "@solana/rpc-transport-http" "4.0.0" - "@solana/rpc-types" "4.0.0" - -"@solana/rpc@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" - integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-transport-http" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/signers@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-4.0.0.tgz#771e6188129394a0591f2d688c8132f8af933217" - integrity sha512-r3ZrltruadsQXmx3fsGOSqAZ3SsgD7zq/QB8sT6IOVcg11Pgdvx48/CEv7djdy44wF4HVpqNCZLfi12EhoaSXQ== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/instructions" "4.0.0" - "@solana/keys" "4.0.0" - "@solana/nominal-types" "4.0.0" - "@solana/transaction-messages" "4.0.0" - "@solana/transactions" "4.0.0" - -"@solana/signers@8.3.0", "@solana/signers@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" - integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/subscribable@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-4.0.0.tgz#bb1ce2d36a1051ed639b1c792ae457ec388d9c46" - integrity sha512-lDI4HkDuGkmdnX7hSgvJsFFadkQxt0pLHIpZTxOt7/6KBDtNs63NTwJGd3d/EuA7ReXwYg5HDG0QtOm64divXQ== - dependencies: - "@solana/errors" "4.0.0" - -"@solana/subscribable@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" - integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/sysvars@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-4.0.0.tgz#25ff5a6d6a163b88f3af5bcbab6001609ff248ab" - integrity sha512-HUu2B8P7iRYWAt1KL/5a6nNTKp73y04cSxZ9PZf2Ap1/KE0/5D8WnkEfnurUQmU3zBner95d+szNOyWMNBOoTw== - dependencies: - "@solana/accounts" "4.0.0" - "@solana/codecs" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/rpc-types" "4.0.0" - -"@solana/sysvars@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" - integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transaction-confirmation@4.0.0", "@solana/transaction-confirmation@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-4.0.0.tgz#cb6256ba7fc4cf156a2d51563fc8f8ad644fc2ba" - integrity sha512-DTBIMB5/UCOpVyL5E0xwswtxs/PGeSD1VL5+C1UCPlggpZNIOlhZoaQqFO56wrJDFASzPMx+dakda5BUuhQkBg== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/keys" "4.0.0" - "@solana/promises" "4.0.0" - "@solana/rpc" "4.0.0" - "@solana/rpc-subscriptions" "4.0.0" - "@solana/rpc-types" "4.0.0" - "@solana/transaction-messages" "4.0.0" - "@solana/transactions" "4.0.0" - -"@solana/transaction-confirmation@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" - integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-introspection@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" - integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-messages@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-4.0.0.tgz#ab28f345d6d0e7e8e0a63e23773c440ae2a46843" - integrity sha512-rQo0rRyvkrROFZHUT0uL3vqeBBtxTsNKDtx8pZo6BC3TgGA7V1MoSC3rVOLwYCK6rK5NJZiYNjmneHz/7hVpwQ== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/codecs-data-structures" "4.0.0" - "@solana/codecs-numbers" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/functional" "4.0.0" - "@solana/instructions" "4.0.0" - "@solana/nominal-types" "4.0.0" - "@solana/rpc-types" "4.0.0" - -"@solana/transaction-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" - integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transactions@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-4.0.0.tgz#d037d7c7966c7aae110b6fa33efa780a211bb013" - integrity sha512-bmHIIVTQq+Wlqg4es91Ew4KSbOrvdfPsKg/pVha8ZR77huwvfqQMxRyYF4zMQ+Fm3QXGFKOU0RPVKKYic15jBw== - dependencies: - "@solana/addresses" "4.0.0" - "@solana/codecs-core" "4.0.0" - "@solana/codecs-data-structures" "4.0.0" - "@solana/codecs-numbers" "4.0.0" - "@solana/codecs-strings" "4.0.0" - "@solana/errors" "4.0.0" - "@solana/functional" "4.0.0" - "@solana/instructions" "4.0.0" - "@solana/keys" "4.0.0" - "@solana/nominal-types" "4.0.0" - "@solana/rpc-types" "4.0.0" - "@solana/transaction-messages" "4.0.0" - -"@solana/transactions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" - integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - -"@solana/web3.js@3.0.0-rc.3": - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" - integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@solana-program/address-lookup-table" "^0.14.0" - "@solana-program/compute-budget" "^0.18.0" - "@solana-program/loader-v3" "^0.6.0" - "@solana-program/stake" "^0.9.0" - "@solana-program/system" "^0.14.0" - "@solana/assertions" "^8.2.0" - "@solana/fast-stable-stringify" "^8.2.0" - "@solana/kit" "^8.2.0" - "@solana/rpc-spec-types" "^8.2.0" - "@solana/signers" "^8.2.0" - -"@solana/web3.js@^1.69.0": - version "1.99.0" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.99.0.tgz#864ce3fefe03b258c430e31e6672b422426821f7" - integrity sha512-QZYQ2T1z6xWisoyALPq25i/QZTsRlM02BABtAsfaQ1p8wX4SdTfxrKTRue/ZZqrhNVh5oL7T/DUFiTS9DRgxow== - dependencies: - "@babel/runtime" "^7.29.7" - "@noble/curves" "^1.9.7" - "@noble/hashes" "^1.8.0" - "@solana/buffer-layout" "^4.0.1" - "@solana/codecs-numbers" "^5.5.1" - agentkeepalive "^4.6.0" - bn.js "^5.2.5" - borsh "^0.7.0" - bs58 "^4.0.1" - buffer "6.0.3" - fast-stable-stringify "^1.0.0" - jayson "^4.3.0" - node-fetch "^2.7.0" - rpc-websockets "^9.0.2" - superstruct "^2.0.2" - -"@solana/web3.js@^1.98.0", "@solana/web3.js@^1.98.2": - version "1.98.4" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" - integrity sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw== - 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.1.0" - agentkeepalive "^4.5.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.1.1" - node-fetch "^2.7.0" - rpc-websockets "^9.0.2" - superstruct "^2.0.2" - -"@swc/helpers@^0.5.11": - version "0.5.17" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.17.tgz#5a7be95ac0f0bf186e7e6e890e7a6f6cda6ce971" - integrity sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A== - dependencies: - tslib "^2.8.0" - -"@tsconfig/node10@^1.0.7": - version "1.0.12" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.12.tgz#be57ceac1e4692b41be9de6be8c32a106636dba4" - integrity sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@types/chai@^5.2.2": - version "5.2.3" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-5.2.3.tgz#8e9cd9e1c3581fa6b341a5aed5588eb285be0b4a" - integrity sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA== - dependencies: - "@types/deep-eql" "*" - assertion-error "^2.0.1" - -"@types/connect@^3.4.33": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" - integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== - dependencies: - "@types/node" "*" - -"@types/deep-eql@*": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/deep-eql/-/deep-eql-4.0.2.tgz#334311971d3a07121e7eb91b684a605e7eea9cbd" - integrity sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw== - -"@types/estree@1.0.8", "@types/estree@^1.0.0": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" - integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== - -"@types/mocha@^10.0.10": - version "10.0.10" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.10.tgz#91f62905e8d23cbd66225312f239454a23bebfa0" - integrity sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q== - -"@types/node@*": - version "24.10.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.1.tgz#91e92182c93db8bd6224fca031e2370cef9a8f01" - integrity sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ== - dependencies: - undici-types "~7.16.0" - -"@types/node@^12.12.54": - version "12.20.55" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - -"@types/uuid@^8.3.4": - version "8.3.4" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" - integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== - -"@types/ws@^7.4.4": - version "7.4.7" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - dependencies: - "@types/node" "*" - -"@types/ws@^8.2.2": - version "8.18.1" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" - integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== - dependencies: - "@types/node" "*" - -"@vitest/expect@3.2.4": - version "3.2.4" - resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-3.2.4.tgz#8362124cd811a5ee11c5768207b9df53d34f2433" - integrity sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig== - dependencies: - "@types/chai" "^5.2.2" - "@vitest/spy" "3.2.4" - "@vitest/utils" "3.2.4" - chai "^5.2.0" - tinyrainbow "^2.0.0" - -"@vitest/mocker@3.2.4": - version "3.2.4" - resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-3.2.4.tgz#4471c4efbd62db0d4fa203e65cc6b058a85cabd3" - integrity sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ== - dependencies: - "@vitest/spy" "3.2.4" - estree-walker "^3.0.3" - magic-string "^0.30.17" - -"@vitest/pretty-format@3.2.4", "@vitest/pretty-format@^3.2.4": - version "3.2.4" - resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-3.2.4.tgz#3c102f79e82b204a26c7a5921bf47d534919d3b4" - integrity sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA== - dependencies: - tinyrainbow "^2.0.0" - -"@vitest/runner@3.2.4": - version "3.2.4" - resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-3.2.4.tgz#5ce0274f24a971f6500f6fc166d53d8382430766" - integrity sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ== - dependencies: - "@vitest/utils" "3.2.4" - pathe "^2.0.3" - strip-literal "^3.0.0" - -"@vitest/snapshot@3.2.4": - version "3.2.4" - resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-3.2.4.tgz#40a8bc0346ac0aee923c0eefc2dc005d90bc987c" - integrity sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ== - dependencies: - "@vitest/pretty-format" "3.2.4" - magic-string "^0.30.17" - pathe "^2.0.3" - -"@vitest/spy@3.2.4": - version "3.2.4" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-3.2.4.tgz#cc18f26f40f3f028da6620046881f4e4518c2599" - integrity sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw== - dependencies: - tinyspy "^4.0.3" - -"@vitest/utils@3.2.4": - version "3.2.4" - resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-3.2.4.tgz#c0813bc42d99527fb8c5b138c7a88516bca46fea" - integrity sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA== - dependencies: - "@vitest/pretty-format" "3.2.4" - loupe "^3.1.4" - tinyrainbow "^2.0.0" - -acorn-walk@^8.1.1: - version "8.3.4" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" - integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== - dependencies: - acorn "^8.11.0" - -acorn@^8.11.0, acorn@^8.4.1: - version "8.15.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" - integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== - -agentkeepalive@^4.5.0, agentkeepalive@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" - integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== - dependencies: - humanize-ms "^1.2.1" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" - integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^6.1.0: - version "6.2.3" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" - integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -asn1.js@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1js@^3.0.6: - version "3.0.10" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.10.tgz#df26c874c8a8b41ca605efea47b2ad07551013dd" - integrity sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg== - dependencies: - pvtsutils "^1.3.6" - pvutils "^1.1.5" - tslib "^2.8.1" - -assertion-error@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" - integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base-x@^3.0.2: - version "3.0.11" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.11.tgz#40d80e2a1aeacba29792ccc6c5354806421287ff" - integrity sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA== - dependencies: - safe-buffer "^5.0.1" - -base-x@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-5.0.1.tgz#16bf35254be1df8aca15e36b7c1dda74b2aa6b03" - integrity sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bn.js@^4.0.0, bn.js@^4.11.9: - version "4.12.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.3.tgz#2cc2c679188eb35b006f2d0d4710bed8437a769e" - integrity sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g== - -bn.js@^5.1.2, bn.js@^5.2.5: - version "5.2.5" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.5.tgz#e81ce41cf25e6f0cd1e05f20a9db8c18405e375f" - integrity sha512-Vq886eXykuP5E6HcKSSStP3bJgrE6In5WKxVUvJ8XGpWWYs2xZHWqUwzCtGgEtBcxyd57KBFDPFoUfNzdaHCNg== - -bn.js@^5.2.0, bn.js@^5.2.1: - version "5.2.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.2.tgz#82c09f9ebbb17107cd72cb7fd39bd1f9d0aaa566" - integrity sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw== - -bn.js@^5.2.2: - version "5.2.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.3.tgz#16a9e409616b23fef3ccbedb8d42f13bff80295e" - integrity sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w== - -borsh@0.7.0, borsh@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" - integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== - dependencies: - bn.js "^5.2.0" - bs58 "^4.0.0" - text-encoding-utf-8 "^1.0.2" - -brace-expansion@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" - integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== - dependencies: - balanced-match "^1.0.0" - -brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browser-stdout@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -bs58@^4.0.0, bs58@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - dependencies: - base-x "^3.0.2" - -bs58@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-6.0.0.tgz#a2cda0130558535dd281a2f8697df79caaf425d8" - integrity sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw== - dependencies: - base-x "^5.0.0" - -buffer-layout@^1.2.0, buffer-layout@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" - integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== - -buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -bufferutil@^4.0.1: - version "4.0.9" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.9.tgz#6e81739ad48a95cad45a279588e13e95e24a800a" - integrity sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw== - dependencies: - node-gyp-build "^4.3.0" - -cac@^6.7.14: - version "6.7.14" - resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" - integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== - -camelcase@^6.0.0, camelcase@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -chai@^5.2.0: - version "5.3.3" - resolved "https://registry.yarnpkg.com/chai/-/chai-5.3.3.tgz#dd3da955e270916a4bd3f625f4b919996ada7e06" - integrity sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw== - dependencies: - assertion-error "^2.0.1" - check-error "^2.1.1" - deep-eql "^5.0.1" - loupe "^3.1.0" - pathval "^2.0.0" - -chalk@5.6.2, chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - -chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -check-error@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" - integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== - -chokidar@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" - integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== - dependencies: - readdirp "^4.0.1" - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -commander@14.0.1: - version "14.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.1.tgz#2f9225c19e6ebd0dc4404dd45821b2caa17ea09b" - integrity sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A== - -commander@14.0.2, commander@^14.0.0: - version "14.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e" - integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== - -commander@15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" - integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== - -commander@^2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-fetch@^3.1.5: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" - integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== - dependencies: - node-fetch "^2.7.0" - -cross-spawn@^7.0.6: - version "7.0.6" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" - integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -debug@^4.3.5, debug@^4.4.1: - version "4.4.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" - integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== - dependencies: - ms "^2.1.3" - -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - -deep-eql@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" - integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== - -delay@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" - integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -diff@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-7.0.0.tgz#3fb34d387cd76d803f6eebea67b921dab0182a9a" - integrity sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw== - -dotenv@^16.5.0: - version "16.6.1" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.6.1.tgz#773f0e69527a8315c7285d5ee73c4459d20a8020" - integrity sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow== - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -elliptic@^6.6.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" - integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -es-module-lexer@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz#9159601561880a85f2734560a9099b2c31e5372a" - integrity sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA== - -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== - dependencies: - es6-promise "^4.0.3" - -esbuild@^0.25.0: - version "0.25.12" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.12.tgz#97a1d041f4ab00c2fce2f838d2b9969a2d2a97a5" - integrity sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg== - optionalDependencies: - "@esbuild/aix-ppc64" "0.25.12" - "@esbuild/android-arm" "0.25.12" - "@esbuild/android-arm64" "0.25.12" - "@esbuild/android-x64" "0.25.12" - "@esbuild/darwin-arm64" "0.25.12" - "@esbuild/darwin-x64" "0.25.12" - "@esbuild/freebsd-arm64" "0.25.12" - "@esbuild/freebsd-x64" "0.25.12" - "@esbuild/linux-arm" "0.25.12" - "@esbuild/linux-arm64" "0.25.12" - "@esbuild/linux-ia32" "0.25.12" - "@esbuild/linux-loong64" "0.25.12" - "@esbuild/linux-mips64el" "0.25.12" - "@esbuild/linux-ppc64" "0.25.12" - "@esbuild/linux-riscv64" "0.25.12" - "@esbuild/linux-s390x" "0.25.12" - "@esbuild/linux-x64" "0.25.12" - "@esbuild/netbsd-arm64" "0.25.12" - "@esbuild/netbsd-x64" "0.25.12" - "@esbuild/openbsd-arm64" "0.25.12" - "@esbuild/openbsd-x64" "0.25.12" - "@esbuild/openharmony-arm64" "0.25.12" - "@esbuild/sunos-x64" "0.25.12" - "@esbuild/win32-arm64" "0.25.12" - "@esbuild/win32-ia32" "0.25.12" - "@esbuild/win32-x64" "0.25.12" - -escalade@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -estree-walker@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" - integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== - dependencies: - "@types/estree" "^1.0.0" - -eventemitter3@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -eventemitter3@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" - integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - -expect-type@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/expect-type/-/expect-type-1.2.2.tgz#c030a329fb61184126c8447585bc75a7ec6fbff3" - integrity sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA== - -eyes@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" - integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== - -fast-stable-stringify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" - integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== - -fdir@^6.5.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350" - integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -foreground-child@^3.1.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" - integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== - dependencies: - cross-spawn "^7.0.6" - signal-exit "^4.0.1" - -fs@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/fs/-/fs-0.0.2.tgz#e1f244ef3933c1b2a64bd4799136060d0f5914f8" - integrity sha512-YAiVokMCrSIFZiroB1oz51hPiPRVcUtSa4x2U5RYXyhS9VAPdiFigKbPTnOSq7XY8wd3FIVPYmXpo5lMzFmxgg== - -fsevents@~2.3.2, fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -glob@^10.4.5: - version "10.5.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" - integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== - dependencies: - foreground-child "^3.1.0" - jackspeak "^3.1.2" - minimatch "^9.0.4" - minipass "^7.1.2" - package-json-from-dist "^1.0.0" - path-scurry "^1.11.1" - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - -jackspeak@^3.1.2: - version "3.4.3" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" - integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - -jayson@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.2.0.tgz#b71762393fa40bc9637eaf734ca6f40d3b8c0c93" - integrity sha512-VfJ9t1YLwacIubLhONk0KFeosUBwstRWQ0IRT1KDjEjnVnSOVHC3uwugyV7L0c7R9lpVyrUGT2XWiBA1UTtpyg== - dependencies: - "@types/connect" "^3.4.33" - "@types/node" "^12.12.54" - "@types/ws" "^7.4.4" - commander "^2.20.3" - delay "^5.0.0" - es6-promisify "^5.0.0" - eyes "^0.1.8" - isomorphic-ws "^4.0.1" - json-stringify-safe "^5.0.1" - stream-json "^1.9.1" - uuid "^8.3.2" - ws "^7.5.10" - -jayson@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.3.0.tgz#22eb8f3dcf37a5e893830e5451f32bde6d1bde4d" - integrity sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ== - dependencies: - "@types/connect" "^3.4.33" - "@types/node" "^12.12.54" - "@types/ws" "^7.4.4" - commander "^2.20.3" - delay "^5.0.0" - es6-promisify "^5.0.0" - eyes "^0.1.8" - isomorphic-ws "^4.0.1" - json-stringify-safe "^5.0.1" - stream-json "^1.9.1" - uuid "^8.3.2" - ws "^7.5.10" - -js-tokens@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-9.0.1.tgz#2ec43964658435296f6761b34e10671c2d9527f4" - integrity sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ== - -js-yaml@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" - integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== - dependencies: - argparse "^2.0.1" - -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -loupe@^3.1.0, loupe@^3.1.4: - version "3.2.1" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.2.1.tgz#0095cf56dc5b7a9a7c08ff5b1a8796ec8ad17e76" - integrity sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ== - -lru-cache@^10.2.0: - version "10.4.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" - integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== - -magic-string@^0.30.17: - version "0.30.21" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.21.tgz#56763ec09a0fa8091df27879fd94d19078c00d91" - integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== - dependencies: - "@jridgewell/sourcemap-codec" "^1.5.5" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -minimatch@^9.0.4, minimatch@^9.0.5: - version "9.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" - integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== - dependencies: - brace-expansion "^2.0.1" - -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" - integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== - -mocha@^11.2.2: - version "11.7.5" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.7.5.tgz#58f5bbfa5e0211ce7e5ee6128107cefc2515a627" - integrity sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig== - dependencies: - browser-stdout "^1.3.1" - chokidar "^4.0.1" - debug "^4.3.5" - diff "^7.0.0" - escape-string-regexp "^4.0.0" - find-up "^5.0.0" - glob "^10.4.5" - he "^1.2.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - log-symbols "^4.1.0" - minimatch "^9.0.5" - ms "^2.1.3" - picocolors "^1.1.1" - serialize-javascript "^6.0.2" - strip-json-comments "^3.1.1" - supports-color "^8.1.1" - workerpool "^9.2.0" - yargs "^17.7.2" - yargs-parser "^21.1.1" - yargs-unparser "^2.0.0" - -ms@^2.0.0, ms@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -nanoid@^3.3.11: - version "3.3.11" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" - integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== - -node-fetch@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - -node-gyp-build@^4.3.0: - version "4.8.4" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" - integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -package-json-from-dist@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" - integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== - -pako@^2.0.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.2.0.tgz#246b9d4c841a8d308e484c0d03786651b143e63a" - integrity sha512-zJq6RP/5q+TO2OpFV3FHzlPnFjmkb7Nc99a5SNjJE+uu/PkpChs+NIZSSzbBoD+6kjiISXjfYdwj1ZRQ81dz/w== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-scurry@^1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" - integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== - dependencies: - lru-cache "^10.2.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - -pathe@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.3.tgz#3ecbec55421685b70a9da872b2cff3e1cbed1716" - integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== - -pathval@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.1.tgz#8855c5a2899af072d6ac05d11e46045ad0dc605d" - integrity sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ== - -picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - -picomatch@^4.0.2, picomatch@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042" - integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== - -postcss@^8.5.6: - version "8.5.6" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.6.tgz#2825006615a619b4f62a9e7426cc120b349a8f3c" - integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== - dependencies: - nanoid "^3.3.11" - picocolors "^1.1.1" - source-map-js "^1.2.1" - prettier@^3.5.3: - version "3.6.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.6.2.tgz#ccda02a1003ebbb2bfda6f83a074978f608b9393" - integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ== - -pvtsutils@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.6.tgz#ec46e34db7422b9e4fdc5490578c1883657d6001" - integrity sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg== - dependencies: - tslib "^2.8.1" - -pvutils@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.5.tgz#84b0dea4a5d670249aa9800511804ee0b7c2809c" - integrity sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -readdirp@^4.0.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" - integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -rollup@^4.43.0: - version "4.53.3" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.53.3.tgz#dbc8cd8743b38710019fb8297e8d7a76e3faa406" - integrity sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA== - dependencies: - "@types/estree" "1.0.8" - optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.53.3" - "@rollup/rollup-android-arm64" "4.53.3" - "@rollup/rollup-darwin-arm64" "4.53.3" - "@rollup/rollup-darwin-x64" "4.53.3" - "@rollup/rollup-freebsd-arm64" "4.53.3" - "@rollup/rollup-freebsd-x64" "4.53.3" - "@rollup/rollup-linux-arm-gnueabihf" "4.53.3" - "@rollup/rollup-linux-arm-musleabihf" "4.53.3" - "@rollup/rollup-linux-arm64-gnu" "4.53.3" - "@rollup/rollup-linux-arm64-musl" "4.53.3" - "@rollup/rollup-linux-loong64-gnu" "4.53.3" - "@rollup/rollup-linux-ppc64-gnu" "4.53.3" - "@rollup/rollup-linux-riscv64-gnu" "4.53.3" - "@rollup/rollup-linux-riscv64-musl" "4.53.3" - "@rollup/rollup-linux-s390x-gnu" "4.53.3" - "@rollup/rollup-linux-x64-gnu" "4.53.3" - "@rollup/rollup-linux-x64-musl" "4.53.3" - "@rollup/rollup-openharmony-arm64" "4.53.3" - "@rollup/rollup-win32-arm64-msvc" "4.53.3" - "@rollup/rollup-win32-ia32-msvc" "4.53.3" - "@rollup/rollup-win32-x64-gnu" "4.53.3" - "@rollup/rollup-win32-x64-msvc" "4.53.3" - fsevents "~2.3.2" - -rpc-websockets@^9.0.2, rpc-websockets@^9.0.4: - version "9.3.1" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.3.1.tgz#d817a59d812f68bae1215740a3f78fcdd3813698" - integrity sha512-bY6a+i/lEtBJ/mUxwsCTgevoV1P0foXTVA7UoThzaIWbM+3NDqorf8NBWs5DmqKTFeA1IoNzgvkWjFCPgnzUiQ== - dependencies: - "@swc/helpers" "^0.5.11" - "@types/uuid" "^8.3.4" - "@types/ws" "^8.2.2" - buffer "^6.0.3" - eventemitter3 "^5.0.1" - uuid "^8.3.2" - ws "^8.5.0" - optionalDependencies: - bufferutil "^4.0.1" - utf-8-validate "^5.0.2" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -serialize-javascript@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" - integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== - dependencies: - randombytes "^2.1.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -siginfo@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" - integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== - -signal-exit@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -source-map-js@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" - integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== - -stackback@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" - integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== - -std-env@^3.9.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.10.0.tgz#d810b27e3a073047b2b5e40034881f5ea6f9c83b" - integrity sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg== - -stream-chain@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/stream-chain/-/stream-chain-2.2.5.tgz#b30967e8f14ee033c5b9a19bbe8a2cba90ba0d09" - integrity sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA== - -stream-json@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/stream-json/-/stream-json-1.9.1.tgz#e3fec03e984a503718946c170db7d74556c2a187" - integrity sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw== - dependencies: - stream-chain "^2.2.5" - -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1: - version "7.1.2" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" - integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== - dependencies: - ansi-regex "^6.0.1" - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -strip-literal@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-3.1.0.tgz#222b243dd2d49c0bcd0de8906adbd84177196032" - integrity sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg== - dependencies: - js-tokens "^9.0.1" - -superstruct@^0.15.4: - version "0.15.5" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" - integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== - -superstruct@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-2.0.2.tgz#3f6d32fbdc11c357deff127d591a39b996300c54" - integrity sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A== - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -text-encoding-utf-8@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" - integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== - -tinybench@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.9.0.tgz#103c9f8ba6d7237a47ab6dd1dcff77251863426b" - integrity sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg== - -tinyexec@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.2.tgz#941794e657a85e496577995c6eef66f53f42b3d2" - integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA== - -tinyglobby@^0.2.14, tinyglobby@^0.2.15: - version "0.2.15" - resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.15.tgz#e228dd1e638cea993d2fdb4fcd2d4602a79951c2" - integrity sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ== - dependencies: - fdir "^6.5.0" - picomatch "^4.0.3" - -tinypool@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-1.1.1.tgz#059f2d042bd37567fbc017d3d426bdd2a2612591" - integrity sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg== - -tinyrainbow@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-2.0.0.tgz#9509b2162436315e80e3eee0fcce4474d2444294" - integrity sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw== - -tinyspy@^4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-4.0.4.tgz#d77a002fb53a88aa1429b419c1c92492e0c81f78" - integrity sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q== - -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -ts-mocha@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-11.1.0.tgz#d8336ec0146bd6f36cca2555f4cfc7df85bd1586" - integrity sha512-yT7FfzNRCu8ZKkYvAOiH01xNma/vLq6Vit7yINKYFNVP8e5UyrYXSOMIipERTpzVKJQ4Qcos5bQo1tNERNZevQ== - -ts-node@^10.9.2: - version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" - integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tslib@^2.8.0, tslib@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" - integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -typescript@^5.3.0, typescript@^5.8.3: - version "5.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" - integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== - -undici-types@^7.16.0, undici-types@~7.16.0: - version "7.16.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" - integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== - -undici-types@^8.10.2: - version "8.10.2" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" - integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== - -utf-8-validate@^5.0.2: - version "5.0.10" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" - integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== - dependencies: - node-gyp-build "^4.3.0" - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -vite-node@3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-3.2.4.tgz#f3676d94c4af1e76898c162c92728bca65f7bb07" - integrity sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg== - dependencies: - cac "^6.7.14" - debug "^4.4.1" - es-module-lexer "^1.7.0" - pathe "^2.0.3" - vite "^5.0.0 || ^6.0.0 || ^7.0.0-0" - -"vite@^5.0.0 || ^6.0.0 || ^7.0.0-0": - version "7.2.4" - resolved "https://registry.yarnpkg.com/vite/-/vite-7.2.4.tgz#a3a09c7e25487612ecc1119c7d412c73da35bd4e" - integrity sha512-NL8jTlbo0Tn4dUEXEsUg8KeyG/Lkmc4Fnzb8JXN/Ykm9G4HNImjtABMJgkQoVjOBN/j2WAwDTRytdqJbZsah7w== - dependencies: - esbuild "^0.25.0" - fdir "^6.5.0" - picomatch "^4.0.3" - postcss "^8.5.6" - rollup "^4.43.0" - tinyglobby "^0.2.15" - optionalDependencies: - fsevents "~2.3.3" - -vitest@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-3.2.4.tgz#0637b903ad79d1539a25bc34c0ed54b5c67702ea" - integrity sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A== - dependencies: - "@types/chai" "^5.2.2" - "@vitest/expect" "3.2.4" - "@vitest/mocker" "3.2.4" - "@vitest/pretty-format" "^3.2.4" - "@vitest/runner" "3.2.4" - "@vitest/snapshot" "3.2.4" - "@vitest/spy" "3.2.4" - "@vitest/utils" "3.2.4" - chai "^5.2.0" - debug "^4.4.1" - expect-type "^1.2.1" - magic-string "^0.30.17" - pathe "^2.0.3" - picomatch "^4.0.2" - std-env "^3.9.0" - tinybench "^2.9.0" - tinyexec "^0.3.2" - tinyglobby "^0.2.14" - tinypool "^1.1.1" - tinyrainbow "^2.0.0" - vite "^5.0.0 || ^6.0.0 || ^7.0.0-0" - vite-node "3.2.4" - why-is-node-running "^2.3.0" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -why-is-node-running@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.3.0.tgz#a3f69a97107f494b3cdc3bdddd883a7d65cebf04" - integrity sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w== - dependencies: - siginfo "^2.0.0" - stackback "0.0.2" - -workerpool@^9.2.0: - version "9.3.4" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-9.3.4.tgz#f6c92395b2141afd78e2a889e80cb338fe9fca41" - integrity sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg== - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - -ws@^7.5.10: - version "7.5.10" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" - integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== - -ws@^8.21.3: - version "8.21.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" - integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== - -ws@^8.5.0: - version "8.18.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" - integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs-unparser@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@^17.7.2: - version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + version "3.9.9" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.9.9.tgz#09b826918c91cd4cbc80e0cbd1d2a922ff04f233" + integrity sha512-Z/CJHIkdujO/OtN7nXUii0Rf3VT5SRuhjBA82Xvu2XhBUgX3nhP67T0LHceBdQLex7OOFGTox+Q5Yg8Jk2Qivg== diff --git a/oracle-priced-purchase/anchor/README.md b/oracle-priced-purchase/anchor/README.md index a0337d26..3a04d3be 100644 --- a/oracle-priced-purchase/anchor/README.md +++ b/oracle-priced-purchase/anchor/README.md @@ -42,7 +42,7 @@ yarn yarn build ``` -Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): +Run the Rust test suite in `tests-magicsvm-rs/` in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash yarn test @@ -52,7 +52,7 @@ MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no va network. The suite charges a USD-priced purchase from a SOL/USD oracle and rejects purchases above the buyer's maximum lamport cost. -A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. +`yarn test` runs `cargo +stable test`: MagicSVM needs a newer Rust than the 1.89 toolchain used for program builds. For a live MagicBlock feed, run the chain pusher from the oracle repository, pass the SOL/USD Pyth feed ID to `initialize_store`, and pass the corresponding diff --git a/oracle-priced-purchase/anchor/package.json b/oracle-priced-purchase/anchor/package.json index ad36b899..f4a9f82e 100644 --- a/oracle-priced-purchase/anchor/package.json +++ b/oracle-priced-purchase/anchor/package.json @@ -2,26 +2,11 @@ "scripts": { "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", - "test": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests/oracle-priced-purchase.ts", - "build": "anchor build --ignore-keys", - "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture" - }, - "dependencies": { - "@coral-xyz/anchor": "0.32.1", - "@magicblock-labs/magicsvm": "0.2.0", - "@solana/web3.js": "^1.98.4" + "test": "cargo +stable test --manifest-path tests-magicsvm-rs/Cargo.toml", + "build": "anchor build --ignore-keys" }, "devDependencies": { - "@types/bn.js": "^5.1.0", - "@types/chai": "^5.2.2", - "@types/mocha": "^10.0.10", - "chai": "^5.2.0", - "mocha": "^11.2.2", - "prettier": "^3.5.3", - "ts-mocha": "^11.1.0", - "ts-node": "^10.9.2", - "typescript": "^5.8.3", - "@magicblock-labs/test-utils": "link:../../test-utils/ts" + "prettier": "^3.5.3" }, "license": "MIT", "packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447" diff --git a/oracle-priced-purchase/anchor/tests/oracle-priced-purchase.ts b/oracle-priced-purchase/anchor/tests/oracle-priced-purchase.ts deleted file mode 100644 index 9bfbd861..00000000 --- a/oracle-priced-purchase/anchor/tests/oracle-priced-purchase.ts +++ /dev/null @@ -1,221 +0,0 @@ -import * as anchor from "@coral-xyz/anchor"; -import { Program } from "@coral-xyz/anchor"; -import { MagicSVM } from "@magicblock-labs/magicsvm"; -import { - airdropOrThrow, - bootAnchorSvm, - sendSvmIx, - setUnixTimestamp, -} from "@magicblock-labs/test-utils"; -import { - Keypair, - LAMPORTS_PER_SOL, - PublicKey, - SystemProgram, -} from "@solana/web3.js"; -import { assert } from "chai"; -import * as fs from "fs"; -import * as path from "path"; -import { OraclePricedPurchase } from "../target/types/oracle_priced_purchase"; - -const RECEIPT_SEED = "receipt"; -const STORE_SEED = "store"; -const SOL_USD_100_PRICE = new PublicKey( - "B8vx8v7SwZsmFYz3fkSJphr7uq34LoiVr18pimLG5FJM", -); -const SOL_USD_50_PRICE = new PublicKey( - "EpdAP2KHQAXPccREjM1WsLiyKVcchYj82pv9sWZhYUY1", -); -const SOL_USD_100_FEED_ID = Array.from( - Buffer.from( - "969cefe5a1c3dc424aeaf191893d642799b8545431b5e2560e1cc78ccfdd91d6", - "hex", - ), -); -const SOL_USD_50_FEED_ID = Array.from( - Buffer.from( - "cd5b1dc2e5486ee8a1fa93a76ad56a1d15fef45c54fac50c7b489f1f3be0136a", - "hex", - ), -); -const PRICE_PUBLISH_TIME_OFFSET = 93; -const FIXTURES_DIR = path.join( - __dirname, - "..", - "tests", - "fixtures", - "accounts", -); - -type FixtureAccount = { - pubkey: string; - account: { - lamports: number; - data: [string, string]; - owner: string; - executable: boolean; - rentEpoch?: number; - }; -}; - -function loadOracleFixtures(svm: MagicSVM): bigint { - let publishTime = 0n; - for (const file of fs.readdirSync(FIXTURES_DIR)) { - if (!file.endsWith(".json")) { - continue; - } - const fixture = JSON.parse( - fs.readFileSync(path.join(FIXTURES_DIR, file), "utf8"), - ) as FixtureAccount; - const encoding = fixture.account.data[1] as BufferEncoding; - const data = Buffer.from(fixture.account.data[0], encoding); - svm.setAccount({ - address: fixture.pubkey, - executable: fixture.account.executable, - lamports: BigInt(fixture.account.lamports), - programAddress: fixture.account.owner, - space: BigInt(data.length), - data: new Uint8Array(data), - }); - if (data.length > PRICE_PUBLISH_TIME_OFFSET + 8) { - publishTime = data.readBigInt64LE(PRICE_PUBLISH_TIME_OFFSET); - } - } - return publishTime; -} - -function decodeAccount( - program: Program, - name: string, - address: PublicKey, - svm: MagicSVM, -): T { - const account = svm.getAccountFor(address, { target: "base" }); - if (!account.exists) { - throw new Error(`account ${address.toBase58()} does not exist`); - } - return program.coder.accounts.decode(name, Buffer.from(account.data)) as T; -} - -describe("oracle-priced-purchase", () => { - const merchant = Keypair.generate(); - const buyer = Keypair.generate(); - const { svm, program } = bootAnchorSvm({ - fromDir: __dirname, - programName: "oracle_priced_purchase", - payer: merchant, - airdropLamports: BigInt(10 * LAMPORTS_PER_SOL), - }); - const [store] = PublicKey.findProgramAddressSync( - [Buffer.from(STORE_SEED)], - program.programId, - ); - const [receipt] = PublicKey.findProgramAddressSync( - [Buffer.from(RECEIPT_SEED), buyer.publicKey.toBuffer()], - program.programId, - ); - - before(async () => { - airdropOrThrow( - svm, - buyer.publicKey, - BigInt(2 * LAMPORTS_PER_SOL), - "airdrop buyer", - ); - setUnixTimestamp(svm, loadOracleFixtures(svm)); - sendSvmIx( - svm, - [merchant], - await program.methods - .initializeStore(new anchor.BN(2_500), SOL_USD_100_FEED_ID) - .accountsPartial({ - store, - merchant: merchant.publicKey, - systemProgram: SystemProgram.programId, - }) - .instruction(), - "base", - ); - }); - - it("uses the SOL/USD oracle price to charge a USD-priced token purchase", async () => { - sendSvmIx( - svm, - [merchant, buyer], - await program.methods - .buyToken(new anchor.BN(2), new anchor.BN(600_000_000)) - .accountsPartial({ - store, - receipt, - buyer: buyer.publicKey, - merchant: merchant.publicKey, - priceUpdate: SOL_USD_100_PRICE, - systemProgram: SystemProgram.programId, - }) - .instruction(), - "base", - ); - - const storeState = decodeAccount<{ - tokenPriceUsdCents: { toString(): string }; - soldCount: { toString(): string }; - }>(program, "store", store, svm); - assert.equal(storeState.tokenPriceUsdCents.toString(), "2500"); - assert.equal(storeState.soldCount.toString(), "2"); - - const receiptState = decodeAccount<{ - buyer: PublicKey; - totalQuantity: { toString(): string }; - totalPaidLamports: { toString(): string }; - lastUnitPriceUsdCents: { toString(): string }; - lastPaidLamports: { toString(): string }; - oraclePrice: { toString(): string }; - oracleExponent: number; - }>(program, "purchaseReceipt", receipt, svm); - assert.equal(receiptState.buyer.toBase58(), buyer.publicKey.toBase58()); - assert.equal(receiptState.totalQuantity.toString(), "2"); - assert.equal(receiptState.totalPaidLamports.toString(), "500000000"); - assert.equal(receiptState.lastUnitPriceUsdCents.toString(), "2500"); - assert.equal(receiptState.lastPaidLamports.toString(), "500000000"); - assert.equal(receiptState.oraclePrice.toString(), "10000"); - assert.equal(receiptState.oracleExponent, -2); - }); - - it("rejects a purchase when the oracle-derived SOL cost exceeds max_lamports", async () => { - sendSvmIx( - svm, - [merchant], - await program.methods - .initializeStore(new anchor.BN(2_500), SOL_USD_50_FEED_ID) - .accountsPartial({ - store, - merchant: merchant.publicKey, - systemProgram: SystemProgram.programId, - }) - .instruction(), - "base", - ); - - try { - sendSvmIx( - svm, - [merchant, buyer], - await program.methods - .buyToken(new anchor.BN(1), new anchor.BN(400_000_000)) - .accountsPartial({ - store, - receipt, - buyer: buyer.publicKey, - merchant: merchant.publicKey, - priceUpdate: SOL_USD_50_PRICE, - systemProgram: SystemProgram.programId, - }) - .instruction(), - "base", - ); - assert.fail("expected max_lamports check to reject the purchase"); - } catch (error) { - assert.include(String(error), "PaymentTooHigh"); - } - }); -}); diff --git a/oracle-priced-purchase/anchor/tsconfig.json b/oracle-priced-purchase/anchor/tsconfig.json deleted file mode 100644 index 2469f714..00000000 --- a/oracle-priced-purchase/anchor/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "types": ["mocha", "node"], - "typeRoots": ["./node_modules/@types"], - "lib": ["es2020"], - "module": "commonjs", - "target": "es2020", - "esModuleInterop": true, - "skipLibCheck": true - } -} diff --git a/oracle-priced-purchase/anchor/yarn.lock b/oracle-priced-purchase/anchor/yarn.lock index dd7108c8..4a9f7977 100644 --- a/oracle-priced-purchase/anchor/yarn.lock +++ b/oracle-priced-purchase/anchor/yarn.lock @@ -2,1911 +2,7 @@ # yarn lockfile v1 -"@babel/runtime@^7.25.0", "@babel/runtime@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.7.tgz#12022450c45a4da6d8d8287b18a4ff2ddb23f768" - integrity sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw== - -"@coral-xyz/anchor-errors@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" - integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== - -"@coral-xyz/anchor@0.32.1": - version "0.32.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" - integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== - dependencies: - "@coral-xyz/anchor-errors" "^0.31.1" - "@coral-xyz/borsh" "^0.31.1" - "@noble/hashes" "^1.3.1" - "@solana/web3.js" "^1.69.0" - bn.js "^5.1.2" - bs58 "^4.0.1" - buffer-layout "^1.2.2" - camelcase "^6.3.0" - cross-fetch "^3.1.5" - eventemitter3 "^4.0.7" - pako "^2.0.3" - superstruct "^0.15.4" - toml "^3.0.0" - -"@coral-xyz/borsh@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.31.1.tgz#5328e1e0921b75d7f4a62dd3f61885a938bc7241" - integrity sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw== - dependencies: - bn.js "^5.1.2" - buffer-layout "^1.2.0" - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" - integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@magicblock-labs/ephemeral-rollups-sdk@0.14.3": - version "0.14.3" - resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.14.3.tgz#536c215d1daefdbcfa82a79304b08f5014405c58" - integrity sha512-CoByiXHLLS+l7Ojl6XJuYypP/k08ymFkab8+Gh/HCv5Gn2oC4VkwszEQoTDnKo++8Oxbqr9YVGzAMUW4Km7cLA== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@phala/dcap-qvl" "^0.3.9" - "@solana/web3.js" "^1.98.0" - bs58 "^6.0.0" - rpc-websockets "^9.0.4" - tweetnacl "^1.0.3" - typescript "^5.3.0" - -"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" - integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== - -"@magicblock-labs/magicsvm-darwin-x64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" - integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== - -"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" - integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== - -"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" - integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== - -"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" - integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== - -"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" - integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== - -"@magicblock-labs/magicsvm@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" - integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== - dependencies: - "@solana/web3.js" "3.0.0-rc.3" - optionalDependencies: - "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" - "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" - -"@magicblock-labs/test-utils@link:../../test-utils/ts": - version "0.0.0" - uid "" - -"@noble/curves@^1.4.2", "@noble/curves@^1.9.7": - version "1.9.7" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" - integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== - dependencies: - "@noble/hashes" "1.8.0" - -"@noble/hashes@1.8.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0", "@noble/hashes@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" - integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== - -"@peculiar/asn1-schema@^2.3.13", "@peculiar/asn1-schema@^2.9.4": - version "2.9.4" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.9.4.tgz#99003d4bc87ec2ed2c4deb2843404496a912c3cf" - integrity sha512-GjzePcT9Iw8NzeOPf73iNS9xM+TBhd/FilAfP+RQGkTMQJTVWtytN3JHJACCjf/ABNau5S7mS3g+DcuxmRgYEg== - dependencies: - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.10" - tslib "^2.8.1" - -"@peculiar/asn1-x509@^2.3.13": - version "2.9.4" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.9.4.tgz#f997898c48ba6536bed640f788734d36477c21ad" - integrity sha512-CxhBo/RdEbMMob7T31ZdQjGuoyRFLVwrDzTn25bihzBasRg9kRm/0IxIPvhgQtcK/9dNcO1XQL2fuPugwELL0Q== - dependencies: - "@peculiar/asn1-schema" "^2.9.4" - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.10" - tslib "^2.8.1" - -"@peculiar/utils@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@peculiar/utils/-/utils-2.0.3.tgz#a27ca4c4b73652e110f19a7d16d664f458a5528e" - integrity sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ== - dependencies: - tslib "^2.8.1" - -"@phala/dcap-qvl@^0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@phala/dcap-qvl/-/dcap-qvl-0.3.9.tgz#34da2506c31954cd290afb5a46146cd52ae24481" - integrity sha512-s/4gAFVq1DRhYkuerDR9WAlX8tkCpFTHTVpWnWlrigj5la2X5OtQl9Y7PzwcqY4h0fc25yqZrcRH3AZpzB1qOw== - dependencies: - "@peculiar/asn1-schema" "^2.3.13" - "@peculiar/asn1-x509" "^2.3.13" - asn1.js "^5.4.1" - bn.js "^5.2.2" - buffer "^6.0.3" - elliptic "^6.6.1" - hash.js "^1.1.7" - node-fetch "^2.7.0" - -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - -"@solana-program/address-lookup-table@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" - integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== - -"@solana-program/compute-budget@^0.18.0": - version "0.18.1" - resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" - integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== - -"@solana-program/loader-v3@^0.6.0": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" - integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== - -"@solana-program/stake@^0.9.0": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" - integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== - -"@solana-program/system@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" - integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== - -"@solana/accounts@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" - integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/addresses@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" - integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" - integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/buffer-layout@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" - integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== - dependencies: - buffer "~6.0.3" - -"@solana/codecs-core@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-2.3.0.tgz#6bf2bb565cb1ae880f8018635c92f751465d8695" - integrity sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw== - dependencies: - "@solana/errors" "2.3.0" - -"@solana/codecs-core@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-5.5.1.tgz#1b2619c697ad04c99f98cc468135d584b7e2b16d" - integrity sha512-TgBt//bbKBct0t6/MpA8ElaOA3sa8eYVvR7LGslCZ84WiAwwjCY0lW/lOYsFHJQzwREMdUyuEyy5YWBKtdh8Rw== - dependencies: - "@solana/errors" "5.5.1" - -"@solana/codecs-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" - integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/codecs-data-structures@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" - integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" - integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@^2.1.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" - integrity sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg== - dependencies: - "@solana/codecs-core" "2.3.0" - "@solana/errors" "2.3.0" - -"@solana/codecs-numbers@^5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-5.5.1.tgz#6ebc43250133ceb7836f1ac5780a7767e383efde" - integrity sha512-rllMIZAHqmtvC0HO/dc/21wDuWaD0B8Ryv8o+YtsICQBuiL/0U4AGwH7Pi5GNFySYk0/crSuwfIqQFtmxNSPFw== - dependencies: - "@solana/codecs-core" "5.5.1" - "@solana/errors" "5.5.1" - -"@solana/codecs-strings@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" - integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" - integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/options" "8.3.0" - -"@solana/errors@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.3.0.tgz#4ac9380343dbeffb9dffbcb77c28d0e457c5fa31" - integrity sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ== - dependencies: - chalk "^5.4.1" - commander "^14.0.0" - -"@solana/errors@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-5.5.1.tgz#1c17bc822264fd5a6305d8bfb9d597858e4ce17b" - integrity sha512-vFO3p+S7HoyyrcAectnXbdsMfwUzY2zYFUc2DEe5BwpiE9J1IAxPBGjOWO6hL1bbYdBrlmjNx8DXCslqS+Kcmg== - dependencies: - chalk "5.6.2" - commander "14.0.2" - -"@solana/errors@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" - integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== - dependencies: - chalk "5.6.2" - commander "15.0.0" - -"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" - integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== - -"@solana/fixed-points@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" - integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/functional@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" - integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== - -"@solana/instruction-plans@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" - integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/instructions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" - integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/keys@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" - integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/kit@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" - integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/plugin-core" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/program-client-core" "8.3.0" - "@solana/programs" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/subscribable" "8.3.0" - "@solana/sysvars" "8.3.0" - "@solana/transaction-confirmation" "8.3.0" - "@solana/transaction-introspection" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/nominal-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" - integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== - -"@solana/offchain-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" - integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/options@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" - integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/plugin-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" - integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== - -"@solana/plugin-interfaces@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" - integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/program-client-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" - integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/signers" "8.3.0" - -"@solana/programs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" - integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/promises@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" - integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== - -"@solana/rpc-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" - integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-parsed-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" - integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== - -"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" - integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/rpc-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" - integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" - integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-subscriptions-channel-websocket@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" - integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/subscribable" "8.3.0" - ws "^8.21.3" - -"@solana/rpc-subscriptions-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" - integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" - integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions-api" "8.3.0" - "@solana/rpc-subscriptions-channel-websocket" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-transformers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" - integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/rpc-transport-http@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" - integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - undici-types "^8.10.2" - -"@solana/rpc-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" - integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/rpc@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" - integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-transport-http" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/signers@8.3.0", "@solana/signers@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" - integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/subscribable@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" - integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/sysvars@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" - integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transaction-confirmation@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" - integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-introspection@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" - integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" - integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transactions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" - integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - -"@solana/web3.js@3.0.0-rc.3": - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" - integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@solana-program/address-lookup-table" "^0.14.0" - "@solana-program/compute-budget" "^0.18.0" - "@solana-program/loader-v3" "^0.6.0" - "@solana-program/stake" "^0.9.0" - "@solana-program/system" "^0.14.0" - "@solana/assertions" "^8.2.0" - "@solana/fast-stable-stringify" "^8.2.0" - "@solana/kit" "^8.2.0" - "@solana/rpc-spec-types" "^8.2.0" - "@solana/signers" "^8.2.0" - -"@solana/web3.js@^1.69.0": - version "1.98.4" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" - integrity sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw== - 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.1.0" - agentkeepalive "^4.5.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.1.1" - node-fetch "^2.7.0" - rpc-websockets "^9.0.2" - superstruct "^2.0.2" - -"@solana/web3.js@^1.98.0", "@solana/web3.js@^1.98.4": - version "1.99.0" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.99.0.tgz#864ce3fefe03b258c430e31e6672b422426821f7" - integrity sha512-QZYQ2T1z6xWisoyALPq25i/QZTsRlM02BABtAsfaQ1p8wX4SdTfxrKTRue/ZZqrhNVh5oL7T/DUFiTS9DRgxow== - dependencies: - "@babel/runtime" "^7.29.7" - "@noble/curves" "^1.9.7" - "@noble/hashes" "^1.8.0" - "@solana/buffer-layout" "^4.0.1" - "@solana/codecs-numbers" "^5.5.1" - agentkeepalive "^4.6.0" - bn.js "^5.2.5" - borsh "^0.7.0" - bs58 "^4.0.1" - buffer "6.0.3" - fast-stable-stringify "^1.0.0" - jayson "^4.3.0" - node-fetch "^2.7.0" - rpc-websockets "^9.0.2" - superstruct "^2.0.2" - -"@swc/helpers@^0.5.11": - version "0.5.23" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.23.tgz#19287d0d86d962b111376039a50c792902c9a86a" - integrity sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw== - dependencies: - tslib "^2.8.0" - -"@tsconfig/node10@^1.0.7": - version "1.0.12" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.12.tgz#be57ceac1e4692b41be9de6be8c32a106636dba4" - integrity sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@types/bn.js@^5.1.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.2.0.tgz#4349b9710e98f9ab3cdc50f1c5e4dcbd8ef29c80" - integrity sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q== - dependencies: - "@types/node" "*" - -"@types/chai@^5.2.2": - version "5.2.3" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-5.2.3.tgz#8e9cd9e1c3581fa6b341a5aed5588eb285be0b4a" - integrity sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA== - dependencies: - "@types/deep-eql" "*" - assertion-error "^2.0.1" - -"@types/connect@^3.4.33": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" - integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== - dependencies: - "@types/node" "*" - -"@types/deep-eql@*": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/deep-eql/-/deep-eql-4.0.2.tgz#334311971d3a07121e7eb91b684a605e7eea9cbd" - integrity sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw== - -"@types/mocha@^10.0.10": - version "10.0.10" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.10.tgz#91f62905e8d23cbd66225312f239454a23bebfa0" - integrity sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q== - -"@types/node@*": - version "26.0.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-26.0.1.tgz#4a60e2c7a6d68bd261e265f8983bfe1601263ce3" - integrity sha512-fc3KiUoBt6kie0N9bIW3E47vZsuaMf0PM2AaUpLCLT0s/LvX1nxAim6Fc049cNxODPpGm6qRAuUOB86SkRuPQw== - dependencies: - undici-types "~8.3.0" - -"@types/node@^12.12.54": - version "12.20.55" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - -"@types/ws@^7.4.4": - version "7.4.7" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - dependencies: - "@types/node" "*" - -"@types/ws@^8.2.2": - version "8.18.1" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" - integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== - dependencies: - "@types/node" "*" - -acorn-walk@^8.1.1: - version "8.3.5" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.5.tgz#8a6b8ca8fc5b34685af15dabb44118663c296496" - integrity sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw== - dependencies: - acorn "^8.11.0" - -acorn@^8.11.0, acorn@^8.4.1: - version "8.17.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.17.0.tgz#1785adb84faf8d8add10369b93826fc2bd08f1fe" - integrity sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg== - -agentkeepalive@^4.5.0, agentkeepalive@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" - integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== - dependencies: - humanize-ms "^1.2.1" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" - integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^6.1.0: - version "6.2.3" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" - integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -asn1.js@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1js@^3.0.10: - version "3.0.10" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.10.tgz#df26c874c8a8b41ca605efea47b2ad07551013dd" - integrity sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg== - dependencies: - pvtsutils "^1.3.6" - pvutils "^1.1.5" - tslib "^2.8.1" - -assertion-error@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" - integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base-x@^3.0.2: - version "3.0.11" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.11.tgz#40d80e2a1aeacba29792ccc6c5354806421287ff" - integrity sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA== - dependencies: - safe-buffer "^5.0.1" - -base-x@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-5.0.1.tgz#16bf35254be1df8aca15e36b7c1dda74b2aa6b03" - integrity sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bn.js@^4.0.0, bn.js@^4.11.9: - version "4.12.5" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.5.tgz#74f119ffecd823168d188eae06d97ea40835c489" - integrity sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ== - -bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: - version "5.2.4" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.4.tgz#1208fc250bb193fc5f8f0b5fa59e642e706f7103" - integrity sha512-QL7sb18rJ1PbdsKsqPA0guxL563vIMwRHgzNrW/uzQuRGN1Cjqd/wonUBAVqHox9KwzHA6vCbM0lXx3k4iQMow== - -bn.js@^5.2.2, bn.js@^5.2.5: - version "5.2.5" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.5.tgz#e81ce41cf25e6f0cd1e05f20a9db8c18405e375f" - integrity sha512-Vq886eXykuP5E6HcKSSStP3bJgrE6In5WKxVUvJ8XGpWWYs2xZHWqUwzCtGgEtBcxyd57KBFDPFoUfNzdaHCNg== - -borsh@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" - integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== - dependencies: - bn.js "^5.2.0" - bs58 "^4.0.0" - text-encoding-utf-8 "^1.0.2" - -brace-expansion@^2.0.2: - version "2.1.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.1.1.tgz#c68b1c4111c76aae3a6fba55d496cee10c39dad8" - integrity sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA== - dependencies: - balanced-match "^1.0.0" - -brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browser-stdout@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -bs58@^4.0.0, bs58@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - dependencies: - base-x "^3.0.2" - -bs58@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-6.0.0.tgz#a2cda0130558535dd281a2f8697df79caaf425d8" - integrity sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw== - dependencies: - base-x "^5.0.0" - -buffer-layout@^1.2.0, buffer-layout@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" - integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== - -buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -bufferutil@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.1.0.tgz#a4623541dd23867626bb08a051ec0d2ec0b70294" - integrity sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw== - dependencies: - node-gyp-build "^4.3.0" - -camelcase@^6.0.0, camelcase@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -chai@^5.2.0: - version "5.3.3" - resolved "https://registry.yarnpkg.com/chai/-/chai-5.3.3.tgz#dd3da955e270916a4bd3f625f4b919996ada7e06" - integrity sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw== - dependencies: - assertion-error "^2.0.1" - check-error "^2.1.1" - deep-eql "^5.0.1" - loupe "^3.1.0" - pathval "^2.0.0" - -chalk@5.6.2, chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - -chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -check-error@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.3.tgz#2427361117b70cca8dc89680ead32b157019caf5" - integrity sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA== - -chokidar@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" - integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== - dependencies: - readdirp "^4.0.1" - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -commander@14.0.2: - version "14.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e" - integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== - -commander@15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" - integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== - -commander@^14.0.0: - version "14.0.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.3.tgz#425d79b48f9af82fcd9e4fc1ea8af6c5ec07bbc2" - integrity sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw== - -commander@^2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-fetch@^3.1.5: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" - integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== - dependencies: - node-fetch "^2.7.0" - -cross-spawn@^7.0.6: - version "7.0.6" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" - integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -debug@^4.3.5: - version "4.4.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" - integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== - dependencies: - ms "^2.1.3" - -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - -deep-eql@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" - integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== - -delay@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" - integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - -diff@^4.0.1: - version "4.0.4" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.4.tgz#7a6dbfda325f25f07517e9b518f897c08332e07d" - integrity sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ== - -diff@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-7.0.0.tgz#3fb34d387cd76d803f6eebea67b921dab0182a9a" - integrity sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw== - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -elliptic@^6.6.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" - integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== - dependencies: - es6-promise "^4.0.3" - -escalade@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eventemitter3@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -eventemitter3@^5.0.1: - version "5.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.4.tgz#a86d66170433712dde814707ac52b5271ceb1feb" - integrity sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw== - -eyes@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" - integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== - -fast-stable-stringify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" - integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -foreground-child@^3.1.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" - integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== - dependencies: - cross-spawn "^7.0.6" - signal-exit "^4.0.1" - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -glob@^10.4.5: - version "10.5.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" - integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== - dependencies: - foreground-child "^3.1.0" - jackspeak "^3.1.2" - minimatch "^9.0.4" - minipass "^7.1.2" - package-json-from-dist "^1.0.0" - path-scurry "^1.11.1" - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - -jackspeak@^3.1.2: - version "3.4.3" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" - integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - -jayson@^4.1.1, jayson@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.3.0.tgz#22eb8f3dcf37a5e893830e5451f32bde6d1bde4d" - integrity sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ== - dependencies: - "@types/connect" "^3.4.33" - "@types/node" "^12.12.54" - "@types/ws" "^7.4.4" - commander "^2.20.3" - delay "^5.0.0" - es6-promisify "^5.0.0" - eyes "^0.1.8" - isomorphic-ws "^4.0.1" - json-stringify-safe "^5.0.1" - stream-json "^1.9.1" - uuid "^8.3.2" - ws "^7.5.10" - -js-yaml@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.3.0.tgz#d1900572a7f7cf0b5f540c83673e60bad3436592" - integrity sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q== - dependencies: - argparse "^2.0.1" - -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -loupe@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.2.1.tgz#0095cf56dc5b7a9a7c08ff5b1a8796ec8ad17e76" - integrity sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ== - -lru-cache@^10.2.0: - version "10.4.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" - integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -minimatch@^9.0.4, minimatch@^9.0.5: - version "9.0.9" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.9.tgz#9b0cb9fcb78087f6fd7eababe2511c4d3d60574e" - integrity sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg== - dependencies: - brace-expansion "^2.0.2" - -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: - version "7.1.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.3.tgz#79389b4eb1bb2d003a9bba87d492f2bd37bdc65b" - integrity sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A== - -mocha@^11.2.2: - version "11.7.6" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.7.6.tgz#ebbe22989d04cbb9424a36307320476624c41a33" - integrity sha512-nS9xOGbw2I3cjCpxwZAEJ9xK9lmJ08vEkQvLtz4du9ZrF9UrjRpeJGiIgl2Z+Qs++pmB4ecDe48Fwsh+j+j7xA== - dependencies: - browser-stdout "^1.3.1" - chokidar "^4.0.1" - debug "^4.3.5" - diff "^7.0.0" - escape-string-regexp "^4.0.0" - find-up "^5.0.0" - glob "^10.4.5" - he "^1.2.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - log-symbols "^4.1.0" - minimatch "^9.0.5" - ms "^2.1.3" - picocolors "^1.1.1" - serialize-javascript "^6.0.2" - strip-json-comments "^3.1.1" - supports-color "^8.1.1" - workerpool "^9.2.0" - yargs "^17.7.2" - yargs-parser "^21.1.1" - yargs-unparser "^2.0.0" - -ms@^2.0.0, ms@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -node-fetch@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - -node-gyp-build@^4.3.0: - version "4.8.4" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" - integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -package-json-from-dist@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" - integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== - -pako@^2.0.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.2.0.tgz#246b9d4c841a8d308e484c0d03786651b143e63a" - integrity sha512-zJq6RP/5q+TO2OpFV3FHzlPnFjmkb7Nc99a5SNjJE+uu/PkpChs+NIZSSzbBoD+6kjiISXjfYdwj1ZRQ81dz/w== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-scurry@^1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" - integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== - dependencies: - lru-cache "^10.2.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - -pathval@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.1.tgz#8855c5a2899af072d6ac05d11e46045ad0dc605d" - integrity sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ== - -picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - prettier@^3.5.3: - version "3.9.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.9.4.tgz#a9c477cf1614376bd1f6bbc593d8c0d414bcec87" - integrity sha512-yWG/o/4oJfo036EKAfK6ACAoDOfHeRHx4tuxkfBZiauURiaSmYwlpOr5LQqKtIkRD2z1PLteme2WoxEnj4tHTg== - -pvtsutils@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.6.tgz#ec46e34db7422b9e4fdc5490578c1883657d6001" - integrity sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg== - dependencies: - tslib "^2.8.1" - -pvutils@^1.1.5: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.2.0.tgz#4b5487a9cccd52d275b0538775790a3ca982bc22" - integrity sha512-BbubeCEyTuQjVMakvJQ/Sxbc93F2pwmbsxONT/ZRrwU7Ua38d8unYTwXpTVLAKJ4BDuH9IGztCjQcd/N/39Dvg== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -readdirp@^4.0.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" - integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -rpc-websockets@^9.0.2, rpc-websockets@^9.0.4: - version "9.3.10" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.3.10.tgz#d6f9b08edfac40e873a059b358806f6d58572e80" - integrity sha512-QT5PQ6LiWhA5RCS93oWwgxU4XzQltkYm8C3aTmmKEgj0HolGRo3VbdzELw7CEV35l9T7Amha8Vnr4rCfSjVP+w== - dependencies: - "@swc/helpers" "^0.5.11" - "@types/ws" "^8.2.2" - buffer "^6.0.3" - eventemitter3 "^5.0.1" - ws "^8.5.0" - optionalDependencies: - bufferutil "^4.0.1" - utf-8-validate "^6.0.0" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -serialize-javascript@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" - integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== - dependencies: - randombytes "^2.1.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -stream-chain@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/stream-chain/-/stream-chain-2.2.5.tgz#b30967e8f14ee033c5b9a19bbe8a2cba90ba0d09" - integrity sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA== - -stream-json@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/stream-json/-/stream-json-1.9.1.tgz#e3fec03e984a503718946c170db7d74556c2a187" - integrity sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw== - dependencies: - stream-chain "^2.2.5" - -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.2.0.tgz#d22a269522836a627af8d04b5c3fd2c7fa3e32e3" - integrity sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w== - dependencies: - ansi-regex "^6.2.2" - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -superstruct@^0.15.4: - version "0.15.5" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" - integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== - -superstruct@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-2.0.2.tgz#3f6d32fbdc11c357deff127d591a39b996300c54" - integrity sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A== - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -text-encoding-utf-8@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" - integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== - -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -ts-mocha@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-11.1.0.tgz#d8336ec0146bd6f36cca2555f4cfc7df85bd1586" - integrity sha512-yT7FfzNRCu8ZKkYvAOiH01xNma/vLq6Vit7yINKYFNVP8e5UyrYXSOMIipERTpzVKJQ4Qcos5bQo1tNERNZevQ== - -ts-node@^10.9.2: - version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" - integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tslib@^2.8.0, tslib@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" - integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -typescript@^5.3.0, typescript@^5.8.3: - version "5.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" - integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== - -undici-types@^8.10.2: - version "8.10.2" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" - integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== - -undici-types@~8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.3.0.tgz#44e9fc9f3244648cdea35e4f9bb2d681e9410809" - integrity sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ== - -utf-8-validate@^6.0.0: - version "6.0.6" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-6.0.6.tgz#8a842c9b15af3f6323a3d5ed5eb9e61d208d8c22" - integrity sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA== - dependencies: - node-gyp-build "^4.3.0" - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -workerpool@^9.2.0: - version "9.3.4" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-9.3.4.tgz#f6c92395b2141afd78e2a889e80cb338fe9fca41" - integrity sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg== - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - -ws@^7.5.10: - version "7.5.11" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.11.tgz#9460daf1812bb81a423c5b9eac746941a86310fa" - integrity sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA== - -ws@^8.21.3: - version "8.21.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" - integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== - -ws@^8.5.0: - version "8.21.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.0.tgz#012e413fc07429945121b0c153158c4343086951" - integrity sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs-unparser@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@^17.7.2: - version "17.7.3" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.3.tgz#779dffe6bcafec596a7172e983289a588647faaa" - integrity sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + version "3.9.9" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.9.9.tgz#09b826918c91cd4cbc80e0cbd1d2a922ff04f233" + integrity sha512-Z/CJHIkdujO/OtN7nXUii0Rf3VT5SRuhjBA82Xvu2XhBUgX3nhP67T0LHceBdQLex7OOFGTox+Q5Yg8Jk2Qivg== diff --git a/private-counter/anchor/README.md b/private-counter/anchor/README.md index 8d4845c7..5c907350 100644 --- a/private-counter/anchor/README.md +++ b/private-counter/anchor/README.md @@ -37,7 +37,7 @@ yarn yarn build ``` -Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): +Run the Rust test suite in `tests-magicsvm-rs/` in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash yarn test @@ -47,7 +47,7 @@ MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no va network. The suite exercises private counter delegation, ephemeral permissions, privacy changes, commits, and undelegation. -A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. +`yarn test` runs `cargo +stable test`: MagicSVM needs a newer Rust than the 1.89 toolchain used for program builds. ## Program Instructions diff --git a/private-counter/anchor/package.json b/private-counter/anchor/package.json index bf0ee74e..44173faf 100644 --- a/private-counter/anchor/package.json +++ b/private-counter/anchor/package.json @@ -3,28 +3,10 @@ "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", "build": "anchor build --ignore-keys", - "test": "ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts", - "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture" - }, - "dependencies": { - "@coral-xyz/anchor": "0.32.1", - "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3", - "@magicblock-labs/magicsvm": "0.2.0", - "bs58": "^6.0.0", - "tweetnacl": "^1.0.3" + "test": "cargo +stable test --manifest-path tests-magicsvm-rs/Cargo.toml" }, "devDependencies": { - "@types/bn.js": "^5.1.0", - "@types/chai": "^5.2.2", - "@types/mocha": "^10.0.10", - "@types/node": "^22.15.3", - "chai": "^5.2.0", - "mocha": "^11.2.2", - "prettier": "^3.5.3", - "ts-mocha": "^11.1.0", - "ts-node": "^10.9.2", - "typescript": "^5.8.3", - "@magicblock-labs/test-utils": "link:../../test-utils/ts" + "prettier": "^3.5.3" }, "license": "MIT", "packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447" diff --git a/private-counter/anchor/tests/private-counter.ts b/private-counter/anchor/tests/private-counter.ts deleted file mode 100644 index 5b745f1a..00000000 --- a/private-counter/anchor/tests/private-counter.ts +++ /dev/null @@ -1,195 +0,0 @@ -import { - bootAnchorSvm, - EPHEMERAL_VAULT_ID, - isDelegated, - MAGIC_PROGRAM_ID, - PERMISSION_PROGRAM_ID, - permissionPdaFromAccount, - readU64le, - sendSvmTx, - validatorPubkey, -} from "@magicblock-labs/test-utils"; -import { LAMPORTS_PER_SOL, PublicKey } from "@solana/web3.js"; -import { PrivateCounter } from "../target/types/private_counter"; - -const COUNTER_SEED = "counter"; - -describe("private-counter magicsvm", () => { - const { svm, payer, program } = bootAnchorSvm({ - fromDir: __dirname, - programName: "private_counter", - airdropLamports: BigInt(2 * LAMPORTS_PER_SOL), - }); - const [counterPDA] = PublicKey.findProgramAddressSync( - [Buffer.from(COUNTER_SEED), payer.publicKey.toBuffer()], - program.programId, - ); - const permissionPDA = permissionPdaFromAccount(counterPDA); - - console.log("Program ID: ", program.programId.toString()); - console.log("Counter PDA: ", counterPDA.toString()); - console.log("Permission PDA: ", permissionPDA.toString()); - console.log("Validator identity: ", validatorPubkey(svm).toString()); - - it("Initialize counter on Solana", async () => { - const tx = await program.methods - .initialize() - .accounts({ - authority: payer.publicKey, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "base"); - if (readU64le(svm, counterPDA, "base") !== 0n) { - throw new Error("expected count 0 after initialize"); - } - }); - - it("Increase counter on Solana", async () => { - const account = svm.getAccountFor(counterPDA, { target: "base" }); - if ( - !account.exists || - account.programAddress.toString() !== program.programId.toString() - ) { - throw new Error("counter is not owned by the program on the base layer"); - } - const tx = await program.methods - .increment() - .accounts({ - counter: counterPDA, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "base"); - if (readU64le(svm, counterPDA, "base") !== 1n) { - throw new Error("expected count 1 after base increment"); - } - }); - - it("Delegate counter to ER", async () => { - const tx = await program.methods - .delegate() - .accountsPartial({ - authority: payer.publicKey, - counter: counterPDA, - validator: new PublicKey(validatorPubkey(svm)), - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "base"); - if (!isDelegated(svm, counterPDA)) { - throw new Error("counter is not delegated"); - } - const delegated = svm.getAccountFor(counterPDA, { target: "ephemeral" }); - if (!delegated.exists) { - throw new Error("delegated counter missing on ephemeral"); - } - }); - - it("Initialize ephemeral permission on ER", async () => { - const permissionProgram = svm.getAccountFor(PERMISSION_PROGRAM_ID, { - target: "ephemeral", - }); - console.log( - "Permission program on ephemeral:", - permissionProgram.exists - ? `exists executable=${permissionProgram.executable}` - : "missing", - ); - const tx = await program.methods - .initPermission() - .accountsPartial({ - authority: payer.publicKey, - counter: counterPDA, - permission: permissionPDA, - magicProgram: MAGIC_PROGRAM_ID, - permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: EPHEMERAL_VAULT_ID, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "ephemeral"); - const permission = svm.getAccountFor(permissionPDA, { - target: "ephemeral", - }); - if (!permission.exists) { - throw new Error("permission PDA was not created on ephemeral"); - } - }); - - it("Increase counter on ER", async () => { - const tx = await program.methods - .increment() - .accounts({ - counter: counterPDA, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "ephemeral"); - if (readU64le(svm, counterPDA, "ephemeral") !== 2n) { - throw new Error("expected count 2 after ER increment"); - } - }); - - it("Toggle privacy on ER (private -> public)", async () => { - for (const isPrivate of [true, false]) { - const tx = await program.methods - .setPrivacy(isPrivate) - .accountsPartial({ - counter: counterPDA, - authority: payer.publicKey, - permission: permissionPDA, - magicProgram: MAGIC_PROGRAM_ID, - permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: EPHEMERAL_VAULT_ID, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "ephemeral"); - } - }); - - it("Close permission on ER", async () => { - const tx = await program.methods - .closePermission() - .accountsPartial({ - counter: counterPDA, - authority: payer.publicKey, - permission: permissionPDA, - magicProgram: MAGIC_PROGRAM_ID, - permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: EPHEMERAL_VAULT_ID, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "ephemeral"); - }); - - it("Commit counter state on ER to Solana", async () => { - const tx = await program.methods - .commit() - .accountsPartial({ - payer: payer.publicKey, - counter: counterPDA, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "ephemeral"); - if (readU64le(svm, counterPDA, "base") !== 2n) { - throw new Error("expected committed count 2 on base"); - } - }); - - it("Undelegate counter from ER to Solana", async () => { - const tx = await program.methods - .undelegate() - .accountsPartial({ - payer: payer.publicKey, - counter: counterPDA, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "ephemeral"); - const account = svm.getAccountFor(counterPDA, { target: "base" }); - if ( - !account.exists || - account.programAddress.toString() !== program.programId.toString() - ) { - throw new Error("counter undelegation failed"); - } - if (readU64le(svm, counterPDA, "base") !== 2n) { - throw new Error("expected count 2 after undelegate"); - } - }); -}); diff --git a/private-counter/anchor/tsconfig.json b/private-counter/anchor/tsconfig.json deleted file mode 100644 index 34e670ff..00000000 --- a/private-counter/anchor/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "compilerOptions": { - "types": ["mocha", "chai", "node"], - "typeRoots": ["./node_modules/@types"], - "lib": ["es2020"], - "module": "commonjs", - "target": "es2020", - "esModuleInterop": true, - "resolveJsonModule": true, - "skipLibCheck": true - } -} diff --git a/private-counter/anchor/yarn.lock b/private-counter/anchor/yarn.lock index b796af84..4a9f7977 100644 --- a/private-counter/anchor/yarn.lock +++ b/private-counter/anchor/yarn.lock @@ -2,1874 +2,7 @@ # yarn lockfile v1 -"@babel/runtime@^7.25.0": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326" - integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== - -"@coral-xyz/anchor-errors@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" - integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== - -"@coral-xyz/anchor@0.32.1": - version "0.32.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" - integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== - dependencies: - "@coral-xyz/anchor-errors" "^0.31.1" - "@coral-xyz/borsh" "^0.31.1" - "@noble/hashes" "^1.3.1" - "@solana/web3.js" "^1.69.0" - bn.js "^5.1.2" - bs58 "^4.0.1" - buffer-layout "^1.2.2" - camelcase "^6.3.0" - cross-fetch "^3.1.5" - eventemitter3 "^4.0.7" - pako "^2.0.3" - superstruct "^0.15.4" - toml "^3.0.0" - -"@coral-xyz/borsh@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.31.1.tgz#5328e1e0921b75d7f4a62dd3f61885a938bc7241" - integrity sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw== - dependencies: - bn.js "^5.1.2" - buffer-layout "^1.2.0" - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" - integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@magicblock-labs/ephemeral-rollups-sdk@0.14.3": - version "0.14.3" - resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.14.3.tgz#536c215d1daefdbcfa82a79304b08f5014405c58" - integrity sha512-CoByiXHLLS+l7Ojl6XJuYypP/k08ymFkab8+Gh/HCv5Gn2oC4VkwszEQoTDnKo++8Oxbqr9YVGzAMUW4Km7cLA== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@phala/dcap-qvl" "^0.3.9" - "@solana/web3.js" "^1.98.0" - bs58 "^6.0.0" - rpc-websockets "^9.0.4" - tweetnacl "^1.0.3" - typescript "^5.3.0" - -"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" - integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== - -"@magicblock-labs/magicsvm-darwin-x64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" - integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== - -"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" - integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== - -"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" - integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== - -"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" - integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== - -"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" - integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== - -"@magicblock-labs/magicsvm@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" - integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== - dependencies: - "@solana/web3.js" "3.0.0-rc.3" - optionalDependencies: - "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" - "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" - -"@magicblock-labs/test-utils@link:../../test-utils/ts": - version "0.0.0" - uid "" - -"@noble/curves@^1.4.2": - version "1.9.7" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" - integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== - dependencies: - "@noble/hashes" "1.8.0" - -"@noble/hashes@1.8.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" - integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== - -"@peculiar/asn1-schema@^2.3.13", "@peculiar/asn1-schema@^2.6.0": - version "2.6.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.6.0.tgz#0dca1601d5b0fed2a72fed7a5f1d0d7dbe3a6f82" - integrity sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg== - dependencies: - asn1js "^3.0.6" - pvtsutils "^1.3.6" - tslib "^2.8.1" - -"@peculiar/asn1-x509@^2.3.13": - version "2.6.1" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.6.1.tgz#4e8995659e16178e0e90fe90519aa269045af262" - integrity sha512-O9jT5F1A2+t3r7C4VT7LYGXqkGLK7Kj1xFpz7U0isPrubwU5PbDoyYtx6MiGst29yq7pXN5vZbQFKRCP+lLZlA== - dependencies: - "@peculiar/asn1-schema" "^2.6.0" - asn1js "^3.0.6" - pvtsutils "^1.3.6" - tslib "^2.8.1" - -"@phala/dcap-qvl@^0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@phala/dcap-qvl/-/dcap-qvl-0.3.9.tgz#34da2506c31954cd290afb5a46146cd52ae24481" - integrity sha512-s/4gAFVq1DRhYkuerDR9WAlX8tkCpFTHTVpWnWlrigj5la2X5OtQl9Y7PzwcqY4h0fc25yqZrcRH3AZpzB1qOw== - dependencies: - "@peculiar/asn1-schema" "^2.3.13" - "@peculiar/asn1-x509" "^2.3.13" - asn1.js "^5.4.1" - bn.js "^5.2.2" - buffer "^6.0.3" - elliptic "^6.6.1" - hash.js "^1.1.7" - node-fetch "^2.7.0" - -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - -"@solana-program/address-lookup-table@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" - integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== - -"@solana-program/compute-budget@^0.18.0": - version "0.18.1" - resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" - integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== - -"@solana-program/loader-v3@^0.6.0": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" - integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== - -"@solana-program/stake@^0.9.0": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" - integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== - -"@solana-program/system@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" - integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== - -"@solana/accounts@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" - integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/addresses@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" - integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" - integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/buffer-layout@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" - integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== - dependencies: - buffer "~6.0.3" - -"@solana/codecs-core@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-2.3.0.tgz#6bf2bb565cb1ae880f8018635c92f751465d8695" - integrity sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw== - dependencies: - "@solana/errors" "2.3.0" - -"@solana/codecs-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" - integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/codecs-data-structures@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" - integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" - integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@^2.1.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" - integrity sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg== - dependencies: - "@solana/codecs-core" "2.3.0" - "@solana/errors" "2.3.0" - -"@solana/codecs-strings@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" - integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" - integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/options" "8.3.0" - -"@solana/errors@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.3.0.tgz#4ac9380343dbeffb9dffbcb77c28d0e457c5fa31" - integrity sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ== - dependencies: - chalk "^5.4.1" - commander "^14.0.0" - -"@solana/errors@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" - integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== - dependencies: - chalk "5.6.2" - commander "15.0.0" - -"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" - integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== - -"@solana/fixed-points@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" - integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/functional@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" - integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== - -"@solana/instruction-plans@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" - integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/instructions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" - integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/keys@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" - integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/kit@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" - integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/plugin-core" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/program-client-core" "8.3.0" - "@solana/programs" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/subscribable" "8.3.0" - "@solana/sysvars" "8.3.0" - "@solana/transaction-confirmation" "8.3.0" - "@solana/transaction-introspection" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/nominal-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" - integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== - -"@solana/offchain-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" - integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/options@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" - integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/plugin-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" - integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== - -"@solana/plugin-interfaces@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" - integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/program-client-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" - integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/signers" "8.3.0" - -"@solana/programs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" - integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/promises@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" - integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== - -"@solana/rpc-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" - integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-parsed-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" - integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== - -"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" - integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/rpc-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" - integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" - integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-subscriptions-channel-websocket@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" - integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/subscribable" "8.3.0" - ws "^8.21.3" - -"@solana/rpc-subscriptions-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" - integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" - integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions-api" "8.3.0" - "@solana/rpc-subscriptions-channel-websocket" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-transformers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" - integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/rpc-transport-http@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" - integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - undici-types "^8.10.2" - -"@solana/rpc-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" - integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/rpc@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" - integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-transport-http" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/signers@8.3.0", "@solana/signers@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" - integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/subscribable@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" - integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/sysvars@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" - integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transaction-confirmation@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" - integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-introspection@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" - integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" - integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transactions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" - integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - -"@solana/web3.js@3.0.0-rc.3": - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" - integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@solana-program/address-lookup-table" "^0.14.0" - "@solana-program/compute-budget" "^0.18.0" - "@solana-program/loader-v3" "^0.6.0" - "@solana-program/stake" "^0.9.0" - "@solana-program/system" "^0.14.0" - "@solana/assertions" "^8.2.0" - "@solana/fast-stable-stringify" "^8.2.0" - "@solana/kit" "^8.2.0" - "@solana/rpc-spec-types" "^8.2.0" - "@solana/signers" "^8.2.0" - -"@solana/web3.js@^1.69.0", "@solana/web3.js@^1.98.0": - version "1.98.4" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" - integrity sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw== - 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.1.0" - agentkeepalive "^4.5.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.1.1" - node-fetch "^2.7.0" - rpc-websockets "^9.0.2" - superstruct "^2.0.2" - -"@swc/helpers@^0.5.11": - version "0.5.17" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.17.tgz#5a7be95ac0f0bf186e7e6e890e7a6f6cda6ce971" - integrity sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A== - dependencies: - tslib "^2.8.0" - -"@tsconfig/node10@^1.0.7": - version "1.0.12" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.12.tgz#be57ceac1e4692b41be9de6be8c32a106636dba4" - integrity sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@types/bn.js@^5.1.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.2.0.tgz#4349b9710e98f9ab3cdc50f1c5e4dcbd8ef29c80" - integrity sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q== - dependencies: - "@types/node" "*" - -"@types/chai@^5.2.2": - version "5.2.3" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-5.2.3.tgz#8e9cd9e1c3581fa6b341a5aed5588eb285be0b4a" - integrity sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA== - dependencies: - "@types/deep-eql" "*" - assertion-error "^2.0.1" - -"@types/connect@^3.4.33": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" - integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== - dependencies: - "@types/node" "*" - -"@types/deep-eql@*": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/deep-eql/-/deep-eql-4.0.2.tgz#334311971d3a07121e7eb91b684a605e7eea9cbd" - integrity sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw== - -"@types/mocha@^10.0.10": - version "10.0.10" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.10.tgz#91f62905e8d23cbd66225312f239454a23bebfa0" - integrity sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q== - -"@types/node@*": - version "24.10.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.1.tgz#91e92182c93db8bd6224fca031e2370cef9a8f01" - integrity sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ== - dependencies: - undici-types "~7.16.0" - -"@types/node@^12.12.54": - version "12.20.55" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - -"@types/node@^22.15.3": - version "22.20.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.20.2.tgz#daae777b5f5965a587f50cc80d5364c2ddf27e36" - integrity sha512-xlvWf4Vs9n1PEVYwP1n4vvG07M6y8WgvJ2t0vbrWTmijsIHp1cS+uJ2kMIRdY3nHZK0nCYKrPeD171+SzF4/zw== - dependencies: - undici-types "~6.21.0" - -"@types/uuid@^8.3.4": - version "8.3.4" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" - integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== - -"@types/ws@^7.4.4": - version "7.4.7" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - dependencies: - "@types/node" "*" - -"@types/ws@^8.2.2": - version "8.18.1" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" - integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== - dependencies: - "@types/node" "*" - -acorn-walk@^8.1.1: - version "8.3.4" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" - integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== - dependencies: - acorn "^8.11.0" - -acorn@^8.11.0, acorn@^8.4.1: - version "8.15.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" - integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== - -agentkeepalive@^4.5.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" - integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== - dependencies: - humanize-ms "^1.2.1" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" - integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^6.1.0: - version "6.2.3" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" - integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -asn1.js@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1js@^3.0.6: - version "3.0.7" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.7.tgz#15f1f2f59e60f80d5b43ef14047a294a969f824f" - integrity sha512-uLvq6KJu04qoQM6gvBfKFjlh6Gl0vOKQuR5cJMDHQkmwfMOQeN3F3SHCv9SNYSL+CRoHvOGFfllDlVz03GQjvQ== - dependencies: - pvtsutils "^1.3.6" - pvutils "^1.1.3" - tslib "^2.8.1" - -assertion-error@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" - integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base-x@^3.0.2: - version "3.0.11" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.11.tgz#40d80e2a1aeacba29792ccc6c5354806421287ff" - integrity sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA== - dependencies: - safe-buffer "^5.0.1" - -base-x@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-5.0.1.tgz#16bf35254be1df8aca15e36b7c1dda74b2aa6b03" - integrity sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bn.js@^4.0.0, bn.js@^4.11.9: - version "4.12.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.3.tgz#2cc2c679188eb35b006f2d0d4710bed8437a769e" - integrity sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g== - -bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: - version "5.2.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.2.tgz#82c09f9ebbb17107cd72cb7fd39bd1f9d0aaa566" - integrity sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw== - -bn.js@^5.2.2: - version "5.2.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.3.tgz#16a9e409616b23fef3ccbedb8d42f13bff80295e" - integrity sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w== - -borsh@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" - integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== - dependencies: - bn.js "^5.2.0" - bs58 "^4.0.0" - text-encoding-utf-8 "^1.0.2" - -brace-expansion@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" - integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== - dependencies: - balanced-match "^1.0.0" - -brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browser-stdout@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -bs58@^4.0.0, bs58@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - dependencies: - base-x "^3.0.2" - -bs58@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-6.0.0.tgz#a2cda0130558535dd281a2f8697df79caaf425d8" - integrity sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw== - dependencies: - base-x "^5.0.0" - -buffer-layout@^1.2.0, buffer-layout@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" - integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== - -buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -bufferutil@^4.0.1: - version "4.0.9" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.9.tgz#6e81739ad48a95cad45a279588e13e95e24a800a" - integrity sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw== - dependencies: - node-gyp-build "^4.3.0" - -camelcase@^6.0.0, camelcase@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -chai@^5.2.0: - version "5.3.3" - resolved "https://registry.yarnpkg.com/chai/-/chai-5.3.3.tgz#dd3da955e270916a4bd3f625f4b919996ada7e06" - integrity sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw== - dependencies: - assertion-error "^2.0.1" - check-error "^2.1.1" - deep-eql "^5.0.1" - loupe "^3.1.0" - pathval "^2.0.0" - -chalk@5.6.2, chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - -chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -check-error@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" - integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== - -chokidar@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" - integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== - dependencies: - readdirp "^4.0.1" - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -commander@15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" - integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== - -commander@^14.0.0: - version "14.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e" - integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== - -commander@^2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-fetch@^3.1.5: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" - integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== - dependencies: - node-fetch "^2.7.0" - -cross-spawn@^7.0.6: - version "7.0.6" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" - integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -debug@^4.3.5: - version "4.4.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" - integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== - dependencies: - ms "^2.1.3" - -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - -deep-eql@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" - integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== - -delay@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" - integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -diff@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-7.0.0.tgz#3fb34d387cd76d803f6eebea67b921dab0182a9a" - integrity sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw== - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -elliptic@^6.6.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" - integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== - dependencies: - es6-promise "^4.0.3" - -escalade@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eventemitter3@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -eventemitter3@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" - integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - -eyes@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" - integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== - -fast-stable-stringify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" - integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -foreground-child@^3.1.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" - integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== - dependencies: - cross-spawn "^7.0.6" - signal-exit "^4.0.1" - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -glob@^10.4.5: - version "10.5.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" - integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== - dependencies: - foreground-child "^3.1.0" - jackspeak "^3.1.2" - minimatch "^9.0.4" - minipass "^7.1.2" - package-json-from-dist "^1.0.0" - path-scurry "^1.11.1" - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - -jackspeak@^3.1.2: - version "3.4.3" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" - integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - -jayson@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.2.0.tgz#b71762393fa40bc9637eaf734ca6f40d3b8c0c93" - integrity sha512-VfJ9t1YLwacIubLhONk0KFeosUBwstRWQ0IRT1KDjEjnVnSOVHC3uwugyV7L0c7R9lpVyrUGT2XWiBA1UTtpyg== - dependencies: - "@types/connect" "^3.4.33" - "@types/node" "^12.12.54" - "@types/ws" "^7.4.4" - commander "^2.20.3" - delay "^5.0.0" - es6-promisify "^5.0.0" - eyes "^0.1.8" - isomorphic-ws "^4.0.1" - json-stringify-safe "^5.0.1" - stream-json "^1.9.1" - uuid "^8.3.2" - ws "^7.5.10" - -js-yaml@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" - integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== - dependencies: - argparse "^2.0.1" - -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -loupe@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.2.1.tgz#0095cf56dc5b7a9a7c08ff5b1a8796ec8ad17e76" - integrity sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ== - -lru-cache@^10.2.0: - version "10.4.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" - integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -minimatch@^9.0.4, minimatch@^9.0.5: - version "9.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" - integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== - dependencies: - brace-expansion "^2.0.1" - -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" - integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== - -mocha@^11.2.2: - version "11.7.5" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.7.5.tgz#58f5bbfa5e0211ce7e5ee6128107cefc2515a627" - integrity sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig== - dependencies: - browser-stdout "^1.3.1" - chokidar "^4.0.1" - debug "^4.3.5" - diff "^7.0.0" - escape-string-regexp "^4.0.0" - find-up "^5.0.0" - glob "^10.4.5" - he "^1.2.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - log-symbols "^4.1.0" - minimatch "^9.0.5" - ms "^2.1.3" - picocolors "^1.1.1" - serialize-javascript "^6.0.2" - strip-json-comments "^3.1.1" - supports-color "^8.1.1" - workerpool "^9.2.0" - yargs "^17.7.2" - yargs-parser "^21.1.1" - yargs-unparser "^2.0.0" - -ms@^2.0.0, ms@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -node-fetch@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - -node-gyp-build@^4.3.0: - version "4.8.4" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" - integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -package-json-from-dist@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" - integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== - -pako@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" - integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-scurry@^1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" - integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== - dependencies: - lru-cache "^10.2.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - -pathval@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.1.tgz#8855c5a2899af072d6ac05d11e46045ad0dc605d" - integrity sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ== - -picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - prettier@^3.5.3: - version "3.6.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.6.2.tgz#ccda02a1003ebbb2bfda6f83a074978f608b9393" - integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ== - -pvtsutils@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.6.tgz#ec46e34db7422b9e4fdc5490578c1883657d6001" - integrity sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg== - dependencies: - tslib "^2.8.1" - -pvutils@^1.1.3: - version "1.1.5" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.5.tgz#84b0dea4a5d670249aa9800511804ee0b7c2809c" - integrity sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -readdirp@^4.0.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" - integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -rpc-websockets@^9.0.2, rpc-websockets@^9.0.4: - version "9.3.1" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.3.1.tgz#d817a59d812f68bae1215740a3f78fcdd3813698" - integrity sha512-bY6a+i/lEtBJ/mUxwsCTgevoV1P0foXTVA7UoThzaIWbM+3NDqorf8NBWs5DmqKTFeA1IoNzgvkWjFCPgnzUiQ== - dependencies: - "@swc/helpers" "^0.5.11" - "@types/uuid" "^8.3.4" - "@types/ws" "^8.2.2" - buffer "^6.0.3" - eventemitter3 "^5.0.1" - uuid "^8.3.2" - ws "^8.5.0" - optionalDependencies: - bufferutil "^4.0.1" - utf-8-validate "^5.0.2" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -serialize-javascript@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" - integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== - dependencies: - randombytes "^2.1.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -stream-chain@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/stream-chain/-/stream-chain-2.2.5.tgz#b30967e8f14ee033c5b9a19bbe8a2cba90ba0d09" - integrity sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA== - -stream-json@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/stream-json/-/stream-json-1.9.1.tgz#e3fec03e984a503718946c170db7d74556c2a187" - integrity sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw== - dependencies: - stream-chain "^2.2.5" - -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1: - version "7.1.2" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" - integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== - dependencies: - ansi-regex "^6.0.1" - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -superstruct@^0.15.4: - version "0.15.5" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" - integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== - -superstruct@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-2.0.2.tgz#3f6d32fbdc11c357deff127d591a39b996300c54" - integrity sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A== - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -text-encoding-utf-8@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" - integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== - -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -ts-mocha@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-11.1.0.tgz#d8336ec0146bd6f36cca2555f4cfc7df85bd1586" - integrity sha512-yT7FfzNRCu8ZKkYvAOiH01xNma/vLq6Vit7yINKYFNVP8e5UyrYXSOMIipERTpzVKJQ4Qcos5bQo1tNERNZevQ== - -ts-node@^10.9.2: - version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" - integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tslib@^2.8.0, tslib@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" - integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -typescript@^5.3.0, typescript@^5.8.3: - version "5.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" - integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== - -undici-types@^8.10.2: - version "8.10.2" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" - integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== - -undici-types@~6.21.0: - version "6.21.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" - integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== - -undici-types@~7.16.0: - version "7.16.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" - integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== - -utf-8-validate@^5.0.2: - version "5.0.10" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" - integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== - dependencies: - node-gyp-build "^4.3.0" - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -workerpool@^9.2.0: - version "9.3.4" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-9.3.4.tgz#f6c92395b2141afd78e2a889e80cb338fe9fca41" - integrity sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg== - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - -ws@^7.5.10: - version "7.5.10" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" - integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== - -ws@^8.21.3: - version "8.21.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" - integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== - -ws@^8.5.0: - version "8.18.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" - integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs-unparser@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@^17.7.2: - version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + version "3.9.9" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.9.9.tgz#09b826918c91cd4cbc80e0cbd1d2a922ff04f233" + integrity sha512-Z/CJHIkdujO/OtN7nXUii0Rf3VT5SRuhjBA82Xvu2XhBUgX3nhP67T0LHceBdQLex7OOFGTox+Q5Yg8Jk2Qivg== diff --git a/private-counter/pinocchio/README.md b/private-counter/pinocchio/README.md index 117dcff7..661faae9 100644 --- a/private-counter/pinocchio/README.md +++ b/private-counter/pinocchio/README.md @@ -26,7 +26,7 @@ yarn yarn build ``` -Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): +Run the Rust test suite in `tests-magicsvm-rs/` in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash yarn test @@ -36,7 +36,7 @@ MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no va network. The suite initializes and delegates a private counter, updates its permission account, and commits the state before undelegating it. -A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. +`yarn test` runs `cargo +stable test`: MagicSVM needs a newer Rust than the 1.89 toolchain used for program builds. ## Program Model diff --git a/private-counter/pinocchio/package.json b/private-counter/pinocchio/package.json index a2eb196d..f1e2e845 100644 --- a/private-counter/pinocchio/package.json +++ b/private-counter/pinocchio/package.json @@ -4,9 +4,7 @@ "description": "Tests for pinocchio-private-counter program", "main": "index.js", "scripts": { - "test": "vitest run tests/", - "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml", - "test:watch": "vitest watch tests/", + "test": "cargo +stable test --manifest-path tests-magicsvm-rs/Cargo.toml", "build": "cargo build-sbf", "check": "cargo check", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", @@ -22,19 +20,6 @@ "author": "", "license": "MIT", "devDependencies": { - "@magicblock-labs/ephemeral-rollups-sdk": "^0.11.1", - "@magicblock-labs/magicsvm": "0.2.0", - "@solana-program/system": "^0.10.0", - "@solana/kit": "^5.4.0", - "@solana/web3.js": "^1.93.0", - "@types/node": "^20.0.0", - "borsh": "^0.7.0", - "dotenv": "^16.0.0", - "ts-node": "^10.9.0", - "tweetnacl": "^1.0.3", - "typescript": "^5.0.0", - "vitest": "^3.0.0", - "prettier": "^3.5.3", - "@magicblock-labs/test-utils": "link:../../test-utils/ts" + "prettier": "^3.5.3" } } diff --git a/private-counter/pinocchio/tests/pinocchio-private-counter.test.ts b/private-counter/pinocchio/tests/pinocchio-private-counter.test.ts deleted file mode 100644 index 33c43fe6..00000000 --- a/private-counter/pinocchio/tests/pinocchio-private-counter.test.ts +++ /dev/null @@ -1,465 +0,0 @@ -import { - Keypair, - PublicKey, - SystemProgram, - TransactionInstruction, -} from "@solana/web3.js"; -import path from "path"; -import { MagicSVM, TransactionMetadata } from "@magicblock-labs/magicsvm"; -import { - airdropOrThrow, - DELEGATION_PROGRAM_ID, - delegateBufferPdaFromDelegatedAccountAndOwnerProgram, - delegationMetadataPdaFromDelegatedAccount, - delegationRecordPdaFromDelegatedAccount, - EPHEMERAL_VAULT_ID, - isDelegated, - MAGIC_CONTEXT_ID, - MAGIC_PROGRAM_ID, - PERMISSION_PROGRAM_ID, - permissionPdaFromAccount, - programIdFromKeypairFile, - requireAccount, - sendSvmIx, -} from "@magicblock-labs/test-utils"; -import { describe, it, beforeAll, expect } from "vitest"; - -const LAMPORTS_PER_SOL = 1_000_000_000n; -const PROGRAM_SO = path.join( - __dirname, - "..", - "target", - "deploy", - "pinocchio_private_counter.so", -); -const PROGRAM_KEYPAIR = path.join( - __dirname, - "..", - "target", - "deploy", - "pinocchio_private_counter-keypair.json", -); - -function send( - svm: MagicSVM, - target: "base" | "ephemeral", - ix: TransactionInstruction, - payer: Keypair, -): TransactionMetadata { - return sendSvmIx(svm, [payer], ix, target); -} - -function counterCount(data: Uint8Array): Uint8Array { - return Buffer.from(data.subarray(32, 40)); -} - -describe("pinocchio-private-counter magicsvm", () => { - const PROGRAM_ID = new PublicKey(programIdFromKeypairFile(PROGRAM_KEYPAIR)); - const userKeypair = Keypair.generate(); - const unauthorizedKeypair = Keypair.generate(); - const svm = new MagicSVM(); - const id = Keypair.generate().publicKey; - - const [counterPda, bump] = PublicKey.findProgramAddressSync( - [Buffer.from("counter"), id.toBuffer()], - PROGRAM_ID, - ); - const permissionPda = permissionPdaFromAccount(counterPda); - - beforeAll(() => { - svm.addProgramFromFile(PROGRAM_ID, PROGRAM_SO); - airdropOrThrow(svm, userKeypair.publicKey, 2n * LAMPORTS_PER_SOL); - console.log("Program ID: ", PROGRAM_ID.toString()); - console.log("Counter PDA: ", counterPda.toString()); - console.log("Bump: ", bump); - console.log("Permission PDA: ", permissionPda.toString()); - console.log("Validator identity: ", svm.validatorIdentity().toString()); - }); - - it("Initialize counter on Solana", () => { - const ixData = Buffer.concat([ - Buffer.from([0, 0, 0, 0, 0, 0, 0, 0]), - id.toBuffer(), - ]); - const result = send( - svm, - "base", - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: SystemProgram.programId, - isSigner: false, - isWritable: false, - }, - ], - }), - userKeypair, - ); - expect(result).toBeDefined(); - - const counter = requireAccount(svm, counterPda, "base"); - expect(counterCount(counter.data)).toEqual( - Buffer.from([0, 0, 0, 0, 0, 0, 0, 0]), - ); - }); - - it("Increase counter on Solana", () => { - const ixData = Buffer.concat([ - Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), - Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), - ]); - const result = send( - svm, - "base", - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - ], - }), - userKeypair, - ); - expect(result).toBeDefined(); - - const counter = requireAccount(svm, counterPda, "base"); - expect(counterCount(counter.data)).toEqual( - Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), - ); - }); - - it("Delegate counter to ER", () => { - const ixData = Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]); - const result = send( - svm, - "base", - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: delegateBufferPdaFromDelegatedAccountAndOwnerProgram( - counterPda, - PROGRAM_ID, - ), - isSigner: false, - isWritable: true, - }, - { - pubkey: delegationRecordPdaFromDelegatedAccount(counterPda), - isSigner: false, - isWritable: true, - }, - { - pubkey: delegationMetadataPdaFromDelegatedAccount(counterPda), - isSigner: false, - isWritable: true, - }, - { - pubkey: DELEGATION_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: SystemProgram.programId, - isSigner: false, - isWritable: false, - }, - { - pubkey: new PublicKey(svm.validatorIdentity().toString()), - isSigner: false, - isWritable: false, - }, - ], - }), - userKeypair, - ); - expect(result).toBeDefined(); - expect(isDelegated(svm, counterPda)).toBe(true); - }); - - it("Increase counter on ER", () => { - const ixData = Buffer.concat([ - Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), - Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), - ]); - const result = send( - svm, - "ephemeral", - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - ], - }), - userKeypair, - ); - expect(result).toBeDefined(); - - const counter = requireAccount(svm, counterPda, "ephemeral"); - expect(counterCount(counter.data)).toEqual( - Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), - ); - }); - - it("Create permission on ER", () => { - const ixData = Buffer.from([4, 0, 0, 0, 0, 0, 0, 0]); - const result = send( - svm, - "ephemeral", - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: PERMISSION_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: permissionPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: MAGIC_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: EPHEMERAL_VAULT_ID, - isSigner: false, - isWritable: true, - }, - ], - }), - userKeypair, - ); - expect(result).toBeDefined(); - - svm.setAuthorizedUser(userKeypair.publicKey); - const authorized = requireAccount(svm, counterPda, "ephemeral"); - expect(counterCount(authorized.data)).toEqual( - Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), - ); - svm.setAuthorizedUser(unauthorizedKeypair.publicKey); - expect(svm.getAccountFor(counterPda, { target: "ephemeral" }).exists).toBe( - false, - ); - svm.setAuthorizedUser(null); - expect(svm.getAccountFor(counterPda, { target: "ephemeral" }).exists).toBe( - false, - ); - - const permission = requireAccount(svm, permissionPda, "ephemeral"); - expect(Buffer.from(permission.data.subarray(36, 68))).toEqual( - PROGRAM_ID.toBuffer(), - ); - expect(Buffer.from(permission.data.subarray(69, 101))).toEqual( - userKeypair.publicKey.toBuffer(), - ); - }); - - it("Update permission on ER", () => { - const ixData = Buffer.from([5, 0, 0, 0, 0, 0, 0, 0]); - const result = send( - svm, - "ephemeral", - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: PERMISSION_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: permissionPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: MAGIC_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: EPHEMERAL_VAULT_ID, - isSigner: false, - isWritable: true, - }, - ], - }), - userKeypair, - ); - expect(result).toBeDefined(); - - const permission = requireAccount(svm, permissionPda, "ephemeral"); - expect(Buffer.from(permission.data.subarray(36, 68))).toEqual( - PROGRAM_ID.toBuffer(), - ); - expect(permission.data.length).toEqual(68); - - svm.setAuthorizedUser(userKeypair.publicKey); - expect(svm.getAccountFor(counterPda, { target: "ephemeral" }).exists).toBe( - false, - ); - svm.setAuthorizedUser(unauthorizedKeypair.publicKey); - expect(svm.getAccountFor(counterPda, { target: "ephemeral" }).exists).toBe( - false, - ); - }); - - it("Close permission on ER", () => { - const ixData = Buffer.from([6, 0, 0, 0, 0, 0, 0, 0]); - const result = send( - svm, - "ephemeral", - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: PERMISSION_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: permissionPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: MAGIC_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: EPHEMERAL_VAULT_ID, - isSigner: false, - isWritable: true, - }, - ], - }), - userKeypair, - ); - expect(result).toBeDefined(); - - svm.setAuthorizedUser(userKeypair.publicKey); - const counter = requireAccount(svm, counterPda, "ephemeral"); - expect(counterCount(counter.data)).toEqual( - Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), - ); - svm.setAuthorizedUser(unauthorizedKeypair.publicKey); - const unauthorized = requireAccount(svm, counterPda, "ephemeral"); - expect(counterCount(unauthorized.data)).toEqual( - Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), - ); - }); - - it("Commit and undelegate counter on ER to Solana", () => { - const ixData = Buffer.from([3, 0, 0, 0, 0, 0, 0, 0]); - const result = send( - svm, - "ephemeral", - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: MAGIC_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: MAGIC_CONTEXT_ID, - isSigner: false, - isWritable: true, - }, - ], - }), - userKeypair, - ); - expect(result).toBeDefined(); - - const counter = requireAccount(svm, counterPda, "base"); - expect(counter.programAddress.toString()).toBe(PROGRAM_ID.toString()); - }); -}); diff --git a/private-counter/pinocchio/tsconfig.json b/private-counter/pinocchio/tsconfig.json deleted file mode 100644 index 42717109..00000000 --- a/private-counter/pinocchio/tsconfig.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2020", - "module": "ESNext", - "moduleResolution": "bundler", - "lib": ["ES2020"], - "types": ["node", "vitest"], - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "skipLibCheck": true, - "forceConsistentCasingInFileNames": true, - "noEmit": true - }, - "include": ["tests/**/*.ts"] -} diff --git a/private-counter/pinocchio/yarn.lock b/private-counter/pinocchio/yarn.lock index 26445095..4a9f7977 100644 --- a/private-counter/pinocchio/yarn.lock +++ b/private-counter/pinocchio/yarn.lock @@ -2,2417 +2,7 @@ # yarn lockfile v1 -"@babel/runtime@^7.25.0", "@babel/runtime@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.7.tgz#12022450c45a4da6d8d8287b18a4ff2ddb23f768" - integrity sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw== - -"@coral-xyz/anchor-errors@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" - integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== - -"@coral-xyz/anchor@0.32.1": - version "0.32.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" - integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== - dependencies: - "@coral-xyz/anchor-errors" "^0.31.1" - "@coral-xyz/borsh" "^0.31.1" - "@noble/hashes" "^1.3.1" - "@solana/web3.js" "^1.69.0" - bn.js "^5.1.2" - bs58 "^4.0.1" - buffer-layout "^1.2.2" - camelcase "^6.3.0" - cross-fetch "^3.1.5" - eventemitter3 "^4.0.7" - pako "^2.0.3" - superstruct "^0.15.4" - toml "^3.0.0" - -"@coral-xyz/borsh@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.31.1.tgz#5328e1e0921b75d7f4a62dd3f61885a938bc7241" - integrity sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw== - dependencies: - bn.js "^5.1.2" - buffer-layout "^1.2.0" - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@esbuild/aix-ppc64@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz#82b74f92aa78d720b714162939fb248c90addf53" - integrity sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg== - -"@esbuild/android-arm64@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz#f78cb8a3121fc205a53285adb24972db385d185d" - integrity sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ== - -"@esbuild/android-arm@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.27.7.tgz#593e10a1450bbfcac6cb321f61f468453bac209d" - integrity sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ== - -"@esbuild/android-x64@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.27.7.tgz#453143d073326033d2d22caf9e48de4bae274b07" - integrity sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg== - -"@esbuild/darwin-arm64@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz#6f23000fb9b40b7e04b7d0606c0693bd0632f322" - integrity sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw== - -"@esbuild/darwin-x64@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz#27393dd18bb1263c663979c5f1576e00c2d024be" - integrity sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ== - -"@esbuild/freebsd-arm64@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz#22e4638fa502d1c0027077324c97640e3adf3a62" - integrity sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w== - -"@esbuild/freebsd-x64@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz#9224b8e4fea924ce2194e3efc3e9aebf822192d6" - integrity sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ== - -"@esbuild/linux-arm64@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz#4f5d1c27527d817b35684ae21419e57c2bda0966" - integrity sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A== - -"@esbuild/linux-arm@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz#b9e9d070c8c1c0449cf12b20eac37d70a4595921" - integrity sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA== - -"@esbuild/linux-ia32@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz#3f80fb696aa96051a94047f35c85b08b21c36f9e" - integrity sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg== - -"@esbuild/linux-loong64@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz#9be1f2c28210b13ebb4156221bba356fe1675205" - integrity sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q== - -"@esbuild/linux-mips64el@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz#4ab5ee67a3dfcbcb5e8fd7883dae6e735b1163b8" - integrity sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw== - -"@esbuild/linux-ppc64@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz#dac78c689f6499459c4321e5c15032c12307e7ea" - integrity sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ== - -"@esbuild/linux-riscv64@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz#050f7d3b355c3a98308e935bc4d6325da91b0027" - integrity sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ== - -"@esbuild/linux-s390x@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz#d61f715ce61d43fe5844ad0d8f463f88cbe4fef6" - integrity sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw== - -"@esbuild/linux-x64@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz#ca8e1aa478fc8209257bf3ac8f79c4dc2982f32a" - integrity sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA== - -"@esbuild/netbsd-arm64@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz#1650f2c1b948deeb3ef948f2fc30614723c09690" - integrity sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w== - -"@esbuild/netbsd-x64@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz#65772ab342c4b3319bf0705a211050aac1b6e320" - integrity sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw== - -"@esbuild/openbsd-arm64@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz#37ed7cfa66549d7955852fce37d0c3de4e715ea1" - integrity sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A== - -"@esbuild/openbsd-x64@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz#01bf3d385855ef50cb33db7c4b52f957c34cd179" - integrity sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg== - -"@esbuild/openharmony-arm64@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz#6c1f94b34086599aabda4eac8f638294b9877410" - integrity sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw== - -"@esbuild/sunos-x64@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz#4b0dd17ae0a6941d2d0fd35a906392517071a90d" - integrity sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA== - -"@esbuild/win32-arm64@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz#34193ab5565d6ff68ca928ac04be75102ccb2e77" - integrity sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA== - -"@esbuild/win32-ia32@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz#eb67f0e4482515d8c1894ede631c327a4da9fc4d" - integrity sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw== - -"@esbuild/win32-x64@0.27.7": - version "0.27.7" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz#8fe30b3088b89b4873c3a6cc87597ae3920c0a8b" - integrity sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg== - -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.5.5": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" - integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@magicblock-labs/ephemeral-rollups-sdk@0.14.3": - version "0.14.3" - resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.14.3.tgz#536c215d1daefdbcfa82a79304b08f5014405c58" - integrity sha512-CoByiXHLLS+l7Ojl6XJuYypP/k08ymFkab8+Gh/HCv5Gn2oC4VkwszEQoTDnKo++8Oxbqr9YVGzAMUW4Km7cLA== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@phala/dcap-qvl" "^0.3.9" - "@solana/web3.js" "^1.98.0" - bs58 "^6.0.0" - rpc-websockets "^9.0.4" - tweetnacl "^1.0.3" - typescript "^5.3.0" - -"@magicblock-labs/ephemeral-rollups-sdk@^0.11.1": - version "0.11.2" - resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.11.2.tgz#8b841be14e0df50cb44fa20b0da83a55dc9cb183" - integrity sha512-+JACHzNSmseew9DzD6A/GjZeX8PnVua3PuJBJHSktSpDxkpj8X30m5r6RNfjOLfF+/9PnfESRwg8G50iXtu2jw== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@phala/dcap-qvl" "^0.3.9" - "@solana/web3.js" "^1.98.0" - bs58 "^6.0.0" - rpc-websockets "^9.0.4" - tweetnacl "^1.0.3" - typescript "^5.3.0" - -"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" - integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== - -"@magicblock-labs/magicsvm-darwin-x64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" - integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== - -"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" - integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== - -"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" - integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== - -"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" - integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== - -"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" - integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== - -"@magicblock-labs/magicsvm@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" - integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== - dependencies: - "@solana/web3.js" "3.0.0-rc.3" - optionalDependencies: - "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" - "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" - -"@magicblock-labs/test-utils@link:../../test-utils/ts": - version "0.0.0" - uid "" - -"@noble/curves@^1.4.2", "@noble/curves@^1.9.7": - version "1.9.7" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" - integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== - dependencies: - "@noble/hashes" "1.8.0" - -"@noble/hashes@1.8.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0", "@noble/hashes@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" - integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== - -"@peculiar/asn1-schema@^2.3.13", "@peculiar/asn1-schema@^2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.7.0.tgz#f2dcb25995ce7cac8687ba1039f043e5eff43820" - integrity sha512-W8ZfWzLmQnrcky+eh3tni4IozMdqBDiHWU0N+vve/UGjMaUs8c0L7A2oEdkBXS8rTpWDpK/aoI3DG/L/hxmxPg== - dependencies: - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.6" - tslib "^2.8.1" - -"@peculiar/asn1-x509@^2.3.13": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.7.0.tgz#84793efb7819dbc9526fd6b0a4ccd86f90464b96" - integrity sha512-mUn9RRrkGDnG4ALfunDmzyRW5dg+sWCj/pfnCCqEHYbkGxEpvUt6iVJv8Yw1cyp6SWZ26ZE5oSmI5SqEaen15g== - dependencies: - "@peculiar/asn1-schema" "^2.7.0" - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.6" - tslib "^2.8.1" - -"@peculiar/utils@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@peculiar/utils/-/utils-2.0.3.tgz#a27ca4c4b73652e110f19a7d16d664f458a5528e" - integrity sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ== - dependencies: - tslib "^2.8.1" - -"@phala/dcap-qvl@^0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@phala/dcap-qvl/-/dcap-qvl-0.3.9.tgz#34da2506c31954cd290afb5a46146cd52ae24481" - integrity sha512-s/4gAFVq1DRhYkuerDR9WAlX8tkCpFTHTVpWnWlrigj5la2X5OtQl9Y7PzwcqY4h0fc25yqZrcRH3AZpzB1qOw== - dependencies: - "@peculiar/asn1-schema" "^2.3.13" - "@peculiar/asn1-x509" "^2.3.13" - asn1.js "^5.4.1" - bn.js "^5.2.2" - buffer "^6.0.3" - elliptic "^6.6.1" - hash.js "^1.1.7" - node-fetch "^2.7.0" - -"@rollup/rollup-android-arm-eabi@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.61.1.tgz#ce83f259581a4f5e6255d92902249f0366a15dd3" - integrity sha512-JnBB8MdXj45cajvTuO5FmPlvFVJRQgvrz1uSEl3NwqFnReAPGwb8EanbGi4z2nRaqLzjJSv5/JmycoTKlRZxHA== - -"@rollup/rollup-android-arm64@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.61.1.tgz#1a763329ffbc2a19057128ac266a1a46782a5f17" - integrity sha512-Jx2g7iSjw4AOT0HDPHM9RV3GNjRXwybWtSFZiZAYUTjUwjVrYIwq3kBf+LnhqJlzXFAqTAh2F7IGI+O568exPw== - -"@rollup/rollup-darwin-arm64@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.61.1.tgz#ff9cffe102d29e052f49e5017fd036142f9bb7ef" - integrity sha512-0F1L/Z3Eqv8mT2n3dCpeO8GcTvHvVqkP5/t6DMsn0KzhYVcg+s7Ncl5DS8qjKYEeio6Az0Gt6nyBORay5qIlCA== - -"@rollup/rollup-darwin-x64@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.61.1.tgz#1ef1e8f5bd16865d8d2f377a58e7622820b3dda3" - integrity sha512-qLttcH871ujY4YcVfUSShhOw+CsoTatYz8gRbHO7Bb92QH059/P0y5do1KMs41fY0BpD2x4AJH/gID0zFiqVKQ== - -"@rollup/rollup-freebsd-arm64@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.61.1.tgz#cb7d041010788213879f663d3100c4320c0910d9" - integrity sha512-fUI4RapGE0Oh3mb8mgfvC1O2nU1RpDZUKnDQm3xB1Ipg7C2wTs5Kstz7G2uWK99a8S2yTMq8/P4uycwNa0nJyw== - -"@rollup/rollup-freebsd-x64@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.61.1.tgz#25d4b4d7e52bb1a144fd130209732e5d0518251a" - integrity sha512-H5YrdvJaDtI/U9/emrD4b++xkvp3y/JvOe4rizHbxvkyMfRS/CiRYdji+Pl8D0brEaNFWUh1drQxgAGIl6Xudw== - -"@rollup/rollup-linux-arm-gnueabihf@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.61.1.tgz#9569a8dd884a22950df4461de8b26c750390531c" - integrity sha512-Q8CBCCQtDFrYtXoeUXSrnFXKOnyUhx6bz+SkL6A0E7V8kAiCJ5pamq1WtbfpVGhR5TSpXY6ak3avmDc5fHTyJA== - -"@rollup/rollup-linux-arm-musleabihf@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.61.1.tgz#33d0080b8cce62df8c3e6240875abf0d6c125cda" - integrity sha512-nwnhk1581l0FBVellGcVCAT0Oi06onEA3WB53sf01VO3I0UPBkMH9sXONYME2K0ovXcNayJfNtHfm6mpJElatQ== - -"@rollup/rollup-linux-arm64-gnu@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.61.1.tgz#9c66a9b4d1746595680eec691e136f8efcfe3d78" - integrity sha512-x5Xr49hwt3hdW75UOZm3395YwwzPyauktslv29KpWL/T+vVAzoT3azLcTWv0eMciBNrx+DYjH4paehHoLpPvpg== - -"@rollup/rollup-linux-arm64-musl@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.61.1.tgz#e37aa97039af9dbb76a324148db06c6266acc9a0" - integrity sha512-unMS3H73DpaoPyyEVPjGKleM/s0mkmsauTENpw4INQY8y4+IuLNjkueQ5QCtC0D3N38Y38yhAU8OoZ20S2Tm6w== - -"@rollup/rollup-linux-loong64-gnu@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.61.1.tgz#22951f5686b653968619d21a02b2572d5cbe51dc" - integrity sha512-zNZzGRnAhwjFEYmvphJRV5XaQGjs62cCmeYYHUT//NbvEnHauw+I85nGG+SiVg5ld4GX8D1IbKIX+ozITQnhMQ== - -"@rollup/rollup-linux-loong64-musl@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.61.1.tgz#778c983d0050792d85a62e2c74009fff821e5606" - integrity sha512-LdpWGL8X209B2SIvWjqlc8VZgM6PKfontSerGepuldQmHYrAOtnMCXeJkxXGbC+PPZVOuu5czJo7fNV6aeW8rQ== - -"@rollup/rollup-linux-ppc64-gnu@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.61.1.tgz#74f34764b688a6081c8f75e155b58d2cdb39112f" - integrity sha512-EC5kTtNaNGOmbMGqar8dvJy6y/hg99GAwjfBz++pxZhQATXGcRjd6c5en5wcbru0vkRmiMGsQKdMJOOf6sza4g== - -"@rollup/rollup-linux-ppc64-musl@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.61.1.tgz#821ccda4531dcdb42e56adddc178907615a6da07" - integrity sha512-8hiwp6D4acEcNK78I4rP0/XtS1sknWIAMJBPdR4l6zUtyTm5KiTDr5bXmWt4foY7nAN7AThDHgkLIEZOWKbzWw== - -"@rollup/rollup-linux-riscv64-gnu@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.61.1.tgz#849fa5c6b43fc6c4d257671fcebd701fe6947bd6" - integrity sha512-10dh/h/BqA7DuMPWSxkR8uks18FRwnwOEqr5zOTEl+NOwP/OMzKX8OFR/Of9xxDA7D5qef1Nzar5WDD2kCCr1g== - -"@rollup/rollup-linux-riscv64-musl@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.61.1.tgz#80a8711af6c316ce448b93294c4a0891c2ddacbe" - integrity sha512-YKJ5lg35DP17gcAOggnihe+APw9HLyj1Xn7gsmGumBJAUDa6NGXNixJzmkWLhcK9TOuuyQjdamzvJefkO7qHZQ== - -"@rollup/rollup-linux-s390x-gnu@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.61.1.tgz#90acba54363c128b73dbb310642b977b5e6b9daa" - integrity sha512-Mlil5G2Jj6a7B3LWGctg+XPL9vdXYuzCtNXfxOQ0nPjc2m6ueUktocPGH9bnAM0bNRKb/bAWTujUU7IJQdQA+g== - -"@rollup/rollup-linux-x64-gnu@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.61.1.tgz#32085c3f532c59269824ed9239e13f5acbe182b9" - integrity sha512-bVWIOIk6pV01p4CdUbPP7CJ/434z+OooYjDuFcR+44N35YvKUC66G8MGnvcWx5mWKW3g61J+t74l3Kj15Kwn2Q== - -"@rollup/rollup-linux-x64-musl@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.61.1.tgz#becf0e9e29d77e7d04de841bda635e9f73b89dfb" - integrity sha512-qy5pBvZbqNFheBz61R1rzsezjm0J7O2oNGoWtGoY89SZYLUfxAJTBAqDChqAIdB4rCiIbi9nF7yZ83GnNiLwSw== - -"@rollup/rollup-openbsd-x64@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.61.1.tgz#d8478e23a575745f0febbde0867a133cf29fe164" - integrity sha512-E83TXjI4zm0+5f2qO+UOudaCYIhYwpJ5jq6YCZNIZ+6CbfhKrkAGezeiASBL9ElxAxFsRS9ZhESv8mfnj6TKeg== - -"@rollup/rollup-openharmony-arm64@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.61.1.tgz#b367bc49355b7ec2508cbad970721ac78b41bf0c" - integrity sha512-fbWnKqVkjrJN38vNe3ahkbk6iejS/3b0Nt7EEtPpE6RBacZcGXNKbzfHN3GUUlXOPghUg0j6XUGrtjX9z1sIvA== - -"@rollup/rollup-win32-arm64-msvc@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.61.1.tgz#d7be3478b45d6434d13cbe62cce29c4fb6366948" - integrity sha512-ArMl38iVAbk0New1ogihQNY6iphLi4ZaRsa037gUzv5yeKPY8TD3Dmy4x2RNC1VztU/uqm+G+/RwFrSka3Oy2g== - -"@rollup/rollup-win32-ia32-msvc@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.61.1.tgz#7ec5801739cae3bf119f419b77a10cb0dc49f40f" - integrity sha512-0mYtjHS9ucAbcATycCNK9IGBk/cCe/ma7EmSLGZdsxnOA8cjRIyU04wDpVAD9NiOfLUR9KTxdiO53uOkherqjQ== - -"@rollup/rollup-win32-x64-gnu@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.61.1.tgz#94a83572bf151772d945ffd4777ded305cd8c346" - integrity sha512-gK1iCEPfpoSG9wfBihXxvBMi8ZfcWffYkEsC/Eih+iFENTaewvNcrEQ69lIOWYO5pePHKLHHO7nq5AILGO/HQQ== - -"@rollup/rollup-win32-x64-msvc@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.61.1.tgz#cb98a579ab6eec9940bda7a736df5e2b94eb0a27" - integrity sha512-X+zaP2x+j4RXGfbp/seSoRHWnPxzApilDszisZxbYH5C/jTxFhCtDNdPGZb9lJyYPs24wGxruPF7Y+sIXt9Gzw== - -"@solana-program/address-lookup-table@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" - integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== - -"@solana-program/compute-budget@^0.18.0": - version "0.18.1" - resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" - integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== - -"@solana-program/loader-v3@^0.6.0": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" - integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== - -"@solana-program/stake@^0.9.0": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" - integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== - -"@solana-program/system@^0.10.0": - version "0.10.0" - resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.10.0.tgz#f68ffb0a3e1c1d5e68ecfe111fbbe729f95a582a" - integrity sha512-Go+LOEZmqmNlfr+Gjy5ZWAdY5HbYzk2RBewD9QinEU/bBSzpFfzqDRT55JjFRBGJUvMgf3C2vfXEGT4i8DSI4g== - -"@solana-program/system@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" - integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== - -"@solana/accounts@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-5.5.1.tgz#5a86ecf221dc9c4ad317f5816179a0616a0376fb" - integrity sha512-TfOY9xixg5rizABuLVuZ9XI2x2tmWUC/OoN556xwfDlhBHBjKfszicYYOyD6nbFmwTGYarCmyGIdteXxTXIdhQ== - dependencies: - "@solana/addresses" "5.5.1" - "@solana/codecs-core" "5.5.1" - "@solana/codecs-strings" "5.5.1" - "@solana/errors" "5.5.1" - "@solana/rpc-spec" "5.5.1" - "@solana/rpc-types" "5.5.1" - -"@solana/accounts@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" - integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/addresses@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-5.5.1.tgz#7137c6af545724f19116f3631baa49b501e0253d" - integrity sha512-5xoah3Q9G30HQghu/9BiHLb5pzlPKRC3zydQDmE3O9H//WfayxTFppsUDCL6FjYUHqj/wzK6CWHySglc2RkpdA== - dependencies: - "@solana/assertions" "5.5.1" - "@solana/codecs-core" "5.5.1" - "@solana/codecs-strings" "5.5.1" - "@solana/errors" "5.5.1" - "@solana/nominal-types" "5.5.1" - -"@solana/addresses@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" - integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/assertions@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-5.5.1.tgz#4ffece2a6a30c951d0d9ff96bfc26f9f75c6e2be" - integrity sha512-YTCSWAlGwSlVPnWtWLm3ukz81wH4j2YaCveK+TjpvUU88hTy6fmUqxi0+hvAMAe4zKXpJyj3Az7BrLJRxbIm4Q== - dependencies: - "@solana/errors" "5.5.1" - -"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" - integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/buffer-layout@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" - integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== - dependencies: - buffer "~6.0.3" - -"@solana/codecs-core@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-2.3.0.tgz#6bf2bb565cb1ae880f8018635c92f751465d8695" - integrity sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw== - dependencies: - "@solana/errors" "2.3.0" - -"@solana/codecs-core@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-5.5.1.tgz#1b2619c697ad04c99f98cc468135d584b7e2b16d" - integrity sha512-TgBt//bbKBct0t6/MpA8ElaOA3sa8eYVvR7LGslCZ84WiAwwjCY0lW/lOYsFHJQzwREMdUyuEyy5YWBKtdh8Rw== - dependencies: - "@solana/errors" "5.5.1" - -"@solana/codecs-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" - integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/codecs-data-structures@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-5.5.1.tgz#4ebadc8feaa5cc30c95a485c5b34c5175245e4b2" - integrity sha512-97bJWGyUY9WvBz3mX1UV3YPWGDTez6btCfD0ip3UVEXJbItVuUiOkzcO5iFDUtQT5riKT6xC+Mzl+0nO76gd0w== - dependencies: - "@solana/codecs-core" "5.5.1" - "@solana/codecs-numbers" "5.5.1" - "@solana/errors" "5.5.1" - -"@solana/codecs-data-structures@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" - integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@5.5.1", "@solana/codecs-numbers@^5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-5.5.1.tgz#6ebc43250133ceb7836f1ac5780a7767e383efde" - integrity sha512-rllMIZAHqmtvC0HO/dc/21wDuWaD0B8Ryv8o+YtsICQBuiL/0U4AGwH7Pi5GNFySYk0/crSuwfIqQFtmxNSPFw== - dependencies: - "@solana/codecs-core" "5.5.1" - "@solana/errors" "5.5.1" - -"@solana/codecs-numbers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" - integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@^2.1.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" - integrity sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg== - dependencies: - "@solana/codecs-core" "2.3.0" - "@solana/errors" "2.3.0" - -"@solana/codecs-strings@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-5.5.1.tgz#3849b188bf4a262f63957b69071e945fb82b445d" - integrity sha512-7klX4AhfHYA+uKKC/nxRGP2MntbYQCR3N6+v7bk1W/rSxYuhNmt+FN8aoThSZtWIKwN6BEyR1167ka8Co1+E7A== - dependencies: - "@solana/codecs-core" "5.5.1" - "@solana/codecs-numbers" "5.5.1" - "@solana/errors" "5.5.1" - -"@solana/codecs-strings@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" - integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-5.5.1.tgz#9e56d1caec5195ebaaee3e635ee6ab2c3a5a697b" - integrity sha512-Vea29nJub/bXjfzEV7ZZQ/PWr1pYLZo3z0qW0LQL37uKKVzVFRQlwetd7INk3YtTD3xm9WUYr7bCvYUk3uKy2g== - dependencies: - "@solana/codecs-core" "5.5.1" - "@solana/codecs-data-structures" "5.5.1" - "@solana/codecs-numbers" "5.5.1" - "@solana/codecs-strings" "5.5.1" - "@solana/options" "5.5.1" - -"@solana/codecs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" - integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/options" "8.3.0" - -"@solana/errors@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.3.0.tgz#4ac9380343dbeffb9dffbcb77c28d0e457c5fa31" - integrity sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ== - dependencies: - chalk "^5.4.1" - commander "^14.0.0" - -"@solana/errors@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-5.5.1.tgz#1c17bc822264fd5a6305d8bfb9d597858e4ce17b" - integrity sha512-vFO3p+S7HoyyrcAectnXbdsMfwUzY2zYFUc2DEe5BwpiE9J1IAxPBGjOWO6hL1bbYdBrlmjNx8DXCslqS+Kcmg== - dependencies: - chalk "5.6.2" - commander "14.0.2" - -"@solana/errors@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" - integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== - dependencies: - chalk "5.6.2" - commander "15.0.0" - -"@solana/fast-stable-stringify@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-5.5.1.tgz#3c9507eb881f1eac7a22ce52c845175a7857b10d" - integrity sha512-Ni7s2FN33zTzhTFgRjEbOVFO+UAmK8qi3Iu0/GRFYK4jN696OjKHnboSQH/EacQ+yGqS54bfxf409wU5dsLLCw== - -"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" - integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== - -"@solana/fixed-points@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" - integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/functional@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-5.5.1.tgz#b23437d15a20ac2faa50bb516911baab5f6c33bf" - integrity sha512-tTHoJcEQq3gQx5qsdsDJ0LEJeFzwNpXD80xApW9o/PPoCNimI3SALkZl+zNW8VnxRrV3l3yYvfHWBKe/X3WG3w== - -"@solana/functional@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" - integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== - -"@solana/instruction-plans@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-5.5.1.tgz#df347bbbc77d9380a9486dfedbae5e858ef47ea6" - integrity sha512-7z3CB7YMcFKuVvgcnNY8bY6IsZ8LG61Iytbz7HpNVGX2u1RthOs1tRW8luTzSG1MPL0Ox7afyAVMYeFqSPHnaQ== - dependencies: - "@solana/errors" "5.5.1" - "@solana/instructions" "5.5.1" - "@solana/keys" "5.5.1" - "@solana/promises" "5.5.1" - "@solana/transaction-messages" "5.5.1" - "@solana/transactions" "5.5.1" - -"@solana/instruction-plans@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" - integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/instructions@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-5.5.1.tgz#864a9f2ebd4911379b56a9e01ecfa6d52bbf5173" - integrity sha512-h0G1CG6S+gUUSt0eo6rOtsaXRBwCq1+Js2a+Ps9Bzk9q7YHNFA75/X0NWugWLgC92waRp66hrjMTiYYnLBoWOQ== - dependencies: - "@solana/codecs-core" "5.5.1" - "@solana/errors" "5.5.1" - -"@solana/instructions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" - integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/keys@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-5.5.1.tgz#62405c5b25f72add88bc3af63cca66739526f429" - integrity sha512-KRD61cL7CRL+b4r/eB9dEoVxIf/2EJ1Pm1DmRYhtSUAJD2dJ5Xw8QFuehobOGm9URqQ7gaQl+Fkc1qvDlsWqKg== - dependencies: - "@solana/assertions" "5.5.1" - "@solana/codecs-core" "5.5.1" - "@solana/codecs-strings" "5.5.1" - "@solana/errors" "5.5.1" - "@solana/nominal-types" "5.5.1" - -"@solana/keys@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" - integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/kit@^5.4.0": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-5.5.1.tgz#5baf7def33dcd5673fc86f8af9c7f326faa01959" - integrity sha512-irKUGiV2yRoyf+4eGQ/ZeCRxa43yjFEL1DUI5B0DkcfZw3cr0VJtVJnrG8OtVF01vT0OUfYOcUn6zJW5TROHvQ== - dependencies: - "@solana/accounts" "5.5.1" - "@solana/addresses" "5.5.1" - "@solana/codecs" "5.5.1" - "@solana/errors" "5.5.1" - "@solana/functional" "5.5.1" - "@solana/instruction-plans" "5.5.1" - "@solana/instructions" "5.5.1" - "@solana/keys" "5.5.1" - "@solana/offchain-messages" "5.5.1" - "@solana/plugin-core" "5.5.1" - "@solana/programs" "5.5.1" - "@solana/rpc" "5.5.1" - "@solana/rpc-api" "5.5.1" - "@solana/rpc-parsed-types" "5.5.1" - "@solana/rpc-spec-types" "5.5.1" - "@solana/rpc-subscriptions" "5.5.1" - "@solana/rpc-types" "5.5.1" - "@solana/signers" "5.5.1" - "@solana/sysvars" "5.5.1" - "@solana/transaction-confirmation" "5.5.1" - "@solana/transaction-messages" "5.5.1" - "@solana/transactions" "5.5.1" - -"@solana/kit@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" - integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/plugin-core" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/program-client-core" "8.3.0" - "@solana/programs" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/subscribable" "8.3.0" - "@solana/sysvars" "8.3.0" - "@solana/transaction-confirmation" "8.3.0" - "@solana/transaction-introspection" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/nominal-types@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-5.5.1.tgz#61a06d88b463889add17656ac33734e074505af5" - integrity sha512-I1ImR+kfrLFxN5z22UDiTWLdRZeKtU0J/pkWkO8qm/8WxveiwdIv4hooi8pb6JnlR4mSrWhq0pCIOxDYrL9GIQ== - -"@solana/nominal-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" - integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== - -"@solana/offchain-messages@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-5.5.1.tgz#0faae304d37a4bf5562b69400a67f5b900e5b877" - integrity sha512-g+xHH95prTU+KujtbOzj8wn+C7ZNoiLhf3hj6nYq3MTyxOXtBEysguc97jJveUZG0K97aIKG6xVUlMutg5yxhw== - dependencies: - "@solana/addresses" "5.5.1" - "@solana/codecs-core" "5.5.1" - "@solana/codecs-data-structures" "5.5.1" - "@solana/codecs-numbers" "5.5.1" - "@solana/codecs-strings" "5.5.1" - "@solana/errors" "5.5.1" - "@solana/keys" "5.5.1" - "@solana/nominal-types" "5.5.1" - -"@solana/offchain-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" - integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/options@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/options/-/options-5.5.1.tgz#ee0f1e29bdb7595d3c57bb1932a439ea9055de26" - integrity sha512-eo971c9iLNLmk+yOFyo7yKIJzJ/zou6uKpy6mBuyb/thKtS/haiKIc3VLhyTXty3OH2PW8yOlORJnv4DexJB8A== - dependencies: - "@solana/codecs-core" "5.5.1" - "@solana/codecs-data-structures" "5.5.1" - "@solana/codecs-numbers" "5.5.1" - "@solana/codecs-strings" "5.5.1" - "@solana/errors" "5.5.1" - -"@solana/options@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" - integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/plugin-core@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-5.5.1.tgz#cfd39b3a6231b662b1079f4b7561e5bf25f3f63b" - integrity sha512-VUZl30lDQFJeiSyNfzU1EjYt2QZvoBFKEwjn1lilUJw7KgqD5z7mbV7diJhT+dLFs36i0OsjXvq5kSygn8YJ3A== - -"@solana/plugin-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" - integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== - -"@solana/plugin-interfaces@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" - integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/program-client-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" - integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/signers" "8.3.0" - -"@solana/programs@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-5.5.1.tgz#211ea9cb1811f441146539a1ad1f88622400fdbd" - integrity sha512-7U9kn0Jsx1NuBLn5HRTFYh78MV4XN145Yc3WP/q5BlqAVNlMoU9coG5IUTJIG847TUqC1lRto3Dnpwm6T4YRpA== - dependencies: - "@solana/addresses" "5.5.1" - "@solana/errors" "5.5.1" - -"@solana/programs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" - integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/promises@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-5.5.1.tgz#4dbdea765fe20fe81e92c47d72010e2ff4f35893" - integrity sha512-T9lfuUYkGykJmppEcssNiCf6yiYQxJkhiLPP+pyAc2z84/7r3UVIb2tNJk4A9sucS66pzJnVHZKcZVGUUp6wzA== - -"@solana/promises@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" - integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== - -"@solana/rpc-api@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-5.5.1.tgz#1214e1ddc24793c101dc9a6dc2098c554a0fd327" - integrity sha512-XWOQQPhKl06Vj0xi3RYHAc6oEQd8B82okYJ04K7N0Vvy3J4PN2cxeK7klwkjgavdcN9EVkYCChm2ADAtnztKnA== - dependencies: - "@solana/addresses" "5.5.1" - "@solana/codecs-core" "5.5.1" - "@solana/codecs-strings" "5.5.1" - "@solana/errors" "5.5.1" - "@solana/keys" "5.5.1" - "@solana/rpc-parsed-types" "5.5.1" - "@solana/rpc-spec" "5.5.1" - "@solana/rpc-transformers" "5.5.1" - "@solana/rpc-types" "5.5.1" - "@solana/transaction-messages" "5.5.1" - "@solana/transactions" "5.5.1" - -"@solana/rpc-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" - integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-parsed-types@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-5.5.1.tgz#329ff94a5e3661c59167b58de4a55b390a9e24f8" - integrity sha512-HEi3G2nZqGEsa3vX6U0FrXLaqnUCg4SKIUrOe8CezD+cSFbRTOn3rCLrUmJrhVyXlHoQVaRO9mmeovk31jWxJg== - -"@solana/rpc-parsed-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" - integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== - -"@solana/rpc-spec-types@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-5.5.1.tgz#6e9a9d8e6856273ee76bf23fe635a0aaac202e54" - integrity sha512-6OFKtRpIEJQs8Jb2C4OO8KyP2h2Hy1MFhatMAoXA+0Ik8S3H+CicIuMZvGZ91mIu/tXicuOOsNNLu3HAkrakrw== - -"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" - integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/rpc-spec@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-5.5.1.tgz#3fe48f458c10df76da0f05436cba1117e955af79" - integrity sha512-m3LX2bChm3E3by4mQrH4YwCAFY57QBzuUSWqlUw7ChuZ+oLLOq7b2czi4i6L4Vna67j3eCmB3e+4tqy1j5wy7Q== - dependencies: - "@solana/errors" "5.5.1" - "@solana/rpc-spec-types" "5.5.1" - -"@solana/rpc-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" - integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions-api@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-5.5.1.tgz#138d73745c7736ec3c78bd4ca9b3d621d16c4cce" - integrity sha512-5Oi7k+GdeS8xR2ly1iuSFkAv6CZqwG0Z6b1QZKbEgxadE1XGSDrhM2cn59l+bqCozUWCqh4c/A2znU/qQjROlw== - dependencies: - "@solana/addresses" "5.5.1" - "@solana/keys" "5.5.1" - "@solana/rpc-subscriptions-spec" "5.5.1" - "@solana/rpc-transformers" "5.5.1" - "@solana/rpc-types" "5.5.1" - "@solana/transaction-messages" "5.5.1" - "@solana/transactions" "5.5.1" - -"@solana/rpc-subscriptions-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" - integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-subscriptions-channel-websocket@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-5.5.1.tgz#ebfa937d12c3629762a256e699342b3ce2d9c940" - integrity sha512-7tGfBBrYY8TrngOyxSHoCU5shy86iA9SRMRrPSyBhEaZRAk6dnbdpmUTez7gtdVo0BCvh9nzQtUycKWSS7PnFQ== - dependencies: - "@solana/errors" "5.5.1" - "@solana/functional" "5.5.1" - "@solana/rpc-subscriptions-spec" "5.5.1" - "@solana/subscribable" "5.5.1" - ws "^8.19.0" - -"@solana/rpc-subscriptions-channel-websocket@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" - integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/subscribable" "8.3.0" - ws "^8.21.3" - -"@solana/rpc-subscriptions-spec@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-5.5.1.tgz#dd7859dedcb5ca531e7c20901172c5ec1c2fa5b9" - integrity sha512-iq+rGq5fMKP3/mKHPNB6MC8IbVW41KGZg83Us/+LE3AWOTWV1WT20KT2iH1F1ik9roi42COv/TpoZZvhKj45XQ== - dependencies: - "@solana/errors" "5.5.1" - "@solana/promises" "5.5.1" - "@solana/rpc-spec-types" "5.5.1" - "@solana/subscribable" "5.5.1" - -"@solana/rpc-subscriptions-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" - integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-5.5.1.tgz#a35e84b934a3a18efa1f815844f639223c4e7d88" - integrity sha512-CTMy5bt/6mDh4tc6vUJms9EcuZj3xvK0/xq8IQ90rhkpYvate91RjBP+egvjgSayUg9yucU9vNuUpEjz4spM7w== - dependencies: - "@solana/errors" "5.5.1" - "@solana/fast-stable-stringify" "5.5.1" - "@solana/functional" "5.5.1" - "@solana/promises" "5.5.1" - "@solana/rpc-spec-types" "5.5.1" - "@solana/rpc-subscriptions-api" "5.5.1" - "@solana/rpc-subscriptions-channel-websocket" "5.5.1" - "@solana/rpc-subscriptions-spec" "5.5.1" - "@solana/rpc-transformers" "5.5.1" - "@solana/rpc-types" "5.5.1" - "@solana/subscribable" "5.5.1" - -"@solana/rpc-subscriptions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" - integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions-api" "8.3.0" - "@solana/rpc-subscriptions-channel-websocket" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-transformers@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-5.5.1.tgz#632295520087b5935770af1da8329e97e3181bc3" - integrity sha512-OsWqLCQdcrRJKvHiMmwFhp9noNZ4FARuMkHT5us3ustDLXaxOjF0gfqZLnMkulSLcKt7TGXqMhBV+HCo7z5M8Q== - dependencies: - "@solana/errors" "5.5.1" - "@solana/functional" "5.5.1" - "@solana/nominal-types" "5.5.1" - "@solana/rpc-spec-types" "5.5.1" - "@solana/rpc-types" "5.5.1" - -"@solana/rpc-transformers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" - integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/rpc-transport-http@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-5.5.1.tgz#27f3fbdef6dd99e2507ae2b996107960454c62a3" - integrity sha512-yv8GoVSHqEV0kUJEIhkdOVkR2SvJ6yoWC51cJn2rSV7plr6huLGe0JgujCmB7uZhhaLbcbP3zxXxu9sOjsi7Fg== - dependencies: - "@solana/errors" "5.5.1" - "@solana/rpc-spec" "5.5.1" - "@solana/rpc-spec-types" "5.5.1" - undici-types "^7.19.2" - -"@solana/rpc-transport-http@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" - integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - undici-types "^8.10.2" - -"@solana/rpc-types@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-5.5.1.tgz#ec16170f2470ece5de7154e920842125b7059cb5" - integrity sha512-bibTFQ7PbHJJjGJPmfYC2I+/5CRFS4O2p9WwbFraX1Keeel+nRrt/NBXIy8veP5AEn2sVJIyJPpWBRpCx1oATA== - dependencies: - "@solana/addresses" "5.5.1" - "@solana/codecs-core" "5.5.1" - "@solana/codecs-numbers" "5.5.1" - "@solana/codecs-strings" "5.5.1" - "@solana/errors" "5.5.1" - "@solana/nominal-types" "5.5.1" - -"@solana/rpc-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" - integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/rpc@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-5.5.1.tgz#933a20f5bfcf005e0b4082746d2f48203a3832ee" - integrity sha512-ku8zTUMrkCWci66PRIBC+1mXepEnZH/q1f3ck0kJZ95a06bOTl5KU7HeXWtskkyefzARJ5zvCs54AD5nxjQJ+A== - dependencies: - "@solana/errors" "5.5.1" - "@solana/fast-stable-stringify" "5.5.1" - "@solana/functional" "5.5.1" - "@solana/rpc-api" "5.5.1" - "@solana/rpc-spec" "5.5.1" - "@solana/rpc-spec-types" "5.5.1" - "@solana/rpc-transformers" "5.5.1" - "@solana/rpc-transport-http" "5.5.1" - "@solana/rpc-types" "5.5.1" - -"@solana/rpc@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" - integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-transport-http" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/signers@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-5.5.1.tgz#21cdc65ed007e8173043af9db44d8adc2fb9c054" - integrity sha512-FY0IVaBT2kCAze55vEieR6hag4coqcuJ31Aw3hqRH7mv6sV8oqwuJmUrx+uFwOp1gwd5OEAzlv6N4hOOple4sQ== - dependencies: - "@solana/addresses" "5.5.1" - "@solana/codecs-core" "5.5.1" - "@solana/errors" "5.5.1" - "@solana/instructions" "5.5.1" - "@solana/keys" "5.5.1" - "@solana/nominal-types" "5.5.1" - "@solana/offchain-messages" "5.5.1" - "@solana/transaction-messages" "5.5.1" - "@solana/transactions" "5.5.1" - -"@solana/signers@8.3.0", "@solana/signers@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" - integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/subscribable@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-5.5.1.tgz#4321a5b8d1e9de7f94745708213f4b437e6ec70b" - integrity sha512-9K0PsynFq0CsmK1CDi5Y2vUIJpCqkgSS5yfDN0eKPgHqEptLEaia09Kaxc90cSZDZU5mKY/zv1NBmB6Aro9zQQ== - dependencies: - "@solana/errors" "5.5.1" - -"@solana/subscribable@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" - integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/sysvars@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-5.5.1.tgz#804cbb993343d31e86a23b071a76710e3c236aca" - integrity sha512-k3Quq87Mm+geGUu1GWv6knPk0ALsfY6EKSJGw9xUJDHzY/RkYSBnh0RiOrUhtFm2TDNjOailg8/m0VHmi3reFA== - dependencies: - "@solana/accounts" "5.5.1" - "@solana/codecs" "5.5.1" - "@solana/errors" "5.5.1" - "@solana/rpc-types" "5.5.1" - -"@solana/sysvars@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" - integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transaction-confirmation@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-5.5.1.tgz#7fd150846dac1cf177223331f0089f94516752ca" - integrity sha512-j4mKlYPHEyu+OD7MBt3jRoX4ScFgkhZC6H65on4Fux6LMScgivPJlwnKoZMnsgxFgWds0pl+BYzSiALDsXlYtw== - dependencies: - "@solana/addresses" "5.5.1" - "@solana/codecs-strings" "5.5.1" - "@solana/errors" "5.5.1" - "@solana/keys" "5.5.1" - "@solana/promises" "5.5.1" - "@solana/rpc" "5.5.1" - "@solana/rpc-subscriptions" "5.5.1" - "@solana/rpc-types" "5.5.1" - "@solana/transaction-messages" "5.5.1" - "@solana/transactions" "5.5.1" - -"@solana/transaction-confirmation@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" - integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-introspection@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" - integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-messages@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-5.5.1.tgz#1fc965274ddae9fe39bf44cb6005469faf99fc02" - integrity sha512-aXyhMCEaAp3M/4fP0akwBBQkFPr4pfwoC5CLDq999r/FUwDax2RE/h4Ic7h2Xk+JdcUwsb+rLq85Y52hq84XvQ== - dependencies: - "@solana/addresses" "5.5.1" - "@solana/codecs-core" "5.5.1" - "@solana/codecs-data-structures" "5.5.1" - "@solana/codecs-numbers" "5.5.1" - "@solana/errors" "5.5.1" - "@solana/functional" "5.5.1" - "@solana/instructions" "5.5.1" - "@solana/nominal-types" "5.5.1" - "@solana/rpc-types" "5.5.1" - -"@solana/transaction-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" - integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transactions@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-5.5.1.tgz#78aee76dccc6486bd6f8be89bb4369b99d9bdba0" - integrity sha512-8hHtDxtqalZ157pnx6p8k10D7J/KY/biLzfgh9R09VNLLY3Fqi7kJvJCr7M2ik3oRll56pxhraAGCC9yIT6eOA== - dependencies: - "@solana/addresses" "5.5.1" - "@solana/codecs-core" "5.5.1" - "@solana/codecs-data-structures" "5.5.1" - "@solana/codecs-numbers" "5.5.1" - "@solana/codecs-strings" "5.5.1" - "@solana/errors" "5.5.1" - "@solana/functional" "5.5.1" - "@solana/instructions" "5.5.1" - "@solana/keys" "5.5.1" - "@solana/nominal-types" "5.5.1" - "@solana/rpc-types" "5.5.1" - "@solana/transaction-messages" "5.5.1" - -"@solana/transactions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" - integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - -"@solana/web3.js@3.0.0-rc.3": - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" - integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@solana-program/address-lookup-table" "^0.14.0" - "@solana-program/compute-budget" "^0.18.0" - "@solana-program/loader-v3" "^0.6.0" - "@solana-program/stake" "^0.9.0" - "@solana-program/system" "^0.14.0" - "@solana/assertions" "^8.2.0" - "@solana/fast-stable-stringify" "^8.2.0" - "@solana/kit" "^8.2.0" - "@solana/rpc-spec-types" "^8.2.0" - "@solana/signers" "^8.2.0" - -"@solana/web3.js@^1.69.0": - version "1.99.0" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.99.0.tgz#864ce3fefe03b258c430e31e6672b422426821f7" - integrity sha512-QZYQ2T1z6xWisoyALPq25i/QZTsRlM02BABtAsfaQ1p8wX4SdTfxrKTRue/ZZqrhNVh5oL7T/DUFiTS9DRgxow== - dependencies: - "@babel/runtime" "^7.29.7" - "@noble/curves" "^1.9.7" - "@noble/hashes" "^1.8.0" - "@solana/buffer-layout" "^4.0.1" - "@solana/codecs-numbers" "^5.5.1" - agentkeepalive "^4.6.0" - bn.js "^5.2.5" - borsh "^0.7.0" - bs58 "^4.0.1" - buffer "6.0.3" - fast-stable-stringify "^1.0.0" - jayson "^4.3.0" - node-fetch "^2.7.0" - rpc-websockets "^9.0.2" - superstruct "^2.0.2" - -"@solana/web3.js@^1.93.0", "@solana/web3.js@^1.98.0": - version "1.98.4" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" - integrity sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw== - 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.1.0" - agentkeepalive "^4.5.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.1.1" - node-fetch "^2.7.0" - rpc-websockets "^9.0.2" - superstruct "^2.0.2" - -"@swc/helpers@^0.5.11": - version "0.5.23" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.23.tgz#19287d0d86d962b111376039a50c792902c9a86a" - integrity sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw== - dependencies: - tslib "^2.8.0" - -"@tsconfig/node10@^1.0.7": - version "1.0.12" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.12.tgz#be57ceac1e4692b41be9de6be8c32a106636dba4" - integrity sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@types/chai@^5.2.2": - version "5.2.3" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-5.2.3.tgz#8e9cd9e1c3581fa6b341a5aed5588eb285be0b4a" - integrity sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA== - dependencies: - "@types/deep-eql" "*" - assertion-error "^2.0.1" - -"@types/connect@^3.4.33": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" - integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== - dependencies: - "@types/node" "*" - -"@types/deep-eql@*": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/deep-eql/-/deep-eql-4.0.2.tgz#334311971d3a07121e7eb91b684a605e7eea9cbd" - integrity sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw== - -"@types/estree@1.0.9", "@types/estree@^1.0.0": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.9.tgz#cf3f0e876d7bee15a93ab925b82bf570a3904a24" - integrity sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg== - -"@types/node@*": - version "25.9.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-25.9.3.tgz#11dfe7a33e68fa5c560f0aa76cc5595621ef26b9" - integrity sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg== - dependencies: - undici-types ">=7.24.0 <7.24.7" - -"@types/node@^12.12.54": - version "12.20.55" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - -"@types/node@^20.0.0": - version "20.19.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.19.43.tgz#fcecf580ba42a0db55cf404c372c97973c376c97" - integrity sha512-6oYBAi5ikg4Pl+kGsoYtawUMBT2zZMCvPNF7pVLnHZfd1zf38DRiWn/gT01RYCdUqkv7Fhr+C9ot4/tb+2sVvA== - dependencies: - undici-types "~6.21.0" - -"@types/ws@^7.4.4": - version "7.4.7" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - dependencies: - "@types/node" "*" - -"@types/ws@^8.2.2": - version "8.18.1" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" - integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== - dependencies: - "@types/node" "*" - -"@vitest/expect@3.2.6": - version "3.2.6" - resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-3.2.6.tgz#dc3a617acc1f29c132ed6be15456adb75c94a7a4" - integrity sha512-1+7q9BtaKzEmO+fmNT3kYvoNn5Y71XWAx2Q5HRim4tTVRQVRv4uJFAQ5FbK0OPUeNP/WmVCpxYxoJdvuHVjzBQ== - dependencies: - "@types/chai" "^5.2.2" - "@vitest/spy" "3.2.6" - "@vitest/utils" "3.2.6" - chai "^5.2.0" - tinyrainbow "^2.0.0" - -"@vitest/mocker@3.2.6": - version "3.2.6" - resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-3.2.6.tgz#fd0f2bc2a86d82b6013b3456ad662d04a3551434" - integrity sha512-EZOrpDbkKotFAP7wPAQV1UIyoGOk4oX7ynWhBhLB7v+meMHbQhU16oPpIYGTTe4oFlhpryGpgpcZP/sin3hYuw== - dependencies: - "@vitest/spy" "3.2.6" - estree-walker "^3.0.3" - magic-string "^0.30.17" - -"@vitest/pretty-format@3.2.6", "@vitest/pretty-format@^3.2.6": - version "3.2.6" - resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-3.2.6.tgz#5d1272700abe317f24b88009337b2b5cdaa68bf6" - integrity sha512-lb7XXXzmm2h2ASzFnRvQpDo6onT1NmMJA3tkGTWiBFtRJ9lxGY3d3mm/Apt36gej2bkkOVLL/yTOtufDaFa/jA== - dependencies: - tinyrainbow "^2.0.0" - -"@vitest/runner@3.2.6": - version "3.2.6" - resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-3.2.6.tgz#6d9fb047b1430431987782e779aa889819a2e964" - integrity sha512-HYcoSj1w5tcgUnzoF0HcyaAQjpA1gj9ftUJ7iSJSuipc02jW9gKkigwZbjFldAfYHA1fa8UZVRftdMY5msWM9Q== - dependencies: - "@vitest/utils" "3.2.6" - pathe "^2.0.3" - strip-literal "^3.0.0" - -"@vitest/snapshot@3.2.6": - version "3.2.6" - resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-3.2.6.tgz#3a9cb56389289028a511e97bbfd41d914004f3f5" - integrity sha512-H+ZjNTWGpObenh0YnlBctAPnJSI20P81PL8BPzWpx54YXLLTm8hEsWawtcYLMrwvpK48hGxLLbCS+1KRXhsKhw== - dependencies: - "@vitest/pretty-format" "3.2.6" - magic-string "^0.30.17" - pathe "^2.0.3" - -"@vitest/spy@3.2.6": - version "3.2.6" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-3.2.6.tgz#c255ab84df924b28d6fbec60a37a7f693db4ea41" - integrity sha512-oq6BbH68WzcWmwtBrU9nqLeaXTR4XwJF7FSLkKEZo4i6eoXcrxjcwSuTvWBIRUTC6VC72nXYunzqgZA+IKdtxg== - dependencies: - tinyspy "^4.0.3" - -"@vitest/utils@3.2.6": - version "3.2.6" - resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-3.2.6.tgz#6fad3368e48b7a1d058827eb9b4bbc650a3f9402" - integrity sha512-lI23nIs4bnT3T8NIoh+vFaz5s2/DdP0Jgt2jxwgWljvwn82cLJtyi/If+fjFyoLMGIOz0U/fKvWE0d4jsNQEfg== - dependencies: - "@vitest/pretty-format" "3.2.6" - loupe "^3.1.4" - tinyrainbow "^2.0.0" - -acorn-walk@^8.1.1: - version "8.3.5" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.5.tgz#8a6b8ca8fc5b34685af15dabb44118663c296496" - integrity sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw== - dependencies: - acorn "^8.11.0" - -acorn@^8.11.0, acorn@^8.4.1: - version "8.17.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.17.0.tgz#1785adb84faf8d8add10369b93826fc2bd08f1fe" - integrity sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg== - -agentkeepalive@^4.5.0, agentkeepalive@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" - integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== - dependencies: - humanize-ms "^1.2.1" - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -asn1.js@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1js@^3.0.6: - version "3.0.10" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.10.tgz#df26c874c8a8b41ca605efea47b2ad07551013dd" - integrity sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg== - dependencies: - pvtsutils "^1.3.6" - pvutils "^1.1.5" - tslib "^2.8.1" - -assertion-error@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" - integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== - -base-x@^3.0.2: - version "3.0.11" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.11.tgz#40d80e2a1aeacba29792ccc6c5354806421287ff" - integrity sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA== - dependencies: - safe-buffer "^5.0.1" - -base-x@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-5.0.1.tgz#16bf35254be1df8aca15e36b7c1dda74b2aa6b03" - integrity sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bn.js@^4.0.0, bn.js@^4.11.9: - version "4.12.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.3.tgz#2cc2c679188eb35b006f2d0d4710bed8437a769e" - integrity sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g== - -bn.js@^5.1.2, bn.js@^5.2.5: - version "5.2.5" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.5.tgz#e81ce41cf25e6f0cd1e05f20a9db8c18405e375f" - integrity sha512-Vq886eXykuP5E6HcKSSStP3bJgrE6In5WKxVUvJ8XGpWWYs2xZHWqUwzCtGgEtBcxyd57KBFDPFoUfNzdaHCNg== - -bn.js@^5.2.0, bn.js@^5.2.1, bn.js@^5.2.2: - version "5.2.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.3.tgz#16a9e409616b23fef3ccbedb8d42f13bff80295e" - integrity sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w== - -borsh@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" - integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== - dependencies: - bn.js "^5.2.0" - bs58 "^4.0.0" - text-encoding-utf-8 "^1.0.2" - -brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -bs58@^4.0.0, bs58@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - dependencies: - base-x "^3.0.2" - -bs58@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-6.0.0.tgz#a2cda0130558535dd281a2f8697df79caaf425d8" - integrity sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw== - dependencies: - base-x "^5.0.0" - -buffer-layout@^1.2.0, buffer-layout@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" - integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== - -buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -bufferutil@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.1.0.tgz#a4623541dd23867626bb08a051ec0d2ec0b70294" - integrity sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw== - dependencies: - node-gyp-build "^4.3.0" - -cac@^6.7.14: - version "6.7.14" - resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" - integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== - -camelcase@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -chai@^5.2.0: - version "5.3.3" - resolved "https://registry.yarnpkg.com/chai/-/chai-5.3.3.tgz#dd3da955e270916a4bd3f625f4b919996ada7e06" - integrity sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw== - dependencies: - assertion-error "^2.0.1" - check-error "^2.1.1" - deep-eql "^5.0.1" - loupe "^3.1.0" - pathval "^2.0.0" - -chalk@5.6.2, chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - -check-error@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.3.tgz#2427361117b70cca8dc89680ead32b157019caf5" - integrity sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA== - -commander@14.0.2: - version "14.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e" - integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== - -commander@15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" - integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== - -commander@^14.0.0: - version "14.0.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.3.tgz#425d79b48f9af82fcd9e4fc1ea8af6c5ec07bbc2" - integrity sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw== - -commander@^2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-fetch@^3.1.5: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" - integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== - dependencies: - node-fetch "^2.7.0" - -debug@^4.4.1: - version "4.4.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" - integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== - dependencies: - ms "^2.1.3" - -deep-eql@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" - integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== - -delay@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" - integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - -diff@^4.0.1: - version "4.0.4" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.4.tgz#7a6dbfda325f25f07517e9b518f897c08332e07d" - integrity sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ== - -dotenv@^16.0.0: - version "16.6.1" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.6.1.tgz#773f0e69527a8315c7285d5ee73c4459d20a8020" - integrity sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow== - -elliptic@^6.6.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" - integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -es-module-lexer@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz#9159601561880a85f2734560a9099b2c31e5372a" - integrity sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA== - -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== - dependencies: - es6-promise "^4.0.3" - -esbuild@^0.27.0: - version "0.27.7" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.27.7.tgz#bcadce22b2f3fd76f257e3a64f83a64986fea11f" - integrity sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w== - optionalDependencies: - "@esbuild/aix-ppc64" "0.27.7" - "@esbuild/android-arm" "0.27.7" - "@esbuild/android-arm64" "0.27.7" - "@esbuild/android-x64" "0.27.7" - "@esbuild/darwin-arm64" "0.27.7" - "@esbuild/darwin-x64" "0.27.7" - "@esbuild/freebsd-arm64" "0.27.7" - "@esbuild/freebsd-x64" "0.27.7" - "@esbuild/linux-arm" "0.27.7" - "@esbuild/linux-arm64" "0.27.7" - "@esbuild/linux-ia32" "0.27.7" - "@esbuild/linux-loong64" "0.27.7" - "@esbuild/linux-mips64el" "0.27.7" - "@esbuild/linux-ppc64" "0.27.7" - "@esbuild/linux-riscv64" "0.27.7" - "@esbuild/linux-s390x" "0.27.7" - "@esbuild/linux-x64" "0.27.7" - "@esbuild/netbsd-arm64" "0.27.7" - "@esbuild/netbsd-x64" "0.27.7" - "@esbuild/openbsd-arm64" "0.27.7" - "@esbuild/openbsd-x64" "0.27.7" - "@esbuild/openharmony-arm64" "0.27.7" - "@esbuild/sunos-x64" "0.27.7" - "@esbuild/win32-arm64" "0.27.7" - "@esbuild/win32-ia32" "0.27.7" - "@esbuild/win32-x64" "0.27.7" - -estree-walker@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" - integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== - dependencies: - "@types/estree" "^1.0.0" - -eventemitter3@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -eventemitter3@^5.0.1: - version "5.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.4.tgz#a86d66170433712dde814707ac52b5271ceb1feb" - integrity sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw== - -expect-type@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/expect-type/-/expect-type-1.3.0.tgz#0d58ed361877a31bbc4dd6cf71bbfef7faf6bd68" - integrity sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA== - -eyes@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" - integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== - -fast-stable-stringify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" - integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== - -fdir@^6.5.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350" - integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== - -fsevents@~2.3.2, fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - -jayson@^4.1.1, jayson@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.3.0.tgz#22eb8f3dcf37a5e893830e5451f32bde6d1bde4d" - integrity sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ== - dependencies: - "@types/connect" "^3.4.33" - "@types/node" "^12.12.54" - "@types/ws" "^7.4.4" - commander "^2.20.3" - delay "^5.0.0" - es6-promisify "^5.0.0" - eyes "^0.1.8" - isomorphic-ws "^4.0.1" - json-stringify-safe "^5.0.1" - stream-json "^1.9.1" - uuid "^8.3.2" - ws "^7.5.10" - -js-tokens@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-9.0.1.tgz#2ec43964658435296f6761b34e10671c2d9527f4" - integrity sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ== - -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -loupe@^3.1.0, loupe@^3.1.4: - version "3.2.1" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.2.1.tgz#0095cf56dc5b7a9a7c08ff5b1a8796ec8ad17e76" - integrity sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ== - -magic-string@^0.30.17: - version "0.30.21" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.21.tgz#56763ec09a0fa8091df27879fd94d19078c00d91" - integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== - dependencies: - "@jridgewell/sourcemap-codec" "^1.5.5" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -ms@^2.0.0, ms@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -nanoid@^3.3.12: - version "3.3.12" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.12.tgz#ab3d912e217a6d0a514f00a72a16543a28982c05" - integrity sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ== - -node-fetch@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - -node-gyp-build@^4.3.0: - version "4.8.4" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" - integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== - -pako@^2.0.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.2.0.tgz#246b9d4c841a8d308e484c0d03786651b143e63a" - integrity sha512-zJq6RP/5q+TO2OpFV3FHzlPnFjmkb7Nc99a5SNjJE+uu/PkpChs+NIZSSzbBoD+6kjiISXjfYdwj1ZRQ81dz/w== - -pathe@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.3.tgz#3ecbec55421685b70a9da872b2cff3e1cbed1716" - integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== - -pathval@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.1.tgz#8855c5a2899af072d6ac05d11e46045ad0dc605d" - integrity sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ== - -picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - -picomatch@^4.0.2, picomatch@^4.0.3, picomatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.4.tgz#fd6f5e00a143086e074dffe4c924b8fb293b0589" - integrity sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A== - -postcss@^8.5.6: - version "8.5.15" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.15.tgz#d1eaf677a324e9ec02196da2d3fecf4a0b9a735c" - integrity sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A== - dependencies: - nanoid "^3.3.12" - picocolors "^1.1.1" - source-map-js "^1.2.1" - prettier@^3.5.3: - version "3.8.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.8.4.tgz#f334f013ac04a96676f24dabc23c1c4ae1bae411" - integrity sha512-N2MylSdi48+5N/6S5j+maeHbUSIzzZ5uOcX5Hm4QpV8Dkb1HFjfAKTKX6yNPJQD9AhcT3ifHNB66tWTTJDi11Q== - -pvtsutils@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.6.tgz#ec46e34db7422b9e4fdc5490578c1883657d6001" - integrity sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg== - dependencies: - tslib "^2.8.1" - -pvutils@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.5.tgz#84b0dea4a5d670249aa9800511804ee0b7c2809c" - integrity sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA== - -rollup@^4.43.0: - version "4.61.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.61.1.tgz#4a053204912e9083e51cb3a0bf02ffdc397264fb" - integrity sha512-I4KW6iuRpuu2uHBLraZ1wNZe0DP7lnRha+VJ9tNaYVaVgKhW0aI3h4RYnoRPeql0flHm/Co55b7snEDcOfOJrA== - dependencies: - "@types/estree" "1.0.9" - optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.61.1" - "@rollup/rollup-android-arm64" "4.61.1" - "@rollup/rollup-darwin-arm64" "4.61.1" - "@rollup/rollup-darwin-x64" "4.61.1" - "@rollup/rollup-freebsd-arm64" "4.61.1" - "@rollup/rollup-freebsd-x64" "4.61.1" - "@rollup/rollup-linux-arm-gnueabihf" "4.61.1" - "@rollup/rollup-linux-arm-musleabihf" "4.61.1" - "@rollup/rollup-linux-arm64-gnu" "4.61.1" - "@rollup/rollup-linux-arm64-musl" "4.61.1" - "@rollup/rollup-linux-loong64-gnu" "4.61.1" - "@rollup/rollup-linux-loong64-musl" "4.61.1" - "@rollup/rollup-linux-ppc64-gnu" "4.61.1" - "@rollup/rollup-linux-ppc64-musl" "4.61.1" - "@rollup/rollup-linux-riscv64-gnu" "4.61.1" - "@rollup/rollup-linux-riscv64-musl" "4.61.1" - "@rollup/rollup-linux-s390x-gnu" "4.61.1" - "@rollup/rollup-linux-x64-gnu" "4.61.1" - "@rollup/rollup-linux-x64-musl" "4.61.1" - "@rollup/rollup-openbsd-x64" "4.61.1" - "@rollup/rollup-openharmony-arm64" "4.61.1" - "@rollup/rollup-win32-arm64-msvc" "4.61.1" - "@rollup/rollup-win32-ia32-msvc" "4.61.1" - "@rollup/rollup-win32-x64-gnu" "4.61.1" - "@rollup/rollup-win32-x64-msvc" "4.61.1" - fsevents "~2.3.2" - -rpc-websockets@^9.0.2, rpc-websockets@^9.0.4: - version "9.3.10" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.3.10.tgz#d6f9b08edfac40e873a059b358806f6d58572e80" - integrity sha512-QT5PQ6LiWhA5RCS93oWwgxU4XzQltkYm8C3aTmmKEgj0HolGRo3VbdzELw7CEV35l9T7Amha8Vnr4rCfSjVP+w== - dependencies: - "@swc/helpers" "^0.5.11" - "@types/ws" "^8.2.2" - buffer "^6.0.3" - eventemitter3 "^5.0.1" - ws "^8.5.0" - optionalDependencies: - bufferutil "^4.0.1" - utf-8-validate "^6.0.0" - -safe-buffer@^5.0.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -siginfo@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" - integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== - -source-map-js@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" - integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== - -stackback@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" - integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== - -std-env@^3.9.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.10.0.tgz#d810b27e3a073047b2b5e40034881f5ea6f9c83b" - integrity sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg== - -stream-chain@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/stream-chain/-/stream-chain-2.2.5.tgz#b30967e8f14ee033c5b9a19bbe8a2cba90ba0d09" - integrity sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA== - -stream-json@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/stream-json/-/stream-json-1.9.1.tgz#e3fec03e984a503718946c170db7d74556c2a187" - integrity sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw== - dependencies: - stream-chain "^2.2.5" - -strip-literal@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-3.1.0.tgz#222b243dd2d49c0bcd0de8906adbd84177196032" - integrity sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg== - dependencies: - js-tokens "^9.0.1" - -superstruct@^0.15.4: - version "0.15.5" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" - integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== - -superstruct@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-2.0.2.tgz#3f6d32fbdc11c357deff127d591a39b996300c54" - integrity sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A== - -text-encoding-utf-8@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" - integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== - -tinybench@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.9.0.tgz#103c9f8ba6d7237a47ab6dd1dcff77251863426b" - integrity sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg== - -tinyexec@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.2.tgz#941794e657a85e496577995c6eef66f53f42b3d2" - integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA== - -tinyglobby@^0.2.14, tinyglobby@^0.2.15: - version "0.2.17" - resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.17.tgz#562a9a6c9eb2b3b123d39719f9af5bb44fcd7631" - integrity sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g== - dependencies: - fdir "^6.5.0" - picomatch "^4.0.4" - -tinypool@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-1.1.1.tgz#059f2d042bd37567fbc017d3d426bdd2a2612591" - integrity sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg== - -tinyrainbow@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-2.0.0.tgz#9509b2162436315e80e3eee0fcce4474d2444294" - integrity sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw== - -tinyspy@^4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-4.0.4.tgz#d77a002fb53a88aa1429b419c1c92492e0c81f78" - integrity sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q== - -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -ts-node@^10.9.0: - version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" - integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tslib@^2.8.0, tslib@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" - integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -typescript@^5.0.0, typescript@^5.3.0: - version "5.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" - integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== - -"undici-types@>=7.24.0 <7.24.7": - version "7.24.6" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.24.6.tgz#61275b485d7fd4e9d269c7cf04ec2873c9cc0f91" - integrity sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg== - -undici-types@^7.19.2: - version "7.27.2" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.27.2.tgz#fc2e1710c571b4f1822af7c7f32be52dee4098d6" - integrity sha512-cH9f42mHuljpNuoS47sWDDWXVxWnJgYCzHVUlr3tn7+HVx0L6QSO+VG5qgzT4kXkR2K8ZsReaT5bupam6RNAEQ== - -undici-types@^8.10.2: - version "8.10.2" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" - integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== - -undici-types@~6.21.0: - version "6.21.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" - integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== - -utf-8-validate@^6.0.0: - version "6.0.6" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-6.0.6.tgz#8a842c9b15af3f6323a3d5ed5eb9e61d208d8c22" - integrity sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA== - dependencies: - node-gyp-build "^4.3.0" - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -vite-node@3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-3.2.4.tgz#f3676d94c4af1e76898c162c92728bca65f7bb07" - integrity sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg== - dependencies: - cac "^6.7.14" - debug "^4.4.1" - es-module-lexer "^1.7.0" - pathe "^2.0.3" - vite "^5.0.0 || ^6.0.0 || ^7.0.0-0" - -"vite@^5.0.0 || ^6.0.0 || ^7.0.0-0": - version "7.3.5" - resolved "https://registry.yarnpkg.com/vite/-/vite-7.3.5.tgz#90c2d0b7b94a224e7e7dcf22d2912ff0b5291165" - integrity sha512-KuOaNhcnGFN2zIPGA7wRmzF+lJA1sea7rHq17aiJ++9lzY1WWG6Jpwqwe1KNbRVPIqHmr8GLYx7jbrQcN/7/ww== - dependencies: - esbuild "^0.27.0" - fdir "^6.5.0" - picomatch "^4.0.3" - postcss "^8.5.6" - rollup "^4.43.0" - tinyglobby "^0.2.15" - optionalDependencies: - fsevents "~2.3.3" - -vitest@^3.0.0: - version "3.2.6" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-3.2.6.tgz#de42ebfb58e16faba4e5a314fe35e146e03cb340" - integrity sha512-xejya+bT/j/+R/AGa1XOfRxLmNUlLtlwjRsFUILF+xHfzElmGcmFydy2gqqIrd62ptIEfwVMofd19uNWD9L7Nw== - dependencies: - "@types/chai" "^5.2.2" - "@vitest/expect" "3.2.6" - "@vitest/mocker" "3.2.6" - "@vitest/pretty-format" "^3.2.6" - "@vitest/runner" "3.2.6" - "@vitest/snapshot" "3.2.6" - "@vitest/spy" "3.2.6" - "@vitest/utils" "3.2.6" - chai "^5.2.0" - debug "^4.4.1" - expect-type "^1.2.1" - magic-string "^0.30.17" - pathe "^2.0.3" - picomatch "^4.0.2" - std-env "^3.9.0" - tinybench "^2.9.0" - tinyexec "^0.3.2" - tinyglobby "^0.2.14" - tinypool "^1.1.1" - tinyrainbow "^2.0.0" - vite "^5.0.0 || ^6.0.0 || ^7.0.0-0" - vite-node "3.2.4" - why-is-node-running "^2.3.0" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -why-is-node-running@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.3.0.tgz#a3f69a97107f494b3cdc3bdddd883a7d65cebf04" - integrity sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w== - dependencies: - siginfo "^2.0.0" - stackback "0.0.2" - -ws@^7.5.10: - version "7.5.11" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.11.tgz#9460daf1812bb81a423c5b9eac746941a86310fa" - integrity sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA== - -ws@^8.19.0, ws@^8.5.0: - version "8.21.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.0.tgz#012e413fc07429945121b0c153158c4343086951" - integrity sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g== - -ws@^8.21.3: - version "8.21.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" - integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + version "3.9.9" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.9.9.tgz#09b826918c91cd4cbc80e0cbd1d2a922ff04f233" + integrity sha512-Z/CJHIkdujO/OtN7nXUii0Rf3VT5SRuhjBA82Xvu2XhBUgX3nhP67T0LHceBdQLex7OOFGTox+Q5Yg8Jk2Qivg== diff --git a/rock-paper-scissor/anchor/README.md b/rock-paper-scissor/anchor/README.md index 8bbabb29..1d924f9d 100644 --- a/rock-paper-scissor/anchor/README.md +++ b/rock-paper-scissor/anchor/README.md @@ -44,7 +44,7 @@ yarn yarn build ``` -Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): +Run the Rust test suite in `tests-magicsvm-rs/` in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash yarn test @@ -54,7 +54,7 @@ MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no va network. The suite plays two private-choice rounds, reveals the winner, undelegates the game state, and pays out the pot. -A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. +`yarn test` runs `cargo +stable test`: MagicSVM needs a newer Rust than the 1.89 toolchain used for program builds. ## Usage diff --git a/rock-paper-scissor/anchor/package.json b/rock-paper-scissor/anchor/package.json index 8dcc5b10..44173faf 100644 --- a/rock-paper-scissor/anchor/package.json +++ b/rock-paper-scissor/anchor/package.json @@ -3,27 +3,10 @@ "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", "build": "anchor build --ignore-keys", - "test": "ts-mocha -p ./tsconfig.json -t 120000 tests/**/*.ts", - "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture" - }, - "dependencies": { - "@coral-xyz/anchor": "0.32.1", - "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3", - "@magicblock-labs/magicsvm": "0.2.0", - "tweetnacl": "^1.0.3" + "test": "cargo +stable test --manifest-path tests-magicsvm-rs/Cargo.toml" }, "devDependencies": { - "@types/bn.js": "^5.1.0", - "@types/chai": "^5.2.2", - "@types/mocha": "^10.0.10", - "@types/node": "^22.15.0", - "chai": "^5.2.0", - "mocha": "^11.2.2", - "prettier": "^3.5.3", - "ts-mocha": "^11.1.0", - "ts-node": "^10.9.2", - "typescript": "^5.8.3", - "@magicblock-labs/test-utils": "link:../../test-utils/ts" + "prettier": "^3.5.3" }, "license": "MIT", "packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447" diff --git a/rock-paper-scissor/anchor/tests/rock-paper-scissor.ts b/rock-paper-scissor/anchor/tests/rock-paper-scissor.ts deleted file mode 100644 index 2cec2086..00000000 --- a/rock-paper-scissor/anchor/tests/rock-paper-scissor.ts +++ /dev/null @@ -1,666 +0,0 @@ -import * as anchor from "@coral-xyz/anchor"; -import { Program } from "@coral-xyz/anchor"; -import { - Keypair, - PublicKey, - SystemProgram, - Transaction, -} from "@solana/web3.js"; -import { MagicSVM } from "@magicblock-labs/magicsvm"; -import { - airdropOrThrow, - dummyAnchorProvider, - EPHEMERAL_VAULT_ID, - MAGIC_PROGRAM_ID, - PERMISSION_PROGRAM_ID, - permissionPdaFromAccount, - sendSvmTx, -} from "@magicblock-labs/test-utils"; -import BN from "bn.js"; -import * as path from "path"; - -import { - AUTHORITY_FLAG, - Member, - TX_LOGS_FLAG, -} from "@magicblock-labs/ephemeral-rollups-sdk"; - -const PROGRAM_SO = path.resolve( - __dirname, - "../target/deploy/anchor_rock_paper_scissor.so", -); -const IDL = require("../target/idl/anchor_rock_paper_scissor.json"); - -type Choice = { rock: {} } | { paper: {} } | { scissors: {} }; - -function encodeProgram(payer: Keypair): Program { - return new Program(IDL as anchor.Idl, dummyAnchorProvider(payer)); -} - -describe("anchor-rock-paper-scissor (magicsvm)", () => { - const svm = new MagicSVM(); - const player1 = Keypair.generate(); - const player2 = Keypair.generate(); - const programId = new PublicKey(IDL.address); - const validator = new PublicKey(svm.validatorIdentity().toString()); - const program = encodeProgram(player1); - - console.log("Program ID: ", programId.toString()); - console.log("MagicSVM validator identity: ", validator.toBase58()); - - const gameId = new BN(1); - const STAKE = new BN(0.05 * anchor.web3.LAMPORTS_PER_SOL); - const TARGET_WINS = 2; - - const GAME_SEED = Buffer.from("game"); - const PLAYER_CHOICE_SEED = Buffer.from("player_choice"); - const VAULT_SEED = Buffer.from("vault"); - - const [gamePda] = PublicKey.findProgramAddressSync( - [GAME_SEED, gameId.toArrayLike(Buffer, "le", 8)], - programId, - ); - const [vaultPda] = PublicKey.findProgramAddressSync( - [VAULT_SEED, gameId.toArrayLike(Buffer, "le", 8)], - programId, - ); - const [player1ChoicePda] = PublicKey.findProgramAddressSync( - [ - PLAYER_CHOICE_SEED, - gameId.toArrayLike(Buffer, "le", 8), - player1.publicKey.toBuffer(), - ], - programId, - ); - const [player2ChoicePda] = PublicKey.findProgramAddressSync( - [ - PLAYER_CHOICE_SEED, - gameId.toArrayLike(Buffer, "le", 8), - player2.publicKey.toBuffer(), - ], - programId, - ); - - const permissionForGame = permissionPdaFromAccount(gamePda); - const permissionForPlayer1Choice = permissionPdaFromAccount(player1ChoicePda); - const permissionForPlayer2Choice = permissionPdaFromAccount(player2ChoicePda); - - function decodeGame(target: "base" | "ephemeral") { - const account = svm.getAccountFor(gamePda, { target }); - if (!account.exists) { - throw new Error(`game PDA missing on ${target}`); - } - return program.coder.accounts.decode("game", Buffer.from(account.data)); - } - - function decodeChoice(pda: PublicKey, target: "base" | "ephemeral") { - const account = svm.getAccountFor(pda, { target }); - if (!account.exists) { - return null; - } - return program.account.playerChoice.coder.accounts.decode( - "playerChoice", - Buffer.from(account.data), - ); - } - - it("Airdrop SOL to both players and load program", () => { - svm.addProgramFromFile(programId, PROGRAM_SO); - airdropOrThrow(svm, player1.publicKey, 2n * 1_000_000_000n); - airdropOrThrow(svm, player2.publicKey, 2n * 1_000_000_000n); - - const balance1 = svm.getBalance(player1.publicKey); - const balance2 = svm.getBalance(player2.publicKey); - console.log( - "💸 Player 1 Balance:", - Number(balance1) / 1_000_000_000, - "SOL", - ); - console.log( - "💸 Player 2 Balance:", - Number(balance2) / 1_000_000_000, - "SOL", - ); - - const permissionProgram = svm.getAccountFor(PERMISSION_PROGRAM_ID, { - target: "ephemeral", - }); - console.log( - "PERMISSION_PROGRAM_ID on ephemeral:", - permissionProgram.exists - ? `executable=${permissionProgram.executable}` - : "MISSING", - ); - const magicProgram = svm.getAccountFor(MAGIC_PROGRAM_ID, { - target: "ephemeral", - }); - const vault = svm.getAccountFor(EPHEMERAL_VAULT_ID, { - target: "ephemeral", - }); - console.log( - "MAGIC_PROGRAM_ID on ephemeral:", - magicProgram.exists ? `executable=${magicProgram.executable}` : "MISSING", - ); - console.log( - "ephemeral vault on ephemeral:", - vault.exists ? `lamports=${vault.lamports}` : "MISSING", - ); - }); - - it("Create Game by Player 1 (base: create + delegate p1_choice)", async () => { - const createGameIx = await program.methods - .createGame(gameId, STAKE, TARGET_WINS) - .accountsPartial({ - game: gamePda, - playerChoice: player1ChoicePda, - vault: vaultPda, - player1: player1.publicKey, - systemProgram: SystemProgram.programId, - }) - .instruction(); - - const delegatePlayer1ChoiceIx = await program.methods - .delegatePda({ playerChoice: { gameId, player: player1.publicKey } }) - .accounts({ - payer: player1.publicKey, - validator, - pda: player1ChoicePda, - }) - .instruction(); - - const tx = new Transaction().add(createGameIx, delegatePlayer1ChoiceIx); - sendSvmTx(svm, [player1], tx, "base", "create game + delegate p1 choice"); - console.log("✅ Game Created + P1 Choice Delegated"); - }); - - it("Init ephemeral permission for Player 1 Choice (ER)", async () => { - const onEr = svm.getAccountFor(player1ChoicePda, { target: "ephemeral" }); - if (!onEr.exists) { - throw new Error("player1_choice not on ER after delegation"); - } - - const p1Members: Member[] = [ - { flags: AUTHORITY_FLAG | TX_LOGS_FLAG, pubkey: player1.publicKey }, - ]; - const initP1ChoicePermissionIx = await program.methods - .initPermission( - { playerChoice: { gameId, player: player1.publicKey } }, - p1Members, - ) - .accountsPartial({ - permissionedAccount: player1ChoicePda, - permission: permissionForPlayer1Choice, - authority: player1.publicKey, - permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: EPHEMERAL_VAULT_ID, - magicProgram: MAGIC_PROGRAM_ID, - }) - .instruction(); - - const tx = new Transaction().add(initP1ChoicePermissionIx); - sendSvmTx(svm, [player1], tx, "ephemeral", "init p1 choice permission"); - console.log("✅ P1 Choice permission initialized"); - - const permission = svm.getAccountFor(permissionForPlayer1Choice, { - target: "ephemeral", - }); - if (!permission.exists) { - throw new Error( - "Player 1 Choice permission never activated in-process (waitUntilPermissionActive equivalent)", - ); - } - console.log("✅ Player 1 Choice permission active"); - }); - - it("Join Game (Player 2) — base: join + delegate game + delegate p2_choice", async () => { - const joinGameIx = await program.methods - .joinGame(gameId) - .accountsPartial({ - game: gamePda, - playerChoice: player2ChoicePda, - vault: vaultPda, - player: player2.publicKey, - systemProgram: SystemProgram.programId, - }) - .instruction(); - - const delegateGameIx = await program.methods - .delegatePda({ game: { gameId } }) - .accounts({ - payer: player2.publicKey, - validator, - pda: gamePda, - }) - .instruction(); - - const delegatePlayer2ChoiceIx = await program.methods - .delegatePda({ playerChoice: { gameId, player: player2.publicKey } }) - .accounts({ - payer: player2.publicKey, - validator, - pda: player2ChoicePda, - }) - .instruction(); - - const tx = new Transaction().add( - joinGameIx, - delegateGameIx, - delegatePlayer2ChoiceIx, - ); - sendSvmTx( - svm, - [player2], - tx, - "base", - "join game + delegate game + p2 choice", - ); - console.log( - `✅ Player 2 joined game ${gameId} + delegated game + p2 choice`, - ); - }); - - it("Init ephemeral permissions for Game + Player 2 Choice (ER)", async () => { - if (!svm.getAccountFor(gamePda, { target: "ephemeral" }).exists) { - throw new Error("game not on ER after delegation"); - } - if (!svm.getAccountFor(player2ChoicePda, { target: "ephemeral" }).exists) { - throw new Error("player2_choice not on ER after delegation"); - } - - const gameMembers: Member[] = [ - { flags: AUTHORITY_FLAG | TX_LOGS_FLAG, pubkey: player1.publicKey }, - { flags: AUTHORITY_FLAG | TX_LOGS_FLAG, pubkey: player2.publicKey }, - ]; - const initGamePermissionIx = await program.methods - .initPermission({ game: { gameId } }, gameMembers) - .accountsPartial({ - permissionedAccount: gamePda, - permission: permissionForGame, - authority: player2.publicKey, - permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: EPHEMERAL_VAULT_ID, - magicProgram: MAGIC_PROGRAM_ID, - }) - .instruction(); - - const p2Members: Member[] = [ - { flags: AUTHORITY_FLAG | TX_LOGS_FLAG, pubkey: player2.publicKey }, - ]; - const initP2ChoicePermissionIx = await program.methods - .initPermission( - { playerChoice: { gameId, player: player2.publicKey } }, - p2Members, - ) - .accountsPartial({ - permissionedAccount: player2ChoicePda, - permission: permissionForPlayer2Choice, - authority: player2.publicKey, - permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: EPHEMERAL_VAULT_ID, - magicProgram: MAGIC_PROGRAM_ID, - }) - .instruction(); - - const tx = new Transaction().add( - initGamePermissionIx, - initP2ChoicePermissionIx, - ); - sendSvmTx( - svm, - [player2], - tx, - "ephemeral", - "init game + p2 choice permissions", - ); - console.log("✅ Game + P2 Choice permissions initialized"); - - const permission = svm.getAccountFor(permissionForPlayer2Choice, { - target: "ephemeral", - }); - if (!permission.exists) { - throw new Error( - "Player 2 Choice permission never activated in-process (waitUntilPermissionActive equivalent)", - ); - } - console.log("✅ Player 2 Choice permission active"); - }); - - it("Round 1: Player 1 Makes Choice (Rock)", async () => { - const choice: Choice = { rock: {} }; - const makeChoice1Ix = await program.methods - .makeChoice(gameId, choice) - .accounts({ - // @ts-ignore - playerChoice: player1ChoicePda, - player: player1.publicKey, - }) - .instruction(); - - const tx = new Transaction().add(makeChoice1Ix); - sendSvmTx(svm, [player1], tx, "ephemeral", "p1 make choice"); - console.log( - `✅ Player 1 ${player1.publicKey} chose ${JSON.stringify(choice)}`, - ); - }); - - it("Round 1: Player 2 Makes Choice (Scissors)", async () => { - const choice: Choice = { scissors: {} }; - const makeChoice2Ix = await program.methods - .makeChoice(gameId, choice) - .accounts({ - // @ts-ignore - playerChoice: player2ChoicePda, - player: player2.publicKey, - }) - .instruction(); - - const tx = new Transaction().add(makeChoice2Ix); - sendSvmTx(svm, [player2], tx, "ephemeral", "p2 make choice"); - console.log( - `✅ Player 2 ${player2.publicKey} chose ${JSON.stringify(choice)}`, - ); - }); - - it("Player 1 checks own choice", () => { - svm.setAuthorizedUser(player1.publicKey); - const player1ChoiceAccount = decodeChoice(player1ChoicePda, "ephemeral"); - if (!player1ChoiceAccount) { - throw new Error("Player 1 cannot read own choice"); - } - console.log(`👀 Check Player 1 own Choice:`, player1ChoiceAccount.choice); - }); - - it("Player 2 check own choice", () => { - svm.setAuthorizedUser(player2.publicKey); - const player2ChoiceAccount = decodeChoice(player2ChoicePda, "ephemeral"); - if (!player2ChoiceAccount) { - throw new Error("Player 2 cannot read own choice"); - } - console.log(`👀 Check Player 2 own Choice:`, player2ChoiceAccount.choice); - }); - - it("Sneak Player 1 Choice", () => { - svm.setAuthorizedUser(player2.publicKey); - const accountInfo = svm.getAccountFor(player1ChoicePda, { - target: "ephemeral", - }); - if (!accountInfo.exists) { - console.log(`✅ Player 1 choice account not found — as expected.`); - return; - } - throw new Error("❌ Player 1 choice account exists unexpectedly!"); - }); - - it("Sneak Player 2 Choice", () => { - svm.setAuthorizedUser(player1.publicKey); - const accountInfo = svm.getAccountFor(player2ChoicePda, { - target: "ephemeral", - }); - if (!accountInfo.exists) { - console.log("✅ Player 2 choice account not found — as expected."); - return; - } - throw new Error("❌ Player 2 choice account exists unexpectedly!"); - }); - - it("Round 1: Reveal Winner (Player 1 leads 1-0)", async () => { - const tx = await program.methods - .revealRound() - .accountsPartial({ - //@ts-ignore - game: gamePda, - player1Choice: player1ChoicePda, - player2Choice: player2ChoicePda, - permissionGame: permissionForGame, - permission1: permissionForPlayer1Choice, - permission2: permissionForPlayer2Choice, - payer: player1.publicKey, - permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: EPHEMERAL_VAULT_ID, - magicProgram: MAGIC_PROGRAM_ID, - }) - .transaction(); - sendSvmTx(svm, [player1], tx, "ephemeral", "reveal round 1"); - console.log("✅ Round 1 Reveal TX Sent"); - - const gameAccount = decodeGame("ephemeral"); - printGameResult(gameAccount); - if (gameAccount.player1Wins !== 1 || gameAccount.player2Wins !== 0) { - throw new Error( - `❌ Expected score 1-0, got ${gameAccount.player1Wins}-${gameAccount.player2Wins}`, - ); - } - console.log( - `🏅 Score: ${gameAccount.player1Wins}-${gameAccount.player2Wins} (match in progress)`, - ); - }); - - it("Advance to Round 2 (score carries over)", async () => { - const tx = await program.methods - .nextRound() - .accountsPartial({ - game: gamePda, - player1Choice: player1ChoicePda, - player2Choice: player2ChoicePda, - permissionGame: permissionForGame, - permission1: permissionForPlayer1Choice, - permission2: permissionForPlayer2Choice, - payer: player2.publicKey, - permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: EPHEMERAL_VAULT_ID, - magicProgram: MAGIC_PROGRAM_ID, - }) - .transaction(); - sendSvmTx(svm, [player2], tx, "ephemeral", "next round"); - console.log("➡️ Advanced to round 2"); - - const gameAccount = decodeGame("ephemeral"); - if (!("none" in gameAccount.roundResult)) { - throw new Error("❌ Round result was not cleared"); - } - if (gameAccount.round !== 2) { - throw new Error(`❌ Expected round 2, got ${gameAccount.round}`); - } - if (gameAccount.player1Wins !== 1) { - throw new Error("❌ Score should carry over to round 2"); - } - console.log("✅ Round 2 ready, score preserved at 1-0"); - }); - - it("Round 2: both players make a choice (P1 Rock, P2 Scissors)", async () => { - const choices: Record = { - p1: { rock: {} }, - p2: { scissors: {} }, - }; - for (const [player, choicePda, key] of [ - [player1, player1ChoicePda, "p1"], - [player2, player2ChoicePda, "p2"], - ] as const) { - const choice = choices[key]; - const ix = await program.methods - .makeChoice(gameId, choice) - .accounts({ - // @ts-ignore - playerChoice: choicePda, - player: player.publicKey, - }) - .instruction(); - const tx = new Transaction().add(ix); - sendSvmTx(svm, [player], tx, "ephemeral", `round 2 ${key} choice`); - console.log( - `✅ Round 2: ${player.publicKey} chose ${JSON.stringify(choice)}`, - ); - } - }); - - it("Round 2: Sneak Player 2 Choice (private again after reset)", () => { - svm.setAuthorizedUser(player1.publicKey); - const accountInfo = svm.getAccountFor(player2ChoicePda, { - target: "ephemeral", - }); - if (!accountInfo.exists) { - console.log( - "✅ Player 2 choice hidden from Player 1 again — reset re-privatized it.", - ); - return; - } - throw new Error("❌ Player 2 choice readable after reset!"); - }); - - it("Round 2: Reveal Winner (Player 1 wins the match 2-0)", async () => { - const tx = await program.methods - .revealRound() - .accountsPartial({ - //@ts-ignore - game: gamePda, - player1Choice: player1ChoicePda, - player2Choice: player2ChoicePda, - permissionGame: permissionForGame, - permission1: permissionForPlayer1Choice, - permission2: permissionForPlayer2Choice, - payer: player1.publicKey, - permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: EPHEMERAL_VAULT_ID, - magicProgram: MAGIC_PROGRAM_ID, - }) - .transaction(); - sendSvmTx(svm, [player1], tx, "ephemeral", "reveal round 2"); - console.log("✅ Round 2 Reveal Winner TX Sent"); - - const gameAccount = decodeGame("ephemeral"); - printGameResult(gameAccount); - if (gameAccount.player1Wins !== 2) { - throw new Error( - `❌ Expected Player 1 at 2 wins, got ${gameAccount.player1Wins}`, - ); - } - console.log( - `🏆 Match decided ${gameAccount.player1Wins}-${gameAccount.player2Wins} after ${gameAccount.round} rounds`, - ); - }); - - it("Undelegate All (cleanup)", async () => { - const tx = await program.methods - .undelegateAll() - .accountsPartial({ - payer: player1.publicKey, - game: gamePda, - player1Choice: player1ChoicePda, - player2Choice: player2ChoicePda, - }) - .transaction(); - sendSvmTx(svm, [player1], tx, "ephemeral", "undelegate all"); - console.log(`🧹 All three PDAs committed + undelegated`); - }); - - it("Claim Pot (winner takes the stake)", async () => { - const info = svm.getAccountFor(gamePda, { target: "base" }); - if ( - !info.exists || - info.programAddress.toString() !== programId.toString() - ) { - throw new Error("❌ Game never came back to the base layer"); - } - - const game = program.coder.accounts.decode("game", Buffer.from(info.data)); - const vaultBefore = svm.getBalance(vaultPda); - console.log( - `🏦 Vault holds ${Number(vaultBefore ?? 0n) / 1_000_000_000} SOL (pot)`, - ); - - const winner = - "winner" in game.roundResult - ? (game.roundResult.winner["0"] as PublicKey) - : null; - const recipient = winner ?? player1.publicKey; - const balBefore = svm.getBalance(recipient) ?? 0n; - - const tx = await program.methods - .claimPot() - .accountsPartial({ - game: gamePda, - vault: vaultPda, - player1: player1.publicKey, - player2: player2.publicKey, - payer: player1.publicKey, - systemProgram: SystemProgram.programId, - }) - .transaction(); - sendSvmTx(svm, [player1], tx, "base", "claim pot"); - console.log("💰 Pot claimed"); - - const vaultAfter = svm.getBalance(vaultPda) ?? 0n; - const balAfter = svm.getBalance(recipient) ?? 0n; - const settledInfo = svm.getAccountFor(gamePda, { target: "base" }); - if (!settledInfo.exists) { - throw new Error("❌ Game missing after claim"); - } - const settled = program.coder.accounts.decode( - "game", - Buffer.from(settledInfo.data), - ); - - if (vaultAfter !== 0n) throw new Error("❌ Vault not fully drained"); - if (!settled.paid) throw new Error("❌ Game not marked paid"); - if (winner) { - const gained = balAfter - balBefore; - console.log( - `🏆 Winner net change: ${Number(gained) / 1_000_000_000} SOL`, - ); - if (gained <= 0n) throw new Error("❌ Winner did not receive the pot"); - } - console.log("✅ Pot paid out and game settled"); - }); -}); - -const choiceEmoji: Record = { - rock: "🪨 Rock", - paper: "📄 Paper", - scissors: "✂️ Scissors", -}; - -function fmtChoice(c: unknown): string { - if (!c || typeof c !== "object") return "—"; - const key = Object.keys(c)[0]; - return choiceEmoji[key] ?? key; -} - -function fmtResult(result: unknown, p1: PublicKey, p2: PublicKey): string { - if (!result || typeof result !== "object") return "—"; - if ("tie" in result) return "🤝 Tie"; - if ("none" in result) return "⏳ Not yet revealed"; - if ("winner" in result) { - const winnerResult = result.winner; - if (!winnerResult || typeof winnerResult !== "object") return "—"; - const winner = (winnerResult as Record)["0"]; - const label = winner.equals(p1) - ? "Player 1" - : winner.equals(p2) - ? "Player 2" - : "Unknown"; - return `🏆 ${label} (${winner.toBase58()})`; - } - return JSON.stringify(result); -} - -function printGameResult(game: { - gameId: { toString(): string }; - player1: PublicKey; - player2: PublicKey; - player1Choice: unknown; - player2Choice: unknown; - roundResult: unknown; -}) { - const p1 = game.player1; - const p2 = game.player2; - console.log("┌─────────────────────────────────────────────"); - console.log(`│ 🎲 Game #${game.gameId.toString()}`); - console.log( - `│ 👤 Player 1: ${p1.toBase58()} → ${fmtChoice(game.player1Choice)}`, - ); - console.log( - `│ 👤 Player 2: ${p2.toBase58()} → ${fmtChoice(game.player2Choice)}`, - ); - console.log(`│ Result: ${fmtResult(game.roundResult, p1, p2)}`); - console.log("└─────────────────────────────────────────────"); -} diff --git a/rock-paper-scissor/anchor/tsconfig.json b/rock-paper-scissor/anchor/tsconfig.json deleted file mode 100644 index 34e670ff..00000000 --- a/rock-paper-scissor/anchor/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "compilerOptions": { - "types": ["mocha", "chai", "node"], - "typeRoots": ["./node_modules/@types"], - "lib": ["es2020"], - "module": "commonjs", - "target": "es2020", - "esModuleInterop": true, - "resolveJsonModule": true, - "skipLibCheck": true - } -} diff --git a/rock-paper-scissor/anchor/yarn.lock b/rock-paper-scissor/anchor/yarn.lock index 15c935c4..4a9f7977 100644 --- a/rock-paper-scissor/anchor/yarn.lock +++ b/rock-paper-scissor/anchor/yarn.lock @@ -2,1881 +2,7 @@ # yarn lockfile v1 -"@babel/runtime@^7.25.0": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326" - integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== - -"@coral-xyz/anchor-errors@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" - integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== - -"@coral-xyz/anchor@0.32.1": - version "0.32.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" - integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== - dependencies: - "@coral-xyz/anchor-errors" "^0.31.1" - "@coral-xyz/borsh" "^0.31.1" - "@noble/hashes" "^1.3.1" - "@solana/web3.js" "^1.69.0" - bn.js "^5.1.2" - bs58 "^4.0.1" - buffer-layout "^1.2.2" - camelcase "^6.3.0" - cross-fetch "^3.1.5" - eventemitter3 "^4.0.7" - pako "^2.0.3" - superstruct "^0.15.4" - toml "^3.0.0" - -"@coral-xyz/borsh@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.31.1.tgz#5328e1e0921b75d7f4a62dd3f61885a938bc7241" - integrity sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw== - dependencies: - bn.js "^5.1.2" - buffer-layout "^1.2.0" - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" - integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@magicblock-labs/ephemeral-rollups-sdk@0.14.3": - version "0.14.3" - resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.14.3.tgz#536c215d1daefdbcfa82a79304b08f5014405c58" - integrity sha512-CoByiXHLLS+l7Ojl6XJuYypP/k08ymFkab8+Gh/HCv5Gn2oC4VkwszEQoTDnKo++8Oxbqr9YVGzAMUW4Km7cLA== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@phala/dcap-qvl" "^0.3.9" - "@solana/web3.js" "^1.98.0" - bs58 "^6.0.0" - rpc-websockets "^9.0.4" - tweetnacl "^1.0.3" - typescript "^5.3.0" - -"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" - integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== - -"@magicblock-labs/magicsvm-darwin-x64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" - integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== - -"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" - integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== - -"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" - integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== - -"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" - integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== - -"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" - integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== - -"@magicblock-labs/magicsvm@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" - integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== - dependencies: - "@solana/web3.js" "3.0.0-rc.3" - optionalDependencies: - "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" - "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" - -"@magicblock-labs/test-utils@link:../../test-utils/ts": - version "0.0.0" - uid "" - -"@noble/curves@^1.4.2": - version "1.9.7" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" - integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== - dependencies: - "@noble/hashes" "1.8.0" - -"@noble/hashes@1.8.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" - integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== - -"@peculiar/asn1-schema@^2.3.13", "@peculiar/asn1-schema@^2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.7.0.tgz#f2dcb25995ce7cac8687ba1039f043e5eff43820" - integrity sha512-W8ZfWzLmQnrcky+eh3tni4IozMdqBDiHWU0N+vve/UGjMaUs8c0L7A2oEdkBXS8rTpWDpK/aoI3DG/L/hxmxPg== - dependencies: - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.6" - tslib "^2.8.1" - -"@peculiar/asn1-x509@^2.3.13": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.7.0.tgz#84793efb7819dbc9526fd6b0a4ccd86f90464b96" - integrity sha512-mUn9RRrkGDnG4ALfunDmzyRW5dg+sWCj/pfnCCqEHYbkGxEpvUt6iVJv8Yw1cyp6SWZ26ZE5oSmI5SqEaen15g== - dependencies: - "@peculiar/asn1-schema" "^2.7.0" - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.6" - tslib "^2.8.1" - -"@peculiar/utils@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@peculiar/utils/-/utils-2.0.3.tgz#a27ca4c4b73652e110f19a7d16d664f458a5528e" - integrity sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ== - dependencies: - tslib "^2.8.1" - -"@phala/dcap-qvl@^0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@phala/dcap-qvl/-/dcap-qvl-0.3.9.tgz#34da2506c31954cd290afb5a46146cd52ae24481" - integrity sha512-s/4gAFVq1DRhYkuerDR9WAlX8tkCpFTHTVpWnWlrigj5la2X5OtQl9Y7PzwcqY4h0fc25yqZrcRH3AZpzB1qOw== - dependencies: - "@peculiar/asn1-schema" "^2.3.13" - "@peculiar/asn1-x509" "^2.3.13" - asn1.js "^5.4.1" - bn.js "^5.2.2" - buffer "^6.0.3" - elliptic "^6.6.1" - hash.js "^1.1.7" - node-fetch "^2.7.0" - -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - -"@solana-program/address-lookup-table@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" - integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== - -"@solana-program/compute-budget@^0.18.0": - version "0.18.1" - resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" - integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== - -"@solana-program/loader-v3@^0.6.0": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" - integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== - -"@solana-program/stake@^0.9.0": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" - integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== - -"@solana-program/system@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" - integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== - -"@solana/accounts@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" - integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/addresses@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" - integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" - integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/buffer-layout@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" - integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== - dependencies: - buffer "~6.0.3" - -"@solana/codecs-core@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-2.3.0.tgz#6bf2bb565cb1ae880f8018635c92f751465d8695" - integrity sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw== - dependencies: - "@solana/errors" "2.3.0" - -"@solana/codecs-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" - integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/codecs-data-structures@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" - integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" - integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@^2.1.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" - integrity sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg== - dependencies: - "@solana/codecs-core" "2.3.0" - "@solana/errors" "2.3.0" - -"@solana/codecs-strings@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" - integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" - integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/options" "8.3.0" - -"@solana/errors@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.3.0.tgz#4ac9380343dbeffb9dffbcb77c28d0e457c5fa31" - integrity sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ== - dependencies: - chalk "^5.4.1" - commander "^14.0.0" - -"@solana/errors@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" - integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== - dependencies: - chalk "5.6.2" - commander "15.0.0" - -"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" - integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== - -"@solana/fixed-points@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" - integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/functional@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" - integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== - -"@solana/instruction-plans@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" - integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/instructions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" - integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/keys@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" - integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/kit@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" - integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/plugin-core" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/program-client-core" "8.3.0" - "@solana/programs" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/subscribable" "8.3.0" - "@solana/sysvars" "8.3.0" - "@solana/transaction-confirmation" "8.3.0" - "@solana/transaction-introspection" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/nominal-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" - integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== - -"@solana/offchain-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" - integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/options@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" - integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/plugin-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" - integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== - -"@solana/plugin-interfaces@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" - integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/program-client-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" - integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/signers" "8.3.0" - -"@solana/programs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" - integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/promises@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" - integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== - -"@solana/rpc-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" - integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-parsed-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" - integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== - -"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" - integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/rpc-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" - integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" - integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-subscriptions-channel-websocket@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" - integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/subscribable" "8.3.0" - ws "^8.21.3" - -"@solana/rpc-subscriptions-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" - integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" - integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions-api" "8.3.0" - "@solana/rpc-subscriptions-channel-websocket" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-transformers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" - integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/rpc-transport-http@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" - integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - undici-types "^8.10.2" - -"@solana/rpc-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" - integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/rpc@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" - integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-transport-http" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/signers@8.3.0", "@solana/signers@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" - integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/subscribable@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" - integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/sysvars@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" - integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transaction-confirmation@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" - integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-introspection@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" - integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" - integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transactions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" - integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - -"@solana/web3.js@3.0.0-rc.3": - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" - integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@solana-program/address-lookup-table" "^0.14.0" - "@solana-program/compute-budget" "^0.18.0" - "@solana-program/loader-v3" "^0.6.0" - "@solana-program/stake" "^0.9.0" - "@solana-program/system" "^0.14.0" - "@solana/assertions" "^8.2.0" - "@solana/fast-stable-stringify" "^8.2.0" - "@solana/kit" "^8.2.0" - "@solana/rpc-spec-types" "^8.2.0" - "@solana/signers" "^8.2.0" - -"@solana/web3.js@^1.69.0", "@solana/web3.js@^1.98.0": - version "1.98.4" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" - integrity sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw== - 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.1.0" - agentkeepalive "^4.5.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.1.1" - node-fetch "^2.7.0" - rpc-websockets "^9.0.2" - superstruct "^2.0.2" - -"@swc/helpers@^0.5.11": - version "0.5.17" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.17.tgz#5a7be95ac0f0bf186e7e6e890e7a6f6cda6ce971" - integrity sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A== - dependencies: - tslib "^2.8.0" - -"@tsconfig/node10@^1.0.7": - version "1.0.12" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.12.tgz#be57ceac1e4692b41be9de6be8c32a106636dba4" - integrity sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@types/bn.js@^5.1.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.2.0.tgz#4349b9710e98f9ab3cdc50f1c5e4dcbd8ef29c80" - integrity sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q== - dependencies: - "@types/node" "*" - -"@types/chai@^5.2.2": - version "5.2.3" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-5.2.3.tgz#8e9cd9e1c3581fa6b341a5aed5588eb285be0b4a" - integrity sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA== - dependencies: - "@types/deep-eql" "*" - assertion-error "^2.0.1" - -"@types/connect@^3.4.33": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" - integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== - dependencies: - "@types/node" "*" - -"@types/deep-eql@*": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/deep-eql/-/deep-eql-4.0.2.tgz#334311971d3a07121e7eb91b684a605e7eea9cbd" - integrity sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw== - -"@types/mocha@^10.0.10": - version "10.0.10" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.10.tgz#91f62905e8d23cbd66225312f239454a23bebfa0" - integrity sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q== - -"@types/node@*": - version "24.10.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.1.tgz#91e92182c93db8bd6224fca031e2370cef9a8f01" - integrity sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ== - dependencies: - undici-types "~7.16.0" - -"@types/node@^12.12.54": - version "12.20.55" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - -"@types/node@^22.15.0": - version "22.20.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.20.2.tgz#daae777b5f5965a587f50cc80d5364c2ddf27e36" - integrity sha512-xlvWf4Vs9n1PEVYwP1n4vvG07M6y8WgvJ2t0vbrWTmijsIHp1cS+uJ2kMIRdY3nHZK0nCYKrPeD171+SzF4/zw== - dependencies: - undici-types "~6.21.0" - -"@types/uuid@^8.3.4": - version "8.3.4" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" - integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== - -"@types/ws@^7.4.4": - version "7.4.7" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - dependencies: - "@types/node" "*" - -"@types/ws@^8.2.2": - version "8.18.1" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" - integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== - dependencies: - "@types/node" "*" - -acorn-walk@^8.1.1: - version "8.3.4" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" - integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== - dependencies: - acorn "^8.11.0" - -acorn@^8.11.0, acorn@^8.4.1: - version "8.15.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" - integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== - -agentkeepalive@^4.5.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" - integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== - dependencies: - humanize-ms "^1.2.1" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" - integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^6.1.0: - version "6.2.3" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" - integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -asn1.js@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1js@^3.0.6: - version "3.0.10" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.10.tgz#df26c874c8a8b41ca605efea47b2ad07551013dd" - integrity sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg== - dependencies: - pvtsutils "^1.3.6" - pvutils "^1.1.5" - tslib "^2.8.1" - -assertion-error@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" - integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base-x@^3.0.2: - version "3.0.11" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.11.tgz#40d80e2a1aeacba29792ccc6c5354806421287ff" - integrity sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA== - dependencies: - safe-buffer "^5.0.1" - -base-x@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-5.0.1.tgz#16bf35254be1df8aca15e36b7c1dda74b2aa6b03" - integrity sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bn.js@^4.0.0, bn.js@^4.11.9: - version "4.12.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.3.tgz#2cc2c679188eb35b006f2d0d4710bed8437a769e" - integrity sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g== - -bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: - version "5.2.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.2.tgz#82c09f9ebbb17107cd72cb7fd39bd1f9d0aaa566" - integrity sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw== - -bn.js@^5.2.2: - version "5.2.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.3.tgz#16a9e409616b23fef3ccbedb8d42f13bff80295e" - integrity sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w== - -borsh@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" - integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== - dependencies: - bn.js "^5.2.0" - bs58 "^4.0.0" - text-encoding-utf-8 "^1.0.2" - -brace-expansion@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" - integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== - dependencies: - balanced-match "^1.0.0" - -brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browser-stdout@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -bs58@^4.0.0, bs58@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - dependencies: - base-x "^3.0.2" - -bs58@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-6.0.0.tgz#a2cda0130558535dd281a2f8697df79caaf425d8" - integrity sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw== - dependencies: - base-x "^5.0.0" - -buffer-layout@^1.2.0, buffer-layout@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" - integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== - -buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -bufferutil@^4.0.1: - version "4.0.9" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.9.tgz#6e81739ad48a95cad45a279588e13e95e24a800a" - integrity sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw== - dependencies: - node-gyp-build "^4.3.0" - -camelcase@^6.0.0, camelcase@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -chai@^5.2.0: - version "5.3.3" - resolved "https://registry.yarnpkg.com/chai/-/chai-5.3.3.tgz#dd3da955e270916a4bd3f625f4b919996ada7e06" - integrity sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw== - dependencies: - assertion-error "^2.0.1" - check-error "^2.1.1" - deep-eql "^5.0.1" - loupe "^3.1.0" - pathval "^2.0.0" - -chalk@5.6.2, chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - -chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -check-error@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" - integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== - -chokidar@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" - integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== - dependencies: - readdirp "^4.0.1" - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -commander@15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" - integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== - -commander@^14.0.0: - version "14.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e" - integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== - -commander@^2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-fetch@^3.1.5: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" - integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== - dependencies: - node-fetch "^2.7.0" - -cross-spawn@^7.0.6: - version "7.0.6" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" - integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -debug@^4.3.5: - version "4.4.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" - integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== - dependencies: - ms "^2.1.3" - -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - -deep-eql@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" - integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== - -delay@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" - integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -diff@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-7.0.0.tgz#3fb34d387cd76d803f6eebea67b921dab0182a9a" - integrity sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw== - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -elliptic@^6.6.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" - integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== - dependencies: - es6-promise "^4.0.3" - -escalade@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eventemitter3@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -eventemitter3@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" - integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - -eyes@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" - integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== - -fast-stable-stringify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" - integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -foreground-child@^3.1.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" - integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== - dependencies: - cross-spawn "^7.0.6" - signal-exit "^4.0.1" - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -glob@^10.4.5: - version "10.5.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" - integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== - dependencies: - foreground-child "^3.1.0" - jackspeak "^3.1.2" - minimatch "^9.0.4" - minipass "^7.1.2" - package-json-from-dist "^1.0.0" - path-scurry "^1.11.1" - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - -jackspeak@^3.1.2: - version "3.4.3" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" - integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - -jayson@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.2.0.tgz#b71762393fa40bc9637eaf734ca6f40d3b8c0c93" - integrity sha512-VfJ9t1YLwacIubLhONk0KFeosUBwstRWQ0IRT1KDjEjnVnSOVHC3uwugyV7L0c7R9lpVyrUGT2XWiBA1UTtpyg== - dependencies: - "@types/connect" "^3.4.33" - "@types/node" "^12.12.54" - "@types/ws" "^7.4.4" - commander "^2.20.3" - delay "^5.0.0" - es6-promisify "^5.0.0" - eyes "^0.1.8" - isomorphic-ws "^4.0.1" - json-stringify-safe "^5.0.1" - stream-json "^1.9.1" - uuid "^8.3.2" - ws "^7.5.10" - -js-yaml@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" - integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== - dependencies: - argparse "^2.0.1" - -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -loupe@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.2.1.tgz#0095cf56dc5b7a9a7c08ff5b1a8796ec8ad17e76" - integrity sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ== - -lru-cache@^10.2.0: - version "10.4.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" - integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -minimatch@^9.0.4, minimatch@^9.0.5: - version "9.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" - integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== - dependencies: - brace-expansion "^2.0.1" - -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" - integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== - -mocha@^11.2.2: - version "11.7.5" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.7.5.tgz#58f5bbfa5e0211ce7e5ee6128107cefc2515a627" - integrity sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig== - dependencies: - browser-stdout "^1.3.1" - chokidar "^4.0.1" - debug "^4.3.5" - diff "^7.0.0" - escape-string-regexp "^4.0.0" - find-up "^5.0.0" - glob "^10.4.5" - he "^1.2.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - log-symbols "^4.1.0" - minimatch "^9.0.5" - ms "^2.1.3" - picocolors "^1.1.1" - serialize-javascript "^6.0.2" - strip-json-comments "^3.1.1" - supports-color "^8.1.1" - workerpool "^9.2.0" - yargs "^17.7.2" - yargs-parser "^21.1.1" - yargs-unparser "^2.0.0" - -ms@^2.0.0, ms@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -node-fetch@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - -node-gyp-build@^4.3.0: - version "4.8.4" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" - integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -package-json-from-dist@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" - integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== - -pako@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" - integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-scurry@^1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" - integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== - dependencies: - lru-cache "^10.2.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - -pathval@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.1.tgz#8855c5a2899af072d6ac05d11e46045ad0dc605d" - integrity sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ== - -picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - prettier@^3.5.3: - version "3.7.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.2.tgz#7b393a865f9dd97bc244215db9aac8e04dc1841b" - integrity sha512-n3HV2J6QhItCXndGa3oMWvWFAgN1ibnS7R9mt6iokScBOC0Ul9/iZORmU2IWUMcyAQaMPjTlY3uT34TqocUxMA== - -pvtsutils@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.6.tgz#ec46e34db7422b9e4fdc5490578c1883657d6001" - integrity sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg== - dependencies: - tslib "^2.8.1" - -pvutils@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.5.tgz#84b0dea4a5d670249aa9800511804ee0b7c2809c" - integrity sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -readdirp@^4.0.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" - integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -rpc-websockets@^9.0.2, rpc-websockets@^9.0.4: - version "9.3.1" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.3.1.tgz#d817a59d812f68bae1215740a3f78fcdd3813698" - integrity sha512-bY6a+i/lEtBJ/mUxwsCTgevoV1P0foXTVA7UoThzaIWbM+3NDqorf8NBWs5DmqKTFeA1IoNzgvkWjFCPgnzUiQ== - dependencies: - "@swc/helpers" "^0.5.11" - "@types/uuid" "^8.3.4" - "@types/ws" "^8.2.2" - buffer "^6.0.3" - eventemitter3 "^5.0.1" - uuid "^8.3.2" - ws "^8.5.0" - optionalDependencies: - bufferutil "^4.0.1" - utf-8-validate "^5.0.2" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -serialize-javascript@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" - integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== - dependencies: - randombytes "^2.1.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -stream-chain@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/stream-chain/-/stream-chain-2.2.5.tgz#b30967e8f14ee033c5b9a19bbe8a2cba90ba0d09" - integrity sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA== - -stream-json@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/stream-json/-/stream-json-1.9.1.tgz#e3fec03e984a503718946c170db7d74556c2a187" - integrity sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw== - dependencies: - stream-chain "^2.2.5" - -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1: - version "7.1.2" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" - integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== - dependencies: - ansi-regex "^6.0.1" - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -superstruct@^0.15.4: - version "0.15.5" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" - integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== - -superstruct@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-2.0.2.tgz#3f6d32fbdc11c357deff127d591a39b996300c54" - integrity sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A== - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -text-encoding-utf-8@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" - integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== - -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -ts-mocha@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-11.1.0.tgz#d8336ec0146bd6f36cca2555f4cfc7df85bd1586" - integrity sha512-yT7FfzNRCu8ZKkYvAOiH01xNma/vLq6Vit7yINKYFNVP8e5UyrYXSOMIipERTpzVKJQ4Qcos5bQo1tNERNZevQ== - -ts-node@^10.9.2: - version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" - integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tslib@^2.8.0, tslib@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" - integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -typescript@^5.3.0, typescript@^5.8.3: - version "5.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" - integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== - -undici-types@^8.10.2: - version "8.10.2" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" - integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== - -undici-types@~6.21.0: - version "6.21.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" - integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== - -undici-types@~7.16.0: - version "7.16.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" - integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== - -utf-8-validate@^5.0.2: - version "5.0.10" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" - integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== - dependencies: - node-gyp-build "^4.3.0" - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -workerpool@^9.2.0: - version "9.3.4" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-9.3.4.tgz#f6c92395b2141afd78e2a889e80cb338fe9fca41" - integrity sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg== - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - -ws@^7.5.10: - version "7.5.10" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" - integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== - -ws@^8.21.3: - version "8.21.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" - integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== - -ws@^8.5.0: - version "8.18.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" - integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs-unparser@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@^17.7.2: - version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + version "3.9.9" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.9.9.tgz#09b826918c91cd4cbc80e0cbd1d2a922ff04f233" + integrity sha512-Z/CJHIkdujO/OtN7nXUii0Rf3VT5SRuhjBA82Xvu2XhBUgX3nhP67T0LHceBdQLex7OOFGTox+Q5Yg8Jk2Qivg== diff --git a/scripts/projects.sh b/scripts/projects.sh index ef1a7402..8e4e4203 100755 --- a/scripts/projects.sh +++ b/scripts/projects.sh @@ -21,8 +21,8 @@ REGULAR_PROJECTS=(crank-counter gachapon-example) VRF_PROJECTS=(rewards-delegated-vrf roll-dice pinocchio-roll-dice) TEE_PROJECTS=(sealed-auction) -# Examples whose `yarn test` runs in-process on MagicSVM (TypeScript; most also ship a Rust -# suite under tests-magicsvm-rs/ run by `yarn test:magicsvm:rs`). No local cluster needed. +# Examples whose `yarn test` runs the Rust MagicSVM suite under tests-magicsvm-rs/ in-process. +# No local cluster needed. MAGICSVM_PROJECTS=(anchor-counter rust-counter pinocchio-counter private-counter pinocchio-private-counter oracle-priced-purchase oncurve-delegation rock-paper-scissor ephemeral-account-chats session-keys binary-prediction magic-actions delegation-actions spl-tokens) ALL_PROJECTS=("${REGULAR_PROJECTS[@]}" "${VRF_PROJECTS[@]}" "${TEE_PROJECTS[@]}") diff --git a/session-keys/anchor/README.md b/session-keys/anchor/README.md index efaed83c..96b648f4 100644 --- a/session-keys/anchor/README.md +++ b/session-keys/anchor/README.md @@ -30,7 +30,7 @@ yarn yarn build ``` -Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): +Run the Rust test suite in `tests-magicsvm-rs/` in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash yarn test @@ -40,7 +40,7 @@ MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no va network. The suite creates and revokes a session while exercising counter delegation, commits, and undelegation through that session. -A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. +`yarn test` runs `cargo +stable test`: MagicSVM needs a newer Rust than the 1.89 toolchain used for program builds. ## 🔑 Session Keys diff --git a/session-keys/anchor/package.json b/session-keys/anchor/package.json index 76dba66b..f4a9f82e 100644 --- a/session-keys/anchor/package.json +++ b/session-keys/anchor/package.json @@ -2,28 +2,11 @@ "scripts": { "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", - "test": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests/anchor-counter-session.ts", - "build": "anchor build --ignore-keys", - "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture" - }, - "dependencies": { - "@coral-xyz/anchor": "0.32.1", - "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3", - "@magicblock-labs/gum-sdk": "^3.0.10" + "test": "cargo +stable test --manifest-path tests-magicsvm-rs/Cargo.toml", + "build": "anchor build --ignore-keys" }, "devDependencies": { - "@types/bn.js": "^5.1.0", - "@types/chai": "^5.2.2", - "@types/mocha": "^10.0.10", - "chai": "^5.2.0", - "@magicblock-labs/magicsvm": "0.2.0", - "dotenv": "^17.2.3", - "mocha": "^11.2.2", - "prettier": "^3.5.3", - "ts-mocha": "^11.1.0", - "ts-node": "^10.9.2", - "typescript": "^5.8.3", - "@magicblock-labs/test-utils": "link:../../test-utils/ts" + "prettier": "^3.5.3" }, "license": "MIT", "packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447" diff --git a/session-keys/anchor/tests/anchor-counter-session.ts b/session-keys/anchor/tests/anchor-counter-session.ts deleted file mode 100644 index 51de2977..00000000 --- a/session-keys/anchor/tests/anchor-counter-session.ts +++ /dev/null @@ -1,199 +0,0 @@ -import * as anchor from "@coral-xyz/anchor"; -import { web3 } from "@coral-xyz/anchor"; -import { - accountOwner, - bootAnchorSvm, - isDelegated, - readU64le, - sendSvmTx, - setUnixTimestamp, - validatorRemainingAccount, -} from "@magicblock-labs/test-utils"; -import { SessionTokenManager } from "@magicblock-labs/gum-sdk"; -import { LAMPORTS_PER_SOL, PublicKey } from "@solana/web3.js"; -import assert from "assert"; -import * as path from "path"; -import { AnchorCounterSession } from "../target/types/anchor_counter_session"; - -const COUNTER_SEED = "counter"; -const SESSION_TOKEN_SEED = "session_token_v2"; -const SESSION_PROGRAM_ID = "KeyspM2ssCJbqUhQ4k7sveSiY4WjnYsrXkC8oDbwde5"; - -describe("anchor-counter-session magicsvm", () => { - const sessionKeypair = web3.Keypair.generate(); - const { svm, payer, program, validator } = - bootAnchorSvm({ - fromDir: __dirname, - programName: "anchor_counter_session", - airdropLamports: BigInt(2 * LAMPORTS_PER_SOL), - extraPrograms: [ - { - id: new PublicKey(SESSION_PROGRAM_ID), - so: path.resolve(__dirname, "fixtures", "session-keys.so"), - }, - ], - }); - setUnixTimestamp(svm); - - const [counterPDA] = web3.PublicKey.findProgramAddressSync( - [Buffer.from(COUNTER_SEED), payer.publicKey.toBuffer()], - program.programId, - ); - - const sessionTokenManager = new SessionTokenManager( - new anchor.Wallet(web3.Keypair.fromSecretKey(payer.secretKey)), - new web3.Connection("http://127.0.0.1:8899"), - ); - const sessionTokenPDA = web3.PublicKey.findProgramAddressSync( - [ - Buffer.from(SESSION_TOKEN_SEED), - program.programId.toBytes(), - sessionKeypair.publicKey.toBytes(), - payer.publicKey.toBytes(), - ], - sessionTokenManager.program.programId, - )[0]; - - console.log("Program ID: ", program.programId.toString()); - console.log("Counter PDA: ", counterPDA.toString()); - console.log( - "Session Signer Public Key: ", - sessionKeypair.publicKey.toString(), - ); - console.log("Session Token PDA: ", sessionTokenPDA.toString()); - console.log("Validator identity: ", validator.toString()); - - it("Create session on Solana", async () => { - const topUp = true; - const validUntilBN = new anchor.BN(Math.floor(Date.now() / 1000) + 3600); - const topUpLamportsBN = new anchor.BN(0.005 * LAMPORTS_PER_SOL); - - const tx = await sessionTokenManager.program.methods - .createSessionV2(topUp, validUntilBN, topUpLamportsBN) - .accounts({ - targetProgram: program.programId, - sessionSigner: sessionKeypair.publicKey, - feePayer: payer.publicKey, - authority: payer.publicKey, - }) - .transaction(); - sendSvmTx(svm, [payer, sessionKeypair], tx, "base", "createSessionV2"); - - const sessionAccount = svm.getAccount(sessionTokenPDA); - assert.ok(sessionAccount.exists, "session token missing on base"); - assert.equal( - sessionAccount.programAddress.toString(), - sessionTokenManager.program.programId.toString(), - ); - }); - - it("Initialize counter on Solana", async () => { - const tx = await program.methods - .initialize() - .accounts({ - user: payer.publicKey, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "base", "initialize"); - assert.equal(readU64le(svm, counterPDA, "base", 40), 0n); - }); - - it("Increase counter on Solana", async () => { - const tx = await program.methods - .increment() - .accounts({ - counter: counterPDA, - sessionToken: sessionTokenPDA, - payer: sessionKeypair.publicKey, - }) - .transaction(); - sendSvmTx(svm, [sessionKeypair], tx, "base", "increment (base)"); - assert.equal(readU64le(svm, counterPDA, "base", 40), 1n); - }); - - it("Delegate counter to ER", async () => { - const tx = await program.methods - .delegate() - .accounts({ - payer: sessionKeypair.publicKey, - pda: counterPDA, - sessionToken: sessionTokenPDA, - }) - .remainingAccounts([validatorRemainingAccount(svm)]) - .transaction(); - sendSvmTx(svm, [sessionKeypair], tx, "base", "delegate"); - assert.ok(isDelegated(svm, counterPDA)); - }); - - it("Increase counter on ER", async () => { - const tx = await program.methods - .increment() - .accounts({ - counter: counterPDA, - sessionToken: sessionTokenPDA, - payer: sessionKeypair.publicKey, - }) - .transaction(); - sendSvmTx(svm, [sessionKeypair], tx, "ephemeral", "increment (ER)"); - assert.equal(readU64le(svm, counterPDA, "ephemeral", 40), 2n); - }); - - it("Commit counter state on ER to Solana", async () => { - const tx = await program.methods - .commit() - .accounts({ - counter: counterPDA, - sessionToken: sessionTokenPDA, - payer: sessionKeypair.publicKey, - }) - .transaction(); - sendSvmTx(svm, [sessionKeypair], tx, "ephemeral", "commit"); - assert.equal(readU64le(svm, counterPDA, "base", 40), 2n); - assert.ok(isDelegated(svm, counterPDA)); - }); - - it("Increase counter on ER and commit", async () => { - const tx = await program.methods - .incrementAndCommit() - .accounts({ - counter: counterPDA, - sessionToken: sessionTokenPDA, - payer: sessionKeypair.publicKey, - }) - .transaction(); - sendSvmTx(svm, [sessionKeypair], tx, "ephemeral", "incrementAndCommit"); - assert.equal(readU64le(svm, counterPDA, "ephemeral", 40), 3n); - assert.equal(readU64le(svm, counterPDA, "base", 40), 3n); - }); - - it("Increment and undelegate counter on ER to Solana", async () => { - const tx = await program.methods - .incrementAndUndelegate() - .accounts({ - counter: counterPDA, - sessionToken: sessionTokenPDA, - payer: sessionKeypair.publicKey, - }) - .transaction(); - sendSvmTx(svm, [sessionKeypair], tx, "ephemeral", "incrementAndUndelegate"); - assert.equal(readU64le(svm, counterPDA, "base", 40), 4n); - assert.equal( - accountOwner(svm, counterPDA, "base"), - program.programId.toString(), - ); - }); - - it("Revoke session on Solana", async () => { - const tx = await sessionTokenManager.program.methods - .revokeSessionV2() - .accounts({ - sessionToken: sessionTokenPDA, - feePayer: payer.publicKey, - authority: payer.publicKey, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "base", "revokeSessionV2"); - const sessionAccount = svm.getAccount(sessionTokenPDA); - assert.equal(sessionAccount.exists, false); - }); -}); diff --git a/session-keys/anchor/tsconfig.json b/session-keys/anchor/tsconfig.json deleted file mode 100644 index d93d6f9e..00000000 --- a/session-keys/anchor/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "types": ["mocha", "chai"], - "typeRoots": ["./node_modules/@types"], - "lib": ["es2020"], - "module": "commonjs", - "target": "es2020", - "esModuleInterop": true, - "skipLibCheck": true - } -} diff --git a/session-keys/anchor/utils/initializeKeypair.ts b/session-keys/anchor/utils/initializeKeypair.ts deleted file mode 100644 index 32fac5c7..00000000 --- a/session-keys/anchor/utils/initializeKeypair.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { - Keypair, - Connection, - PublicKey, - LAMPORTS_PER_SOL, -} from "@solana/web3.js"; -import { readFileSync, writeFileSync } from "fs"; - -import dotenv from "dotenv"; -dotenv.config(); - -// Initialize Keypair for Session Signer -export function initializeSessionSignerKeypair(): Keypair { - let signer: Keypair; - - if (!process.env.SESSION_SIGNER_PRIVATE_KEY) { - signer = Keypair.generate(); - // Append the new key-value pair to the contents of the .env file - writeFileSync( - ".env", - `SESSION_SIGNER_PRIVATE_KEY=[${signer.secretKey.toString()}]\n`, - ); - } else { - const secret = JSON.parse( - process.env.SESSION_SIGNER_PRIVATE_KEY ?? "", - ) as number[]; - const secretKey = Uint8Array.from(secret); - signer = Keypair.fromSecretKey(secretKey); - } - - return signer; -} - -export async function airdropSolIfNeeded( - connection: Connection, - pubkey: PublicKey, - amount: number, - threshold: number, -) { - if ( - connection.rpcEndpoint.includes("dev") || - connection.rpcEndpoint.includes("test") || - connection.rpcEndpoint.includes("local") || - connection.rpcEndpoint.includes("http://") - ) { - const balance = await connection.getBalance(pubkey); - console.log("Current balance is", balance / LAMPORTS_PER_SOL, " SOL", "\n"); - if (balance < threshold * LAMPORTS_PER_SOL) { - console.log(`Selected cluster: ${connection.rpcEndpoint}`); - console.log(`Airdropping ${amount} SOL... to ${pubkey.toString()}`); - try { - await connection.requestAirdrop(pubkey, amount * LAMPORTS_PER_SOL); - console.log(`\rAirdrop of ${amount} SOL was successful.`); - } catch (e) { - console.error("Airdrop failed:", e); - throw e; - } - } - } -} diff --git a/session-keys/anchor/yarn.lock b/session-keys/anchor/yarn.lock index cf652b92..4a9f7977 100644 --- a/session-keys/anchor/yarn.lock +++ b/session-keys/anchor/yarn.lock @@ -2,2159 +2,7 @@ # yarn lockfile v1 -"@babel/runtime@^7.25.0": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326" - integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== - -"@coral-xyz/anchor-errors@^0.30.1": - version "0.30.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.30.1.tgz#bdfd3a353131345244546876eb4afc0e125bec30" - integrity sha512-9Mkradf5yS5xiLWrl9WrpjqOrAV+/W2RQHDlbnAZBivoGpOs1ECjoDCkVk4aRG8ZdiFiB8zQEVlxf+8fKkmSfQ== - -"@coral-xyz/anchor-errors@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" - integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== - -"@coral-xyz/anchor@0.32.1": - version "0.32.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" - integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== - dependencies: - "@coral-xyz/anchor-errors" "^0.31.1" - "@coral-xyz/borsh" "^0.31.1" - "@noble/hashes" "^1.3.1" - "@solana/web3.js" "^1.69.0" - bn.js "^5.1.2" - bs58 "^4.0.1" - buffer-layout "^1.2.2" - camelcase "^6.3.0" - cross-fetch "^3.1.5" - eventemitter3 "^4.0.7" - pako "^2.0.3" - superstruct "^0.15.4" - toml "^3.0.0" - -"@coral-xyz/anchor@^0.30.1": - version "0.30.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.30.1.tgz#17f3e9134c28cd0ea83574c6bab4e410bcecec5d" - integrity sha512-gDXFoF5oHgpriXAaLpxyWBHdCs8Awgf/gLHIo6crv7Aqm937CNdY+x+6hoj7QR5vaJV7MxWSQ0NGFzL3kPbWEQ== - dependencies: - "@coral-xyz/anchor-errors" "^0.30.1" - "@coral-xyz/borsh" "^0.30.1" - "@noble/hashes" "^1.3.1" - "@solana/web3.js" "^1.68.0" - bn.js "^5.1.2" - bs58 "^4.0.1" - buffer-layout "^1.2.2" - camelcase "^6.3.0" - cross-fetch "^3.1.5" - crypto-hash "^1.3.0" - eventemitter3 "^4.0.7" - pako "^2.0.3" - snake-case "^3.0.4" - superstruct "^0.15.4" - toml "^3.0.0" - -"@coral-xyz/borsh@^0.30.1": - version "0.30.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.30.1.tgz#869d8833abe65685c72e9199b8688477a4f6b0e3" - integrity sha512-aaxswpPrCFKl8vZTbxLssA2RvwX2zmKLlRCIktJOwW+VpVwYtXRtlWiIP+c2pPRKneiTiWCN2GEMSH9j1zTlWQ== - dependencies: - bn.js "^5.1.2" - buffer-layout "^1.2.0" - -"@coral-xyz/borsh@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.31.1.tgz#5328e1e0921b75d7f4a62dd3f61885a938bc7241" - integrity sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw== - dependencies: - bn.js "^5.1.2" - buffer-layout "^1.2.0" - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@graphql-typed-document-node/core@^3.1.1": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" - integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== - -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" - integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@magicblock-labs/ephemeral-rollups-sdk@0.14.3": - version "0.14.3" - resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.14.3.tgz#536c215d1daefdbcfa82a79304b08f5014405c58" - integrity sha512-CoByiXHLLS+l7Ojl6XJuYypP/k08ymFkab8+Gh/HCv5Gn2oC4VkwszEQoTDnKo++8Oxbqr9YVGzAMUW4Km7cLA== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@phala/dcap-qvl" "^0.3.9" - "@solana/web3.js" "^1.98.0" - bs58 "^6.0.0" - rpc-websockets "^9.0.4" - tweetnacl "^1.0.3" - typescript "^5.3.0" - -"@magicblock-labs/gum-sdk@^3.0.10": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@magicblock-labs/gum-sdk/-/gum-sdk-3.0.10.tgz#09ccdc0f2606285750b3afcea09b85f3027b38eb" - integrity sha512-t+0VjH29ul7NMvDIySbmrja16kLqmYI7dB+Ir70DSDcYpVgmGqqVJc5ODkSthcH1Duaoj6EjGmAM7NJo5udCPA== - dependencies: - "@coral-xyz/anchor" "^0.30.1" - axios "^1.2.6" - graphql "^16.6.0" - graphql-request "^5.1.0" - js-sha3 "^0.8.0" - randombytes "^2.1.0" - tweetnacl "^1.0.3" - -"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" - integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== - -"@magicblock-labs/magicsvm-darwin-x64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" - integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== - -"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" - integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== - -"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" - integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== - -"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" - integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== - -"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" - integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== - -"@magicblock-labs/magicsvm@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" - integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== - dependencies: - "@solana/web3.js" "3.0.0-rc.3" - optionalDependencies: - "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" - "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" - -"@magicblock-labs/test-utils@link:../../test-utils/ts": - version "0.0.0" - uid "" - -"@noble/curves@^1.4.2": - version "1.9.7" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" - integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== - dependencies: - "@noble/hashes" "1.8.0" - -"@noble/hashes@1.8.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" - integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== - -"@peculiar/asn1-schema@^2.3.13", "@peculiar/asn1-schema@^2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.7.0.tgz#f2dcb25995ce7cac8687ba1039f043e5eff43820" - integrity sha512-W8ZfWzLmQnrcky+eh3tni4IozMdqBDiHWU0N+vve/UGjMaUs8c0L7A2oEdkBXS8rTpWDpK/aoI3DG/L/hxmxPg== - dependencies: - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.6" - tslib "^2.8.1" - -"@peculiar/asn1-x509@^2.3.13": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.7.0.tgz#84793efb7819dbc9526fd6b0a4ccd86f90464b96" - integrity sha512-mUn9RRrkGDnG4ALfunDmzyRW5dg+sWCj/pfnCCqEHYbkGxEpvUt6iVJv8Yw1cyp6SWZ26ZE5oSmI5SqEaen15g== - dependencies: - "@peculiar/asn1-schema" "^2.7.0" - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.6" - tslib "^2.8.1" - -"@peculiar/utils@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@peculiar/utils/-/utils-2.0.3.tgz#a27ca4c4b73652e110f19a7d16d664f458a5528e" - integrity sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ== - dependencies: - tslib "^2.8.1" - -"@phala/dcap-qvl@^0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@phala/dcap-qvl/-/dcap-qvl-0.3.9.tgz#34da2506c31954cd290afb5a46146cd52ae24481" - integrity sha512-s/4gAFVq1DRhYkuerDR9WAlX8tkCpFTHTVpWnWlrigj5la2X5OtQl9Y7PzwcqY4h0fc25yqZrcRH3AZpzB1qOw== - dependencies: - "@peculiar/asn1-schema" "^2.3.13" - "@peculiar/asn1-x509" "^2.3.13" - asn1.js "^5.4.1" - bn.js "^5.2.2" - buffer "^6.0.3" - elliptic "^6.6.1" - hash.js "^1.1.7" - node-fetch "^2.7.0" - -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - -"@solana-program/address-lookup-table@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" - integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== - -"@solana-program/compute-budget@^0.18.0": - version "0.18.1" - resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" - integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== - -"@solana-program/loader-v3@^0.6.0": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" - integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== - -"@solana-program/stake@^0.9.0": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" - integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== - -"@solana-program/system@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" - integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== - -"@solana/accounts@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" - integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/addresses@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" - integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" - integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/buffer-layout@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" - integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== - dependencies: - buffer "~6.0.3" - -"@solana/codecs-core@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-2.3.0.tgz#6bf2bb565cb1ae880f8018635c92f751465d8695" - integrity sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw== - dependencies: - "@solana/errors" "2.3.0" - -"@solana/codecs-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" - integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/codecs-data-structures@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" - integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" - integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@^2.1.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" - integrity sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg== - dependencies: - "@solana/codecs-core" "2.3.0" - "@solana/errors" "2.3.0" - -"@solana/codecs-strings@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" - integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" - integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/options" "8.3.0" - -"@solana/errors@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.3.0.tgz#4ac9380343dbeffb9dffbcb77c28d0e457c5fa31" - integrity sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ== - dependencies: - chalk "^5.4.1" - commander "^14.0.0" - -"@solana/errors@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" - integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== - dependencies: - chalk "5.6.2" - commander "15.0.0" - -"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" - integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== - -"@solana/fixed-points@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" - integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/functional@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" - integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== - -"@solana/instruction-plans@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" - integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/instructions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" - integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/keys@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" - integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/kit@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" - integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/plugin-core" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/program-client-core" "8.3.0" - "@solana/programs" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/subscribable" "8.3.0" - "@solana/sysvars" "8.3.0" - "@solana/transaction-confirmation" "8.3.0" - "@solana/transaction-introspection" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/nominal-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" - integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== - -"@solana/offchain-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" - integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/options@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" - integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/plugin-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" - integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== - -"@solana/plugin-interfaces@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" - integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/program-client-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" - integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/signers" "8.3.0" - -"@solana/programs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" - integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/promises@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" - integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== - -"@solana/rpc-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" - integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-parsed-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" - integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== - -"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" - integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/rpc-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" - integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" - integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-subscriptions-channel-websocket@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" - integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/subscribable" "8.3.0" - ws "^8.21.3" - -"@solana/rpc-subscriptions-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" - integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" - integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions-api" "8.3.0" - "@solana/rpc-subscriptions-channel-websocket" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-transformers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" - integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/rpc-transport-http@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" - integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - undici-types "^8.10.2" - -"@solana/rpc-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" - integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/rpc@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" - integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-transport-http" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/signers@8.3.0", "@solana/signers@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" - integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/subscribable@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" - integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/sysvars@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" - integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transaction-confirmation@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" - integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-introspection@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" - integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" - integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transactions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" - integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - -"@solana/web3.js@3.0.0-rc.3": - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" - integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@solana-program/address-lookup-table" "^0.14.0" - "@solana-program/compute-budget" "^0.18.0" - "@solana-program/loader-v3" "^0.6.0" - "@solana-program/stake" "^0.9.0" - "@solana-program/system" "^0.14.0" - "@solana/assertions" "^8.2.0" - "@solana/fast-stable-stringify" "^8.2.0" - "@solana/kit" "^8.2.0" - "@solana/rpc-spec-types" "^8.2.0" - "@solana/signers" "^8.2.0" - -"@solana/web3.js@^1.68.0", "@solana/web3.js@^1.69.0", "@solana/web3.js@^1.98.0": - version "1.98.4" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" - integrity sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw== - 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.1.0" - agentkeepalive "^4.5.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.1.1" - node-fetch "^2.7.0" - rpc-websockets "^9.0.2" - superstruct "^2.0.2" - -"@swc/helpers@^0.5.11": - version "0.5.17" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.17.tgz#5a7be95ac0f0bf186e7e6e890e7a6f6cda6ce971" - integrity sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A== - dependencies: - tslib "^2.8.0" - -"@tsconfig/node10@^1.0.7": - version "1.0.12" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.12.tgz#be57ceac1e4692b41be9de6be8c32a106636dba4" - integrity sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@types/bn.js@^5.1.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.2.0.tgz#4349b9710e98f9ab3cdc50f1c5e4dcbd8ef29c80" - integrity sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q== - dependencies: - "@types/node" "*" - -"@types/chai@^5.2.2": - version "5.2.3" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-5.2.3.tgz#8e9cd9e1c3581fa6b341a5aed5588eb285be0b4a" - integrity sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA== - dependencies: - "@types/deep-eql" "*" - assertion-error "^2.0.1" - -"@types/connect@^3.4.33": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" - integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== - dependencies: - "@types/node" "*" - -"@types/deep-eql@*": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/deep-eql/-/deep-eql-4.0.2.tgz#334311971d3a07121e7eb91b684a605e7eea9cbd" - integrity sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw== - -"@types/mocha@^10.0.10": - version "10.0.10" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.10.tgz#91f62905e8d23cbd66225312f239454a23bebfa0" - integrity sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q== - -"@types/node@*": - version "24.10.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.1.tgz#91e92182c93db8bd6224fca031e2370cef9a8f01" - integrity sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ== - dependencies: - undici-types "~7.16.0" - -"@types/node@^12.12.54": - version "12.20.55" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - -"@types/uuid@^8.3.4": - version "8.3.4" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" - integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== - -"@types/ws@^7.4.4": - version "7.4.7" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - dependencies: - "@types/node" "*" - -"@types/ws@^8.2.2": - version "8.18.1" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" - integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== - dependencies: - "@types/node" "*" - -acorn-walk@^8.1.1: - version "8.3.4" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" - integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== - dependencies: - acorn "^8.11.0" - -acorn@^8.11.0, acorn@^8.4.1: - version "8.15.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" - integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== - -agentkeepalive@^4.5.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" - integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== - dependencies: - humanize-ms "^1.2.1" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" - integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^6.1.0: - version "6.2.3" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" - integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -asn1.js@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1js@^3.0.6: - version "3.0.10" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.10.tgz#df26c874c8a8b41ca605efea47b2ad07551013dd" - integrity sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg== - dependencies: - pvtsutils "^1.3.6" - pvutils "^1.1.5" - tslib "^2.8.1" - -assertion-error@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" - integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -axios@^1.2.6: - version "1.13.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.13.2.tgz#9ada120b7b5ab24509553ec3e40123521117f687" - integrity sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA== - dependencies: - follow-redirects "^1.15.6" - form-data "^4.0.4" - proxy-from-env "^1.1.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base-x@^3.0.2: - version "3.0.11" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.11.tgz#40d80e2a1aeacba29792ccc6c5354806421287ff" - integrity sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA== - dependencies: - safe-buffer "^5.0.1" - -base-x@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-5.0.1.tgz#16bf35254be1df8aca15e36b7c1dda74b2aa6b03" - integrity sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bn.js@^4.0.0, bn.js@^4.11.9: - version "4.12.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.3.tgz#2cc2c679188eb35b006f2d0d4710bed8437a769e" - integrity sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g== - -bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: - version "5.2.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.2.tgz#82c09f9ebbb17107cd72cb7fd39bd1f9d0aaa566" - integrity sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw== - -bn.js@^5.2.2: - version "5.2.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.3.tgz#16a9e409616b23fef3ccbedb8d42f13bff80295e" - integrity sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w== - -borsh@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" - integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== - dependencies: - bn.js "^5.2.0" - bs58 "^4.0.0" - text-encoding-utf-8 "^1.0.2" - -brace-expansion@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" - integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== - dependencies: - balanced-match "^1.0.0" - -brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browser-stdout@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -bs58@^4.0.0, bs58@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - dependencies: - base-x "^3.0.2" - -bs58@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-6.0.0.tgz#a2cda0130558535dd281a2f8697df79caaf425d8" - integrity sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw== - dependencies: - base-x "^5.0.0" - -buffer-layout@^1.2.0, buffer-layout@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" - integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== - -buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -bufferutil@^4.0.1: - version "4.0.9" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.9.tgz#6e81739ad48a95cad45a279588e13e95e24a800a" - integrity sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw== - dependencies: - node-gyp-build "^4.3.0" - -call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" - integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== - dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - -camelcase@^6.0.0, camelcase@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -chai@^5.2.0: - version "5.3.3" - resolved "https://registry.yarnpkg.com/chai/-/chai-5.3.3.tgz#dd3da955e270916a4bd3f625f4b919996ada7e06" - integrity sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw== - dependencies: - assertion-error "^2.0.1" - check-error "^2.1.1" - deep-eql "^5.0.1" - loupe "^3.1.0" - pathval "^2.0.0" - -chalk@5.6.2, chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - -chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -check-error@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" - integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== - -chokidar@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" - integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== - dependencies: - readdirp "^4.0.1" - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" - integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== - -commander@^14.0.0: - version "14.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e" - integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== - -commander@^2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-fetch@^3.1.5: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" - integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== - dependencies: - node-fetch "^2.7.0" - -cross-spawn@^7.0.6: - version "7.0.6" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" - integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-hash@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/crypto-hash/-/crypto-hash-1.3.0.tgz#b402cb08f4529e9f4f09346c3e275942f845e247" - integrity sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg== - -debug@^4.3.5: - version "4.4.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" - integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== - dependencies: - ms "^2.1.3" - -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - -deep-eql@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" - integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== - -delay@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" - integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -diff@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-7.0.0.tgz#3fb34d387cd76d803f6eebea67b921dab0182a9a" - integrity sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw== - -dot-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" - integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -dotenv@^17.2.3: - version "17.2.3" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-17.2.3.tgz#ad995d6997f639b11065f419a22fabf567cdb9a2" - integrity sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w== - -dunder-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" - integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== - dependencies: - call-bind-apply-helpers "^1.0.1" - es-errors "^1.3.0" - gopd "^1.2.0" - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -elliptic@^6.6.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" - integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -es-define-property@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" - integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== - -es-errors@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" - integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - -es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" - integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== - dependencies: - es-errors "^1.3.0" - -es-set-tostringtag@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" - integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== - dependencies: - es-errors "^1.3.0" - get-intrinsic "^1.2.6" - has-tostringtag "^1.0.2" - hasown "^2.0.2" - -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== - dependencies: - es6-promise "^4.0.3" - -escalade@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eventemitter3@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -eventemitter3@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" - integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - -extract-files@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-9.0.0.tgz#8a7744f2437f81f5ed3250ed9f1550de902fe54a" - integrity sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ== - -eyes@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" - integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== - -fast-stable-stringify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" - integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -follow-redirects@^1.15.6: - version "1.15.11" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340" - integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== - -foreground-child@^3.1.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" - integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== - dependencies: - cross-spawn "^7.0.6" - signal-exit "^4.0.1" - -form-data@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.4.tgz#938273171d3f999286a4557528ce022dc2c98df1" - integrity sha512-f0cRzm6dkyVYV3nPoooP8XlccPQukegwhAnpoLcXy+X+A8KfpGOoXwDr9FLZd3wzgLaBGQBE3lY93Zm/i1JvIQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - es-set-tostringtag "^2.1.0" - hasown "^2.0.2" - mime-types "^2.1.35" - -form-data@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.5.tgz#b49e48858045ff4cbf6b03e1805cebcad3679053" - integrity sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - es-set-tostringtag "^2.1.0" - hasown "^2.0.2" - mime-types "^2.1.12" - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.2.6: - version "1.3.0" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" - integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== - 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: - version "1.0.1" - resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" - integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== - dependencies: - dunder-proto "^1.0.1" - es-object-atoms "^1.0.0" - -glob@^10.4.5: - version "10.5.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" - integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== - dependencies: - foreground-child "^3.1.0" - jackspeak "^3.1.2" - minimatch "^9.0.4" - minipass "^7.1.2" - package-json-from-dist "^1.0.0" - path-scurry "^1.11.1" - -gopd@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" - integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== - -graphql-request@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-5.2.0.tgz#a05fb54a517d91bb2d7aefa17ade4523dc5ebdca" - integrity sha512-pLhKIvnMyBERL0dtFI3medKqWOz/RhHdcgbZ+hMMIb32mEPa5MJSzS4AuXxfI4sRAu6JVVk5tvXuGfCWl9JYWQ== - dependencies: - "@graphql-typed-document-node/core" "^3.1.1" - cross-fetch "^3.1.5" - extract-files "^9.0.0" - form-data "^3.0.0" - -graphql@^16.6.0: - version "16.12.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.12.0.tgz#28cc2462435b1ac3fdc6976d030cef83a0c13ac7" - integrity sha512-DKKrynuQRne0PNpEbzuEdHlYOMksHSUI8Zc9Unei5gTsMNA2/vMpoMz/yKba50pejK56qj98qM0SjYxAKi13gQ== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.3, has-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" - integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== - -has-tostringtag@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" - integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== - dependencies: - has-symbols "^1.0.3" - -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - dependencies: - function-bind "^1.1.2" - -he@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - -jackspeak@^3.1.2: - version "3.4.3" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" - integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - -jayson@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.2.0.tgz#b71762393fa40bc9637eaf734ca6f40d3b8c0c93" - integrity sha512-VfJ9t1YLwacIubLhONk0KFeosUBwstRWQ0IRT1KDjEjnVnSOVHC3uwugyV7L0c7R9lpVyrUGT2XWiBA1UTtpyg== - dependencies: - "@types/connect" "^3.4.33" - "@types/node" "^12.12.54" - "@types/ws" "^7.4.4" - commander "^2.20.3" - delay "^5.0.0" - es6-promisify "^5.0.0" - eyes "^0.1.8" - isomorphic-ws "^4.0.1" - json-stringify-safe "^5.0.1" - stream-json "^1.9.1" - uuid "^8.3.2" - ws "^7.5.10" - -js-sha3@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - -js-yaml@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" - integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== - dependencies: - argparse "^2.0.1" - -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -loupe@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.2.1.tgz#0095cf56dc5b7a9a7c08ff5b1a8796ec8ad17e76" - integrity sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ== - -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" - integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== - dependencies: - tslib "^2.0.3" - -lru-cache@^10.2.0: - version "10.4.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" - integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -math-intrinsics@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" - integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@^2.1.35: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -minimatch@^9.0.4, minimatch@^9.0.5: - version "9.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" - integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== - dependencies: - brace-expansion "^2.0.1" - -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" - integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== - -mocha@^11.2.2: - version "11.7.5" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.7.5.tgz#58f5bbfa5e0211ce7e5ee6128107cefc2515a627" - integrity sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig== - dependencies: - browser-stdout "^1.3.1" - chokidar "^4.0.1" - debug "^4.3.5" - diff "^7.0.0" - escape-string-regexp "^4.0.0" - find-up "^5.0.0" - glob "^10.4.5" - he "^1.2.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - log-symbols "^4.1.0" - minimatch "^9.0.5" - ms "^2.1.3" - picocolors "^1.1.1" - serialize-javascript "^6.0.2" - strip-json-comments "^3.1.1" - supports-color "^8.1.1" - workerpool "^9.2.0" - yargs "^17.7.2" - yargs-parser "^21.1.1" - yargs-unparser "^2.0.0" - -ms@^2.0.0, ms@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -no-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" - integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== - dependencies: - lower-case "^2.0.2" - tslib "^2.0.3" - -node-fetch@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - -node-gyp-build@^4.3.0: - version "4.8.4" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" - integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -package-json-from-dist@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" - integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== - -pako@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" - integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-scurry@^1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" - integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== - dependencies: - lru-cache "^10.2.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - -pathval@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.1.tgz#8855c5a2899af072d6ac05d11e46045ad0dc605d" - integrity sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ== - -picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - prettier@^3.5.3: - version "3.6.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.6.2.tgz#ccda02a1003ebbb2bfda6f83a074978f608b9393" - integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ== - -proxy-from-env@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - -pvtsutils@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.6.tgz#ec46e34db7422b9e4fdc5490578c1883657d6001" - integrity sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg== - dependencies: - tslib "^2.8.1" - -pvutils@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.5.tgz#84b0dea4a5d670249aa9800511804ee0b7c2809c" - integrity sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -readdirp@^4.0.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" - integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -rpc-websockets@^9.0.2, rpc-websockets@^9.0.4: - version "9.3.1" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.3.1.tgz#d817a59d812f68bae1215740a3f78fcdd3813698" - integrity sha512-bY6a+i/lEtBJ/mUxwsCTgevoV1P0foXTVA7UoThzaIWbM+3NDqorf8NBWs5DmqKTFeA1IoNzgvkWjFCPgnzUiQ== - dependencies: - "@swc/helpers" "^0.5.11" - "@types/uuid" "^8.3.4" - "@types/ws" "^8.2.2" - buffer "^6.0.3" - eventemitter3 "^5.0.1" - uuid "^8.3.2" - ws "^8.5.0" - optionalDependencies: - bufferutil "^4.0.1" - utf-8-validate "^5.0.2" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -serialize-javascript@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" - integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== - dependencies: - randombytes "^2.1.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -snake-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" - integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - -stream-chain@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/stream-chain/-/stream-chain-2.2.5.tgz#b30967e8f14ee033c5b9a19bbe8a2cba90ba0d09" - integrity sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA== - -stream-json@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/stream-json/-/stream-json-1.9.1.tgz#e3fec03e984a503718946c170db7d74556c2a187" - integrity sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw== - dependencies: - stream-chain "^2.2.5" - -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1: - version "7.1.2" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" - integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== - dependencies: - ansi-regex "^6.0.1" - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -superstruct@^0.15.4: - version "0.15.5" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" - integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== - -superstruct@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-2.0.2.tgz#3f6d32fbdc11c357deff127d591a39b996300c54" - integrity sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A== - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -text-encoding-utf-8@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" - integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== - -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -ts-mocha@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-11.1.0.tgz#d8336ec0146bd6f36cca2555f4cfc7df85bd1586" - integrity sha512-yT7FfzNRCu8ZKkYvAOiH01xNma/vLq6Vit7yINKYFNVP8e5UyrYXSOMIipERTpzVKJQ4Qcos5bQo1tNERNZevQ== - -ts-node@^10.9.2: - version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" - integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tslib@^2.0.3, tslib@^2.8.0, tslib@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" - integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -typescript@^5.3.0, typescript@^5.8.3: - version "5.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" - integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== - -undici-types@^8.10.2: - version "8.10.2" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" - integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== - -undici-types@~7.16.0: - version "7.16.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" - integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== - -utf-8-validate@^5.0.2: - version "5.0.10" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" - integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== - dependencies: - node-gyp-build "^4.3.0" - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -workerpool@^9.2.0: - version "9.3.4" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-9.3.4.tgz#f6c92395b2141afd78e2a889e80cb338fe9fca41" - integrity sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg== - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - -ws@^7.5.10: - version "7.5.10" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" - integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== - -ws@^8.21.3: - version "8.21.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" - integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== - -ws@^8.5.0: - version "8.18.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" - integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs-unparser@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@^17.7.2: - version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + version "3.9.9" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.9.9.tgz#09b826918c91cd4cbc80e0cbd1d2a922ff04f233" + integrity sha512-Z/CJHIkdujO/OtN7nXUii0Rf3VT5SRuhjBA82Xvu2XhBUgX3nhP67T0LHceBdQLex7OOFGTox+Q5Yg8Jk2Qivg== diff --git a/spl-tokens/anchor/README.md b/spl-tokens/anchor/README.md index 2f944d2f..27c74557 100644 --- a/spl-tokens/anchor/README.md +++ b/spl-tokens/anchor/README.md @@ -70,7 +70,7 @@ yarn yarn build ``` -Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): +Run the Rust test suite in `tests-magicsvm-rs/` in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash yarn test @@ -80,7 +80,7 @@ MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no va network. The suite delegates SPL tokens, transfers them directly and through the example program, and undelegates the token accounts. -A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. +`yarn test` runs `cargo +stable test`: MagicSVM needs a newer Rust than the 1.89 toolchain used for program builds. ## Key Files diff --git a/spl-tokens/anchor/package.json b/spl-tokens/anchor/package.json index 177c751a..f4a9f82e 100644 --- a/spl-tokens/anchor/package.json +++ b/spl-tokens/anchor/package.json @@ -2,28 +2,11 @@ "scripts": { "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", - "test": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests/spl-tokens.ts", - "build": "anchor build --ignore-keys", - "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture" - }, - "dependencies": { - "@coral-xyz/anchor": "0.32.1", - "@magicblock-labs/ephemeral-rollups-sdk": "0.16.2" + "test": "cargo +stable test --manifest-path tests-magicsvm-rs/Cargo.toml", + "build": "anchor build --ignore-keys" }, "devDependencies": { - "@magicblock-labs/magicsvm": "0.2.0", - "@solana/spl-token": "^0.4.14", - "@types/bn.js": "^5.1.0", - "@types/chai": "^5.2.2", - "@types/mocha": "^10.0.10", - "chai": "^5.2.0", - "mocha": "^11.2.2", - "prettier": "^3.5.3", - "ts-mocha": "^11.1.0", - "ts-node": "^10.9.2", - "tsx": "^4.22.0", - "typescript": "^5.8.3", - "@magicblock-labs/test-utils": "link:../../test-utils/ts" + "prettier": "^3.5.3" }, "license": "MIT", "packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447" diff --git a/spl-tokens/anchor/tests/spl-tokens.ts b/spl-tokens/anchor/tests/spl-tokens.ts deleted file mode 100644 index 6daeb26b..00000000 --- a/spl-tokens/anchor/tests/spl-tokens.ts +++ /dev/null @@ -1,342 +0,0 @@ -import * as anchor from "@coral-xyz/anchor"; -import { BN } from "@coral-xyz/anchor"; -import { MagicSVM } from "@magicblock-labs/magicsvm"; -import { - AccountLayout, - TOKEN_PROGRAM_ID, - createAssociatedTokenAccountInstruction, - createInitializeMintInstruction, - createMintToInstruction, - getAssociatedTokenAddressSync, -} from "@solana/spl-token"; -import { - Keypair, - LAMPORTS_PER_SOL, - PublicKey, - SystemProgram, - Transaction, -} from "@solana/web3.js"; -import { assert } from "chai"; -import { - delegateSpl, - deriveEphemeralAta, - deriveRentPda, - EPHEMERAL_SPL_TOKEN_PROGRAM_ID, - transferSpl, - undelegateIx, - withdrawSpl, -} from "@magicblock-labs/ephemeral-rollups-sdk"; -import { - bootAnchorSvm, - sendSvmTx, - accountOwner, -} from "@magicblock-labs/test-utils"; -import { SplTokens } from "../target/types/spl_tokens"; - -const MINT_SIZE = 82; -const TOKEN_AMOUNT = 1000n; - -function tokenAmount( - svm: MagicSVM, - ata: PublicKey, - target: "base" | "ephemeral", -): bigint { - const account = svm.getAccountFor(ata, { target }); - if (!account.exists) { - throw new Error(`missing token account ${ata.toBase58()} on ${target}`); - } - return AccountLayout.decode(Buffer.from(account.data)).amount; -} - -describe("spl-tokens magicsvm", () => { - const createHarness = () => { - const { - svm, - payer: admin, - program, - validator, - } = bootAnchorSvm({ - fromDir: __dirname, - programName: "spl_tokens", - airdropLamports: BigInt(10 * LAMPORTS_PER_SOL), - }); - return { admin, program, svm, validator: new PublicKey(validator) }; - }; - - const setupMintWithRecipients = ( - svm: MagicSVM, - admin: Keypair, - ): { - mint: Keypair; - owners: [Keypair, Keypair]; - atas: [PublicKey, PublicKey]; - } => { - const newMint = Keypair.generate(); - const owner1 = Keypair.generate(); - const owner2 = Keypair.generate(); - const [sponsorPda] = deriveRentPda(); - - const fundTx = new Transaction(); - for (const r of [owner1.publicKey, owner2.publicKey, sponsorPda]) { - fundTx.add( - SystemProgram.transfer({ - fromPubkey: admin.publicKey, - toPubkey: r, - lamports: 0.2 * LAMPORTS_PER_SOL, - }), - ); - } - sendSvmTx(svm, [admin], fundTx, "base", "fund recipients"); - - const ata1 = getAssociatedTokenAddressSync( - newMint.publicKey, - owner1.publicKey, - ); - const ata2 = getAssociatedTokenAddressSync( - newMint.publicKey, - owner2.publicKey, - ); - - const tx = new Transaction().add( - SystemProgram.createAccount({ - fromPubkey: admin.publicKey, - newAccountPubkey: newMint.publicKey, - space: MINT_SIZE, - lamports: Number(svm.minimumBalanceForRentExemption(BigInt(MINT_SIZE))), - programId: TOKEN_PROGRAM_ID, - }), - createInitializeMintInstruction( - newMint.publicKey, - 0, - admin.publicKey, - null, - ), - createAssociatedTokenAccountInstruction( - admin.publicKey, - ata1, - owner1.publicKey, - newMint.publicKey, - ), - createAssociatedTokenAccountInstruction( - admin.publicKey, - ata2, - owner2.publicKey, - newMint.publicKey, - ), - createMintToInstruction( - newMint.publicKey, - ata1, - admin.publicKey, - TOKEN_AMOUNT, - ), - createMintToInstruction( - newMint.publicKey, - ata2, - admin.publicKey, - TOKEN_AMOUNT, - ), - ); - sendSvmTx(svm, [admin, newMint], tx, "base", "create mint and ATAs"); - - const acct1 = tokenAmount(svm, ata1, "base"); - const acct2 = tokenAmount(svm, ata2, "base"); - if (acct1 !== TOKEN_AMOUNT) { - throw new Error(`owner1 expected ${TOKEN_AMOUNT}, got ${acct1}`); - } - if (acct2 !== TOKEN_AMOUNT) { - throw new Error(`owner2 expected ${TOKEN_AMOUNT}, got ${acct2}`); - } - - return { - mint: newMint, - owners: [owner1, owner2], - atas: [ata1, ata2], - }; - }; - - it("Delegate SPL tokens, do a transfer and undelegate", async () => { - const { admin, svm, validator } = createHarness(); - console.log("spl-tokens.ts (magicsvm)"); - console.log("Validator: ", validator.toBase58()); - const { - mint, - owners: [recipientA, recipientB], - atas: [ataA, ataB], - } = setupMintWithRecipients(svm, admin); - - console.log("\nUser1: ", recipientA.publicKey.toBase58()); - console.log("User2: ", recipientB.publicKey.toBase58()); - - assert(tokenAmount(svm, ataA, "base") == 1000n); - assert(tokenAmount(svm, ataB, "base") == 1000n); - - const delegateOpts = { - validator, - idempotent: false as const, - payer: admin.publicKey, - }; - - const delegations: [Keypair, bigint, boolean][] = [ - [recipientA, 50n, true], - [recipientB, 10n, false], - ]; - for (const [owner, amount, initVaultIfMissing] of delegations) { - const ixs = await delegateSpl(owner.publicKey, mint.publicKey, amount, { - ...delegateOpts, - initVaultIfMissing, - }); - sendSvmTx( - svm, - [admin, owner], - new Transaction().add(...ixs), - "base", - `delegate ${owner.publicKey.toBase58()}`, - ); - } - - const erAAfterDelegate = tokenAmount(svm, ataA, "ephemeral"); - const erBAfterDelegate = tokenAmount(svm, ataB, "ephemeral"); - assert( - erAAfterDelegate == 50n, - `A ER balance after delegate ${erAAfterDelegate}`, - ); - assert( - erBAfterDelegate == 10n, - `B ER balance after delegate ${erBAfterDelegate}`, - ); - - const transferIxs = await transferSpl( - recipientA.publicKey, - recipientB.publicKey, - mint.publicKey, - 2n, - { - visibility: "public", - fromBalance: "ephemeral", - toBalance: "ephemeral", - }, - ); - sendSvmTx( - svm, - [recipientA], - new Transaction().add(...transferIxs), - "ephemeral", - "ER transfer", - ); - - const acctA = tokenAmount(svm, ataA, "ephemeral"); - const acctB = tokenAmount(svm, ataB, "ephemeral"); - assert(acctA == 48n); - assert(acctB == 12n); - - for (const owner of [recipientA, recipientB]) { - sendSvmTx( - svm, - [owner], - new Transaction().add(undelegateIx(owner.publicKey, mint.publicKey)), - "ephemeral", - `undelegate ${owner.publicKey.toBase58()}`, - ); - } - - for (const owner of [recipientA, recipientB]) { - const [eata] = deriveEphemeralAta(owner.publicKey, mint.publicKey); - assert( - accountOwner(svm, eata, "base") === - EPHEMERAL_SPL_TOKEN_PROGRAM_ID.toString(), - `${eata.toBase58()} was not undelegated back to ESPL`, - ); - } - - const withdrawIxs = [ - ...(await withdrawSpl(recipientA.publicKey, mint.publicKey, acctA, { - idempotent: false, - })), - ...(await withdrawSpl(recipientB.publicKey, mint.publicKey, acctB, { - idempotent: false, - })), - ]; - sendSvmTx( - svm, - [admin, recipientA, recipientB], - new Transaction().add(...withdrawIxs), - "base", - "withdraw", - ); - - assert(tokenAmount(svm, ataA, "base") == 998n); - assert(tokenAmount(svm, ataB, "base") == 1002n); - }); - - it("Delegate SPL tokens and do a transfer through a program", async () => { - const { admin, program, svm, validator } = createHarness(); - const delegateOpts = { - validator, - idempotent: false as const, - payer: admin.publicKey, - }; - - const { - mint: mint2, - owners: [sender, receiver], - atas: [ataSender, ataReceiver], - } = setupMintWithRecipients(svm, admin); - - const ixsSender = await delegateSpl( - sender.publicKey, - mint2.publicKey, - 10n, - { - ...delegateOpts, - initVaultIfMissing: true, - }, - ); - sendSvmTx( - svm, - [admin, sender], - new Transaction().add(...ixsSender), - "base", - "delegate sender", - ); - - const ixsReceiver = await delegateSpl( - receiver.publicKey, - mint2.publicKey, - 10n, - { ...delegateOpts, initVaultIfMissing: false }, - ); - sendSvmTx( - svm, - [admin, receiver], - new Transaction().add(...ixsReceiver), - "base", - "delegate receiver", - ); - - const erSenderAfterDelegate = tokenAmount(svm, ataSender, "ephemeral"); - const erReceiverAfterDelegate = tokenAmount(svm, ataReceiver, "ephemeral"); - assert( - erSenderAfterDelegate == 10n, - `sender ER balance after delegate ${erSenderAfterDelegate}`, - ); - assert( - erReceiverAfterDelegate == 10n, - `receiver ER balance after delegate ${erReceiverAfterDelegate}`, - ); - - const txT = await program.methods - .transfer(new BN(2)) - .accounts({ - payer: sender.publicKey, - from: ataSender, - to: ataReceiver, - }) - .transaction(); - sendSvmTx(svm, [sender], txT, "ephemeral", "program transfer"); - - const erSender = tokenAmount(svm, ataSender, "ephemeral"); - const erReceiver = tokenAmount(svm, ataReceiver, "ephemeral"); - assert(erSender == 8n, `sender ER balance ${erSender}`); - assert(erReceiver == 12n, `receiver ER balance ${erReceiver}`); - }); -}); diff --git a/spl-tokens/anchor/tsconfig.json b/spl-tokens/anchor/tsconfig.json deleted file mode 100644 index d93d6f9e..00000000 --- a/spl-tokens/anchor/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "types": ["mocha", "chai"], - "typeRoots": ["./node_modules/@types"], - "lib": ["es2020"], - "module": "commonjs", - "target": "es2020", - "esModuleInterop": true, - "skipLibCheck": true - } -} diff --git a/spl-tokens/anchor/yarn.lock b/spl-tokens/anchor/yarn.lock index 66929a31..4a9f7977 100644 --- a/spl-tokens/anchor/yarn.lock +++ b/spl-tokens/anchor/yarn.lock @@ -2,2186 +2,7 @@ # yarn lockfile v1 -"@babel/runtime@^7.25.0": - version "7.29.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.2.tgz#9a6e2d05f4b6692e1801cd4fb176ad823930ed5e" - integrity sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g== - -"@coral-xyz/anchor-errors@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" - integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== - -"@coral-xyz/anchor@0.32.1": - version "0.32.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" - integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== - dependencies: - "@coral-xyz/anchor-errors" "^0.31.1" - "@coral-xyz/borsh" "^0.31.1" - "@noble/hashes" "^1.3.1" - "@solana/web3.js" "^1.69.0" - bn.js "^5.1.2" - bs58 "^4.0.1" - buffer-layout "^1.2.2" - camelcase "^6.3.0" - cross-fetch "^3.1.5" - eventemitter3 "^4.0.7" - pako "^2.0.3" - superstruct "^0.15.4" - toml "^3.0.0" - -"@coral-xyz/borsh@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.31.1.tgz#5328e1e0921b75d7f4a62dd3f61885a938bc7241" - integrity sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw== - dependencies: - bn.js "^5.1.2" - buffer-layout "^1.2.0" - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@esbuild/aix-ppc64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz#7a289c158e29cbf59ea0afc83cc80f06d1c89402" - integrity sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA== - -"@esbuild/android-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz#b8828d9edfa3a92660644eb8de6e4f3c203d7b17" - integrity sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw== - -"@esbuild/android-arm@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.28.0.tgz#5ec1847605e05b5dbe5df90db9ff7e3e4c58dca7" - integrity sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ== - -"@esbuild/android-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.28.0.tgz#390642175b88ef82bad4cce03f8ab13fe9b1912e" - integrity sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA== - -"@esbuild/darwin-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz#ae45325960d5950cd6951e4f97396f4e1ff7d8d3" - integrity sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q== - -"@esbuild/darwin-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz#c079247d589b6b99449659d94f06951b84bff2e4" - integrity sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ== - -"@esbuild/freebsd-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz#45c456215a486593c94900297202dc11c880a37a" - integrity sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q== - -"@esbuild/freebsd-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz#0399494c1c85e4388e9b7040bd60d48f2a5b0d2c" - integrity sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw== - -"@esbuild/linux-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz#d6d9f09ef0de54116bf459a4d53cac7e0952fe39" - integrity sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A== - -"@esbuild/linux-arm@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz#7b42ffa84c288ae94fdc431c1b28a89e3c3b9278" - integrity sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw== - -"@esbuild/linux-ia32@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz#deb15d112ed8dd605346b6b953d23a21ff81253f" - integrity sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ== - -"@esbuild/linux-loong64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz#81fb89d07eecc79b157dea61033757726fce0ca4" - integrity sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg== - -"@esbuild/linux-mips64el@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz#d0e42691b3ff7af9fb2217b70fc01f343bdb62bb" - integrity sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w== - -"@esbuild/linux-ppc64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz#389f3e5e98f17d477c467cc87136e1a076eead87" - integrity sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg== - -"@esbuild/linux-riscv64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz#763bd60d59b242be12da1e67d5729f3024c605fa" - integrity sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ== - -"@esbuild/linux-s390x@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz#aac6061634872e4677de693bce8030d73b1fd055" - integrity sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q== - -"@esbuild/linux-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz#4f2917747188fe77632bcec65b2d84b422419779" - integrity sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ== - -"@esbuild/netbsd-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz#814df0ae57a0c386814491b8397eeba82094a947" - integrity sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw== - -"@esbuild/netbsd-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz#e01bdf7e60fa1a08e46d46d960b0d9bb8ac210af" - integrity sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw== - -"@esbuild/openbsd-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz#4a15c36aacca68d2d5a4c90b710c06759f4c1ffa" - integrity sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g== - -"@esbuild/openbsd-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz#475e6101498a8ecce3008d7c388111d7a27c17bd" - integrity sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA== - -"@esbuild/openharmony-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz#cfdc3957f0b7a69f1bde129aad17fcc2f6fa033e" - integrity sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w== - -"@esbuild/sunos-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz#a013c856fecacd1c3aec985c8afe1d1cb017497d" - integrity sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw== - -"@esbuild/win32-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz#eae05e0f35271cad3898b43168d3e9a3bbaf47e5" - integrity sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA== - -"@esbuild/win32-ia32@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz#06161ebc5bf75c08d69feb3c6b22560515913998" - integrity sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA== - -"@esbuild/win32-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz#04d90d5752b4ce65d2b6ac25eba08ff7624fe07c" - integrity sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw== - -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" - integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@magicblock-labs/ephemeral-rollups-sdk@0.14.3": - version "0.14.3" - resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.14.3.tgz#536c215d1daefdbcfa82a79304b08f5014405c58" - integrity sha512-CoByiXHLLS+l7Ojl6XJuYypP/k08ymFkab8+Gh/HCv5Gn2oC4VkwszEQoTDnKo++8Oxbqr9YVGzAMUW4Km7cLA== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@phala/dcap-qvl" "^0.3.9" - "@solana/web3.js" "^1.98.0" - bs58 "^6.0.0" - rpc-websockets "^9.0.4" - tweetnacl "^1.0.3" - typescript "^5.3.0" - -"@magicblock-labs/ephemeral-rollups-sdk@0.16.2": - version "0.16.2" - resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.16.2.tgz#d9ec087aad33a2ddde55756328e4bad7ae31df06" - integrity sha512-rXeIlGjwCrgfKwJ/vU4A7rLd1aYJoo05c+GkhJmH/B08WYCpDL6Kabo3lztsJ/tiaFaeLCZc0/8FgKrFBd1mZQ== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@phala/dcap-qvl" "^0.3.9" - "@solana/web3.js" "^1.98.0" - bs58 "^6.0.0" - rpc-websockets "^9.0.4" - tweetnacl "^1.0.3" - typescript "^5.3.0" - -"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" - integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== - -"@magicblock-labs/magicsvm-darwin-x64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" - integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== - -"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" - integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== - -"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" - integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== - -"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" - integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== - -"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" - integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== - -"@magicblock-labs/magicsvm@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" - integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== - dependencies: - "@solana/web3.js" "3.0.0-rc.3" - optionalDependencies: - "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" - "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" - -"@magicblock-labs/test-utils@link:../../test-utils/ts": - version "0.0.0" - uid "" - -"@noble/curves@^1.4.2": - version "1.9.7" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" - integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== - dependencies: - "@noble/hashes" "1.8.0" - -"@noble/hashes@1.8.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" - integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== - -"@peculiar/asn1-schema@^2.3.13", "@peculiar/asn1-schema@^2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.7.0.tgz#f2dcb25995ce7cac8687ba1039f043e5eff43820" - integrity sha512-W8ZfWzLmQnrcky+eh3tni4IozMdqBDiHWU0N+vve/UGjMaUs8c0L7A2oEdkBXS8rTpWDpK/aoI3DG/L/hxmxPg== - dependencies: - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.6" - tslib "^2.8.1" - -"@peculiar/asn1-x509@^2.3.13": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.7.0.tgz#84793efb7819dbc9526fd6b0a4ccd86f90464b96" - integrity sha512-mUn9RRrkGDnG4ALfunDmzyRW5dg+sWCj/pfnCCqEHYbkGxEpvUt6iVJv8Yw1cyp6SWZ26ZE5oSmI5SqEaen15g== - dependencies: - "@peculiar/asn1-schema" "^2.7.0" - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.6" - tslib "^2.8.1" - -"@peculiar/utils@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@peculiar/utils/-/utils-2.0.3.tgz#a27ca4c4b73652e110f19a7d16d664f458a5528e" - integrity sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ== - dependencies: - tslib "^2.8.1" - -"@phala/dcap-qvl@^0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@phala/dcap-qvl/-/dcap-qvl-0.3.9.tgz#34da2506c31954cd290afb5a46146cd52ae24481" - integrity sha512-s/4gAFVq1DRhYkuerDR9WAlX8tkCpFTHTVpWnWlrigj5la2X5OtQl9Y7PzwcqY4h0fc25yqZrcRH3AZpzB1qOw== - dependencies: - "@peculiar/asn1-schema" "^2.3.13" - "@peculiar/asn1-x509" "^2.3.13" - asn1.js "^5.4.1" - bn.js "^5.2.2" - buffer "^6.0.3" - elliptic "^6.6.1" - hash.js "^1.1.7" - node-fetch "^2.7.0" - -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - -"@solana-program/address-lookup-table@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" - integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== - -"@solana-program/compute-budget@^0.18.0": - version "0.18.1" - resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" - integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== - -"@solana-program/loader-v3@^0.6.0": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" - integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== - -"@solana-program/stake@^0.9.0": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" - integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== - -"@solana-program/system@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" - integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== - -"@solana/accounts@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" - integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/addresses@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" - integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" - integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/buffer-layout-utils@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz#b45a6cab3293a2eb7597cceb474f229889d875ca" - integrity sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g== - dependencies: - "@solana/buffer-layout" "^4.0.0" - "@solana/web3.js" "^1.32.0" - bigint-buffer "^1.1.5" - bignumber.js "^9.0.1" - -"@solana/buffer-layout@^4.0.0", "@solana/buffer-layout@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" - integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== - dependencies: - buffer "~6.0.3" - -"@solana/codecs-core@2.0.0-rc.1": - version "2.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-2.0.0-rc.1.tgz#1a2d76b9c7b9e7b7aeb3bd78be81c2ba21e3ce22" - integrity sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ== - dependencies: - "@solana/errors" "2.0.0-rc.1" - -"@solana/codecs-core@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-2.3.0.tgz#6bf2bb565cb1ae880f8018635c92f751465d8695" - integrity sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw== - dependencies: - "@solana/errors" "2.3.0" - -"@solana/codecs-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" - integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/codecs-data-structures@2.0.0-rc.1": - version "2.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-2.0.0-rc.1.tgz#d47b2363d99fb3d643f5677c97d64a812982b888" - integrity sha512-rinCv0RrAVJ9rE/rmaibWJQxMwC5lSaORSZuwjopSUE6T0nb/MVg6Z1siNCXhh/HFTOg0l8bNvZHgBcN/yvXog== - dependencies: - "@solana/codecs-core" "2.0.0-rc.1" - "@solana/codecs-numbers" "2.0.0-rc.1" - "@solana/errors" "2.0.0-rc.1" - -"@solana/codecs-data-structures@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" - integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@2.0.0-rc.1": - version "2.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.0.0-rc.1.tgz#f34978ddf7ea4016af3aaed5f7577c1d9869a614" - integrity sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ== - dependencies: - "@solana/codecs-core" "2.0.0-rc.1" - "@solana/errors" "2.0.0-rc.1" - -"@solana/codecs-numbers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" - integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@^2.1.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz#ac7e7f38aaf7fcd22ce2061fbdcd625e73828dc6" - integrity sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg== - dependencies: - "@solana/codecs-core" "2.3.0" - "@solana/errors" "2.3.0" - -"@solana/codecs-strings@2.0.0-rc.1": - version "2.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-2.0.0-rc.1.tgz#e1d9167075b8c5b0b60849f8add69c0f24307018" - integrity sha512-9/wPhw8TbGRTt6mHC4Zz1RqOnuPTqq1Nb4EyuvpZ39GW6O2t2Q7Q0XxiB3+BdoEjwA2XgPw6e2iRfvYgqty44g== - dependencies: - "@solana/codecs-core" "2.0.0-rc.1" - "@solana/codecs-numbers" "2.0.0-rc.1" - "@solana/errors" "2.0.0-rc.1" - -"@solana/codecs-strings@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" - integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs@2.0.0-rc.1": - version "2.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-2.0.0-rc.1.tgz#146dc5db58bd3c28e04b4c805e6096c2d2a0a875" - integrity sha512-qxoR7VybNJixV51L0G1RD2boZTcxmwUWnKCaJJExQ5qNKwbpSyDdWfFJfM5JhGyKe9DnPVOZB+JHWXnpbZBqrQ== - dependencies: - "@solana/codecs-core" "2.0.0-rc.1" - "@solana/codecs-data-structures" "2.0.0-rc.1" - "@solana/codecs-numbers" "2.0.0-rc.1" - "@solana/codecs-strings" "2.0.0-rc.1" - "@solana/options" "2.0.0-rc.1" - -"@solana/codecs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" - integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/options" "8.3.0" - -"@solana/errors@2.0.0-rc.1": - version "2.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.0.0-rc.1.tgz#3882120886eab98a37a595b85f81558861b29d62" - integrity sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ== - dependencies: - chalk "^5.3.0" - commander "^12.1.0" - -"@solana/errors@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.3.0.tgz#4ac9380343dbeffb9dffbcb77c28d0e457c5fa31" - integrity sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ== - dependencies: - chalk "^5.4.1" - commander "^14.0.0" - -"@solana/errors@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" - integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== - dependencies: - chalk "5.6.2" - commander "15.0.0" - -"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" - integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== - -"@solana/fixed-points@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" - integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/functional@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" - integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== - -"@solana/instruction-plans@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" - integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/instructions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" - integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/keys@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" - integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/kit@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" - integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/plugin-core" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/program-client-core" "8.3.0" - "@solana/programs" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/subscribable" "8.3.0" - "@solana/sysvars" "8.3.0" - "@solana/transaction-confirmation" "8.3.0" - "@solana/transaction-introspection" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/nominal-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" - integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== - -"@solana/offchain-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" - integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/options@2.0.0-rc.1": - version "2.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@solana/options/-/options-2.0.0-rc.1.tgz#06924ba316dc85791fc46726a51403144a85fc4d" - integrity sha512-mLUcR9mZ3qfHlmMnREdIFPf9dpMc/Bl66tLSOOWxw4ml5xMT2ohFn7WGqoKcu/UHkT9CrC6+amEdqCNvUqI7AA== - dependencies: - "@solana/codecs-core" "2.0.0-rc.1" - "@solana/codecs-data-structures" "2.0.0-rc.1" - "@solana/codecs-numbers" "2.0.0-rc.1" - "@solana/codecs-strings" "2.0.0-rc.1" - "@solana/errors" "2.0.0-rc.1" - -"@solana/options@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" - integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/plugin-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" - integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== - -"@solana/plugin-interfaces@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" - integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/program-client-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" - integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/signers" "8.3.0" - -"@solana/programs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" - integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/promises@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" - integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== - -"@solana/rpc-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" - integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-parsed-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" - integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== - -"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" - integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/rpc-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" - integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" - integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-subscriptions-channel-websocket@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" - integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/subscribable" "8.3.0" - ws "^8.21.3" - -"@solana/rpc-subscriptions-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" - integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" - integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions-api" "8.3.0" - "@solana/rpc-subscriptions-channel-websocket" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-transformers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" - integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/rpc-transport-http@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" - integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - undici-types "^8.10.2" - -"@solana/rpc-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" - integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/rpc@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" - integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-transport-http" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/signers@8.3.0", "@solana/signers@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" - integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/spl-token-group@^0.0.7": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@solana/spl-token-group/-/spl-token-group-0.0.7.tgz#83c00f0cd0bda33115468cd28b89d94f8ec1fee4" - integrity sha512-V1N/iX7Cr7H0uazWUT2uk27TMqlqedpXHRqqAbVO2gvmJyT0E0ummMEAVQeXZ05ZhQ/xF39DLSdBp90XebWEug== - dependencies: - "@solana/codecs" "2.0.0-rc.1" - -"@solana/spl-token-metadata@^0.1.6": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@solana/spl-token-metadata/-/spl-token-metadata-0.1.6.tgz#d240947aed6e7318d637238022a7b0981b32ae80" - integrity sha512-7sMt1rsm/zQOQcUWllQX9mD2O6KhSAtY1hFR2hfFwgqfFWzSY9E9GDvFVNYUI1F0iQKcm6HmePU9QbKRXTEBiA== - dependencies: - "@solana/codecs" "2.0.0-rc.1" - -"@solana/spl-token@^0.4.14": - version "0.4.14" - resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.4.14.tgz#b86bc8a17f50e9680137b585eca5f5eb9d55c025" - integrity sha512-u09zr96UBpX4U685MnvQsNzlvw9TiY005hk1vJmJr7gMJldoPG1eYU5/wNEyOA5lkMLiR/gOi9SFD4MefOYEsA== - dependencies: - "@solana/buffer-layout" "^4.0.0" - "@solana/buffer-layout-utils" "^0.2.0" - "@solana/spl-token-group" "^0.0.7" - "@solana/spl-token-metadata" "^0.1.6" - buffer "^6.0.3" - -"@solana/subscribable@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" - integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/sysvars@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" - integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transaction-confirmation@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" - integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-introspection@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" - integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" - integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transactions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" - integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - -"@solana/web3.js@3.0.0-rc.3": - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" - integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@solana-program/address-lookup-table" "^0.14.0" - "@solana-program/compute-budget" "^0.18.0" - "@solana-program/loader-v3" "^0.6.0" - "@solana-program/stake" "^0.9.0" - "@solana-program/system" "^0.14.0" - "@solana/assertions" "^8.2.0" - "@solana/fast-stable-stringify" "^8.2.0" - "@solana/kit" "^8.2.0" - "@solana/rpc-spec-types" "^8.2.0" - "@solana/signers" "^8.2.0" - -"@solana/web3.js@^1.32.0", "@solana/web3.js@^1.69.0", "@solana/web3.js@^1.98.0": - version "1.98.4" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" - integrity sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw== - 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.1.0" - agentkeepalive "^4.5.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.1.1" - node-fetch "^2.7.0" - rpc-websockets "^9.0.2" - superstruct "^2.0.2" - -"@swc/helpers@^0.5.11": - version "0.5.21" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.21.tgz#0b1b020317ee1282860ca66f7e9a7c7790f05ae0" - integrity sha512-jI/VAmtdjB/RnI8GTnokyX7Ug8c+g+ffD6QRLa6XQewtnGyukKkKSk3wLTM3b5cjt1jNh9x0jfVlagdN2gDKQg== - dependencies: - tslib "^2.8.0" - -"@tsconfig/node10@^1.0.7": - version "1.0.12" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.12.tgz#be57ceac1e4692b41be9de6be8c32a106636dba4" - integrity sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@types/bn.js@^5.1.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.2.0.tgz#4349b9710e98f9ab3cdc50f1c5e4dcbd8ef29c80" - integrity sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q== - dependencies: - "@types/node" "*" - -"@types/chai@^5.2.2": - version "5.2.3" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-5.2.3.tgz#8e9cd9e1c3581fa6b341a5aed5588eb285be0b4a" - integrity sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA== - dependencies: - "@types/deep-eql" "*" - assertion-error "^2.0.1" - -"@types/connect@^3.4.33": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" - integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== - dependencies: - "@types/node" "*" - -"@types/deep-eql@*": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/deep-eql/-/deep-eql-4.0.2.tgz#334311971d3a07121e7eb91b684a605e7eea9cbd" - integrity sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw== - -"@types/mocha@^10.0.10": - version "10.0.10" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.10.tgz#91f62905e8d23cbd66225312f239454a23bebfa0" - integrity sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q== - -"@types/node@*": - version "25.8.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-25.8.0.tgz#d13033397d1c186876bed4c9b9d7f3f962097eb3" - integrity sha512-TCFSk8IZh+iLX1xtksoBVtdmgL+1IX0fC9BeU4QqFSuNdN/K+HUlhqOzEmSYYpZUVsLYcPqc9KX+60iDuninSQ== - dependencies: - undici-types ">=7.24.0 <7.24.7" - -"@types/node@^12.12.54": - version "12.20.55" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - -"@types/uuid@^10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-10.0.0.tgz#e9c07fe50da0f53dc24970cca94d619ff03f6f6d" - integrity sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ== - -"@types/ws@^7.4.4": - version "7.4.7" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - dependencies: - "@types/node" "*" - -"@types/ws@^8.2.2": - version "8.18.1" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" - integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== - dependencies: - "@types/node" "*" - -acorn-walk@^8.1.1: - version "8.3.5" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.5.tgz#8a6b8ca8fc5b34685af15dabb44118663c296496" - integrity sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw== - dependencies: - acorn "^8.11.0" - -acorn@^8.11.0, acorn@^8.4.1: - version "8.16.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.16.0.tgz#4ce79c89be40afe7afe8f3adb902a1f1ce9ac08a" - integrity sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw== - -agentkeepalive@^4.5.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" - integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== - dependencies: - humanize-ms "^1.2.1" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" - integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^6.1.0: - version "6.2.3" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" - integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -asn1.js@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1js@^3.0.6: - version "3.0.10" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.10.tgz#df26c874c8a8b41ca605efea47b2ad07551013dd" - integrity sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg== - dependencies: - pvtsutils "^1.3.6" - pvutils "^1.1.5" - tslib "^2.8.1" - -assertion-error@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" - integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base-x@^3.0.2: - version "3.0.11" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.11.tgz#40d80e2a1aeacba29792ccc6c5354806421287ff" - integrity sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA== - dependencies: - safe-buffer "^5.0.1" - -base-x@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-5.0.1.tgz#16bf35254be1df8aca15e36b7c1dda74b2aa6b03" - integrity sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bigint-buffer@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/bigint-buffer/-/bigint-buffer-1.1.5.tgz#d038f31c8e4534c1f8d0015209bf34b4fa6dd442" - integrity sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA== - dependencies: - bindings "^1.3.0" - -bignumber.js@^9.0.1: - version "9.3.1" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.3.1.tgz#759c5aaddf2ffdc4f154f7b493e1c8770f88c4d7" - integrity sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ== - -bindings@^1.3.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bn.js@^4.0.0, bn.js@^4.11.9: - version "4.12.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.3.tgz#2cc2c679188eb35b006f2d0d4710bed8437a769e" - integrity sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g== - -bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1, bn.js@^5.2.2: - version "5.2.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.3.tgz#16a9e409616b23fef3ccbedb8d42f13bff80295e" - integrity sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w== - -borsh@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" - integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== - dependencies: - bn.js "^5.2.0" - bs58 "^4.0.0" - text-encoding-utf-8 "^1.0.2" - -brace-expansion@^2.0.2: - version "2.1.0" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.1.0.tgz#4f41a41190216ee36067ec381526fe9539c4f0ae" - integrity sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w== - dependencies: - balanced-match "^1.0.0" - -brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browser-stdout@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -bs58@^4.0.0, bs58@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - dependencies: - base-x "^3.0.2" - -bs58@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-6.0.0.tgz#a2cda0130558535dd281a2f8697df79caaf425d8" - integrity sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw== - dependencies: - base-x "^5.0.0" - -buffer-layout@^1.2.0, buffer-layout@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" - integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== - -buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -bufferutil@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.1.0.tgz#a4623541dd23867626bb08a051ec0d2ec0b70294" - integrity sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw== - dependencies: - node-gyp-build "^4.3.0" - -camelcase@^6.0.0, camelcase@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -chai@^5.2.0: - version "5.3.3" - resolved "https://registry.yarnpkg.com/chai/-/chai-5.3.3.tgz#dd3da955e270916a4bd3f625f4b919996ada7e06" - integrity sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw== - dependencies: - assertion-error "^2.0.1" - check-error "^2.1.1" - deep-eql "^5.0.1" - loupe "^3.1.0" - pathval "^2.0.0" - -chalk@5.6.2, chalk@^5.3.0, chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - -chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -check-error@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.3.tgz#2427361117b70cca8dc89680ead32b157019caf5" - integrity sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA== - -chokidar@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" - integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== - dependencies: - readdirp "^4.0.1" - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -commander@15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" - integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== - -commander@^12.1.0: - version "12.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" - integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== - -commander@^14.0.0: - version "14.0.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.3.tgz#425d79b48f9af82fcd9e4fc1ea8af6c5ec07bbc2" - integrity sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw== - -commander@^2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-fetch@^3.1.5: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" - integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== - dependencies: - node-fetch "^2.7.0" - -cross-spawn@^7.0.6: - version "7.0.6" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" - integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -debug@^4.3.5: - version "4.4.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" - integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== - dependencies: - ms "^2.1.3" - -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - -deep-eql@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" - integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== - -delay@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" - integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - -diff@^4.0.1: - version "4.0.4" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.4.tgz#7a6dbfda325f25f07517e9b518f897c08332e07d" - integrity sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ== - -diff@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-7.0.0.tgz#3fb34d387cd76d803f6eebea67b921dab0182a9a" - integrity sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw== - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -elliptic@^6.6.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" - integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== - dependencies: - es6-promise "^4.0.3" - -esbuild@~0.28.0: - version "0.28.0" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.28.0.tgz#5dee347ffb3e3874212a35a69836b077b1ce6d96" - integrity sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw== - optionalDependencies: - "@esbuild/aix-ppc64" "0.28.0" - "@esbuild/android-arm" "0.28.0" - "@esbuild/android-arm64" "0.28.0" - "@esbuild/android-x64" "0.28.0" - "@esbuild/darwin-arm64" "0.28.0" - "@esbuild/darwin-x64" "0.28.0" - "@esbuild/freebsd-arm64" "0.28.0" - "@esbuild/freebsd-x64" "0.28.0" - "@esbuild/linux-arm" "0.28.0" - "@esbuild/linux-arm64" "0.28.0" - "@esbuild/linux-ia32" "0.28.0" - "@esbuild/linux-loong64" "0.28.0" - "@esbuild/linux-mips64el" "0.28.0" - "@esbuild/linux-ppc64" "0.28.0" - "@esbuild/linux-riscv64" "0.28.0" - "@esbuild/linux-s390x" "0.28.0" - "@esbuild/linux-x64" "0.28.0" - "@esbuild/netbsd-arm64" "0.28.0" - "@esbuild/netbsd-x64" "0.28.0" - "@esbuild/openbsd-arm64" "0.28.0" - "@esbuild/openbsd-x64" "0.28.0" - "@esbuild/openharmony-arm64" "0.28.0" - "@esbuild/sunos-x64" "0.28.0" - "@esbuild/win32-arm64" "0.28.0" - "@esbuild/win32-ia32" "0.28.0" - "@esbuild/win32-x64" "0.28.0" - -escalade@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eventemitter3@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -eventemitter3@^5.0.1: - version "5.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.4.tgz#a86d66170433712dde814707ac52b5271ceb1feb" - integrity sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw== - -eyes@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" - integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== - -fast-stable-stringify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" - integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -foreground-child@^3.1.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" - integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== - dependencies: - cross-spawn "^7.0.6" - signal-exit "^4.0.1" - -fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -glob@^10.4.5: - version "10.5.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" - integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== - dependencies: - foreground-child "^3.1.0" - jackspeak "^3.1.2" - minimatch "^9.0.4" - minipass "^7.1.2" - package-json-from-dist "^1.0.0" - path-scurry "^1.11.1" - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - -jackspeak@^3.1.2: - version "3.4.3" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" - integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - -jayson@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.3.0.tgz#22eb8f3dcf37a5e893830e5451f32bde6d1bde4d" - integrity sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ== - dependencies: - "@types/connect" "^3.4.33" - "@types/node" "^12.12.54" - "@types/ws" "^7.4.4" - commander "^2.20.3" - delay "^5.0.0" - es6-promisify "^5.0.0" - eyes "^0.1.8" - isomorphic-ws "^4.0.1" - json-stringify-safe "^5.0.1" - stream-json "^1.9.1" - uuid "^8.3.2" - ws "^7.5.10" - -js-yaml@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" - integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== - dependencies: - argparse "^2.0.1" - -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -loupe@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.2.1.tgz#0095cf56dc5b7a9a7c08ff5b1a8796ec8ad17e76" - integrity sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ== - -lru-cache@^10.2.0: - version "10.4.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" - integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -minimatch@^9.0.4, minimatch@^9.0.5: - version "9.0.9" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.9.tgz#9b0cb9fcb78087f6fd7eababe2511c4d3d60574e" - integrity sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg== - dependencies: - brace-expansion "^2.0.2" - -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: - version "7.1.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.3.tgz#79389b4eb1bb2d003a9bba87d492f2bd37bdc65b" - integrity sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A== - -mocha@^11.2.2: - version "11.7.5" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.7.5.tgz#58f5bbfa5e0211ce7e5ee6128107cefc2515a627" - integrity sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig== - dependencies: - browser-stdout "^1.3.1" - chokidar "^4.0.1" - debug "^4.3.5" - diff "^7.0.0" - escape-string-regexp "^4.0.0" - find-up "^5.0.0" - glob "^10.4.5" - he "^1.2.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - log-symbols "^4.1.0" - minimatch "^9.0.5" - ms "^2.1.3" - picocolors "^1.1.1" - serialize-javascript "^6.0.2" - strip-json-comments "^3.1.1" - supports-color "^8.1.1" - workerpool "^9.2.0" - yargs "^17.7.2" - yargs-parser "^21.1.1" - yargs-unparser "^2.0.0" - -ms@^2.0.0, ms@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -node-fetch@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - -node-gyp-build@^4.3.0: - version "4.8.4" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" - integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -package-json-from-dist@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" - integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== - -pako@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" - integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-scurry@^1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" - integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== - dependencies: - lru-cache "^10.2.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - -pathval@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.1.tgz#8855c5a2899af072d6ac05d11e46045ad0dc605d" - integrity sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ== - -picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - prettier@^3.5.3: - version "3.8.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.8.3.tgz#560f2de55bf01b4c0503bc629d5df99b9a1d09b0" - integrity sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw== - -pvtsutils@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.6.tgz#ec46e34db7422b9e4fdc5490578c1883657d6001" - integrity sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg== - dependencies: - tslib "^2.8.1" - -pvutils@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.5.tgz#84b0dea4a5d670249aa9800511804ee0b7c2809c" - integrity sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -readdirp@^4.0.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" - integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -rpc-websockets@^9.0.2, rpc-websockets@^9.0.4: - version "9.3.9" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.3.9.tgz#88c9335158e0d30c8b96fb89ad674a3d373e04c0" - integrity sha512-2iQDaTB4g5fDB2ihrTFSJSibCEuxaRi1q7qTW7ZO9/M5/TC+ToHA4D9/ffNLEbAoHNNrcdeP05oATNk44SKZXA== - dependencies: - "@swc/helpers" "^0.5.11" - "@types/uuid" "^10.0.0" - "@types/ws" "^8.2.2" - buffer "^6.0.3" - eventemitter3 "^5.0.1" - uuid "^14.0.0" - ws "^8.5.0" - optionalDependencies: - bufferutil "^4.0.1" - utf-8-validate "^6.0.0" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -serialize-javascript@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" - integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== - dependencies: - randombytes "^2.1.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -stream-chain@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/stream-chain/-/stream-chain-2.2.5.tgz#b30967e8f14ee033c5b9a19bbe8a2cba90ba0d09" - integrity sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA== - -stream-json@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/stream-json/-/stream-json-1.9.1.tgz#e3fec03e984a503718946c170db7d74556c2a187" - integrity sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw== - dependencies: - stream-chain "^2.2.5" - -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.2.0.tgz#d22a269522836a627af8d04b5c3fd2c7fa3e32e3" - integrity sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w== - dependencies: - ansi-regex "^6.2.2" - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -superstruct@^0.15.4: - version "0.15.5" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" - integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== - -superstruct@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-2.0.2.tgz#3f6d32fbdc11c357deff127d591a39b996300c54" - integrity sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A== - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -text-encoding-utf-8@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" - integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== - -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -ts-mocha@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-11.1.0.tgz#d8336ec0146bd6f36cca2555f4cfc7df85bd1586" - integrity sha512-yT7FfzNRCu8ZKkYvAOiH01xNma/vLq6Vit7yINKYFNVP8e5UyrYXSOMIipERTpzVKJQ4Qcos5bQo1tNERNZevQ== - -ts-node@^10.9.2: - version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" - integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tslib@^2.8.0, tslib@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" - integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - -tsx@^4.22.0: - version "4.22.0" - resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.22.0.tgz#9588cadbf41915d4256ae3df69cb65210537f7ab" - integrity sha512-8ccZMPD69s1AbKXx0C5ddTNZfNjwV04iIKgjZmKfKxMynEtSYcK0Lh7iQFh53fI5Yu4pb9usgAiqyPmEONaALg== - dependencies: - esbuild "~0.28.0" - optionalDependencies: - fsevents "~2.3.3" - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -typescript@^5.3.0, typescript@^5.8.3: - version "5.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" - integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== - -"undici-types@>=7.24.0 <7.24.7": - version "7.24.6" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.24.6.tgz#61275b485d7fd4e9d269c7cf04ec2873c9cc0f91" - integrity sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg== - -undici-types@^8.10.2: - version "8.10.2" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" - integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== - -utf-8-validate@^6.0.0: - version "6.0.6" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-6.0.6.tgz#8a842c9b15af3f6323a3d5ed5eb9e61d208d8c22" - integrity sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA== - dependencies: - node-gyp-build "^4.3.0" - -uuid@^14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-14.0.0.tgz#0af883220163d264ffe0c084f6b8a89b9666966d" - integrity sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg== - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -workerpool@^9.2.0: - version "9.3.4" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-9.3.4.tgz#f6c92395b2141afd78e2a889e80cb338fe9fca41" - integrity sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg== - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - -ws@^7.5.10: - version "7.5.10" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" - integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== - -ws@^8.21.3: - version "8.21.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" - integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== - -ws@^8.5.0: - version "8.20.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.20.1.tgz#91a9ae2b312ccf98e0a85ec499b48cef45ab0ddb" - integrity sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs-unparser@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@^17.7.2: - version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + version "3.9.9" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.9.9.tgz#09b826918c91cd4cbc80e0cbd1d2a922ff04f233" + integrity sha512-Z/CJHIkdujO/OtN7nXUii0Rf3VT5SRuhjBA82Xvu2XhBUgX3nhP67T0LHceBdQLex7OOFGTox+Q5Yg8Jk2Qivg== diff --git a/test-utils/ts/package.json b/test-utils/ts/package.json deleted file mode 100644 index f6acc81b..00000000 --- a/test-utils/ts/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "@magicblock-labs/test-utils", - "version": "0.1.0", - "private": true, - "description": "Shared helpers for example tests", - "main": "dist/index.js", - "types": "src/index.ts", - "files": ["dist"], - "scripts": { - "build": "tsc", - "prepare": "tsc", - "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern \"src/**/*.ts\" --check", - "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern \"src/**/*.ts\" -w" - }, - "dependencies": { - "@coral-xyz/anchor": "0.32.1", - "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3", - "@magicblock-labs/magicsvm": "0.2.0" - }, - "devDependencies": { - "@types/node": "^20.17.0", - "prettier": "^3.5.3", - "typescript": "^5.8.3" - }, - "license": "MIT" -} diff --git a/test-utils/ts/src/index.ts b/test-utils/ts/src/index.ts deleted file mode 100644 index 50521328..00000000 --- a/test-utils/ts/src/index.ts +++ /dev/null @@ -1,369 +0,0 @@ -import { - AnchorProvider, - Program, - Wallet, - web3, - type Idl, -} from "@coral-xyz/anchor"; -import { DELEGATION_PROGRAM_ID } from "@magicblock-labs/ephemeral-rollups-sdk"; -import { - FailedTransactionMetadata, - MagicSVM, - TransactionMetadata, - type Address, - type SendableTransaction, - type TransactionTarget, -} from "@magicblock-labs/magicsvm"; -import * as fs from "fs"; -import * as path from "path"; - -export type { Address, TransactionTarget } from "@magicblock-labs/magicsvm"; - -export { - DELEGATION_PROGRAM_ID, - EPHEMERAL_VAULT_ID, - MAGIC_CONTEXT_ID, - MAGIC_PROGRAM_ID, - PERMISSION_PROGRAM_ID, - createCommitAndUndelegateInstruction, - createCommitInstruction, - createDelegateInstruction, - delegateBufferPdaFromDelegatedAccountAndOwnerProgram, - delegationMetadataPdaFromDelegatedAccount, - delegationRecordPdaFromDelegatedAccount, - permissionPdaFromAccount, -} from "@magicblock-labs/ephemeral-rollups-sdk"; - -/** - * Structural types so callers can pass `@solana/web3.js` v1 objects from any - * copy (Anchor, an app workspace, MagicsVM). Nominal `Keypair` / `PublicKey` - * types from nested installs are not compatible with each other. - */ -export type PublicKeyLike = { - equals?(other: unknown): boolean; - toBase58(): string; - toBuffer(): Buffer | Uint8Array; - toBytes(): Uint8Array; - toString(): string; -}; - -export type SignerLike = { - publicKey: PublicKeyLike; - secretKey: Uint8Array; -}; - -export interface TransactionLike { - feePayer?: unknown; - recentBlockhash?: string | null; - sign(...signers: SignerLike[]): unknown; -} - -export type InstructionLike = { - data: Buffer | Uint8Array; - keys: Array<{ - isSigner: boolean; - isWritable: boolean; - pubkey: PublicKeyLike | Address; - }>; - programId: PublicKeyLike | Address; -}; - -export function addressToBase58(address: PublicKeyLike | Address): string { - if (typeof address === "string") { - return address; - } - if ("toBase58" in address && typeof address.toBase58 === "function") { - return address.toBase58(); - } - return new web3.PublicKey(Buffer.from(address.toBytes())).toBase58(); -} - -function asWeb3PublicKey(address: PublicKeyLike | Address): web3.PublicKey { - if (address instanceof web3.PublicKey) { - return address; - } - if (typeof address === "string") { - return new web3.PublicKey(address); - } - if ("toBytes" in address) { - return new web3.PublicKey(Buffer.from(address.toBytes())); - } - return new web3.PublicKey(addressToBase58(address)); -} - -function isFailedTransactionMetadata( - result: unknown, -): result is FailedTransactionMetadata { - // MagicsVM is loaded once per example and once from this package. `instanceof` - // fails across those copies, so identify failures by constructor name. - return ( - typeof result === "object" && - result !== null && - (result as { constructor?: { name?: string } }).constructor?.name === - "FailedTransactionMetadata" - ); -} - -export function failOnSvmError( - result: unknown, - label = "transaction", -): asserts result is Exclude { - if (isFailedTransactionMetadata(result)) { - const logs = result.meta().logs().join("\n"); - throw new Error(`${label} failed: ${result.err()}\n${logs}`); - } -} - -function uniqueSigners(signers: SignerLike[]): SignerLike[] { - const seen = new Set(); - return signers.filter((signer) => { - const key = addressToBase58(signer.publicKey); - if (seen.has(key)) { - return false; - } - seen.add(key); - return true; - }); -} - -export function sendSvmTx( - svm: MagicSVM, - signers: SignerLike[], - tx: TransactionLike, - target: TransactionTarget = "base", - label = "transaction", -): TransactionMetadata { - const unique = uniqueSigners(signers); - tx.feePayer = unique[0].publicKey; - tx.recentBlockhash = svm.latestBlockhashFor({ target }); - tx.sign(...unique); - const result = svm.sendTransaction(tx as unknown as SendableTransaction, { - target, - }); - failOnSvmError(result, label); - svm.expireBlockhashFor({ target }); - return result as TransactionMetadata; -} - -function toWeb3Instruction(ix: InstructionLike): web3.TransactionInstruction { - return new web3.TransactionInstruction({ - data: Buffer.from(ix.data), - keys: ix.keys.map((key) => ({ - isSigner: key.isSigner, - isWritable: key.isWritable, - pubkey: asWeb3PublicKey(key.pubkey), - })), - programId: asWeb3PublicKey(ix.programId), - }); -} - -export function sendSvmIx( - svm: MagicSVM, - signers: SignerLike[], - instructions: InstructionLike | InstructionLike[], - target: TransactionTarget = "base", - label = "transaction", -): TransactionMetadata { - const ixs = Array.isArray(instructions) ? instructions : [instructions]; - return sendSvmTx( - svm, - signers.map((signer) => web3.Keypair.fromSecretKey(signer.secretKey)), - new web3.Transaction().add(...ixs.map(toWeb3Instruction)), - target, - label, - ); -} - -export function sendExpectingFailure( - svm: MagicSVM, - signers: SignerLike[], - instructions: InstructionLike | InstructionLike[], - target: TransactionTarget = "base", -): FailedTransactionMetadata { - const ixs = Array.isArray(instructions) ? instructions : [instructions]; - const unique = uniqueSigners(signers); - const tx = new web3.Transaction().add(...ixs.map(toWeb3Instruction)); - tx.feePayer = asWeb3PublicKey(unique[0].publicKey); - tx.recentBlockhash = svm.latestBlockhashFor({ target }); - tx.sign( - ...unique.map((signer) => web3.Keypair.fromSecretKey(signer.secretKey)), - ); - const result = svm.sendTransaction(tx, { target }); - svm.expireBlockhashFor({ target }); - if (!isFailedTransactionMetadata(result)) { - throw new Error("expected transaction to fail"); - } - return result; -} - -export function requireAccount( - svm: MagicSVM, - address: PublicKeyLike | Address, - target: TransactionTarget = "base", - label?: string, -) { - const account = svm.getAccountFor(addressToBase58(address), { target }); - if (!account.exists) { - throw new Error( - `expected ${label ?? addressToBase58(address)} to exist on ${target}`, - ); - } - return account; -} - -export function airdropOrThrow( - svm: MagicSVM, - address: PublicKeyLike | Address, - lamports: bigint, - label = "airdrop", -): void { - failOnSvmError(svm.airdrop(addressToBase58(address), lamports), label); -} - -export function programIdFromKeypairFile(keypairPath: string): string { - const secretKeyArray = Uint8Array.from( - JSON.parse(fs.readFileSync(keypairPath, "utf8")), - ); - return web3.Keypair.fromSecretKey(secretKeyArray).publicKey.toBase58(); -} - -export function loadJson(filePath: string): unknown { - return JSON.parse(fs.readFileSync(filePath, "utf8")); -} - -export function programSoPath(fromDir: string, programName: string): string { - return path.resolve(fromDir, "..", "target", "deploy", `${programName}.so`); -} - -export function programIdlPath(fromDir: string, programName: string): string { - return path.resolve(fromDir, "..", "target", "idl", `${programName}.json`); -} - -export function dummyAnchorProvider(payer: SignerLike): AnchorProvider { - return new AnchorProvider( - new web3.Connection("http://127.0.0.1:8899"), - new Wallet(web3.Keypair.fromSecretKey(payer.secretKey)), - { commitment: "confirmed" }, - ); -} - -export function loadAnchorProgram( - idl: T, - payer: SignerLike, -): Program { - return new Program(idl, dummyAnchorProvider(payer)); -} - -export function validatorPubkey(svm: MagicSVM): string { - return addressToBase58(svm.validatorIdentity()); -} - -export function validatorRemainingAccount(svm: MagicSVM): { - pubkey: web3.PublicKey; - isSigner: false; - isWritable: false; -} { - return { - pubkey: new web3.PublicKey(validatorPubkey(svm)), - isSigner: false, - isWritable: false, - }; -} - -export function readU64le( - svm: MagicSVM, - address: PublicKeyLike | Address, - target: TransactionTarget = "base", - offset = 8, -): bigint { - return Buffer.from(requireAccount(svm, address, target).data).readBigUInt64LE( - offset, - ); -} - -export function accountOwner( - svm: MagicSVM, - address: PublicKeyLike | Address, - target: TransactionTarget = "base", -): string { - return requireAccount(svm, address, target).programAddress.toString(); -} - -export function isDelegated( - svm: MagicSVM, - address: PublicKeyLike | Address, - target: TransactionTarget = "base", -): boolean { - const account = svm.getAccountFor(addressToBase58(address), { target }); - return ( - account.exists && - account.programAddress.toString() === DELEGATION_PROGRAM_ID.toString() - ); -} - -export function setUnixTimestamp( - svm: MagicSVM, - unix: bigint | number = Math.floor(Date.now() / 1000), -): void { - const clock = svm.getClock(); - clock.unixTimestamp = BigInt(unix); - svm.setClock(clock); -} - -export function createSvm(opts: { - programs: Array<{ id: PublicKeyLike | Address; so: string }>; - airdrops?: Array<{ - address: PublicKeyLike | Address; - lamports: bigint; - label?: string; - }>; -}): { svm: MagicSVM; validator: string } { - const svm = new MagicSVM(); - for (const program of opts.programs) { - svm.addProgramFromFile(addressToBase58(program.id), program.so); - } - for (const drop of opts.airdrops ?? []) { - airdropOrThrow(svm, drop.address, drop.lamports, drop.label); - } - return { svm, validator: validatorPubkey(svm) }; -} - -export function bootAnchorSvm(opts: { - fromDir: string; - programName: string; - payer?: SignerLike; - airdropLamports?: bigint; - extraPrograms?: Array<{ id: PublicKeyLike | Address; so: string }>; - idl?: T; -}): { - svm: MagicSVM; - payer: web3.Keypair; - program: Program; - validator: string; -} { - const payer = opts.payer - ? web3.Keypair.fromSecretKey(opts.payer.secretKey) - : web3.Keypair.generate(); - const idl = - opts.idl ?? (loadJson(programIdlPath(opts.fromDir, opts.programName)) as T); - const program = loadAnchorProgram(idl, payer); - const { svm, validator } = createSvm({ - programs: [ - { - id: program.programId, - so: programSoPath(opts.fromDir, opts.programName), - }, - ...(opts.extraPrograms ?? []), - ], - airdrops: - opts.airdropLamports == null - ? undefined - : [ - { - address: payer.publicKey, - lamports: opts.airdropLamports, - }, - ], - }); - return { svm, payer, program, validator }; -} diff --git a/test-utils/ts/tsconfig.json b/test-utils/ts/tsconfig.json deleted file mode 100644 index 1286b6dc..00000000 --- a/test-utils/ts/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "compilerOptions": { - "target": "es2020", - "module": "commonjs", - "declaration": true, - "outDir": "dist", - "rootDir": "src", - "strict": true, - "esModuleInterop": true, - "skipLibCheck": true, - "types": ["node"] - }, - "include": ["src/**/*.ts"] -} diff --git a/test-utils/ts/yarn.lock b/test-utils/ts/yarn.lock deleted file mode 100644 index 38e54067..00000000 --- a/test-utils/ts/yarn.lock +++ /dev/null @@ -1,1186 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/runtime@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.7.tgz#12022450c45a4da6d8d8287b18a4ff2ddb23f768" - integrity sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw== - -"@coral-xyz/anchor-errors@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" - integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== - -"@coral-xyz/anchor@0.32.1": - version "0.32.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" - integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== - dependencies: - "@coral-xyz/anchor-errors" "^0.31.1" - "@coral-xyz/borsh" "^0.31.1" - "@noble/hashes" "^1.3.1" - "@solana/web3.js" "^1.69.0" - bn.js "^5.1.2" - bs58 "^4.0.1" - buffer-layout "^1.2.2" - camelcase "^6.3.0" - cross-fetch "^3.1.5" - eventemitter3 "^4.0.7" - pako "^2.0.3" - superstruct "^0.15.4" - toml "^3.0.0" - -"@coral-xyz/borsh@^0.31.1": - version "0.31.1" - resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.31.1.tgz#5328e1e0921b75d7f4a62dd3f61885a938bc7241" - integrity sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw== - dependencies: - bn.js "^5.1.2" - buffer-layout "^1.2.0" - -"@magicblock-labs/ephemeral-rollups-sdk@0.14.3": - version "0.14.3" - resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.14.3.tgz#536c215d1daefdbcfa82a79304b08f5014405c58" - integrity sha512-CoByiXHLLS+l7Ojl6XJuYypP/k08ymFkab8+Gh/HCv5Gn2oC4VkwszEQoTDnKo++8Oxbqr9YVGzAMUW4Km7cLA== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@phala/dcap-qvl" "^0.3.9" - "@solana/web3.js" "^1.98.0" - bs58 "^6.0.0" - rpc-websockets "^9.0.4" - tweetnacl "^1.0.3" - typescript "^5.3.0" - -"@magicblock-labs/magicsvm-darwin-arm64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.2.0.tgz#f7b7d33ae637cc68a0db671052d3ad19603c1ba8" - integrity sha512-F/ZUzBxJbT4xeU4ArCMoBecd/vqwH2d7e2PY8uXSDdE37jZg2ShHkJKufCBOPMpcGRfAvomL3T2mb9aEehArMQ== - -"@magicblock-labs/magicsvm-darwin-x64@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.2.0.tgz#000818467f3f5b732ad0b3cd48a1de303aaf6ae3" - integrity sha512-r4XfEZMNvKosNBbC5kcr0CTHF8KFVkR1VZFdaUtAeQmkbqs6X6nKylskoeh6fi14vd2j5nbT3Dg5LMdSYQJKEw== - -"@magicblock-labs/magicsvm-linux-arm64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.2.0.tgz#9b5f13243aa15fe7614b3b48d5cc740daf4e3cc3" - integrity sha512-RIyrJQ1aCtIqOx7wleFsTvmwoqXyOLjAymiqb75ojpBhzyaPkwLAi/2l2zyRdcS4HjR4BkY4kX/nDWW+7QN44A== - -"@magicblock-labs/magicsvm-linux-arm64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.2.0.tgz#ece5cf6bbc0db343c21ec2dd2bd7f0fdae6eb4c1" - integrity sha512-x2yNlMSSE6yw4sIGxvVD5gtEeJFdPaqFN9CD+TB/robapOsexysLECRXYN0nPtYHW0CG3MdhHgi/1JnKPBe+XQ== - -"@magicblock-labs/magicsvm-linux-x64-gnu@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.2.0.tgz#329ccc2afb7d6a060584cc3479a8fec1b12115a5" - integrity sha512-wQuZPYl7craC8+Gqx8bWpBhfpS6F1RG98MmrEk6A73vHym5h7I69H6+QOxzDXrX9ixjGvg6CRebm2E+vN1O0/w== - -"@magicblock-labs/magicsvm-linux-x64-musl@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.2.0.tgz#f13e86935676f12fd404091a0efc020aebbccba5" - integrity sha512-ldDlZJ1Nn+UA3G3UEjn0QnzBJogk4X8pigs0/V4SHCMoYkf3ZbQ/hgbfbwd0sA8DjPuxoPyb34RaJPcVpPF1Jw== - -"@magicblock-labs/magicsvm@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.2.0.tgz#34da16dd7d94f359729a7c0b3d7dbe5a4f2fa47b" - integrity sha512-r/thydsP2kUPhiZo2Cuqa7QBUsB7JdZjEYXiVRrZOof6X03DWCOgN9iZejkZbqhMe4MuhSnSKMygrCpUQHXQVw== - dependencies: - "@solana/web3.js" "3.0.0-rc.3" - optionalDependencies: - "@magicblock-labs/magicsvm-darwin-arm64" "0.2.0" - "@magicblock-labs/magicsvm-darwin-x64" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-arm64-musl" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-gnu" "0.2.0" - "@magicblock-labs/magicsvm-linux-x64-musl" "0.2.0" - -"@noble/curves@^1.4.2", "@noble/curves@^1.9.7": - version "1.9.7" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" - integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== - dependencies: - "@noble/hashes" "1.8.0" - -"@noble/hashes@1.8.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0", "@noble/hashes@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" - integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== - -"@peculiar/asn1-schema@^2.3.13", "@peculiar/asn1-schema@^2.9.4": - version "2.9.4" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.9.4.tgz#99003d4bc87ec2ed2c4deb2843404496a912c3cf" - integrity sha512-GjzePcT9Iw8NzeOPf73iNS9xM+TBhd/FilAfP+RQGkTMQJTVWtytN3JHJACCjf/ABNau5S7mS3g+DcuxmRgYEg== - dependencies: - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.10" - tslib "^2.8.1" - -"@peculiar/asn1-x509@^2.3.13": - version "2.9.4" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.9.4.tgz#f997898c48ba6536bed640f788734d36477c21ad" - integrity sha512-CxhBo/RdEbMMob7T31ZdQjGuoyRFLVwrDzTn25bihzBasRg9kRm/0IxIPvhgQtcK/9dNcO1XQL2fuPugwELL0Q== - dependencies: - "@peculiar/asn1-schema" "^2.9.4" - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.10" - tslib "^2.8.1" - -"@peculiar/utils@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@peculiar/utils/-/utils-2.0.3.tgz#a27ca4c4b73652e110f19a7d16d664f458a5528e" - integrity sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ== - dependencies: - tslib "^2.8.1" - -"@phala/dcap-qvl@^0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@phala/dcap-qvl/-/dcap-qvl-0.3.9.tgz#34da2506c31954cd290afb5a46146cd52ae24481" - integrity sha512-s/4gAFVq1DRhYkuerDR9WAlX8tkCpFTHTVpWnWlrigj5la2X5OtQl9Y7PzwcqY4h0fc25yqZrcRH3AZpzB1qOw== - dependencies: - "@peculiar/asn1-schema" "^2.3.13" - "@peculiar/asn1-x509" "^2.3.13" - asn1.js "^5.4.1" - bn.js "^5.2.2" - buffer "^6.0.3" - elliptic "^6.6.1" - hash.js "^1.1.7" - node-fetch "^2.7.0" - -"@solana-program/address-lookup-table@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.14.1.tgz#77922d9bbdf2f6d3e7c22c121c9e5d516ef632e2" - integrity sha512-bYhSDq3lKB/kOIyx5jd91DwyDZH3GeBTpZaIO2YQC0ivFepPK4TWNwqFvdRfZ5wm5/70sp9Fs3lQeewUqVhXHA== - -"@solana-program/compute-budget@^0.18.0": - version "0.18.1" - resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.18.1.tgz#f1dc18d28ef42ede5806dc948b89c1e53ed19bad" - integrity sha512-ZVWknu3XvF6NI3zAuT6TXV19lQ7iDPzToM9gwI6KnUlnzHHP3u7IAIzDM7hLueQ6T7vLGjIUjYFCVg4mLHRZcg== - -"@solana-program/loader-v3@^0.6.0": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@solana-program/loader-v3/-/loader-v3-0.6.1.tgz#d514221ab6399b2da1630ab7150185a87e377b2e" - integrity sha512-UdRqSVllXnMcVjybHA0/ZwcqgvijVuGqcsAxOjusveFM5HEFYxrgt3D01g/1rtsIX24IirV1y5NkfitI2I95Uw== - -"@solana-program/stake@^0.9.0": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.9.1.tgz#cee55dadf982ab7b24fdef6c0248a12b68d96884" - integrity sha512-iguVMu4a4minZM9+7ttciKFVpoq4QOKbmsK2RxhwzauDuXhqYEJufk8GSXvZt3Q3ec7qep2Jq09SfCmutFtuwg== - -"@solana-program/system@^0.14.0": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.14.1.tgz#9c035233cc55b4ca6e57bd8a1d0dd66043af4135" - integrity sha512-K6ZiIrAKoJAfcwfUdsoFvfSAxeRJaRrV7BPFTJvUVRS4m3zszN+nLcdaNMMe2F1/zTriZqC+xh+Kgw6ziGUqpQ== - -"@solana/accounts@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-8.3.0.tgz#15b283c7bc7702934b1a5514e228267b0621b687" - integrity sha512-HNVCs4yyE5kTRHVD3ApuKuByuO85GHE6Ns7I/yMB9vXhFgZjGzFhOGi/YCjlWpIk3RqTyX7wGniHyEb49R3ELQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/addresses@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-8.3.0.tgz#55de3748be2483e38f26c6f7a53135d269c9ddde" - integrity sha512-HSAPbu5TpHYZqUo9SBALvDeOyfU1Cdtk9PCmxv+YjclNuDVbh+yMnesZ614zjhKJ8clvyidWSgmISjlFCJv6qA== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/assertions@8.3.0", "@solana/assertions@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-8.3.0.tgz#3edae9b999374097a103ed0b32211ab5eec8f514" - integrity sha512-6NI79X6VANpq1b1BAnQevCs63dW4l3XKSbikVd5k8mlIsURlCTFdtrbXfQInqsUWZJWElf7ZLQu7RkbBOj6wuw== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/buffer-layout@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" - integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== - dependencies: - buffer "~6.0.3" - -"@solana/codecs-core@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-5.5.1.tgz#1b2619c697ad04c99f98cc468135d584b7e2b16d" - integrity sha512-TgBt//bbKBct0t6/MpA8ElaOA3sa8eYVvR7LGslCZ84WiAwwjCY0lW/lOYsFHJQzwREMdUyuEyy5YWBKtdh8Rw== - dependencies: - "@solana/errors" "5.5.1" - -"@solana/codecs-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-8.3.0.tgz#d07e63a6a861b4023df83457afcf682c26b63319" - integrity sha512-rpt01CPeF4FhTTJHyr0Tr4n8U1shYPhe7q2mcmTYyKPATYAkyb5CLHnYKnN6LO71EZSFq3Y2Wm27rwWcBvAJzg== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/codecs-data-structures@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-8.3.0.tgz#e644ef57c85b9363e02175be55e3289743a61965" - integrity sha512-ojwHBnDia6VtkoCzppJGXJ1JZkQ4teYToTRu0e4N5dEkZlFU5EmpeX+1xsw7gu4bR9cNXXMWbWw4uFgVM8Nd6Q== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-8.3.0.tgz#8f5e07340466ebc238b19749af2655fe6cd11c02" - integrity sha512-12u+Y9ERE+gqraV1g0BP/5QxbamukFub05kyj3d3s6V/26ZEby6ReHJ8yuKtPl9fIUnfoQ2M4+th/7u5+5v14w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs-numbers@^5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-5.5.1.tgz#6ebc43250133ceb7836f1ac5780a7767e383efde" - integrity sha512-rllMIZAHqmtvC0HO/dc/21wDuWaD0B8Ryv8o+YtsICQBuiL/0U4AGwH7Pi5GNFySYk0/crSuwfIqQFtmxNSPFw== - dependencies: - "@solana/codecs-core" "5.5.1" - "@solana/errors" "5.5.1" - -"@solana/codecs-strings@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-8.3.0.tgz#23b72b90256bb99e85a22b4416429b2943ee595a" - integrity sha512-S7rZrc1B90AS0QVRlo6+6cX2t+0TGtsadsPWdfA7tXcaDKQfQn4C/6OJxJ7/n8ugw8LMgGC+Xcs81ii4nIp6aQ== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/codecs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-8.3.0.tgz#94995059e1d43a69520901c228289df2521a52ea" - integrity sha512-BtiHdl7pDw6tadQAn3Vi1s0wgp0BGQ3ndTQRBtxuwmyCzlGfyuvMBq+ynkuGWwknvOpU2eTNEO84U/b7wqLB7w== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/options" "8.3.0" - -"@solana/errors@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-5.5.1.tgz#1c17bc822264fd5a6305d8bfb9d597858e4ce17b" - integrity sha512-vFO3p+S7HoyyrcAectnXbdsMfwUzY2zYFUc2DEe5BwpiE9J1IAxPBGjOWO6hL1bbYdBrlmjNx8DXCslqS+Kcmg== - dependencies: - chalk "5.6.2" - commander "14.0.2" - -"@solana/errors@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-8.3.0.tgz#0a3804c4d03c47a1afb5335f3a97929791116f82" - integrity sha512-XsoQ5ThBOwfMz1KS7I2zZoduLxUYFe+NHuRAm/gt+uk44nnXqwzNJHo/9GEMqJqxafViqvfRZ35GF1fDkwW32Q== - dependencies: - chalk "5.6.2" - commander "15.0.0" - -"@solana/fast-stable-stringify@8.3.0", "@solana/fast-stable-stringify@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-8.3.0.tgz#479489d983cdf200ebb656885b3c5b668665279b" - integrity sha512-QVVSFQPLJaFeUFekWHe04TUr5rL2QbgPCEK0HcmlOLgCWTvduwj1D9e73jjYzL5HU1QRyUfzkw+GnSw95nvjLg== - -"@solana/fixed-points@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-8.3.0.tgz#53213b0d6fe79a466d48d96a52b607ed615c1e4b" - integrity sha512-cah+OuTSXqSMRlTQdj3sQmf7RK1m2RG50RzSgLFWeAAl+WCsoR4pyGPFxhQMw9JdaniqOUkKKB3ppxTMgfoHEg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/functional@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-8.3.0.tgz#e4ac97bf4ef63f3252b60a2aa8610041e0a0bcba" - integrity sha512-HBtC8tA8q73JQYHFaNROGiBLcwPcbQHldN7f1NqCgYY9x/iIt/zvWPeoxiRkncYCE9MwDLyWMq3LnetjqOifOA== - -"@solana/instruction-plans@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-8.3.0.tgz#8e5637afc23e2d860096d4c55d4833381d06ec07" - integrity sha512-ltuS+fTWsNQokFxK8StQzn/ZDkrR/P4Pao5EpQxYHPQQ+Z83g61kWFEnR+bB9WBDUZwu2CJptNXItKSgGOWwmg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/instructions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-8.3.0.tgz#ecb3f9288837952a765961a25f6ce3d4bfcbc98f" - integrity sha512-piAAqqC5NEvN2Mf2FP6PWogl8qCVg/2cEt+LKyq89P0sNbaeMPK11wGcZR6e3LEBMBSnjAw4DbDerDWg6GC0eg== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/keys@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-8.3.0.tgz#11e982cdad01a534dedd7c821dff7afacdda8e47" - integrity sha512-Fs8rtmxliPlDu/6iJniU4FfvUfD63OSxIAbMv2CyNvK9fg7dmQ9fUEBuK3WpwAlpKwhEHCzaFSWNUaB2SmeviQ== - dependencies: - "@solana/assertions" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/kit@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-8.3.0.tgz#d7ff2aba816abd17333db5b9e1118bae98b2cf8f" - integrity sha512-2T2QaO+0/CeZnPMsjv/bGhBSEiBCMY6V/Qi0xhFF/+8yCH8tkzM/kgE7fX5JlrR3gZpl9Bu+C62KTqnvk/bcjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/plugin-core" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/program-client-core" "8.3.0" - "@solana/programs" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/subscribable" "8.3.0" - "@solana/sysvars" "8.3.0" - "@solana/transaction-confirmation" "8.3.0" - "@solana/transaction-introspection" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/nominal-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-8.3.0.tgz#229cf290329b0d696eca437fcc8985b8818a4b6c" - integrity sha512-x2aCcMwe6C2tQNq4pAhx4bEd2zhrm3i7DjkdAJAPVCtPKd6ecO6iaV+53/RvE2ImZ0E9aVB41lPV8ZM0dMhRiw== - -"@solana/offchain-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-8.3.0.tgz#2b5335aa8921856505356a97791aef18af370479" - integrity sha512-zpwwQRTX+aBF97fgZW+T+grZWqKbCMa6moDnYHsCkQg67nCeb9OrPtZxMbCT5bP+kDgMTq2URQwS1NcZOwut+Q== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/options@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/options/-/options-8.3.0.tgz#eed66f4c7633430fe7f43599f485d259c5d08886" - integrity sha512-+mi+EvxdjlOxt3dv7wTfzGxVFw0j8flZ8gGSXCx969JrML9EZd3+wgsKuMNb3whbvGa/N5exPZXfzsG+wNlK8A== - dependencies: - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/plugin-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-8.3.0.tgz#3a1848be9b4943eaf4cb78d41c72398dc647fb0c" - integrity sha512-cU5S9QR7C1Xsn9DDRSLN7Vq8+kWy6Fw6g2lwa+9yZqdSqABhmdH5HBJG/Zl8HULz2Ady0y8qHcu8fEZsehuU0g== - -"@solana/plugin-interfaces@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-8.3.0.tgz#16ae4a039fbeccc5d187e249553c1eba72323775" - integrity sha512-EawuCQiW5A13qdArRODYbAsAvi9fRkORk1hq14kbRAR0A/7XwQLniAWrgKY4WZ1UXuECB/LxKc8uQwfH5u1JOw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/signers" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/program-client-core@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-8.3.0.tgz#7367650dc7acf12d6fc4860115853fd8e4821ab0" - integrity sha512-GUFVAFaEgVvznI6mrfa69I0SVnO5mD5RpYKdSEHvGnIMzupgjZhTcmhSxMIU06hFA2ZLF+NbKsOKMQFVicOCjw== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instruction-plans" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/plugin-interfaces" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/signers" "8.3.0" - -"@solana/programs@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-8.3.0.tgz#d0b87ef1d8f5b6bd156a1753738f591f4cd60acc" - integrity sha512-XosDh9GNaDUCvzpFE2e3M7iQ6tounwrhR16+KInjYNcvQDLgA5yeCbNfByai7OSz9iqEi5nlXjQFIQCckLANVw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/errors" "8.3.0" - -"@solana/promises@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-8.3.0.tgz#29477997ffede9665462da8aa773ea15a3f8df4e" - integrity sha512-RekTh1UzvyD1EtF4hjenJDrnpGakJwTCE7cq6auQKtBxQUIJrKwDxmpyiJTJ00wvQYdMfMuyJEPQNuxgm6mxrg== - -"@solana/rpc-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-8.3.0.tgz#be1fd6dee97b118c1ba0b9097d1775d4582ce808" - integrity sha512-8wvVbQLbp8Mjd0Vcg2IZqkNreSGkgOPe4IhCrO2GqJQyTNAI8Ir6o/Qt3zIj02IQS9LDL9rZPvynL+1PFPSlOA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-parsed-types" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-parsed-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-8.3.0.tgz#e5552d2f37695ba4d7cad61b4263c1fa8b0b817a" - integrity sha512-cK0Yu7I8HADKYQdlyIuCFd2sq1sCrIm7q0H9nqeS7b5ILLYoH9T3AnCZ437N7Z4jZBekL2DGdpdE2M84F0fphQ== - -"@solana/rpc-spec-types@8.3.0", "@solana/rpc-spec-types@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-8.3.0.tgz#5ea116d3de36438123263026ae56e16baea33821" - integrity sha512-D757241XGKwmBRlQ1xSGknBqRaXq8ZO0BDl5UupG0UyHsfdk6iKDrJFccaNx1m2LKExzlu8iWZTEdnrueDDL7A== - dependencies: - "@solana/errors" "8.3.0" - -"@solana/rpc-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-8.3.0.tgz#81dc2fdd9fe43d4c685fcddbcc3638d8b4c06cff" - integrity sha512-HWMQsAUsW8LOkojFopkkkTSIFAFeYDA6B4NiXtXZ8q5qKRKDB+qCVTC1un8RorKrnayLM7gF73Oi5gPD2ANL/w== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions-api@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-8.3.0.tgz#42fce31d9b5e81a4a4db428960c9d06318aeaf8e" - integrity sha512-NHjPuylayZHuBNXPkMT0sMHGUKAenck+P9Iep1ZzfH0py9SJcKOU8LHecSdGl7GjHk0SCs+iCBew+89JYrcTaA== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/rpc-subscriptions-channel-websocket@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-8.3.0.tgz#f75c154b1b5397eb49893e4349c63aa81c4b9bfe" - integrity sha512-4Ix52idqRT3q0Ty5sr9lUj/S8Flf+/8q7NMuAxYNH827C71AO6vVpkpAY1YpU53MKnKy0Tox0mLLScocftgEJQ== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/subscribable" "8.3.0" - ws "^8.21.3" - -"@solana/rpc-subscriptions-spec@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-8.3.0.tgz#e7067f5236082ba9aa14323e7894ec03a632cd7e" - integrity sha512-iv6f4N7Pva3KGljkT4kEBsMDjWVHShtysuPOko8doLBSKuelOj+b+79iYpezeu6hpbZ0YxBvlmJkOtUyeIhRJA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-subscriptions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-8.3.0.tgz#04f4a3e308210452114a4ded2bcf92071c53cfe2" - integrity sha512-/oI9aXKOTFnIoZ+wmvZeNfSu5h8Vl90a4W6U/K8OZE2AKjK1dbKI4bR1k7P/3SORY9Z0AN2S9UsohQ6Z6n9jKA== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-subscriptions-api" "8.3.0" - "@solana/rpc-subscriptions-channel-websocket" "8.3.0" - "@solana/rpc-subscriptions-spec" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/subscribable" "8.3.0" - -"@solana/rpc-transformers@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-8.3.0.tgz#82e25b310b1d8f2cc0b4d79c2f82c3ac8afd5f32" - integrity sha512-eDn1PwS+MbMAJN4ZSWzMYGt0jEwvyaZJwDeQdOdWYEkqKJKlLsO1AAxLmz3LW3R/iKyWa4KwjrJ5Ia9oAugS6g== - dependencies: - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/rpc-transport-http@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-8.3.0.tgz#4fd3e56b3135f7d6b996df6a3e22115cbc97429f" - integrity sha512-XD3Bo5KZekQhrReoF6UzFW66NUYqa4Rg1wBjFEIsC/sABhLJ+062O1GPS3HY9AcxZBW48rAmfNe1Qqkerxajzw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - undici-types "^8.10.2" - -"@solana/rpc-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-8.3.0.tgz#f279c277f5e44685847bc77409ea45dcd6ad44dd" - integrity sha512-T8DlDU5hu/pspKNWriwkJHXqzb7B6EQVVC6sgciZp78VB9R413+K6QhC7jZc96mNcoaATKRRg2tDDyiezKZVIg== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/fixed-points" "8.3.0" - "@solana/nominal-types" "8.3.0" - -"@solana/rpc@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-8.3.0.tgz#6b74b729b285ca6cadfef9f9d0e8def27386abe2" - integrity sha512-giS/v09dby/VD77uDfNrhr5fLi5K5NIOp3jIFfKpdAnfPHgKLv050xdmL9ZltrWucrGuePinzUTLWkdkf4s/cw== - dependencies: - "@solana/errors" "8.3.0" - "@solana/fast-stable-stringify" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/rpc-api" "8.3.0" - "@solana/rpc-spec" "8.3.0" - "@solana/rpc-spec-types" "8.3.0" - "@solana/rpc-transformers" "8.3.0" - "@solana/rpc-transport-http" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/signers@8.3.0", "@solana/signers@^8.2.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-8.3.0.tgz#49f842ce9eac9d4f2ce2e1c8c33af82fb0c06e8e" - integrity sha512-uNiJZV6npLBQ0jYsK5fmtemZ0igQ4HW9QR9t5qSxbxRa52yZjzX7zkSpFhQJsxvBCAUR2ppVmhanDeupPXf4Mw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/offchain-messages" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/subscribable@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-8.3.0.tgz#3f26cbabe98679d49b02fa77d06828007a1950bf" - integrity sha512-tLoGNOt19oUTxIoOaBxQRNxKJET/IXBx1NZkGD1lh4X8iNc6V0lY3MMIWjNvRivFIpzeWtWYxX/tAb27xpmcXg== - dependencies: - "@solana/errors" "8.3.0" - "@solana/promises" "8.3.0" - -"@solana/sysvars@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-8.3.0.tgz#823588d73a37918a6daff2f17c08ab3d080a487b" - integrity sha512-SXnKqpV4pj3vLvcyBn8+jeVouu4Bbk0PTmHMknsig6edWcpmvAXkufcRdxgVy5t58pdSf1+GlJGEEhP5NR/0xA== - dependencies: - "@solana/accounts" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transaction-confirmation@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-8.3.0.tgz#e7ec5c2e5b47df1d43411e8fd1f70b3e36daf336" - integrity sha512-xx4sO4+0nP84SvxPPmHFKkUyBEQDFC2Vn8eqV8qEG3yo0ruHlZ45g0IeYhz9WS20WPgkXvGB5bVU8Y3yv/4vPw== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/promises" "8.3.0" - "@solana/rpc" "8.3.0" - "@solana/rpc-subscriptions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-introspection@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-introspection/-/transaction-introspection-8.3.0.tgz#64d2f56db9052f7768fcce47658e3ebacda537c8" - integrity sha512-uuPNYLhgueMG1ZxWH+SqPHiyz7KM0vFUDPCVRQUVTTWFryWDeu6GExfy+mFMPRR25cp+hWYmYhddub8BU2sPXQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - "@solana/transactions" "8.3.0" - -"@solana/transaction-messages@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-8.3.0.tgz#7a7070c08bfd731545256013e4a4832931ed545b" - integrity sha512-AkgHRPOnwonB7n81rTwnZ9WFlagnhzDzXKGhETdffzC+A1GifXC2s/ou0/qNozuqlgPVDaBR02S/A3Vt1tYr/g== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - -"@solana/transactions@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-8.3.0.tgz#dec35b03e3f0a26d7b1066c914c255ab1e9f4e2c" - integrity sha512-zNCHu2W3t6r4W3rsCA5vZ93bGqcZPNgfgYjTamRC6xTZPP2qn5JR+bSR9/WBMpi8GwLzWYuDk6YtNp3+pYGKuQ== - dependencies: - "@solana/addresses" "8.3.0" - "@solana/codecs-core" "8.3.0" - "@solana/codecs-data-structures" "8.3.0" - "@solana/codecs-numbers" "8.3.0" - "@solana/codecs-strings" "8.3.0" - "@solana/errors" "8.3.0" - "@solana/functional" "8.3.0" - "@solana/instructions" "8.3.0" - "@solana/keys" "8.3.0" - "@solana/nominal-types" "8.3.0" - "@solana/rpc-types" "8.3.0" - "@solana/transaction-messages" "8.3.0" - -"@solana/web3.js@3.0.0-rc.3": - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.3.tgz#82b3b941182782925c041f89ff0f81462cbf088d" - integrity sha512-98v05nzDkV66Mvsi7a7rQvGWDg6gFzCBRXn0n678K64pRnu02uVd6mfWdMhZD3yZ4l2j0l2Kcg1bVb1e0pq6Ig== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@solana-program/address-lookup-table" "^0.14.0" - "@solana-program/compute-budget" "^0.18.0" - "@solana-program/loader-v3" "^0.6.0" - "@solana-program/stake" "^0.9.0" - "@solana-program/system" "^0.14.0" - "@solana/assertions" "^8.2.0" - "@solana/fast-stable-stringify" "^8.2.0" - "@solana/kit" "^8.2.0" - "@solana/rpc-spec-types" "^8.2.0" - "@solana/signers" "^8.2.0" - -"@solana/web3.js@^1.69.0", "@solana/web3.js@^1.98.0": - version "1.99.0" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.99.0.tgz#864ce3fefe03b258c430e31e6672b422426821f7" - integrity sha512-QZYQ2T1z6xWisoyALPq25i/QZTsRlM02BABtAsfaQ1p8wX4SdTfxrKTRue/ZZqrhNVh5oL7T/DUFiTS9DRgxow== - dependencies: - "@babel/runtime" "^7.29.7" - "@noble/curves" "^1.9.7" - "@noble/hashes" "^1.8.0" - "@solana/buffer-layout" "^4.0.1" - "@solana/codecs-numbers" "^5.5.1" - agentkeepalive "^4.6.0" - bn.js "^5.2.5" - borsh "^0.7.0" - bs58 "^4.0.1" - buffer "6.0.3" - fast-stable-stringify "^1.0.0" - jayson "^4.3.0" - node-fetch "^2.7.0" - rpc-websockets "^9.0.2" - superstruct "^2.0.2" - -"@swc/helpers@^0.5.11": - version "0.5.23" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.23.tgz#19287d0d86d962b111376039a50c792902c9a86a" - integrity sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw== - dependencies: - tslib "^2.8.0" - -"@types/connect@^3.4.33": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" - integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== - dependencies: - "@types/node" "*" - -"@types/node@*": - version "22.20.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.20.3.tgz#f77d48b4cb336b4e6dc44850ddb6da69caade396" - integrity sha512-DZmzkmwHzXrLPAXPyKNDzlIwMMUZCVacoD25ywdy5YTKGbOx/2ld+Q38Im2zJ0vBuZP5Prd3VZutKZyXwkOS8A== - dependencies: - undici-types "~6.21.0" - -"@types/node@^12.12.54": - version "12.20.55" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - -"@types/node@^20.17.0": - version "20.19.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.19.43.tgz#fcecf580ba42a0db55cf404c372c97973c376c97" - integrity sha512-6oYBAi5ikg4Pl+kGsoYtawUMBT2zZMCvPNF7pVLnHZfd1zf38DRiWn/gT01RYCdUqkv7Fhr+C9ot4/tb+2sVvA== - dependencies: - undici-types "~6.21.0" - -"@types/ws@^7.4.4": - version "7.4.7" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - dependencies: - "@types/node" "*" - -"@types/ws@^8.2.2": - version "8.18.1" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" - integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== - dependencies: - "@types/node" "*" - -agentkeepalive@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" - integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== - dependencies: - humanize-ms "^1.2.1" - -asn1.js@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1js@^3.0.10: - version "3.0.10" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.10.tgz#df26c874c8a8b41ca605efea47b2ad07551013dd" - integrity sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg== - dependencies: - pvtsutils "^1.3.6" - pvutils "^1.1.5" - tslib "^2.8.1" - -base-x@^3.0.2: - version "3.0.11" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.11.tgz#40d80e2a1aeacba29792ccc6c5354806421287ff" - integrity sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA== - dependencies: - safe-buffer "^5.0.1" - -base-x@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-5.0.1.tgz#16bf35254be1df8aca15e36b7c1dda74b2aa6b03" - integrity sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bn.js@^4.0.0, bn.js@^4.11.9: - version "4.12.5" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.5.tgz#74f119ffecd823168d188eae06d97ea40835c489" - integrity sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ== - -bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.2, bn.js@^5.2.5: - version "5.2.5" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.5.tgz#e81ce41cf25e6f0cd1e05f20a9db8c18405e375f" - integrity sha512-Vq886eXykuP5E6HcKSSStP3bJgrE6In5WKxVUvJ8XGpWWYs2xZHWqUwzCtGgEtBcxyd57KBFDPFoUfNzdaHCNg== - -borsh@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" - integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== - dependencies: - bn.js "^5.2.0" - bs58 "^4.0.0" - text-encoding-utf-8 "^1.0.2" - -brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -bs58@^4.0.0, bs58@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - dependencies: - base-x "^3.0.2" - -bs58@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-6.0.0.tgz#a2cda0130558535dd281a2f8697df79caaf425d8" - integrity sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw== - dependencies: - base-x "^5.0.0" - -buffer-layout@^1.2.0, buffer-layout@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" - integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== - -buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -bufferutil@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.1.0.tgz#a4623541dd23867626bb08a051ec0d2ec0b70294" - integrity sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw== - dependencies: - node-gyp-build "^4.3.0" - -camelcase@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -chalk@5.6.2: - version "5.6.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - -commander@14.0.2: - version "14.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e" - integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== - -commander@15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-15.0.0.tgz#96f3961f12adac1799ef3fbd8bc61d40572d1b11" - integrity sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg== - -commander@^2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -cross-fetch@^3.1.5: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" - integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== - dependencies: - node-fetch "^2.7.0" - -delay@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" - integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - -elliptic@^6.6.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" - integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== - dependencies: - es6-promise "^4.0.3" - -eventemitter3@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -eventemitter3@^5.0.1: - version "5.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.4.tgz#a86d66170433712dde814707ac52b5271ceb1feb" - integrity sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw== - -eyes@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" - integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== - -fast-stable-stringify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" - integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== - -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - -jayson@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.3.0.tgz#22eb8f3dcf37a5e893830e5451f32bde6d1bde4d" - integrity sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ== - dependencies: - "@types/connect" "^3.4.33" - "@types/node" "^12.12.54" - "@types/ws" "^7.4.4" - commander "^2.20.3" - delay "^5.0.0" - es6-promisify "^5.0.0" - eyes "^0.1.8" - isomorphic-ws "^4.0.1" - json-stringify-safe "^5.0.1" - stream-json "^1.9.1" - uuid "^8.3.2" - ws "^7.5.10" - -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -ms@^2.0.0: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -node-fetch@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - -node-gyp-build@^4.3.0: - version "4.8.4" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" - integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== - -pako@^2.0.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.2.0.tgz#246b9d4c841a8d308e484c0d03786651b143e63a" - integrity sha512-zJq6RP/5q+TO2OpFV3FHzlPnFjmkb7Nc99a5SNjJE+uu/PkpChs+NIZSSzbBoD+6kjiISXjfYdwj1ZRQ81dz/w== - -prettier@^3.5.3: - version "3.9.6" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.9.6.tgz#b3ea5146515d40fc53f18aa63f74dfab1e10dbf6" - integrity sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g== - -pvtsutils@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.6.tgz#ec46e34db7422b9e4fdc5490578c1883657d6001" - integrity sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg== - dependencies: - tslib "^2.8.1" - -pvutils@^1.1.5: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.2.0.tgz#4b5487a9cccd52d275b0538775790a3ca982bc22" - integrity sha512-BbubeCEyTuQjVMakvJQ/Sxbc93F2pwmbsxONT/ZRrwU7Ua38d8unYTwXpTVLAKJ4BDuH9IGztCjQcd/N/39Dvg== - -rpc-websockets@^9.0.2, rpc-websockets@^9.0.4: - version "9.3.10" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.3.10.tgz#d6f9b08edfac40e873a059b358806f6d58572e80" - integrity sha512-QT5PQ6LiWhA5RCS93oWwgxU4XzQltkYm8C3aTmmKEgj0HolGRo3VbdzELw7CEV35l9T7Amha8Vnr4rCfSjVP+w== - dependencies: - "@swc/helpers" "^0.5.11" - "@types/ws" "^8.2.2" - buffer "^6.0.3" - eventemitter3 "^5.0.1" - ws "^8.5.0" - optionalDependencies: - bufferutil "^4.0.1" - utf-8-validate "^6.0.0" - -safe-buffer@^5.0.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -stream-chain@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/stream-chain/-/stream-chain-2.2.5.tgz#b30967e8f14ee033c5b9a19bbe8a2cba90ba0d09" - integrity sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA== - -stream-json@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/stream-json/-/stream-json-1.9.1.tgz#e3fec03e984a503718946c170db7d74556c2a187" - integrity sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw== - dependencies: - stream-chain "^2.2.5" - -superstruct@^0.15.4: - version "0.15.5" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" - integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== - -superstruct@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-2.0.2.tgz#3f6d32fbdc11c357deff127d591a39b996300c54" - integrity sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A== - -text-encoding-utf-8@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" - integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== - -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -tslib@^2.8.0, tslib@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" - integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -typescript@^5.3.0, typescript@^5.8.3: - version "5.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" - integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== - -undici-types@^8.10.2: - version "8.10.2" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.10.2.tgz#5609f53dc7beefb4779b2ea0c08fb5eaddccc69f" - integrity sha512-7/+aSjzkUoLc92hV22bTW4aGanXf800zbwguhcICs0OAoCF9wDOE4wkopQ+SqfhXZm8mCK8gHpdTs7pZUWzK3w== - -undici-types@~6.21.0: - version "6.21.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" - integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== - -utf-8-validate@^6.0.0: - version "6.0.6" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-6.0.6.tgz#8a842c9b15af3f6323a3d5ed5eb9e61d208d8c22" - integrity sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA== - dependencies: - node-gyp-build "^4.3.0" - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -ws@^7.5.10: - version "7.5.13" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.13.tgz#12aa507eaca76c295c278b1aebf4698ab2c1845f" - integrity sha512-rsKI6xDBFVf4r/x8XyChGK04QR/XHroxs/jUcoWvtEZM8TPU/X/uIY9B1CsSzYws9ZJb/6bbBu7dPhFW00CAoA== - -ws@^8.21.3, ws@^8.5.0: - version "8.21.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" - integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== From b4bececc0e365cf03a6821fa98e473f554a0eecd Mon Sep 17 00:00:00 2001 From: dhruvja Date: Thu, 24 Sep 2026 14:41:52 +0700 Subject: [PATCH 8/9] ci: run only the Rust MagicSVM suites on stable Rust --- .github/workflows/test-magicsvm.yml | 18 +++-------- scripts/test-magicsvm.sh | 50 +++++++---------------------- 2 files changed, 17 insertions(+), 51 deletions(-) diff --git a/.github/workflows/test-magicsvm.yml b/.github/workflows/test-magicsvm.yml index 72d7dcb3..29e95325 100644 --- a/.github/workflows/test-magicsvm.yml +++ b/.github/workflows/test-magicsvm.yml @@ -52,16 +52,12 @@ jobs: . scripts/projects.sh echo "dir=$(project_dir "${{ matrix.example }}")" >> "$GITHUB_OUTPUT" + # Node only runs the `yarn build` / `yarn test` scripts: the suites are Rust, so + # there are no node_modules to install or cache. - name: Setup Node.js uses: actions/setup-node@v4 with: - # Pin 24.10 — MagicSVM's @solana/errors@8.3.0 pulls commander@15, - # which requires Node >=22.12. Example READMEs document 24.10.0. node-version: "24.10" - cache: yarn - cache-dependency-path: | - ${{ steps.dir.outputs.dir }}/yarn.lock - test-utils/ts/yarn.lock - name: Enable Corepack run: | @@ -74,13 +70,9 @@ jobs: with: toolchain: "1.89.0" - - name: Setup Rust nightly (MagicSVM Rust suites) - uses: dtolnay/rust-toolchain@nightly - with: - toolchain: nightly - - # anchor idl build invokes the host `stable` toolchain after cargo build-sbf. - - name: Ensure stable Rust for Anchor IDL + # The MagicSVM suites run on `cargo +stable` (MagicSVM does not build on 1.89), + # and anchor idl build also invokes the host `stable` toolchain. + - name: Setup stable Rust (MagicSVM suites, Anchor IDL) run: | rustup toolchain install stable --profile minimal rustup default 1.89.0 diff --git a/scripts/test-magicsvm.sh b/scripts/test-magicsvm.sh index 0904e8dd..957e42c3 100755 --- a/scripts/test-magicsvm.sh +++ b/scripts/test-magicsvm.sh @@ -1,19 +1,17 @@ #!/bin/bash -# Run the MagicSVM tests (TypeScript `yarn test`, plus the Rust suite when the -# example has one) for every MagicSVM example (MAGICSVM_PROJECTS in projects.sh). +# Run the Rust MagicSVM suite (`yarn test`, i.e. cargo test on tests-magicsvm-rs/) +# for every MagicSVM example (MAGICSVM_PROJECTS in projects.sh). # # MagicSVM tests are in-process and do not start validators. They do need the # compiled program .so (and IDL, for Anchor examples), so each example is built -# first via `yarn build`. +# first via `yarn build`. Neither step needs node_modules, so there is no yarn install. # # Usage: -# bash scripts/test-magicsvm.sh # all MagicsVM examples +# bash scripts/test-magicsvm.sh # all MagicSVM examples # bash scripts/test-magicsvm.sh spl-tokens # substring filter # # Env: # FAIL_FAST=0 keep going after a failure (default: stop on first) -# SKIP_TS=1 skip yarn test (TypeScript suite) -# SKIP_RS=1 skip yarn test:magicsvm:rs # SKIP_BUILD=1 skip yarn build (use existing target/deploy) # EXACT_MATCH=1 require the filter to equal the project name (used by CI) # MAGICSVM_RS_TARGET_DIR= CARGO_TARGET_DIR for the Rust suites (CI shares one cache) @@ -29,11 +27,8 @@ cd "$REPO_ROOT" TEST_FILTER="${1:-}" FAIL_FAST="${FAIL_FAST:-1}" -SKIP_TS="${SKIP_TS:-0}" -SKIP_RS="${SKIP_RS:-0}" SKIP_BUILD="${SKIP_BUILD:-0}" EXACT_MATCH="${EXACT_MATCH:-0}" -YARN_MUTEX="${YARN_MUTEX:-file:/tmp/.yarn-install-mutex}" PASSED=() FAILED=() @@ -48,15 +43,12 @@ matches_filter() { fi } -echo "Installing MagicSVM test helpers..." -( cd "$REPO_ROOT/test-utils/ts" && yarn install --mutex "$YARN_MUTEX" && yarn build ) - run_one() { local name="$1" local dir dir="$(project_dir "$name")" if [ -z "$dir" ]; then - echo "Unknown MagicsVM project '$name'" + echo "Unknown MagicSVM project '$name'" return 1 fi if ! matches_filter "$name"; then @@ -65,36 +57,18 @@ run_one() { echo "" echo "========================================" - echo "MagicsVM: $name ($dir)" + echo "MagicSVM: $name ($dir)" echo "========================================" ( cd "$dir" - yarn install --mutex "$YARN_MUTEX" if [ "$SKIP_BUILD" != "1" ]; then yarn build fi - ran=0 - if [ "$SKIP_TS" != "1" ]; then - yarn test || exit 1 - ran=1 - fi - if [ "$SKIP_RS" != "1" ] && grep -q '"test:magicsvm:rs"' package.json; then - rs_env=() - if [ -n "${MAGICSVM_RS_TARGET_DIR:-}" ]; then - rs_env+=("CARGO_TARGET_DIR=$MAGICSVM_RS_TARGET_DIR") - fi - env ${rs_env[@]+"${rs_env[@]}"} RUSTUP_TOOLCHAIN="${MAGICSVM_RUSTUP_TOOLCHAIN:-nightly}" \ - yarn test:magicsvm:rs || exit 1 - ran=1 - fi - if [ "$ran" -eq 0 ]; then - if [ "$SKIP_TS" = "1" ] && [ "$SKIP_RS" = "1" ]; then - exit 2 - fi - echo "No MagicSVM tests ran for $name (SKIP_TS/SKIP_RS)" - exit 1 + if [ -n "${MAGICSVM_RS_TARGET_DIR:-}" ]; then + export CARGO_TARGET_DIR="$MAGICSVM_RS_TARGET_DIR" fi + yarn test ) } @@ -109,20 +83,20 @@ for name in "${MAGICSVM_PROJECTS[@]}"; do FAILED+=("$name") if [ "$FAIL_FAST" != "0" ]; then echo "FAIL_FAST: stopping after $name" - echo "MagicsVM failed: $name" + echo "MagicSVM failed: $name" exit 1 fi fi done if [ -n "$TEST_FILTER" ] && [ "${#PASSED[@]}" -eq 0 ] && [ "${#FAILED[@]}" -eq 0 ]; then - echo "No MagicsVM project matched '$TEST_FILTER'" + echo "No MagicSVM project matched '$TEST_FILTER'" exit 1 fi echo "" echo "========================================" -echo "MagicsVM: ${#PASSED[@]} passed, ${#FAILED[@]} failed, ${#SKIPPED[@]} skipped" +echo "MagicSVM: ${#PASSED[@]} passed, ${#FAILED[@]} failed, ${#SKIPPED[@]} skipped" echo "========================================" if [ "${#FAILED[@]}" -gt 0 ]; then for name in "${FAILED[@]}"; do From 7959f34d2ca9ab28f8ac7f34ec1b0edd76877d2f Mon Sep 17 00:00:00 2001 From: dhruvja Date: Thu, 24 Sep 2026 14:51:19 +0700 Subject: [PATCH 9/9] ci: key the MagicSVM Rust cache on the stable rustc version --- .github/workflows/test-magicsvm.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test-magicsvm.yml b/.github/workflows/test-magicsvm.yml index 29e95325..f55338bc 100644 --- a/.github/workflows/test-magicsvm.yml +++ b/.github/workflows/test-magicsvm.yml @@ -73,9 +73,11 @@ jobs: # The MagicSVM suites run on `cargo +stable` (MagicSVM does not build on 1.89), # and anchor idl build also invokes the host `stable` toolchain. - name: Setup stable Rust (MagicSVM suites, Anchor IDL) + id: stable run: | rustup toolchain install stable --profile minimal rustup default 1.89.0 + echo "rustc=$(rustc +stable --version | cut -d' ' -f2)" >> "$GITHUB_OUTPUT" - name: Install native dependencies run: | @@ -109,7 +111,9 @@ jobs: magicsvm-program-${{ matrix.example }}-${{ hashFiles(format('{0}/Cargo.lock', steps.dir.outputs.dir)) }}- magicsvm-program-${{ matrix.example }}- - # Cargo registry plus the shared native target dir for the Rust MagicSVM suites. + # Cargo registry plus the shared native target dir for the Rust MagicSVM suites. The key + # carries the stable rustc version: an exact-key hit is never re-saved, so without it a + # stable release would leave CI restoring stale artifacts and recompiling on every run. - name: Cache Rust suite build uses: actions/cache@v4 with: @@ -118,10 +122,10 @@ jobs: ~/.cargo/registry/cache ~/.cargo/git/db ${{ env.MAGICSVM_RS_TARGET_DIR }} - key: magicsvm-rs-${{ hashFiles('**/tests-magicsvm-rs/Cargo.lock', 'test-utils/rust/Cargo.lock') }}-${{ matrix.example }} + key: magicsvm-rs-${{ steps.stable.outputs.rustc }}-${{ hashFiles('**/tests-magicsvm-rs/Cargo.lock', 'test-utils/rust/Cargo.lock') }}-${{ matrix.example }} restore-keys: | - magicsvm-rs-${{ hashFiles('**/tests-magicsvm-rs/Cargo.lock', 'test-utils/rust/Cargo.lock') }}- - magicsvm-rs- + magicsvm-rs-${{ steps.stable.outputs.rustc }}-${{ hashFiles('**/tests-magicsvm-rs/Cargo.lock', 'test-utils/rust/Cargo.lock') }}- + magicsvm-rs-${{ steps.stable.outputs.rustc }}- - name: Test MagicSVM ${{ matrix.example }} env:

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 N%0*k4NY~N!|1a#q_`m=F diff --git a/binary-prediction/anchor/tests-magicsvm/fixtures/session-keys.so b/binary-prediction/anchor/tests/fixtures/session-keys.so similarity index 100% rename from binary-prediction/anchor/tests-magicsvm/fixtures/session-keys.so rename to binary-prediction/anchor/tests/fixtures/session-keys.so diff --git a/counter/anchor/Anchor.toml b/counter/anchor/Anchor.toml index c23dd1f2..f64bc21c 100644 --- a/counter/anchor/Anchor.toml +++ b/counter/anchor/Anchor.toml @@ -13,4 +13,4 @@ cluster = "localnet" wallet = "~/.config/solana/id.json" [scripts] -test = "yarn run ts-mocha -p ./tsconfig.json -t 1000000 tests/public-counter.ts" \ No newline at end of file +test = "yarn test" diff --git a/counter/anchor/README.md b/counter/anchor/README.md index 5fceb5ac..ca386aef 100644 --- a/counter/anchor/README.md +++ b/counter/anchor/README.md @@ -30,23 +30,17 @@ yarn yarn build ``` -This example runs against a **local MagicBlock cluster** — a base Solana validator plus an Ephemeral Rollup, fronted by the Query Filtering Service. Start it in one terminal and leave it running: +Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash -yarn setup +yarn test ``` -`yarn setup` runs `SETUP_ONLY=1 ./scripts/test-locally.sh anchor-counter` from the repo root: it builds this example, boots the validators, and holds them until you press a key. +MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no validators, no +network. The suite initializes and increments a counter, delegates it, commits updates, and +undelegates it. -Then, in a second terminal, run this example's tests against that cluster: - -```bash -yarn test:local -``` - -`test:local` sources `scripts/local-env.sh` so the SDK targets the local cluster (without it the tests fall back to devnet). - -> Tip: to build and run **every** example end-to-end (what CI does), run the repo-root `./scripts/test-locally.sh` directly. +A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. ## 📤 Delegate an account diff --git a/counter/anchor/package.json b/counter/anchor/package.json index 64ab3d58..3a962f20 100644 --- a/counter/anchor/package.json +++ b/counter/anchor/package.json @@ -2,12 +2,9 @@ "scripts": { "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", - "test": "yarn test:local", - "build": "anchor keys sync && anchor build", - "test:local": ". ../../scripts/local-env.sh && npx ts-mocha -p ./tsconfig.json -t 1000000 tests/public-counter.ts", - "test:magicsvm": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests-magicsvm/public-counter.ts", - "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture", - "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh anchor-counter" + "test": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests/public-counter.ts", + "build": "anchor build --ignore-keys", + "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture" }, "dependencies": { "@coral-xyz/anchor": "0.32.1", diff --git a/counter/anchor/programs/public-counter/src/lib.rs b/counter/anchor/programs/public-counter/src/lib.rs index 6fe2b925..ae13802b 100644 --- a/counter/anchor/programs/public-counter/src/lib.rs +++ b/counter/anchor/programs/public-counter/src/lib.rs @@ -3,7 +3,7 @@ use ephemeral_rollups_sdk::anchor::{commit, delegate, ephemeral}; use ephemeral_rollups_sdk::cpi::DelegateConfig; use ephemeral_rollups_sdk::ephem::MagicIntentBundleBuilder; -declare_id!("4YM4nBzSPmqhtQULJEiW545H68RQtK5W2TthB2zkencJ"); +declare_id!("79sGyNW41g8TrKyQwk7SZu432SH9ZfHmtRzEtR6CSt3n"); pub const COUNTER_SEED: &[u8] = b"counter"; diff --git a/counter/anchor/tests-magicsvm/public-counter.ts b/counter/anchor/tests-magicsvm/public-counter.ts deleted file mode 100644 index cb2ded17..00000000 --- a/counter/anchor/tests-magicsvm/public-counter.ts +++ /dev/null @@ -1,121 +0,0 @@ -import { web3 } from "@coral-xyz/anchor"; -import { - accountOwner, - bootAnchorSvm, - isDelegated, - readU64le, - sendSvmTx, - validatorRemainingAccount, -} from "@magicblock-labs/test-utils"; -import assert from "assert"; -import { PublicCounter } from "../target/types/public_counter"; - -const COUNTER_SEED = "counter"; - -describe("public-counter magicsvm", () => { - const { svm, payer, program, validator } = bootAnchorSvm({ - fromDir: __dirname, - programName: "public_counter", - airdropLamports: BigInt(2 * web3.LAMPORTS_PER_SOL), - }); - const [counterPDA] = web3.PublicKey.findProgramAddressSync( - [Buffer.from(COUNTER_SEED)], - program.programId, - ); - - console.log("Program ID: ", program.programId.toString()); - console.log("Counter PDA: ", counterPDA.toString()); - console.log("Validator identity: ", validator.toString()); - - it("Initialize counter on Solana", async () => { - const tx = await program.methods - .initialize() - .accounts({ - user: payer.publicKey, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "base", "initialize"); - assert.equal(readU64le(svm, counterPDA, "base"), 0n); - }); - - it("Increase counter on Solana", async () => { - const tx = await program.methods - .increment() - .accounts({ - counter: counterPDA, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "base", "increment (base)"); - assert.equal(readU64le(svm, counterPDA, "base"), 1n); - }); - - it("Delegate counter to ER", async () => { - const tx = await program.methods - .delegate() - .accounts({ - payer: payer.publicKey, - pda: counterPDA, - }) - .remainingAccounts([validatorRemainingAccount(svm)]) - .transaction(); - sendSvmTx(svm, [payer], tx, "base", "delegate"); - assert.ok(isDelegated(svm, counterPDA)); - }); - - it("Increase counter on ER", async () => { - const tx = await program.methods - .increment() - .accounts({ - counter: counterPDA, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "ephemeral", "increment (ER)"); - assert.equal(readU64le(svm, counterPDA, "ephemeral"), 2n); - }); - - it("Commit counter state on ER to Solana", async () => { - const tx = await program.methods - .commit() - .accounts({ - payer: payer.publicKey, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "ephemeral", "commit"); - const committed = svm.getAccountFor(counterPDA, { target: "base" }); - assert.ok(committed.exists, "counter missing on base after commit"); - console.log( - "base account after commit:", - committed.programAddress.toString(), - Buffer.from(committed.data).readBigUInt64LE(8).toString(), - ); - assert.equal(readU64le(svm, counterPDA, "base"), 2n); - assert.ok(isDelegated(svm, counterPDA)); - }); - - it("Increase counter on ER and commit", async () => { - const tx = await program.methods - .incrementAndCommit() - .accounts({ - payer: payer.publicKey, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "ephemeral", "incrementAndCommit"); - assert.equal(readU64le(svm, counterPDA, "ephemeral"), 3n); - assert.equal(readU64le(svm, counterPDA, "base"), 3n); - }); - - it("Increment and undelegate counter on ER to Solana", async () => { - const tx = await program.methods - .incrementAndUndelegate() - .accounts({ - payer: payer.publicKey, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "ephemeral", "incrementAndUndelegate"); - assert.equal(readU64le(svm, counterPDA, "base"), 4n); - assert.equal( - accountOwner(svm, counterPDA, "base"), - program.programId.toString(), - ); - }); -}); diff --git a/counter/anchor/tests/advanced-magic.ts b/counter/anchor/tests/advanced-magic.ts deleted file mode 100644 index 6d9ba608..00000000 --- a/counter/anchor/tests/advanced-magic.ts +++ /dev/null @@ -1,207 +0,0 @@ -import * as anchor from "@coral-xyz/anchor"; -import { Program, web3 } from "@coral-xyz/anchor"; -import { PublicCounter } from "../target/types/public_counter"; -import { LAMPORTS_PER_SOL, sendAndConfirmTransaction } from "@solana/web3.js"; -import { - ConnectionMagicRouter, - GetCommitmentSignature, -} from "@magicblock-labs/ephemeral-rollups-sdk"; - -const COUNTER_SEED = "counter"; - -const anchorProvider = anchor.AnchorProvider.env(); -const isLocalnet = - anchorProvider.connection.rpcEndpoint.includes("localhost") || - anchorProvider.connection.rpcEndpoint.includes("127.0.0.1"); - -if (isLocalnet) { - console.log( - "Skipping 'magic-router-and-multiple-atomic-ixs' test suite because it's running on localnet", - ); -} - -const testSuite = isLocalnet ? describe.skip : describe; - -testSuite("magic-router-and-multiple-atomic-ixs", () => { - console.log("advanced-magic.ts"); - - const connection = new ConnectionMagicRouter( - process.env.ROUTER_ENDPOINT || "https://devnet-router.magicblock.app/", - { - wsEndpoint: - process.env.ROUTER_ENDPOINT?.replace(/^https:\/\//, "wss://").replace( - /^http:\/\//, - "ws://", - ) || "wss://devnet-router.magicblock.app/", - }, - ); - const providerMagic = new anchor.AnchorProvider( - connection, - anchor.Wallet.local(), - ); - - const program = anchor.workspace.PublicCounter as Program; - const [counterPDA] = anchor.web3.PublicKey.findProgramAddressSync( - [Buffer.from(COUNTER_SEED)], - program.programId, - ); - console.log("Program ID: ", program.programId.toString()); - console.log("Counter PDA: ", counterPDA.toString()); - - // Run this once before all tests - let ephemeralValidator; - before(async function () { - console.log("Endpoint:", connection.rpcEndpoint.toString()); - ephemeralValidator = await connection.getClosestValidator(); - console.log("Detected validator identity:", ephemeralValidator); - try { - const balance = await connection.getBalance( - anchor.Wallet.local().publicKey, - ); - console.log( - "Current balance is", - balance / LAMPORTS_PER_SOL, - " SOL", - "\n", - ); - } catch (error) { - console.log("Error fetching balance:", error); - } - }); - - it("Initialize counter on Solana", async () => { - const start = Date.now(); - const tx = await program.methods - .initialize() - .accounts({ - user: providerMagic.wallet.publicKey, - }) - .transaction(); - const txHash = await sendAndConfirmTransaction( - connection, - tx, - [providerMagic.wallet.payer], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (Base Layer) Initialize txHash: ${txHash}`); - }); - - it("Delegate counter to ER", async () => { - const start = Date.now(); - - const validator = await connection.getClosestValidator(); - console.log("Delegating to closest validator: ", JSON.stringify(validator)); - - // Add local validator identity to the remaining accounts if running on localnet - const remainingAccounts = - connection.rpcEndpoint.includes("localhost") || - connection.rpcEndpoint.includes("127.0.0.1") - ? [ - { - pubkey: new web3.PublicKey( - process.env.VALIDATOR || - "mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev", - ), - isSigner: false, - isWritable: false, - }, - ] - : [ - { - pubkey: new web3.PublicKey(validator.identity), - isSigner: false, - isWritable: false, - }, - ]; - - let tx = await program.methods - .delegate() - .accounts({ - payer: providerMagic.wallet.publicKey, - pda: counterPDA, - }) - .remainingAccounts(remainingAccounts) - .transaction(); - const txHash = await sendAndConfirmTransaction( - connection, - tx, - [providerMagic.wallet.payer], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (Base Layer) Delegate txHash: ${txHash}`); - }); - - it("Increase delegated counter and commit through CPI", async () => { - const start = Date.now(); - let tx = await program.methods - .incrementAndCommit() - .accounts({ - payer: providerMagic.wallet.publicKey, - }) - .transaction(); - const txHash = await sendAndConfirmTransaction( - connection, - tx, - [providerMagic.wallet.payer], - { - skipPreflight: true, - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Increment And Commit txHash: ${txHash}`); - - // Get the commitment signature on the base layer - const comfirmCommitStart = Date.now(); - // Await for the commitment on the base layer - const txCommitSgn = await GetCommitmentSignature( - txHash, - new anchor.web3.Connection(ephemeralValidator.fqdn), - ); - const commitDuration = Date.now() - comfirmCommitStart; - console.log( - `${commitDuration}ms (Base Layer) Commit txHash: ${txCommitSgn}`, - ); - }); - - it("Increase the delegate counter and undelegate through CPI", async () => { - const start = Date.now(); - let tx = await program.methods - .incrementAndUndelegate() - .accounts({ - payer: providerMagic.wallet.publicKey, - }) - .transaction(); - const txHash = await sendAndConfirmTransaction( - connection, - tx, - [providerMagic.wallet.payer], - { - skipPreflight: true, - }, - ); - const duration = Date.now() - start; - console.log( - `${duration}ms (ER) Increment and Undelegate txHash: ${txHash}`, - ); - - // Get the undelegate signature on the base layer - const comfirmCommitStart = Date.now(); - // Await for the commitment on the base layer - const txCommitSgn = await GetCommitmentSignature( - txHash, - new anchor.web3.Connection(ephemeralValidator.fqdn), - ); - const commitDuration = Date.now() - comfirmCommitStart; - console.log( - `${commitDuration}ms (Base Layer) Undelegate txHash: ${txCommitSgn}`, - ); - }); -}); diff --git a/counter/anchor/tests/public-counter.ts b/counter/anchor/tests/public-counter.ts index a61f4ab1..cb2ded17 100644 --- a/counter/anchor/tests/public-counter.ts +++ b/counter/anchor/tests/public-counter.ts @@ -1,204 +1,121 @@ -import * as anchor from "@coral-xyz/anchor"; -import { Program, web3 } from "@coral-xyz/anchor"; +import { web3 } from "@coral-xyz/anchor"; +import { + accountOwner, + bootAnchorSvm, + isDelegated, + readU64le, + sendSvmTx, + validatorRemainingAccount, +} from "@magicblock-labs/test-utils"; +import assert from "assert"; import { PublicCounter } from "../target/types/public_counter"; -import { LAMPORTS_PER_SOL } from "@solana/web3.js"; -import { GetCommitmentSignature } from "@magicblock-labs/ephemeral-rollups-sdk"; const COUNTER_SEED = "counter"; -describe.only("public-counter", () => { - console.log("public-counter.ts"); - - // Base layer URL precedence: PROVIDER_ENDPOINT > anchor's ANCHOR_PROVIDER_URL - // (set by `anchor test --provider.cluster localnet`) > devnet fallback. - const provider = new anchor.AnchorProvider( - new anchor.web3.Connection( - process.env.PROVIDER_ENDPOINT || - process.env.ANCHOR_PROVIDER_URL || - "https://api.devnet.solana.com", - { - wsEndpoint: process.env.WS_ENDPOINT || undefined, - commitment: "confirmed", - }, - ), - anchor.Wallet.local(), - ); - anchor.setProvider(provider); - - const providerEphemeralRollup = new anchor.AnchorProvider( - new anchor.web3.Connection( - process.env.EPHEMERAL_PROVIDER_ENDPOINT || - "https://devnet-as.magicblock.app/", - { - wsEndpoint: - process.env.EPHEMERAL_WS_ENDPOINT || - "wss://devnet-as.magicblock.app/", - commitment: "confirmed", - }, - ), - anchor.Wallet.local(), - ); - console.log("Base Layer Connection: ", provider.connection.rpcEndpoint); - console.log( - "Ephemeral Rollup Connection: ", - providerEphemeralRollup.connection.rpcEndpoint, - ); - console.log(`Current SOL Public Key: ${anchor.Wallet.local().publicKey}`); - - before(async function () { - try { - const balance = await provider.connection.getBalance( - anchor.Wallet.local().publicKey, - ); - console.log( - "Current balance is", - balance / LAMPORTS_PER_SOL, - " SOL", - "\n", - ); - } catch (error) { - console.log("Error fetching balance:", error); - } +describe("public-counter magicsvm", () => { + const { svm, payer, program, validator } = bootAnchorSvm({ + fromDir: __dirname, + programName: "public_counter", + airdropLamports: BigInt(2 * web3.LAMPORTS_PER_SOL), }); - - const program = anchor.workspace.PublicCounter as Program; - const programEphemeral = new Program( - program.idl, - providerEphemeralRollup, - ); - const [counterPDA] = anchor.web3.PublicKey.findProgramAddressSync( + const [counterPDA] = web3.PublicKey.findProgramAddressSync( [Buffer.from(COUNTER_SEED)], program.programId, ); console.log("Program ID: ", program.programId.toString()); console.log("Counter PDA: ", counterPDA.toString()); + console.log("Validator identity: ", validator.toString()); it("Initialize counter on Solana", async () => { - const start = Date.now(); - let tx = await program.methods + const tx = await program.methods .initialize() .accounts({ - user: provider.wallet.publicKey, + user: payer.publicKey, }) .transaction(); - - const txHash = await provider.sendAndConfirm(tx, [provider.wallet.payer], { - skipPreflight: true, - commitment: "confirmed", - }); - const duration = Date.now() - start; - console.log(`${duration}ms (Base Layer) Initialize txHash: ${txHash}`); + sendSvmTx(svm, [payer], tx, "base", "initialize"); + assert.equal(readU64le(svm, counterPDA, "base"), 0n); }); it("Increase counter on Solana", async () => { - const start = Date.now(); - let tx = await program.methods + const tx = await program.methods .increment() .accounts({ counter: counterPDA, }) .transaction(); - const txHash = await provider.sendAndConfirm(tx, [provider.wallet.payer], { - skipPreflight: true, - commitment: "confirmed", - }); - const duration = Date.now() - start; - console.log(`${duration}ms (Base Layer) Increment txHash: ${txHash}`); + sendSvmTx(svm, [payer], tx, "base", "increment (base)"); + assert.equal(readU64le(svm, counterPDA, "base"), 1n); }); it("Delegate counter to ER", async () => { - const start = Date.now(); - // Validator identity for delegation: env override wins; otherwise default by network. - const isLocal = - providerEphemeralRollup.connection.rpcEndpoint.includes("localhost") || - providerEphemeralRollup.connection.rpcEndpoint.includes("127.0.0.1"); - const validatorPubkey = new web3.PublicKey( - process.env.VALIDATOR || - (isLocal - ? "mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev" - : "MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57"), - ); - const remainingAccounts = [ - { pubkey: validatorPubkey, isSigner: false, isWritable: false }, - ]; - let tx = await program.methods + const tx = await program.methods .delegate() .accounts({ - payer: provider.wallet.publicKey, + payer: payer.publicKey, pda: counterPDA, }) - .remainingAccounts(remainingAccounts) + .remainingAccounts([validatorRemainingAccount(svm)]) .transaction(); - const txHash = await provider.sendAndConfirm(tx, [provider.wallet.payer], { - skipPreflight: true, - commitment: "confirmed", - }); - const duration = Date.now() - start; - console.log(`${duration}ms (Base Layer) Delegate txHash: ${txHash}`); - await new Promise((resolve) => setTimeout(resolve, 3000)); + sendSvmTx(svm, [payer], tx, "base", "delegate"); + assert.ok(isDelegated(svm, counterPDA)); }); it("Increase counter on ER", async () => { - const start = Date.now(); - const txHash = await programEphemeral.methods + const tx = await program.methods .increment() .accounts({ counter: counterPDA, }) - .rpc(); - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Increment txHash: ${txHash}`); + .transaction(); + sendSvmTx(svm, [payer], tx, "ephemeral", "increment (ER)"); + assert.equal(readU64le(svm, counterPDA, "ephemeral"), 2n); }); it("Commit counter state on ER to Solana", async () => { - const start = Date.now(); - const txHash = await programEphemeral.methods + const tx = await program.methods .commit() .accounts({ - payer: providerEphemeralRollup.wallet.publicKey, + payer: payer.publicKey, }) - .rpc(); - - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Commit txHash: ${txHash}`); - - // Get the commitment signature on the base layer - const comfirmCommitStart = Date.now(); - // Await for the commitment on the base layer - const txCommitSgn = await GetCommitmentSignature( - txHash, - providerEphemeralRollup.connection, - ); - const commitDuration = Date.now() - comfirmCommitStart; + .transaction(); + sendSvmTx(svm, [payer], tx, "ephemeral", "commit"); + const committed = svm.getAccountFor(counterPDA, { target: "base" }); + assert.ok(committed.exists, "counter missing on base after commit"); console.log( - `${commitDuration}ms (Base Layer) Commit txHash: ${txCommitSgn}`, + "base account after commit:", + committed.programAddress.toString(), + Buffer.from(committed.data).readBigUInt64LE(8).toString(), ); + assert.equal(readU64le(svm, counterPDA, "base"), 2n); + assert.ok(isDelegated(svm, counterPDA)); }); it("Increase counter on ER and commit", async () => { - const start = Date.now(); - const txHash = await programEphemeral.methods + const tx = await program.methods .incrementAndCommit() .accounts({ - payer: providerEphemeralRollup.wallet.publicKey, + payer: payer.publicKey, }) - .rpc(); - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Increment and Commit txHash: ${txHash}`); + .transaction(); + sendSvmTx(svm, [payer], tx, "ephemeral", "incrementAndCommit"); + assert.equal(readU64le(svm, counterPDA, "ephemeral"), 3n); + assert.equal(readU64le(svm, counterPDA, "base"), 3n); }); it("Increment and undelegate counter on ER to Solana", async () => { - const start = Date.now(); - const txHash = await programEphemeral.methods + const tx = await program.methods .incrementAndUndelegate() .accounts({ - payer: providerEphemeralRollup.wallet.publicKey, + payer: payer.publicKey, }) - .rpc(); - const duration = Date.now() - start; - console.log( - `${duration}ms (ER) Increment and Undelegate txHash: ${txHash}`, + .transaction(); + sendSvmTx(svm, [payer], tx, "ephemeral", "incrementAndUndelegate"); + assert.equal(readU64le(svm, counterPDA, "base"), 4n); + assert.equal( + accountOwner(svm, counterPDA, "base"), + program.programId.toString(), ); }); }); diff --git a/counter/native-rust/README.md b/counter/native-rust/README.md index b7850274..7b4a38b2 100644 --- a/counter/native-rust/README.md +++ b/counter/native-rust/README.md @@ -24,23 +24,17 @@ yarn yarn build ``` -This example runs against a **local MagicBlock cluster** — a base Solana validator plus an Ephemeral Rollup, fronted by the Query Filtering Service. Start it in one terminal and leave it running: +Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash -yarn setup +yarn test ``` -`yarn setup` runs `SETUP_ONLY=1 ./scripts/test-locally.sh rust-counter` from the repo root: it builds this example, boots the validators, and holds them until you press a key. +MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no validators, no +network. The suite covers counter delegation, commits, undelegation, and the increment-and-commit +CPI paths. -Then, in a second terminal, run this example's tests against that cluster: - -```bash -yarn test:local -``` - -`test:local` sources `scripts/local-env.sh` so the SDK targets the local cluster (without it the tests fall back to devnet). The `@solana/kit` suite is the default; `yarn test:web3js` runs the equivalent `@solana/web3.js` tests. - -> Tip: to build and run **every** example end-to-end (what CI does), run the repo-root `./scripts/test-locally.sh` directly. +A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. ## 📤 Delegate an account diff --git a/counter/native-rust/package.json b/counter/native-rust/package.json index a1d724e2..8c34f543 100644 --- a/counter/native-rust/package.json +++ b/counter/native-rust/package.json @@ -17,11 +17,7 @@ "fs": "0.0.2" }, "scripts": { - "test:local": ". ../../scripts/local-env.sh && npx vitest run ./tests/kit/rust-counter.test.ts", - "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh rust-counter", - "test": "npx vitest run ./tests/kit", - "test:web3js": "npx vitest run ./tests/web3js", - "test:magicsvm": "npx vitest run ./tests-magicsvm/rust-counter.test.ts", + "test": "npx vitest run ./tests/rust-counter.test.ts", "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture", "build": "cargo build-sbf", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", diff --git a/counter/native-rust/tests/kit/advanced-magic.test.ts b/counter/native-rust/tests/kit/advanced-magic.test.ts deleted file mode 100644 index e653dcdf..00000000 --- a/counter/native-rust/tests/kit/advanced-magic.test.ts +++ /dev/null @@ -1,290 +0,0 @@ -import { - initializeSolSignerKeypair, - airdropSolIfNeeded, -} from "./initializeKeypair"; -import * as borsh from "borsh"; -import * as fs from "fs"; -import dotenv from "dotenv"; -import { CounterInstruction, IncreaseCounterPayload } from "./schema"; -import { - Connection, - DELEGATION_PROGRAM_ID, - delegationRecordPdaFromDelegatedAccount, - delegationMetadataPdaFromDelegatedAccount, - delegateBufferPdaFromDelegatedAccountAndOwnerProgram, - MAGIC_CONTEXT_ID, - MAGIC_PROGRAM_ID, -} from "@magicblock-labs/ephemeral-rollups-kit"; -import { - Instruction, - getAddressEncoder, - getProgramDerivedAddress, - AccountRole, - createKeyPairFromBytes, - getAddressFromPublicKey, - address, - createTransactionMessage, - appendTransactionMessageInstructions, - pipe, - setTransactionMessageFeePayer, -} from "@solana/kit"; -import { SYSTEM_PROGRAM_ADDRESS } from "@solana-program/system"; -import { describe, it, beforeAll, expect } from "vitest"; - -dotenv.config(); - -describe("basic-test", async () => { - const TEST_TIMEOUT = 60_000; - - console.log("🧪 Running rust-counter.ts test suite..."); - - // Load the deployed program keypair and get Proram ID - const keypairPath = "target/deploy/rust_counter-keypair.json"; - const secretKeyArray = Uint8Array.from( - JSON.parse(fs.readFileSync(keypairPath, "utf8")), - ); - const keypair = await createKeyPairFromBytes(secretKeyArray); - const PROGRAM_ID = await getAddressFromPublicKey(keypair.publicKey); - console.log("Program ID:", PROGRAM_ID); - - // Connections - const connection = await Connection.create( - process.env.ROUTER_ENDPOINT || "https://devnet-router.magicblock.app", - process.env.ROUTER_WS_ENDPOINT || "wss://devnet-router.magicblock.app", - ); - const ephemeralConnection = await Connection.create( - process.env.ROUTER_ENDPOINT || "https://devnet-router.magicblock.app", - process.env.ROUTER_WS_ENDPOINT || "wss://devnet-router.magicblock.app", - ); - - console.log( - "Base Layer RPC:", - connection.clusterUrlHttp, - "| Websocket:", - connection.clusterUrlWs, - ); - console.log( - "ER RPC:", - ephemeralConnection.clusterUrlHttp, - "| Websocket:", - ephemeralConnection.clusterUrlWs, - ); - - // Prepare user - const userKeypair = await initializeSolSignerKeypair(); - const userPubkey = await getAddressFromPublicKey(userKeypair.publicKey); - - // Get PDA - const addressEncoder = getAddressEncoder(); - const [counterPda, bump] = await getProgramDerivedAddress({ - programAddress: PROGRAM_ID, - seeds: [Buffer.from("counter"), addressEncoder.encode(userPubkey)], - }); - console.log("Counter PDA:", counterPda); - - // Ensure test wallet has SOL - beforeAll(async () => { - await airdropSolIfNeeded( - connection.clusterUrlHttp, - connection.clusterUrlWs, - userPubkey, - 2, - ); - }, TEST_TIMEOUT); - - it( - "Initialize and delegate counter to ER", - async () => { - const start = Date.now(); - - // Add local validator identity to the remaining accounts if running on localnet - const remainingAccounts = - connection.clusterUrlHttp.includes("localhost") || - connection.clusterUrlHttp.includes("127.0.0.1") - ? [ - { - address: address( - process.env.VALIDATOR || - "mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev", - ), - role: AccountRole.READONLY, - }, - ] - : []; - - // Prepare transaction - const initAccounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, - { address: counterPda, role: AccountRole.WRITABLE }, - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, - ]; - const serializedInitInstructionData = Buffer.from( - CounterInstruction.InitializeCounter, - "hex", - ); - const initializeIx: Instruction = { - accounts: initAccounts, - programAddress: PROGRAM_ID, - data: serializedInitInstructionData, - }; - const delAccounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, - { address: counterPda, role: AccountRole.WRITABLE }, - { address: PROGRAM_ID, role: AccountRole.READONLY }, - { - address: await delegateBufferPdaFromDelegatedAccountAndOwnerProgram( - counterPda, - PROGRAM_ID, - ), - role: AccountRole.WRITABLE, - }, - { - address: await delegationRecordPdaFromDelegatedAccount(counterPda), - role: AccountRole.WRITABLE, - }, - { - address: await delegationMetadataPdaFromDelegatedAccount(counterPda), - role: AccountRole.WRITABLE, - }, - { address: DELEGATION_PROGRAM_ID, role: AccountRole.READONLY }, - ...remainingAccounts, - ]; - const serializedInstructionData = Buffer.from( - CounterInstruction.Delegate, - "hex", - ); - const delegateIx: Instruction = { - accounts: delAccounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - (tx) => setTransactionMessageFeePayer(userPubkey, tx), - (tx) => appendTransactionMessageInstructions([initializeIx], tx), - (tx) => appendTransactionMessageInstructions([delegateIx], tx), - ); - - // Send and confirm transaction - const txHash = await connection.sendAndConfirmTransaction( - transactionMessage, - [userKeypair], - { commitment: "confirmed", skipPreflight: true }, - ); - - console.log( - `${Date.now() - start}ms (Base Layer) Delegate txHash: ${txHash}`, - ); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - it( - "Increase delegated counter and commit through CPI", - async () => { - const start = Date.now(); - - // Prepare transaction - const accounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, - { address: counterPda, role: AccountRole.WRITABLE }, - { - address: address(MAGIC_PROGRAM_ID.toString()), - role: AccountRole.READONLY, - }, - { - address: address(MAGIC_CONTEXT_ID.toString()), - role: AccountRole.WRITABLE, - }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncrementAndCommit, "hex"), - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(1), - ), - ]); - const increaseAndCommitCounterIx: Instruction = { - accounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - (tx) => setTransactionMessageFeePayer(userPubkey, tx), - (tx) => - appendTransactionMessageInstructions( - [increaseAndCommitCounterIx], - tx, - ), - ); - - // Send and confirm transaction - const txHash = await ephemeralConnection.sendAndConfirmTransaction( - transactionMessage, - [userKeypair], - { commitment: "confirmed", skipPreflight: true }, - ); - - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Increment and Commit txHash: ${txHash}`); - - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - it( - "Increase delegated counter and undelegate through CPI", - async () => { - const start = Date.now(); - - // Prepare transaction - const accounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, - { address: counterPda, role: AccountRole.WRITABLE }, - { - address: address(MAGIC_PROGRAM_ID.toString()), - role: AccountRole.READONLY, - }, - { - address: address(MAGIC_CONTEXT_ID.toString()), - role: AccountRole.WRITABLE, - }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncrementAndUndelegate, "hex"), - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(1), - ), - ]); - const incrementAndUndelegateIx: Instruction = { - accounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - (tx) => setTransactionMessageFeePayer(userPubkey, tx), - (tx) => - appendTransactionMessageInstructions([incrementAndUndelegateIx], tx), - ); - - // Send and confirm transaction - const txHash = await ephemeralConnection.sendAndConfirmTransaction( - transactionMessage, - [userKeypair], - { commitment: "confirmed", skipPreflight: true }, - ); - - const duration = Date.now() - start; - console.log( - `${duration}ms (ER) Increment and Undelegate txHash: ${txHash}`, - ); - - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); -}); diff --git a/counter/native-rust/tests/kit/initializeKeypair.ts b/counter/native-rust/tests/kit/initializeKeypair.ts deleted file mode 100644 index 666f181e..00000000 --- a/counter/native-rust/tests/kit/initializeKeypair.ts +++ /dev/null @@ -1,96 +0,0 @@ -import { - generateKeyPair, - createKeyPairFromPrivateKeyBytes, - createKeyPairFromBytes, - Address, - createSolanaRpc, - createSolanaRpcSubscriptions, - airdropFactory, - lamports, - getAddressFromPublicKey, - address, -} from "@solana/kit"; -import * as fs from "fs"; - -import dotenv from "dotenv"; -dotenv.config(); - -// Initialize Keypair for SOL -export async function initializeSolSignerKeypair(): Promise< - ReturnType -> { - if (process.env.PRIVATE_KEY) { - const secret = JSON.parse(process.env.PRIVATE_KEY ?? "") as number[]; - const keypair = await createKeyPairFromBytes(new Uint8Array(secret)); - console.log( - `\rCurrent SOL Public Key: ${await getAddressFromPublicKey(keypair.publicKey)}`, - ); - - return keypair; - } else if (process.env.ANCHOR_WALLET) { - const anchorWallet = await createKeyPairFromBytes( - Uint8Array.from( - JSON.parse(fs.readFileSync(process.env.ANCHOR_WALLET, "utf8")), - ), - ); - console.log( - `\rCurrent Anchor Wallet Public Key: ${anchorWallet.publicKey}`, - ); - return anchorWallet; - } else { - const { privateKey, publicKey } = await generateKeyPair(); - const privateKeyBytes = new Uint8Array( - await crypto.subtle.exportKey("raw", privateKey), - ); - const publicKeyBytes = new Uint8Array( - await crypto.subtle.exportKey("raw", publicKey), - ); - const keypairBytes = new Uint8Array([ - ...privateKeyBytes, - ...publicKeyBytes, - ]); - // Append the new key-value pair to the contents of the .env file - console.log( - `New SOL Public Key: ${await getAddressFromPublicKey(publicKey)}`, - ); - fs.writeFileSync( - ".env", - `PRIVATE_KEY=${JSON.stringify(Array.from(keypairBytes))}\n`, - ); - - const keypair = await createKeyPairFromBytes(keypairBytes); - return keypair; - } -} -export async function airdropSolIfNeeded( - rpcEndpoint: string, - wsEndpoint: string, - pubkey: Address, - amount: number, - threshold: number = 1, -) { - const SOL_PER_LAMPORTS = BigInt("1000000000"); - - if ( - rpcEndpoint.includes("dev") || - rpcEndpoint.includes("test") || - rpcEndpoint.includes("local") || - rpcEndpoint.includes("http://") - ) { - const rpc = await createSolanaRpc(rpcEndpoint); - const rpcSubscriptions = createSolanaRpcSubscriptions(wsEndpoint); - const balance = (await rpc.getBalance(pubkey).send())?.value; - console.log("Current balance is", balance / SOL_PER_LAMPORTS, " SOL", "\n"); - if (balance < BigInt(threshold) * SOL_PER_LAMPORTS) { - console.log(`Selected cluster: ${rpcEndpoint}`); - console.log(`Airdropping ${amount} SOL...`); - const airdrop = airdropFactory({ rpc, rpcSubscriptions }); - await airdrop({ - commitment: "confirmed", - recipientAddress: address(pubkey), - lamports: lamports(BigInt(SOL_PER_LAMPORTS) * BigInt(amount)), - }); - console.log(`\rAirdrop of ${amount} SOL was successful.`); - } - } -} diff --git a/counter/native-rust/tests/kit/rust-counter.test.ts b/counter/native-rust/tests/kit/rust-counter.test.ts deleted file mode 100644 index 6ae38c20..00000000 --- a/counter/native-rust/tests/kit/rust-counter.test.ts +++ /dev/null @@ -1,445 +0,0 @@ -import { - initializeSolSignerKeypair, - airdropSolIfNeeded, -} from "./initializeKeypair"; -import * as borsh from "borsh"; -import * as fs from "fs"; -import dotenv from "dotenv"; -import { CounterInstruction, IncreaseCounterPayload } from "./schema"; -import { - Connection, - DELEGATION_PROGRAM_ID, - delegationRecordPdaFromDelegatedAccount, - delegationMetadataPdaFromDelegatedAccount, - delegateBufferPdaFromDelegatedAccountAndOwnerProgram, - MAGIC_CONTEXT_ID, - MAGIC_PROGRAM_ID, -} from "@magicblock-labs/ephemeral-rollups-kit"; -import { - Instruction, - getAddressEncoder, - getProgramDerivedAddress, - AccountRole, - createKeyPairFromBytes, - getAddressFromPublicKey, - address, - createTransactionMessage, - appendTransactionMessageInstructions, - pipe, - setTransactionMessageFeePayer, -} from "@solana/kit"; -import { SYSTEM_PROGRAM_ADDRESS } from "@solana-program/system"; -import { describe, it, beforeAll, expect } from "vitest"; - -dotenv.config(); - -describe("basic-test", async () => { - const TEST_TIMEOUT = 60_000; - - console.log("🧪 Running rust-counter.ts test suite..."); - - // Load the deployed program keypair and get Proram ID - const keypairPath = "target/deploy/rust_counter-keypair.json"; - const secretKeyArray = Uint8Array.from( - JSON.parse(fs.readFileSync(keypairPath, "utf8")), - ); - const keypair = await createKeyPairFromBytes(secretKeyArray); - const PROGRAM_ID = await getAddressFromPublicKey(keypair.publicKey); - console.log("Program ID:", PROGRAM_ID); - - // Connections - const connection = await Connection.create( - process.env.PROVIDER_ENDPOINT || "https://api.devnet.solana.com", - process.env.WS_ENDPOINT || "wss://api.devnet.solana.com", - ); - const ephemeralConnection = await Connection.create( - process.env.EPHEMERAL_PROVIDER_ENDPOINT || - "https://devnet-as.magicblock.app", - process.env.EPHEMERAL_WS_ENDPOINT || "wss://devnet-as.magicblock.app", - ); - - console.log( - "Base Layer RPC:", - connection.clusterUrlHttp, - "| Websocket:", - connection.clusterUrlWs, - ); - console.log( - "ER RPC:", - ephemeralConnection.clusterUrlHttp, - "| Websocket:", - ephemeralConnection.clusterUrlWs, - ); - - // Prepare user - const userKeypair = await initializeSolSignerKeypair(); - const userPubkey = await getAddressFromPublicKey(userKeypair.publicKey); - - // Get PDA - const addressEncoder = getAddressEncoder(); - const [counterPda, bump] = await getProgramDerivedAddress({ - programAddress: PROGRAM_ID, - seeds: [Buffer.from("counter"), addressEncoder.encode(userPubkey)], - }); - console.log("Counter PDA:", counterPda); - - // Ensure test wallet has SOL - beforeAll(async () => { - await airdropSolIfNeeded( - connection.clusterUrlHttp, - connection.clusterUrlWs, - userPubkey, - 2, - ); - }, TEST_TIMEOUT); - - it( - "Initialize counter on Solana", - async () => { - const start = Date.now(); - - // Prepare transaction - const accounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, - { address: counterPda, role: AccountRole.WRITABLE }, - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, - ]; - const serializedInstructionData = Buffer.from( - CounterInstruction.InitializeCounter, - "hex", - ); - const initializeIx: Instruction = { - accounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - let transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - (tx) => setTransactionMessageFeePayer(userPubkey, tx), - (tx) => appendTransactionMessageInstructions([initializeIx], tx), - ); - - // Send and confirm transaction - const txHash = await connection.sendAndConfirmTransaction( - transactionMessage, - [userKeypair], - { commitment: "confirmed", skipPreflight: true }, - ); - - console.log( - `${Date.now() - start}ms (Base Layer) Initialize txHash: ${txHash}`, - ); - - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - - it( - "Increase counter on Solana", - async () => { - const start = Date.now(); - - // Prepare transaction - const accounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, - { address: counterPda, role: AccountRole.WRITABLE }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncreaseCounter, "hex"), - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(1), - ), - ]); - const increaseCounterIx: Instruction = { - accounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - (tx) => setTransactionMessageFeePayer(userPubkey, tx), - (tx) => appendTransactionMessageInstructions([increaseCounterIx], tx), - ); - - // Send and confirm transaction - const txHash = await connection.sendAndConfirmTransaction( - transactionMessage, - [userKeypair], - { commitment: "confirmed", skipPreflight: true }, - ); - - console.log( - `${Date.now() - start}ms (Base Layer) Increment txHash: ${txHash}`, - ); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - - it( - "Delegate counter to ER", - async () => { - const start = Date.now(); - - // Validator identity for delegation: VALIDATOR env var wins; otherwise default to - // local-ER validator iff the ER endpoint is localhost. - const isLocal = - connection.clusterUrlHttp.includes("localhost") || - connection.clusterUrlHttp.includes("127.0.0.1"); - const validatorAddress = process.env.VALIDATOR - ? address(process.env.VALIDATOR) - : isLocal - ? address("mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev") - : null; - const remainingAccounts = validatorAddress - ? [{ address: validatorAddress, role: AccountRole.READONLY }] - : []; - - // Prepare transaction - const accounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, - { address: counterPda, role: AccountRole.WRITABLE }, - { address: PROGRAM_ID, role: AccountRole.READONLY }, - { - address: await delegateBufferPdaFromDelegatedAccountAndOwnerProgram( - counterPda, - PROGRAM_ID, - ), - role: AccountRole.WRITABLE, - }, - { - address: await delegationRecordPdaFromDelegatedAccount(counterPda), - role: AccountRole.WRITABLE, - }, - { - address: await delegationMetadataPdaFromDelegatedAccount(counterPda), - role: AccountRole.WRITABLE, - }, - { address: DELEGATION_PROGRAM_ID, role: AccountRole.READONLY }, - ...remainingAccounts, - ]; - const serializedInstructionData = Buffer.from( - CounterInstruction.Delegate, - "hex", - ); - const delegateIx: Instruction = { - accounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - (tx) => setTransactionMessageFeePayer(userPubkey, tx), - (tx) => appendTransactionMessageInstructions([delegateIx], tx), - ); - - // Send and confirm transaction - const txHash = await connection.sendAndConfirmTransaction( - transactionMessage, - [userKeypair], - { commitment: "confirmed", skipPreflight: true }, - ); - - console.log( - `${Date.now() - start}ms (Base Layer) Delegate txHash: ${txHash}`, - ); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - - it( - "Increase counter on ER", - async () => { - const start = Date.now(); - const accounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, - { address: counterPda, role: AccountRole.WRITABLE }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncreaseCounter, "hex"), - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(1), - ), - ]); - const increaseCounterIx: Instruction = { - accounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - (tx) => setTransactionMessageFeePayer(userPubkey, tx), - (tx) => appendTransactionMessageInstructions([increaseCounterIx], tx), - ); - - // Send and confirm transaction - const txHash = await ephemeralConnection.sendAndConfirmTransaction( - transactionMessage, - [userKeypair], - { commitment: "confirmed", skipPreflight: true }, - ); - - console.log(`${Date.now() - start}ms (ER) Increment txHash: ${txHash}`); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - it( - "Commit changes from ER back to Solana", - async () => { - const start = Date.now(); - - // Prepare transaction - const accounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, - { address: counterPda, role: AccountRole.WRITABLE }, - { - address: address(MAGIC_PROGRAM_ID.toString()), - role: AccountRole.READONLY, - }, - { - address: address(MAGIC_CONTEXT_ID.toString()), - role: AccountRole.WRITABLE, - }, - ]; - const serializedInstructionData = Buffer.from( - CounterInstruction.Commit, - "hex", - ); - const commitIx: Instruction = { - accounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - (tx) => setTransactionMessageFeePayer(userPubkey, tx), - (tx) => appendTransactionMessageInstructions([commitIx], tx), - ); - - // Send and confirm transaction - const txHash = await ephemeralConnection.sendAndConfirmTransaction( - transactionMessage, - [userKeypair], - { commitment: "confirmed", skipPreflight: true }, - ); - - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Commit txHash: ${txHash}`); - - // Get the commitment signature on the base layer - const comfirmCommitStart = Date.now(); - // Await for the commitment on the base layer - const txCommitSgn = - await ephemeralConnection.getCommitmentSignature(txHash); - const commitDuration = Date.now() - comfirmCommitStart; - console.log( - `${commitDuration}ms (Base Layer) Commit txHash: ${txCommitSgn}`, - ); - - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - it( - "Increase counter on ER (2)", - async () => { - const start = Date.now(); - const accounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, - { address: counterPda, role: AccountRole.WRITABLE }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncreaseCounter, "hex"), - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(1), - ), - ]); - const increaseCounterIx: Instruction = { - accounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - (tx) => setTransactionMessageFeePayer(userPubkey, tx), - (tx) => appendTransactionMessageInstructions([increaseCounterIx], tx), - ); - - // Send and confirm transaction - const txHash = await ephemeralConnection.sendAndConfirmTransaction( - transactionMessage, - [userKeypair], - { commitment: "confirmed", skipPreflight: true }, - ); - - console.log(`${Date.now() - start}ms (ER) Increment txHash: ${txHash}`); - - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - it( - "Undelegate counter from ER", - async () => { - const start = Date.now(); - - // Prepare transaction - const accounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, - { address: counterPda, role: AccountRole.WRITABLE }, - { - address: address(MAGIC_PROGRAM_ID.toString()), - role: AccountRole.READONLY, - }, - { - address: address(MAGIC_CONTEXT_ID.toString()), - role: AccountRole.WRITABLE, - }, - ]; - const serializedInstructionData = Buffer.from( - CounterInstruction.CommitAndUndelegate, - "hex", - ); - const undelegateIx: Instruction = { - accounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - (tx) => setTransactionMessageFeePayer(userPubkey, tx), - (tx) => appendTransactionMessageInstructions([undelegateIx], tx), - ); - - // Send and confirm transaction - const txHash = await ephemeralConnection.sendAndConfirmTransaction( - transactionMessage, - [userKeypair], - { commitment: "confirmed", skipPreflight: true }, - ); - - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Undelegate txHash: ${txHash}`); - - // Get the commitment signature on the base layer - const comfirmCommitStart = Date.now(); - // Await for the commitment on the base layer - const txCommitSgn = - await ephemeralConnection.getCommitmentSignature(txHash); - const commitDuration = Date.now() - comfirmCommitStart; - console.log( - `${commitDuration}ms (Base Layer) Undelegate txHash: ${txCommitSgn}`, - ); - - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); -}); diff --git a/counter/native-rust/tests-magicsvm/rust-counter.test.ts b/counter/native-rust/tests/rust-counter.test.ts similarity index 99% rename from counter/native-rust/tests-magicsvm/rust-counter.test.ts rename to counter/native-rust/tests/rust-counter.test.ts index ad8b4fe2..8d90ff53 100644 --- a/counter/native-rust/tests-magicsvm/rust-counter.test.ts +++ b/counter/native-rust/tests/rust-counter.test.ts @@ -8,10 +8,7 @@ import { } from "@solana/web3.js"; import * as borsh from "borsh"; import bs58 from "bs58"; -import { - CounterInstruction, - IncreaseCounterPayload, -} from "../tests/web3js/schema"; +import { CounterInstruction, IncreaseCounterPayload } from "./schema"; import { MagicSVM, TransactionMetadata, diff --git a/counter/native-rust/tests/kit/schema.ts b/counter/native-rust/tests/schema.ts similarity index 100% rename from counter/native-rust/tests/kit/schema.ts rename to counter/native-rust/tests/schema.ts diff --git a/counter/native-rust/tests/web3js/advanced-magic.test.ts b/counter/native-rust/tests/web3js/advanced-magic.test.ts deleted file mode 100644 index 68157684..00000000 --- a/counter/native-rust/tests/web3js/advanced-magic.test.ts +++ /dev/null @@ -1,365 +0,0 @@ -import { - Keypair, - PublicKey, - SystemProgram, - Transaction, - TransactionInstruction, - Connection, - sendAndConfirmTransaction, -} from "@solana/web3.js"; -import { - initializeSolSignerKeypair, - airdropSolIfNeeded, -} from "./initializeKeypair"; -import * as borsh from "borsh"; -import * as fs from "fs"; -import { CounterInstruction, IncreaseCounterPayload } from "./schema"; -import { - DELEGATION_PROGRAM_ID, - delegationRecordPdaFromDelegatedAccount, - delegationMetadataPdaFromDelegatedAccount, - delegateBufferPdaFromDelegatedAccountAndOwnerProgram, - MAGIC_CONTEXT_ID, - MAGIC_PROGRAM_ID, - GetCommitmentSignature, - ConnectionMagicRouter, -} from "@magicblock-labs/ephemeral-rollups-sdk"; -import { describe, it, beforeAll, expect } from "vitest"; - -import dotenv from "dotenv"; -dotenv.config(); - -describe("magic-router-and-multiple-atomic-ixs", async () => { - const TEST_TIMEOUT = 60_000; - console.log("advanced-magic.ts"); - - // Get programId from target folder - const keypairPath = "target/deploy/rust_counter-keypair.json"; - const secretKeyArray = Uint8Array.from( - JSON.parse(fs.readFileSync(keypairPath, "utf8")), - ); - const keypair = Keypair.fromSecretKey(secretKeyArray); - const PROGRAM_ID = keypair.publicKey; - - // Set up a connection to blockchain cluster - const connection = new ConnectionMagicRouter( - process.env.ROUTER_ENDPOINT || "https://devnet-router.magicblock.app", - { - wsEndpoint: - process.env.ROUTER_WS_ENDPOINT || "wss://devnet-router.magicblock.app", - }, - ); - - // Create user keypair and airdrop SOL if needed - const userKeypair = initializeSolSignerKeypair(); // Use the keypair management function - - // Run this once before all tests - let ephemeralValidator; - beforeAll(async () => { - console.log("Endpoint:", connection.rpcEndpoint.toString()); - ephemeralValidator = await connection.getClosestValidator(); - console.log("Detected validator identity:", ephemeralValidator); - await airdropSolIfNeeded(connection, userKeypair.publicKey, 2, 0.05); - }, TEST_TIMEOUT); - - // Get pda of counter_account - let [counterPda, bump] = PublicKey.findProgramAddressSync( - [Buffer.from("counter"), userKeypair.publicKey.toBuffer()], - PROGRAM_ID, - ); - - console.log("Program ID: ", PROGRAM_ID.toString()); - console.log("Counter PDA: ", counterPda.toString()); - - it( - "Initialize counter on Solana", - async () => { - const start = Date.now(); - - // 1: InitializeCounter - // Create, send and confirm transaction - let tx = new Transaction(); - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - // System Program - { - pubkey: SystemProgram.programId, - isSigner: false, - isWritable: false, - }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.InitializeCounter, "hex"), - ]); - const initializeIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }); - tx.add(initializeIx); - const txHash = await sendAndConfirmTransaction( - connection, - tx, - [userKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (Base Layer) Initialize txHash: ${txHash}`); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - - it( - "Delegate counter to ER", - async () => { - const start = Date.now(); - - // 2: Delegate - // Create, send and confirm transaction - let tx = new Transaction(); - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // System Program - { - pubkey: SystemProgram.programId, - isSigner: false, - isWritable: false, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - // Owner Program - { - pubkey: PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - // Delegation Buffer - { - pubkey: delegateBufferPdaFromDelegatedAccountAndOwnerProgram( - counterPda, - PROGRAM_ID, - ), - isSigner: false, - isWritable: true, - }, - // Delegation Record - { - pubkey: delegationRecordPdaFromDelegatedAccount(counterPda), - isSigner: false, - isWritable: true, - }, - // Delegation Metadata - { - pubkey: delegationMetadataPdaFromDelegatedAccount(counterPda), - isSigner: false, - isWritable: true, - }, - // Delegation Program - { - pubkey: DELEGATION_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - ]; - const serializedInstructionData = Buffer.from( - CounterInstruction.Delegate, - "hex", - ); - const delegateIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }); - tx.add(delegateIx); - const txHash = await sendAndConfirmTransaction( - connection, - tx, - [userKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (Base Layer) Delegate txHash: ${txHash}`); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - - it( - "Increase delegated counter and commit through CPI", - async () => { - const start = Date.now(); - - // 1: IncreaseCounter - // Create, send and confirm transaction - let tx = new Transaction(); - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - // Magic Program - { - pubkey: MAGIC_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - // Magic Context - { - pubkey: MAGIC_CONTEXT_ID, - isSigner: false, - isWritable: true, - }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncrementAndCommit, "hex"), - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(1), - ), - ]); - const IncrementAndCommitIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }); - tx.add(IncrementAndCommitIx); - const txHash = await sendAndConfirmTransaction( - connection, - tx, - [userKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Increment And Commit txHash: ${txHash}`); - - // Get the commitment signature on the base layer - const comfirmCommitStart = Date.now(); - // Await for the commitment on the base layer - const txCommitSgn = await GetCommitmentSignature( - txHash, - new Connection(ephemeralValidator.fqdn), - ); - const commitDuration = Date.now() - comfirmCommitStart; - console.log( - `${commitDuration}ms (Base Layer) Commit txHash: ${txCommitSgn}`, - ); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - - it( - "Increase delegated counter and undelegate through CPI", - async () => { - const start = Date.now(); - - // 1: IncreaseCounter - // Create, send and confirm transaction - let tx = new Transaction(); - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - // Magic Program - { - pubkey: MAGIC_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - // Magic Context - { - pubkey: MAGIC_CONTEXT_ID, - isSigner: false, - isWritable: true, - }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncrementAndUndelegate, "hex"), - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(1), - ), - ]); - const IncreamentAndUndelegateIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }); - tx.add(IncreamentAndUndelegateIx); - const txHash = await sendAndConfirmTransaction( - connection, - tx, - [userKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log( - `${duration}ms (ER) Increment and Undelegate txHash: ${txHash}`, - ); - - // Get the undelegate signature on the base layer - const comfirmCommitStart = Date.now(); - // Await for the commitment on the base layer - const txCommitSgn = await GetCommitmentSignature( - txHash, - new Connection(ephemeralValidator.fqdn), - ); - const commitDuration = Date.now() - comfirmCommitStart; - console.log( - `${commitDuration}ms (Base Layer) Undelegate txHash: ${txCommitSgn}`, - ); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); -}); diff --git a/counter/native-rust/tests/web3js/initializeKeypair.ts b/counter/native-rust/tests/web3js/initializeKeypair.ts deleted file mode 100644 index 1b4e060f..00000000 --- a/counter/native-rust/tests/web3js/initializeKeypair.ts +++ /dev/null @@ -1,65 +0,0 @@ -import * as web3 from "@solana/web3.js"; -import * as fs from "fs"; - -import dotenv from "dotenv"; -dotenv.config(); - -// Initialize Keypair for SOL -export function initializeSolSignerKeypair(): web3.Keypair { - if (process.env.PRIVATE_KEY) { - const secret = JSON.parse(process.env.PRIVATE_KEY ?? "") as number[]; - const secretKey = Uint8Array.from(secret); - const keypairFromSecretKey = web3.Keypair.fromSecretKey(secretKey); - console.log(`\rCurrent SOL Public Key: ${keypairFromSecretKey.publicKey}`); - - return keypairFromSecretKey; - } else if (process.env.ANCHOR_WALLET) { - const anchorWallet = web3.Keypair.fromSecretKey( - Uint8Array.from( - JSON.parse(fs.readFileSync(process.env.ANCHOR_WALLET, "utf8")), - ), - ); - console.log( - `\rCurrent Anchor Wallet Public Key: ${anchorWallet.publicKey}`, - ); - return anchorWallet; - } else { - const signer = web3.Keypair.generate(); - // Append the new key-value pair to the contents of the .env file - console.log(`New SOL Public Key: ${signer.publicKey}`); - fs.writeFileSync(".env", `PRIVATE_KEY=[${signer.secretKey.toString()}]\n`); - return signer; - } -} - -export async function airdropSolIfNeeded( - connection: web3.Connection, - pubkey: web3.PublicKey, - amount: number, - threshold: number, -) { - if ( - connection.rpcEndpoint.includes("dev") || - connection.rpcEndpoint.includes("test") || - connection.rpcEndpoint.includes("local") || - connection.rpcEndpoint.includes("http://") - ) { - const balance = await connection.getBalance(pubkey); - console.log( - "Current balance is", - balance / web3.LAMPORTS_PER_SOL, - " SOL", - "\n", - ); - if (balance < threshold * web3.LAMPORTS_PER_SOL) { - console.log(`Selected cluster: ${connection.rpcEndpoint}`); - console.log(`Airdropping ${amount} SOL...`); - const sig = await connection.requestAirdrop( - pubkey, - amount * web3.LAMPORTS_PER_SOL, - ); - await connection.confirmTransaction(sig, "confirmed"); - console.log(`\rAirdrop of ${amount} SOL was successful.`); - } - } -} diff --git a/counter/native-rust/tests/web3js/rust-counter.test.ts b/counter/native-rust/tests/web3js/rust-counter.test.ts deleted file mode 100644 index 2c092f32..00000000 --- a/counter/native-rust/tests/web3js/rust-counter.test.ts +++ /dev/null @@ -1,532 +0,0 @@ -import { - Keypair, - PublicKey, - SystemProgram, - Transaction, - TransactionInstruction, - Connection, - sendAndConfirmTransaction, -} from "@solana/web3.js"; -import { - initializeSolSignerKeypair, - airdropSolIfNeeded, -} from "./initializeKeypair"; -import * as borsh from "borsh"; -import * as fs from "fs"; -import { CounterInstruction, IncreaseCounterPayload } from "./schema"; -import { - DELEGATION_PROGRAM_ID, - delegationRecordPdaFromDelegatedAccount, - delegationMetadataPdaFromDelegatedAccount, - delegateBufferPdaFromDelegatedAccountAndOwnerProgram, - MAGIC_CONTEXT_ID, - MAGIC_PROGRAM_ID, - GetCommitmentSignature, -} from "@magicblock-labs/ephemeral-rollups-sdk"; - -import { describe, it, beforeAll, expect } from "vitest"; - -import dotenv from "dotenv"; -dotenv.config(); - -describe("basic-test", async () => { - const TEST_TIMEOUT = 60_000; - console.log("rust-counter.ts"); - - // Get programId from target folder - const keypairPath = "target/deploy/rust_counter-keypair.json"; - const secretKeyArray = Uint8Array.from( - JSON.parse(fs.readFileSync(keypairPath, "utf8")), - ); - const keypair = Keypair.fromSecretKey(secretKeyArray); - const PROGRAM_ID = keypair.publicKey; - - // Set up a connection to blockchain cluster - const connectionBaseLayer = new Connection( - process.env.PROVIDER_ENDPOINT || "https://api.devnet.solana.com", - { wsEndpoint: process.env.WS_ENDPOINT || "wss://api.devnet.solana.com" }, - ); - const connectionEphemeralRollup = new Connection( - process.env.EPHEMERAL_PROVIDER_ENDPOINT || - "https://devnet-as.magicblock.app/", - { - wsEndpoint: - process.env.EPHEMERAL_WS_ENDPOINT || "wss://devnet-as.magicblock.app/", - }, - ); - console.log("Base Layer Connection: ", connectionBaseLayer.rpcEndpoint); - console.log( - "Ephemeral Rollup Connection: ", - connectionEphemeralRollup.rpcEndpoint, - ); - - // Create user keypair and airdrop SOL if needed - const userKeypair = initializeSolSignerKeypair(); - - // Run this once before all tests - beforeAll(async () => { - await airdropSolIfNeeded( - connectionBaseLayer, - userKeypair.publicKey, - 2, - 0.05, - ); - }, TEST_TIMEOUT); - - // Get pda of counter_account - let [counterPda, bump] = PublicKey.findProgramAddressSync( - [Buffer.from("counter"), userKeypair.publicKey.toBuffer()], - PROGRAM_ID, - ); - console.log("Program ID: ", PROGRAM_ID.toString()); - console.log("Counter PDA: ", counterPda.toString()); - - it( - "Initialize counter on Solana", - async () => { - const start = Date.now(); - - // 1: IncreaseCounter - // Create, send and confirm transaction - const tx = new Transaction(); - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - // System Program - { - pubkey: SystemProgram.programId, - isSigner: false, - isWritable: false, - }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.InitializeCounter, "hex"), - ]); - const initializeIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }); - tx.add(initializeIx); - const txHash = await sendAndConfirmTransaction( - connectionBaseLayer, - tx, - [userKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (Base Layer) Initialize txHash: ${txHash}`); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - it( - "Increase counter on Solana", - async () => { - const start = Date.now(); - - // 1: IncreaseCounter - // Create, send and confirm transaction - const tx = new Transaction(); - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncreaseCounter, "hex"), - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(1), - ), - ]); - const increaseCounterIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }); - tx.add(increaseCounterIx); - const txHash = await sendAndConfirmTransaction( - connectionBaseLayer, - tx, - [userKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (Base Layer) Increment txHash: ${txHash}`); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - it( - "Delegate counter to ER", - async function () { - const start = Date.now(); - - // Validator identity for delegation: VALIDATOR env var wins; otherwise default to - // local-ER validator iff the ER endpoint is localhost. - const isLocal = - connectionEphemeralRollup.rpcEndpoint.includes("localhost") || - connectionEphemeralRollup.rpcEndpoint.includes("127.0.0.1"); - const validatorPubkey = process.env.VALIDATOR - ? new PublicKey(process.env.VALIDATOR) - : isLocal - ? new PublicKey("mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev") - : null; - const remainingAccounts = validatorPubkey - ? [{ pubkey: validatorPubkey, isSigner: false, isWritable: false }] - : []; - - // 2: Delegate - // Create, send and confirm transaction - const tx = new Transaction(); - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // System Program - { - pubkey: SystemProgram.programId, - isSigner: false, - isWritable: false, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - // Owner Program - { - pubkey: PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - // Delegation Buffer - { - pubkey: delegateBufferPdaFromDelegatedAccountAndOwnerProgram( - counterPda, - PROGRAM_ID, - ), - isSigner: false, - isWritable: true, - }, - // Delegation Record - { - pubkey: delegationRecordPdaFromDelegatedAccount(counterPda), - isSigner: false, - isWritable: true, - }, - // Delegation Metadata - { - pubkey: delegationMetadataPdaFromDelegatedAccount(counterPda), - isSigner: false, - isWritable: true, - }, - // Delegation Program - { - pubkey: DELEGATION_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - // ER Validator - ...remainingAccounts, - ]; - const serializedInstructionData = Buffer.from( - CounterInstruction.Delegate, - "hex", - ); - const delegateIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }); - tx.add(delegateIx); - const txHash = await sendAndConfirmTransaction( - connectionBaseLayer, - tx, - [userKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (Base Layer) Delegate txHash: ${txHash}`); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - it( - "Increase counter on ER (1)", - async () => { - const start = Date.now(); - - // 1: IncreaseCounter - // Create, send and confirm transaction - const tx = new Transaction(); - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncreaseCounter, "hex"), - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(1), - ), - ]); - const initializeIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }); - tx.add(initializeIx); - const txHash = await sendAndConfirmTransaction( - connectionEphemeralRollup, - tx, - [userKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Increment txHash: ${txHash}`); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - it( - "Commit counter state on ER to Solana", - async () => { - const start = Date.now(); - - // 3: Commit - // Create, send and confirm transaction - const tx = new Transaction(); - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - // Magic Program - { - pubkey: MAGIC_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - // Magic Context - { - pubkey: MAGIC_CONTEXT_ID, - isSigner: false, - isWritable: true, - }, - ]; - const serializedInstructionData = Buffer.from( - CounterInstruction.Commit, - "hex", - ); - const commitIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }); - tx.add(commitIx); - const txHash = await sendAndConfirmTransaction( - connectionEphemeralRollup, - tx, - [userKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Commit txHash: ${txHash}`); - - // Get the commitment signature on the base layer - const comfirmCommitStart = Date.now(); - // Await for the commitment on the base layer - const txCommitSgn = await GetCommitmentSignature( - txHash, - // tx, - connectionEphemeralRollup, - ); - const commitDuration = Date.now() - comfirmCommitStart; - console.log( - `${commitDuration}ms (Base Layer) Commit txHash: ${txCommitSgn}`, - ); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - it( - "Increase counter on ER (2)", - async () => { - const start = Date.now(); - - // 1: IncreaseCounter - // Create, send and confirm transaction - const tx = new Transaction(); - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncreaseCounter, "hex"), - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(1), - ), - ]); - const incrementIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }); - tx.add(incrementIx); - const txHash = await sendAndConfirmTransaction( - connectionEphemeralRollup, - tx, - [userKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Increment txHash: ${txHash}`); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - it( - "Commit and undelegate counter on ER to Solana", - async function () { - const start = Date.now(); - - // 3: CommitAndUndelegate - // Create, send and confirm transaction - const tx = new Transaction(); - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - // Magic Program - { - pubkey: MAGIC_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - // Magic Context - { - pubkey: MAGIC_CONTEXT_ID, - isSigner: false, - isWritable: true, - }, - ]; - const serializedInstructionData = Buffer.from( - CounterInstruction.CommitAndUndelegate, - "hex", - ); - const undelegateIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }); - tx.add(undelegateIx); - const txHash = await sendAndConfirmTransaction( - connectionEphemeralRollup, - tx, - [userKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Undelegate txHash: ${txHash}`); - - // Get the commitment signature on the base layer - const comfirmCommitStart = Date.now(); - // Await for the commitment on the base layer - const txCommitSgn = await GetCommitmentSignature( - txHash, - // tx, - connectionEphemeralRollup, - ); - const commitDuration = Date.now() - comfirmCommitStart; - console.log( - `${commitDuration}ms (Base Layer) Undelegate txHash: ${txCommitSgn}`, - ); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); -}); diff --git a/counter/native-rust/tests/web3js/schema.ts b/counter/native-rust/tests/web3js/schema.ts deleted file mode 100644 index 72c17edd..00000000 --- a/counter/native-rust/tests/web3js/schema.ts +++ /dev/null @@ -1,41 +0,0 @@ -export class Counter { - count = 0; - constructor(fields: { count: number } | undefined = undefined) { - if (fields) { - this.count = fields.count; - } - } -} - -export const CounterSchema = new Map([ - [Counter, { kind: "struct", fields: [["count", "u64"]] }], -]); - -export enum CounterInstruction { - InitializeCounter = "0000000000000000", // [0, 0, 0, 0, 0, 0, 0, 0] - IncreaseCounter = "0100000000000000", // [1, 0, 0, 0, 0, 0, 0, 0] - Delegate = "0200000000000000", // [2, 0, 0, 0, 0, 0, 0, 0] - CommitAndUndelegate = "0300000000000000", // [3, 0, 0, 0, 0, 0, 0, 0] - Commit = "0400000000000000", // [4, 0, 0, 0, 0, 0, 0, 0] - IncrementAndCommit = "0500000000000000", // [5, 0, 0, 0, 0, 0, 0, 0] - IncrementAndUndelegate = "0600000000000000", // [6, 0, 0, 0, 0, 0, 0, 0] - Undelegate = "C41C29CE302533A7", // [196, 28, 41, 206, 48, 37, 51, 167] -} - -export class IncreaseCounterPayload { - increase_by: number; - - constructor(increase_by: number) { - this.increase_by = increase_by; - } - - static schema = new Map([ - [ - IncreaseCounterPayload, - { - kind: "struct", - fields: [["increase_by", "u64"]], - }, - ], - ]); -} diff --git a/counter/native-rust/vitest.config.ts b/counter/native-rust/vitest.config.ts index 27bad64a..a89ef7e1 100644 --- a/counter/native-rust/vitest.config.ts +++ b/counter/native-rust/vitest.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { fileParallelism: false, - include: ['tests/**/*.test.ts', 'tests-magicsvm/**/*.test.ts'], + include: ['tests/**/*.test.ts'], reporters: 'verbose', }, -}); \ No newline at end of file +}); diff --git a/counter/pinocchio/README.md b/counter/pinocchio/README.md index b75b2a7e..d61d4512 100644 --- a/counter/pinocchio/README.md +++ b/counter/pinocchio/README.md @@ -26,23 +26,17 @@ yarn yarn build ``` -This example runs against a **local MagicBlock cluster** — a base Solana validator plus an Ephemeral Rollup, fronted by the Query Filtering Service. Start it in one terminal and leave it running: +Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash -yarn setup +yarn test ``` -`yarn setup` runs `SETUP_ONLY=1 ./scripts/test-locally.sh pinocchio-counter` from the repo root: it builds this example, boots the validators, and holds them until you press a key. +MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no validators, no +network. The suite initializes and increments a Pinocchio counter, then tests delegation, commits, +and undelegation. -Then, in a second terminal, run this example's tests against that cluster: - -```bash -yarn test:local -``` - -`test:local` sources `scripts/local-env.sh` so the SDK targets the local cluster (without it the tests fall back to devnet). Use `yarn test:watch` to re-run the suite on file changes. - -> Tip: to build and run **every** example end-to-end (what CI does), run the repo-root `./scripts/test-locally.sh` directly. +A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. ## Key Differences from Rust Counter diff --git a/counter/pinocchio/package.json b/counter/pinocchio/package.json index e84badbe..c13a2cc7 100644 --- a/counter/pinocchio/package.json +++ b/counter/pinocchio/package.json @@ -5,10 +5,7 @@ "main": "index.js", "scripts": { "test": "vitest run tests/", - "test:local": ". ../../scripts/local-env.sh && npx vitest run tests/kit/", - "test:magicsvm": "vitest run tests-magicsvm/", "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml", - "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh pinocchio-counter", "test:watch": "vitest watch tests/", "build": "cargo build-sbf --features logging", "build:release": "cargo build --release", diff --git a/counter/pinocchio/tests/kit/initializeKeypair.ts b/counter/pinocchio/tests/kit/initializeKeypair.ts deleted file mode 100644 index b8eb26a3..00000000 --- a/counter/pinocchio/tests/kit/initializeKeypair.ts +++ /dev/null @@ -1,97 +0,0 @@ -import { - generateKeyPair, - createKeyPairFromPrivateKeyBytes, - createKeyPairFromBytes, - Address, - createSolanaRpc, - createSolanaRpcSubscriptions, - airdropFactory, - lamports, - getAddressFromPublicKey, - address, -} from "@solana/kit"; -import * as fs from "fs"; - -import dotenv from "dotenv"; -dotenv.config(); - -// Initialize Keypair for SOL -export async function initializeSolSignerKeypair(): Promise< - ReturnType -> { - if (process.env.PRIVATE_KEY) { - const secret = JSON.parse(process.env.PRIVATE_KEY ?? "") as number[]; - const keypair = await createKeyPairFromBytes(new Uint8Array(secret)); - console.log( - `\rCurrent SOL Public Key: ${await getAddressFromPublicKey(keypair.publicKey)}`, - ); - - return keypair; - } else if (process.env.ANCHOR_WALLET) { - const anchorWallet = await createKeyPairFromBytes( - Uint8Array.from( - JSON.parse(fs.readFileSync(process.env.ANCHOR_WALLET, "utf8")), - ), - ); - console.log( - `\rCurrent Anchor Wallet Public Key: ${await getAddressFromPublicKey(anchorWallet.publicKey)}`, - ); - return anchorWallet; - } else { - const { privateKey, publicKey } = await generateKeyPair(); - const privateKeyBytes = new Uint8Array( - await crypto.subtle.exportKey("raw", privateKey), - ); - const publicKeyBytes = new Uint8Array( - await crypto.subtle.exportKey("raw", publicKey), - ); - const keypairBytes = new Uint8Array([ - ...privateKeyBytes, - ...publicKeyBytes, - ]); - // Append the new key-value pair to the contents of the .env file - console.log( - `New SOL Public Key: ${await getAddressFromPublicKey(publicKey)}`, - ); - fs.writeFileSync( - ".env", - `PRIVATE_KEY=${JSON.stringify(Array.from(keypairBytes))}\n`, - ); - - const keypair = await createKeyPairFromBytes(keypairBytes); - return keypair; - } -} - -export async function airdropSolIfNeeded( - rpcEndpoint: string, - wsEndpoint: string, - pubkey: Address, - amount: number, - threshold: number = 1, -) { - const SOL_PER_LAMPORTS = BigInt("1000000000"); - - if ( - rpcEndpoint.includes("dev") || - rpcEndpoint.includes("test") || - rpcEndpoint.includes("local") || - rpcEndpoint.includes("http://") - ) { - const rpc = await createSolanaRpc(rpcEndpoint); - const rpcSubscriptions = createSolanaRpcSubscriptions(wsEndpoint); - const balance = (await rpc.getBalance(pubkey).send())?.value; - console.log("Current balance is", balance / SOL_PER_LAMPORTS, " SOL", "\n"); - if (balance < BigInt(threshold) * SOL_PER_LAMPORTS) { - console.log(`Selected cluster: ${rpcEndpoint}`); - console.log(`Airdropping ${amount} SOL...`); - const airdrop = airdropFactory({ rpc, rpcSubscriptions }); - await airdrop({ - commitment: "confirmed", - recipientAddress: address(pubkey), - lamports: lamports(BigInt(SOL_PER_LAMPORTS) * BigInt(amount)), - }); - console.log(`\rAirdrop of ${amount} SOL was successful.`); - } - } -} diff --git a/counter/pinocchio/tests/kit/pinocchio-counter.test.ts b/counter/pinocchio/tests/kit/pinocchio-counter.test.ts deleted file mode 100644 index 8cda45af..00000000 --- a/counter/pinocchio/tests/kit/pinocchio-counter.test.ts +++ /dev/null @@ -1,445 +0,0 @@ -import { - initializeSolSignerKeypair, - airdropSolIfNeeded, -} from "./initializeKeypair"; -import * as borsh from "borsh"; -import * as fs from "fs"; -import dotenv from "dotenv"; -import { CounterInstruction, IncreaseCounterPayload } from "./schema"; -import { - Connection, - DELEGATION_PROGRAM_ID, - delegationRecordPdaFromDelegatedAccount, - delegationMetadataPdaFromDelegatedAccount, - delegateBufferPdaFromDelegatedAccountAndOwnerProgram, - MAGIC_CONTEXT_ID, - MAGIC_PROGRAM_ID, -} from "@magicblock-labs/ephemeral-rollups-kit"; -import { - Instruction, - getAddressEncoder, - getProgramDerivedAddress, - AccountRole, - createKeyPairFromBytes, - getAddressFromPublicKey, - address, - createTransactionMessage, - appendTransactionMessageInstructions, - pipe, - setTransactionMessageFeePayer, - createSolanaRpc, -} from "@solana/kit"; -import { SYSTEM_PROGRAM_ADDRESS } from "@solana-program/system"; -import { describe, it, beforeAll, expect } from "vitest"; - -dotenv.config(); - -describe("basic-test", async () => { - const TEST_TIMEOUT = 60_000; - - console.log("🧪 Running pinocchio-counter.ts test suite..."); - - // Load the deployed program keypair and get Proram ID - const keypairPath = "target/deploy/pinocchio_counter-keypair.json"; - const secretKeyArray = Uint8Array.from( - JSON.parse(fs.readFileSync(keypairPath, "utf8")), - ); - const keypair = await createKeyPairFromBytes(secretKeyArray); - const PROGRAM_ID = await getAddressFromPublicKey(keypair.publicKey); - - // Connections - const rpc = createSolanaRpc( - process.env.PROVIDER_ENDPOINT || "https://api.devnet.solana.com", - ); - const connection = await Connection.create( - process.env.PROVIDER_ENDPOINT || "https://api.devnet.solana.com", - process.env.WS_ENDPOINT || "wss://api.devnet.solana.com", - ); - const ephemeralConnection = await Connection.create( - process.env.EPHEMERAL_PROVIDER_ENDPOINT || - "https://devnet-as.magicblock.app", - process.env.EPHEMERAL_WS_ENDPOINT || "wss://devnet-as.magicblock.app", - ); - - console.log( - "Base Layer RPC:", - connection.clusterUrlHttp, - "| Websocket:", - connection.clusterUrlWs, - ); - console.log( - "ER RPC:", - ephemeralConnection.clusterUrlHttp, - "| Websocket:", - ephemeralConnection.clusterUrlWs, - ); - - // Prepare user - const userKeypair = await initializeSolSignerKeypair(); - const userPubkey = await getAddressFromPublicKey(userKeypair.publicKey); - - // Get PDA - const addressEncoder = getAddressEncoder(); - const [counterPda, bump] = await getProgramDerivedAddress({ - programAddress: PROGRAM_ID, - seeds: [Buffer.from("counter"), addressEncoder.encode(userPubkey)], - }); - const bumpBytes = Buffer.from([bump]); - console.log("Progam ID:", PROGRAM_ID); - console.log("Counter PDA:", counterPda); - - // Ensure test wallet has SOL - beforeAll(async () => { - await airdropSolIfNeeded( - connection.clusterUrlHttp, - connection.clusterUrlWs, - userPubkey, - 2, - ); - }, TEST_TIMEOUT); - - it( - "Initialize counter on Solana", - async () => { - const counterAccount = await rpc.getAccountInfo(counterPda).send(); - if (counterAccount.value?.owner === DELEGATION_PROGRAM_ID) { - console.log("Counter account already delegated"); - return; - } - - const start = Date.now(); - - // Prepare transaction - const accounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, - { address: counterPda, role: AccountRole.WRITABLE }, - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.InitializeCounter, "hex"), - bumpBytes, - ]); - const initializeIx: Instruction = { - accounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - let transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - (tx) => setTransactionMessageFeePayer(userPubkey, tx), - (tx) => appendTransactionMessageInstructions([initializeIx], tx), - ); - - // Send and confirm transaction - const txHash = await connection.sendAndConfirmTransaction( - transactionMessage, - [userKeypair], - { commitment: "confirmed", skipPreflight: true }, - ); - - console.log( - `${Date.now() - start}ms (Base Layer) Initialize txHash: ${txHash}`, - ); - - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - - it( - "Increase counter on Solana", - async () => { - const counterAccount = await rpc.getAccountInfo(counterPda).send(); - if (counterAccount.value?.owner === DELEGATION_PROGRAM_ID) { - console.log("Counter account already delegated"); - return; - } - - const start = Date.now(); - - // Prepare transaction - const accounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, - { address: counterPda, role: AccountRole.WRITABLE }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncreaseCounter, "hex"), - bumpBytes, - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(1), - ), - ]); - const increaseCounterIx: Instruction = { - accounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - (tx) => setTransactionMessageFeePayer(userPubkey, tx), - (tx) => appendTransactionMessageInstructions([increaseCounterIx], tx), - ); - - // Send and confirm transaction - const txHash = await connection.sendAndConfirmTransaction( - transactionMessage, - [userKeypair], - { commitment: "confirmed", skipPreflight: true }, - ); - - console.log( - `${Date.now() - start}ms (Base Layer) Increment txHash: ${txHash}`, - ); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - - it( - "Delegate counter to ER", - async () => { - const counterAccount = await rpc.getAccountInfo(counterPda).send(); - if (counterAccount.value?.owner === DELEGATION_PROGRAM_ID) { - console.log("Counter account already delegated"); - return; - } - - const start = Date.now(); - - // Validator identity for delegation: env override wins; otherwise default by network. - const validatorAddress = address( - process.env.VALIDATOR || "mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev", - ); - - // Prepare transaction - const accounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, - { address: counterPda, role: AccountRole.WRITABLE }, - { address: PROGRAM_ID, role: AccountRole.READONLY }, - { - address: await delegateBufferPdaFromDelegatedAccountAndOwnerProgram( - counterPda, - PROGRAM_ID, - ), - role: AccountRole.WRITABLE, - }, - { - address: await delegationRecordPdaFromDelegatedAccount(counterPda), - role: AccountRole.WRITABLE, - }, - { - address: await delegationMetadataPdaFromDelegatedAccount(counterPda), - role: AccountRole.WRITABLE, - }, - { address: DELEGATION_PROGRAM_ID, role: AccountRole.READONLY }, - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, - { address: validatorAddress, role: AccountRole.READONLY }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.Delegate, "hex"), - bumpBytes, - ]); - const delegateIx: Instruction = { - accounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - (tx) => setTransactionMessageFeePayer(userPubkey, tx), - (tx) => appendTransactionMessageInstructions([delegateIx], tx), - ); - - // Send and confirm transaction - const txHash = await connection.sendAndConfirmTransaction( - transactionMessage, - [userKeypair], - { commitment: "confirmed", skipPreflight: true }, - ); - - console.log( - `${Date.now() - start}ms (Base Layer) Delegate txHash: ${txHash}`, - ); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - - it( - "Increase counter on ER", - async () => { - const start = Date.now(); - const accounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, - { address: counterPda, role: AccountRole.WRITABLE }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncreaseCounter, "hex"), - bumpBytes, - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(1), - ), - ]); - const increaseCounterIx: Instruction = { - accounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - (tx) => setTransactionMessageFeePayer(userPubkey, tx), - (tx) => appendTransactionMessageInstructions([increaseCounterIx], tx), - ); - - // Send and confirm transaction - const txHash = await ephemeralConnection.sendAndConfirmTransaction( - transactionMessage, - [userKeypair], - { commitment: "confirmed", skipPreflight: true }, - ); - - console.log(`${Date.now() - start}ms (ER) Increment txHash: ${txHash}`); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - - it( - "Commit changes from ER back to Solana", - async () => { - const start = Date.now(); - - // Prepare transaction - const accounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, - { address: counterPda, role: AccountRole.WRITABLE }, - { - address: address(MAGIC_PROGRAM_ID.toString()), - role: AccountRole.READONLY, - }, - { - address: address(MAGIC_CONTEXT_ID.toString()), - role: AccountRole.WRITABLE, - }, - ]; - const serializedInstructionData = Buffer.from( - CounterInstruction.Commit, - "hex", - ); - const commitIx: Instruction = { - accounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - (tx) => setTransactionMessageFeePayer(userPubkey, tx), - (tx) => appendTransactionMessageInstructions([commitIx], tx), - ); - - // Send and confirm transaction - const txHash = await ephemeralConnection.sendAndConfirmTransaction( - transactionMessage, - [userKeypair], - { commitment: "confirmed", skipPreflight: true }, - ); - - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Commit txHash: ${txHash}`); - - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - - it( - "Increase counter on ER (2)", - async () => { - const start = Date.now(); - const accounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, - { address: counterPda, role: AccountRole.WRITABLE }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncreaseCounter, "hex"), - bumpBytes, - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(1), - ), - ]); - const increaseCounterIx: Instruction = { - accounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - (tx) => setTransactionMessageFeePayer(userPubkey, tx), - (tx) => appendTransactionMessageInstructions([increaseCounterIx], tx), - ); - - // Send and confirm transaction - const txHash = await ephemeralConnection.sendAndConfirmTransaction( - transactionMessage, - [userKeypair], - { commitment: "confirmed", skipPreflight: true }, - ); - - console.log(`${Date.now() - start}ms (ER) Increment txHash: ${txHash}`); - - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - - it( - "Undelegate counter from ER", - async () => { - const start = Date.now(); - - // Prepare transaction - const accounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, - { address: counterPda, role: AccountRole.WRITABLE }, - { - address: address(MAGIC_PROGRAM_ID.toString()), - role: AccountRole.READONLY, - }, - { - address: address(MAGIC_CONTEXT_ID.toString()), - role: AccountRole.WRITABLE, - }, - ]; - const serializedInstructionData = Buffer.from( - CounterInstruction.CommitAndUndelegate, - "hex", - ); - const undelegateIx: Instruction = { - accounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - (tx) => setTransactionMessageFeePayer(userPubkey, tx), - (tx) => appendTransactionMessageInstructions([undelegateIx], tx), - ); - - // Send and confirm transaction - const txHash = await ephemeralConnection.sendAndConfirmTransaction( - transactionMessage, - [userKeypair], - { commitment: "confirmed", skipPreflight: true }, - ); - - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Undelegate txHash: ${txHash}`); - - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); -}); diff --git a/counter/pinocchio/tests/kit/schema.ts b/counter/pinocchio/tests/kit/schema.ts deleted file mode 100644 index 04fcca6d..00000000 --- a/counter/pinocchio/tests/kit/schema.ts +++ /dev/null @@ -1,40 +0,0 @@ -export class Counter { - count = 0; - constructor(fields: { count: number } | undefined = undefined) { - if (fields) { - this.count = fields.count; - } - } -} - -export const CounterSchema = new Map([ - [Counter, { kind: "struct", fields: [["count", "u64"]] }], -]); - -export enum CounterInstruction { - InitializeCounter = "0000000000000000", // [0, 0, 0, 0, 0, 0, 0, 0] - IncreaseCounter = "0100000000000000", // [1, 0, 0, 0, 0, 0, 0, 0] - Delegate = "0200000000000000", // [2, 0, 0, 0, 0, 0, 0, 0] - CommitAndUndelegate = "0300000000000000", // [3, 0, 0, 0, 0, 0, 0, 0] - Commit = "0400000000000000", // [4, 0, 0, 0, 0, 0, 0, 0] - IncrementAndCommit = "0500000000000000", // [5, 0, 0, 0, 0, 0, 0, 0] - IncrementAndUndelegate = "0600000000000000", // [6, 0, 0, 0, 0, 0, 0, 0] -} - -export class IncreaseCounterPayload { - increase_by: number; - - constructor(increase_by: number) { - this.increase_by = increase_by; - } - - static schema = new Map([ - [ - IncreaseCounterPayload, - { - kind: "struct", - fields: [["increase_by", "u64"]], - }, - ], - ]); -} diff --git a/counter/pinocchio/tests-magicsvm/pinocchio-counter.test.ts b/counter/pinocchio/tests/pinocchio-counter.test.ts similarity index 93% rename from counter/pinocchio/tests-magicsvm/pinocchio-counter.test.ts rename to counter/pinocchio/tests/pinocchio-counter.test.ts index 82d85904..71c51e4e 100644 --- a/counter/pinocchio/tests-magicsvm/pinocchio-counter.test.ts +++ b/counter/pinocchio/tests/pinocchio-counter.test.ts @@ -6,10 +6,6 @@ import { } from "@solana/web3.js"; import * as borsh from "borsh"; import * as path from "path"; -import { - CounterInstruction, - IncreaseCounterPayload, -} from "../tests/web3js/schema"; import { DELEGATION_PROGRAM_ID, MAGIC_CONTEXT_ID, @@ -27,6 +23,35 @@ import { import { describe, it, expect } from "vitest"; const LAMPORTS_PER_SOL = 1_000_000_000n; + +enum CounterInstruction { + InitializeCounter = "0000000000000000", + IncreaseCounter = "0100000000000000", + Delegate = "0200000000000000", + CommitAndUndelegate = "0300000000000000", + Commit = "0400000000000000", + IncrementAndCommit = "0500000000000000", + IncrementAndUndelegate = "0600000000000000", +} + +class IncreaseCounterPayload { + increase_by: number; + + constructor(increase_by: number) { + this.increase_by = increase_by; + } + + static schema = new Map([ + [ + IncreaseCounterPayload, + { + kind: "struct", + fields: [["increase_by", "u64"]], + }, + ], + ]); +} + const PROGRAM_SO = path.join("target", "deploy", "pinocchio_counter.so"); const PROGRAM_KEYPAIR = path.join( "target", diff --git a/counter/pinocchio/tests/web3js/initializeKeypair.ts b/counter/pinocchio/tests/web3js/initializeKeypair.ts deleted file mode 100644 index 00f8d6d6..00000000 --- a/counter/pinocchio/tests/web3js/initializeKeypair.ts +++ /dev/null @@ -1,51 +0,0 @@ -import * as web3 from "@solana/web3.js"; -import * as fs from "fs"; - -import dotenv from "dotenv"; -dotenv.config(); - -// Initialize Keypair for SOL -export function initializeSolSignerKeypair(): web3.Keypair { - if (!process.env.PRIVATE_KEY) { - const signer = web3.Keypair.generate(); - // Append the new key-value pair to the contents of the .env file - console.log(`New SOL Public Key: ${signer.publicKey}`); - fs.writeFileSync(".env", `PRIVATE_KEY=[${signer.secretKey.toString()}]\n`); - return signer; - } - - const secret = JSON.parse(process.env.PRIVATE_KEY ?? "") as number[]; - const secretKey = Uint8Array.from(secret); - const keypairFromSecretKey = web3.Keypair.fromSecretKey(secretKey); - console.log(`\rCurrent SOL Public Key: ${keypairFromSecretKey.publicKey}`); - - return keypairFromSecretKey; -} - -export async function airdropSolIfNeeded( - connection: web3.Connection, - pubkey: web3.PublicKey, - amount: number, - threshold: number, -) { - if ( - connection.rpcEndpoint.includes("dev") || - connection.rpcEndpoint.includes("test") || - connection.rpcEndpoint.includes("local") || - connection.rpcEndpoint.includes("http://") - ) { - const balance = await connection.getBalance(pubkey); - console.log( - "Current balance is", - balance / web3.LAMPORTS_PER_SOL, - " SOL", - "\n", - ); - if (balance < threshold * web3.LAMPORTS_PER_SOL) { - console.log(`Selected cluster: ${connection.rpcEndpoint}`); - console.log(`Airdropping ${amount} SOL...`); - await connection.requestAirdrop(pubkey, amount * web3.LAMPORTS_PER_SOL); - console.log(`\rAirdrop of ${amount} SOL was successful.`); - } - } -} diff --git a/counter/pinocchio/tests/web3js/pinocchio-counter.test.ts b/counter/pinocchio/tests/web3js/pinocchio-counter.test.ts deleted file mode 100644 index 37c8899f..00000000 --- a/counter/pinocchio/tests/web3js/pinocchio-counter.test.ts +++ /dev/null @@ -1,548 +0,0 @@ -import { - Keypair, - PublicKey, - SystemProgram, - Transaction, - TransactionInstruction, - Connection, - sendAndConfirmTransaction, -} from "@solana/web3.js"; -import { - initializeSolSignerKeypair, - airdropSolIfNeeded, -} from "./initializeKeypair"; -import * as borsh from "borsh"; -import * as fs from "fs"; -import { CounterInstruction, IncreaseCounterPayload } from "./schema"; -import { - DELEGATION_PROGRAM_ID, - delegationRecordPdaFromDelegatedAccount, - delegationMetadataPdaFromDelegatedAccount, - delegateBufferPdaFromDelegatedAccountAndOwnerProgram, - MAGIC_CONTEXT_ID, - MAGIC_PROGRAM_ID, - GetCommitmentSignature, -} from "@magicblock-labs/ephemeral-rollups-sdk"; - -import { describe, it, beforeAll, expect } from "vitest"; - -import dotenv from "dotenv"; -dotenv.config(); - -describe("basic-test", async () => { - const TEST_TIMEOUT = 60_000; - console.log("pinocchio-counter.ts"); - - // Get programId from target folder - const keypairPath = "target/deploy/pinocchio_counter-keypair.json"; - const secretKeyArray = Uint8Array.from( - JSON.parse(fs.readFileSync(keypairPath, "utf8")), - ); - const keypair = Keypair.fromSecretKey(secretKeyArray); - const PROGRAM_ID = keypair.publicKey; - - // Set up a connection to blockchain cluster - const connectionBaseLayer = new Connection( - process.env.PROVIDER_ENDPOINT || "https://api.devnet.solana.com", - { wsEndpoint: process.env.WS_ENDPOINT || "wss://api.devnet.solana.com" }, - ); - const connectionEphemeralRollup = new Connection( - process.env.EPHEMERAL_PROVIDER_ENDPOINT || - "https://devnet-as.magicblock.app/", - { - wsEndpoint: - process.env.EPHEMERAL_WS_ENDPOINT || "wss://devnet-as.magicblock.app/", - }, - ); - console.log("Base Layer Connection: ", connectionBaseLayer.rpcEndpoint); - console.log( - "Ephemeral Rollup Connection: ", - connectionEphemeralRollup.rpcEndpoint, - ); - - // Create user keypair and airdrop SOL if needed - const userKeypair = initializeSolSignerKeypair(); - - // Run this once before all tests - beforeAll(async () => { - await airdropSolIfNeeded( - connectionBaseLayer, - userKeypair.publicKey, - 2, - 0.05, - ); - }, TEST_TIMEOUT); - - // Get pda of counter_account - const [counterPda, bump] = PublicKey.findProgramAddressSync( - [Buffer.from("counter"), userKeypair.publicKey.toBuffer()], - PROGRAM_ID, - ); - const bumpBytes = Buffer.from([bump]); - console.log("Program ID: ", PROGRAM_ID.toString()); - console.log("Counter PDA: ", counterPda.toString()); - - it( - "Initialize counter on Solana", - async () => { - const start = Date.now(); - - // 1: InitializeCounter - // Create, send and confirm transaction - const tx = new Transaction(); - - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - // System Program - { - pubkey: SystemProgram.programId, - isSigner: false, - isWritable: false, - }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.InitializeCounter, "hex"), - bumpBytes, - ]); - const initializeIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }); - tx.add(initializeIx); - try { - const txHash = await sendAndConfirmTransaction( - connectionBaseLayer, - tx, - [userKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (Base Layer) Initialize txHash: ${txHash}`); - expect(txHash).toBeDefined(); - } catch (error: any) { - console.error("Initialize error:", error); - throw error; - } - }, - TEST_TIMEOUT, - ); - - it( - "Increase counter on Solana", - async () => { - const start = Date.now(); - - // 1: IncreaseCounter - // Create, send and confirm transaction - const tx = new Transaction(); - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncreaseCounter, "hex"), - bumpBytes, - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(1), - ), - ]); - const increaseCounterIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }); - tx.add(increaseCounterIx); - const txHash = await sendAndConfirmTransaction( - connectionBaseLayer, - tx, - [userKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (Base Layer) Increment txHash: ${txHash}`); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - - it( - "Delegate counter to ER", - async function () { - const start = Date.now(); - - // Validator identity for delegation: env override wins; otherwise default by network. - const isLocal = - connectionEphemeralRollup.rpcEndpoint.includes("localhost") || - connectionEphemeralRollup.rpcEndpoint.includes("127.0.0.1"); - const validatorPubkey = new PublicKey( - process.env.VALIDATOR || - (isLocal - ? "mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev" - : "MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57"), - ); - const remainingAccounts = [ - { pubkey: validatorPubkey, isSigner: false, isWritable: false }, - ]; - - // 2: Delegate - // Create, send and confirm transaction - const tx = new Transaction(); - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - // Owner Program - { - pubkey: PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - // Delegation Buffer - { - pubkey: delegateBufferPdaFromDelegatedAccountAndOwnerProgram( - counterPda, - PROGRAM_ID, - ), - isSigner: false, - isWritable: true, - }, - // Delegation Record - { - pubkey: delegationRecordPdaFromDelegatedAccount(counterPda), - isSigner: false, - isWritable: true, - }, - // Delegation Metadata - { - pubkey: delegationMetadataPdaFromDelegatedAccount(counterPda), - isSigner: false, - isWritable: true, - }, - // Delegation Program - { - pubkey: DELEGATION_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - // System Program - { - pubkey: SystemProgram.programId, - isSigner: false, - isWritable: false, - }, - // ER Validator - ...remainingAccounts, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.Delegate, "hex"), - bumpBytes, - ]); - const delegateIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }); - tx.add(delegateIx); - const txHash = await sendAndConfirmTransaction( - connectionBaseLayer, - tx, - [userKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (Base Layer) Delegate txHash: ${txHash}`); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - - it( - "Increase counter on ER (1)", - async () => { - const start = Date.now(); - - // 1: IncreaseCounter - // Create, send and confirm transaction - const tx = new Transaction(); - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncreaseCounter, "hex"), - bumpBytes, - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(1), - ), - ]); - const increaseCounterIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }); - tx.add(increaseCounterIx); - const txHash = await sendAndConfirmTransaction( - connectionEphemeralRollup, - tx, - [userKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Increment txHash: ${txHash}`); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - - it( - "Commit counter state on ER to Solana", - async () => { - const start = Date.now(); - - // 3: Commit - // Create, send and confirm transaction - const tx = new Transaction(); - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - // Magic Program - { - pubkey: MAGIC_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - // Magic Context - { - pubkey: MAGIC_CONTEXT_ID, - isSigner: false, - isWritable: true, - }, - ]; - const serializedInstructionData = Buffer.from( - CounterInstruction.Commit, - "hex", - ); - const commitIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }); - tx.add(commitIx); - const txHash = await sendAndConfirmTransaction( - connectionEphemeralRollup, - tx, - [userKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Commit txHash: ${txHash}`); - - // Get the commitment signature on the base layer - const comfirmCommitStart = Date.now(); - // Await for the commitment on the base layer - const txCommitSgn = await GetCommitmentSignature( - txHash, - // tx, - connectionEphemeralRollup, - ); - const commitDuration = Date.now() - comfirmCommitStart; - console.log( - `${commitDuration}ms (Base Layer) Commit txHash: ${txCommitSgn}`, - ); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - - it( - "Increase counter on ER (2)", - async () => { - const start = Date.now(); - - // 1: IncreaseCounter - // Create, send and confirm transaction - const tx = new Transaction(); - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncreaseCounter, "hex"), - bumpBytes, - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(1), - ), - ]); - const initializeIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }); - tx.add(initializeIx); - const txHash = await sendAndConfirmTransaction( - connectionEphemeralRollup, - tx, - [userKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Increment txHash: ${txHash}`); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - - it( - "Commit and undelegate counter on ER to Solana", - async function () { - const start = Date.now(); - - // 3: CommitAndUndelegate - // Create, send and confirm transaction - const tx = new Transaction(); - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - // Magic Program - { - pubkey: MAGIC_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - // Magic Context - { - pubkey: MAGIC_CONTEXT_ID, - isSigner: false, - isWritable: true, - }, - ]; - const serializedInstructionData = Buffer.from( - CounterInstruction.CommitAndUndelegate, - "hex", - ); - const undelegateIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData, - }); - tx.add(undelegateIx); - const txHash = await sendAndConfirmTransaction( - connectionEphemeralRollup, - tx, - [userKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Undelegate txHash: ${txHash}`); - - // Get the commitment signature on the base layer - const comfirmCommitStart = Date.now(); - // Await for the commitment on the base layer - const txCommitSgn = await GetCommitmentSignature( - txHash, - connectionEphemeralRollup, - ); - const commitDuration = Date.now() - comfirmCommitStart; - console.log( - `${commitDuration}ms (Base Layer) Undelegate txHash: ${txCommitSgn}`, - ); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); -}); diff --git a/counter/pinocchio/tests/web3js/schema.ts b/counter/pinocchio/tests/web3js/schema.ts deleted file mode 100644 index 04fcca6d..00000000 --- a/counter/pinocchio/tests/web3js/schema.ts +++ /dev/null @@ -1,40 +0,0 @@ -export class Counter { - count = 0; - constructor(fields: { count: number } | undefined = undefined) { - if (fields) { - this.count = fields.count; - } - } -} - -export const CounterSchema = new Map([ - [Counter, { kind: "struct", fields: [["count", "u64"]] }], -]); - -export enum CounterInstruction { - InitializeCounter = "0000000000000000", // [0, 0, 0, 0, 0, 0, 0, 0] - IncreaseCounter = "0100000000000000", // [1, 0, 0, 0, 0, 0, 0, 0] - Delegate = "0200000000000000", // [2, 0, 0, 0, 0, 0, 0, 0] - CommitAndUndelegate = "0300000000000000", // [3, 0, 0, 0, 0, 0, 0, 0] - Commit = "0400000000000000", // [4, 0, 0, 0, 0, 0, 0, 0] - IncrementAndCommit = "0500000000000000", // [5, 0, 0, 0, 0, 0, 0, 0] - IncrementAndUndelegate = "0600000000000000", // [6, 0, 0, 0, 0, 0, 0, 0] -} - -export class IncreaseCounterPayload { - increase_by: number; - - constructor(increase_by: number) { - this.increase_by = increase_by; - } - - static schema = new Map([ - [ - IncreaseCounterPayload, - { - kind: "struct", - fields: [["increase_by", "u64"]], - }, - ], - ]); -} diff --git a/counter/pinocchio/vitest.config.ts b/counter/pinocchio/vitest.config.ts index 00a1ea3a..181557aa 100644 --- a/counter/pinocchio/vitest.config.ts +++ b/counter/pinocchio/vitest.config.ts @@ -2,6 +2,7 @@ import { defineConfig } from 'vitest/config' export default defineConfig({ test: { + include: ['tests/**/*.test.ts'], globals: true, threads: false, isolate: true, diff --git a/delegation-actions/anchor/Anchor.toml b/delegation-actions/anchor/Anchor.toml index b05afc66..7ed0f06c 100644 --- a/delegation-actions/anchor/Anchor.toml +++ b/delegation-actions/anchor/Anchor.toml @@ -19,4 +19,4 @@ cluster = "https://rpc.magicblock.app/devnet" wallet = "~/.config/solana/id.json" [scripts] -test = "yarn run ts-mocha -p ./tsconfig.json -t 120000 tests/**/*.ts" +test = "yarn test" diff --git a/delegation-actions/anchor/README.md b/delegation-actions/anchor/README.md index e6c8de07..4c6c0c9f 100644 --- a/delegation-actions/anchor/README.md +++ b/delegation-actions/anchor/README.md @@ -69,22 +69,16 @@ yarn yarn build ``` -This example runs against a **local MagicBlock cluster** — a base Solana validator plus an Ephemeral Rollup, fronted by the Query Filtering Service. Start it in one terminal and leave it running: +Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash -yarn setup +yarn test ``` -`yarn setup` runs `SETUP_ONLY=1 ./scripts/test-locally.sh delegation-actions` from the repo root: it builds this example, boots the validators, and holds them until you press a key. +MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no validators, no +network. The suite tests a post-delegation action, base and Ephemeral Rollup increments, and +undelegation. -Then, in a second terminal, run this example's tests against that cluster: - -```bash -yarn test:local -``` - -`test:local` sources `scripts/local-env.sh` so the SDK targets the local cluster (without it the tests fall back to devnet). - -> Tip: to build and run **every** example end-to-end (what CI does), run the repo-root `./scripts/test-locally.sh` directly. +A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. [delegation program]: https://github.com/magicblock-labs/delegation-program diff --git a/delegation-actions/anchor/package.json b/delegation-actions/anchor/package.json index 6c6d042b..01796a1c 100644 --- a/delegation-actions/anchor/package.json +++ b/delegation-actions/anchor/package.json @@ -3,12 +3,9 @@ "scripts": { "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", - "build": "anchor keys sync && anchor build", - "test:local": ". ../../scripts/local-env.sh && npx ts-mocha -p ./tsconfig.json -t 1000000 tests/delegation-actions-local.ts", - "test:magicsvm": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests-magicsvm/delegation-actions.ts", - "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture", - "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh delegation-actions", - "test": "yarn test:local" + "build": "anchor build --ignore-keys", + "test": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests/delegation-actions.ts", + "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture" }, "dependencies": { "@coral-xyz/anchor": "^0.32.1", diff --git a/delegation-actions/anchor/programs/delegation-actions/src/lib.rs b/delegation-actions/anchor/programs/delegation-actions/src/lib.rs index c5c6fef4..6c8b48b7 100644 --- a/delegation-actions/anchor/programs/delegation-actions/src/lib.rs +++ b/delegation-actions/anchor/programs/delegation-actions/src/lib.rs @@ -6,7 +6,7 @@ use ephemeral_rollups_sdk::cpi::{delegate_account_with_actions, DelegateAccounts use ephemeral_rollups_sdk::dlp_api::compact::ClearText; use ephemeral_rollups_sdk::ephem::MagicIntentBundleBuilder; -declare_id!("7cRQuYsAe4F6ryBTxdvxNuFpJ6XRm38qcdd9V3NH7amc"); +declare_id!("7utsCSeoSCMkFPXESmKPrAHrVqTaeTepfhXerSf8DWEh"); pub const COUNTER_SEED: &[u8] = b"counter"; diff --git a/delegation-actions/anchor/tests-magicsvm/delegation-actions.ts b/delegation-actions/anchor/tests-magicsvm/delegation-actions.ts deleted file mode 100644 index 2ab39f28..00000000 --- a/delegation-actions/anchor/tests-magicsvm/delegation-actions.ts +++ /dev/null @@ -1,151 +0,0 @@ -import { web3 } from "@coral-xyz/anchor"; -import { - bootAnchorSvm, - isDelegated, - sendSvmTx, - validatorRemainingAccount, -} from "@magicblock-labs/test-utils"; -import { assert } from "chai"; -import { DelegationActions } from "../target/types/delegation_actions"; - -const COUNTER_SEED = "counter"; -const LAMPORTS_PER_SOL = 1_000_000_000n; - -describe("delegation-actions-magicsvm", () => { - const { svm, payer, program, validator } = bootAnchorSvm({ - fromDir: __dirname, - programName: "delegation_actions", - airdropLamports: 2n * LAMPORTS_PER_SOL, - }); - const [pda] = web3.PublicKey.findProgramAddressSync( - [Buffer.from(COUNTER_SEED)], - program.programId, - ); - - console.log("Program ID: ", program.programId.toBase58()); - console.log("Counter PDA: ", pda.toBase58()); - console.log("Validator identity: ", validator.toString()); - - function getCounter(target: "base" | "ephemeral"): number | null { - const info = svm.getAccountFor(pda, { target }); - if (!info.exists) return null; - return Number(Buffer.from(info.data).readBigUInt64LE(8)); - } - - function printCounter(message: string) { - const delegated = isDelegated(svm, pda); - let counterBase = ""; - let counterER = ""; - if (delegated) { - counterBase = ""; - counterER = getCounter("ephemeral")?.toString() ?? ""; - } else { - counterBase = getCounter("base")?.toString() ?? ""; - counterER = ""; - } - console.log("--------------------------------"); - console.log(`| ${delegated ? "✅ Delegated" : "❌ Not Delegated"}`); - console.log("--------------------------------"); - console.log("| Counter (Base): ", counterBase); - console.log("| Counter (ER): ", counterER); - console.log("--------------------------------"); - console.log(message); - } - - it("Initialize Counter", async () => { - sendSvmTx( - svm, - [payer], - await program.methods - .initialize() - .accounts({ - counter: pda, - user: payer.publicKey, - systemProgram: web3.SystemProgram.programId, - } as any) - .transaction(), - "base", - ); - printCounter("✅ Initialized"); - assert.equal(getCounter("base"), 0); - }); - - it("Increment Counter on base layer", async () => { - sendSvmTx( - svm, - [payer], - await program.methods - .increment() - .accounts({ counter: pda }) - .transaction(), - "base", - ); - printCounter("Counter incremented on base layer"); - assert.equal(getCounter("base"), 1); - }); - - it("Delegate Counter with a post-delegation action", async () => { - const before = getCounter("base"); - assert.isNotNull(before); - - // `delegate_with_actions` delegates the counter AND attaches an `increment` - // action. MagicSVM should run that action automatically once the account is - // delegated — no separate increment transaction is sent here. - sendSvmTx( - svm, - [payer], - await program.methods - .delegateWithActions() - .accounts({ payer: payer.publicKey, pda }) - .remainingAccounts([validatorRemainingAccount(svm)]) - .transaction(), - "base", - ); - - const after = getCounter("ephemeral"); - printCounter( - `Post-delegation action result — ER counter: ${after} (was ${before})`, - ); - - if (after !== before! + 1) { - throw new Error( - `Post-delegation action did not run: expected ${ - before! + 1 - } in ER, got ${after}`, - ); - } - console.log("✅ Post-delegation action executed automatically in the ER"); - assert.isTrue(isDelegated(svm, pda)); - }); - - it("Increment Counter in ER", async () => { - assert.isTrue(isDelegated(svm, pda)); - const before = getCounter("ephemeral"); - sendSvmTx( - svm, - [payer], - await program.methods - .increment() - .accounts({ counter: pda }) - .transaction(), - "ephemeral", - ); - printCounter("✅ Incremented (ER)"); - assert.equal(getCounter("ephemeral"), (before ?? 0) + 1); - }); - - it("Undelegate Counter", async () => { - assert.isTrue(isDelegated(svm, pda)); - sendSvmTx( - svm, - [payer], - await program.methods - .undelegate() - .accounts({ payer: payer.publicKey }) - .transaction(), - "ephemeral", - ); - printCounter("✅ Undelegated"); - assert.isFalse(isDelegated(svm, pda)); - }); -}); diff --git a/delegation-actions/anchor/tests/delegation-actions-local.ts b/delegation-actions/anchor/tests/delegation-actions-local.ts deleted file mode 100644 index d194e8fb..00000000 --- a/delegation-actions/anchor/tests/delegation-actions-local.ts +++ /dev/null @@ -1,198 +0,0 @@ -import * as anchor from "@coral-xyz/anchor"; -import { Program, web3 } from "@coral-xyz/anchor"; -import { DelegationActions } from "../target/types/delegation_actions"; -import { DELEGATION_PROGRAM_ID } from "@magicblock-labs/ephemeral-rollups-sdk"; - -const COUNTER_SEED = "counter"; - -describe("delegation-actions-local", () => { - // Base layer - const provider = new anchor.AnchorProvider( - new anchor.web3.Connection( - process.env.PROVIDER_ENDPOINT || "http://localhost:8899", - { - wsEndpoint: process.env.WS_ENDPOINT || undefined, - commitment: "confirmed", - }, - ), - anchor.Wallet.local(), - ); - anchor.setProvider(provider); - - // ER - const providerEphemeralRollup = new anchor.AnchorProvider( - new anchor.web3.Connection( - process.env.EPHEMERAL_PROVIDER_ENDPOINT || "http://localhost:7799", - { - wsEndpoint: process.env.EPHEMERAL_WS_ENDPOINT || undefined, - commitment: "confirmed", - }, - ), - anchor.Wallet.local(), - ); - - const program = anchor.workspace - .delegationActions as Program; - const [pda] = anchor.web3.PublicKey.findProgramAddressSync( - [Buffer.from(COUNTER_SEED)], - program.programId, - ); - - console.log("Base Layer Connection: ", provider.connection.rpcEndpoint); - console.log( - "Ephemeral Rollup Connection: ", - providerEphemeralRollup.connection.rpcEndpoint, - ); - console.log("Program ID: ", program.programId.toBase58()); - console.log("Counter PDA: ", pda.toBase58()); - - async function getCounterER(): Promise { - const info = await providerEphemeralRollup.connection.getAccountInfo(pda); - if (!info) return null; - return Number(info.data.readBigUInt64LE(8)); - } - - async function printCounter(message: string) { - const counterInfo = await provider.connection.getAccountInfo(pda); - const isDelegated = - counterInfo?.owner.toBase58() === DELEGATION_PROGRAM_ID.toBase58(); - - let counterBase = ""; - let counterER = ""; - if (isDelegated) { - counterBase = ""; - counterER = (await getCounterER())?.toString() ?? ""; - } else { - const acc = await program.account.counter.fetch(pda); - counterBase = acc.count.toNumber().toString(); - counterER = ""; - } - console.log("--------------------------------"); - console.log(`| ${isDelegated ? "✅ Delegated" : "❌ Not Delegated"}`); - console.log("--------------------------------"); - console.log("| Counter (Base): ", counterBase); - console.log("| Counter (ER): ", counterER); - console.log("--------------------------------"); - console.log(message); - } - - it("Initialize Counter", async () => { - if (await provider.connection.getAccountInfo(pda)) { - console.log("Counter already initialized"); - return; - } - const sig = await program.methods - .initialize() - .accounts({ - counter: pda, - user: provider.wallet.publicKey, - systemProgram: anchor.web3.SystemProgram.programId, - } as any) - .rpc({ skipPreflight: true }); - await printCounter(`✅ Initialized. Sig: ${sig}`); - }); - - it("Increment Counter on base layer", async () => { - const info = await provider.connection.getAccountInfo(pda); - if (info?.owner.toBase58() === DELEGATION_PROGRAM_ID.toBase58()) { - console.log("Skipping — counter is delegated"); - return; - } - const sig = await program.methods - .increment() - .accounts({ counter: pda }) - .rpc({ skipPreflight: true }); - console.log("✅ Incremented (base). Sig:", sig); - await printCounter("Counter incremented on base layer"); - }); - - it("Delegate Counter with a post-delegation action", async () => { - const info = await provider.connection.getAccountInfo(pda); - if (info?.owner.toBase58() === DELEGATION_PROGRAM_ID.toBase58()) { - console.log("Already delegated"); - return; - } - - // Snapshot the count before delegation so we can assert the attached - // post-delegation action ran automatically inside the ER. - const before = (await program.account.counter.fetch(pda)).count.toNumber(); - - const validatorKey = new web3.PublicKey( - process.env.VALIDATOR || "mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev", - ); - const remainingAccounts = [ - { pubkey: validatorKey, isSigner: false, isWritable: false }, - ]; - - // `delegate_with_actions` delegates the counter AND attaches an `increment` - // action. The ER validator runs that action automatically once the account - // is delegated — no separate increment transaction is sent here. - const sig = await program.methods - .delegateWithActions() - .accounts({ payer: provider.wallet.publicKey, pda }) - .remainingAccounts(remainingAccounts) - .rpc({ skipPreflight: true }); - console.log("✅ Delegated with action. Sig:", sig); - - // Wait for the ER to clone the account and run the post-delegation action. - let after: number | null = null; - for (let i = 0; i < 30; i++) { - await new Promise((r) => setTimeout(r, 500)); - after = await getCounterER(); - if (after !== null && after === before + 1) break; - } - await printCounter( - `Post-delegation action result — ER counter: ${after} (was ${before})`, - ); - - if (after !== before + 1) { - throw new Error( - `Post-delegation action did not run: expected ${ - before + 1 - } in ER, got ${after}`, - ); - } - console.log("✅ Post-delegation action executed automatically in the ER"); - }); - - it("Increment Counter in ER", async () => { - const info = await provider.connection.getAccountInfo(pda); - if (info?.owner.toBase58() !== DELEGATION_PROGRAM_ID.toBase58()) { - console.log("Skipping — not delegated"); - return; - } - const tx = await program.methods - .increment() - .accounts({ counter: pda }) - .transaction(); - tx.feePayer = provider.wallet.publicKey; - tx.recentBlockhash = ( - await providerEphemeralRollup.connection.getLatestBlockhash() - ).blockhash; - const sig = await providerEphemeralRollup.sendAndConfirm(tx, [], { - skipPreflight: true, - }); - await printCounter(`✅ Incremented (ER). Sig: ${sig}`); - }); - - it("Undelegate Counter", async () => { - const info = await provider.connection.getAccountInfo(pda); - if (info?.owner.toBase58() !== DELEGATION_PROGRAM_ID.toBase58()) { - console.log("Skipping — not delegated"); - return; - } - const tx = await program.methods - .undelegate() - .accounts({ payer: provider.wallet.publicKey }) - .transaction(); - tx.feePayer = provider.wallet.publicKey; - tx.recentBlockhash = ( - await providerEphemeralRollup.connection.getLatestBlockhash() - ).blockhash; - const sig = await providerEphemeralRollup.sendAndConfirm(tx, [], { - skipPreflight: true, - }); - await new Promise((r) => setTimeout(r, 5000)); - await printCounter(`✅ Undelegated. Sig: ${sig}`); - }); -}); diff --git a/delegation-actions/anchor/tests/delegation-actions.ts b/delegation-actions/anchor/tests/delegation-actions.ts index cf306024..7c3c5095 100644 --- a/delegation-actions/anchor/tests/delegation-actions.ts +++ b/delegation-actions/anchor/tests/delegation-actions.ts @@ -1,195 +1,151 @@ -import * as anchor from "@coral-xyz/anchor"; -import { Program, web3 } from "@coral-xyz/anchor"; -import { DelegationActions } from "../target/types/delegation_actions"; +import { web3 } from "@coral-xyz/anchor"; import { - ConnectionMagicRouter, - DELEGATION_PROGRAM_ID, -} from "@magicblock-labs/ephemeral-rollups-sdk"; -import { Transaction, sendAndConfirmTransaction } from "@solana/web3.js"; + bootAnchorSvm, + isDelegated, + sendSvmTx, + validatorRemainingAccount, +} from "@magicblock-labs/test-utils"; +import { assert } from "chai"; +import { DelegationActions } from "../target/types/delegation_actions"; const COUNTER_SEED = "counter"; +const LAMPORTS_PER_SOL = 1_000_000_000n; -// Base ops go to the base layer; ER ops go straight to the rollup. The router is -// only used to discover the closest validator and its ER endpoint. -describe("delegation-actions", () => { - anchor.setProvider(anchor.AnchorProvider.env()); - const wallet = anchor.Wallet.local(); - - const baseConnection = anchor.getProvider().connection; - const program = anchor.workspace - .delegationActions as Program; - - const routerConnection = new ConnectionMagicRouter( - process.env.ROUTER_ENDPOINT || "https://devnet-router.magicblock.app", - { - wsEndpoint: - process.env.ROUTER_WS_ENDPOINT || "wss://devnet-router.magicblock.app", - }, - ); - - const [pda] = anchor.web3.PublicKey.findProgramAddressSync( +describe("delegation-actions-magicsvm", () => { + const { svm, payer, program, validator } = bootAnchorSvm({ + fromDir: __dirname, + programName: "delegation_actions", + airdropLamports: 2n * LAMPORTS_PER_SOL, + }); + const [pda] = web3.PublicKey.findProgramAddressSync( [Buffer.from(COUNTER_SEED)], program.programId, ); - let erConnection: web3.Connection; - let validatorIdentity: web3.PublicKey; + console.log("Program ID: ", program.programId.toBase58()); + console.log("Counter PDA: ", pda.toBase58()); + console.log("Validator identity: ", validator.toString()); - console.log("Base Endpoint: ", baseConnection.rpcEndpoint); - console.log("Program ID: ", program.programId.toBase58()); - console.log("Counter PDA: ", pda.toBase58()); - - async function isDelegated(): Promise { - const info = await baseConnection.getAccountInfo(pda); - return info?.owner.toBase58() === DELEGATION_PROGRAM_ID.toBase58(); + function getCounter(target: "base" | "ephemeral"): number | null { + const info = svm.getAccountFor(pda, { target }); + if (!info.exists) return null; + return Number(Buffer.from(info.data).readBigUInt64LE(8)); } - async function counterErValue(): Promise { - const info = await erConnection.getAccountInfo(pda); - return info ? Number(info.data.readBigUInt64LE(8)) : null; - } - - async function sendToEr(tx: Transaction): Promise { - tx.feePayer = wallet.publicKey; - tx.recentBlockhash = (await erConnection.getLatestBlockhash()).blockhash; - tx.sign(wallet.payer); - const sig = await erConnection.sendRawTransaction(tx.serialize(), { - skipPreflight: true, - }); - await erConnection.confirmTransaction(sig, "confirmed"); - return sig; - } - - async function waitUntil( - pred: () => Promise, - label: string, - tries = 40, - ): Promise { - for (let i = 0; i < tries; i++) { - if (await pred()) return; - await new Promise((r) => setTimeout(r, 500)); - } - throw new Error(`Timed out waiting for: ${label}`); - } - - async function printCounter(message: string) { - const delegated = await isDelegated(); - let base = ""; - let er = ""; + function printCounter(message: string) { + const delegated = isDelegated(svm, pda); + let counterBase = ""; + let counterER = ""; if (delegated) { - base = ""; - er = (await counterErValue())?.toString() ?? ""; + counterBase = ""; + counterER = getCounter("ephemeral")?.toString() ?? ""; } else { - const acc = await program.account.counter.fetch(pda); - base = acc.count.toNumber().toString(); - er = ""; + counterBase = getCounter("base")?.toString() ?? ""; + counterER = ""; } console.log("--------------------------------"); console.log(`| ${delegated ? "✅ Delegated" : "❌ Not Delegated"}`); console.log("--------------------------------"); - console.log("| Counter (Base): ", base); - console.log("| Counter (ER): ", er); + console.log("| Counter (Base): ", counterBase); + console.log("| Counter (ER): ", counterER); console.log("--------------------------------"); console.log(message); } - before(async () => { - const validator = await routerConnection.getClosestValidator(); - console.log("Closest validator: ", JSON.stringify(validator)); - validatorIdentity = new web3.PublicKey( - process.env.VALIDATOR || validator.identity, - ); - erConnection = new web3.Connection( - (validator.fqdn || "https://devnet-as.magicblock.app").replace(/\/$/, ""), - "confirmed", + it("Initialize Counter", async () => { + sendSvmTx( + svm, + [payer], + await program.methods + .initialize() + .accounts({ + counter: pda, + user: payer.publicKey, + systemProgram: web3.SystemProgram.programId, + } as never) + .transaction(), + "base", ); - console.log("ER Endpoint: ", erConnection.rpcEndpoint); - - // Self-heal: undelegate a counter left delegated by a prior run. - if (await isDelegated()) { - console.log("Counter is delegated from a prior run — undelegating..."); - const tx = await program.methods - .undelegate() - .accounts({ payer: wallet.publicKey }) - .transaction(); - await sendToEr(tx); - await waitUntil( - async () => !(await isDelegated()), - "undelegation (reset)", - ); - console.log("Reset complete — counter is undelegated."); - } + printCounter("✅ Initialized"); + assert.equal(getCounter("base"), 0); }); - it("Initialize Counter!", async () => { - const tx = (await program.methods - .initialize() - .accounts({ - // @ts-ignore - counter: pda, - user: wallet.publicKey, - systemProgram: anchor.web3.SystemProgram.programId, - }) - .transaction()) as Transaction; - const sig = await sendAndConfirmTransaction(baseConnection, tx, [ - wallet.payer, - ]); - await printCounter(`✅ Initialized. Sig: ${sig}`); + it("Increment Counter on base layer", async () => { + sendSvmTx( + svm, + [payer], + await program.methods + .increment() + .accounts({ counter: pda }) + .transaction(), + "base", + ); + printCounter("Counter incremented on base layer"); + assert.equal(getCounter("base"), 1); }); - it("Delegate Counter with a post-delegation action!", async () => { - const sig = await sendAndConfirmTransaction( - baseConnection, - (await program.methods + it("Delegate Counter with a post-delegation action", async () => { + const before = getCounter("base"); + assert.isNotNull(before); + + // `delegate_with_actions` delegates the counter AND attaches an `increment` + // action. MagicSVM should run that action automatically once the account is + // delegated — no separate increment transaction is sent here. + sendSvmTx( + svm, + [payer], + await program.methods .delegateWithActions() - .accounts({ payer: wallet.publicKey, pda }) - .remainingAccounts([ - { pubkey: validatorIdentity, isSigner: false, isWritable: false }, - ]) - .transaction()) as Transaction, - [wallet.payer], - { skipPreflight: true }, + .accounts({ payer: payer.publicKey, pda }) + .remainingAccounts([validatorRemainingAccount(svm)]) + .transaction(), + "base", ); - console.log("✅ Delegated with action. Sig:", sig); - // The attached `increment` runs automatically in the ER once delegated. - await waitUntil( - async () => (await counterErValue()) === 1, - "post-delegation action (ER count == 1)", - ); - await printCounter( - "✅ Post-delegation action executed automatically in the ER", + const after = getCounter("ephemeral"); + printCounter( + `Post-delegation action result — ER counter: ${after} (was ${before})`, ); - const er = await counterErValue(); - if (er !== 1) { - throw new Error(`Post-delegation action did not run: ER count = ${er}`); + if (after !== before! + 1) { + throw new Error( + `Post-delegation action did not run: expected ${ + before! + 1 + } in ER, got ${after}`, + ); } + console.log("✅ Post-delegation action executed automatically in the ER"); + assert.isTrue(isDelegated(svm, pda)); }); - it("Increment Counter on ER!", async () => { - const before = await counterErValue(); - const sig = await sendToEr( + it("Increment Counter in ER", async () => { + assert.isTrue(isDelegated(svm, pda)); + const before = getCounter("ephemeral"); + sendSvmTx( + svm, + [payer], await program.methods .increment() .accounts({ counter: pda }) .transaction(), + "ephemeral", ); - await printCounter(`✅ Incremented (ER). Sig: ${sig}`); - const after = await counterErValue(); - if (after !== (before ?? 0) + 1) { - throw new Error(`ER increment failed: ${before} -> ${after}`); - } + printCounter("✅ Incremented (ER)"); + assert.equal(getCounter("ephemeral"), (before ?? 0) + 1); }); - it("Undelegate Counter!", async () => { - const sig = await sendToEr( + it("Undelegate Counter", async () => { + assert.isTrue(isDelegated(svm, pda)); + sendSvmTx( + svm, + [payer], await program.methods .undelegate() - .accounts({ payer: wallet.publicKey }) + .accounts({ payer: payer.publicKey }) .transaction(), + "ephemeral", ); - await waitUntil(async () => !(await isDelegated()), "undelegation"); - await printCounter(`✅ Undelegated. Sig: ${sig}`); + printCounter("✅ Undelegated"); + assert.isFalse(isDelegated(svm, pda)); }); }); diff --git a/ephemeral-account-chats/anchor/Anchor.toml b/ephemeral-account-chats/anchor/Anchor.toml index bfc303b3..a101b8a1 100644 --- a/ephemeral-account-chats/anchor/Anchor.toml +++ b/ephemeral-account-chats/anchor/Anchor.toml @@ -7,13 +7,13 @@ resolution = true skip-lint = false [programs.devnet] -ephemeral_account_chats = "46ie8wmtxyVTSKqe1xoLYTXn56iAMFFJbPRvwJoqAVdM" +ephemeral_account_chats = "5kUATzj39y1HfMJbkW9tH3nWoLgq3WJ1scwiFdfDrdVT" [provider] cluster = "devnet" wallet = "~/.config/solana/id.json" [scripts] -test = "yarn run ts-mocha -p ./tsconfig.json -t 1000000 \"tests/**/*.ts\"" +test = "yarn test" [hooks] diff --git a/ephemeral-account-chats/anchor/README.md b/ephemeral-account-chats/anchor/README.md index 27dc312f..9e62da95 100644 --- a/ephemeral-account-chats/anchor/README.md +++ b/ephemeral-account-chats/anchor/README.md @@ -28,20 +28,14 @@ yarn yarn build ``` -This example runs against a **local MagicBlock cluster** — a base Solana validator plus an Ephemeral Rollup, fronted by the Query Filtering Service. Start it in one terminal and leave it running: +Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash -yarn setup +yarn test ``` -`yarn setup` runs `SETUP_ONLY=1 ./scripts/test-locally.sh ephemeral-account-chats` from the repo root: it builds this example, boots the validators, and holds them until you press a key. +MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no validators, no +network. The suite creates and delegates profiles, manages a conversation and its messages, then +closes the conversation and profiles. -Then, in a second terminal, run this example's tests against that cluster: - -```bash -yarn test:local -``` - -`test:local` sources `scripts/local-env.sh` so the SDK targets the local cluster (without it the tests fall back to devnet). - -> Tip: to build and run **every** example end-to-end (what CI does), run the repo-root `./scripts/test-locally.sh` directly. +A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. diff --git a/ephemeral-account-chats/anchor/package.json b/ephemeral-account-chats/anchor/package.json index 5a235ebe..5bf301fd 100644 --- a/ephemeral-account-chats/anchor/package.json +++ b/ephemeral-account-chats/anchor/package.json @@ -3,12 +3,9 @@ "scripts": { "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", - "build": "anchor keys sync && anchor build", - "test:local": ". ../../scripts/local-env.sh && npx ts-mocha -p ./tsconfig.json -t 1000000 'tests/**/*.ts'", - "test:magicsvm": "npx ts-mocha -p ./tsconfig.json -t 1000000 'tests-magicsvm/**/*.ts'", - "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture", - "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh ephemeral-account-chats", - "test": "yarn test:local" + "build": "anchor build --ignore-keys", + "test": "npx ts-mocha -p ./tsconfig.json -t 1000000 'tests/**/*.ts'", + "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture" }, "dependencies": { "@coral-xyz/anchor": "^0.32.1", diff --git a/ephemeral-account-chats/anchor/programs/ephemeral-account-chats/src/lib.rs b/ephemeral-account-chats/anchor/programs/ephemeral-account-chats/src/lib.rs index 6178fbc0..9663e72e 100644 --- a/ephemeral-account-chats/anchor/programs/ephemeral-account-chats/src/lib.rs +++ b/ephemeral-account-chats/anchor/programs/ephemeral-account-chats/src/lib.rs @@ -11,7 +11,7 @@ pub use errors::*; pub use instructions::*; pub use state::{Conversation, ConversationMessage, Profile}; -declare_id!("46ie8wmtxyVTSKqe1xoLYTXn56iAMFFJbPRvwJoqAVdM"); +declare_id!("5kUATzj39y1HfMJbkW9tH3nWoLgq3WJ1scwiFdfDrdVT"); #[ephemeral] #[program] diff --git a/ephemeral-account-chats/anchor/target/idl/ephemeral_account_chats.json b/ephemeral-account-chats/anchor/target/idl/ephemeral_account_chats.json index f0937067..b6ddd4f1 100644 --- a/ephemeral-account-chats/anchor/target/idl/ephemeral_account_chats.json +++ b/ephemeral-account-chats/anchor/target/idl/ephemeral_account_chats.json @@ -1,5 +1,5 @@ { - "address": "46ie8wmtxyVTSKqe1xoLYTXn56iAMFFJbPRvwJoqAVdM", + "address": "5kUATzj39y1HfMJbkW9tH3nWoLgq3WJ1scwiFdfDrdVT", "metadata": { "name": "ephemeral_account_chats", "version": "0.1.0", @@ -494,38 +494,38 @@ "program": { "kind": "const", "value": [ - 46, - 10, - 12, - 51, - 3, - 109, - 147, - 173, - 199, - 36, - 228, - 253, + 70, + 145, + 111, + 159, + 11, + 133, 215, - 218, + 112, + 76, + 174, + 91, + 81, + 150, + 177, + 124, + 224, 122, - 211, - 92, - 156, + 138, + 64, + 62, + 198, + 210, + 136, + 229, + 55, + 20, + 26, + 45, + 23, 107, - 61, - 102, - 12, - 152, - 94, - 153, - 193, - 63, - 220, - 172, - 70, - 87, - 148 + 40, + 170 ] } } @@ -611,7 +611,7 @@ }, { "name": "owner_program", - "address": "46ie8wmtxyVTSKqe1xoLYTXn56iAMFFJbPRvwJoqAVdM" + "address": "5kUATzj39y1HfMJbkW9tH3nWoLgq3WJ1scwiFdfDrdVT" }, { "name": "delegation_program", diff --git a/ephemeral-account-chats/anchor/target/types/ephemeral_account_chats.ts b/ephemeral-account-chats/anchor/target/types/ephemeral_account_chats.ts index ec444af2..5957e581 100644 --- a/ephemeral-account-chats/anchor/target/types/ephemeral_account_chats.ts +++ b/ephemeral-account-chats/anchor/target/types/ephemeral_account_chats.ts @@ -5,7 +5,7 @@ * IDL can be found at `target/idl/ephemeral_account_chats.json`. */ export type EphemeralAccountChats = { - "address": "46ie8wmtxyVTSKqe1xoLYTXn56iAMFFJbPRvwJoqAVdM", + "address": "5kUATzj39y1HfMJbkW9tH3nWoLgq3WJ1scwiFdfDrdVT", "metadata": { "name": "ephemeralAccountChats", "version": "0.1.0", @@ -500,38 +500,38 @@ export type EphemeralAccountChats = { "program": { "kind": "const", "value": [ - 46, - 10, - 12, - 51, - 3, - 109, - 147, - 173, - 199, - 36, - 228, - 253, + 70, + 145, + 111, + 159, + 11, + 133, 215, - 218, + 112, + 76, + 174, + 91, + 81, + 150, + 177, + 124, + 224, 122, - 211, - 92, - 156, + 138, + 64, + 62, + 198, + 210, + 136, + 229, + 55, + 20, + 26, + 45, + 23, 107, - 61, - 102, - 12, - 152, - 94, - 153, - 193, - 63, - 220, - 172, - 70, - 87, - 148 + 40, + 170 ] } } @@ -617,7 +617,7 @@ export type EphemeralAccountChats = { }, { "name": "ownerProgram", - "address": "46ie8wmtxyVTSKqe1xoLYTXn56iAMFFJbPRvwJoqAVdM" + "address": "5kUATzj39y1HfMJbkW9tH3nWoLgq3WJ1scwiFdfDrdVT" }, { "name": "delegationProgram", diff --git a/ephemeral-account-chats/anchor/tests-magicsvm/ephemeral-account-chats.ts b/ephemeral-account-chats/anchor/tests-magicsvm/ephemeral-account-chats.ts deleted file mode 100644 index 26d144fe..00000000 --- a/ephemeral-account-chats/anchor/tests-magicsvm/ephemeral-account-chats.ts +++ /dev/null @@ -1,380 +0,0 @@ -import * as anchor from "@coral-xyz/anchor"; -import { expect } from "chai"; -import { Keypair, PublicKey, SystemProgram } from "@solana/web3.js"; -import { - airdropOrThrow, - bootAnchorSvm, - DELEGATION_PROGRAM_ID, - requireAccount, - sendExpectingFailure, - sendSvmIx, -} from "@magicblock-labs/test-utils"; -import { EphemeralAccountChats } from "../target/types/ephemeral_account_chats"; - -function generateName(): string { - const randomNumber = Math.floor(Math.random() * 10000000000); - return randomNumber.toString().padStart(10, "0"); -} - -function conversationSize(messageCount: number): number { - return 8 + 1 + 3 * 4 + 2 * 32 + messageCount * 324; -} - -const MAX_MESSAGE_COUNT = 5; - -describe("ephemeral-account-chats magicsvm", () => { - const userAKp = Keypair.generate(); - const userBKp = Keypair.generate(); - const { - svm, - payer, - program, - validator: validatorStr, - } = bootAnchorSvm({ - fromDir: __dirname, - programName: "ephemeral_account_chats", - payer: userAKp, - airdropLamports: BigInt(anchor.web3.LAMPORTS_PER_SOL), - }); - const userA = new anchor.Wallet(payer); - const userB = new anchor.Wallet(userBKp); - const validator = new PublicKey(validatorStr); - - const nameA = generateName(); - const nameB = generateName(); - - const [profileAPda] = PublicKey.findProgramAddressSync( - [Buffer.from("profile"), Buffer.from(nameA)], - program.programId, - ); - const [profileBPda] = PublicKey.findProgramAddressSync( - [Buffer.from("profile"), Buffer.from(nameB)], - program.programId, - ); - const [conversationPda] = PublicKey.findProgramAddressSync( - [Buffer.from("conversation"), Buffer.from(nameA), Buffer.from(nameB)], - program.programId, - ); - - async function instruction(builder: { - instruction(): Promise[2]>; - }): Promise[2]> { - return builder.instruction(); - } - - before(() => { - airdropOrThrow( - svm, - userB.publicKey, - BigInt(anchor.web3.LAMPORTS_PER_SOL), - "airdrop user B", - ); - - console.log("Program ID: ", program.programId.toBase58()); - console.log("Validator: ", validator.toBase58()); - console.log("User A: ", userA.publicKey.toBase58()); - console.log("User B: ", userB.publicKey.toBase58()); - console.log("Profile A: ", profileAPda.toBase58()); - console.log("Profile B: ", profileBPda.toBase58()); - console.log("Conversation: ", conversationPda.toBase58()); - }); - - it("creates profiles", async () => { - sendSvmIx( - svm, - [userAKp], - await instruction( - program.methods.createProfile(nameA).accountsPartial({ - authority: userA.publicKey, - profile: profileAPda, - systemProgram: SystemProgram.programId, - }), - ), - "base", - ); - sendSvmIx( - svm, - [userBKp], - await instruction( - program.methods.createProfile(nameB).accountsPartial({ - authority: userB.publicKey, - profile: profileBPda, - systemProgram: SystemProgram.programId, - }), - ), - "base", - ); - - const profileA = program.coder.accounts.decode( - "profile", - Buffer.from(requireAccount(svm, profileAPda, "base").data), - ); - const profileB = program.coder.accounts.decode( - "profile", - Buffer.from(requireAccount(svm, profileBPda, "base").data), - ); - expect(profileA.handle).to.equal(nameA); - expect(profileB.handle).to.equal(nameB); - }); - - it("tops up profiles", async () => { - const profileABefore = requireAccount(svm, profileAPda, "base"); - const profileALamportsBefore = Number(profileABefore.lamports); - - sendSvmIx( - svm, - [userAKp], - await instruction( - program.methods - .topUpProfile(new anchor.BN(0.05 * anchor.web3.LAMPORTS_PER_SOL)) - .accounts({ - authority: userA.publicKey, - profile: profileAPda, - systemProgram: SystemProgram.programId, - }), - ), - "base", - ); - - const profileA = requireAccount(svm, profileAPda, "base"); - expect(Number(profileA.lamports)).to.equal( - 0.05 * anchor.web3.LAMPORTS_PER_SOL + profileALamportsBefore, - ); - }); - - it("delegates profiles", async () => { - sendSvmIx( - svm, - [userAKp], - await instruction( - program.methods.delegateProfile(validator).accounts({ - authority: userA.publicKey, - profile: profileAPda, - }), - ), - "base", - ); - sendSvmIx( - svm, - [userBKp], - await instruction( - program.methods.delegateProfile(validator).accounts({ - authority: userB.publicKey, - profile: profileBPda, - }), - ), - "base", - ); - - const profileA = requireAccount(svm, profileAPda, "base"); - const profileB = requireAccount(svm, profileBPda, "base"); - expect(profileA.programAddress.toString()).to.equal( - DELEGATION_PROGRAM_ID.toBase58(), - ); - expect(profileB.programAddress.toString()).to.equal( - DELEGATION_PROGRAM_ID.toBase58(), - ); - }); - - it("creates a conversation", async () => { - sendSvmIx( - svm, - [userAKp], - await instruction( - program.methods.createConversation().accounts({ - authority: userA.publicKey, - profileOwner: profileAPda, - profileOther: profileBPda, - conversation: conversationPda, - systemProgram: SystemProgram.programId, - }), - ), - "ephemeral", - ); - - const conversationAccount = requireAccount( - svm, - conversationPda, - "ephemeral", - ); - const conversation = program.coder.accounts.decode( - "conversation", - Buffer.from(conversationAccount.data), - ); - expect(conversation.messages.length).to.equal(0); - expect(conversationAccount.data.length).to.equal(conversationSize(0)); - }); - - it("extends a conversation", async () => { - sendSvmIx( - svm, - [userAKp], - await instruction( - program.methods.extendConversation(MAX_MESSAGE_COUNT).accountsPartial({ - authority: userA.publicKey, - profileSender: profileAPda, - profileOther: profileBPda, - conversation: conversationPda, - }), - ), - "ephemeral", - ); - - const conversation = requireAccount(svm, conversationPda, "ephemeral"); - expect(conversation.data.length).to.equal( - conversationSize(MAX_MESSAGE_COUNT), - ); - }); - - it("appends messages to a conversation", async () => { - const nMessages = MAX_MESSAGE_COUNT; - for (let i = 0; i < nMessages; i++) { - if (i % 2 === 0) { - sendSvmIx( - svm, - [userAKp], - await instruction( - program.methods - .appendMessage(`Hello ${i} from user A!`) - .accountsPartial({ - authority: userA.publicKey, - profileOwner: profileAPda, - profileOther: profileBPda, - conversation: conversationPda, - }), - ), - "ephemeral", - ); - } else { - sendSvmIx( - svm, - [userBKp], - await instruction( - program.methods - .appendMessage(`Hello ${i} from user B!`) - .accountsPartial({ - authority: userB.publicKey, - profileOwner: profileAPda, - profileOther: profileBPda, - conversation: conversationPda, - }), - ), - "ephemeral", - ); - } - } - - const conversationAccount = requireAccount( - svm, - conversationPda, - "ephemeral", - ); - const conversation = program.coder.accounts.decode( - "conversation", - Buffer.from(conversationAccount.data), - ); - expect(conversation.messages.length).to.equal(nMessages); - - const failed = sendExpectingFailure( - svm, - [userAKp], - await instruction( - program.methods - .appendMessage( - "Hello world, appending another message, this should be failed!", - ) - .accountsPartial({ - authority: userA.publicKey, - profileOwner: profileAPda, - profileOther: profileBPda, - conversation: conversationPda, - }), - ), - "ephemeral", - ); - const expectedError = program.idl.errors.find( - (e) => - e.name === "conversationCapacityExceeded" || - e.name === "ConversationCapacityExceeded", - ); - expect(failed.meta().logs().join("\n")).to.include(expectedError?.msg); - }); - - it("closes a conversation", async () => { - sendSvmIx( - svm, - [userAKp], - await instruction( - program.methods.closeConversation().accounts({ - authority: userA.publicKey, - profileOwner: profileAPda, - profileOther: profileBPda, - conversation: conversationPda, - }), - ), - "ephemeral", - ); - }); - - it("undelegates profiles", async () => { - sendSvmIx( - svm, - [userAKp], - await instruction( - program.methods.undelegateProfile().accountsPartial({ - authority: userA.publicKey, - profile: profileAPda, - }), - ), - "ephemeral", - ); - sendSvmIx( - svm, - [userBKp], - await instruction( - program.methods.undelegateProfile().accountsPartial({ - authority: userB.publicKey, - profile: profileBPda, - }), - ), - "ephemeral", - ); - - const profileA = requireAccount(svm, profileAPda, "base"); - const profileB = requireAccount(svm, profileBPda, "base"); - expect(profileA.programAddress.toString()).to.equal( - program.programId.toBase58(), - ); - expect(profileB.programAddress.toString()).to.equal( - program.programId.toBase58(), - ); - }); - - it("closes profiles and refunds user A", async () => { - sendSvmIx( - svm, - [userAKp], - await instruction( - program.methods.closeProfile().accounts({ - authority: userA.publicKey, - profile: profileAPda, - }), - ), - "base", - ); - sendSvmIx( - svm, - [userBKp], - await instruction( - program.methods.closeProfile().accounts({ - authority: userB.publicKey, - profile: profileBPda, - }), - ), - "base", - ); - - expect(svm.getAccount(profileAPda).exists).to.equal(false); - expect(svm.getAccount(profileBPda).exists).to.equal(false); - }); -}); diff --git a/ephemeral-account-chats/anchor/tests/ephemeral-account-chats.ts b/ephemeral-account-chats/anchor/tests/ephemeral-account-chats.ts index d79307fe..26d144fe 100644 --- a/ephemeral-account-chats/anchor/tests/ephemeral-account-chats.ts +++ b/ephemeral-account-chats/anchor/tests/ephemeral-account-chats.ts @@ -1,21 +1,17 @@ import * as anchor from "@coral-xyz/anchor"; -import { assert, expect } from "chai"; -import { - Connection, - Keypair, - PublicKey, - SystemProgram, - Transaction, -} from "@solana/web3.js"; +import { expect } from "chai"; +import { Keypair, PublicKey, SystemProgram } from "@solana/web3.js"; import { + airdropOrThrow, + bootAnchorSvm, DELEGATION_PROGRAM_ID, - GetCommitmentSignature, -} from "@magicblock-labs/ephemeral-rollups-sdk"; -import { Program } from "@coral-xyz/anchor"; + requireAccount, + sendExpectingFailure, + sendSvmIx, +} from "@magicblock-labs/test-utils"; import { EphemeralAccountChats } from "../target/types/ephemeral_account_chats"; function generateName(): string { - // Random number padded with 0s to 10 digits const randomNumber = Math.floor(Math.random() * 10000000000); return randomNumber.toString().padStart(10, "0"); } @@ -26,16 +22,23 @@ function conversationSize(messageCount: number): number { const MAX_MESSAGE_COUNT = 5; -describe("ephemeral-account-chats", () => { - anchor.setProvider(anchor.AnchorProvider.env()); - - const provider = anchor.getProvider() as anchor.AnchorProvider; - const program: Program = - anchor.workspace.ephemeralAccountChats; - const connection = provider.connection; - const userA = provider.wallet; +describe("ephemeral-account-chats magicsvm", () => { + const userAKp = Keypair.generate(); const userBKp = Keypair.generate(); + const { + svm, + payer, + program, + validator: validatorStr, + } = bootAnchorSvm({ + fromDir: __dirname, + programName: "ephemeral_account_chats", + payer: userAKp, + airdropLamports: BigInt(anchor.web3.LAMPORTS_PER_SOL), + }); + const userA = new anchor.Wallet(payer); const userB = new anchor.Wallet(userBKp); + const validator = new PublicKey(validatorStr); const nameA = generateName(); const nameB = generateName(); @@ -53,55 +56,19 @@ describe("ephemeral-account-chats", () => { program.programId, ); - const erRpcUrl = - process.env.EPHEMERAL_PROVIDER_ENDPOINT ?? - process.env.MAGICBLOCK_RPC_URL ?? - "https://devnet-as.magicblock.app"; - const erConnection = new Connection(erRpcUrl, "confirmed"); - let validator: PublicKey; - const erProgramA = new Program( - program.idl, - new anchor.AnchorProvider(erConnection, userA), - ); - const erProgramB = new Program( - program.idl, - new anchor.AnchorProvider(erConnection, userB), - ); - - ///--------------------------------------------------------------------------- - /// Base layer - ///--------------------------------------------------------------------------- - - before(async () => { - // Transfer some balance to userB - const tx = new Transaction().add( - SystemProgram.transfer({ - fromPubkey: userA.publicKey, - toPubkey: userB.publicKey, - lamports: 0.1 * anchor.web3.LAMPORTS_PER_SOL, - }), + async function instruction(builder: { + instruction(): Promise[2]>; + }): Promise[2]> { + return builder.instruction(); + } + + before(() => { + airdropOrThrow( + svm, + userB.publicKey, + BigInt(anchor.web3.LAMPORTS_PER_SOL), + "airdrop user B", ); - tx.feePayer = userA.publicKey; - tx.recentBlockhash = (await connection.getLatestBlockhash()).blockhash; - const signedTx = await userA.signTransaction(tx); - const txHash = await connection.sendRawTransaction(signedTx.serialize()); - await connection.confirmTransaction(txHash, "confirmed"); - - const response = await fetch(erRpcUrl, { - method: "POST", - body: JSON.stringify({ - method: "getIdentity", - jsonrpc: "2.0", - params: [ - { - commitment: "confirmed", - }, - ], - id: "c1cae191-92ec-4606-880c-c7817afaa121", - }), - }); - const data: any = await response.json(); - validator = new PublicKey(data.result.identity); console.log("Program ID: ", program.programId.toBase58()); console.log("Validator: ", validator.toBase58()); @@ -113,285 +80,301 @@ describe("ephemeral-account-chats", () => { }); it("creates profiles", async () => { - await program.methods - .createProfile(nameA) - .accountsPartial({ - authority: userA.publicKey, - profile: profileAPda, - systemProgram: SystemProgram.programId, - }) - .rpc(); - - await program.methods - .createProfile(nameB) - .accountsPartial({ - authority: userB.publicKey, - profile: profileBPda, - systemProgram: SystemProgram.programId, - }) - .signers([userBKp]) - .rpc({ skipPreflight: true }); + sendSvmIx( + svm, + [userAKp], + await instruction( + program.methods.createProfile(nameA).accountsPartial({ + authority: userA.publicKey, + profile: profileAPda, + systemProgram: SystemProgram.programId, + }), + ), + "base", + ); + sendSvmIx( + svm, + [userBKp], + await instruction( + program.methods.createProfile(nameB).accountsPartial({ + authority: userB.publicKey, + profile: profileBPda, + systemProgram: SystemProgram.programId, + }), + ), + "base", + ); - const profileA = await program.account.profile.fetch(profileAPda); - const profileB = await program.account.profile.fetch(profileBPda); + const profileA = program.coder.accounts.decode( + "profile", + Buffer.from(requireAccount(svm, profileAPda, "base").data), + ); + const profileB = program.coder.accounts.decode( + "profile", + Buffer.from(requireAccount(svm, profileBPda, "base").data), + ); expect(profileA.handle).to.equal(nameA); expect(profileB.handle).to.equal(nameB); }); it("tops up profiles", async () => { - let profileA = await connection.getAccountInfo(profileAPda); - const profileALamportsBefore = profileA?.lamports ?? 0; - - await program.methods - .topUpProfile(new anchor.BN(0.05 * anchor.web3.LAMPORTS_PER_SOL)) - .accounts({ - authority: userA.publicKey, - profile: profileAPda, - systemProgram: SystemProgram.programId, - }) - .rpc({ skipPreflight: true }); + const profileABefore = requireAccount(svm, profileAPda, "base"); + const profileALamportsBefore = Number(profileABefore.lamports); + + sendSvmIx( + svm, + [userAKp], + await instruction( + program.methods + .topUpProfile(new anchor.BN(0.05 * anchor.web3.LAMPORTS_PER_SOL)) + .accounts({ + authority: userA.publicKey, + profile: profileAPda, + systemProgram: SystemProgram.programId, + }), + ), + "base", + ); - profileA = await connection.getAccountInfo(profileAPda); - expect(profileA?.lamports).to.equal( + const profileA = requireAccount(svm, profileAPda, "base"); + expect(Number(profileA.lamports)).to.equal( 0.05 * anchor.web3.LAMPORTS_PER_SOL + profileALamportsBefore, ); }); it("delegates profiles", async () => { - await program.methods - .delegateProfile(validator) - .accounts({ - authority: userA.publicKey, - profile: profileAPda, - }) - .rpc({ skipPreflight: true }); - - await program.methods - .delegateProfile(validator) - .accounts({ - authority: userB.publicKey, - profile: profileBPda, - }) - .signers([userBKp]) - .rpc({ skipPreflight: true }); + sendSvmIx( + svm, + [userAKp], + await instruction( + program.methods.delegateProfile(validator).accounts({ + authority: userA.publicKey, + profile: profileAPda, + }), + ), + "base", + ); + sendSvmIx( + svm, + [userBKp], + await instruction( + program.methods.delegateProfile(validator).accounts({ + authority: userB.publicKey, + profile: profileBPda, + }), + ), + "base", + ); - const profileA = await connection.getAccountInfo(profileAPda); - const profileB = await connection.getAccountInfo(profileBPda); - expect(profileA?.owner?.toBase58()).to.equal( + const profileA = requireAccount(svm, profileAPda, "base"); + const profileB = requireAccount(svm, profileBPda, "base"); + expect(profileA.programAddress.toString()).to.equal( DELEGATION_PROGRAM_ID.toBase58(), ); - expect(profileB?.owner?.toBase58()).to.equal( + expect(profileB.programAddress.toString()).to.equal( DELEGATION_PROGRAM_ID.toBase58(), ); }); - ///--------------------------------------------------------------------------- - /// In the ephemeral rollup - ///--------------------------------------------------------------------------- - it("creates a conversation", async () => { - await erProgramA.methods - .createConversation() - .accounts({ - authority: userA.publicKey, - profileOwner: profileAPda, - profileOther: profileBPda, - conversation: conversationPda, - systemProgram: SystemProgram.programId, - }) - .rpc({ skipPreflight: true }); + sendSvmIx( + svm, + [userAKp], + await instruction( + program.methods.createConversation().accounts({ + authority: userA.publicKey, + profileOwner: profileAPda, + profileOther: profileBPda, + conversation: conversationPda, + systemProgram: SystemProgram.programId, + }), + ), + "ephemeral", + ); - const conversation = await erProgramA.account.conversation.fetch( + const conversationAccount = requireAccount( + svm, conversationPda, + "ephemeral", ); - expect(conversation.messages.length).to.equal(0); - const conversationAccount = await erConnection.getAccountInfo( - conversationPda, + const conversation = program.coder.accounts.decode( + "conversation", + Buffer.from(conversationAccount.data), ); - expect(conversationAccount?.data.length).to.equal(conversationSize(0)); + expect(conversation.messages.length).to.equal(0); + expect(conversationAccount.data.length).to.equal(conversationSize(0)); }); it("extends a conversation", async () => { - await erProgramA.methods - .extendConversation(MAX_MESSAGE_COUNT) - .accounts({ - authority: userA.publicKey, - profileSender: profileAPda, - profileOther: profileBPda, - }) - .rpc({ skipPreflight: true }); + sendSvmIx( + svm, + [userAKp], + await instruction( + program.methods.extendConversation(MAX_MESSAGE_COUNT).accountsPartial({ + authority: userA.publicKey, + profileSender: profileAPda, + profileOther: profileBPda, + conversation: conversationPda, + }), + ), + "ephemeral", + ); - const conversation = await erConnection.getAccountInfo(conversationPda); - expect(conversation?.data.length).to.equal( + const conversation = requireAccount(svm, conversationPda, "ephemeral"); + expect(conversation.data.length).to.equal( conversationSize(MAX_MESSAGE_COUNT), ); }); it("appends messages to a conversation", async () => { - let receivedMessages = 0; - const subscriptionId = erConnection.onAccountChange( - conversationPda, - (account) => { - const parsedMessage = erProgramA.coder.accounts.decode( - "conversation", - account.data, - ); - receivedMessages++; - }, - ); - const nMessages = MAX_MESSAGE_COUNT; - try { - for (let i = 0; i < nMessages; i++) { - // Include i in the message so each tx has unique bytes (different signature). - // maxRetries: 0 prevents web3.js from auto-resending the same tx if confirmation - // is slow — the resend would hit "already processed" against the ER. - if (i % 2 === 0) { - await erProgramA.methods - .appendMessage(`Hello ${i} from user A!`) - .accountsPartial({ - authority: userA.publicKey, - profileOwner: profileAPda, - profileOther: profileBPda, - }) - .rpc({ skipPreflight: true, maxRetries: 0 }); - } else { - await erProgramB.methods - .appendMessage(`Hello ${i} from user B!`) - .accountsPartial({ - authority: userB.publicKey, - profileOwner: profileAPda, - profileOther: profileBPda, - }) - .signers([userBKp]) - .rpc({ skipPreflight: true, maxRetries: 0 }); - } - } - - const retries = 10; - for (let i = 0; i < retries; i++) { - if (receivedMessages === nMessages) { - break; - } - await new Promise((resolve) => setTimeout(resolve, 100)); + for (let i = 0; i < nMessages; i++) { + if (i % 2 === 0) { + sendSvmIx( + svm, + [userAKp], + await instruction( + program.methods + .appendMessage(`Hello ${i} from user A!`) + .accountsPartial({ + authority: userA.publicKey, + profileOwner: profileAPda, + profileOther: profileBPda, + conversation: conversationPda, + }), + ), + "ephemeral", + ); + } else { + sendSvmIx( + svm, + [userBKp], + await instruction( + program.methods + .appendMessage(`Hello ${i} from user B!`) + .accountsPartial({ + authority: userB.publicKey, + profileOwner: profileAPda, + profileOther: profileBPda, + conversation: conversationPda, + }), + ), + "ephemeral", + ); } - } finally { - await erConnection.removeAccountChangeListener(subscriptionId); } - expect(receivedMessages).to.equal(nMessages); + const conversationAccount = requireAccount( + svm, + conversationPda, + "ephemeral", + ); + const conversation = program.coder.accounts.decode( + "conversation", + Buffer.from(conversationAccount.data), + ); + expect(conversation.messages.length).to.equal(nMessages); + + const failed = sendExpectingFailure( + svm, + [userAKp], + await instruction( + program.methods + .appendMessage( + "Hello world, appending another message, this should be failed!", + ) + .accountsPartial({ + authority: userA.publicKey, + profileOwner: profileAPda, + profileOther: profileBPda, + conversation: conversationPda, + }), + ), + "ephemeral", + ); + const expectedError = program.idl.errors.find( + (e) => + e.name === "conversationCapacityExceeded" || + e.name === "ConversationCapacityExceeded", + ); + expect(failed.meta().logs().join("\n")).to.include(expectedError?.msg); + }); - try { - await erProgramA.methods - .appendMessage( - "Hello world, appending another message, this should be failed!", - ) - .accountsPartial({ + it("closes a conversation", async () => { + sendSvmIx( + svm, + [userAKp], + await instruction( + program.methods.closeConversation().accounts({ authority: userA.publicKey, profileOwner: profileAPda, profileOther: profileBPda, - }) - .rpc(); - assert.fail("The conversation should have been full"); - } catch (error) { - let programError = error as anchor.ProgramError; - const expectedError = program.idl.errors.find( - (e) => e.name === "conversationCapacityExceeded", - ); - expect(programError.msg).to.equal(expectedError?.msg); - } - }); - - it("closes a conversation", async () => { - await erProgramA.methods - .closeConversation() - .accounts({ - authority: userA.publicKey, - profileOwner: profileAPda, - profileOther: profileBPda, - conversation: conversationPda, - }) - .rpc({ skipPreflight: true }); + conversation: conversationPda, + }), + ), + "ephemeral", + ); }); it("undelegates profiles", async () => { - const txHashA = await erProgramA.methods - .undelegateProfile() - .accountsPartial({ - authority: userA.publicKey, - profile: profileAPda, - }) - .rpc({ skipPreflight: true }); - const txHashB = await erProgramB.methods - .undelegateProfile() - .accountsPartial({ - authority: userB.publicKey, - profile: profileBPda, - }) - .rpc({ skipPreflight: true }); - - const commitmentSignatureA = await GetCommitmentSignature( - txHashA, - erConnection, + sendSvmIx( + svm, + [userAKp], + await instruction( + program.methods.undelegateProfile().accountsPartial({ + authority: userA.publicKey, + profile: profileAPda, + }), + ), + "ephemeral", ); - const commitmentSignatureB = await GetCommitmentSignature( - txHashB, - erConnection, + sendSvmIx( + svm, + [userBKp], + await instruction( + program.methods.undelegateProfile().accountsPartial({ + authority: userB.publicKey, + profile: profileBPda, + }), + ), + "ephemeral", ); - await connection.getTransaction(commitmentSignatureA, { - commitment: "confirmed", - maxSupportedTransactionVersion: 0, - }); - await connection.getTransaction(commitmentSignatureB, { - commitment: "confirmed", - maxSupportedTransactionVersion: 0, - }); - - const profileA = await connection.getAccountInfo(profileAPda); - const profileB = await connection.getAccountInfo(profileBPda); - expect(profileA?.owner?.toBase58()).to.equal(program.programId.toBase58()); - expect(profileB?.owner?.toBase58()).to.equal(program.programId.toBase58()); + const profileA = requireAccount(svm, profileAPda, "base"); + const profileB = requireAccount(svm, profileBPda, "base"); + expect(profileA.programAddress.toString()).to.equal( + program.programId.toBase58(), + ); + expect(profileB.programAddress.toString()).to.equal( + program.programId.toBase58(), + ); }); - ///--------------------------------------------------------------------------- - /// Base layer - ///--------------------------------------------------------------------------- - it("closes profiles and refunds user A", async () => { - await program.methods - .closeProfile() - .accounts({ - authority: userA.publicKey, - profile: profileAPda, - }) - .rpc(); - await program.methods - .closeProfile() - .accounts({ - authority: userB.publicKey, - profile: profileBPda, - }) - .signers([userBKp]) - .rpc({ skipPreflight: true }); - - const profileA = await connection.getAccountInfo(profileAPda); - const profileB = await connection.getAccountInfo(profileBPda); - expect(profileA?.owner).to.be.undefined; - expect(profileB?.owner).to.be.undefined; - - const userBBalance = await connection.getBalance(userB.publicKey); - const tx = new Transaction().add( - SystemProgram.transfer({ - fromPubkey: userB.publicKey, - toPubkey: userA.publicKey, - lamports: userBBalance - 5000, - }), + sendSvmIx( + svm, + [userAKp], + await instruction( + program.methods.closeProfile().accounts({ + authority: userA.publicKey, + profile: profileAPda, + }), + ), + "base", + ); + sendSvmIx( + svm, + [userBKp], + await instruction( + program.methods.closeProfile().accounts({ + authority: userB.publicKey, + profile: profileBPda, + }), + ), + "base", ); - tx.feePayer = userB.publicKey; - tx.recentBlockhash = (await connection.getLatestBlockhash()).blockhash; - const signedTx = await userB.signTransaction(tx); - const txHash = await connection.sendRawTransaction(signedTx.serialize()); - await connection.confirmTransaction(txHash, "confirmed"); + + expect(svm.getAccount(profileAPda).exists).to.equal(false); + expect(svm.getAccount(profileBPda).exists).to.equal(false); }); }); diff --git a/magic-actions/anchor/Anchor.toml b/magic-actions/anchor/Anchor.toml index 488ec3e9..7a86b5a9 100644 --- a/magic-actions/anchor/Anchor.toml +++ b/magic-actions/anchor/Anchor.toml @@ -19,4 +19,4 @@ cluster = "https://rpc.magicblock.app/devnet" wallet = "~/.config/solana/id.json" [scripts] -test = "yarn run ts-mocha -p ./tsconfig.json -t 120000 tests/**/*.ts" +test = "yarn test" diff --git a/magic-actions/anchor/README.md b/magic-actions/anchor/README.md index 4aeaca48..094832b2 100644 --- a/magic-actions/anchor/README.md +++ b/magic-actions/anchor/README.md @@ -28,20 +28,14 @@ yarn yarn build ``` -This example runs against a **local MagicBlock cluster** — a base Solana validator plus an Ephemeral Rollup, fronted by the Query Filtering Service. Start it in one terminal and leave it running: +Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash -yarn setup +yarn test ``` -`yarn setup` runs `SETUP_ONLY=1 ./scripts/test-locally.sh magic-actions` from the repo root: it builds this example, boots the validators, and holds them until you press a key. +MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no validators, no +network. The suite checks counter delegation, escrow and leaderboard actions, invalid account +rejections, undelegation, and escrow closure. -Then, in a second terminal, run this example's tests against that cluster: - -```bash -yarn test:local -``` - -`test:local` sources `scripts/local-env.sh` so the SDK targets the local cluster (without it the tests fall back to devnet). - -> Tip: to build and run **every** example end-to-end (what CI does), run the repo-root `./scripts/test-locally.sh` directly. +A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. diff --git a/magic-actions/anchor/package.json b/magic-actions/anchor/package.json index e79611df..5604371d 100644 --- a/magic-actions/anchor/package.json +++ b/magic-actions/anchor/package.json @@ -3,12 +3,9 @@ "scripts": { "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", - "build": "anchor keys sync && anchor build", - "test:local": ". ../../scripts/local-env.sh && npx ts-mocha -p ./tsconfig.json -t 1000000 tests/magic-actions-local.ts", - "test:magicsvm": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests-magicsvm/magic-actions.ts", - "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture", - "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh magic-actions", - "test": "yarn test:local" + "build": "anchor build --ignore-keys", + "test": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests/magic-actions.ts", + "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture" }, "dependencies": { "@coral-xyz/anchor": "^0.32.1", diff --git a/magic-actions/anchor/programs/magic-actions/src/lib.rs b/magic-actions/anchor/programs/magic-actions/src/lib.rs index e04da345..98513336 100644 --- a/magic-actions/anchor/programs/magic-actions/src/lib.rs +++ b/magic-actions/anchor/programs/magic-actions/src/lib.rs @@ -5,7 +5,7 @@ use ephemeral_rollups_sdk::cpi::DelegateConfig; use ephemeral_rollups_sdk::ephem::{CallHandler, MagicIntentBundleBuilder}; use ephemeral_rollups_sdk::{ActionArgs, ShortAccountMeta}; -declare_id!("6miF1vQoYKmgsyw1wFmUh2AAeZ85EDXvhr59S3oRmAUo"); +declare_id!("9K7ybJnAYtVY7RQU8ELwLqCFeXi6e8FD33Yq8ZnjDsi9"); pub const COUNTER_SEED: &[u8] = b"counter"; pub const LEADERBOARD_SEED: &[u8] = b"leaderboard"; diff --git a/magic-actions/anchor/tests-magicsvm/magic-actions.ts b/magic-actions/anchor/tests-magicsvm/magic-actions.ts deleted file mode 100644 index 216fdadf..00000000 --- a/magic-actions/anchor/tests-magicsvm/magic-actions.ts +++ /dev/null @@ -1,233 +0,0 @@ -import * as anchor from "@coral-xyz/anchor"; -import { strict as assert } from "assert"; -import { - createCloseEscrowInstruction, - createTopUpEscrowInstruction, - escrowPdaFromEscrowAuthority, -} from "@magicblock-labs/ephemeral-rollups-sdk"; -import { - accountOwner, - bootAnchorSvm, - DELEGATION_PROGRAM_ID, - isDelegated, - readU64le, - requireAccount, - sendExpectingFailure, - sendSvmIx, -} from "@magicblock-labs/test-utils"; -import { LAMPORTS_PER_SOL, PublicKey } from "@solana/web3.js"; -import { MagicActions } from "../target/types/magic_actions"; - -const COUNTER_SEED = "counter"; -const SEED_LEADERBOARD = "leaderboard"; - -function failedBlob(result: { - err(): unknown; - meta(): { logs(): string[] }; - toString(): string; -}): string { - const logs = result.meta().logs().join("\n"); - const err = JSON.stringify(result.err()); - const raw = `${result.toString()}\n${err}\n${logs}`; - if (/SignatureFailure|signature/i.test(raw)) { - return `signature verification failed\n${raw}`; - } - return raw; -} - -describe("magic-actions-local", () => { - const { svm, payer, program, validator } = bootAnchorSvm({ - fromDir: __dirname, - programName: "magic_actions", - airdropLamports: BigInt(LAMPORTS_PER_SOL) * 10n, - }); - const programId = program.programId; - const [pda] = PublicKey.findProgramAddressSync( - [Buffer.from(COUNTER_SEED)], - programId, - ); - const [leaderboardPda] = PublicKey.findProgramAddressSync( - [Buffer.from(SEED_LEADERBOARD)], - programId, - ); - const escrow = escrowPdaFromEscrowAuthority(payer.publicKey); - const validatorKey = new PublicKey(validator); - - function printCounter(message: string) { - const delegated = isDelegated(svm, pda); - const highScore = readU64le(svm, leaderboardPda, "base"); - - let counterBase = ""; - let counterER = ""; - if (delegated) { - counterBase = ""; - const erInfo = svm.getAccountFor(pda, { target: "ephemeral" }); - counterER = erInfo.exists - ? readU64le(svm, pda, "ephemeral").toString() - : "0"; - } else if (svm.getAccountFor(pda, { target: "base" }).exists) { - counterBase = readU64le(svm, pda, "base").toString(); - counterER = ""; - } - console.log("--------------------------------"); - console.log(`| ${delegated ? "✅ Delegated" : "❌ Not Delegated"}`); - console.log("--------------------------------"); - console.log("| Counter (Base): ", counterBase); - console.log("| Counter (ER): ", counterER); - console.log("| High Score: ", highScore.toString()); - console.log("--------------------------------"); - console.log(message); - } - - it("Initialize Counter", async () => { - const ix = await program.methods - .initialize() - .accounts({ - counter: pda, - user: payer.publicKey, - systemProgram: anchor.web3.SystemProgram.programId, - } as any) - .instruction(); - sendSvmIx(svm, [payer], ix, "base"); - requireAccount(svm, pda, "base", "counter"); - requireAccount(svm, leaderboardPda, "base", "leaderboard"); - assert.equal(readU64le(svm, pda, "base"), 0n); - assert.equal(readU64le(svm, leaderboardPda, "base"), 0n); - printCounter("✅ Initialized"); - }); - - it("Increment Counter on base layer", async () => { - const ix = await program.methods - .increment() - .accounts({ counter: pda }) - .instruction(); - sendSvmIx(svm, [payer], ix, "base"); - assert.equal(readU64le(svm, pda, "base"), 1n); - console.log("✅ Incremented (base)"); - }); - - it("Reject direct leaderboard updates", async () => { - const ix = await program.methods - .updateLeaderboard() - .accounts({ - counter: pda, - escrowAuth: payer.publicKey, - escrow, - }) - .instruction(); - const blob = failedBlob(sendExpectingFailure(svm, [payer], ix, "base")); - assert.match(blob, /signature verification failed|unknown signer/i); - }); - - it("Reject an incorrect counter PDA", async () => { - const invalidEscrow = anchor.web3.Keypair.generate(); - const ix = await program.methods - .updateLeaderboard() - .accounts({ - counter: leaderboardPda, - escrowAuth: payer.publicKey, - escrow: invalidEscrow.publicKey, - }) - .instruction(); - const blob = failedBlob( - sendExpectingFailure(svm, [payer, invalidEscrow], ix, "base"), - ); - assert.match(blob, /Error Code: ConstraintSeeds/); - }); - - it("Reject an incorrect escrow PDA", async () => { - const invalidEscrow = anchor.web3.Keypair.generate(); - const ix = await program.methods - .updateLeaderboard() - .accounts({ - counter: pda, - escrowAuth: payer.publicKey, - escrow: invalidEscrow.publicKey, - }) - .instruction(); - const blob = failedBlob( - sendExpectingFailure(svm, [payer, invalidEscrow], ix, "base"), - ); - assert.match(blob, /Error Code: ConstraintAddress/); - }); - - it("Delegate Counter and create Escrow", async () => { - const remainingAccounts = [ - { pubkey: validatorKey, isSigner: false, isWritable: false }, - ]; - const topUpIx = createTopUpEscrowInstruction( - escrow, - payer.publicKey, - payer.publicKey, - 10000, - ); - const delegateIx = await program.methods - .delegate() - .accounts({ payer: payer.publicKey, pda }) - .remainingAccounts(remainingAccounts) - .instruction(); - sendSvmIx(svm, [payer], [topUpIx, delegateIx], "base"); - - assert.equal( - accountOwner(svm, pda, "base"), - DELEGATION_PROGRAM_ID.toBase58(), - ); - assert.ok(isDelegated(svm, pda)); - assert.equal(readU64le(svm, pda, "ephemeral"), 1n); - const escrowAccount = requireAccount(svm, escrow, "base", "escrow"); - assert.ok(escrowAccount.lamports > 0n); - console.log("✅ Delegated"); - }); - - it("Increment Counter in ER", async () => { - const ix = await program.methods - .increment() - .accounts({ counter: pda }) - .instruction(); - sendSvmIx(svm, [payer], ix, "ephemeral"); - assert.equal(readU64le(svm, pda, "ephemeral"), 2n); - printCounter("✅ Incremented (ER)"); - }); - - it("Update Leaderboard while delegated", async () => { - const ix = await program.methods - .commitAndUpdateLeaderboard() - .accounts({ - payer: payer.publicKey, - programId, - } as any) - .instruction(); - sendSvmIx(svm, [payer], ix, "ephemeral"); - - const highScore = readU64le(svm, leaderboardPda, "base"); - const erCount = readU64le(svm, pda, "ephemeral"); - assert.equal( - highScore, - erCount, - "post-commit magic action must update the base leaderboard from the committed counter", - ); - printCounter("✅ Updated leaderboard while delegated"); - }); - - it("Undelegate Counter", async () => { - const ix = await program.methods - .undelegate() - .accounts({ payer: payer.publicKey }) - .instruction(); - sendSvmIx(svm, [payer], ix, "ephemeral"); - assert.equal(accountOwner(svm, pda, "base"), programId.toBase58()); - assert.equal(readU64le(svm, pda, "base"), 2n); - printCounter("✅ Undelegated"); - }); - - it("Close Escrow", async () => { - const ix = createCloseEscrowInstruction(escrow, payer.publicKey); - sendSvmIx(svm, [payer], ix, "base"); - const escrowAccount = svm.getAccountFor(escrow, { target: "base" }); - assert.ok( - !escrowAccount.exists || escrowAccount.lamports === 0n, - "escrow should be closed", - ); - console.log("✅ Escrow closed"); - }); -}); diff --git a/magic-actions/anchor/tests/magic-actions-local.ts b/magic-actions/anchor/tests/magic-actions-local.ts deleted file mode 100644 index d89975c4..00000000 --- a/magic-actions/anchor/tests/magic-actions-local.ts +++ /dev/null @@ -1,278 +0,0 @@ -import * as anchor from "@coral-xyz/anchor"; -import { Program, web3 } from "@coral-xyz/anchor"; -import { strict as assert } from "assert"; -import { MagicActions } from "../target/types/magic_actions"; -import { - DELEGATION_PROGRAM_ID, - createCloseEscrowInstruction, - createTopUpEscrowInstruction, - escrowPdaFromEscrowAuthority, -} from "@magicblock-labs/ephemeral-rollups-sdk"; -import { Transaction } from "@solana/web3.js"; - -const COUNTER_SEED = "counter"; -const SEED_LEADERBOARD = "leaderboard"; - -describe("magic-actions-local", () => { - // Base layer - const provider = new anchor.AnchorProvider( - new anchor.web3.Connection( - process.env.PROVIDER_ENDPOINT || "http://localhost:8899", - { - wsEndpoint: process.env.WS_ENDPOINT || undefined, - commitment: "confirmed", - }, - ), - anchor.Wallet.local(), - ); - anchor.setProvider(provider); - - // ER - const providerEphemeralRollup = new anchor.AnchorProvider( - new anchor.web3.Connection( - process.env.EPHEMERAL_PROVIDER_ENDPOINT || "http://localhost:7799", - { - wsEndpoint: process.env.EPHEMERAL_WS_ENDPOINT || undefined, - commitment: "confirmed", - }, - ), - anchor.Wallet.local(), - ); - - const program = anchor.workspace.magicActions as Program; - const [pda] = anchor.web3.PublicKey.findProgramAddressSync( - [Buffer.from(COUNTER_SEED)], - program.programId, - ); - const [leaderboardPda] = anchor.web3.PublicKey.findProgramAddressSync( - [Buffer.from(SEED_LEADERBOARD)], - program.programId, - ); - - console.log("Base Layer Connection: ", provider.connection.rpcEndpoint); - console.log( - "Ephemeral Rollup Connection: ", - providerEphemeralRollup.connection.rpcEndpoint, - ); - console.log("Program ID: ", program.programId.toBase58()); - console.log("Counter PDA: ", pda.toBase58()); - console.log("Leaderboard PDA: ", leaderboardPda.toBase58()); - - async function printCounter(message: string) { - const counterInfo = await provider.connection.getAccountInfo(pda); - const isDelegated = - counterInfo?.owner.toBase58() === DELEGATION_PROGRAM_ID.toBase58(); - const leaderboardAccount = await program.account.leaderboard.fetch( - leaderboardPda, - ); - - let counterBase = ""; - let counterER = ""; - if (isDelegated) { - counterBase = ""; - const erInfo = await providerEphemeralRollup.connection.getAccountInfo( - pda, - ); - counterER = erInfo?.data.readBigUInt64LE(8).toString() ?? "0"; - } else { - const acc = await program.account.counter.fetch(pda); - counterBase = acc.count.toNumber().toString(); - counterER = ""; - } - console.log("--------------------------------"); - console.log(`| ${isDelegated ? "✅ Delegated" : "❌ Not Delegated"}`); - console.log("--------------------------------"); - console.log("| Counter (Base): ", counterBase); - console.log("| Counter (ER): ", counterER); - console.log("| High Score: ", leaderboardAccount.highScore.toNumber()); - console.log("--------------------------------"); - console.log(message); - } - - it("Initialize Counter", async () => { - if (await provider.connection.getAccountInfo(pda)) { - console.log("Counter already initialized"); - return; - } - const sig = await program.methods - .initialize() - .accounts({ - counter: pda, - user: provider.wallet.publicKey, - systemProgram: anchor.web3.SystemProgram.programId, - } as any) - .rpc({ skipPreflight: true }); - await printCounter(`✅ Initialized. Sig: ${sig}`); - }); - - it("Increment Counter on base layer", async () => { - const info = await provider.connection.getAccountInfo(pda); - if (info?.owner.toBase58() === DELEGATION_PROGRAM_ID.toBase58()) { - console.log("Skipping — counter is delegated"); - return; - } - const sig = await program.methods - .increment() - .accounts({ counter: pda }) - .rpc({ skipPreflight: true }); - console.log("✅ Incremented (base). Sig:", sig); - }); - - it("Reject direct leaderboard updates", async () => { - const info = await provider.connection.getAccountInfo(pda); - if (info?.owner.toBase58() === DELEGATION_PROGRAM_ID.toBase58()) { - console.log("Skipping — counter is delegated"); - return; - } - await assert.rejects( - program.methods - .updateLeaderboard() - .accounts({ - counter: pda, - escrowAuth: provider.wallet.publicKey, - escrow: escrowPdaFromEscrowAuthority(provider.wallet.publicKey), - }) - .rpc({ skipPreflight: true }), - /signature verification failed|unknown signer/i, - ); - }); - - it("Reject an incorrect counter PDA", async () => { - const invalidEscrow = web3.Keypair.generate(); - await assert.rejects( - program.methods - .updateLeaderboard() - .accounts({ - counter: leaderboardPda, - escrowAuth: provider.wallet.publicKey, - escrow: invalidEscrow.publicKey, - }) - .signers([invalidEscrow]) - .rpc(), - /Error Code: ConstraintSeeds/, - ); - }); - - it("Reject an incorrect escrow PDA", async () => { - const invalidEscrow = web3.Keypair.generate(); - await assert.rejects( - program.methods - .updateLeaderboard() - .accounts({ - counter: pda, - escrowAuth: provider.wallet.publicKey, - escrow: invalidEscrow.publicKey, - }) - .signers([invalidEscrow]) - .rpc(), - /Error Code: ConstraintAddress/, - ); - }); - - it("Delegate Counter and create Escrow", async () => { - const info = await provider.connection.getAccountInfo(pda); - if (info?.owner.toBase58() === DELEGATION_PROGRAM_ID.toBase58()) { - console.log("Already delegated"); - return; - } - const validatorKey = new web3.PublicKey( - process.env.VALIDATOR || "mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev", - ); - const remainingAccounts = [ - { pubkey: validatorKey, isSigner: false, isWritable: false }, - ]; - - const topUpIx = createTopUpEscrowInstruction( - escrowPdaFromEscrowAuthority(provider.wallet.publicKey), - provider.wallet.publicKey, - provider.wallet.publicKey, - 10000, - ); - const delegateIx = await program.methods - .delegate() - .accounts({ payer: provider.wallet.publicKey, pda }) - .remainingAccounts(remainingAccounts) - .instruction(); - - const tx = new Transaction().add(topUpIx, delegateIx); - const sig = await provider.sendAndConfirm(tx, [], { skipPreflight: true }); - await new Promise((r) => setTimeout(r, 1000)); - console.log("✅ Delegated. Sig:", sig); - }); - - it("Increment Counter in ER", async () => { - const info = await provider.connection.getAccountInfo(pda); - if (info?.owner.toBase58() !== DELEGATION_PROGRAM_ID.toBase58()) { - console.log("Skipping — not delegated"); - return; - } - const tx = await program.methods - .increment() - .accounts({ counter: pda }) - .transaction(); - tx.feePayer = provider.wallet.publicKey; - tx.recentBlockhash = ( - await providerEphemeralRollup.connection.getLatestBlockhash() - ).blockhash; - const sig = await providerEphemeralRollup.sendAndConfirm(tx, [], { - skipPreflight: true, - }); - await printCounter(`✅ Incremented (ER). Sig: ${sig}`); - }); - - it("Update Leaderboard while delegated", async () => { - const info = await provider.connection.getAccountInfo(pda); - if (info?.owner.toBase58() !== DELEGATION_PROGRAM_ID.toBase58()) { - console.log("Skipping — not delegated"); - return; - } - const tx = await program.methods - .commitAndUpdateLeaderboard() - .accounts({ - payer: provider.wallet.publicKey, - programId: program.programId, - } as any) - .transaction(); - tx.feePayer = provider.wallet.publicKey; - tx.recentBlockhash = ( - await providerEphemeralRollup.connection.getLatestBlockhash() - ).blockhash; - const sig = await providerEphemeralRollup.sendAndConfirm(tx, [], { - skipPreflight: true, - }); - await new Promise((r) => setTimeout(r, 2000)); - await printCounter(`✅ Updated leaderboard while delegated. Sig: ${sig}`); - }); - - it("Undelegate Counter", async () => { - const info = await provider.connection.getAccountInfo(pda); - if (info?.owner.toBase58() !== DELEGATION_PROGRAM_ID.toBase58()) { - console.log("Skipping — not delegated"); - return; - } - const tx = await program.methods - .undelegate() - .accounts({ payer: provider.wallet.publicKey }) - .transaction(); - tx.feePayer = provider.wallet.publicKey; - tx.recentBlockhash = ( - await providerEphemeralRollup.connection.getLatestBlockhash() - ).blockhash; - const sig = await providerEphemeralRollup.sendAndConfirm(tx, [], { - skipPreflight: true, - }); - await new Promise((r) => setTimeout(r, 5000)); - await printCounter(`✅ Undelegated. Sig: ${sig}`); - }); - - it("Close Escrow", async () => { - const ix = createCloseEscrowInstruction( - escrowPdaFromEscrowAuthority(provider.wallet.publicKey), - provider.wallet.publicKey, - ); - const sig = await provider.sendAndConfirm(new Transaction().add(ix), [], { - skipPreflight: true, - }); - console.log("✅ Escrow closed. Sig:", sig); - }); -}); diff --git a/magic-actions/anchor/tests/magic-actions.ts b/magic-actions/anchor/tests/magic-actions.ts index 8de630bb..e9c7634a 100644 --- a/magic-actions/anchor/tests/magic-actions.ts +++ b/magic-actions/anchor/tests/magic-actions.ts @@ -1,317 +1,233 @@ import * as anchor from "@coral-xyz/anchor"; -import { Program, web3 } from "@coral-xyz/anchor"; import { strict as assert } from "assert"; -import { MagicActions } from "../target/types/magic_actions"; import { - ConnectionMagicRouter, createCloseEscrowInstruction, createTopUpEscrowInstruction, escrowPdaFromEscrowAuthority, } from "@magicblock-labs/ephemeral-rollups-sdk"; -import { Transaction, sendAndConfirmTransaction } from "@solana/web3.js"; +import { + accountOwner, + bootAnchorSvm, + DELEGATION_PROGRAM_ID, + isDelegated, + readU64le, + requireAccount, + sendExpectingFailure, + sendSvmIx, +} from "@magicblock-labs/test-utils"; +import { LAMPORTS_PER_SOL, PublicKey } from "@solana/web3.js"; +import { MagicActions } from "../target/types/magic_actions"; const COUNTER_SEED = "counter"; const SEED_LEADERBOARD = "leaderboard"; -describe("magic-actions", () => { - anchor.setProvider(anchor.AnchorProvider.env()); - const program = anchor.workspace.magicActions as Program; - - const routerConnection: ConnectionMagicRouter = new ConnectionMagicRouter( - process.env.ROUTER_ENDPOINT || "https://devnet-router.magicblock.app", - { - wsEndpoint: - process.env.ROUTER_WS_ENDPOINT || "wss://devnet-router.magicblock.app", - }, - ); +function failedBlob(result: { + err(): unknown; + meta(): { logs(): string[] }; + toString(): string; +}): string { + const logs = result.meta().logs().join("\n"); + const err = JSON.stringify(result.err()); + const raw = `${result.toString()}\n${err}\n${logs}`; + if (/SignatureFailure|signature/i.test(raw)) { + return `signature verification failed\n${raw}`; + } + return raw; +} - const [pda] = anchor.web3.PublicKey.findProgramAddressSync( +describe("magic-actions-local", () => { + const { svm, payer, program, validator } = bootAnchorSvm({ + fromDir: __dirname, + programName: "magic_actions", + airdropLamports: BigInt(LAMPORTS_PER_SOL) * 10n, + }); + const programId = program.programId; + const [pda] = PublicKey.findProgramAddressSync( [Buffer.from(COUNTER_SEED)], - program.programId, + programId, ); - - const [leaderboard_pda] = anchor.web3.PublicKey.findProgramAddressSync( + const [leaderboardPda] = PublicKey.findProgramAddressSync( [Buffer.from(SEED_LEADERBOARD)], - program.programId, + programId, ); + const escrow = escrowPdaFromEscrowAuthority(payer.publicKey); + const validatorKey = new PublicKey(validator); + + function printCounter(message: string) { + const delegated = isDelegated(svm, pda); + const highScore = readU64le(svm, leaderboardPda, "base"); + + let counterBase = ""; + let counterER = ""; + if (delegated) { + counterBase = ""; + const erInfo = svm.getAccountFor(pda, { target: "ephemeral" }); + counterER = erInfo.exists + ? readU64le(svm, pda, "ephemeral").toString() + : "0"; + } else if (svm.getAccountFor(pda, { target: "base" }).exists) { + counterBase = readU64le(svm, pda, "base").toString(); + counterER = ""; + } + console.log("--------------------------------"); + console.log(`| ${delegated ? "✅ Delegated" : "❌ Not Delegated"}`); + console.log("--------------------------------"); + console.log("| Counter (Base): ", counterBase); + console.log("| Counter (ER): ", counterER); + console.log("| High Score: ", highScore.toString()); + console.log("--------------------------------"); + console.log(message); + } - console.log("Router Endpoint: ", routerConnection.rpcEndpoint); - console.log("Program ID: ", program.programId.toBase58()); - console.log("Counter PDA: ", pda.toBase58()); - console.log("Leaderboard PDA: ", leaderboard_pda.toBase58()); - - it("Initialize Counter!", async () => { - const tx = (await program.methods + it("Initialize Counter", async () => { + const ix = await program.methods .initialize() .accounts({ - // @ts-ignore counter: pda, - user: anchor.Wallet.local().publicKey, + user: payer.publicKey, systemProgram: anchor.web3.SystemProgram.programId, - }) - .transaction()) as Transaction; - const signature = await sendAndConfirmTransaction( - routerConnection, - tx, - [anchor.Wallet.local().payer], - { skipPreflight: true }, - ); - await printCounter( - program, - pda, - leaderboard_pda, - routerConnection, - signature, - "✅ Initialized Counter PDA!", - ); + } as never) + .instruction(); + sendSvmIx(svm, [payer], ix, "base"); + requireAccount(svm, pda, "base", "counter"); + requireAccount(svm, leaderboardPda, "base", "leaderboard"); + assert.equal(readU64le(svm, pda, "base"), 0n); + assert.equal(readU64le(svm, leaderboardPda, "base"), 0n); + printCounter("✅ Initialized"); }); - it("Increment Counter!", async () => { - const tx = (await program.methods + it("Increment Counter on base layer", async () => { + const ix = await program.methods .increment() + .accounts({ counter: pda }) + .instruction(); + sendSvmIx(svm, [payer], ix, "base"); + assert.equal(readU64le(svm, pda, "base"), 1n); + console.log("✅ Incremented (base)"); + }); + + it("Reject direct leaderboard updates", async () => { + const ix = await program.methods + .updateLeaderboard() .accounts({ counter: pda, + escrowAuth: payer.publicKey, + escrow, }) - .transaction()) as Transaction; + .instruction(); + const blob = failedBlob(sendExpectingFailure(svm, [payer], ix, "base")); + assert.match(blob, /signature verification failed|unknown signer/i); + }); - const signature = await sendAndConfirmTransaction( - routerConnection, - tx, - [anchor.Wallet.local().payer], - { skipPreflight: true }, + it("Reject an incorrect counter PDA", async () => { + const invalidEscrow = anchor.web3.Keypair.generate(); + const ix = await program.methods + .updateLeaderboard() + .accounts({ + counter: leaderboardPda, + escrowAuth: payer.publicKey, + escrow: invalidEscrow.publicKey, + }) + .instruction(); + const blob = failedBlob( + sendExpectingFailure(svm, [payer, invalidEscrow], ix, "base"), ); - console.log("✅ Incremented Counter PDA! Signature:", signature); + assert.match(blob, /Error Code: ConstraintSeeds/); }); - it("Reject direct leaderboard updates!", async () => { - await assert.rejects(async () => { - const tx = await program.methods - .updateLeaderboard() - .accounts({ - counter: pda, - escrowAuth: anchor.Wallet.local().publicKey, - escrow: escrowPdaFromEscrowAuthority(anchor.Wallet.local().publicKey), - }) - .transaction(); - - await sendAndConfirmTransaction( - routerConnection, - tx, - [anchor.Wallet.local().payer], - { skipPreflight: true }, - ); - }, /signature verification failed|unknown signer/i); + it("Reject an incorrect escrow PDA", async () => { + const invalidEscrow = anchor.web3.Keypair.generate(); + const ix = await program.methods + .updateLeaderboard() + .accounts({ + counter: pda, + escrowAuth: payer.publicKey, + escrow: invalidEscrow.publicKey, + }) + .instruction(); + const blob = failedBlob( + sendExpectingFailure(svm, [payer, invalidEscrow], ix, "base"), + ); + assert.match(blob, /Error Code: ConstraintAddress/); }); - it("Delegate Counter to ER and create Escrow for Magic Action!", async () => { - const validator = await routerConnection.getClosestValidator(); - console.log("Delegating to closest validator: ", JSON.stringify(validator)); - - // Add local validator identity to the remaining accounts if running on localnet - const remainingAccounts = - routerConnection.rpcEndpoint.includes("localhost") || - routerConnection.rpcEndpoint.includes("127.0.0.1") - ? [ - { - pubkey: new web3.PublicKey( - process.env.VALIDATOR || - "mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev", - ), - isSigner: false, - isWritable: false, - }, - ] - : [ - { - pubkey: new web3.PublicKey(validator.identity), - isSigner: false, - isWritable: false, - }, - ]; - - const topUpEscrowIx = createTopUpEscrowInstruction( - escrowPdaFromEscrowAuthority(anchor.Wallet.local().publicKey), - anchor.Wallet.local().publicKey, - anchor.Wallet.local().publicKey, - 10000, // top-up amount in lamports + it("Delegate Counter and create Escrow", async () => { + const remainingAccounts = [ + { pubkey: validatorKey, isSigner: false, isWritable: false }, + ]; + const topUpIx = createTopUpEscrowInstruction( + escrow, + payer.publicKey, + payer.publicKey, + 10000, ); - const delegateIx = await program.methods .delegate() - .accounts({ - payer: anchor.Wallet.local().publicKey, - pda: pda, - }) + .accounts({ payer: payer.publicKey, pda }) .remainingAccounts(remainingAccounts) .instruction(); + sendSvmIx(svm, [payer], [topUpIx, delegateIx], "base"); - const tx = new Transaction().add(topUpEscrowIx, delegateIx); - - const signature = await sendAndConfirmTransaction( - routerConnection, - tx, - [anchor.Wallet.local().payer], - { skipPreflight: true }, + assert.equal( + accountOwner(svm, pda, "base"), + DELEGATION_PROGRAM_ID.toBase58(), ); - - await sleepWithAnimation(1); - console.log("✅ Delegated Counter PDA! Signature:", signature); + assert.ok(isDelegated(svm, pda)); + assert.equal(readU64le(svm, pda, "ephemeral"), 1n); + const escrowAccount = requireAccount(svm, escrow, "base", "escrow"); + assert.ok(escrowAccount.lamports > 0n); + console.log("✅ Delegated"); }); - it("Increment Counter on ER!", async () => { - const tx = await program.methods + it("Increment Counter in ER", async () => { + const ix = await program.methods .increment() - .accounts({ - counter: pda, - }) - .transaction(); - - const signature = await sendAndConfirmTransaction( - routerConnection, - tx, - [anchor.Wallet.local().payer], - { skipPreflight: true }, - ); - - await printCounter( - program, - pda, - leaderboard_pda, - routerConnection, - signature, - "✅ Incremented Counter PDA!", - ); + .accounts({ counter: pda }) + .instruction(); + sendSvmIx(svm, [payer], ix, "ephemeral"); + assert.equal(readU64le(svm, pda, "ephemeral"), 2n); + printCounter("✅ Incremented (ER)"); }); - it("Update Leaderboard While Delegated!", async () => { - const tx = await program.methods + it("Update Leaderboard while delegated", async () => { + const ix = await program.methods .commitAndUpdateLeaderboard() .accounts({ - payer: anchor.Wallet.local().publicKey, - programId: program.programId, - }) - .transaction(); - - const signature = await sendAndConfirmTransaction( - routerConnection, - tx, - [anchor.Wallet.local().payer], - { skipPreflight: true }, - ); - - await sleepWithAnimation(2); - await printCounter( - program, - pda, - leaderboard_pda, - routerConnection, - signature, - "✅ Updated Leaderboard While Delegated!", + payer: payer.publicKey, + programId, + } as never) + .instruction(); + sendSvmIx(svm, [payer], ix, "ephemeral"); + + const highScore = readU64le(svm, leaderboardPda, "base"); + const erCount = readU64le(svm, pda, "ephemeral"); + assert.equal( + highScore, + erCount, + "post-commit magic action must update the base leaderboard from the committed counter", ); + printCounter("✅ Updated leaderboard while delegated"); }); - it("Undelegate Counter!", async () => { - const tx = await program.methods + it("Undelegate Counter", async () => { + const ix = await program.methods .undelegate() - .accounts({ - payer: anchor.Wallet.local().publicKey, - }) - .transaction(); - - const signature = await sendAndConfirmTransaction( - routerConnection, - tx, - [anchor.Wallet.local().payer], - { skipPreflight: true }, - ); - await sleepWithAnimation(5); - await printCounter( - program, - pda, - leaderboard_pda, - routerConnection, - signature, - "✅ Undelegated Counter PDA!", - ); + .accounts({ payer: payer.publicKey }) + .instruction(); + sendSvmIx(svm, [payer], ix, "ephemeral"); + assert.equal(accountOwner(svm, pda, "base"), programId.toBase58()); + assert.equal(readU64le(svm, pda, "base"), 2n); + printCounter("✅ Undelegated"); }); - it("Close Escrow for Action!", async () => { - const closeEscrowIx = createCloseEscrowInstruction( - escrowPdaFromEscrowAuthority(anchor.Wallet.local().publicKey), - anchor.Wallet.local().publicKey, - ); - - const tx = new Transaction().add(closeEscrowIx); - const signature = await sendAndConfirmTransaction( - routerConnection, - tx, - [anchor.Wallet.local().payer], - { skipPreflight: true }, - ); - await printCounter( - program, - pda, - leaderboard_pda, - routerConnection, - signature, - "✅ Esrow closed!", + it("Close Escrow", async () => { + const ix = createCloseEscrowInstruction(escrow, payer.publicKey); + sendSvmIx(svm, [payer], ix, "base"); + const escrowAccount = svm.getAccountFor(escrow, { target: "base" }); + assert.ok( + !escrowAccount.exists || escrowAccount.lamports === 0n, + "escrow should be closed", ); + console.log("✅ Escrow closed"); }); }); - -async function printCounter( - program: Program, - counter_pda: web3.PublicKey, - leaderboard_pda: web3.PublicKey, - routerConnection: ConnectionMagicRouter, - signature: string, - message: string, -) { - console.log(message + " Signature: ", signature); - const delegationStatus = await routerConnection.getDelegationStatus( - counter_pda, - ); - const leaderboardAccount = await program.account.leaderboard.fetch( - leaderboard_pda, - ); - - var counterER = ""; - var counterBase = ""; - var delegationStatusMsg = ""; - - if (delegationStatus.isDelegated) { - const counterAccountER = await routerConnection.getAccountInfo(counter_pda); - const countValue = counterAccountER?.data.readBigUInt64LE(8); - counterER = countValue?.toString() || "0"; - counterBase = ""; - delegationStatusMsg = "✅ Delegated"; - } else { - counterER = ""; - const counterAccount = await program.account.counter.fetch(counter_pda); // Fetchs on Devnet - counterBase = counterAccount.count.toNumber().toString(); - delegationStatusMsg = "❌ Not Delegated"; - } - - console.log("--------------------------------"); - console.log("| " + delegationStatusMsg); - console.log("--------------------------------"); - console.log("| Counter (Base): ", counterBase); - console.log("| Counter (ER): ", counterER); - console.log("| High Score: ", leaderboardAccount.highScore.toNumber()); - console.log("--------------------------------"); -} - -async function sleepWithAnimation(seconds: number): Promise { - const totalMs = seconds * 1000; - const interval = 500; // Update every 500ms - const iterations = Math.floor(totalMs / interval); - - for (let i = 0; i < iterations; i++) { - const dots = ".".repeat((i % 3) + 1); - process.stdout.write(`\rWaiting${dots} `); - await new Promise((resolve) => setTimeout(resolve, interval)); - } - - // Clear the line - process.stdout.write("\r\x1b[K"); -} diff --git a/oncurve-delegation/client/README.md b/oncurve-delegation/client/README.md index 9e887a43..e46a4762 100644 --- a/oncurve-delegation/client/README.md +++ b/oncurve-delegation/client/README.md @@ -36,25 +36,16 @@ yarn build This is an SDK-only integration example — there is no on-chain program here, so `yarn build` is a no-op. -The tests run against a **local MagicBlock cluster** — a base Solana validator plus an Ephemeral Rollup, fronted by the Query Filtering Service. Start it in one terminal and leave it running: +Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash -yarn setup +yarn test ``` -`yarn setup` runs `SETUP_ONLY=1 ./scripts/test-locally.sh oncurve-delegation` from the repo root: it boots the validators and holds them until you press a key. +MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no validators, no +network. The suite assigns and delegates an on-curve account, commits its state, and undelegates it. -Then, in a second terminal, run the tests against that cluster: - -```bash -yarn test:local -``` - -`test:local` sources `scripts/local-env.sh` so the SDK targets the local cluster (without it the tests fall back to devnet). - -### Web3.js Tests - -A parallel web3.js implementation of the same flow is available (run against the configured endpoints): +A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. ```bash yarn test:web3js diff --git a/oncurve-delegation/client/package.json b/oncurve-delegation/client/package.json index 36db575c..55b163c9 100644 --- a/oncurve-delegation/client/package.json +++ b/oncurve-delegation/client/package.json @@ -17,11 +17,7 @@ "fs": "0.0.2" }, "scripts": { - "test:local": ". ../../scripts/local-env.sh && npx vitest run ./tests/kit/oncurve-delegation.test.ts", - "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh oncurve-delegation", - "test": "yarn test:local", - "test:web3js": "npx vitest run ./tests/web3js", - "test:magicsvm": "npx vitest run ./tests-magicsvm/oncurve-delegation.test.ts", + "test": "npx vitest run ./tests/oncurve-delegation.test.ts", "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture", "build": "echo \"No program to build \u2014 SDK integration tests only\"", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", diff --git a/oncurve-delegation/client/tests/kit/initializeKeypair.ts b/oncurve-delegation/client/tests/kit/initializeKeypair.ts deleted file mode 100644 index 08d84df5..00000000 --- a/oncurve-delegation/client/tests/kit/initializeKeypair.ts +++ /dev/null @@ -1,174 +0,0 @@ -import { - createKeyPairFromPrivateKeyBytes, - createKeyPairFromBytes, - Address, - createSolanaRpc, - createSolanaRpcSubscriptions, - airdropFactory, - lamports, - getAddressFromPublicKey, - pipe, - createTransactionMessage, - setTransactionMessageFeePayer, - appendTransactionMessageInstructions, -} from "@solana/kit"; - -import * as fs from "fs"; - -import dotenv from "dotenv"; -import { Connection } from "@magicblock-labs/ephemeral-rollups-kit"; -import { getTransferSolInstruction } from "@solana-program/system"; -dotenv.config(); - -// Initialize Keypair for SOL (delegated account) -export async function initializeSolSignerKeypair(): Promise< - ReturnType -> { - let keypair: CryptoKeyPair; - if (!process.env.PRIVATE_KEY) { - const { privateKey, publicKey } = await crypto.subtle.generateKey( - "Ed25519", - true, - ["sign", "verify"], - ); - const privateKeyBytes = new Uint8Array( - await crypto.subtle.exportKey("pkcs8", privateKey), - ).slice(-32); - const publicKeyBytes = new Uint8Array( - await crypto.subtle.exportKey("raw", publicKey), - ); - const keypairBytes = new Uint8Array([ - ...privateKeyBytes, - ...publicKeyBytes, - ]); - // Append the new key-value pair to the contents of the .env file - fs.writeFileSync( - ".env", - `PRIVATE_KEY=${JSON.stringify(Array.from(keypairBytes))}\n`, - ); - - keypair = await createKeyPairFromBytes(keypairBytes); - return keypair; - } else { - const secret = JSON.parse(process.env.PRIVATE_KEY ?? "") as number[]; - keypair = await createKeyPairFromBytes(new Uint8Array(secret)); - } - return keypair; -} - -// Initialize Keypair for fee payer and signer -export async function initializeFeePayer( - connection: Connection, - userKeypair: CryptoKeyPair, -): Promise> { - let feePayerKeypair: CryptoKeyPair; - - if (!process.env.FEE_PAYER_PRIVATE_KEY) { - const { privateKey, publicKey } = await crypto.subtle.generateKey( - "Ed25519", - true, - ["sign", "verify"], - ); - const privateKeyBytes = new Uint8Array( - await crypto.subtle.exportKey("pkcs8", privateKey), - ).slice(-32); - const publicKeyBytes = new Uint8Array( - await crypto.subtle.exportKey("raw", publicKey), - ); - const keypairBytes = new Uint8Array([ - ...privateKeyBytes, - ...publicKeyBytes, - ]); - // Append the new key-value pair to the contents of the .env file - let envContent = fs.readFileSync(".env", "utf-8"); - envContent += `FEE_PAYER_PRIVATE_KEY=${JSON.stringify(Array.from(keypairBytes))}\n`; - fs.writeFileSync(".env", envContent); - - feePayerKeypair = await createKeyPairFromBytes(keypairBytes); - } else { - const secret = JSON.parse( - process.env.FEE_PAYER_PRIVATE_KEY ?? "", - ) as number[]; - feePayerKeypair = await createKeyPairFromBytes(new Uint8Array(secret)); - } - - // Transfer 0.1 SOL to fee payer if needed - const userAddress = await getAddressFromPublicKey(userKeypair.publicKey); - const feePayerAddress = await getAddressFromPublicKey( - feePayerKeypair.publicKey, - ); - const TRANSFER_AMOUNT = 100_000_000n; // 0.1 SOL - const userBalance = await connection.getBalance(userAddress); - const feePayerBalance = await connection.getBalance(feePayerAddress); - - if ( - feePayerBalance < TRANSFER_AMOUNT && - userBalance >= 2n * TRANSFER_AMOUNT - ) { - const userSigner = await cryptoKeyPairToTransactionSigner(userKeypair); - const transferInstruction = getTransferSolInstruction({ - source: userSigner, - destination: feePayerAddress, - amount: lamports(TRANSFER_AMOUNT), - }); - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - (tx) => setTransactionMessageFeePayer(userAddress, tx), - (tx) => appendTransactionMessageInstructions([transferInstruction], tx), - ); - await connection.sendAndConfirmTransaction( - transactionMessage, - [userKeypair], - { commitment: "confirmed", skipPreflight: true }, - ); - } - return feePayerKeypair; -} - -// Helper to convert CryptoKeyPair to TransactionSigner for instruction builders -export async function cryptoKeyPairToTransactionSigner( - keypair: Awaited>, -) { - return { - address: await getAddressFromPublicKey(keypair.publicKey), - privateKey: keypair.privateKey, - } as any; // Cast needed due to Kit's type system -} - -export async function airdropSolIfNeeded( - rpcEndpoint: string, - wsEndpoint: string, - address: Address, - amount: number, - threshold: number = 1, -) { - const SOL_PER_LAMPORTS = BigInt("100000000"); - - if ( - rpcEndpoint.includes("dev") || - rpcEndpoint.includes("test") || - rpcEndpoint.includes("local") || - rpcEndpoint.includes("http://") - ) { - const rpc = await createSolanaRpc(rpcEndpoint); - const rpcSubscriptions = createSolanaRpcSubscriptions(wsEndpoint); - const balance = (await rpc.getBalance(address).send())?.value; - console.log("Current balance is", balance / SOL_PER_LAMPORTS, " SOL", "\n"); - if (balance < BigInt(threshold) * SOL_PER_LAMPORTS) { - console.log(`Selected cluster: ${rpcEndpoint}`); - console.log(`Airdropping ${amount} SOL... to ${address}`); - const airdrop = airdropFactory({ rpc, rpcSubscriptions }); - try { - await airdrop({ - commitment: "confirmed", - recipientAddress: address, - lamports: lamports(BigInt(SOL_PER_LAMPORTS) * BigInt(amount)), - }); - } catch (e) { - console.error("Airdrop failed:", e); - throw e; - } - console.log(`\rAirdrop of ${amount} SOL was successful.`); - } - } -} diff --git a/oncurve-delegation/client/tests/kit/oncurve-delegation.test.ts b/oncurve-delegation/client/tests/kit/oncurve-delegation.test.ts deleted file mode 100644 index 4c194320..00000000 --- a/oncurve-delegation/client/tests/kit/oncurve-delegation.test.ts +++ /dev/null @@ -1,204 +0,0 @@ -import { - initializeSolSignerKeypair, - initializeFeePayer, - airdropSolIfNeeded, - cryptoKeyPairToTransactionSigner, -} from "./initializeKeypair"; -import dotenv from "dotenv"; -import { - Connection, - createDelegateInstruction, - createCommitInstruction, - createCommitAndUndelegateInstruction, - DELEGATION_PROGRAM_ID, -} from "@magicblock-labs/ephemeral-rollups-kit"; -import { - address, - createTransactionMessage, - appendTransactionMessageInstructions, - pipe, - setTransactionMessageFeePayer, - getAddressFromPublicKey, -} from "@solana/kit"; -import { getAssignInstruction } from "@solana-program/system"; -import { SYSTEM_PROGRAM_ADDRESS } from "@solana-program/system"; -import { describe, it, beforeAll, expect } from "vitest"; - -dotenv.config(); - -describe.skip("on-curve-delegation-kit", async () => { - const TEST_TIMEOUT = 60_000; - console.log("🧪 Running on-curve-delegation kit test suite..."); - - // Connections - const connection = await Connection.create( - process.env.PROVIDER_ENDPOINT || "https://api.devnet.solana.com", - process.env.WS_ENDPOINT || "wss://api.devnet.solana.com", - ); - const ephemeralConnection = await Connection.create( - process.env.EPHEMERAL_PROVIDER_ENDPOINT || - "https://devnet-as.magicblock.app", - process.env.EPHEMERAL_WS_ENDPOINT || "wss://devnet-as.magicblock.app", - ); - - console.log( - "Base Layer RPC:", - connection.clusterUrlHttp, - "| Websocket:", - connection.clusterUrlWs, - ); - console.log( - "ER RPC:", - ephemeralConnection.clusterUrlHttp, - "| Websocket:", - ephemeralConnection.clusterUrlWs, - ); - - // Prepare keypairs - const userKeypair = await initializeSolSignerKeypair(); - const userAddress = await getAddressFromPublicKey(userKeypair.publicKey); - console.log(`User: ${userAddress}`); - - const feePayerKeypair = await initializeFeePayer(connection, userKeypair); - const feePayerAddress = await getAddressFromPublicKey( - feePayerKeypair.publicKey, - ); - console.log(`Fee Payer: ${feePayerAddress}`); - - // The owner program (typically system program) - const ownerProgramAddress = SYSTEM_PROGRAM_ADDRESS; - console.log("Owner Program:", ownerProgramAddress); - - // The validator to delegate to - const validatorAddress = address( - process.env.VALIDATOR || "MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57", - ); - console.log("Validator:", validatorAddress); - - // Ensure test wallets have SOL - beforeAll(async () => { - await airdropSolIfNeeded( - connection.clusterUrlHttp, - connection.clusterUrlWs, - userAddress, - 2, - ); - }, TEST_TIMEOUT); - - it( - "Assign owner + Delegate on-curve account", - async () => { - const start = Date.now(); - - // Create assign instruction - // The on-curve account must sign this instruction to change its owner - const accountSigner = await cryptoKeyPairToTransactionSigner(userKeypair); - const delegationProgramAddress = address( - DELEGATION_PROGRAM_ID.toString(), - ); - const assignInstruction = getAssignInstruction({ - account: accountSigner, - programAddress: delegationProgramAddress, - }); - - // Create delegate instruction - const delegateInstruction = await createDelegateInstruction({ - payer: feePayerAddress, - delegatedAccount: userAddress, - ownerProgram: ownerProgramAddress, - validator: validatorAddress, - }); - - // Prepare transaction - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - (tx) => setTransactionMessageFeePayer(feePayerAddress, tx), - (tx) => - appendTransactionMessageInstructions( - [assignInstruction, delegateInstruction], - tx, - ), - ); - - // Send and confirm transaction (fee payer need to sign, on-curve account cannot be signer since delegated) - const txHash = await connection.sendAndConfirmTransaction( - transactionMessage, - [userKeypair, feePayerKeypair], - { commitment: "confirmed", skipPreflight: true }, - ); - - const duration = Date.now() - start; - console.log(`${duration}ms - Delegate Signature: ${txHash}`); - - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - - it( - "Commit on-curve account", - async () => { - const start = Date.now(); - - // Create commit instruction - const commitInstruction = createCommitInstruction(userAddress, [ - userAddress, - ]); - - // Prepare transaction - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - (tx) => setTransactionMessageFeePayer(userAddress, tx), - (tx) => appendTransactionMessageInstructions([commitInstruction], tx), - ); - - // Send and confirm transaction on ephemeral connection - const txHash = await ephemeralConnection.sendAndConfirmTransaction( - transactionMessage, - [userKeypair], - { commitment: "confirmed", skipPreflight: true }, - ); - - const duration = Date.now() - start; - console.log(`${duration}ms - Commit Signature: ${txHash}`); - - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); - - it( - "Commit and undelegate on-curve account", - async () => { - const start = Date.now(); - - // Create commit and undelegate instruction - const commitAndUndelegateInstruction = - createCommitAndUndelegateInstruction(userAddress, [userAddress]); - - // Prepare transaction - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - (tx) => setTransactionMessageFeePayer(feePayerAddress, tx), - (tx) => - appendTransactionMessageInstructions( - [commitAndUndelegateInstruction], - tx, - ), - ); - - // Send and confirm transaction on ephemeral connection - const txHash = await ephemeralConnection.sendAndConfirmTransaction( - transactionMessage, - [userKeypair, feePayerKeypair], - { commitment: "confirmed", skipPreflight: true }, - ); - - const duration = Date.now() - start; - console.log(`${duration}ms - CommitAndUndelegate Signature: ${txHash}`); - - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT, - ); -}); diff --git a/oncurve-delegation/client/tests-magicsvm/oncurve-delegation.test.ts b/oncurve-delegation/client/tests/oncurve-delegation.test.ts similarity index 100% rename from oncurve-delegation/client/tests-magicsvm/oncurve-delegation.test.ts rename to oncurve-delegation/client/tests/oncurve-delegation.test.ts diff --git a/oncurve-delegation/client/tests/web3js/initializeKeypair.ts b/oncurve-delegation/client/tests/web3js/initializeKeypair.ts deleted file mode 100644 index 4d82cd95..00000000 --- a/oncurve-delegation/client/tests/web3js/initializeKeypair.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { - Keypair, - Connection, - PublicKey, - Transaction, - SystemProgram, - sendAndConfirmTransaction, - LAMPORTS_PER_SOL, -} from "@solana/web3.js"; -import { readFileSync, writeFileSync } from "fs"; - -import dotenv from "dotenv"; -dotenv.config(); - -// Initialize Keypair for SOL (delegated account) -export function initializeSolSignerKeypair(): Keypair { - let signer: Keypair; - - if (!process.env.PRIVATE_KEY) { - signer = Keypair.generate(); - // Append the new key-value pair to the contents of the .env file - writeFileSync(".env", `PRIVATE_KEY=[${signer.secretKey.toString()}]\n`); - } else { - const secret = JSON.parse(process.env.PRIVATE_KEY ?? "") as number[]; - const secretKey = Uint8Array.from(secret); - signer = Keypair.fromSecretKey(secretKey); - } - - return signer; -} - -// Initialize Keypair for fee payer and signer -export async function initializeFeePayer( - connection: Connection, - userKeypair: Keypair, -): Promise { - let feePayer: Keypair; - - if (!process.env.FEE_PAYER_PRIVATE_KEY) { - feePayer = Keypair.generate(); - // Append the new key-value pair to the contents of the .env file - let envContent = readFileSync(".env", "utf-8"); - envContent += `FEE_PAYER_PRIVATE_KEY=[${feePayer.secretKey.toString()}]\n`; - writeFileSync(".env", envContent); - } else { - const secret = JSON.parse( - process.env.FEE_PAYER_PRIVATE_KEY ?? "", - ) as number[]; - const secretKey = Uint8Array.from(secret); - feePayer = Keypair.fromSecretKey(secretKey); - } - - // Transfer 0.1 SOL to fee payer if needed - const TRANSFER_AMOUNT = 0.1 * 1_000_000_000; - const userBalance = await connection.getBalance(userKeypair.publicKey); - const feePayerBalance = await connection.getBalance(feePayer.publicKey); - - if (feePayerBalance < TRANSFER_AMOUNT && userBalance >= TRANSFER_AMOUNT * 2) { - try { - const transferInstruction = SystemProgram.transfer({ - fromPubkey: userKeypair.publicKey, - toPubkey: feePayer.publicKey, - lamports: TRANSFER_AMOUNT, - }); - const tx = new Transaction().add(transferInstruction); - await sendAndConfirmTransaction(connection, tx, [userKeypair], { - skipPreflight: true, - }); - console.log(`\rTransfer of 0.1 SOL to fee payer was successful.`); - } catch (e) { - console.error("Transfer failed:", e); - throw e; - } - } - return feePayer; -} - -export async function airdropSolIfNeeded( - connection: Connection, - pubkey: PublicKey, - amount: number, - threshold: number, -) { - if ( - connection.rpcEndpoint.includes("dev") || - connection.rpcEndpoint.includes("test") || - connection.rpcEndpoint.includes("local") || - connection.rpcEndpoint.includes("http://") - ) { - const balance = await connection.getBalance(pubkey); - console.log("Current balance is", balance / LAMPORTS_PER_SOL, " SOL", "\n"); - if (balance < threshold * LAMPORTS_PER_SOL) { - console.log(`Selected cluster: ${connection.rpcEndpoint}`); - console.log(`Airdropping ${amount} SOL... to ${pubkey.toString()}`); - try { - await connection.requestAirdrop(pubkey, amount * LAMPORTS_PER_SOL); - console.log(`\rAirdrop of ${amount} SOL was successful.`); - } catch (e) { - console.error("Airdrop failed:", e); - throw e; - } - } - } -} diff --git a/oncurve-delegation/client/tests/web3js/oncurve-delegation.test.ts b/oncurve-delegation/client/tests/web3js/oncurve-delegation.test.ts deleted file mode 100644 index e692f35c..00000000 --- a/oncurve-delegation/client/tests/web3js/oncurve-delegation.test.ts +++ /dev/null @@ -1,169 +0,0 @@ -import { - PublicKey, - SystemProgram, - Transaction, - Connection, - sendAndConfirmTransaction, - Keypair, -} from "@solana/web3.js"; -import { - initializeSolSignerKeypair, - initializeFeePayer, - airdropSolIfNeeded, -} from "./initializeKeypair"; -import { - createDelegateInstruction, - createCommitInstruction, - createCommitAndUndelegateInstruction, - DELEGATION_PROGRAM_ID, -} from "@magicblock-labs/ephemeral-rollups-sdk"; - -import { describe, it, beforeAll, expect } from "vitest"; - -import dotenv from "dotenv"; -dotenv.config(); - -describe("on-curve-delegation-web3js", async () => { - const TEST_TIMEOUT = 60_000; - console.log("🧪 Running on-curve-delegation web3js test suite..."); - - // Set up connections - const connectionBaseLayer = new Connection( - process.env.PROVIDER_ENDPOINT || "https://api.devnet.solana.com", - ); - const ephemeralConnection = new Connection( - process.env.EPHEMERAL_PROVIDER_ENDPOINT || - "https://devnet-as.magicblock.app", - ); - console.log("Base Layer Connection: ", connectionBaseLayer.rpcEndpoint); - console.log("Ephemeral Connection: ", ephemeralConnection.rpcEndpoint); - - // Create keypairs - const userKeypair = initializeSolSignerKeypair(); - const userPubkey = userKeypair.publicKey; - console.log("User:", userPubkey.toString()); - let feePayerKeypair: Keypair; - let feePayerPubkey: PublicKey; - - // The owner program (typically system program for new accounts) - const ownerProgram = SystemProgram.programId; - console.log("Owner Program:", ownerProgram.toString()); - - // The validator to delegate to - const validator = new PublicKey( - process.env.VALIDATOR || "MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57", - ); - console.log("Validator:", validator.toString()); - - // Run this once before all tests - beforeAll(async () => { - await airdropSolIfNeeded( - connectionBaseLayer, - userKeypair.publicKey, - 2, - 0.05, - ); - feePayerKeypair = await initializeFeePayer( - connectionBaseLayer, - userKeypair, - ); - feePayerPubkey = feePayerKeypair.publicKey; - console.log("Fee Payer:", feePayerPubkey.toString()); - }, TEST_TIMEOUT); - - it( - "Assign owner + Delegate on-curve account", - async () => { - const start = Date.now(); - - // Create assign instruction - const assignInstruction = SystemProgram.assign({ - accountPubkey: userPubkey, - programId: DELEGATION_PROGRAM_ID, - }); - - // Create delegate instruction - const delegateInstruction = createDelegateInstruction({ - payer: feePayerKeypair.publicKey, - delegatedAccount: userPubkey, - ownerProgram: ownerProgram, - validator: validator, - }); - - // Create and send transaction (fee payer need to sign, on-curve account cannot be signer since delegated) - const tx = new Transaction().add(assignInstruction, delegateInstruction); - tx.feePayer = feePayerKeypair.publicKey; - const txSignature = await sendAndConfirmTransaction( - connectionBaseLayer, - tx, - [userKeypair, feePayerKeypair], - { - skipPreflight: true, - }, - ); - - const duration = Date.now() - start; - console.log(`${duration}ms - Delegate Signature: ${txSignature}`); - expect(txSignature).toBeDefined(); - }, - TEST_TIMEOUT, - ); - - it( - "Commit on-curve account", - async () => { - const start = Date.now(); - - const commitInstruction = createCommitInstruction(userPubkey, [ - userPubkey, - ]); - - const tx = new Transaction().add(commitInstruction); - tx.feePayer = feePayerKeypair.publicKey; - const txSignature = await sendAndConfirmTransaction( - ephemeralConnection, - tx, - [userKeypair, feePayerKeypair], - { - skipPreflight: true, - }, - ); - - const duration = Date.now() - start; - console.log(`${duration}ms - Commit Signature: ${txSignature}`); - expect(txSignature).toBeDefined(); - }, - TEST_TIMEOUT, - ); - - it( - "Commit and undelegate on-curve account", - async () => { - const start = Date.now(); - - // Create commit and undelegate instruction - const commitAndUndelegateInstruction = - createCommitAndUndelegateInstruction(userPubkey, [userPubkey]); - - const tx = new Transaction().add(commitAndUndelegateInstruction); - tx.feePayer = feePayerKeypair.publicKey; - - // Send and confirm transaction on ephemeral connection - const txSignature = await sendAndConfirmTransaction( - ephemeralConnection, - tx, - [userKeypair, feePayerKeypair], - { - skipPreflight: true, - }, - ); - - const duration = Date.now() - start; - console.log( - `${duration}ms - CommitAndUndelegate Signature: ${txSignature}`, - ); - expect(txSignature).toBeDefined(); - }, - TEST_TIMEOUT, - ); -}); diff --git a/oncurve-delegation/client/vitest.config.ts b/oncurve-delegation/client/vitest.config.ts index 9b289070..312d44b3 100644 --- a/oncurve-delegation/client/vitest.config.ts +++ b/oncurve-delegation/client/vitest.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from "vitest/config"; export default defineConfig({ test: { fileParallelism: false, - include: ["tests/**/*.test.ts", "tests-magicsvm/**/*.test.ts"], + include: ["tests/**/*.test.ts"], reporters: "verbose", }, }); diff --git a/oracle-priced-purchase/anchor/Anchor.toml b/oracle-priced-purchase/anchor/Anchor.toml index 4491dca7..fb386d41 100644 --- a/oracle-priced-purchase/anchor/Anchor.toml +++ b/oracle-priced-purchase/anchor/Anchor.toml @@ -19,4 +19,4 @@ cluster = "localnet" wallet = "~/.config/solana/id.json" [scripts] -test = "yarn run ts-mocha -p ./tsconfig.json -t 1000000 tests/oracle-priced-purchase.ts" +test = "yarn test" diff --git a/oracle-priced-purchase/anchor/README.md b/oracle-priced-purchase/anchor/README.md index 7a53cc66..a0337d26 100644 --- a/oracle-priced-purchase/anchor/README.md +++ b/oracle-priced-purchase/anchor/README.md @@ -42,29 +42,17 @@ yarn yarn build ``` -This example runs against a **local MagicBlock cluster** with static -`PriceUpdateV2` account fixtures preloaded by the repo test harness. Start the -cluster in one terminal and leave it running: +Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash -yarn setup +yarn test ``` -`yarn setup` runs `SETUP_ONLY=1 ./scripts/test-locally.sh oracle-priced-purchase` from -the repo root: it builds this example, boots the validators, preloads the oracle -fixtures, and holds them until you press a key. +MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no validators, no +network. The suite charges a USD-priced purchase from a SOL/USD oracle and rejects purchases above +the buyer's maximum lamport cost. -Then, in a second terminal, run this example's tests against that cluster: - -```bash -yarn test:local -``` - -`test:local` sources `scripts/local-env.sh` so the SDK targets the local cluster -(without it the tests fall back to devnet). - -> Tip: to build and run **every** example end-to-end (what CI does), run the -> repo-root `./scripts/test-locally.sh` directly. +A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. For a live MagicBlock feed, run the chain pusher from the oracle repository, pass the SOL/USD Pyth feed ID to `initialize_store`, and pass the corresponding diff --git a/oracle-priced-purchase/anchor/package.json b/oracle-priced-purchase/anchor/package.json index ff3eb358..ad36b899 100644 --- a/oracle-priced-purchase/anchor/package.json +++ b/oracle-priced-purchase/anchor/package.json @@ -2,12 +2,9 @@ "scripts": { "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", - "test": "yarn test:local", - "build": "anchor keys sync && anchor build", - "test:local": ". ../../scripts/local-env.sh && npx ts-mocha -p ./tsconfig.json -t 1000000 tests/oracle-priced-purchase.ts", - "test:magicsvm": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests-magicsvm/oracle-priced-purchase.ts", - "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture", - "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh oracle-priced-purchase" + "test": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests/oracle-priced-purchase.ts", + "build": "anchor build --ignore-keys", + "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture" }, "dependencies": { "@coral-xyz/anchor": "0.32.1", diff --git a/oracle-priced-purchase/anchor/programs/oracle-priced-purchase/src/lib.rs b/oracle-priced-purchase/anchor/programs/oracle-priced-purchase/src/lib.rs index 2952f574..698bb029 100644 --- a/oracle-priced-purchase/anchor/programs/oracle-priced-purchase/src/lib.rs +++ b/oracle-priced-purchase/anchor/programs/oracle-priced-purchase/src/lib.rs @@ -2,7 +2,7 @@ use anchor_lang::prelude::*; use anchor_lang::system_program::{transfer, Transfer}; use pyth_solana_receiver_sdk::price_update::{Price, PriceUpdateV2}; -declare_id!("AfgVz1Ec1A51RkiuNU29zfXrssdhgiveQRCJEvZvypXD"); +declare_id!("32M8Sk4TMrktcpCwW6638MvknQbmbW4yskLaVR4vruHC"); pub const STORE_SEED: &[u8] = b"store"; pub const RECEIPT_SEED: &[u8] = b"receipt"; diff --git a/oracle-priced-purchase/anchor/tests-magicsvm/oracle-priced-purchase.ts b/oracle-priced-purchase/anchor/tests-magicsvm/oracle-priced-purchase.ts deleted file mode 100644 index 9bfbd861..00000000 --- a/oracle-priced-purchase/anchor/tests-magicsvm/oracle-priced-purchase.ts +++ /dev/null @@ -1,221 +0,0 @@ -import * as anchor from "@coral-xyz/anchor"; -import { Program } from "@coral-xyz/anchor"; -import { MagicSVM } from "@magicblock-labs/magicsvm"; -import { - airdropOrThrow, - bootAnchorSvm, - sendSvmIx, - setUnixTimestamp, -} from "@magicblock-labs/test-utils"; -import { - Keypair, - LAMPORTS_PER_SOL, - PublicKey, - SystemProgram, -} from "@solana/web3.js"; -import { assert } from "chai"; -import * as fs from "fs"; -import * as path from "path"; -import { OraclePricedPurchase } from "../target/types/oracle_priced_purchase"; - -const RECEIPT_SEED = "receipt"; -const STORE_SEED = "store"; -const SOL_USD_100_PRICE = new PublicKey( - "B8vx8v7SwZsmFYz3fkSJphr7uq34LoiVr18pimLG5FJM", -); -const SOL_USD_50_PRICE = new PublicKey( - "EpdAP2KHQAXPccREjM1WsLiyKVcchYj82pv9sWZhYUY1", -); -const SOL_USD_100_FEED_ID = Array.from( - Buffer.from( - "969cefe5a1c3dc424aeaf191893d642799b8545431b5e2560e1cc78ccfdd91d6", - "hex", - ), -); -const SOL_USD_50_FEED_ID = Array.from( - Buffer.from( - "cd5b1dc2e5486ee8a1fa93a76ad56a1d15fef45c54fac50c7b489f1f3be0136a", - "hex", - ), -); -const PRICE_PUBLISH_TIME_OFFSET = 93; -const FIXTURES_DIR = path.join( - __dirname, - "..", - "tests", - "fixtures", - "accounts", -); - -type FixtureAccount = { - pubkey: string; - account: { - lamports: number; - data: [string, string]; - owner: string; - executable: boolean; - rentEpoch?: number; - }; -}; - -function loadOracleFixtures(svm: MagicSVM): bigint { - let publishTime = 0n; - for (const file of fs.readdirSync(FIXTURES_DIR)) { - if (!file.endsWith(".json")) { - continue; - } - const fixture = JSON.parse( - fs.readFileSync(path.join(FIXTURES_DIR, file), "utf8"), - ) as FixtureAccount; - const encoding = fixture.account.data[1] as BufferEncoding; - const data = Buffer.from(fixture.account.data[0], encoding); - svm.setAccount({ - address: fixture.pubkey, - executable: fixture.account.executable, - lamports: BigInt(fixture.account.lamports), - programAddress: fixture.account.owner, - space: BigInt(data.length), - data: new Uint8Array(data), - }); - if (data.length > PRICE_PUBLISH_TIME_OFFSET + 8) { - publishTime = data.readBigInt64LE(PRICE_PUBLISH_TIME_OFFSET); - } - } - return publishTime; -} - -function decodeAccount( - program: Program, - name: string, - address: PublicKey, - svm: MagicSVM, -): T { - const account = svm.getAccountFor(address, { target: "base" }); - if (!account.exists) { - throw new Error(`account ${address.toBase58()} does not exist`); - } - return program.coder.accounts.decode(name, Buffer.from(account.data)) as T; -} - -describe("oracle-priced-purchase", () => { - const merchant = Keypair.generate(); - const buyer = Keypair.generate(); - const { svm, program } = bootAnchorSvm({ - fromDir: __dirname, - programName: "oracle_priced_purchase", - payer: merchant, - airdropLamports: BigInt(10 * LAMPORTS_PER_SOL), - }); - const [store] = PublicKey.findProgramAddressSync( - [Buffer.from(STORE_SEED)], - program.programId, - ); - const [receipt] = PublicKey.findProgramAddressSync( - [Buffer.from(RECEIPT_SEED), buyer.publicKey.toBuffer()], - program.programId, - ); - - before(async () => { - airdropOrThrow( - svm, - buyer.publicKey, - BigInt(2 * LAMPORTS_PER_SOL), - "airdrop buyer", - ); - setUnixTimestamp(svm, loadOracleFixtures(svm)); - sendSvmIx( - svm, - [merchant], - await program.methods - .initializeStore(new anchor.BN(2_500), SOL_USD_100_FEED_ID) - .accountsPartial({ - store, - merchant: merchant.publicKey, - systemProgram: SystemProgram.programId, - }) - .instruction(), - "base", - ); - }); - - it("uses the SOL/USD oracle price to charge a USD-priced token purchase", async () => { - sendSvmIx( - svm, - [merchant, buyer], - await program.methods - .buyToken(new anchor.BN(2), new anchor.BN(600_000_000)) - .accountsPartial({ - store, - receipt, - buyer: buyer.publicKey, - merchant: merchant.publicKey, - priceUpdate: SOL_USD_100_PRICE, - systemProgram: SystemProgram.programId, - }) - .instruction(), - "base", - ); - - const storeState = decodeAccount<{ - tokenPriceUsdCents: { toString(): string }; - soldCount: { toString(): string }; - }>(program, "store", store, svm); - assert.equal(storeState.tokenPriceUsdCents.toString(), "2500"); - assert.equal(storeState.soldCount.toString(), "2"); - - const receiptState = decodeAccount<{ - buyer: PublicKey; - totalQuantity: { toString(): string }; - totalPaidLamports: { toString(): string }; - lastUnitPriceUsdCents: { toString(): string }; - lastPaidLamports: { toString(): string }; - oraclePrice: { toString(): string }; - oracleExponent: number; - }>(program, "purchaseReceipt", receipt, svm); - assert.equal(receiptState.buyer.toBase58(), buyer.publicKey.toBase58()); - assert.equal(receiptState.totalQuantity.toString(), "2"); - assert.equal(receiptState.totalPaidLamports.toString(), "500000000"); - assert.equal(receiptState.lastUnitPriceUsdCents.toString(), "2500"); - assert.equal(receiptState.lastPaidLamports.toString(), "500000000"); - assert.equal(receiptState.oraclePrice.toString(), "10000"); - assert.equal(receiptState.oracleExponent, -2); - }); - - it("rejects a purchase when the oracle-derived SOL cost exceeds max_lamports", async () => { - sendSvmIx( - svm, - [merchant], - await program.methods - .initializeStore(new anchor.BN(2_500), SOL_USD_50_FEED_ID) - .accountsPartial({ - store, - merchant: merchant.publicKey, - systemProgram: SystemProgram.programId, - }) - .instruction(), - "base", - ); - - try { - sendSvmIx( - svm, - [merchant, buyer], - await program.methods - .buyToken(new anchor.BN(1), new anchor.BN(400_000_000)) - .accountsPartial({ - store, - receipt, - buyer: buyer.publicKey, - merchant: merchant.publicKey, - priceUpdate: SOL_USD_50_PRICE, - systemProgram: SystemProgram.programId, - }) - .instruction(), - "base", - ); - assert.fail("expected max_lamports check to reject the purchase"); - } catch (error) { - assert.include(String(error), "PaymentTooHigh"); - } - }); -}); diff --git a/oracle-priced-purchase/anchor/tests/oracle-priced-purchase.ts b/oracle-priced-purchase/anchor/tests/oracle-priced-purchase.ts index fa1d0e78..9bfbd861 100644 --- a/oracle-priced-purchase/anchor/tests/oracle-priced-purchase.ts +++ b/oracle-priced-purchase/anchor/tests/oracle-priced-purchase.ts @@ -1,13 +1,21 @@ import * as anchor from "@coral-xyz/anchor"; import { Program } from "@coral-xyz/anchor"; +import { MagicSVM } from "@magicblock-labs/magicsvm"; +import { + airdropOrThrow, + bootAnchorSvm, + sendSvmIx, + setUnixTimestamp, +} from "@magicblock-labs/test-utils"; import { Keypair, LAMPORTS_PER_SOL, PublicKey, SystemProgram, - Transaction, } from "@solana/web3.js"; import { assert } from "chai"; +import * as fs from "fs"; +import * as path from "path"; import { OraclePricedPurchase } from "../target/types/oracle_priced_purchase"; const RECEIPT_SEED = "receipt"; @@ -30,71 +38,140 @@ const SOL_USD_50_FEED_ID = Array.from( "hex", ), ); +const PRICE_PUBLISH_TIME_OFFSET = 93; +const FIXTURES_DIR = path.join( + __dirname, + "..", + "tests", + "fixtures", + "accounts", +); -describe("oracle-priced-purchase", () => { - const provider = process.env.PROVIDER_ENDPOINT - ? new anchor.AnchorProvider( - new anchor.web3.Connection(process.env.PROVIDER_ENDPOINT, { - wsEndpoint: process.env.WS_ENDPOINT || undefined, - commitment: "confirmed", - }), - anchor.Wallet.local(), - ) - : anchor.AnchorProvider.env(); +type FixtureAccount = { + pubkey: string; + account: { + lamports: number; + data: [string, string]; + owner: string; + executable: boolean; + rentEpoch?: number; + }; +}; - anchor.setProvider(provider); +function loadOracleFixtures(svm: MagicSVM): bigint { + let publishTime = 0n; + for (const file of fs.readdirSync(FIXTURES_DIR)) { + if (!file.endsWith(".json")) { + continue; + } + const fixture = JSON.parse( + fs.readFileSync(path.join(FIXTURES_DIR, file), "utf8"), + ) as FixtureAccount; + const encoding = fixture.account.data[1] as BufferEncoding; + const data = Buffer.from(fixture.account.data[0], encoding); + svm.setAccount({ + address: fixture.pubkey, + executable: fixture.account.executable, + lamports: BigInt(fixture.account.lamports), + programAddress: fixture.account.owner, + space: BigInt(data.length), + data: new Uint8Array(data), + }); + if (data.length > PRICE_PUBLISH_TIME_OFFSET + 8) { + publishTime = data.readBigInt64LE(PRICE_PUBLISH_TIME_OFFSET); + } + } + return publishTime; +} + +function decodeAccount( + program: Program, + name: string, + address: PublicKey, + svm: MagicSVM, +): T { + const account = svm.getAccountFor(address, { target: "base" }); + if (!account.exists) { + throw new Error(`account ${address.toBase58()} does not exist`); + } + return program.coder.accounts.decode(name, Buffer.from(account.data)) as T; +} - const program = anchor.workspace - .OraclePricedPurchase as Program; - const merchant = provider.wallet.publicKey; +describe("oracle-priced-purchase", () => { + const merchant = Keypair.generate(); const buyer = Keypair.generate(); - const [store] = anchor.web3.PublicKey.findProgramAddressSync( + const { svm, program } = bootAnchorSvm({ + fromDir: __dirname, + programName: "oracle_priced_purchase", + payer: merchant, + airdropLamports: BigInt(10 * LAMPORTS_PER_SOL), + }); + const [store] = PublicKey.findProgramAddressSync( [Buffer.from(STORE_SEED)], program.programId, ); - const [receipt] = anchor.web3.PublicKey.findProgramAddressSync( + const [receipt] = PublicKey.findProgramAddressSync( [Buffer.from(RECEIPT_SEED), buyer.publicKey.toBuffer()], program.programId, ); before(async () => { - await provider.sendAndConfirm( - new Transaction().add( - SystemProgram.transfer({ - fromPubkey: merchant, - toPubkey: buyer.publicKey, - lamports: 2 * LAMPORTS_PER_SOL, - }), - ), + airdropOrThrow( + svm, + buyer.publicKey, + BigInt(2 * LAMPORTS_PER_SOL), + "airdrop buyer", + ); + setUnixTimestamp(svm, loadOracleFixtures(svm)); + sendSvmIx( + svm, + [merchant], + await program.methods + .initializeStore(new anchor.BN(2_500), SOL_USD_100_FEED_ID) + .accountsPartial({ + store, + merchant: merchant.publicKey, + systemProgram: SystemProgram.programId, + }) + .instruction(), + "base", ); - - await program.methods - .initializeStore(new anchor.BN(2_500), SOL_USD_100_FEED_ID) - .accountsPartial({ - store, - merchant, - }) - .rpc({ commitment: "confirmed" }); }); it("uses the SOL/USD oracle price to charge a USD-priced token purchase", async () => { - await program.methods - .buyToken(new anchor.BN(2), new anchor.BN(600_000_000)) - .accountsPartial({ - store, - receipt, - buyer: buyer.publicKey, - merchant, - priceUpdate: SOL_USD_100_PRICE, - }) - .signers([buyer]) - .rpc({ commitment: "confirmed" }); + sendSvmIx( + svm, + [merchant, buyer], + await program.methods + .buyToken(new anchor.BN(2), new anchor.BN(600_000_000)) + .accountsPartial({ + store, + receipt, + buyer: buyer.publicKey, + merchant: merchant.publicKey, + priceUpdate: SOL_USD_100_PRICE, + systemProgram: SystemProgram.programId, + }) + .instruction(), + "base", + ); - const storeState = await program.account.store.fetch(store); + const storeState = decodeAccount<{ + tokenPriceUsdCents: { toString(): string }; + soldCount: { toString(): string }; + }>(program, "store", store, svm); assert.equal(storeState.tokenPriceUsdCents.toString(), "2500"); assert.equal(storeState.soldCount.toString(), "2"); - const receiptState = await program.account.purchaseReceipt.fetch(receipt); + const receiptState = decodeAccount<{ + buyer: PublicKey; + totalQuantity: { toString(): string }; + totalPaidLamports: { toString(): string }; + lastUnitPriceUsdCents: { toString(): string }; + lastPaidLamports: { toString(): string }; + oraclePrice: { toString(): string }; + oracleExponent: number; + }>(program, "purchaseReceipt", receipt, svm); assert.equal(receiptState.buyer.toBase58(), buyer.publicKey.toBase58()); assert.equal(receiptState.totalQuantity.toString(), "2"); assert.equal(receiptState.totalPaidLamports.toString(), "500000000"); @@ -105,26 +182,37 @@ describe("oracle-priced-purchase", () => { }); it("rejects a purchase when the oracle-derived SOL cost exceeds max_lamports", async () => { - await program.methods - .initializeStore(new anchor.BN(2_500), SOL_USD_50_FEED_ID) - .accountsPartial({ - store, - merchant, - }) - .rpc({ commitment: "confirmed" }); - - try { + sendSvmIx( + svm, + [merchant], await program.methods - .buyToken(new anchor.BN(1), new anchor.BN(400_000_000)) + .initializeStore(new anchor.BN(2_500), SOL_USD_50_FEED_ID) .accountsPartial({ store, - receipt, - buyer: buyer.publicKey, - merchant, - priceUpdate: SOL_USD_50_PRICE, + merchant: merchant.publicKey, + systemProgram: SystemProgram.programId, }) - .signers([buyer]) - .rpc({ commitment: "confirmed" }); + .instruction(), + "base", + ); + + try { + sendSvmIx( + svm, + [merchant, buyer], + await program.methods + .buyToken(new anchor.BN(1), new anchor.BN(400_000_000)) + .accountsPartial({ + store, + receipt, + buyer: buyer.publicKey, + merchant: merchant.publicKey, + priceUpdate: SOL_USD_50_PRICE, + systemProgram: SystemProgram.programId, + }) + .instruction(), + "base", + ); assert.fail("expected max_lamports check to reject the purchase"); } catch (error) { assert.include(String(error), "PaymentTooHigh"); diff --git a/private-counter/anchor/Anchor.toml b/private-counter/anchor/Anchor.toml index 0b4e2cc7..f64bc21c 100644 --- a/private-counter/anchor/Anchor.toml +++ b/private-counter/anchor/Anchor.toml @@ -13,4 +13,4 @@ cluster = "localnet" wallet = "~/.config/solana/id.json" [scripts] -test = "yarn run ts-mocha -p ./tsconfig.json -t 1000000 \"tests/**/*.ts\"" +test = "yarn test" diff --git a/private-counter/anchor/README.md b/private-counter/anchor/README.md index f0a1189c..8d4845c7 100644 --- a/private-counter/anchor/README.md +++ b/private-counter/anchor/README.md @@ -37,25 +37,17 @@ yarn yarn build ``` -This example runs against a **local MagicBlock cluster** — a base Solana validator plus an Ephemeral Rollup, fronted by the Query Filtering Service. Start it in one terminal and leave it running: +Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash -yarn setup +yarn test ``` -`yarn setup` runs `SETUP_ONLY=1 ./scripts/test-locally.sh private-counter` from the repo root: it builds this example, boots the validators, and holds them until you press a key. +MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no validators, no +network. The suite exercises private counter delegation, ephemeral permissions, privacy changes, +commits, and undelegation. -Then, in a second terminal, run this example's tests against that cluster: - -```bash -yarn test:local -``` - -`test:local` sources `scripts/local-env.sh` so the SDK targets the local cluster (without it the tests fall back to devnet). - -> Tip: to build and run **every** example end-to-end (what CI does), run the repo-root `./scripts/test-locally.sh` directly. - -This is a TEE (Trusted Execution Environment) example: locally, ER calls route through the QFS via the `TEE_*` endpoints. The full devnet/TEE path additionally requires a funded devnet keypair, so in CI these tests are skipped unless a `DEVNET_KEYPAIR_JSON` secret is set (the repo sets `SKIP_TEE_TESTS=1` without it). +A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. ## Program Instructions diff --git a/private-counter/anchor/package.json b/private-counter/anchor/package.json index 08a9f3d2..bf0ee74e 100644 --- a/private-counter/anchor/package.json +++ b/private-counter/anchor/package.json @@ -2,11 +2,8 @@ "scripts": { "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", - "build": "anchor keys sync && anchor build", - "test:local": ". ../../scripts/local-env.sh && anchor test --skip-build --skip-deploy --skip-local-validator --provider.cluster devnet", - "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh private-counter", - "test": "yarn test:local", - "test:magicsvm": "ts-mocha -p ./tsconfig.json -t 1000000 tests-magicsvm/**/*.ts", + "build": "anchor build --ignore-keys", + "test": "ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts", "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture" }, "dependencies": { diff --git a/private-counter/anchor/programs/private-counter/src/lib.rs b/private-counter/anchor/programs/private-counter/src/lib.rs index e16ebb4a..aa293a43 100644 --- a/private-counter/anchor/programs/private-counter/src/lib.rs +++ b/private-counter/anchor/programs/private-counter/src/lib.rs @@ -17,7 +17,7 @@ use ephemeral_rollups_sdk::{ ephem::MagicIntentBundleBuilder, }; -declare_id!("8bc6ZyJAVcf4LS4xrHehetXUdp1ZX4jnEfoBdePRErfb"); +declare_id!("9aXAUZm1SdXcX4m1W5SHAywp6CBUbUxymruMnkYvz9bR"); pub const COUNTER_SEED: &[u8] = b"counter"; diff --git a/private-counter/anchor/tests-magicsvm/private-counter.ts b/private-counter/anchor/tests-magicsvm/private-counter.ts deleted file mode 100644 index 5b745f1a..00000000 --- a/private-counter/anchor/tests-magicsvm/private-counter.ts +++ /dev/null @@ -1,195 +0,0 @@ -import { - bootAnchorSvm, - EPHEMERAL_VAULT_ID, - isDelegated, - MAGIC_PROGRAM_ID, - PERMISSION_PROGRAM_ID, - permissionPdaFromAccount, - readU64le, - sendSvmTx, - validatorPubkey, -} from "@magicblock-labs/test-utils"; -import { LAMPORTS_PER_SOL, PublicKey } from "@solana/web3.js"; -import { PrivateCounter } from "../target/types/private_counter"; - -const COUNTER_SEED = "counter"; - -describe("private-counter magicsvm", () => { - const { svm, payer, program } = bootAnchorSvm({ - fromDir: __dirname, - programName: "private_counter", - airdropLamports: BigInt(2 * LAMPORTS_PER_SOL), - }); - const [counterPDA] = PublicKey.findProgramAddressSync( - [Buffer.from(COUNTER_SEED), payer.publicKey.toBuffer()], - program.programId, - ); - const permissionPDA = permissionPdaFromAccount(counterPDA); - - console.log("Program ID: ", program.programId.toString()); - console.log("Counter PDA: ", counterPDA.toString()); - console.log("Permission PDA: ", permissionPDA.toString()); - console.log("Validator identity: ", validatorPubkey(svm).toString()); - - it("Initialize counter on Solana", async () => { - const tx = await program.methods - .initialize() - .accounts({ - authority: payer.publicKey, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "base"); - if (readU64le(svm, counterPDA, "base") !== 0n) { - throw new Error("expected count 0 after initialize"); - } - }); - - it("Increase counter on Solana", async () => { - const account = svm.getAccountFor(counterPDA, { target: "base" }); - if ( - !account.exists || - account.programAddress.toString() !== program.programId.toString() - ) { - throw new Error("counter is not owned by the program on the base layer"); - } - const tx = await program.methods - .increment() - .accounts({ - counter: counterPDA, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "base"); - if (readU64le(svm, counterPDA, "base") !== 1n) { - throw new Error("expected count 1 after base increment"); - } - }); - - it("Delegate counter to ER", async () => { - const tx = await program.methods - .delegate() - .accountsPartial({ - authority: payer.publicKey, - counter: counterPDA, - validator: new PublicKey(validatorPubkey(svm)), - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "base"); - if (!isDelegated(svm, counterPDA)) { - throw new Error("counter is not delegated"); - } - const delegated = svm.getAccountFor(counterPDA, { target: "ephemeral" }); - if (!delegated.exists) { - throw new Error("delegated counter missing on ephemeral"); - } - }); - - it("Initialize ephemeral permission on ER", async () => { - const permissionProgram = svm.getAccountFor(PERMISSION_PROGRAM_ID, { - target: "ephemeral", - }); - console.log( - "Permission program on ephemeral:", - permissionProgram.exists - ? `exists executable=${permissionProgram.executable}` - : "missing", - ); - const tx = await program.methods - .initPermission() - .accountsPartial({ - authority: payer.publicKey, - counter: counterPDA, - permission: permissionPDA, - magicProgram: MAGIC_PROGRAM_ID, - permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: EPHEMERAL_VAULT_ID, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "ephemeral"); - const permission = svm.getAccountFor(permissionPDA, { - target: "ephemeral", - }); - if (!permission.exists) { - throw new Error("permission PDA was not created on ephemeral"); - } - }); - - it("Increase counter on ER", async () => { - const tx = await program.methods - .increment() - .accounts({ - counter: counterPDA, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "ephemeral"); - if (readU64le(svm, counterPDA, "ephemeral") !== 2n) { - throw new Error("expected count 2 after ER increment"); - } - }); - - it("Toggle privacy on ER (private -> public)", async () => { - for (const isPrivate of [true, false]) { - const tx = await program.methods - .setPrivacy(isPrivate) - .accountsPartial({ - counter: counterPDA, - authority: payer.publicKey, - permission: permissionPDA, - magicProgram: MAGIC_PROGRAM_ID, - permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: EPHEMERAL_VAULT_ID, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "ephemeral"); - } - }); - - it("Close permission on ER", async () => { - const tx = await program.methods - .closePermission() - .accountsPartial({ - counter: counterPDA, - authority: payer.publicKey, - permission: permissionPDA, - magicProgram: MAGIC_PROGRAM_ID, - permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: EPHEMERAL_VAULT_ID, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "ephemeral"); - }); - - it("Commit counter state on ER to Solana", async () => { - const tx = await program.methods - .commit() - .accountsPartial({ - payer: payer.publicKey, - counter: counterPDA, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "ephemeral"); - if (readU64le(svm, counterPDA, "base") !== 2n) { - throw new Error("expected committed count 2 on base"); - } - }); - - it("Undelegate counter from ER to Solana", async () => { - const tx = await program.methods - .undelegate() - .accountsPartial({ - payer: payer.publicKey, - counter: counterPDA, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "ephemeral"); - const account = svm.getAccountFor(counterPDA, { target: "base" }); - if ( - !account.exists || - account.programAddress.toString() !== program.programId.toString() - ) { - throw new Error("counter undelegation failed"); - } - if (readU64le(svm, counterPDA, "base") !== 2n) { - throw new Error("expected count 2 after undelegate"); - } - }); -}); diff --git a/private-counter/anchor/tests/private-counter.ts b/private-counter/anchor/tests/private-counter.ts index c09131e2..5b745f1a 100644 --- a/private-counter/anchor/tests/private-counter.ts +++ b/private-counter/anchor/tests/private-counter.ts @@ -1,333 +1,195 @@ -import * as anchor from "@coral-xyz/anchor"; -import { Program, web3 } from "@coral-xyz/anchor"; -import { PrivateCounter } from "../target/types/private_counter"; -import { LAMPORTS_PER_SOL } from "@solana/web3.js"; import { - GetCommitmentSignature, - getAuthToken, - PERMISSION_PROGRAM_ID, + bootAnchorSvm, + EPHEMERAL_VAULT_ID, + isDelegated, MAGIC_PROGRAM_ID, + PERMISSION_PROGRAM_ID, permissionPdaFromAccount, -} from "@magicblock-labs/ephemeral-rollups-sdk"; -import * as nacl from "tweetnacl"; + readU64le, + sendSvmTx, + validatorPubkey, +} from "@magicblock-labs/test-utils"; +import { LAMPORTS_PER_SOL, PublicKey } from "@solana/web3.js"; +import { PrivateCounter } from "../target/types/private_counter"; -const VAULT_ID = new web3.PublicKey( - "MagicVau1t999999999999999999999999999999999", -); const COUNTER_SEED = "counter"; -describe("private-counter", () => { - console.log("private-counter.ts"); - - let provider = new anchor.AnchorProvider( - new anchor.web3.Connection( - process.env.PROVIDER_ENDPOINT || "https://api.devnet.solana.com", - { - wsEndpoint: process.env.WS_ENDPOINT || undefined, - commitment: "confirmed", - }, - ), - anchor.Wallet.local(), - ); - anchor.setProvider(provider); - - const teeUrl = - process.env.TEE_PROVIDER_ENDPOINT || "https://devnet-tee.magicblock.app"; - const teeWsUrl = - process.env.TEE_WS_ENDPOINT || "wss://devnet-tee.magicblock.app"; - const ephemeralRpcEndpoint = teeUrl.replace(/\/$/, ""); - - let providerEphemeralRollup = new anchor.AnchorProvider( - new anchor.web3.Connection(ephemeralRpcEndpoint, { - wsEndpoint: teeWsUrl, - commitment: "confirmed", - }), - anchor.Wallet.local(), - ); - - console.log("Base Layer Connection: ", provider.connection.rpcEndpoint); - console.log( - "Ephemeral Rollup Connection: ", - providerEphemeralRollup.connection.rpcEndpoint, - ); - console.log(`Current SOL Public Key: ${anchor.Wallet.local().publicKey}`); - - before(async function () { - try { - const balance = await provider.connection.getBalance( - anchor.Wallet.local().publicKey, - ); - console.log( - "Current balance is", - balance / LAMPORTS_PER_SOL, - " SOL", - "\n", - ); - } catch (error) { - console.log("Error fetching balance:", error); - } - - // Fetch auth token for the TEE endpoint and rebuild the ER provider with it - const payer = (provider.wallet as anchor.Wallet).payer; - const authToken = await getAuthToken( - ephemeralRpcEndpoint, - payer.publicKey, - (message: Uint8Array) => - Promise.resolve(nacl.sign.detached(message, payer.secretKey)), - ); - console.log( - "TEE Explorer URL:", - `https://explorer.solana.com/?cluster=custom&customUrl=${teeUrl}?token=${authToken.token}`, - ); - providerEphemeralRollup = new anchor.AnchorProvider( - new anchor.web3.Connection(`${teeUrl}?token=${authToken.token}`, { - wsEndpoint: `${teeWsUrl}?token=${authToken.token}`, - commitment: "confirmed", - }), - anchor.Wallet.local(), - ); +describe("private-counter magicsvm", () => { + const { svm, payer, program } = bootAnchorSvm({ + fromDir: __dirname, + programName: "private_counter", + airdropLamports: BigInt(2 * LAMPORTS_PER_SOL), }); - - const program = anchor.workspace.PrivateCounter as Program; - - const [counterPDA] = anchor.web3.PublicKey.findProgramAddressSync( - [Buffer.from(COUNTER_SEED), provider.wallet.publicKey.toBuffer()], + const [counterPDA] = PublicKey.findProgramAddressSync( + [Buffer.from(COUNTER_SEED), payer.publicKey.toBuffer()], program.programId, ); - - // Permission PDA is derived from the program's own ID (not the permission program) const permissionPDA = permissionPdaFromAccount(counterPDA); console.log("Program ID: ", program.programId.toString()); console.log("Counter PDA: ", counterPDA.toString()); console.log("Permission PDA: ", permissionPDA.toString()); + console.log("Validator identity: ", validatorPubkey(svm).toString()); it("Initialize counter on Solana", async () => { - const account = await provider.connection.getAccountInfo(counterPDA); - if (account) { - console.log("Counter account already exists"); - return; - } - - const start = Date.now(); const tx = await program.methods .initialize() .accounts({ - authority: provider.wallet.publicKey, + authority: payer.publicKey, }) .transaction(); - const txHash = await provider.sendAndConfirm(tx, [provider.wallet.payer], { - skipPreflight: true, - commitment: "confirmed", - }); - console.log( - `${Date.now() - start}ms (Base Layer) Initialize txHash: ${txHash}`, - ); + sendSvmTx(svm, [payer], tx, "base"); + if (readU64le(svm, counterPDA, "base") !== 0n) { + throw new Error("expected count 0 after initialize"); + } }); it("Increase counter on Solana", async () => { - const account = await provider.connection.getAccountInfo(counterPDA); - if (!account?.owner.equals(program.programId)) { - console.log("Counter is already delegated"); - return; + const account = svm.getAccountFor(counterPDA, { target: "base" }); + if ( + !account.exists || + account.programAddress.toString() !== program.programId.toString() + ) { + throw new Error("counter is not owned by the program on the base layer"); } - - const start = Date.now(); const tx = await program.methods .increment() .accounts({ counter: counterPDA, }) .transaction(); - const txHash = await provider.sendAndConfirm(tx, [provider.wallet.payer], { - skipPreflight: true, - commitment: "confirmed", - }); - console.log( - `${Date.now() - start}ms (Base Layer) Increment txHash: ${txHash}`, - ); + sendSvmTx(svm, [payer], tx, "base"); + if (readU64le(svm, counterPDA, "base") !== 1n) { + throw new Error("expected count 1 after base increment"); + } }); it("Delegate counter to ER", async () => { - const start = Date.now(); const tx = await program.methods .delegate() .accountsPartial({ - authority: provider.wallet.publicKey, + authority: payer.publicKey, counter: counterPDA, - // Pin to the TEE validator identity - validator: new web3.PublicKey( - process.env.VALIDATOR || - "MTEWGuqxUpYZGFJQcp8tLN7x5v9BSeoFHYWQQ3n3xzo", - ), + validator: new PublicKey(validatorPubkey(svm)), }) .transaction(); - const txHash = await provider.sendAndConfirm(tx, [provider.wallet.payer], { - skipPreflight: true, - commitment: "confirmed", - }); - console.log( - `${Date.now() - start}ms (Base Layer) Delegate txHash: ${txHash}`, - ); - // Wait for delegation to propagate to the ER - await new Promise((resolve) => setTimeout(resolve, 3000)); + sendSvmTx(svm, [payer], tx, "base"); + if (!isDelegated(svm, counterPDA)) { + throw new Error("counter is not delegated"); + } + const delegated = svm.getAccountFor(counterPDA, { target: "ephemeral" }); + if (!delegated.exists) { + throw new Error("delegated counter missing on ephemeral"); + } }); it("Initialize ephemeral permission on ER", async () => { - const start = Date.now(); - let tx = await program.methods + const permissionProgram = svm.getAccountFor(PERMISSION_PROGRAM_ID, { + target: "ephemeral", + }); + console.log( + "Permission program on ephemeral:", + permissionProgram.exists + ? `exists executable=${permissionProgram.executable}` + : "missing", + ); + const tx = await program.methods .initPermission() .accountsPartial({ - authority: providerEphemeralRollup.wallet.publicKey, + authority: payer.publicKey, counter: counterPDA, permission: permissionPDA, magicProgram: MAGIC_PROGRAM_ID, permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: VAULT_ID, + ephemeralVault: EPHEMERAL_VAULT_ID, }) .transaction(); - tx.feePayer = providerEphemeralRollup.wallet.publicKey; - tx.recentBlockhash = ( - await providerEphemeralRollup.connection.getLatestBlockhash() - ).blockhash; - tx = await providerEphemeralRollup.wallet.signTransaction(tx); - const txHash = await providerEphemeralRollup.sendAndConfirm(tx, [], { - skipPreflight: true, + sendSvmTx(svm, [payer], tx, "ephemeral"); + const permission = svm.getAccountFor(permissionPDA, { + target: "ephemeral", }); - console.log( - `${Date.now() - start}ms (ER) init_permission txHash: ${txHash}`, - ); + if (!permission.exists) { + throw new Error("permission PDA was not created on ephemeral"); + } }); it("Increase counter on ER", async () => { - const start = Date.now(); - let tx = await program.methods + const tx = await program.methods .increment() .accounts({ counter: counterPDA, }) .transaction(); - tx.feePayer = providerEphemeralRollup.wallet.publicKey; - tx.recentBlockhash = ( - await providerEphemeralRollup.connection.getLatestBlockhash() - ).blockhash; - tx = await providerEphemeralRollup.wallet.signTransaction(tx); - const txHash = await providerEphemeralRollup.sendAndConfirm(tx); - console.log(`${Date.now() - start}ms (ER) Increment txHash: ${txHash}`); + sendSvmTx(svm, [payer], tx, "ephemeral"); + if (readU64le(svm, counterPDA, "ephemeral") !== 2n) { + throw new Error("expected count 2 after ER increment"); + } }); it("Toggle privacy on ER (private -> public)", async () => { - // Flip the permission's is_private flag. The authority is always re-added as - // the sole member with full read flags so we never lock ourselves out. for (const isPrivate of [true, false]) { - const start = Date.now(); - let tx = await program.methods + const tx = await program.methods .setPrivacy(isPrivate) .accountsPartial({ counter: counterPDA, - authority: provider.wallet.publicKey, + authority: payer.publicKey, permission: permissionPDA, magicProgram: MAGIC_PROGRAM_ID, permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: VAULT_ID, + ephemeralVault: EPHEMERAL_VAULT_ID, }) .transaction(); - tx.feePayer = providerEphemeralRollup.wallet.publicKey; - tx.recentBlockhash = ( - await providerEphemeralRollup.connection.getLatestBlockhash() - ).blockhash; - tx = await providerEphemeralRollup.wallet.signTransaction(tx); - const txHash = await providerEphemeralRollup.sendAndConfirm(tx); - console.log( - `${Date.now() - start}ms (ER) set_privacy(${isPrivate}) txHash: ${txHash}`, - ); + sendSvmTx(svm, [payer], tx, "ephemeral"); } }); it("Close permission on ER", async () => { - const start = Date.now(); - let tx = await program.methods + const tx = await program.methods .closePermission() .accountsPartial({ counter: counterPDA, - authority: provider.wallet.publicKey, + authority: payer.publicKey, permission: permissionPDA, magicProgram: MAGIC_PROGRAM_ID, permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: VAULT_ID, + ephemeralVault: EPHEMERAL_VAULT_ID, }) .transaction(); - tx.feePayer = providerEphemeralRollup.wallet.publicKey; - tx.recentBlockhash = ( - await providerEphemeralRollup.connection.getLatestBlockhash() - ).blockhash; - tx = await providerEphemeralRollup.wallet.signTransaction(tx); - const txHash = await providerEphemeralRollup.sendAndConfirm(tx); - console.log( - `${Date.now() - start}ms (ER) Close permission txHash: ${txHash}`, - ); + sendSvmTx(svm, [payer], tx, "ephemeral"); }); it("Commit counter state on ER to Solana", async () => { - const start = Date.now(); - let tx = await program.methods + const tx = await program.methods .commit() .accountsPartial({ - payer: providerEphemeralRollup.wallet.publicKey, + payer: payer.publicKey, counter: counterPDA, }) .transaction(); - tx.feePayer = providerEphemeralRollup.wallet.publicKey; - tx.recentBlockhash = ( - await providerEphemeralRollup.connection.getLatestBlockhash() - ).blockhash; - tx = await providerEphemeralRollup.wallet.signTransaction(tx); - const txHash = await providerEphemeralRollup.sendAndConfirm(tx, [], { - skipPreflight: true, - }); - console.log(`${Date.now() - start}ms (ER) Commit txHash: ${txHash}`); - - // Await the commitment confirmation on the base layer - const commitStart = Date.now(); - const txCommitSgn = await GetCommitmentSignature( - txHash, - providerEphemeralRollup.connection, - ); - console.log( - `${Date.now() - commitStart}ms (Base Layer) Commit txHash: ${txCommitSgn}`, - ); + sendSvmTx(svm, [payer], tx, "ephemeral"); + if (readU64le(svm, counterPDA, "base") !== 2n) { + throw new Error("expected committed count 2 on base"); + } }); it("Undelegate counter from ER to Solana", async () => { - const start = Date.now(); - let tx = await program.methods + const tx = await program.methods .undelegate() .accountsPartial({ - payer: providerEphemeralRollup.wallet.publicKey, + payer: payer.publicKey, counter: counterPDA, }) .transaction(); - tx.feePayer = providerEphemeralRollup.wallet.publicKey; - tx.recentBlockhash = ( - await providerEphemeralRollup.connection.getLatestBlockhash() - ).blockhash; - tx = await providerEphemeralRollup.wallet.signTransaction(tx); - const txHash = await providerEphemeralRollup.sendAndConfirm(tx); - console.log(`${Date.now() - start}ms (ER) Undelegate txHash: ${txHash}`); - - // Wait for counter undelegation to settle back on the base layer - let retries = 10; - while (retries > 0) { - const account = await provider.connection.getAccountInfo(counterPDA); - if (account?.owner.equals(program.programId)) { - break; - } - await new Promise((resolve) => setTimeout(resolve, 500)); - retries--; - - if (retries === 0) { - throw new Error("Counter undelegation failed"); - } + sendSvmTx(svm, [payer], tx, "ephemeral"); + const account = svm.getAccountFor(counterPDA, { target: "base" }); + if ( + !account.exists || + account.programAddress.toString() !== program.programId.toString() + ) { + throw new Error("counter undelegation failed"); + } + if (readU64le(svm, counterPDA, "base") !== 2n) { + throw new Error("expected count 2 after undelegate"); } }); }); diff --git a/private-counter/pinocchio/README.md b/private-counter/pinocchio/README.md index f934a2d7..117dcff7 100644 --- a/private-counter/pinocchio/README.md +++ b/private-counter/pinocchio/README.md @@ -26,25 +26,17 @@ yarn yarn build ``` -This example runs against a **local MagicBlock cluster** — a base Solana validator plus an Ephemeral Rollup, fronted by the Query Filtering Service. Start it in one terminal and leave it running: +Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash -yarn setup +yarn test ``` -`yarn setup` runs `SETUP_ONLY=1 ./scripts/test-locally.sh pinocchio-private-counter` from the repo root: it builds this example, boots the validators, and holds them until you press a key. +MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no validators, no +network. The suite initializes and delegates a private counter, updates its permission account, +and commits the state before undelegating it. -Then, in a second terminal, run this example's tests against that cluster: - -```bash -yarn test:local -``` - -`test:local` sources `scripts/local-env.sh` so the SDK targets the local cluster (without it the tests fall back to devnet). Use `yarn test:watch` to re-run the suite on file changes. - -The test initializes the counter on the base layer, delegates it to the Ephemeral Rollup, increments it on both layers, creates/updates/closes a permission account, and commits the delegated state back to the base layer. - -> Tip: to build and run **every** example end-to-end (what CI does), run the repo-root `./scripts/test-locally.sh` directly. +A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. ## Program Model diff --git a/private-counter/pinocchio/package.json b/private-counter/pinocchio/package.json index 8ec180da..a2eb196d 100644 --- a/private-counter/pinocchio/package.json +++ b/private-counter/pinocchio/package.json @@ -4,11 +4,8 @@ "description": "Tests for pinocchio-private-counter program", "main": "index.js", "scripts": { - "test:local": ". ../../scripts/local-env.sh && npx vitest run tests/", - "test:magicsvm": "vitest run tests-magicsvm/", + "test": "vitest run tests/", "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml", - "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh pinocchio-private-counter", - "test": "yarn test:local", "test:watch": "vitest watch tests/", "build": "cargo build-sbf", "check": "cargo check", diff --git a/private-counter/pinocchio/tests-magicsvm/pinocchio-private-counter.test.ts b/private-counter/pinocchio/tests-magicsvm/pinocchio-private-counter.test.ts deleted file mode 100644 index 33c43fe6..00000000 --- a/private-counter/pinocchio/tests-magicsvm/pinocchio-private-counter.test.ts +++ /dev/null @@ -1,465 +0,0 @@ -import { - Keypair, - PublicKey, - SystemProgram, - TransactionInstruction, -} from "@solana/web3.js"; -import path from "path"; -import { MagicSVM, TransactionMetadata } from "@magicblock-labs/magicsvm"; -import { - airdropOrThrow, - DELEGATION_PROGRAM_ID, - delegateBufferPdaFromDelegatedAccountAndOwnerProgram, - delegationMetadataPdaFromDelegatedAccount, - delegationRecordPdaFromDelegatedAccount, - EPHEMERAL_VAULT_ID, - isDelegated, - MAGIC_CONTEXT_ID, - MAGIC_PROGRAM_ID, - PERMISSION_PROGRAM_ID, - permissionPdaFromAccount, - programIdFromKeypairFile, - requireAccount, - sendSvmIx, -} from "@magicblock-labs/test-utils"; -import { describe, it, beforeAll, expect } from "vitest"; - -const LAMPORTS_PER_SOL = 1_000_000_000n; -const PROGRAM_SO = path.join( - __dirname, - "..", - "target", - "deploy", - "pinocchio_private_counter.so", -); -const PROGRAM_KEYPAIR = path.join( - __dirname, - "..", - "target", - "deploy", - "pinocchio_private_counter-keypair.json", -); - -function send( - svm: MagicSVM, - target: "base" | "ephemeral", - ix: TransactionInstruction, - payer: Keypair, -): TransactionMetadata { - return sendSvmIx(svm, [payer], ix, target); -} - -function counterCount(data: Uint8Array): Uint8Array { - return Buffer.from(data.subarray(32, 40)); -} - -describe("pinocchio-private-counter magicsvm", () => { - const PROGRAM_ID = new PublicKey(programIdFromKeypairFile(PROGRAM_KEYPAIR)); - const userKeypair = Keypair.generate(); - const unauthorizedKeypair = Keypair.generate(); - const svm = new MagicSVM(); - const id = Keypair.generate().publicKey; - - const [counterPda, bump] = PublicKey.findProgramAddressSync( - [Buffer.from("counter"), id.toBuffer()], - PROGRAM_ID, - ); - const permissionPda = permissionPdaFromAccount(counterPda); - - beforeAll(() => { - svm.addProgramFromFile(PROGRAM_ID, PROGRAM_SO); - airdropOrThrow(svm, userKeypair.publicKey, 2n * LAMPORTS_PER_SOL); - console.log("Program ID: ", PROGRAM_ID.toString()); - console.log("Counter PDA: ", counterPda.toString()); - console.log("Bump: ", bump); - console.log("Permission PDA: ", permissionPda.toString()); - console.log("Validator identity: ", svm.validatorIdentity().toString()); - }); - - it("Initialize counter on Solana", () => { - const ixData = Buffer.concat([ - Buffer.from([0, 0, 0, 0, 0, 0, 0, 0]), - id.toBuffer(), - ]); - const result = send( - svm, - "base", - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: SystemProgram.programId, - isSigner: false, - isWritable: false, - }, - ], - }), - userKeypair, - ); - expect(result).toBeDefined(); - - const counter = requireAccount(svm, counterPda, "base"); - expect(counterCount(counter.data)).toEqual( - Buffer.from([0, 0, 0, 0, 0, 0, 0, 0]), - ); - }); - - it("Increase counter on Solana", () => { - const ixData = Buffer.concat([ - Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), - Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), - ]); - const result = send( - svm, - "base", - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - ], - }), - userKeypair, - ); - expect(result).toBeDefined(); - - const counter = requireAccount(svm, counterPda, "base"); - expect(counterCount(counter.data)).toEqual( - Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), - ); - }); - - it("Delegate counter to ER", () => { - const ixData = Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]); - const result = send( - svm, - "base", - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: delegateBufferPdaFromDelegatedAccountAndOwnerProgram( - counterPda, - PROGRAM_ID, - ), - isSigner: false, - isWritable: true, - }, - { - pubkey: delegationRecordPdaFromDelegatedAccount(counterPda), - isSigner: false, - isWritable: true, - }, - { - pubkey: delegationMetadataPdaFromDelegatedAccount(counterPda), - isSigner: false, - isWritable: true, - }, - { - pubkey: DELEGATION_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: SystemProgram.programId, - isSigner: false, - isWritable: false, - }, - { - pubkey: new PublicKey(svm.validatorIdentity().toString()), - isSigner: false, - isWritable: false, - }, - ], - }), - userKeypair, - ); - expect(result).toBeDefined(); - expect(isDelegated(svm, counterPda)).toBe(true); - }); - - it("Increase counter on ER", () => { - const ixData = Buffer.concat([ - Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), - Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), - ]); - const result = send( - svm, - "ephemeral", - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - ], - }), - userKeypair, - ); - expect(result).toBeDefined(); - - const counter = requireAccount(svm, counterPda, "ephemeral"); - expect(counterCount(counter.data)).toEqual( - Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), - ); - }); - - it("Create permission on ER", () => { - const ixData = Buffer.from([4, 0, 0, 0, 0, 0, 0, 0]); - const result = send( - svm, - "ephemeral", - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: PERMISSION_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: permissionPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: MAGIC_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: EPHEMERAL_VAULT_ID, - isSigner: false, - isWritable: true, - }, - ], - }), - userKeypair, - ); - expect(result).toBeDefined(); - - svm.setAuthorizedUser(userKeypair.publicKey); - const authorized = requireAccount(svm, counterPda, "ephemeral"); - expect(counterCount(authorized.data)).toEqual( - Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), - ); - svm.setAuthorizedUser(unauthorizedKeypair.publicKey); - expect(svm.getAccountFor(counterPda, { target: "ephemeral" }).exists).toBe( - false, - ); - svm.setAuthorizedUser(null); - expect(svm.getAccountFor(counterPda, { target: "ephemeral" }).exists).toBe( - false, - ); - - const permission = requireAccount(svm, permissionPda, "ephemeral"); - expect(Buffer.from(permission.data.subarray(36, 68))).toEqual( - PROGRAM_ID.toBuffer(), - ); - expect(Buffer.from(permission.data.subarray(69, 101))).toEqual( - userKeypair.publicKey.toBuffer(), - ); - }); - - it("Update permission on ER", () => { - const ixData = Buffer.from([5, 0, 0, 0, 0, 0, 0, 0]); - const result = send( - svm, - "ephemeral", - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: PERMISSION_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: permissionPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: MAGIC_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: EPHEMERAL_VAULT_ID, - isSigner: false, - isWritable: true, - }, - ], - }), - userKeypair, - ); - expect(result).toBeDefined(); - - const permission = requireAccount(svm, permissionPda, "ephemeral"); - expect(Buffer.from(permission.data.subarray(36, 68))).toEqual( - PROGRAM_ID.toBuffer(), - ); - expect(permission.data.length).toEqual(68); - - svm.setAuthorizedUser(userKeypair.publicKey); - expect(svm.getAccountFor(counterPda, { target: "ephemeral" }).exists).toBe( - false, - ); - svm.setAuthorizedUser(unauthorizedKeypair.publicKey); - expect(svm.getAccountFor(counterPda, { target: "ephemeral" }).exists).toBe( - false, - ); - }); - - it("Close permission on ER", () => { - const ixData = Buffer.from([6, 0, 0, 0, 0, 0, 0, 0]); - const result = send( - svm, - "ephemeral", - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: PERMISSION_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: permissionPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: MAGIC_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: EPHEMERAL_VAULT_ID, - isSigner: false, - isWritable: true, - }, - ], - }), - userKeypair, - ); - expect(result).toBeDefined(); - - svm.setAuthorizedUser(userKeypair.publicKey); - const counter = requireAccount(svm, counterPda, "ephemeral"); - expect(counterCount(counter.data)).toEqual( - Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), - ); - svm.setAuthorizedUser(unauthorizedKeypair.publicKey); - const unauthorized = requireAccount(svm, counterPda, "ephemeral"); - expect(counterCount(unauthorized.data)).toEqual( - Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), - ); - }); - - it("Commit and undelegate counter on ER to Solana", () => { - const ixData = Buffer.from([3, 0, 0, 0, 0, 0, 0, 0]); - const result = send( - svm, - "ephemeral", - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: MAGIC_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: MAGIC_CONTEXT_ID, - isSigner: false, - isWritable: true, - }, - ], - }), - userKeypair, - ); - expect(result).toBeDefined(); - - const counter = requireAccount(svm, counterPda, "base"); - expect(counter.programAddress.toString()).toBe(PROGRAM_ID.toString()); - }); -}); diff --git a/private-counter/pinocchio/tests/pinocchio-private-counter.test.ts b/private-counter/pinocchio/tests/pinocchio-private-counter.test.ts index 5f142692..33c43fe6 100644 --- a/private-counter/pinocchio/tests/pinocchio-private-counter.test.ts +++ b/private-counter/pinocchio/tests/pinocchio-private-counter.test.ts @@ -1,727 +1,465 @@ import { - type AccountInfo, Keypair, PublicKey, SystemProgram, - Transaction, TransactionInstruction, - Connection, - sendAndConfirmTransaction, - LAMPORTS_PER_SOL, } from "@solana/web3.js"; -import * as fs from "fs"; +import path from "path"; +import { MagicSVM, TransactionMetadata } from "@magicblock-labs/magicsvm"; import { + airdropOrThrow, DELEGATION_PROGRAM_ID, - delegationRecordPdaFromDelegatedAccount, - delegationMetadataPdaFromDelegatedAccount, delegateBufferPdaFromDelegatedAccountAndOwnerProgram, + delegationMetadataPdaFromDelegatedAccount, + delegationRecordPdaFromDelegatedAccount, + EPHEMERAL_VAULT_ID, + isDelegated, MAGIC_CONTEXT_ID, MAGIC_PROGRAM_ID, PERMISSION_PROGRAM_ID, - getAuthToken, -} from "@magicblock-labs/ephemeral-rollups-sdk"; -import * as nacl from "tweetnacl"; -import path from "path"; - -import { describe, it, expect, beforeAll } from "vitest"; - -import dotenv from "dotenv"; -import { homedir } from "os"; -dotenv.config(); - -const VAULT = new PublicKey("MagicVau1t999999999999999999999999999999999"); -const PROGRAM_ID = new PublicKey( - Keypair.fromSecretKey( - Uint8Array.from( - JSON.parse( - fs.readFileSync( - path.join( - __dirname, - "..", - "target", - "deploy", - "pinocchio_private_counter-keypair.json", - ), - "utf8", - ), - ), - ), - ).publicKey, + permissionPdaFromAccount, + programIdFromKeypairFile, + requireAccount, + sendSvmIx, +} from "@magicblock-labs/test-utils"; +import { describe, it, beforeAll, expect } from "vitest"; + +const LAMPORTS_PER_SOL = 1_000_000_000n; +const PROGRAM_SO = path.join( + __dirname, + "..", + "target", + "deploy", + "pinocchio_private_counter.so", +); +const PROGRAM_KEYPAIR = path.join( + __dirname, + "..", + "target", + "deploy", + "pinocchio_private_counter-keypair.json", ); -describe( - "pinocchio-private-counter", - async () => { - // Use a fresh keypair funded via a plain airdrop - const isLocal = (process.env.PROVIDER_ENDPOINT || "").startsWith("http://"); - const userKeypair = isLocal - ? Keypair.generate() - : Keypair.fromSecretKey( - Uint8Array.from( - JSON.parse( - process.env.PRIVATE_KEY || - fs.readFileSync( - path.join(homedir(), "/.config/solana/id.json"), - "utf8", - ), - ), - ), - ); - - // Set up PER connection - const teeUrl = - process.env.EPHEMERAL_PROVIDER_ENDPOINT || - "https://devnet-tee.magicblock.app"; - const teeWsUrl = - process.env.EPHEMERAL_WS_ENDPOINT || "wss://devnet-tee.magicblock.app"; - const authToken = teeUrl.includes("tee") - ? ( - await getAuthToken( - teeUrl, - userKeypair.publicKey, - (message: Uint8Array) => - Promise.resolve( - nacl.sign.detached(message, userKeypair.secretKey), - ), - ) - ).token - : ""; - const teeUserUrl = authToken ? `${teeUrl}?token=${authToken}` : teeUrl; - const teeUserWsUrl = authToken - ? `${teeWsUrl}?token=${authToken}` - : teeWsUrl; - console.log( - "User Explorer URL:", - `https://explore.solana.com/?cluster=custom&customUrl=${teeUserUrl}`, +function send( + svm: MagicSVM, + target: "base" | "ephemeral", + ix: TransactionInstruction, + payer: Keypair, +): TransactionMetadata { + return sendSvmIx(svm, [payer], ix, target); +} + +function counterCount(data: Uint8Array): Uint8Array { + return Buffer.from(data.subarray(32, 40)); +} + +describe("pinocchio-private-counter magicsvm", () => { + const PROGRAM_ID = new PublicKey(programIdFromKeypairFile(PROGRAM_KEYPAIR)); + const userKeypair = Keypair.generate(); + const unauthorizedKeypair = Keypair.generate(); + const svm = new MagicSVM(); + const id = Keypair.generate().publicKey; + + const [counterPda, bump] = PublicKey.findProgramAddressSync( + [Buffer.from("counter"), id.toBuffer()], + PROGRAM_ID, + ); + const permissionPda = permissionPdaFromAccount(counterPda); + + beforeAll(() => { + svm.addProgramFromFile(PROGRAM_ID, PROGRAM_SO); + airdropOrThrow(svm, userKeypair.publicKey, 2n * LAMPORTS_PER_SOL); + console.log("Program ID: ", PROGRAM_ID.toString()); + console.log("Counter PDA: ", counterPda.toString()); + console.log("Bump: ", bump); + console.log("Permission PDA: ", permissionPda.toString()); + console.log("Validator identity: ", svm.validatorIdentity().toString()); + }); + + it("Initialize counter on Solana", () => { + const ixData = Buffer.concat([ + Buffer.from([0, 0, 0, 0, 0, 0, 0, 0]), + id.toBuffer(), + ]); + const result = send( + svm, + "base", + new TransactionInstruction({ + programId: PROGRAM_ID, + data: ixData, + keys: [ + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + { + pubkey: SystemProgram.programId, + isSigner: false, + isWritable: false, + }, + ], + }), + userKeypair, ); + expect(result).toBeDefined(); - // Set up a connection to blockchain cluster - const connectionBaseLayer = new Connection( - process.env.PROVIDER_ENDPOINT || "https://api.devnet.solana.com", - { wsEndpoint: process.env.WS_ENDPOINT || "wss://api.devnet.solana.com" }, + const counter = requireAccount(svm, counterPda, "base"); + expect(counterCount(counter.data)).toEqual( + Buffer.from([0, 0, 0, 0, 0, 0, 0, 0]), ); - const connectionEphemeralRollup = new Connection( - process.env.EPHEMERAL_PROVIDER_ENDPOINT || teeUserUrl, - { wsEndpoint: process.env.EPHEMERAL_WS_ENDPOINT || teeUserWsUrl }, - ); - console.log("Base Layer Connection: ", connectionBaseLayer.rpcEndpoint); - console.log( - "Ephemeral Rollup Connection: ", - connectionEphemeralRollup.rpcEndpoint, + }); + + it("Increase counter on Solana", () => { + const ixData = Buffer.concat([ + Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), + Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), + ]); + const result = send( + svm, + "base", + new TransactionInstruction({ + programId: PROGRAM_ID, + data: ixData, + keys: [ + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + ], + }), + userKeypair, ); + expect(result).toBeDefined(); - const id = Keypair.generate().publicKey; - let validator: PublicKey = new PublicKey( - "MTEWGuqxUpYZGFJQcp8tLN7x5v9BSeoFHYWQQ3n3xzo", + const counter = requireAccount(svm, counterPda, "base"); + expect(counterCount(counter.data)).toEqual( + Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), ); - const unauthorizedKeypair = Keypair.generate(); - const unauthorizedAuthToken = teeUrl.includes("tee") - ? await getAuthToken( - teeUrl, - unauthorizedKeypair.publicKey, - (message: Uint8Array) => - Promise.resolve( - nacl.sign.detached(message, unauthorizedKeypair.secretKey), + }); + + it("Delegate counter to ER", () => { + const ixData = Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]); + const result = send( + svm, + "base", + new TransactionInstruction({ + programId: PROGRAM_ID, + data: ixData, + keys: [ + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + { + pubkey: PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + { + pubkey: delegateBufferPdaFromDelegatedAccountAndOwnerProgram( + counterPda, + PROGRAM_ID, ), - ) - : undefined; - const unauthorizedConnection = teeUrl.includes("tee") - ? new Connection( - `${process.env.EPHEMERAL_PROVIDER_ENDPOINT || teeUrl}?token=${unauthorizedAuthToken?.token}`, - { - wsEndpoint: `${process.env.EPHEMERAL_WS_ENDPOINT || teeWsUrl}?token=${unauthorizedAuthToken.token}`, - }, - ) - : new Connection(process.env.EPHEMERAL_PROVIDER_ENDPOINT || teeUrl, { - wsEndpoint: process.env.EPHEMERAL_WS_ENDPOINT || teeWsUrl, - }); - console.log( - "Unauthorized Connection: ", - unauthorizedConnection.rpcEndpoint, + isSigner: false, + isWritable: true, + }, + { + pubkey: delegationRecordPdaFromDelegatedAccount(counterPda), + isSigner: false, + isWritable: true, + }, + { + pubkey: delegationMetadataPdaFromDelegatedAccount(counterPda), + isSigner: false, + isWritable: true, + }, + { + pubkey: DELEGATION_PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + { + pubkey: SystemProgram.programId, + isSigner: false, + isWritable: false, + }, + { + pubkey: new PublicKey(svm.validatorIdentity().toString()), + isSigner: false, + isWritable: false, + }, + ], + }), + userKeypair, ); - - // Get pda of counter_account - const [counterPda, bump] = PublicKey.findProgramAddressSync( - [Buffer.from("counter"), id.toBuffer()], - PROGRAM_ID, + expect(result).toBeDefined(); + expect(isDelegated(svm, counterPda)).toBe(true); + }); + + it("Increase counter on ER", () => { + const ixData = Buffer.concat([ + Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), + Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), + ]); + const result = send( + svm, + "ephemeral", + new TransactionInstruction({ + programId: PROGRAM_ID, + data: ixData, + keys: [ + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + ], + }), + userKeypair, ); - console.log("Program ID: ", PROGRAM_ID.toString()); - console.log("Counter PDA: ", counterPda.toString()); - console.log("Bump: ", bump); + expect(result).toBeDefined(); - // Get permission PDA - const [permissionPda] = PublicKey.findProgramAddressSync( - [Buffer.from("permission:"), counterPda.toBuffer()], - PERMISSION_PROGRAM_ID, + const counter = requireAccount(svm, counterPda, "ephemeral"); + expect(counterCount(counter.data)).toEqual( + Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), ); - console.log("Permission PDA: ", permissionPda.toString()); - - beforeAll(async () => { - // Fund the fresh userKeypair with enough SOL for this suite's rent + fees, - // before any test sends a transaction signed by it. - if (isLocal) { - const sig = await connectionBaseLayer.requestAirdrop( - userKeypair.publicKey, - 2 * LAMPORTS_PER_SOL, - ); - const latestBlockhash = await connectionBaseLayer.getLatestBlockhash(); - await connectionBaseLayer.confirmTransaction( - { signature: sig, ...latestBlockhash }, - "confirmed", - ); - } - - const response = await fetch(teeUrl, { - method: "POST", - body: JSON.stringify({ - method: "getIdentity", - jsonrpc: "2.0", - id: "123456789", - }), - }); - const data: any = await response.json(); - console.log("Validator: ", data.result.identity); - validator = new PublicKey(data.result.identity); - }); - - it("Initialize counter on Solana", async () => { - const ixData = Buffer.concat([ - Buffer.from([0, 0, 0, 0, 0, 0, 0, 0]), - id.toBuffer(), - ]); - const tx = new Transaction().add( - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: SystemProgram.programId, - isSigner: false, - isWritable: false, - }, - ], - }), - ); - - const txHash = await sendAndConfirmTransaction( - connectionBaseLayer, - tx, - [userKeypair], - { - commitment: "confirmed", - }, - ); - console.log(`(Base Layer) Initialize txHash: ${txHash}`); - expect(txHash).toBeDefined(); - - let counter = await connectionBaseLayer.getAccountInfo(counterPda, { - commitment: "confirmed", - }); - expect(counter).toBeDefined(); - expect(counter?.data.subarray(32, 40)).toEqual( - Buffer.from([0, 0, 0, 0, 0, 0, 0, 0]), - ); - }); - - it("Increase counter on Solana", async () => { - const ixData = Buffer.concat([ - Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), - Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), - ]); - const tx = new Transaction().add( - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - ], - }), - ); - - const txHash = await sendAndConfirmTransaction( - connectionBaseLayer, - tx, - [userKeypair], - { - commitment: "confirmed", - }, - ); - console.log(`(Base Layer) Increment txHash: ${txHash}`); - expect(txHash).toBeDefined(); - - let counter = await connectionBaseLayer.getAccountInfo(counterPda, { - commitment: "confirmed", - }); - expect(counter).toBeDefined(); - expect(counter?.data.subarray(32, 40)).toEqual( - Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), - ); - }); - - it("Delegate counter to ER", async function () { - const ixData = Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]); - const tx = new Transaction().add( - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - // Owner Program - { - pubkey: PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - // Delegation Buffer - { - pubkey: delegateBufferPdaFromDelegatedAccountAndOwnerProgram( - counterPda, - PROGRAM_ID, - ), - isSigner: false, - isWritable: true, - }, - // Delegation Record - { - pubkey: delegationRecordPdaFromDelegatedAccount(counterPda), - isSigner: false, - isWritable: true, - }, - // Delegation Metadata - { - pubkey: delegationMetadataPdaFromDelegatedAccount(counterPda), - isSigner: false, - isWritable: true, - }, - // Delegation Program - { - pubkey: DELEGATION_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - // System Program - { - pubkey: SystemProgram.programId, - isSigner: false, - isWritable: false, - }, - // PER Validator - { - pubkey: validator, - isSigner: false, - isWritable: false, - }, - ], - }), - ); - - const txHash = await sendAndConfirmTransaction( - connectionBaseLayer, - tx, - [userKeypair], - { - commitment: "confirmed", - }, - ); - console.log(`(Base Layer) Delegate txHash: ${txHash}`); - expect(txHash).toBeDefined(); - }); - - it("Increase counter on ER", async () => { - const ixData = Buffer.concat([ - Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), - Buffer.from([1, 0, 0, 0, 0, 0, 0, 0]), - ]); - const tx = new Transaction().add( - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - ], - }), - ); - - const txHash = await sendAndConfirmTransaction( - connectionEphemeralRollup, - tx, - [userKeypair], - { - commitment: "confirmed", - }, - ); - console.log(`(ER) Increment txHash: ${txHash}`); - expect(txHash).toBeDefined(); - - // Check readability - let counter = await connectionEphemeralRollup.getAccountInfo(counterPda, { - commitment: "confirmed", - }); - expect(counter).toBeDefined(); - expect(counter?.data.subarray(32, 40)).toEqual( - Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), - ); - - counter = await unauthorizedConnection.getAccountInfo(counterPda, { - commitment: "confirmed", - }); - expect(counter).toBeDefined(); - expect(counter?.data.subarray(32, 40)).toEqual( - Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), - ); - }); - - it("Create permission on ER", async () => { - const ixData = Buffer.from([4, 0, 0, 0, 0, 0, 0, 0]); - const tx = new Transaction().add( - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: PERMISSION_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: permissionPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: MAGIC_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: VAULT, - isSigner: false, - isWritable: true, - }, - ], - }), - ); - - const txHash = await sendAndConfirmTransaction( - connectionEphemeralRollup, - tx, - [userKeypair], - { - commitment: "confirmed", - skipPreflight: true, - }, - ); - console.log(`(ER) Create permission txHash: ${txHash}`); - expect(txHash).toBeDefined(); - - // Check readability - let counter = await connectionEphemeralRollup.getAccountInfo(counterPda, { - commitment: "confirmed", - }); - expect(counter).toBeDefined(); - expect(counter?.data.subarray(32, 40)).toEqual( - Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), - ); - - counter = await unauthorizedConnection.getAccountInfo(counterPda, { - commitment: "confirmed", - }); - if (teeUrl.includes("tee")) { - expect(counter).toBeNull(); - } else { - expect(counter).toBeDefined(); - expect(counter?.data.subarray(32, 40)).toEqual( - Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), - ); - } - - // Check permission - let permission = await connectionEphemeralRollup.getAccountInfo( - permissionPda, - { - commitment: "confirmed", - }, - ); - expect(permission).toBeDefined(); - expect(permission?.data.subarray(36, 68)).toEqual(PROGRAM_ID.toBuffer()); - expect(permission?.data.subarray(69, 101)).toEqual( - userKeypair.publicKey.toBuffer(), - ); - }); - - it("Update permission on ER", async () => { - const ixData = Buffer.from([5, 0, 0, 0, 0, 0, 0, 0]); - const tx = new Transaction().add( - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: PERMISSION_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: permissionPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: MAGIC_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: VAULT, - isSigner: false, - isWritable: true, - }, - ], - }), - ); - - const txHash = await sendAndConfirmTransaction( - connectionEphemeralRollup, - tx, - [userKeypair], - { - commitment: "confirmed", - skipPreflight: true, - }, - ); - console.log(`(ER) Create permission txHash: ${txHash}`); - expect(txHash).toBeDefined(); - - // Check readability - let counter = await connectionEphemeralRollup.getAccountInfo(counterPda, { - commitment: "confirmed", - }); - if (teeUrl.includes("tee")) { - expect(counter).toBeNull(); - } else { - expect(counter).toBeDefined(); - expect(counter?.data.subarray(32, 40)).toEqual( - Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), - ); - } - - counter = await unauthorizedConnection.getAccountInfo(counterPda, { - commitment: "confirmed", - }); - if (teeUrl.includes("tee")) { - expect(counter).toBeNull(); - } else { - expect(counter).toBeDefined(); - expect(counter?.data.subarray(32, 40)).toEqual( - Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), - ); - } - - // Check permission - let permission = await connectionEphemeralRollup.getAccountInfo( - permissionPda, - { - commitment: "confirmed", - }, - ); - expect(permission).toBeDefined(); - expect(permission?.data.subarray(36, 68)).toEqual(PROGRAM_ID.toBuffer()); - expect(permission?.data.length).toEqual(68); - }); + }); + + it("Create permission on ER", () => { + const ixData = Buffer.from([4, 0, 0, 0, 0, 0, 0, 0]); + const result = send( + svm, + "ephemeral", + new TransactionInstruction({ + programId: PROGRAM_ID, + data: ixData, + keys: [ + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + { + pubkey: PERMISSION_PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + { + pubkey: permissionPda, + isSigner: false, + isWritable: true, + }, + { + pubkey: MAGIC_PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + { + pubkey: EPHEMERAL_VAULT_ID, + isSigner: false, + isWritable: true, + }, + ], + }), + userKeypair, + ); + expect(result).toBeDefined(); - it("Close permission on ER", async () => { - const ixData = Buffer.from([6, 0, 0, 0, 0, 0, 0, 0]); - const tx = new Transaction().add( - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: PERMISSION_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: permissionPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: MAGIC_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: VAULT, - isSigner: false, - isWritable: true, - }, - ], - }), - ); + svm.setAuthorizedUser(userKeypair.publicKey); + const authorized = requireAccount(svm, counterPda, "ephemeral"); + expect(counterCount(authorized.data)).toEqual( + Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), + ); + svm.setAuthorizedUser(unauthorizedKeypair.publicKey); + expect(svm.getAccountFor(counterPda, { target: "ephemeral" }).exists).toBe( + false, + ); + svm.setAuthorizedUser(null); + expect(svm.getAccountFor(counterPda, { target: "ephemeral" }).exists).toBe( + false, + ); - const txHash = await connectionEphemeralRollup.sendTransaction( - tx, - [userKeypair], - { skipPreflight: true }, - ); - console.log(`(ER) Close permission txHash: ${txHash}`); - const result = await connectionEphemeralRollup.confirmTransaction(txHash); - expect(result.value.err).toBeNull(); - expect(txHash).toBeDefined(); + const permission = requireAccount(svm, permissionPda, "ephemeral"); + expect(Buffer.from(permission.data.subarray(36, 68))).toEqual( + PROGRAM_ID.toBuffer(), + ); + expect(Buffer.from(permission.data.subarray(69, 101))).toEqual( + userKeypair.publicKey.toBuffer(), + ); + }); + + it("Update permission on ER", () => { + const ixData = Buffer.from([5, 0, 0, 0, 0, 0, 0, 0]); + const result = send( + svm, + "ephemeral", + new TransactionInstruction({ + programId: PROGRAM_ID, + data: ixData, + keys: [ + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + { + pubkey: PERMISSION_PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + { + pubkey: permissionPda, + isSigner: false, + isWritable: true, + }, + { + pubkey: MAGIC_PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + { + pubkey: EPHEMERAL_VAULT_ID, + isSigner: false, + isWritable: true, + }, + ], + }), + userKeypair, + ); + expect(result).toBeDefined(); - // Check readability - let counter = await connectionEphemeralRollup.getAccountInfo(counterPda, { - commitment: "confirmed", - }); - expect(counter).toBeDefined(); - expect(counter?.data.subarray(32, 40)).toEqual( - Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), - ); + const permission = requireAccount(svm, permissionPda, "ephemeral"); + expect(Buffer.from(permission.data.subarray(36, 68))).toEqual( + PROGRAM_ID.toBuffer(), + ); + expect(permission.data.length).toEqual(68); - counter = await unauthorizedConnection.getAccountInfo(counterPda, { - commitment: "confirmed", - }); - expect(counter).toBeDefined(); - expect(counter?.data.subarray(32, 40)).toEqual( - Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), - ); - }); + svm.setAuthorizedUser(userKeypair.publicKey); + expect(svm.getAccountFor(counterPda, { target: "ephemeral" }).exists).toBe( + false, + ); + svm.setAuthorizedUser(unauthorizedKeypair.publicKey); + expect(svm.getAccountFor(counterPda, { target: "ephemeral" }).exists).toBe( + false, + ); + }); + + it("Close permission on ER", () => { + const ixData = Buffer.from([6, 0, 0, 0, 0, 0, 0, 0]); + const result = send( + svm, + "ephemeral", + new TransactionInstruction({ + programId: PROGRAM_ID, + data: ixData, + keys: [ + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + { + pubkey: PERMISSION_PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + { + pubkey: permissionPda, + isSigner: false, + isWritable: true, + }, + { + pubkey: MAGIC_PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + { + pubkey: EPHEMERAL_VAULT_ID, + isSigner: false, + isWritable: true, + }, + ], + }), + userKeypair, + ); + expect(result).toBeDefined(); - it("Commit and undelegate counter on ER to Solana", async function () { - const ixData = Buffer.from([3, 0, 0, 0, 0, 0, 0, 0]); - const tx = new Transaction().add( - new TransactionInstruction({ - programId: PROGRAM_ID, - data: ixData, - keys: [ - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - { - pubkey: MAGIC_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - { - pubkey: MAGIC_CONTEXT_ID, - isSigner: false, - isWritable: true, - }, - ], - }), - ); - const txHash = await sendAndConfirmTransaction( - connectionEphemeralRollup, - tx, - [userKeypair], - { - commitment: "confirmed", - }, - ); - console.log(`(ER) Undelegate txHash: ${txHash}`); - expect(txHash).toBeDefined(); + svm.setAuthorizedUser(userKeypair.publicKey); + const counter = requireAccount(svm, counterPda, "ephemeral"); + expect(counterCount(counter.data)).toEqual( + Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), + ); + svm.setAuthorizedUser(unauthorizedKeypair.publicKey); + const unauthorized = requireAccount(svm, counterPda, "ephemeral"); + expect(counterCount(unauthorized.data)).toEqual( + Buffer.from([2, 0, 0, 0, 0, 0, 0, 0]), + ); + }); + + it("Commit and undelegate counter on ER to Solana", () => { + const ixData = Buffer.from([3, 0, 0, 0, 0, 0, 0, 0]); + const result = send( + svm, + "ephemeral", + new TransactionInstruction({ + programId: PROGRAM_ID, + data: ixData, + keys: [ + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + { + pubkey: MAGIC_PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + { + pubkey: MAGIC_CONTEXT_ID, + isSigner: false, + isWritable: true, + }, + ], + }), + userKeypair, + ); + expect(result).toBeDefined(); - // Wait for the ER to commit + undelegate the counter back to the base - // layer, i.e. until it is owned by our program again. This polls base-layer - // ownership directly instead of resolving the commit signature from the ER's - // ScheduledCommitSent logs: the local committor can re-send the finalize tx - // after a transient error, and the duplicate then fails on-chain (the - // original already landed) — which surfaces as "Unable to find Commitment - // signature" even though the account did come back. - let counter: AccountInfo | null = null; - let lastError: unknown; - for (let attempt = 0; attempt < 60; attempt += 1) { - if (attempt > 0) { - await new Promise((resolve) => setTimeout(resolve, 1000)); - } - try { - counter = await connectionBaseLayer.getAccountInfo(counterPda, { - commitment: "confirmed", - }); - if (counter?.owner.equals(PROGRAM_ID)) { - break; - } - lastError = new Error( - `expected ${PROGRAM_ID.toBase58()}, got ${counter?.owner.toBase58() ?? "missing account"}`, - ); - } catch (error) { - lastError = error; - } - } - console.log(`(Base Layer) Counter owner: ${counter?.owner.toBase58()}`); - if (!counter?.owner.equals(PROGRAM_ID)) { - throw new Error( - `Counter was not undelegated back to the base layer in time: ${lastError}`, - ); - } - }, 90_000); - }, - { timeout: 30000 }, -); + const counter = requireAccount(svm, counterPda, "base"); + expect(counter.programAddress.toString()).toBe(PROGRAM_ID.toString()); + }); +}); diff --git a/rock-paper-scissor/anchor/Anchor.toml b/rock-paper-scissor/anchor/Anchor.toml index dad87c37..1ff70421 100644 --- a/rock-paper-scissor/anchor/Anchor.toml +++ b/rock-paper-scissor/anchor/Anchor.toml @@ -10,4 +10,4 @@ cluster = "devnet" wallet = "~/.config/solana/id.json" [scripts] -test = "NODE_OPTIONS='--no-deprecation' yarn run ts-mocha -p ./tsconfig.json -t 120000 tests/**/*.ts" +test = "yarn test" diff --git a/rock-paper-scissor/anchor/README.md b/rock-paper-scissor/anchor/README.md index 72c72dd5..8bbabb29 100644 --- a/rock-paper-scissor/anchor/README.md +++ b/rock-paper-scissor/anchor/README.md @@ -44,25 +44,17 @@ yarn yarn build ``` -This example runs against a **local MagicBlock cluster** — a base Solana validator plus an Ephemeral Rollup, fronted by the Query Filtering Service. Start it in one terminal and leave it running: +Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash -yarn setup +yarn test ``` -`yarn setup` runs `SETUP_ONLY=1 ./scripts/test-locally.sh rock-paper-scissor` from the repo root: it builds this example, boots the validators, and holds them until you press a key. +MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no validators, no +network. The suite plays two private-choice rounds, reveals the winner, undelegates the game state, +and pays out the pot. -Then, in a second terminal, run this example's tests against that cluster: - -```bash -yarn test:local -``` - -`test:local` sources `scripts/local-env.sh` so the SDK targets the local cluster (without it the tests fall back to devnet). - -> Tip: to build and run **every** example end-to-end (what CI does), run the repo-root `./scripts/test-locally.sh` directly. - -This is a TEE (Trusted Execution Environment) example: locally, ER calls route through the QFS via the `TEE_*` endpoints. The full devnet/TEE path additionally requires a funded devnet keypair, so in CI these tests are skipped unless a `DEVNET_KEYPAIR_JSON` secret is set (the repo sets `SKIP_TEE_TESTS=1` without it). +A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. ## Usage @@ -144,7 +136,7 @@ Games can carry a SOL wager (default `0.1`, customizable at creation; `0` for fr | `TEE_WS_ENDPOINT` | `wss://devnet-tee.magicblock.app` | WebSocket endpoint for subscriptions | | `VALIDATOR` | `MTEWGuqxUpYZGFJQcp8tLN7x5v9BSeoFHYWQQ3n3xzo` | TEE ER validator to delegate to | -On mainnet the TEE endpoints are `https://mainnet-tee.magicblock.app` / `wss://mainnet-tee.magicblock.app`. `scripts/local-env.sh` overrides all of these to target the local cluster. +On mainnet the TEE endpoints are `https://mainnet-tee.magicblock.app` and `wss://mainnet-tee.magicblock.app`. ## References diff --git a/rock-paper-scissor/anchor/package.json b/rock-paper-scissor/anchor/package.json index fc8323f4..8dcc5b10 100644 --- a/rock-paper-scissor/anchor/package.json +++ b/rock-paper-scissor/anchor/package.json @@ -2,12 +2,9 @@ "scripts": { "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", - "build": "anchor keys sync && anchor build", - "test:local": ". ../../scripts/local-env.sh && anchor test --skip-build --skip-deploy --skip-local-validator --provider.cluster devnet", - "test:magicsvm": "ts-mocha -p ./tests-magicsvm/tsconfig.json -t 120000 tests-magicsvm/**/*.ts", - "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture", - "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh rock-paper-scissor", - "test": "yarn test:local" + "build": "anchor build --ignore-keys", + "test": "ts-mocha -p ./tsconfig.json -t 120000 tests/**/*.ts", + "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture" }, "dependencies": { "@coral-xyz/anchor": "0.32.1", diff --git a/rock-paper-scissor/anchor/programs/anchor-rock-paper-scissor/src/lib.rs b/rock-paper-scissor/anchor/programs/anchor-rock-paper-scissor/src/lib.rs index 39ee75ab..83aa7755 100644 --- a/rock-paper-scissor/anchor/programs/anchor-rock-paper-scissor/src/lib.rs +++ b/rock-paper-scissor/anchor/programs/anchor-rock-paper-scissor/src/lib.rs @@ -11,7 +11,7 @@ use ephemeral_rollups_sdk::consts::{EPHEMERAL_VAULT_ID, MAGIC_PROGRAM_ID, PERMIS use ephemeral_rollups_sdk::cpi::DelegateConfig; use ephemeral_rollups_sdk::ephem::MagicIntentBundleBuilder; -declare_id!("AE1tfrvP4UYAVbMbCA8xNFTZBEuGC9qLxSxnLzkJdZW3"); +declare_id!("4AEU8Dhg5dRXyfPCdPUibbhQvQVrqs9ZGPvft6wyDBvE"); pub const PLAYER_CHOICE_SEED: &[u8] = b"player_choice"; pub const GAME_SEED: &[u8] = b"game"; diff --git a/rock-paper-scissor/anchor/tests-magicsvm/rock-paper-scissor.ts b/rock-paper-scissor/anchor/tests-magicsvm/rock-paper-scissor.ts deleted file mode 100644 index 76b7b9f9..00000000 --- a/rock-paper-scissor/anchor/tests-magicsvm/rock-paper-scissor.ts +++ /dev/null @@ -1,657 +0,0 @@ -import * as anchor from "@coral-xyz/anchor"; -import { Program } from "@coral-xyz/anchor"; -import { - Keypair, - PublicKey, - SystemProgram, - Transaction, -} from "@solana/web3.js"; -import { MagicSVM } from "@magicblock-labs/magicsvm"; -import { - airdropOrThrow, - dummyAnchorProvider, - EPHEMERAL_VAULT_ID, - MAGIC_PROGRAM_ID, - PERMISSION_PROGRAM_ID, - permissionPdaFromAccount, - sendSvmTx, -} from "@magicblock-labs/test-utils"; -import BN from "bn.js"; -import * as path from "path"; - -import { - AUTHORITY_FLAG, - Member, - TX_LOGS_FLAG, -} from "@magicblock-labs/ephemeral-rollups-sdk"; - -const PROGRAM_SO = path.resolve( - __dirname, - "../target/deploy/anchor_rock_paper_scissor.so", -); -const IDL = require("../target/idl/anchor_rock_paper_scissor.json"); - -type Choice = { rock: {} } | { paper: {} } | { scissors: {} }; - -function encodeProgram(payer: Keypair): Program { - return new Program(IDL as anchor.Idl, dummyAnchorProvider(payer)); -} - -describe("anchor-rock-paper-scissor (magicsvm)", () => { - const svm = new MagicSVM(); - const player1 = Keypair.generate(); - const player2 = Keypair.generate(); - const programId = new PublicKey(IDL.address); - const validator = new PublicKey(svm.validatorIdentity().toString()); - const program = encodeProgram(player1); - - console.log("Program ID: ", programId.toString()); - console.log("MagicSVM validator identity: ", validator.toBase58()); - - const gameId = new BN(1); - const STAKE = new BN(0.05 * anchor.web3.LAMPORTS_PER_SOL); - const TARGET_WINS = 2; - - const GAME_SEED = Buffer.from("game"); - const PLAYER_CHOICE_SEED = Buffer.from("player_choice"); - const VAULT_SEED = Buffer.from("vault"); - - const [gamePda] = PublicKey.findProgramAddressSync( - [GAME_SEED, gameId.toArrayLike(Buffer, "le", 8)], - programId, - ); - const [vaultPda] = PublicKey.findProgramAddressSync( - [VAULT_SEED, gameId.toArrayLike(Buffer, "le", 8)], - programId, - ); - const [player1ChoicePda] = PublicKey.findProgramAddressSync( - [ - PLAYER_CHOICE_SEED, - gameId.toArrayLike(Buffer, "le", 8), - player1.publicKey.toBuffer(), - ], - programId, - ); - const [player2ChoicePda] = PublicKey.findProgramAddressSync( - [ - PLAYER_CHOICE_SEED, - gameId.toArrayLike(Buffer, "le", 8), - player2.publicKey.toBuffer(), - ], - programId, - ); - - const permissionForGame = permissionPdaFromAccount(gamePda); - const permissionForPlayer1Choice = permissionPdaFromAccount(player1ChoicePda); - const permissionForPlayer2Choice = permissionPdaFromAccount(player2ChoicePda); - - function decodeGame(target: "base" | "ephemeral") { - const account = svm.getAccountFor(gamePda, { target }); - if (!account.exists) { - throw new Error(`game PDA missing on ${target}`); - } - return program.coder.accounts.decode("game", Buffer.from(account.data)); - } - - function decodeChoice(pda: PublicKey, target: "base" | "ephemeral") { - const account = svm.getAccountFor(pda, { target }); - if (!account.exists) { - return null; - } - return program.account.playerChoice.coder.accounts.decode( - "playerChoice", - Buffer.from(account.data), - ); - } - - it("Airdrop SOL to both players and load program", () => { - svm.addProgramFromFile(programId, PROGRAM_SO); - airdropOrThrow(svm, player1.publicKey, 2n * 1_000_000_000n); - airdropOrThrow(svm, player2.publicKey, 2n * 1_000_000_000n); - - const balance1 = svm.getBalance(player1.publicKey); - const balance2 = svm.getBalance(player2.publicKey); - console.log( - "💸 Player 1 Balance:", - Number(balance1) / 1_000_000_000, - "SOL", - ); - console.log( - "💸 Player 2 Balance:", - Number(balance2) / 1_000_000_000, - "SOL", - ); - - const permissionProgram = svm.getAccountFor(PERMISSION_PROGRAM_ID, { - target: "ephemeral", - }); - console.log( - "PERMISSION_PROGRAM_ID on ephemeral:", - permissionProgram.exists - ? `executable=${permissionProgram.executable}` - : "MISSING", - ); - const magicProgram = svm.getAccountFor(MAGIC_PROGRAM_ID, { - target: "ephemeral", - }); - const vault = svm.getAccountFor(EPHEMERAL_VAULT_ID, { - target: "ephemeral", - }); - console.log( - "MAGIC_PROGRAM_ID on ephemeral:", - magicProgram.exists ? `executable=${magicProgram.executable}` : "MISSING", - ); - console.log( - "ephemeral vault on ephemeral:", - vault.exists ? `lamports=${vault.lamports}` : "MISSING", - ); - }); - - it("Create Game by Player 1 (base: create + delegate p1_choice)", async () => { - const createGameIx = await program.methods - .createGame(gameId, STAKE, TARGET_WINS) - .accountsPartial({ - game: gamePda, - playerChoice: player1ChoicePda, - vault: vaultPda, - player1: player1.publicKey, - systemProgram: SystemProgram.programId, - }) - .instruction(); - - const delegatePlayer1ChoiceIx = await program.methods - .delegatePda({ playerChoice: { gameId, player: player1.publicKey } }) - .accounts({ - payer: player1.publicKey, - validator, - pda: player1ChoicePda, - }) - .instruction(); - - const tx = new Transaction().add(createGameIx, delegatePlayer1ChoiceIx); - sendSvmTx(svm, [player1], tx, "base", "create game + delegate p1 choice"); - console.log("✅ Game Created + P1 Choice Delegated"); - }); - - it("Init ephemeral permission for Player 1 Choice (ER)", async () => { - const onEr = svm.getAccountFor(player1ChoicePda, { target: "ephemeral" }); - if (!onEr.exists) { - throw new Error("player1_choice not on ER after delegation"); - } - - const p1Members: Member[] = [ - { flags: AUTHORITY_FLAG | TX_LOGS_FLAG, pubkey: player1.publicKey }, - ]; - const initP1ChoicePermissionIx = await program.methods - .initPermission( - { playerChoice: { gameId, player: player1.publicKey } }, - p1Members, - ) - .accountsPartial({ - permissionedAccount: player1ChoicePda, - permission: permissionForPlayer1Choice, - authority: player1.publicKey, - permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: EPHEMERAL_VAULT_ID, - magicProgram: MAGIC_PROGRAM_ID, - }) - .instruction(); - - const tx = new Transaction().add(initP1ChoicePermissionIx); - sendSvmTx(svm, [player1], tx, "ephemeral", "init p1 choice permission"); - console.log("✅ P1 Choice permission initialized"); - - const permission = svm.getAccountFor(permissionForPlayer1Choice, { - target: "ephemeral", - }); - if (!permission.exists) { - throw new Error( - "Player 1 Choice permission never activated in-process (waitUntilPermissionActive equivalent)", - ); - } - console.log("✅ Player 1 Choice permission active"); - }); - - it("Join Game (Player 2) — base: join + delegate game + delegate p2_choice", async () => { - const joinGameIx = await program.methods - .joinGame(gameId) - .accountsPartial({ - game: gamePda, - playerChoice: player2ChoicePda, - vault: vaultPda, - player: player2.publicKey, - systemProgram: SystemProgram.programId, - }) - .instruction(); - - const delegateGameIx = await program.methods - .delegatePda({ game: { gameId } }) - .accounts({ - payer: player2.publicKey, - validator, - pda: gamePda, - }) - .instruction(); - - const delegatePlayer2ChoiceIx = await program.methods - .delegatePda({ playerChoice: { gameId, player: player2.publicKey } }) - .accounts({ - payer: player2.publicKey, - validator, - pda: player2ChoicePda, - }) - .instruction(); - - const tx = new Transaction().add( - joinGameIx, - delegateGameIx, - delegatePlayer2ChoiceIx, - ); - sendSvmTx( - svm, - [player2], - tx, - "base", - "join game + delegate game + p2 choice", - ); - console.log( - `✅ Player 2 joined game ${gameId} + delegated game + p2 choice`, - ); - }); - - it("Init ephemeral permissions for Game + Player 2 Choice (ER)", async () => { - if (!svm.getAccountFor(gamePda, { target: "ephemeral" }).exists) { - throw new Error("game not on ER after delegation"); - } - if (!svm.getAccountFor(player2ChoicePda, { target: "ephemeral" }).exists) { - throw new Error("player2_choice not on ER after delegation"); - } - - const gameMembers: Member[] = [ - { flags: AUTHORITY_FLAG | TX_LOGS_FLAG, pubkey: player1.publicKey }, - { flags: AUTHORITY_FLAG | TX_LOGS_FLAG, pubkey: player2.publicKey }, - ]; - const initGamePermissionIx = await program.methods - .initPermission({ game: { gameId } }, gameMembers) - .accountsPartial({ - permissionedAccount: gamePda, - permission: permissionForGame, - authority: player2.publicKey, - permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: EPHEMERAL_VAULT_ID, - magicProgram: MAGIC_PROGRAM_ID, - }) - .instruction(); - - const p2Members: Member[] = [ - { flags: AUTHORITY_FLAG | TX_LOGS_FLAG, pubkey: player2.publicKey }, - ]; - const initP2ChoicePermissionIx = await program.methods - .initPermission( - { playerChoice: { gameId, player: player2.publicKey } }, - p2Members, - ) - .accountsPartial({ - permissionedAccount: player2ChoicePda, - permission: permissionForPlayer2Choice, - authority: player2.publicKey, - permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: EPHEMERAL_VAULT_ID, - magicProgram: MAGIC_PROGRAM_ID, - }) - .instruction(); - - const tx = new Transaction().add( - initGamePermissionIx, - initP2ChoicePermissionIx, - ); - sendSvmTx( - svm, - [player2], - tx, - "ephemeral", - "init game + p2 choice permissions", - ); - console.log("✅ Game + P2 Choice permissions initialized"); - - const permission = svm.getAccountFor(permissionForPlayer2Choice, { - target: "ephemeral", - }); - if (!permission.exists) { - throw new Error( - "Player 2 Choice permission never activated in-process (waitUntilPermissionActive equivalent)", - ); - } - console.log("✅ Player 2 Choice permission active"); - }); - - it("Round 1: Player 1 Makes Choice (Rock)", async () => { - const choice: Choice = { rock: {} }; - const makeChoice1Ix = await program.methods - .makeChoice(gameId, choice) - .accounts({ - // @ts-ignore - playerChoice: player1ChoicePda, - player: player1.publicKey, - }) - .instruction(); - - const tx = new Transaction().add(makeChoice1Ix); - sendSvmTx(svm, [player1], tx, "ephemeral", "p1 make choice"); - console.log( - `✅ Player 1 ${player1.publicKey} chose ${JSON.stringify(choice)}`, - ); - }); - - it("Round 1: Player 2 Makes Choice (Scissors)", async () => { - const choice: Choice = { scissors: {} }; - const makeChoice2Ix = await program.methods - .makeChoice(gameId, choice) - .accounts({ - // @ts-ignore - playerChoice: player2ChoicePda, - player: player2.publicKey, - }) - .instruction(); - - const tx = new Transaction().add(makeChoice2Ix); - sendSvmTx(svm, [player2], tx, "ephemeral", "p2 make choice"); - console.log( - `✅ Player 2 ${player2.publicKey} chose ${JSON.stringify(choice)}`, - ); - }); - - it("Player 1 checks own choice", () => { - svm.setAuthorizedUser(player1.publicKey); - const player1ChoiceAccount = decodeChoice(player1ChoicePda, "ephemeral"); - if (!player1ChoiceAccount) { - throw new Error("Player 1 cannot read own choice"); - } - console.log(`👀 Check Player 1 own Choice:`, player1ChoiceAccount.choice); - }); - - it("Player 2 check own choice", () => { - svm.setAuthorizedUser(player2.publicKey); - const player2ChoiceAccount = decodeChoice(player2ChoicePda, "ephemeral"); - if (!player2ChoiceAccount) { - throw new Error("Player 2 cannot read own choice"); - } - console.log(`👀 Check Player 2 own Choice:`, player2ChoiceAccount.choice); - }); - - it("Sneak Player 1 Choice", () => { - svm.setAuthorizedUser(player2.publicKey); - const accountInfo = svm.getAccountFor(player1ChoicePda, { - target: "ephemeral", - }); - if (!accountInfo.exists) { - console.log(`✅ Player 1 choice account not found — as expected.`); - return; - } - throw new Error("❌ Player 1 choice account exists unexpectedly!"); - }); - - it("Sneak Player 2 Choice", () => { - svm.setAuthorizedUser(player1.publicKey); - const accountInfo = svm.getAccountFor(player2ChoicePda, { - target: "ephemeral", - }); - if (!accountInfo.exists) { - console.log("✅ Player 2 choice account not found — as expected."); - return; - } - throw new Error("❌ Player 2 choice account exists unexpectedly!"); - }); - - it("Round 1: Reveal Winner (Player 1 leads 1-0)", async () => { - const tx = await program.methods - .revealRound() - .accountsPartial({ - //@ts-ignore - game: gamePda, - player1Choice: player1ChoicePda, - player2Choice: player2ChoicePda, - permissionGame: permissionForGame, - permission1: permissionForPlayer1Choice, - permission2: permissionForPlayer2Choice, - payer: player1.publicKey, - permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: EPHEMERAL_VAULT_ID, - magicProgram: MAGIC_PROGRAM_ID, - }) - .transaction(); - sendSvmTx(svm, [player1], tx, "ephemeral", "reveal round 1"); - console.log("✅ Round 1 Reveal TX Sent"); - - const gameAccount = decodeGame("ephemeral"); - printGameResult(gameAccount); - if (gameAccount.player1Wins !== 1 || gameAccount.player2Wins !== 0) { - throw new Error( - `❌ Expected score 1-0, got ${gameAccount.player1Wins}-${gameAccount.player2Wins}`, - ); - } - console.log( - `🏅 Score: ${gameAccount.player1Wins}-${gameAccount.player2Wins} (match in progress)`, - ); - }); - - it("Advance to Round 2 (score carries over)", async () => { - const tx = await program.methods - .nextRound() - .accountsPartial({ - game: gamePda, - player1Choice: player1ChoicePda, - player2Choice: player2ChoicePda, - permissionGame: permissionForGame, - permission1: permissionForPlayer1Choice, - permission2: permissionForPlayer2Choice, - payer: player2.publicKey, - permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: EPHEMERAL_VAULT_ID, - magicProgram: MAGIC_PROGRAM_ID, - }) - .transaction(); - sendSvmTx(svm, [player2], tx, "ephemeral", "next round"); - console.log("➡️ Advanced to round 2"); - - const gameAccount = decodeGame("ephemeral"); - if (!("none" in gameAccount.roundResult)) { - throw new Error("❌ Round result was not cleared"); - } - if (gameAccount.round !== 2) { - throw new Error(`❌ Expected round 2, got ${gameAccount.round}`); - } - if (gameAccount.player1Wins !== 1) { - throw new Error("❌ Score should carry over to round 2"); - } - console.log("✅ Round 2 ready, score preserved at 1-0"); - }); - - it("Round 2: both players make a choice (P1 Rock, P2 Scissors)", async () => { - const choices: Record = { - p1: { rock: {} }, - p2: { scissors: {} }, - }; - for (const [player, choicePda, key] of [ - [player1, player1ChoicePda, "p1"], - [player2, player2ChoicePda, "p2"], - ] as const) { - const choice = choices[key]; - const ix = await program.methods - .makeChoice(gameId, choice) - .accounts({ - // @ts-ignore - playerChoice: choicePda, - player: player.publicKey, - }) - .instruction(); - const tx = new Transaction().add(ix); - sendSvmTx(svm, [player], tx, "ephemeral", `round 2 ${key} choice`); - console.log( - `✅ Round 2: ${player.publicKey} chose ${JSON.stringify(choice)}`, - ); - } - }); - - it("Round 2: Sneak Player 2 Choice (private again after reset)", () => { - svm.setAuthorizedUser(player1.publicKey); - const accountInfo = svm.getAccountFor(player2ChoicePda, { - target: "ephemeral", - }); - if (!accountInfo.exists) { - console.log( - "✅ Player 2 choice hidden from Player 1 again — reset re-privatized it.", - ); - return; - } - throw new Error("❌ Player 2 choice readable after reset!"); - }); - - it("Round 2: Reveal Winner (Player 1 wins the match 2-0)", async () => { - const tx = await program.methods - .revealRound() - .accountsPartial({ - //@ts-ignore - game: gamePda, - player1Choice: player1ChoicePda, - player2Choice: player2ChoicePda, - permissionGame: permissionForGame, - permission1: permissionForPlayer1Choice, - permission2: permissionForPlayer2Choice, - payer: player1.publicKey, - permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: EPHEMERAL_VAULT_ID, - magicProgram: MAGIC_PROGRAM_ID, - }) - .transaction(); - sendSvmTx(svm, [player1], tx, "ephemeral", "reveal round 2"); - console.log("✅ Round 2 Reveal Winner TX Sent"); - - const gameAccount = decodeGame("ephemeral"); - printGameResult(gameAccount); - if (gameAccount.player1Wins !== 2) { - throw new Error( - `❌ Expected Player 1 at 2 wins, got ${gameAccount.player1Wins}`, - ); - } - console.log( - `🏆 Match decided ${gameAccount.player1Wins}-${gameAccount.player2Wins} after ${gameAccount.round} rounds`, - ); - }); - - it("Undelegate All (cleanup)", async () => { - const tx = await program.methods - .undelegateAll() - .accountsPartial({ - payer: player1.publicKey, - game: gamePda, - player1Choice: player1ChoicePda, - player2Choice: player2ChoicePda, - }) - .transaction(); - sendSvmTx(svm, [player1], tx, "ephemeral", "undelegate all"); - console.log(`🧹 All three PDAs committed + undelegated`); - }); - - it("Claim Pot (winner takes the stake)", async () => { - const info = svm.getAccountFor(gamePda, { target: "base" }); - if ( - !info.exists || - info.programAddress.toString() !== programId.toString() - ) { - throw new Error("❌ Game never came back to the base layer"); - } - - const game = program.coder.accounts.decode("game", Buffer.from(info.data)); - const vaultBefore = svm.getBalance(vaultPda); - console.log( - `🏦 Vault holds ${Number(vaultBefore ?? 0n) / 1_000_000_000} SOL (pot)`, - ); - - const winner = - "winner" in game.roundResult - ? (game.roundResult.winner["0"] as PublicKey) - : null; - const recipient = winner ?? player1.publicKey; - const balBefore = svm.getBalance(recipient) ?? 0n; - - const tx = await program.methods - .claimPot() - .accountsPartial({ - game: gamePda, - vault: vaultPda, - player1: player1.publicKey, - player2: player2.publicKey, - payer: player1.publicKey, - systemProgram: SystemProgram.programId, - }) - .transaction(); - sendSvmTx(svm, [player1], tx, "base", "claim pot"); - console.log("💰 Pot claimed"); - - const vaultAfter = svm.getBalance(vaultPda) ?? 0n; - const balAfter = svm.getBalance(recipient) ?? 0n; - const settledInfo = svm.getAccountFor(gamePda, { target: "base" }); - if (!settledInfo.exists) { - throw new Error("❌ Game missing after claim"); - } - const settled = program.coder.accounts.decode( - "game", - Buffer.from(settledInfo.data), - ); - - if (vaultAfter !== 0n) throw new Error("❌ Vault not fully drained"); - if (!settled.paid) throw new Error("❌ Game not marked paid"); - if (winner) { - const gained = balAfter - balBefore; - console.log( - `🏆 Winner net change: ${Number(gained) / 1_000_000_000} SOL`, - ); - if (gained <= 0n) throw new Error("❌ Winner did not receive the pot"); - } - console.log("✅ Pot paid out and game settled"); - }); -}); - -const choiceEmoji: Record = { - rock: "🪨 Rock", - paper: "📄 Paper", - scissors: "✂️ Scissors", -}; - -function fmtChoice(c: any): string { - if (!c) return "—"; - const key = Object.keys(c)[0]; - return choiceEmoji[key] ?? key; -} - -function fmtResult(result: any, p1: PublicKey, p2: PublicKey): string { - if (!result) return "—"; - if ("tie" in result) return "🤝 Tie"; - if ("none" in result) return "⏳ Not yet revealed"; - if ("winner" in result) { - const winner: PublicKey = result.winner["0"]; - const label = winner.equals(p1) - ? "Player 1" - : winner.equals(p2) - ? "Player 2" - : "Unknown"; - return `🏆 ${label} (${winner.toBase58()})`; - } - return JSON.stringify(result); -} - -function printGameResult(game: any) { - const p1 = game.player1 as PublicKey; - const p2 = game.player2 as PublicKey; - console.log("┌─────────────────────────────────────────────"); - console.log(`│ 🎲 Game #${game.gameId.toString()}`); - console.log( - `│ 👤 Player 1: ${p1.toBase58()} → ${fmtChoice(game.player1Choice)}`, - ); - console.log( - `│ 👤 Player 2: ${p2.toBase58()} → ${fmtChoice(game.player2Choice)}`, - ); - console.log(`│ Result: ${fmtResult(game.roundResult, p1, p2)}`); - console.log("└─────────────────────────────────────────────"); -} diff --git a/rock-paper-scissor/anchor/tests-magicsvm/tsconfig.json b/rock-paper-scissor/anchor/tests-magicsvm/tsconfig.json deleted file mode 100644 index 972d1bd6..00000000 --- a/rock-paper-scissor/anchor/tests-magicsvm/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": "../tsconfig.json", - "compilerOptions": { - "lib": ["es2020"], - "target": "es2020", - "module": "commonjs", - "esModuleInterop": true, - "resolveJsonModule": true, - "skipLibCheck": true, - "types": ["mocha", "chai", "node"] - } -} diff --git a/rock-paper-scissor/anchor/tests/rock-paper-scissor.ts b/rock-paper-scissor/anchor/tests/rock-paper-scissor.ts index b07183c3..2cec2086 100644 --- a/rock-paper-scissor/anchor/tests/rock-paper-scissor.ts +++ b/rock-paper-scissor/anchor/tests/rock-paper-scissor.ts @@ -1,209 +1,153 @@ import * as anchor from "@coral-xyz/anchor"; -import { sendAndConfirmTransaction } from "@solana/web3.js"; import { Program } from "@coral-xyz/anchor"; -import { AnchorRockPaperScissor } from "../target/types/anchor_rock_paper_scissor"; +import { + Keypair, + PublicKey, + SystemProgram, + Transaction, +} from "@solana/web3.js"; +import { MagicSVM } from "@magicblock-labs/magicsvm"; +import { + airdropOrThrow, + dummyAnchorProvider, + EPHEMERAL_VAULT_ID, + MAGIC_PROGRAM_ID, + PERMISSION_PROGRAM_ID, + permissionPdaFromAccount, + sendSvmTx, +} from "@magicblock-labs/test-utils"; import BN from "bn.js"; -import * as nacl from "tweetnacl"; +import * as path from "path"; import { - permissionPdaFromAccount, - getAuthToken, - getPermissionStatus, - waitUntilPermissionActive, AUTHORITY_FLAG, Member, TX_LOGS_FLAG, - PERMISSION_PROGRAM_ID, - MAGIC_PROGRAM_ID, } from "@magicblock-labs/ephemeral-rollups-sdk"; -const VAULT_ID = new anchor.web3.PublicKey( - "MagicVau1t999999999999999999999999999999999", +const PROGRAM_SO = path.resolve( + __dirname, + "../target/deploy/anchor_rock_paper_scissor.so", ); +const IDL = require("../target/idl/anchor_rock_paper_scissor.json"); -describe("anchor-rock-paper-scissor", () => { - // Configure the client. Falls back to devnet when PROVIDER_ENDPOINT is not - // set (scripts/local-env.sh points it at the local cluster). - let provider = anchor.AnchorProvider.local( - process.env.PROVIDER_ENDPOINT || "https://rpc.magicblock.app/devnet", - ); - anchor.setProvider(provider); - - let program = anchor.workspace - .AnchorRockPaperScissor as Program; - console.log("Program ID: ", program.programId.toString()); - - const ER_VALIDATOR = new anchor.web3.PublicKey( - process.env.VALIDATOR || "MTEWGuqxUpYZGFJQcp8tLN7x5v9BSeoFHYWQQ3n3xzo", - ); // TEE ER Validator - const player1 = provider.wallet.payer; - const player2 = anchor.web3.Keypair.generate(); - - // TEE endpoints per network: devnet → devnet-tee.magicblock.app (default, - // matching the devnet base-layer fallback), mainnet → mainnet-tee.magicblock.app. - // scripts/local-env.sh overrides these to route through the local QFS. - const teeUrl = - process.env.TEE_PROVIDER_ENDPOINT || "https://devnet-tee.magicblock.app"; - const teeWsUrl = - process.env.TEE_WS_ENDPOINT || "wss://devnet-tee.magicblock.app"; - const providerEphemeralRollup = new anchor.AnchorProvider( - new anchor.web3.Connection(teeUrl, { - wsEndpoint: teeWsUrl, - }), - anchor.Wallet.local(), - ); - console.log("Base Layer Connection: ", provider.connection.rpcEndpoint); - console.log( - "Ephemeral Rollup Connection: ", - providerEphemeralRollup.connection.rpcEndpoint, - ); +type Choice = { rock: {} } | { paper: {} } | { scissors: {} }; + +function encodeProgram(payer: Keypair): Program { + return new Program(IDL as anchor.Idl, dummyAnchorProvider(payer)); +} - // Random game ID (u64) - const gameId = new BN(Date.now()); - console.log("Game ID (u64):", gameId.toString()); +describe("anchor-rock-paper-scissor (magicsvm)", () => { + const svm = new MagicSVM(); + const player1 = Keypair.generate(); + const player2 = Keypair.generate(); + const programId = new PublicKey(IDL.address); + const validator = new PublicKey(svm.validatorIdentity().toString()); + const program = encodeProgram(player1); - // Per-player wager held in the game vault; winner takes the pot. + console.log("Program ID: ", programId.toString()); + console.log("MagicSVM validator identity: ", validator.toBase58()); + + const gameId = new BN(1); const STAKE = new BN(0.05 * anchor.web3.LAMPORTS_PER_SOL); - // Best-of-3 match: first to 2 round-wins takes the pot. const TARGET_WINS = 2; - // PDA seeds const GAME_SEED = Buffer.from("game"); const PLAYER_CHOICE_SEED = Buffer.from("player_choice"); const VAULT_SEED = Buffer.from("vault"); - // Derived PDAs - let [gamePda] = anchor.web3.PublicKey.findProgramAddressSync( + const [gamePda] = PublicKey.findProgramAddressSync( [GAME_SEED, gameId.toArrayLike(Buffer, "le", 8)], - program.programId, + programId, ); - let [vaultPda] = anchor.web3.PublicKey.findProgramAddressSync( + const [vaultPda] = PublicKey.findProgramAddressSync( [VAULT_SEED, gameId.toArrayLike(Buffer, "le", 8)], - program.programId, + programId, ); - let [player1ChoicePda] = anchor.web3.PublicKey.findProgramAddressSync( + const [player1ChoicePda] = PublicKey.findProgramAddressSync( [ PLAYER_CHOICE_SEED, gameId.toArrayLike(Buffer, "le", 8), player1.publicKey.toBuffer(), ], - program.programId, + programId, ); - let [player2ChoicePda] = anchor.web3.PublicKey.findProgramAddressSync( + const [player2ChoicePda] = PublicKey.findProgramAddressSync( [ PLAYER_CHOICE_SEED, gameId.toArrayLike(Buffer, "le", 8), player2.publicKey.toBuffer(), ], - program.programId, + programId, ); const permissionForGame = permissionPdaFromAccount(gamePda); const permissionForPlayer1Choice = permissionPdaFromAccount(player1ChoicePda); const permissionForPlayer2Choice = permissionPdaFromAccount(player2ChoicePda); - console.log("Game PDA:", gamePda.toBase58()); - console.log("Player1:", player1.publicKey.toBase58()); - console.log("Player1 Choice PDA:", player1ChoicePda.toBase58()); - console.log("Player2:", player2.publicKey.toBase58()); - console.log("Player2Choice PDA:", player2ChoicePda.toBase58()); - console.log("Permission PDA for Game:", permissionForGame.toString()); - console.log( - "Permission PDA for Player1 Choice:", - permissionForPlayer1Choice.toString(), - ); - console.log( - "Permission PDA for Player2 Choice:", - permissionForPlayer2Choice.toString(), - ); + function decodeGame(target: "base" | "ephemeral") { + const account = svm.getAccountFor(gamePda, { target }); + if (!account.exists) { + throw new Error(`game PDA missing on ${target}`); + } + return program.coder.accounts.decode("game", Buffer.from(account.data)); + } - // Helper: wait for a delegated PDA to land on the ER before sending init_permission. - const waitUntilOnEr = async ( - connection: anchor.web3.Connection, - pda: anchor.web3.PublicKey, - label: string, - ) => { - for (let i = 0; i < 20; i++) { - const info = await connection.getAccountInfo(pda); - if (info) return; - await new Promise((r) => setTimeout(r, 500)); + function decodeChoice(pda: PublicKey, target: "base" | "ephemeral") { + const account = svm.getAccountFor(pda, { target }); + if (!account.exists) { + return null; } - console.warn(`⚠️ ${label} not seen on ER after 10s`); - }; - - // Permission TEE AuthToken - let authTokenPlayer1: { token: string; expiresAt: number }; - let authTokenPlayer2: { token: string; expiresAt: number }; - let providerTeePlayer1: anchor.AnchorProvider; - let providerTeePlayer2: anchor.AnchorProvider; - - it("Airdrop SOL to Player 2", async () => { - const tx = new anchor.web3.Transaction().add( - anchor.web3.SystemProgram.transfer({ - fromPubkey: player1.publicKey, - toPubkey: player2.publicKey, - // enough for the stake + choice rent + delegation fees - lamports: 0.12 * anchor.web3.LAMPORTS_PER_SOL, - }), + return program.account.playerChoice.coder.accounts.decode( + "playerChoice", + Buffer.from(account.data), ); + } - await provider.sendAndConfirm(tx, [player1]); // player1 is wallet - const balance1 = await provider.connection.getBalance(player1.publicKey); - const balance2 = await provider.connection.getBalance(player2.publicKey); + it("Airdrop SOL to both players and load program", () => { + svm.addProgramFromFile(programId, PROGRAM_SO); + airdropOrThrow(svm, player1.publicKey, 2n * 1_000_000_000n); + airdropOrThrow(svm, player2.publicKey, 2n * 1_000_000_000n); + + const balance1 = svm.getBalance(player1.publicKey); + const balance2 = svm.getBalance(player2.publicKey); console.log( "💸 Player 1 Balance:", - balance1 / anchor.web3.LAMPORTS_PER_SOL, + Number(balance1) / 1_000_000_000, "SOL", ); console.log( "💸 Player 2 Balance:", - balance2 / anchor.web3.LAMPORTS_PER_SOL, + Number(balance2) / 1_000_000_000, "SOL", ); - // Get Auth Tokens if using TEE - authTokenPlayer1 = await getAuthToken( - teeUrl, - player1.publicKey, - (message: Uint8Array) => - Promise.resolve(nacl.sign.detached(message, player1.secretKey)), - ); + const permissionProgram = svm.getAccountFor(PERMISSION_PROGRAM_ID, { + target: "ephemeral", + }); console.log( - "Player 1 Explorer URL:", - `https://solscan.io/?cluster=custom&customUrl=${teeUrl}?token=${authTokenPlayer1.token}`, - ); - authTokenPlayer2 = await getAuthToken( - teeUrl, - player2.publicKey, - (message: Uint8Array) => - Promise.resolve(nacl.sign.detached(message, player2.secretKey)), - ); + "PERMISSION_PROGRAM_ID on ephemeral:", + permissionProgram.exists + ? `executable=${permissionProgram.executable}` + : "MISSING", + ); + const magicProgram = svm.getAccountFor(MAGIC_PROGRAM_ID, { + target: "ephemeral", + }); + const vault = svm.getAccountFor(EPHEMERAL_VAULT_ID, { + target: "ephemeral", + }); console.log( - "Player 2 Explorer URL:", - `https://solscan.io/?cluster=custom&customUrl=${teeUrl}?token=${authTokenPlayer2.token}`, - ); - // Always append ?token=… — EPHEMERAL_PROVIDER_ENDPOINT (set by CI / - // test-locally.sh) is the bare TEE base URL, not a pre-tokenized URL. - const teeBase = teeUrl.replace(/\/$/, ""); - const teeWsBase = teeWsUrl.replace(/\/$/, ""); - providerTeePlayer1 = new anchor.AnchorProvider( - new anchor.web3.Connection(`${teeBase}?token=${authTokenPlayer1.token}`, { - wsEndpoint: `${teeWsBase}?token=${authTokenPlayer1.token}`, - }), - anchor.Wallet.local(), + "MAGIC_PROGRAM_ID on ephemeral:", + magicProgram.exists ? `executable=${magicProgram.executable}` : "MISSING", ); - providerTeePlayer2 = new anchor.AnchorProvider( - new anchor.web3.Connection(`${teeBase}?token=${authTokenPlayer2.token}`, { - wsEndpoint: `${teeWsBase}?token=${authTokenPlayer2.token}`, - }), - anchor.Wallet.local(), + console.log( + "ephemeral vault on ephemeral:", + vault.exists ? `lamports=${vault.lamports}` : "MISSING", ); }); it("Create Game by Player 1 (base: create + delegate p1_choice)", async () => { - // create_game pre-funds the game + p1_choice PDAs with ephemeral permission - // rent. We delegate p1_choice now, but the game stays on base until player 2 - // joins — join_game needs the game to still be owned by our program. const createGameIx = await program.methods .createGame(gameId, STAKE, TARGET_WINS) .accountsPartial({ @@ -211,7 +155,7 @@ describe("anchor-rock-paper-scissor", () => { playerChoice: player1ChoicePda, vault: vaultPda, player1: player1.publicKey, - systemProgram: anchor.web3.SystemProgram.programId, + systemProgram: SystemProgram.programId, }) .instruction(); @@ -219,36 +163,22 @@ describe("anchor-rock-paper-scissor", () => { .delegatePda({ playerChoice: { gameId, player: player1.publicKey } }) .accounts({ payer: player1.publicKey, - validator: ER_VALIDATOR, + validator, pda: player1ChoicePda, }) .instruction(); - const tx = new anchor.web3.Transaction().add( - createGameIx, - delegatePlayer1ChoiceIx, - ); - tx.feePayer = provider.wallet.publicKey; - const txHash = await sendAndConfirmTransaction( - provider.connection, - tx, - [provider.wallet.payer], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - console.log("✅ Game Created + P1 Choice Delegated:", txHash); + const tx = new Transaction().add(createGameIx, delegatePlayer1ChoiceIx); + sendSvmTx(svm, [player1], tx, "base", "create game + delegate p1 choice"); + console.log("✅ Game Created + P1 Choice Delegated"); }); it("Init ephemeral permission for Player 1 Choice (ER)", async () => { - await waitUntilOnEr( - providerTeePlayer1.connection, - player1ChoicePda, - "player1_choice", - ); + const onEr = svm.getAccountFor(player1ChoicePda, { target: "ephemeral" }); + if (!onEr.exists) { + throw new Error("player1_choice not on ER after delegation"); + } - // Player 1 Choice permission: private to [p1] only — p2 can't sneak a peek const p1Members: Member[] = [ { flags: AUTHORITY_FLAG | TX_LOGS_FLAG, pubkey: player1.publicKey }, ]; @@ -262,33 +192,24 @@ describe("anchor-rock-paper-scissor", () => { permission: permissionForPlayer1Choice, authority: player1.publicKey, permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: VAULT_ID, + ephemeralVault: EPHEMERAL_VAULT_ID, magicProgram: MAGIC_PROGRAM_ID, }) .instruction(); - const tx = new anchor.web3.Transaction().add(initP1ChoicePermissionIx); - tx.feePayer = player1.publicKey; - tx.recentBlockhash = ( - await providerTeePlayer1.connection.getLatestBlockhash() - ).blockhash; - const txHash = await sendAndConfirmTransaction( - providerTeePlayer1.connection, - tx, - [player1], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - console.log("✅ P1 Choice permission initialized:", txHash); + const tx = new Transaction().add(initP1ChoicePermissionIx); + sendSvmTx(svm, [player1], tx, "ephemeral", "init p1 choice permission"); + console.log("✅ P1 Choice permission initialized"); - const p1Result = await waitUntilPermissionActive(teeUrl, player1ChoicePda); - console.log( - p1Result - ? "✅ Player 1 Choice permission active" - : "❌ Player 1 Choice permission not active", - ); + const permission = svm.getAccountFor(permissionForPlayer1Choice, { + target: "ephemeral", + }); + if (!permission.exists) { + throw new Error( + "Player 1 Choice permission never activated in-process (waitUntilPermissionActive equivalent)", + ); + } + console.log("✅ Player 1 Choice permission active"); }); it("Join Game (Player 2) — base: join + delegate game + delegate p2_choice", async () => { @@ -299,16 +220,15 @@ describe("anchor-rock-paper-scissor", () => { playerChoice: player2ChoicePda, vault: vaultPda, player: player2.publicKey, - systemProgram: anchor.web3.SystemProgram.programId, + systemProgram: SystemProgram.programId, }) .instruction(); - // Now that both players are recorded on the game, delegate the game itself. const delegateGameIx = await program.methods .delegatePda({ game: { gameId } }) .accounts({ payer: player2.publicKey, - validator: ER_VALIDATOR, + validator, pda: gamePda, }) .instruction(); @@ -317,40 +237,36 @@ describe("anchor-rock-paper-scissor", () => { .delegatePda({ playerChoice: { gameId, player: player2.publicKey } }) .accounts({ payer: player2.publicKey, - validator: ER_VALIDATOR, + validator, pda: player2ChoicePda, }) .instruction(); - const tx = new anchor.web3.Transaction().add( + const tx = new Transaction().add( joinGameIx, delegateGameIx, delegatePlayer2ChoiceIx, ); - tx.feePayer = player2.publicKey; - const txHash = await sendAndConfirmTransaction( - provider.connection, - tx, + sendSvmTx( + svm, [player2], - { - skipPreflight: true, - commitment: "confirmed", - }, + tx, + "base", + "join game + delegate game + p2 choice", ); console.log( - `✅ Player 2 joined game ${gameId} + delegated game + p2 choice: ${txHash}`, + `✅ Player 2 joined game ${gameId} + delegated game + p2 choice`, ); }); it("Init ephemeral permissions for Game + Player 2 Choice (ER)", async () => { - await waitUntilOnEr(providerTeePlayer2.connection, gamePda, "game"); - await waitUntilOnEr( - providerTeePlayer2.connection, - player2ChoicePda, - "player2_choice", - ); + if (!svm.getAccountFor(gamePda, { target: "ephemeral" }).exists) { + throw new Error("game not on ER after delegation"); + } + if (!svm.getAccountFor(player2ChoicePda, { target: "ephemeral" }).exists) { + throw new Error("player2_choice not on ER after delegation"); + } - // Game permission: private to [p1, p2] (both can see game state during play) const gameMembers: Member[] = [ { flags: AUTHORITY_FLAG | TX_LOGS_FLAG, pubkey: player1.publicKey }, { flags: AUTHORITY_FLAG | TX_LOGS_FLAG, pubkey: player2.publicKey }, @@ -362,12 +278,11 @@ describe("anchor-rock-paper-scissor", () => { permission: permissionForGame, authority: player2.publicKey, permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: VAULT_ID, + ephemeralVault: EPHEMERAL_VAULT_ID, magicProgram: MAGIC_PROGRAM_ID, }) .instruction(); - // Player 2 Choice permission: private to [p2] only — p1 can't sneak a peek const p2Members: Member[] = [ { flags: AUTHORITY_FLAG | TX_LOGS_FLAG, pubkey: player2.publicKey }, ]; @@ -381,40 +296,35 @@ describe("anchor-rock-paper-scissor", () => { permission: permissionForPlayer2Choice, authority: player2.publicKey, permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: VAULT_ID, + ephemeralVault: EPHEMERAL_VAULT_ID, magicProgram: MAGIC_PROGRAM_ID, }) .instruction(); - const tx = new anchor.web3.Transaction().add( + const tx = new Transaction().add( initGamePermissionIx, initP2ChoicePermissionIx, ); - tx.feePayer = player2.publicKey; - tx.recentBlockhash = ( - await providerTeePlayer2.connection.getLatestBlockhash() - ).blockhash; - const txHash = await sendAndConfirmTransaction( - providerTeePlayer2.connection, - tx, + sendSvmTx( + svm, [player2], - { - skipPreflight: true, - commitment: "confirmed", - }, + tx, + "ephemeral", + "init game + p2 choice permissions", ); - console.log(`✅ Game + P2 Choice permissions initialized: ${txHash}`); + console.log("✅ Game + P2 Choice permissions initialized"); - const result = await waitUntilPermissionActive(teeUrl, player2ChoicePda); - console.log( - result - ? "✅ Player 2 Choice permission active" - : "❌ Player 2 Choice permission not active", - ); + const permission = svm.getAccountFor(permissionForPlayer2Choice, { + target: "ephemeral", + }); + if (!permission.exists) { + throw new Error( + "Player 2 Choice permission never activated in-process (waitUntilPermissionActive equivalent)", + ); + } + console.log("✅ Player 2 Choice permission active"); }); - // Deterministic best-of-3 match: Player 1 throws Rock, Player 2 Scissors, - // so Player 1 wins every round and takes the match 2-0. it("Round 1: Player 1 Makes Choice (Rock)", async () => { const choice: Choice = { rock: {} }; const makeChoice1Ix = await program.methods @@ -426,24 +336,10 @@ describe("anchor-rock-paper-scissor", () => { }) .instruction(); - let tx = new anchor.web3.Transaction().add(makeChoice1Ix); - - tx.feePayer = player1.publicKey; - tx.recentBlockhash = ( - await providerTeePlayer1.connection.getLatestBlockhash() - ).blockhash; - const txHash = await sendAndConfirmTransaction( - providerTeePlayer1.connection, - tx, - [player1], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - + const tx = new Transaction().add(makeChoice1Ix); + sendSvmTx(svm, [player1], tx, "ephemeral", "p1 make choice"); console.log( - `✅ Player 1 ${player1.publicKey} chose ${JSON.stringify(choice)}: ${txHash}`, + `✅ Player 1 ${player1.publicKey} chose ${JSON.stringify(choice)}`, ); }); @@ -458,78 +354,57 @@ describe("anchor-rock-paper-scissor", () => { }) .instruction(); - let tx = new anchor.web3.Transaction().add(makeChoice2Ix); - - tx.feePayer = player2.publicKey; - tx.recentBlockhash = ( - await providerTeePlayer2.connection.getLatestBlockhash() - ).blockhash; - const txHash = await sendAndConfirmTransaction( - providerTeePlayer2.connection, - tx, - [player2], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - + const tx = new Transaction().add(makeChoice2Ix); + sendSvmTx(svm, [player2], tx, "ephemeral", "p2 make choice"); console.log( - `✅ Player 2 ${player2.publicKey} chose ${JSON.stringify(choice)}: ${txHash}`, + `✅ Player 2 ${player2.publicKey} chose ${JSON.stringify(choice)}`, ); }); - it("Player 1 checks own choice", async () => { - const accountInfo = - await providerTeePlayer1.connection.getAccountInfo(player1ChoicePda); - const player1ChoiceData = accountInfo.data; - const player1ChoiceAccount = - program.account.playerChoice.coder.accounts.decode( - "playerChoice", - player1ChoiceData, - ); + it("Player 1 checks own choice", () => { + svm.setAuthorizedUser(player1.publicKey); + const player1ChoiceAccount = decodeChoice(player1ChoicePda, "ephemeral"); + if (!player1ChoiceAccount) { + throw new Error("Player 1 cannot read own choice"); + } console.log(`👀 Check Player 1 own Choice:`, player1ChoiceAccount.choice); }); - it("Player 2 check own choice", async () => { - const accountInfo = - await providerTeePlayer2.connection.getAccountInfo(player2ChoicePda); - const player2ChoiceData = accountInfo.data; - const player2ChoiceAccount = - program.account.playerChoice.coder.accounts.decode( - "playerChoice", - player2ChoiceData, - ); + it("Player 2 check own choice", () => { + svm.setAuthorizedUser(player2.publicKey); + const player2ChoiceAccount = decodeChoice(player2ChoicePda, "ephemeral"); + if (!player2ChoiceAccount) { + throw new Error("Player 2 cannot read own choice"); + } console.log(`👀 Check Player 2 own Choice:`, player2ChoiceAccount.choice); }); - it("Sneak Player 1 Choice", async () => { - await getPermissionStatus(teeUrl, player1ChoicePda); - const accountInfo = - await providerTeePlayer2.connection.getAccountInfo(player1ChoicePda); - if (accountInfo === null) { + it("Sneak Player 1 Choice", () => { + svm.setAuthorizedUser(player2.publicKey); + const accountInfo = svm.getAccountFor(player1ChoicePda, { + target: "ephemeral", + }); + if (!accountInfo.exists) { console.log(`✅ Player 1 choice account not found — as expected.`); - return; // test passes + return; } - // You can optionally fail if account *shouldn't* exist: throw new Error("❌ Player 1 choice account exists unexpectedly!"); }); - it("Sneak Player 2 Choice", async () => { - await getPermissionStatus(teeUrl, player2ChoicePda); - const accountInfo = - await providerTeePlayer1.connection.getAccountInfo(player2ChoicePda); - // Assert that accountInfo is null (account not found) - if (accountInfo === null) { + it("Sneak Player 2 Choice", () => { + svm.setAuthorizedUser(player1.publicKey); + const accountInfo = svm.getAccountFor(player2ChoicePda, { + target: "ephemeral", + }); + if (!accountInfo.exists) { console.log("✅ Player 2 choice account not found — as expected."); - return; // test passes + return; } - // You can optionally fail if account *shouldn't* exist: throw new Error("❌ Player 2 choice account exists unexpectedly!"); }); it("Round 1: Reveal Winner (Player 1 leads 1-0)", async () => { - let tx = await program.methods + const tx = await program.methods .revealRound() .accountsPartial({ //@ts-ignore @@ -541,25 +416,14 @@ describe("anchor-rock-paper-scissor", () => { permission2: permissionForPlayer2Choice, payer: player1.publicKey, permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: VAULT_ID, + ephemeralVault: EPHEMERAL_VAULT_ID, magicProgram: MAGIC_PROGRAM_ID, }) .transaction(); - tx.feePayer = player1.publicKey; - const txHash = await sendAndConfirmTransaction( - providerTeePlayer1.connection, - tx, - [player1], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - console.log("✅ Round 1 Reveal TX Sent:", txHash); + sendSvmTx(svm, [player1], tx, "ephemeral", "reveal round 1"); + console.log("✅ Round 1 Reveal TX Sent"); - const accountInfo = - await providerTeePlayer1.connection.getAccountInfo(gamePda); - const gameAccount = program.coder.accounts.decode("game", accountInfo.data); + const gameAccount = decodeGame("ephemeral"); printGameResult(gameAccount); if (gameAccount.player1Wins !== 1 || gameAccount.player2Wins !== 0) { throw new Error( @@ -571,8 +435,6 @@ describe("anchor-rock-paper-scissor", () => { ); }); - // Best-of-3 isn't decided at 1-0, so reset_game ADVANCES to round 2 and - // keeps the score (no new accounts, no extra rent). it("Advance to Round 2 (score carries over)", async () => { const tx = await program.methods .nextRound() @@ -585,28 +447,14 @@ describe("anchor-rock-paper-scissor", () => { permission2: permissionForPlayer2Choice, payer: player2.publicKey, permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: VAULT_ID, + ephemeralVault: EPHEMERAL_VAULT_ID, magicProgram: MAGIC_PROGRAM_ID, }) .transaction(); - tx.feePayer = player2.publicKey; - tx.recentBlockhash = ( - await providerTeePlayer2.connection.getLatestBlockhash() - ).blockhash; - const txHash = await sendAndConfirmTransaction( - providerTeePlayer2.connection, - tx, - [player2], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - console.log("➡️ Advanced to round 2:", txHash); + sendSvmTx(svm, [player2], tx, "ephemeral", "next round"); + console.log("➡️ Advanced to round 2"); - const accountInfo = - await providerTeePlayer2.connection.getAccountInfo(gamePda); - const gameAccount = program.coder.accounts.decode("game", accountInfo.data); + const gameAccount = decodeGame("ephemeral"); if (!("none" in gameAccount.roundResult)) { throw new Error("❌ Round result was not cleared"); } @@ -624,9 +472,9 @@ describe("anchor-rock-paper-scissor", () => { p1: { rock: {} }, p2: { scissors: {} }, }; - for (const [player, choicePda, teeProvider, key] of [ - [player1, player1ChoicePda, providerTeePlayer1, "p1"], - [player2, player2ChoicePda, providerTeePlayer2, "p2"], + for (const [player, choicePda, key] of [ + [player1, player1ChoicePda, "p1"], + [player2, player2ChoicePda, "p2"], ] as const) { const choice = choices[key]; const ix = await program.methods @@ -637,30 +485,20 @@ describe("anchor-rock-paper-scissor", () => { player: player.publicKey, }) .instruction(); - const tx = new anchor.web3.Transaction().add(ix); - tx.feePayer = player.publicKey; - tx.recentBlockhash = ( - await teeProvider.connection.getLatestBlockhash() - ).blockhash; - const txHash = await sendAndConfirmTransaction( - teeProvider.connection, - tx, - [player], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); + const tx = new Transaction().add(ix); + sendSvmTx(svm, [player], tx, "ephemeral", `round 2 ${key} choice`); console.log( - `✅ Round 2: ${player.publicKey} chose ${JSON.stringify(choice)}: ${txHash}`, + `✅ Round 2: ${player.publicKey} chose ${JSON.stringify(choice)}`, ); } }); - it("Round 2: Sneak Player 2 Choice (private again after reset)", async () => { - const accountInfo = - await providerTeePlayer1.connection.getAccountInfo(player2ChoicePda); - if (accountInfo === null) { + it("Round 2: Sneak Player 2 Choice (private again after reset)", () => { + svm.setAuthorizedUser(player1.publicKey); + const accountInfo = svm.getAccountFor(player2ChoicePda, { + target: "ephemeral", + }); + if (!accountInfo.exists) { console.log( "✅ Player 2 choice hidden from Player 1 again — reset re-privatized it.", ); @@ -682,25 +520,14 @@ describe("anchor-rock-paper-scissor", () => { permission2: permissionForPlayer2Choice, payer: player1.publicKey, permissionProgram: PERMISSION_PROGRAM_ID, - ephemeralVault: VAULT_ID, + ephemeralVault: EPHEMERAL_VAULT_ID, magicProgram: MAGIC_PROGRAM_ID, }) .transaction(); - tx.feePayer = player1.publicKey; - const txHash = await sendAndConfirmTransaction( - providerTeePlayer1.connection, - tx, - [player1], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - console.log("✅ Round 2 Reveal Winner TX Sent:", txHash); + sendSvmTx(svm, [player1], tx, "ephemeral", "reveal round 2"); + console.log("✅ Round 2 Reveal Winner TX Sent"); - const accountInfo = - await providerTeePlayer1.connection.getAccountInfo(gamePda); - const gameAccount = program.coder.accounts.decode("game", accountInfo.data); + const gameAccount = decodeGame("ephemeral"); printGameResult(gameAccount); if (gameAccount.player1Wins !== 2) { throw new Error( @@ -712,9 +539,6 @@ describe("anchor-rock-paper-scissor", () => { ); }); - // Cleanup: commit + undelegate game + both player_choices in a single ix so - // all three PDAs return to the base layer atomically and the test cycle can - // be repeated against a clean ER state. it("Undelegate All (cleanup)", async () => { const tx = await program.methods .undelegateAll() @@ -725,48 +549,31 @@ describe("anchor-rock-paper-scissor", () => { player2Choice: player2ChoicePda, }) .transaction(); - tx.feePayer = player1.publicKey; - const txHash = await sendAndConfirmTransaction( - providerTeePlayer1.connection, - tx, - [player1], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - console.log(`🧹 All three PDAs committed + undelegated: ${txHash}`); + sendSvmTx(svm, [player1], tx, "ephemeral", "undelegate all"); + console.log(`🧹 All three PDAs committed + undelegated`); }); - // Pay out the pot on the base layer once the game is back from the ER. it("Claim Pot (winner takes the stake)", async () => { - // Wait for the game to land back on the base layer (owned by our program). - let onBase = false; - for (let i = 0; i < 30; i++) { - const info = await provider.connection.getAccountInfo(gamePda); - if (info && info.owner.equals(program.programId)) { - onBase = true; - break; - } - await new Promise((r) => setTimeout(r, 1000)); + const info = svm.getAccountFor(gamePda, { target: "base" }); + if ( + !info.exists || + info.programAddress.toString() !== programId.toString() + ) { + throw new Error("❌ Game never came back to the base layer"); } - if (!onBase) throw new Error("❌ Game never came back to the base layer"); - const game = program.coder.accounts.decode( - "game", - (await provider.connection.getAccountInfo(gamePda)).data, - ); - const vaultBefore = await provider.connection.getBalance(vaultPda); + const game = program.coder.accounts.decode("game", Buffer.from(info.data)); + const vaultBefore = svm.getBalance(vaultPda); console.log( - `🏦 Vault holds ${vaultBefore / anchor.web3.LAMPORTS_PER_SOL} SOL (pot)`, + `🏦 Vault holds ${Number(vaultBefore ?? 0n) / 1_000_000_000} SOL (pot)`, ); const winner = "winner" in game.roundResult - ? (game.roundResult.winner["0"] as anchor.web3.PublicKey) + ? (game.roundResult.winner["0"] as PublicKey) : null; const recipient = winner ?? player1.publicKey; - const balBefore = await provider.connection.getBalance(recipient); + const balBefore = svm.getBalance(recipient) ?? 0n; const tx = await program.methods .claimPot() @@ -776,77 +583,56 @@ describe("anchor-rock-paper-scissor", () => { player1: player1.publicKey, player2: player2.publicKey, payer: player1.publicKey, - systemProgram: anchor.web3.SystemProgram.programId, + systemProgram: SystemProgram.programId, }) .transaction(); - tx.feePayer = player1.publicKey; - const txHash = await sendAndConfirmTransaction( - provider.connection, - tx, - [player1], - { skipPreflight: true, commitment: "confirmed" }, - ); - console.log("💰 Pot claimed:", txHash); - - const vaultAfter = await provider.connection.getBalance(vaultPda); - const balAfter = await provider.connection.getBalance(recipient); + sendSvmTx(svm, [player1], tx, "base", "claim pot"); + console.log("💰 Pot claimed"); + + const vaultAfter = svm.getBalance(vaultPda) ?? 0n; + const balAfter = svm.getBalance(recipient) ?? 0n; + const settledInfo = svm.getAccountFor(gamePda, { target: "base" }); + if (!settledInfo.exists) { + throw new Error("❌ Game missing after claim"); + } const settled = program.coder.accounts.decode( "game", - (await provider.connection.getAccountInfo(gamePda)).data, + Buffer.from(settledInfo.data), ); - if (vaultAfter !== 0) throw new Error("❌ Vault not fully drained"); + if (vaultAfter !== 0n) throw new Error("❌ Vault not fully drained"); if (!settled.paid) throw new Error("❌ Game not marked paid"); if (winner) { - // winner gains ~2*STAKE (minus the fee they paid as the claim payer) const gained = balAfter - balBefore; console.log( - `🏆 Winner net change: ${gained / anchor.web3.LAMPORTS_PER_SOL} SOL`, + `🏆 Winner net change: ${Number(gained) / 1_000_000_000} SOL`, ); - if (gained <= 0) throw new Error("❌ Winner did not receive the pot"); + if (gained <= 0n) throw new Error("❌ Winner did not receive the pot"); } console.log("✅ Pot paid out and game settled"); }); }); -type Choice = { rock: {} } | { paper: {} } | { scissors: {} }; - -function getRandomChoice(): Choice { - const random = Math.floor(Math.random() * 3); - switch (random) { - case 0: - return { rock: {} }; - case 1: - return { paper: {} }; - case 2: - return { scissors: {} }; - default: - throw new Error("Invalid random value"); - } -} - const choiceEmoji: Record = { rock: "🪨 Rock", paper: "📄 Paper", scissors: "✂️ Scissors", }; -function fmtChoice(c: any): string { - if (!c) return "—"; +function fmtChoice(c: unknown): string { + if (!c || typeof c !== "object") return "—"; const key = Object.keys(c)[0]; return choiceEmoji[key] ?? key; } -function fmtResult( - result: any, - p1: anchor.web3.PublicKey, - p2: anchor.web3.PublicKey, -): string { - if (!result) return "—"; +function fmtResult(result: unknown, p1: PublicKey, p2: PublicKey): string { + if (!result || typeof result !== "object") return "—"; if ("tie" in result) return "🤝 Tie"; if ("none" in result) return "⏳ Not yet revealed"; if ("winner" in result) { - const winner: anchor.web3.PublicKey = result.winner["0"]; + const winnerResult = result.winner; + if (!winnerResult || typeof winnerResult !== "object") return "—"; + const winner = (winnerResult as Record)["0"]; const label = winner.equals(p1) ? "Player 1" : winner.equals(p2) @@ -857,9 +643,16 @@ function fmtResult( return JSON.stringify(result); } -function printGameResult(game: any) { - const p1 = game.player1 as anchor.web3.PublicKey; - const p2 = game.player2 as anchor.web3.PublicKey; +function printGameResult(game: { + gameId: { toString(): string }; + player1: PublicKey; + player2: PublicKey; + player1Choice: unknown; + player2Choice: unknown; + roundResult: unknown; +}) { + const p1 = game.player1; + const p2 = game.player2; console.log("┌─────────────────────────────────────────────"); console.log(`│ 🎲 Game #${game.gameId.toString()}`); console.log( diff --git a/rock-paper-scissor/anchor/tsconfig.json b/rock-paper-scissor/anchor/tsconfig.json index d93d6f9e..34e670ff 100644 --- a/rock-paper-scissor/anchor/tsconfig.json +++ b/rock-paper-scissor/anchor/tsconfig.json @@ -1,11 +1,12 @@ { "compilerOptions": { - "types": ["mocha", "chai"], + "types": ["mocha", "chai", "node"], "typeRoots": ["./node_modules/@types"], "lib": ["es2020"], "module": "commonjs", "target": "es2020", "esModuleInterop": true, + "resolveJsonModule": true, "skipLibCheck": true } } diff --git a/session-keys/anchor/Anchor.toml b/session-keys/anchor/Anchor.toml index afd168d9..ad71a992 100644 --- a/session-keys/anchor/Anchor.toml +++ b/session-keys/anchor/Anchor.toml @@ -20,4 +20,4 @@ cluster = "devnet" wallet = "~/.config/solana/id.json" [scripts] -test = "yarn run ts-mocha -p ./tsconfig.json -t 1000000 tests/anchor-counter-session.ts" \ No newline at end of file +test = "yarn test" diff --git a/session-keys/anchor/README.md b/session-keys/anchor/README.md index c803d25a..efaed83c 100644 --- a/session-keys/anchor/README.md +++ b/session-keys/anchor/README.md @@ -30,23 +30,17 @@ yarn yarn build ``` -This example runs against a **local MagicBlock cluster** — a base Solana validator plus an Ephemeral Rollup, fronted by the Query Filtering Service. Start it in one terminal and leave it running: +Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash -yarn setup +yarn test ``` -`yarn setup` runs `SETUP_ONLY=1 ./scripts/test-locally.sh session-keys` from the repo root: it builds this example, boots the validators, and holds them until you press a key. +MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no validators, no +network. The suite creates and revokes a session while exercising counter delegation, commits, and +undelegation through that session. -Then, in a second terminal, run this example's tests against that cluster: - -```bash -yarn test:local -``` - -`test:local` sources `scripts/local-env.sh` so the SDK targets the local cluster (without it the tests fall back to devnet). - -> Tip: to build and run **every** example end-to-end (what CI does), run the repo-root `./scripts/test-locally.sh` directly. +A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. ## 🔑 Session Keys diff --git a/session-keys/anchor/package.json b/session-keys/anchor/package.json index 79626212..76dba66b 100644 --- a/session-keys/anchor/package.json +++ b/session-keys/anchor/package.json @@ -2,12 +2,9 @@ "scripts": { "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", - "test": "yarn test:local", - "build": "anchor keys sync && anchor build", - "test:local": ". ../../scripts/local-env.sh && npx ts-mocha -p ./tsconfig.json -t 1000000 tests/anchor-counter-session.ts", - "test:magicsvm": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests-magicsvm/anchor-counter-session.ts", - "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture", - "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh session-keys" + "test": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests/anchor-counter-session.ts", + "build": "anchor build --ignore-keys", + "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture" }, "dependencies": { "@coral-xyz/anchor": "0.32.1", diff --git a/session-keys/anchor/programs/anchor-counter-session/src/lib.rs b/session-keys/anchor/programs/anchor-counter-session/src/lib.rs index ccfa56ab..628a7709 100644 --- a/session-keys/anchor/programs/anchor-counter-session/src/lib.rs +++ b/session-keys/anchor/programs/anchor-counter-session/src/lib.rs @@ -5,7 +5,7 @@ use ephemeral_rollups_sdk::ephem::{MagicIntentBundleBuilder}; use session_keys::{session_auth_or, Session, SessionError, SessionTokenV2}; -declare_id!("8bZfCCsRTV15b3Au6sit1tfnFiWtsfH8NqJ491F5sHWR"); +declare_id!("DX9zogRDKEpuVVocvXWG9U7RD6RrSqLqdkhwoQVz3MBd"); pub const COUNTER_SEED: &[u8] = b"counter"; diff --git a/session-keys/anchor/tests-magicsvm/anchor-counter-session.ts b/session-keys/anchor/tests-magicsvm/anchor-counter-session.ts deleted file mode 100644 index 51de2977..00000000 --- a/session-keys/anchor/tests-magicsvm/anchor-counter-session.ts +++ /dev/null @@ -1,199 +0,0 @@ -import * as anchor from "@coral-xyz/anchor"; -import { web3 } from "@coral-xyz/anchor"; -import { - accountOwner, - bootAnchorSvm, - isDelegated, - readU64le, - sendSvmTx, - setUnixTimestamp, - validatorRemainingAccount, -} from "@magicblock-labs/test-utils"; -import { SessionTokenManager } from "@magicblock-labs/gum-sdk"; -import { LAMPORTS_PER_SOL, PublicKey } from "@solana/web3.js"; -import assert from "assert"; -import * as path from "path"; -import { AnchorCounterSession } from "../target/types/anchor_counter_session"; - -const COUNTER_SEED = "counter"; -const SESSION_TOKEN_SEED = "session_token_v2"; -const SESSION_PROGRAM_ID = "KeyspM2ssCJbqUhQ4k7sveSiY4WjnYsrXkC8oDbwde5"; - -describe("anchor-counter-session magicsvm", () => { - const sessionKeypair = web3.Keypair.generate(); - const { svm, payer, program, validator } = - bootAnchorSvm({ - fromDir: __dirname, - programName: "anchor_counter_session", - airdropLamports: BigInt(2 * LAMPORTS_PER_SOL), - extraPrograms: [ - { - id: new PublicKey(SESSION_PROGRAM_ID), - so: path.resolve(__dirname, "fixtures", "session-keys.so"), - }, - ], - }); - setUnixTimestamp(svm); - - const [counterPDA] = web3.PublicKey.findProgramAddressSync( - [Buffer.from(COUNTER_SEED), payer.publicKey.toBuffer()], - program.programId, - ); - - const sessionTokenManager = new SessionTokenManager( - new anchor.Wallet(web3.Keypair.fromSecretKey(payer.secretKey)), - new web3.Connection("http://127.0.0.1:8899"), - ); - const sessionTokenPDA = web3.PublicKey.findProgramAddressSync( - [ - Buffer.from(SESSION_TOKEN_SEED), - program.programId.toBytes(), - sessionKeypair.publicKey.toBytes(), - payer.publicKey.toBytes(), - ], - sessionTokenManager.program.programId, - )[0]; - - console.log("Program ID: ", program.programId.toString()); - console.log("Counter PDA: ", counterPDA.toString()); - console.log( - "Session Signer Public Key: ", - sessionKeypair.publicKey.toString(), - ); - console.log("Session Token PDA: ", sessionTokenPDA.toString()); - console.log("Validator identity: ", validator.toString()); - - it("Create session on Solana", async () => { - const topUp = true; - const validUntilBN = new anchor.BN(Math.floor(Date.now() / 1000) + 3600); - const topUpLamportsBN = new anchor.BN(0.005 * LAMPORTS_PER_SOL); - - const tx = await sessionTokenManager.program.methods - .createSessionV2(topUp, validUntilBN, topUpLamportsBN) - .accounts({ - targetProgram: program.programId, - sessionSigner: sessionKeypair.publicKey, - feePayer: payer.publicKey, - authority: payer.publicKey, - }) - .transaction(); - sendSvmTx(svm, [payer, sessionKeypair], tx, "base", "createSessionV2"); - - const sessionAccount = svm.getAccount(sessionTokenPDA); - assert.ok(sessionAccount.exists, "session token missing on base"); - assert.equal( - sessionAccount.programAddress.toString(), - sessionTokenManager.program.programId.toString(), - ); - }); - - it("Initialize counter on Solana", async () => { - const tx = await program.methods - .initialize() - .accounts({ - user: payer.publicKey, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "base", "initialize"); - assert.equal(readU64le(svm, counterPDA, "base", 40), 0n); - }); - - it("Increase counter on Solana", async () => { - const tx = await program.methods - .increment() - .accounts({ - counter: counterPDA, - sessionToken: sessionTokenPDA, - payer: sessionKeypair.publicKey, - }) - .transaction(); - sendSvmTx(svm, [sessionKeypair], tx, "base", "increment (base)"); - assert.equal(readU64le(svm, counterPDA, "base", 40), 1n); - }); - - it("Delegate counter to ER", async () => { - const tx = await program.methods - .delegate() - .accounts({ - payer: sessionKeypair.publicKey, - pda: counterPDA, - sessionToken: sessionTokenPDA, - }) - .remainingAccounts([validatorRemainingAccount(svm)]) - .transaction(); - sendSvmTx(svm, [sessionKeypair], tx, "base", "delegate"); - assert.ok(isDelegated(svm, counterPDA)); - }); - - it("Increase counter on ER", async () => { - const tx = await program.methods - .increment() - .accounts({ - counter: counterPDA, - sessionToken: sessionTokenPDA, - payer: sessionKeypair.publicKey, - }) - .transaction(); - sendSvmTx(svm, [sessionKeypair], tx, "ephemeral", "increment (ER)"); - assert.equal(readU64le(svm, counterPDA, "ephemeral", 40), 2n); - }); - - it("Commit counter state on ER to Solana", async () => { - const tx = await program.methods - .commit() - .accounts({ - counter: counterPDA, - sessionToken: sessionTokenPDA, - payer: sessionKeypair.publicKey, - }) - .transaction(); - sendSvmTx(svm, [sessionKeypair], tx, "ephemeral", "commit"); - assert.equal(readU64le(svm, counterPDA, "base", 40), 2n); - assert.ok(isDelegated(svm, counterPDA)); - }); - - it("Increase counter on ER and commit", async () => { - const tx = await program.methods - .incrementAndCommit() - .accounts({ - counter: counterPDA, - sessionToken: sessionTokenPDA, - payer: sessionKeypair.publicKey, - }) - .transaction(); - sendSvmTx(svm, [sessionKeypair], tx, "ephemeral", "incrementAndCommit"); - assert.equal(readU64le(svm, counterPDA, "ephemeral", 40), 3n); - assert.equal(readU64le(svm, counterPDA, "base", 40), 3n); - }); - - it("Increment and undelegate counter on ER to Solana", async () => { - const tx = await program.methods - .incrementAndUndelegate() - .accounts({ - counter: counterPDA, - sessionToken: sessionTokenPDA, - payer: sessionKeypair.publicKey, - }) - .transaction(); - sendSvmTx(svm, [sessionKeypair], tx, "ephemeral", "incrementAndUndelegate"); - assert.equal(readU64le(svm, counterPDA, "base", 40), 4n); - assert.equal( - accountOwner(svm, counterPDA, "base"), - program.programId.toString(), - ); - }); - - it("Revoke session on Solana", async () => { - const tx = await sessionTokenManager.program.methods - .revokeSessionV2() - .accounts({ - sessionToken: sessionTokenPDA, - feePayer: payer.publicKey, - authority: payer.publicKey, - }) - .transaction(); - sendSvmTx(svm, [payer], tx, "base", "revokeSessionV2"); - const sessionAccount = svm.getAccount(sessionTokenPDA); - assert.equal(sessionAccount.exists, false); - }); -}); diff --git a/session-keys/anchor/tests/advanced-magic.ts b/session-keys/anchor/tests/advanced-magic.ts deleted file mode 100644 index 7e95aa07..00000000 --- a/session-keys/anchor/tests/advanced-magic.ts +++ /dev/null @@ -1,291 +0,0 @@ -import * as anchor from "@coral-xyz/anchor"; -import { Program, web3 } from "@coral-xyz/anchor"; -import { AnchorCounterSession } from "../target/types/anchor_counter_session"; -import { LAMPORTS_PER_SOL, sendAndConfirmTransaction } from "@solana/web3.js"; -import { - ConnectionMagicRouter, - GetCommitmentSignature, -} from "@magicblock-labs/ephemeral-rollups-sdk"; -import { SessionTokenManager } from "@magicblock-labs/gum-sdk"; -import { initializeSessionSignerKeypair } from "../utils/initializeKeypair"; - -const COUNTER_SEED = "counter"; - -describe("magic-router-counter-session", () => { - console.log("advanced-magic.ts"); - - const connection = new ConnectionMagicRouter( - process.env.ROUTER_ENDPOINT || "https://devnet-router.magicblock.app/", - { - wsEndpoint: - process.env.ROUTER_WS_ENDPOINT || "wss://devnet-router.magicblock.app/", - }, - ); - const providerMagic = new anchor.AnchorProvider( - connection, - anchor.Wallet.local(), - ); - - const program = anchor.workspace - .AnchorCounterSession as Program; - const [counterPDA] = anchor.web3.PublicKey.findProgramAddressSync( - [Buffer.from(COUNTER_SEED), providerMagic.wallet.publicKey.toBuffer()], - program.programId, - ); - - console.log("Program ID: ", program.programId.toString()); - console.log("Counter PDA: ", counterPDA.toString()); - - // Initialize Session Manager - const sessionKeypair = initializeSessionSignerKeypair(); - const sessionTokenManager = new SessionTokenManager( - providerMagic.wallet, - connection, - ); - const SESSION_TOKEN_SEED = "session_token_v2"; - const sessionTokenPDA = web3.PublicKey.findProgramAddressSync( - [ - Buffer.from(SESSION_TOKEN_SEED), - program.programId.toBytes(), - sessionKeypair.publicKey.toBytes(), - providerMagic.wallet.publicKey.toBytes(), - ], - sessionTokenManager.program.programId, - )[0]; - - console.log( - "Session Signer Public Key: ", - sessionKeypair.publicKey.toString(), - ); - console.log("Session Token PDA: ", sessionTokenPDA.toString()); - - // Run this once before all tests - let ephemeralValidator; - before(async function () { - console.log("Endpoint:", connection.rpcEndpoint.toString()); - ephemeralValidator = await connection.getClosestValidator(); - console.log("Detected validator identity:", ephemeralValidator); - const balance = await connection.getBalance( - anchor.Wallet.local().publicKey, - ); - console.log("Current balance is", balance / LAMPORTS_PER_SOL, " SOL", "\n"); - }); - - it("Create session on Magic Router", async () => { - const start = Date.now(); - - const topUp = true; - const validUntilBN = new anchor.BN(Math.floor(Date.now() / 1000) + 3600); // valid for 1 hour - const topUpLamportsBN = new anchor.BN(0.0005 * LAMPORTS_PER_SOL); - - const tx = await sessionTokenManager.program.methods - .createSessionV2(topUp, validUntilBN, topUpLamportsBN) - .accounts({ - targetProgram: program.programId, - sessionSigner: sessionKeypair.publicKey, - feePayer: providerMagic.wallet.publicKey, - authority: providerMagic.wallet.publicKey, - }) - .transaction(); - - const txHash = await sendAndConfirmTransaction( - connection, - tx, - [sessionKeypair, providerMagic.wallet.payer], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (Magic Router) CreateSession txHash: ${txHash}`); - }); - - it("Initialize counter via Magic Router", async () => { - const start = Date.now(); - let tx = await program.methods - .initialize() - .accounts({ - user: providerMagic.wallet.publicKey, - }) - .transaction(); - const txHash = await sendAndConfirmTransaction( - connection, - tx, - [providerMagic.wallet.payer], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (Magic Router) Initialize txHash: ${txHash}`); - }); - - it("Delegate counter to ER", async () => { - const start = Date.now(); - - const validator = await connection.getClosestValidator(); - console.log("Delegating to closest validator: ", JSON.stringify(validator)); - - // Add local validator identity to the remaining accounts if running on localnet - const remainingAccounts = - connection.rpcEndpoint.includes("localhost") || - connection.rpcEndpoint.includes("127.0.0.1") - ? [ - { - pubkey: new web3.PublicKey( - process.env.VALIDATOR || - "mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev", - ), - isSigner: false, - isWritable: false, - }, - ] - : [ - { - pubkey: new web3.PublicKey(validator.identity), - isSigner: false, - isWritable: false, - }, - ]; - - let tx = await program.methods - .delegate() - .accounts({ - payer: sessionKeypair.publicKey, - pda: counterPDA, - sessionToken: sessionTokenPDA, - }) - .remainingAccounts(remainingAccounts) - .transaction(); - const txHash = await sendAndConfirmTransaction( - connection, - tx, - [sessionKeypair], - { - skipPreflight: true, - commitment: "finalized", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (Magic Router) Delegate txHash: ${txHash}`); - }); - - it("Increase delegated counter on ER", async () => { - const start = Date.now(); - let tx = await program.methods - .increment() - .accounts({ - counter: counterPDA, - sessionToken: sessionTokenPDA, - payer: sessionKeypair.publicKey, - }) - .transaction(); - const txHash = await sendAndConfirmTransaction( - connection, - tx, - [sessionKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (Magic Router) Increment txHash: ${txHash}`); - }); - - it("Increase delegated counter and commit through CPI", async () => { - const start = Date.now(); - let tx = await program.methods - .incrementAndCommit() - .accounts({ - counter: counterPDA, - sessionToken: sessionTokenPDA, - payer: sessionKeypair.publicKey, - }) - .transaction(); - const txHash = await sendAndConfirmTransaction( - connection, - tx, - [sessionKeypair], - { - skipPreflight: true, - }, - ); - const duration = Date.now() - start; - console.log( - `${duration}ms (Magic Router) Increment And Commit txHash: ${txHash}`, - ); - - // Get the commitment signature on the base layer - const comfirmCommitStart = Date.now(); - // Await for the commitment on the base layer - const txCommitSgn = await GetCommitmentSignature( - txHash, - new anchor.web3.Connection(ephemeralValidator.fqdn), - ); - const commitDuration = Date.now() - comfirmCommitStart; - console.log( - `${commitDuration}ms (Base Layer) Commit txHash: ${txCommitSgn}`, - ); - }); - - it("Increase delegated counter and undelegate through CPI", async () => { - const start = Date.now(); - let tx = await program.methods - .incrementAndUndelegate() - .accounts({ - counter: counterPDA, - sessionToken: sessionTokenPDA, - payer: sessionKeypair.publicKey, - }) - .transaction(); - const txHash = await sendAndConfirmTransaction( - connection, - tx, - [sessionKeypair], - { - skipPreflight: true, - }, - ); - const duration = Date.now() - start; - console.log( - `${duration}ms (ER) Increment and Undelegate txHash: ${txHash}`, - ); - - // Get the undelegate signature on the base layer - const comfirmCommitStart = Date.now(); - // Await for the commitment on the base layer - const txCommitSgn = await GetCommitmentSignature( - txHash, - new anchor.web3.Connection(ephemeralValidator.fqdn), - ); - const commitDuration = Date.now() - comfirmCommitStart; - console.log( - `${commitDuration}ms (Base Layer) Undelegate txHash: ${txCommitSgn}`, - ); - }); - - it("Revoke session on Magic Router", async () => { - const start = Date.now(); - - const tx = await sessionTokenManager.program.methods - .revokeSessionV2() - .accounts({ - sessionToken: sessionTokenPDA, - }) - .transaction(); - const txHash = await sendAndConfirmTransaction( - connection, - tx, - [sessionKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (Magic Router) revokeSession txHash: ${txHash}`); - }); -}); diff --git a/session-keys/anchor/tests/anchor-counter-session.ts b/session-keys/anchor/tests/anchor-counter-session.ts index 3c817dd7..51de2977 100644 --- a/session-keys/anchor/tests/anchor-counter-session.ts +++ b/session-keys/anchor/tests/anchor-counter-session.ts @@ -1,87 +1,71 @@ import * as anchor from "@coral-xyz/anchor"; -import { Program, web3 } from "@coral-xyz/anchor"; -import { AnchorCounterSession } from "../target/types/anchor_counter_session"; -import { LAMPORTS_PER_SOL, sendAndConfirmTransaction } from "@solana/web3.js"; -import { GetCommitmentSignature } from "@magicblock-labs/ephemeral-rollups-sdk"; +import { web3 } from "@coral-xyz/anchor"; +import { + accountOwner, + bootAnchorSvm, + isDelegated, + readU64le, + sendSvmTx, + setUnixTimestamp, + validatorRemainingAccount, +} from "@magicblock-labs/test-utils"; import { SessionTokenManager } from "@magicblock-labs/gum-sdk"; -import { initializeSessionSignerKeypair } from "../utils/initializeKeypair"; +import { LAMPORTS_PER_SOL, PublicKey } from "@solana/web3.js"; +import assert from "assert"; +import * as path from "path"; +import { AnchorCounterSession } from "../target/types/anchor_counter_session"; const COUNTER_SEED = "counter"; +const SESSION_TOKEN_SEED = "session_token_v2"; +const SESSION_PROGRAM_ID = "KeyspM2ssCJbqUhQ4k7sveSiY4WjnYsrXkC8oDbwde5"; + +describe("anchor-counter-session magicsvm", () => { + const sessionKeypair = web3.Keypair.generate(); + const { svm, payer, program, validator } = + bootAnchorSvm({ + fromDir: __dirname, + programName: "anchor_counter_session", + airdropLamports: BigInt(2 * LAMPORTS_PER_SOL), + extraPrograms: [ + { + id: new PublicKey(SESSION_PROGRAM_ID), + so: path.resolve(__dirname, "fixtures", "session-keys.so"), + }, + ], + }); + setUnixTimestamp(svm); -describe.only("anchor-counter-session", () => { - console.log("anchor-counter-session.ts"); - - // Configure the client to use the local cluster. - const provider = anchor.AnchorProvider.env(); - anchor.setProvider(provider); - - const providerEphemeralRollup = new anchor.AnchorProvider( - new anchor.web3.Connection( - process.env.EPHEMERAL_PROVIDER_ENDPOINT || - "https://devnet-as.magicblock.app/", - { - wsEndpoint: - process.env.EPHEMERAL_WS_ENDPOINT || - "wss://devnet-as.magicblock.app/", - }, - ), - anchor.Wallet.local(), - ); - console.log("Base Layer Connection: ", provider.connection.rpcEndpoint); - console.log( - "Ephemeral Rollup Connection: ", - providerEphemeralRollup.connection.rpcEndpoint, - ); - console.log(`Current SOL Public Key: ${anchor.Wallet.local().publicKey}`); - - before(async function () { - const balance = await provider.connection.getBalance( - anchor.Wallet.local().publicKey, - ); - console.log("Current balance is", balance / LAMPORTS_PER_SOL, " SOL", "\n"); - }); - - const program = anchor.workspace - .AnchorCounterSession as Program; - const [counterPDA] = anchor.web3.PublicKey.findProgramAddressSync( - [Buffer.from(COUNTER_SEED), provider.wallet.publicKey.toBuffer()], + const [counterPDA] = web3.PublicKey.findProgramAddressSync( + [Buffer.from(COUNTER_SEED), payer.publicKey.toBuffer()], program.programId, ); - console.log("Program ID: ", program.programId.toString()); - console.log("Counter PDA: ", counterPDA.toString()); - - // Initialize Session Manager - const sessionKeypair = initializeSessionSignerKeypair(); const sessionTokenManager = new SessionTokenManager( - provider.wallet, - provider.connection, + new anchor.Wallet(web3.Keypair.fromSecretKey(payer.secretKey)), + new web3.Connection("http://127.0.0.1:8899"), ); - const SESSION_TOKEN_SEED = "session_token_v2"; const sessionTokenPDA = web3.PublicKey.findProgramAddressSync( [ Buffer.from(SESSION_TOKEN_SEED), program.programId.toBytes(), sessionKeypair.publicKey.toBytes(), - provider.wallet.publicKey.toBytes(), + payer.publicKey.toBytes(), ], sessionTokenManager.program.programId, )[0]; + + console.log("Program ID: ", program.programId.toString()); + console.log("Counter PDA: ", counterPDA.toString()); console.log( "Session Signer Public Key: ", sessionKeypair.publicKey.toString(), ); console.log("Session Token PDA: ", sessionTokenPDA.toString()); + console.log("Validator identity: ", validator.toString()); - (it("Create session on Solana", async () => { - const start = Date.now(); - + it("Create session on Solana", async () => { const topUp = true; - const validUntilBN = new anchor.BN(Math.floor(Date.now() / 1000) + 3600); // valid for 1 hour - // The sessionKeypair pays for: (a) rent-exempt minimum on its own system - // account (~890,880 lamports), (b) tx fees on every session-signed tx, and - // (c) the on-chain delegation buffer rent (~3M lamports) when it's the - // delegate ix's payer. 0.005 SOL covers all three with headroom. + const validUntilBN = new anchor.BN(Math.floor(Date.now() / 1000) + 3600); const topUpLamportsBN = new anchor.BN(0.005 * LAMPORTS_PER_SOL); const tx = await sessionTokenManager.program.methods @@ -89,47 +73,33 @@ describe.only("anchor-counter-session", () => { .accounts({ targetProgram: program.programId, sessionSigner: sessionKeypair.publicKey, - feePayer: provider.wallet.publicKey, - authority: provider.wallet.publicKey, + feePayer: payer.publicKey, + authority: payer.publicKey, }) .transaction(); - tx.feePayer = provider.wallet.publicKey; + sendSvmTx(svm, [payer, sessionKeypair], tx, "base", "createSessionV2"); - const txHash = await sendAndConfirmTransaction( - provider.connection, - tx, - [provider.wallet.payer!, sessionKeypair], - { - commitment: "confirmed", - }, + const sessionAccount = svm.getAccount(sessionTokenPDA); + assert.ok(sessionAccount.exists, "session token missing on base"); + assert.equal( + sessionAccount.programAddress.toString(), + sessionTokenManager.program.programId.toString(), ); - const duration = Date.now() - start; - console.log(`${duration}ms (Base Layer) CreateSession txHash: ${txHash}`); - }), - it("Initialize counter on Solana", async () => { - const start = Date.now(); - let tx = await program.methods - .initialize() - .accounts({ - user: provider.wallet.publicKey, - }) - .transaction(); - const txHash = await sendAndConfirmTransaction( - provider.connection, - tx, - [provider.wallet.payer], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (Base Layer) Initialize txHash: ${txHash}`); - })); + }); + + it("Initialize counter on Solana", async () => { + const tx = await program.methods + .initialize() + .accounts({ + user: payer.publicKey, + }) + .transaction(); + sendSvmTx(svm, [payer], tx, "base", "initialize"); + assert.equal(readU64le(svm, counterPDA, "base", 40), 0n); + }); it("Increase counter on Solana", async () => { - const start = Date.now(); - let tx = await program.methods + const tx = await program.methods .increment() .accounts({ counter: counterPDA, @@ -137,59 +107,26 @@ describe.only("anchor-counter-session", () => { payer: sessionKeypair.publicKey, }) .transaction(); - const txHash = await sendAndConfirmTransaction( - provider.connection, - tx, - [sessionKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (Base Layer) Increment txHash: ${txHash}`); + sendSvmTx(svm, [sessionKeypair], tx, "base", "increment (base)"); + assert.equal(readU64le(svm, counterPDA, "base", 40), 1n); }); it("Delegate counter to ER", async () => { - const start = Date.now(); - // Validator identity for delegation: VALIDATOR env var wins; otherwise default to - // local-ER validator iff the ER endpoint is localhost. - const isLocal = - providerEphemeralRollup.connection.rpcEndpoint.includes("localhost") || - providerEphemeralRollup.connection.rpcEndpoint.includes("127.0.0.1"); - const validatorPubkey = process.env.VALIDATOR - ? new web3.PublicKey(process.env.VALIDATOR) - : isLocal - ? new web3.PublicKey("mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev") - : null; - const remainingAccounts = validatorPubkey - ? [{ pubkey: validatorPubkey, isSigner: false, isWritable: false }] - : []; - let tx = await program.methods + const tx = await program.methods .delegate() .accounts({ payer: sessionKeypair.publicKey, pda: counterPDA, sessionToken: sessionTokenPDA, }) - .remainingAccounts(remainingAccounts) + .remainingAccounts([validatorRemainingAccount(svm)]) .transaction(); - const txHash = await sendAndConfirmTransaction( - provider.connection, - tx, - [sessionKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (Base Layer) Delegate txHash: ${txHash}`); + sendSvmTx(svm, [sessionKeypair], tx, "base", "delegate"); + assert.ok(isDelegated(svm, counterPDA)); }); it("Increase counter on ER", async () => { - const start = Date.now(); - let tx = await program.methods + const tx = await program.methods .increment() .accounts({ counter: counterPDA, @@ -197,22 +134,12 @@ describe.only("anchor-counter-session", () => { payer: sessionKeypair.publicKey, }) .transaction(); - const txHash = await sendAndConfirmTransaction( - providerEphemeralRollup.connection, - tx, - [sessionKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Increment txHash: ${txHash}`); + sendSvmTx(svm, [sessionKeypair], tx, "ephemeral", "increment (ER)"); + assert.equal(readU64le(svm, counterPDA, "ephemeral", 40), 2n); }); it("Commit counter state on ER to Solana", async () => { - const start = Date.now(); - let tx = await program.methods + const tx = await program.methods .commit() .accounts({ counter: counterPDA, @@ -220,34 +147,13 @@ describe.only("anchor-counter-session", () => { payer: sessionKeypair.publicKey, }) .transaction(); - const txHash = await sendAndConfirmTransaction( - providerEphemeralRollup.connection, - tx, - [sessionKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Commit txHash: ${txHash}`); - - // Get the commitment signature on the base layer - const comfirmCommitStart = Date.now(); - // Await for the commitment on the base layer - const txCommitSgn = await GetCommitmentSignature( - txHash, - providerEphemeralRollup.connection, - ); - const commitDuration = Date.now() - comfirmCommitStart; - console.log( - `${commitDuration}ms (Base Layer) Commit txHash: ${txCommitSgn}`, - ); + sendSvmTx(svm, [sessionKeypair], tx, "ephemeral", "commit"); + assert.equal(readU64le(svm, counterPDA, "base", 40), 2n); + assert.ok(isDelegated(svm, counterPDA)); }); it("Increase counter on ER and commit", async () => { - const start = Date.now(); - let tx = await program.methods + const tx = await program.methods .incrementAndCommit() .accounts({ counter: counterPDA, @@ -255,34 +161,13 @@ describe.only("anchor-counter-session", () => { payer: sessionKeypair.publicKey, }) .transaction(); - const txHash = await sendAndConfirmTransaction( - providerEphemeralRollup.connection, - tx, - [sessionKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Increment and Commit txHash: ${txHash}`); - - // Get the commitment signature on the base layer - const comfirmCommitStart = Date.now(); - // Await for the commitment on the base layer - const txCommitSgn = await GetCommitmentSignature( - txHash, - providerEphemeralRollup.connection, - ); - const commitDuration = Date.now() - comfirmCommitStart; - console.log( - `${commitDuration}ms (Base Layer) Commit txHash: ${txCommitSgn}`, - ); + sendSvmTx(svm, [sessionKeypair], tx, "ephemeral", "incrementAndCommit"); + assert.equal(readU64le(svm, counterPDA, "ephemeral", 40), 3n); + assert.equal(readU64le(svm, counterPDA, "base", 40), 3n); }); it("Increment and undelegate counter on ER to Solana", async () => { - const start = Date.now(); - let tx = await program.methods + const tx = await program.methods .incrementAndUndelegate() .accounts({ counter: counterPDA, @@ -290,57 +175,25 @@ describe.only("anchor-counter-session", () => { payer: sessionKeypair.publicKey, }) .transaction(); - const txHash = await sendAndConfirmTransaction( - providerEphemeralRollup.connection, - tx, - [sessionKeypair], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log( - `${duration}ms (ER) Increment and Undelegate txHash: ${txHash}`, - ); - - // Get the commitment signature on the base layer - const comfirmCommitStart = Date.now(); - // Await for the commitment on the base layer - const txCommitSgn = await GetCommitmentSignature( - txHash, - providerEphemeralRollup.connection, - ); - const commitDuration = Date.now() - comfirmCommitStart; - console.log( - `${commitDuration}ms (Base Layer) Undelegate txHash: ${txCommitSgn}`, + sendSvmTx(svm, [sessionKeypair], tx, "ephemeral", "incrementAndUndelegate"); + assert.equal(readU64le(svm, counterPDA, "base", 40), 4n); + assert.equal( + accountOwner(svm, counterPDA, "base"), + program.programId.toString(), ); }); - it("Revoke session on Solana", async () => { - const start = Date.now(); + it("Revoke session on Solana", async () => { const tx = await sessionTokenManager.program.methods .revokeSessionV2() .accounts({ sessionToken: sessionTokenPDA, - feePayer: provider.wallet.publicKey, - authority: provider.wallet.publicKey, + feePayer: payer.publicKey, + authority: payer.publicKey, }) .transaction(); - // While the session is still within `valid_until`, the program requires - // `authority` to be a signer (see SessionError::InvalidAuthority). Sign - // with the wallet (authority), not the session signer. - tx.feePayer = provider.wallet.publicKey; - const txHash = await sendAndConfirmTransaction( - provider.connection, - tx, - [provider.wallet.payer!], - { - skipPreflight: true, - commitment: "confirmed", - }, - ); - const duration = Date.now() - start; - console.log(`${duration}ms (Base Layer) revokeSession txHash: ${txHash}`); + sendSvmTx(svm, [payer], tx, "base", "revokeSessionV2"); + const sessionAccount = svm.getAccount(sessionTokenPDA); + assert.equal(sessionAccount.exists, false); }); }); diff --git a/session-keys/anchor/tests-magicsvm/fixtures/session-keys.so b/session-keys/anchor/tests/fixtures/session-keys.so similarity index 100% rename from session-keys/anchor/tests-magicsvm/fixtures/session-keys.so rename to session-keys/anchor/tests/fixtures/session-keys.so diff --git a/spl-tokens/anchor/Anchor.toml b/spl-tokens/anchor/Anchor.toml index 87a3e9aa..56630d59 100644 --- a/spl-tokens/anchor/Anchor.toml +++ b/spl-tokens/anchor/Anchor.toml @@ -30,4 +30,4 @@ program = "tests/fixtures/dlp.so" upgradeable = false [scripts] -test = "yarn run ts-mocha -p ./tsconfig.json -t 1000000 tests/spl-tokens.ts" +test = "yarn test" diff --git a/spl-tokens/anchor/README.md b/spl-tokens/anchor/README.md index 4f2b7b9e..2f944d2f 100644 --- a/spl-tokens/anchor/README.md +++ b/spl-tokens/anchor/README.md @@ -70,23 +70,17 @@ yarn yarn build ``` -This example runs against a **local MagicBlock cluster** — a base Solana validator plus an Ephemeral Rollup, fronted by the Query Filtering Service. Start it in one terminal and leave it running: +Run the tests in-process with [MagicSVM](https://github.com/magicblock-labs/magicsvm): ```bash -yarn setup +yarn test ``` -`yarn setup` runs `SETUP_ONLY=1 ./scripts/test-locally.sh spl-tokens` from the repo root: it builds this example, boots the validators, and holds them until you press a key. +MagicSVM simulates the base layer and the Ephemeral Rollup in one process: no validators, no +network. The suite delegates SPL tokens, transfers them directly and through the example program, +and undelegates the token accounts. -Then, in a second terminal, run this example's tests against that cluster: - -```bash -yarn test:local -``` - -`test:local` sources `scripts/local-env.sh` so the SDK targets the local cluster (without it the tests fall back to devnet). - -> Tip: to build and run **every** example end-to-end (what CI does), run the repo-root `./scripts/test-locally.sh` directly. +A Rust MagicSVM suite lives in `tests-magicsvm-rs/` (needs a nightly toolchain): `yarn test:magicsvm:rs`. ## Key Files diff --git a/spl-tokens/anchor/package.json b/spl-tokens/anchor/package.json index f1686442..177c751a 100644 --- a/spl-tokens/anchor/package.json +++ b/spl-tokens/anchor/package.json @@ -2,12 +2,9 @@ "scripts": { "lint:fix": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" -w", "lint": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --no-error-on-unmatched-pattern */*.js \"*/**/*{.js,.ts}\" --check", - "test": "yarn test:local", - "build": "anchor keys sync && anchor build", - "test:local": ". ../../scripts/local-env.sh && npx ts-mocha -p ./tsconfig.json -t 1000000 tests/spl-tokens.ts", - "test:magicsvm": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests-magicsvm/spl-tokens.ts", - "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture", - "setup": "cd ../.. && SETUP_ONLY=1 ./scripts/test-locally.sh spl-tokens" + "test": "npx ts-mocha -p ./tsconfig.json -t 1000000 tests/spl-tokens.ts", + "build": "anchor build --ignore-keys", + "test:magicsvm:rs": "env RUSTUP_TOOLCHAIN=nightly cargo test --manifest-path tests-magicsvm-rs/Cargo.toml -- --nocapture" }, "dependencies": { "@coral-xyz/anchor": "0.32.1", diff --git a/spl-tokens/anchor/programs/spl-tokens/src/lib.rs b/spl-tokens/anchor/programs/spl-tokens/src/lib.rs index 8f8697e8..a25f1c3b 100644 --- a/spl-tokens/anchor/programs/spl-tokens/src/lib.rs +++ b/spl-tokens/anchor/programs/spl-tokens/src/lib.rs @@ -3,7 +3,7 @@ use anchor_spl::token::{self, Token, TokenAccount, Transfer as SplTransfer}; use ephemeral_rollups_sdk::anchor::ephemeral; -declare_id!("2W6E4YCdw45V4Y3NFx43zzpBvwTmaX7yD7Ew5Yhscihk"); +declare_id!("4mrt3xHdkhpw1W3sThTWF5KcAE83E612aEiYAEqJHq3r"); #[ephemeral] #[program] diff --git a/spl-tokens/anchor/tests-magicsvm/spl-tokens.ts b/spl-tokens/anchor/tests-magicsvm/spl-tokens.ts deleted file mode 100644 index 6daeb26b..00000000 --- a/spl-tokens/anchor/tests-magicsvm/spl-tokens.ts +++ /dev/null @@ -1,342 +0,0 @@ -import * as anchor from "@coral-xyz/anchor"; -import { BN } from "@coral-xyz/anchor"; -import { MagicSVM } from "@magicblock-labs/magicsvm"; -import { - AccountLayout, - TOKEN_PROGRAM_ID, - createAssociatedTokenAccountInstruction, - createInitializeMintInstruction, - createMintToInstruction, - getAssociatedTokenAddressSync, -} from "@solana/spl-token"; -import { - Keypair, - LAMPORTS_PER_SOL, - PublicKey, - SystemProgram, - Transaction, -} from "@solana/web3.js"; -import { assert } from "chai"; -import { - delegateSpl, - deriveEphemeralAta, - deriveRentPda, - EPHEMERAL_SPL_TOKEN_PROGRAM_ID, - transferSpl, - undelegateIx, - withdrawSpl, -} from "@magicblock-labs/ephemeral-rollups-sdk"; -import { - bootAnchorSvm, - sendSvmTx, - accountOwner, -} from "@magicblock-labs/test-utils"; -import { SplTokens } from "../target/types/spl_tokens"; - -const MINT_SIZE = 82; -const TOKEN_AMOUNT = 1000n; - -function tokenAmount( - svm: MagicSVM, - ata: PublicKey, - target: "base" | "ephemeral", -): bigint { - const account = svm.getAccountFor(ata, { target }); - if (!account.exists) { - throw new Error(`missing token account ${ata.toBase58()} on ${target}`); - } - return AccountLayout.decode(Buffer.from(account.data)).amount; -} - -describe("spl-tokens magicsvm", () => { - const createHarness = () => { - const { - svm, - payer: admin, - program, - validator, - } = bootAnchorSvm({ - fromDir: __dirname, - programName: "spl_tokens", - airdropLamports: BigInt(10 * LAMPORTS_PER_SOL), - }); - return { admin, program, svm, validator: new PublicKey(validator) }; - }; - - const setupMintWithRecipients = ( - svm: MagicSVM, - admin: Keypair, - ): { - mint: Keypair; - owners: [Keypair, Keypair]; - atas: [PublicKey, PublicKey]; - } => { - const newMint = Keypair.generate(); - const owner1 = Keypair.generate(); - const owner2 = Keypair.generate(); - const [sponsorPda] = deriveRentPda(); - - const fundTx = new Transaction(); - for (const r of [owner1.publicKey, owner2.publicKey, sponsorPda]) { - fundTx.add( - SystemProgram.transfer({ - fromPubkey: admin.publicKey, - toPubkey: r, - lamports: 0.2 * LAMPORTS_PER_SOL, - }), - ); - } - sendSvmTx(svm, [admin], fundTx, "base", "fund recipients"); - - const ata1 = getAssociatedTokenAddressSync( - newMint.publicKey, - owner1.publicKey, - ); - const ata2 = getAssociatedTokenAddressSync( - newMint.publicKey, - owner2.publicKey, - ); - - const tx = new Transaction().add( - SystemProgram.createAccount({ - fromPubkey: admin.publicKey, - newAccountPubkey: newMint.publicKey, - space: MINT_SIZE, - lamports: Number(svm.minimumBalanceForRentExemption(BigInt(MINT_SIZE))), - programId: TOKEN_PROGRAM_ID, - }), - createInitializeMintInstruction( - newMint.publicKey, - 0, - admin.publicKey, - null, - ), - createAssociatedTokenAccountInstruction( - admin.publicKey, - ata1, - owner1.publicKey, - newMint.publicKey, - ), - createAssociatedTokenAccountInstruction( - admin.publicKey, - ata2, - owner2.publicKey, - newMint.publicKey, - ), - createMintToInstruction( - newMint.publicKey, - ata1, - admin.publicKey, - TOKEN_AMOUNT, - ), - createMintToInstruction( - newMint.publicKey, - ata2, - admin.publicKey, - TOKEN_AMOUNT, - ), - ); - sendSvmTx(svm, [admin, newMint], tx, "base", "create mint and ATAs"); - - const acct1 = tokenAmount(svm, ata1, "base"); - const acct2 = tokenAmount(svm, ata2, "base"); - if (acct1 !== TOKEN_AMOUNT) { - throw new Error(`owner1 expected ${TOKEN_AMOUNT}, got ${acct1}`); - } - if (acct2 !== TOKEN_AMOUNT) { - throw new Error(`owner2 expected ${TOKEN_AMOUNT}, got ${acct2}`); - } - - return { - mint: newMint, - owners: [owner1, owner2], - atas: [ata1, ata2], - }; - }; - - it("Delegate SPL tokens, do a transfer and undelegate", async () => { - const { admin, svm, validator } = createHarness(); - console.log("spl-tokens.ts (magicsvm)"); - console.log("Validator: ", validator.toBase58()); - const { - mint, - owners: [recipientA, recipientB], - atas: [ataA, ataB], - } = setupMintWithRecipients(svm, admin); - - console.log("\nUser1: ", recipientA.publicKey.toBase58()); - console.log("User2: ", recipientB.publicKey.toBase58()); - - assert(tokenAmount(svm, ataA, "base") == 1000n); - assert(tokenAmount(svm, ataB, "base") == 1000n); - - const delegateOpts = { - validator, - idempotent: false as const, - payer: admin.publicKey, - }; - - const delegations: [Keypair, bigint, boolean][] = [ - [recipientA, 50n, true], - [recipientB, 10n, false], - ]; - for (const [owner, amount, initVaultIfMissing] of delegations) { - const ixs = await delegateSpl(owner.publicKey, mint.publicKey, amount, { - ...delegateOpts, - initVaultIfMissing, - }); - sendSvmTx( - svm, - [admin, owner], - new Transaction().add(...ixs), - "base", - `delegate ${owner.publicKey.toBase58()}`, - ); - } - - const erAAfterDelegate = tokenAmount(svm, ataA, "ephemeral"); - const erBAfterDelegate = tokenAmount(svm, ataB, "ephemeral"); - assert( - erAAfterDelegate == 50n, - `A ER balance after delegate ${erAAfterDelegate}`, - ); - assert( - erBAfterDelegate == 10n, - `B ER balance after delegate ${erBAfterDelegate}`, - ); - - const transferIxs = await transferSpl( - recipientA.publicKey, - recipientB.publicKey, - mint.publicKey, - 2n, - { - visibility: "public", - fromBalance: "ephemeral", - toBalance: "ephemeral", - }, - ); - sendSvmTx( - svm, - [recipientA], - new Transaction().add(...transferIxs), - "ephemeral", - "ER transfer", - ); - - const acctA = tokenAmount(svm, ataA, "ephemeral"); - const acctB = tokenAmount(svm, ataB, "ephemeral"); - assert(acctA == 48n); - assert(acctB == 12n); - - for (const owner of [recipientA, recipientB]) { - sendSvmTx( - svm, - [owner], - new Transaction().add(undelegateIx(owner.publicKey, mint.publicKey)), - "ephemeral", - `undelegate ${owner.publicKey.toBase58()}`, - ); - } - - for (const owner of [recipientA, recipientB]) { - const [eata] = deriveEphemeralAta(owner.publicKey, mint.publicKey); - assert( - accountOwner(svm, eata, "base") === - EPHEMERAL_SPL_TOKEN_PROGRAM_ID.toString(), - `${eata.toBase58()} was not undelegated back to ESPL`, - ); - } - - const withdrawIxs = [ - ...(await withdrawSpl(recipientA.publicKey, mint.publicKey, acctA, { - idempotent: false, - })), - ...(await withdrawSpl(recipientB.publicKey, mint.publicKey, acctB, { - idempotent: false, - })), - ]; - sendSvmTx( - svm, - [admin, recipientA, recipientB], - new Transaction().add(...withdrawIxs), - "base", - "withdraw", - ); - - assert(tokenAmount(svm, ataA, "base") == 998n); - assert(tokenAmount(svm, ataB, "base") == 1002n); - }); - - it("Delegate SPL tokens and do a transfer through a program", async () => { - const { admin, program, svm, validator } = createHarness(); - const delegateOpts = { - validator, - idempotent: false as const, - payer: admin.publicKey, - }; - - const { - mint: mint2, - owners: [sender, receiver], - atas: [ataSender, ataReceiver], - } = setupMintWithRecipients(svm, admin); - - const ixsSender = await delegateSpl( - sender.publicKey, - mint2.publicKey, - 10n, - { - ...delegateOpts, - initVaultIfMissing: true, - }, - ); - sendSvmTx( - svm, - [admin, sender], - new Transaction().add(...ixsSender), - "base", - "delegate sender", - ); - - const ixsReceiver = await delegateSpl( - receiver.publicKey, - mint2.publicKey, - 10n, - { ...delegateOpts, initVaultIfMissing: false }, - ); - sendSvmTx( - svm, - [admin, receiver], - new Transaction().add(...ixsReceiver), - "base", - "delegate receiver", - ); - - const erSenderAfterDelegate = tokenAmount(svm, ataSender, "ephemeral"); - const erReceiverAfterDelegate = tokenAmount(svm, ataReceiver, "ephemeral"); - assert( - erSenderAfterDelegate == 10n, - `sender ER balance after delegate ${erSenderAfterDelegate}`, - ); - assert( - erReceiverAfterDelegate == 10n, - `receiver ER balance after delegate ${erReceiverAfterDelegate}`, - ); - - const txT = await program.methods - .transfer(new BN(2)) - .accounts({ - payer: sender.publicKey, - from: ataSender, - to: ataReceiver, - }) - .transaction(); - sendSvmTx(svm, [sender], txT, "ephemeral", "program transfer"); - - const erSender = tokenAmount(svm, ataSender, "ephemeral"); - const erReceiver = tokenAmount(svm, ataReceiver, "ephemeral"); - assert(erSender == 8n, `sender ER balance ${erSender}`); - assert(erReceiver == 12n, `receiver ER balance ${erReceiver}`); - }); -}); diff --git a/spl-tokens/anchor/tests/fixtures/dlp.so b/spl-tokens/anchor/tests/fixtures/dlp.so deleted file mode 100755 index 3119b947d48944b7968fe2f7995263339ec00720..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325560 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