diff --git a/.github/actions/setup-anchor/action.yml b/.github/actions/setup-anchor/action.yml index 24a2f19..b5c370e 100644 --- a/.github/actions/setup-anchor/action.yml +++ b/.github/actions/setup-anchor/action.yml @@ -1,10 +1,14 @@ name: "Setup anchor-cli" -description: "Setup node js and anchor cli" +description: "Setup bun and anchor cli" runs: using: "composite" steps: - - uses: actions/setup-node@v6 + - uses: oven-sh/setup-bun@v2 + - uses: actions/cache@v4 + id: cache-anchor-cli with: - node-version: ${{ env.NODE_VERSION }} - - run: cargo install --git https://github.com/coral-xyz/anchor --tag v${{ env.ANCHOR_CLI_VERSION }} anchor-cli --locked + path: ~/.cargo/bin/anchor + key: anchor-cli-${{ runner.os }}-${{ env.ANCHOR_CLI_VERSION }} + - if: steps.cache-anchor-cli.outputs.cache-hit != 'true' + run: cargo install --git https://github.com/coral-xyz/anchor --tag v${{ env.ANCHOR_CLI_VERSION }} anchor-cli --locked shell: bash diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 35c9b61..0a3b57a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,10 +7,9 @@ on: - release_* env: - SOLANA_CLI_VERSION: 2.3.13 - NODE_VERSION: 22.15.0 - ANCHOR_CLI_VERSION: 0.31.1 - TOOLCHAIN: 1.85.0 + SOLANA_CLI_VERSION: 3.1.10 + ANCHOR_CLI_VERSION: 1.0.2 + TOOLCHAIN: 1.93.0 jobs: program_changed_files: @@ -27,7 +26,6 @@ jobs: with: files: | programs/zap - protocol-zap zap-sdk anchor_build: @@ -50,7 +48,7 @@ jobs: with: path: ~/.anchor key: anchor-${{ runner.os }}-${{ hashFiles('Anchor.toml') }} - - run: anchor build + - run: anchor build --ignore-keys shell: bash unit_test: @@ -68,8 +66,6 @@ jobs: - uses: Swatinem/rust-cache@v2 - run: cargo test --package zap shell: bash - - run: cargo test --package protocol-zap - shell: bash integration_test: runs-on: ubuntu-latest @@ -82,8 +78,8 @@ jobs: - uses: ./.github/actions/setup-solana - uses: ./.github/actions/setup-dep - uses: ./.github/actions/setup-anchor - # Install pnpm - - uses: pnpm/action-setup@v4 # docs https://pnpm.io/continuous-integration#github-actions + # Install bun + - uses: oven-sh/setup-bun@v2 # Install rust + toolchain - uses: dtolnay/rust-toolchain@stable with: @@ -96,9 +92,9 @@ jobs: id: cache-node-modules with: path: ./node_modules - key: ${{ runner.os }}-${{ hashFiles('./package-lock.json') }} + key: ${{ runner.os }}-${{ hashFiles('./bun.lock') }} # Testing - - run: pnpm install + - run: bun install shell: bash - - run: pnpm test + - run: bun run build-local-test shell: bash diff --git a/.gitignore b/.gitignore index fe66e7c..144df3a 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,7 @@ target node_modules test-ledger .yarn -deploy.sh \ No newline at end of file +deploy.sh + +.notes +CLAUDE.md \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/.prettierrc @@ -0,0 +1 @@ +{} diff --git a/Anchor.toml b/Anchor.toml index 8fca503..8ea4b13 100644 --- a/Anchor.toml +++ b/Anchor.toml @@ -1,7 +1,7 @@ [toolchain] -anchor_version = "0.31.1" -solana_version = "2.3.13" -package_manager = "pnpm" +anchor_version = "1.0.2" +solana_version = "3.1.10" +package_manager = "bun" [features] resolution = true @@ -17,5 +17,4 @@ url = "https://api.apr.dev" cluster = "localnet" wallet = "~/.config/solana/id.json" -[scripts] -test = "pnpm ts-mocha --no-experimental-strip-types -p ./tsconfig.json -t 1000000 tests/**/*.ts" +[hooks] diff --git a/CHANGELOG.md b/CHANGELOG.md index fe65229..4d5e8ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Breaking Changes +## zap [0.2.3] [PR #53](https://github.com/MeteoraAg/zap-program/pull/53) + +### Changed + +- Update anchor to `1.0.2` + ## zap [0.2.2] [PR #46](https://github.com/MeteoraAg/zap-program/pull/46) ### Added diff --git a/Cargo.lock b/Cargo.lock index 47046dd..7ccefcf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -38,18 +38,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "ahash" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" -dependencies = [ - "cfg-if", - "once_cell", - "version_check", - "zerocopy", -] - [[package]] name = "aho-corasick" version = "1.1.3" @@ -71,11 +59,10 @@ dependencies = [ [[package]] name = "anchor-attribute-access-control" -version = "0.31.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f70fd141a4d18adf11253026b32504f885447048c7494faf5fa83b01af9c0cf" +checksum = "0b8cd233e382ea499e3c1e51bf4f0cb367abb37bb64e9e3667a5d618af3fe265" dependencies = [ - "anchor-syn", "proc-macro2", "quote", "syn 1.0.109", @@ -83,12 +70,11 @@ dependencies = [ [[package]] name = "anchor-attribute-account" -version = "0.31.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715a261c57c7679581e06f07a74fa2af874ac30f86bd8ea07cca4a7e5388a064" +checksum = "2e12171382e24c5cda6b0f7236a4f6bb9b657da997780c88a0ef794a419298bf" dependencies = [ "anchor-syn", - "bs58", "proc-macro2", "quote", "syn 1.0.109", @@ -96,9 +82,9 @@ dependencies = [ [[package]] name = "anchor-attribute-constant" -version = "0.31.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "730d6df8ae120321c5c25e0779e61789e4b70dc8297102248902022f286102e4" +checksum = "510f8db71375446405dfabdaf157fb7d3fbf33470c98ed75fad4c467e8ca0080" dependencies = [ "anchor-syn", "quote", @@ -107,9 +93,9 @@ dependencies = [ [[package]] name = "anchor-attribute-error" -version = "0.31.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27e6e449cc3a37b2880b74dcafb8e5a17b954c0e58e376432d7adc646fb333ef" +checksum = "72b203169a49ea74da7782281e740ea8e21017c85f8f3b1ab452712c9796d28f" dependencies = [ "anchor-syn", "quote", @@ -118,9 +104,9 @@ dependencies = [ [[package]] name = "anchor-attribute-event" -version = "0.31.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7710e4c54adf485affcd9be9adec5ef8846d9c71d7f31e16ba86ff9fc1dd49f" +checksum = "c50a462651e573ec6cc632e8f607e8b1e11f620f6fc26badaeff04fd49f45cc1" dependencies = [ "anchor-syn", "proc-macro2", @@ -130,26 +116,24 @@ dependencies = [ [[package]] name = "anchor-attribute-program" -version = "0.31.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ecfd49b2aeadeb32f35262230db402abed76ce87e27562b34f61318b2ec83c" +checksum = "84704ee25a7e788afd9d846945cba536cfdcd53b463e8a337cf237cd897ca4d9" dependencies = [ "anchor-lang-idl", "anchor-syn", "anyhow", - "bs58", "heck", "proc-macro2", "quote", - "serde_json", "syn 1.0.109", ] [[package]] name = "anchor-derive-accounts" -version = "0.31.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be89d160793a88495af462a7010b3978e48e30a630c91de47ce2c1d3cb7a6149" +checksum = "98bf49664527c7bb0ebca04e9b5bfb618d6ceb849ef44a8149241d244bbfb0f6" dependencies = [ "anchor-syn", "quote", @@ -158,12 +142,12 @@ dependencies = [ [[package]] name = "anchor-derive-serde" -version = "0.31.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abc6ee78acb7bfe0c2dd2abc677aaa4789c0281a0c0ef01dbf6fe85e0fd9e6e4" +checksum = "8140a40827bdfd74720f1f3084778fa081262f2f43bd4bdbc350f98ce1b341c6" dependencies = [ "anchor-syn", - "borsh-derive-internal", + "proc-macro-crate", "proc-macro2", "quote", "syn 1.0.109", @@ -171,9 +155,9 @@ dependencies = [ [[package]] name = "anchor-derive-space" -version = "0.31.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134a01c0703f6fd355a0e472c033f6f3e41fac1ef6e370b20c50f4c8d022cea7" +checksum = "1ee5b6fa5dde037399d3e0bb322a1c7360ad8adc6b6afdd797d19566c039dcfb" dependencies = [ "proc-macro2", "quote", @@ -182,9 +166,9 @@ dependencies = [ [[package]] name = "anchor-lang" -version = "0.31.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6bab117055905e930f762c196e08f861f8dfe7241b92cee46677a3b15561a0a" +checksum = "1bac4de7c9a9a69180798af701e22302cc0ebf2ef683b843706a1b7809454735" dependencies = [ "anchor-attribute-access-control", "anchor-attribute-account", @@ -198,9 +182,30 @@ dependencies = [ "anchor-lang-idl", "base64 0.21.7", "bincode", - "borsh 0.10.4", + "borsh", "bytemuck", - "solana-program", + "const-crypto", + "solana-account-info", + "solana-clock", + "solana-cpi", + "solana-define-syscall 3.0.0", + "solana-feature-gate-interface", + "solana-instruction", + "solana-instructions-sysvar", + "solana-invoke", + "solana-loader-v3-interface", + "solana-msg", + "solana-program-entrypoint", + "solana-program-error", + "solana-program-memory", + "solana-program-option", + "solana-program-pack", + "solana-pubkey 3.0.0", + "solana-sdk-ids", + "solana-stake-interface", + "solana-system-interface 2.0.0", + "solana-sysvar", + "solana-sysvar-id", "thiserror 1.0.69", ] @@ -216,7 +221,7 @@ dependencies = [ "regex", "serde", "serde_json", - "sha2 0.10.9", + "sha2", ] [[package]] @@ -231,24 +236,24 @@ dependencies = [ [[package]] name = "anchor-spl" -version = "0.31.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c08cb5d762c0694f74bd02c9a5b04ea53cefc496e2c27b3234acffca5cd076b" +checksum = "0b8005eef3a48a9a8cb21b126ae3bb252647e353afe6ef7f19e545177801c841" dependencies = [ "anchor-lang", - "spl-associated-token-account", + "spl-associated-token-account-interface", "spl-pod", - "spl-token", - "spl-token-2022", + "spl-token-2022-interface", "spl-token-group-interface", + "spl-token-interface", "spl-token-metadata-interface", ] [[package]] name = "anchor-syn" -version = "0.31.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dc7a6d90cc643df0ed2744862cdf180587d1e5d28936538c18fc8908489ed67" +checksum = "6940253e80acf0f8e83b1ebd9c4772c496aedcce6ad19aa85ce75d0b6b188298" dependencies = [ "anyhow", "bs58", @@ -257,8 +262,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "serde_json", - "sha2 0.10.9", + "sha2", "syn 1.0.109", "thiserror 1.0.69", ] @@ -413,7 +417,7 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.117", ] [[package]] @@ -422,12 +426,6 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" -[[package]] -name = "base64" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" - [[package]] name = "base64" version = "0.21.7" @@ -467,29 +465,6 @@ dependencies = [ "wyz", ] -[[package]] -name = "blake3" -version = "1.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" -dependencies = [ - "arrayref", - "arrayvec", - "cc", - "cfg-if", - "constant_time_eq", - "digest 0.10.7", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array", -] - [[package]] name = "block-buffer" version = "0.10.4" @@ -499,39 +474,16 @@ dependencies = [ "generic-array", ] -[[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.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" dependencies = [ - "borsh-derive 1.5.7", + "borsh-derive", "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.5.7" @@ -539,32 +491,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3" dependencies = [ "once_cell", - "proc-macro-crate 3.3.0", - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[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-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] @@ -600,22 +530,22 @@ checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" [[package]] name = "bytemuck" -version = "1.23.1" +version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.10.0" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "441473f2b4b0459a68628c744bc61d23e730fb00128b841d30fa4bb3972257e4" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.117", ] [[package]] @@ -637,16 +567,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a98356df42a2eb1bd8f1793ae4ee4de48e384dd974ce5eac8eee802edb7492be" dependencies = [ "serde", - "toml 0.8.23", -] - -[[package]] -name = "cc" -version = "1.2.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deec109607ca693028562ed836a5f1c4b8bd77755c4e132fc5ce11b0b6211ae7" -dependencies = [ - "shlex", + "toml", ] [[package]] @@ -671,26 +592,6 @@ dependencies = [ "inout", ] -[[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" @@ -721,29 +622,25 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "constant_time_eq" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" - [[package]] name = "cp-amm" -version = "0.2.0" -source = "git+https://github.com/MeteoraAg/damm-v2?rev=58a13fcf45516a9f27f2bd2a2056fb66673454e0#58a13fcf45516a9f27f2bd2a2056fb66673454e0" +version = "0.2.3" +source = "git+https://github.com/MeteoraAg/damm-v2?rev=b66f6d04e6f64ff79e5a0037d5aedd5753c1886e#b66f6d04e6f64ff79e5a0037d5aedd5753c1886e" dependencies = [ "anchor-lang", "anchor-spl", + "borsh", "bytemuck", "const-crypto", + "derive-variant-count", "num", "num-traits", "num_enum", - "pinocchio 0.9.0", + "pinocchio", "pinocchio-token", "pinocchio-token-2022", - "protocol-zap", "ruint", + "solana-instruction", "spl-token-metadata-interface", "static_assertions", ] @@ -809,7 +706,42 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.117", +] + +[[package]] +name = "darling" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.117", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.117", ] [[package]] @@ -829,6 +761,15 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive-variant-count" +version = "0.1.0" +source = "git+https://github.com/MeteoraAg/damm-v2?rev=b66f6d04e6f64ff79e5a0037d5aedd5753c1886e#b66f6d04e6f64ff79e5a0037d5aedd5753c1886e" +dependencies = [ + "quote", + "syn 2.0.117", +] + [[package]] name = "digest" version = "0.9.0" @@ -844,7 +785,7 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.4", + "block-buffer", "crypto-common", "subtle", ] @@ -905,9 +846,9 @@ checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "five8" -version = "0.2.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75b8549488b4715defcb0d8a8a1c1c76a80661b5fa106b4ca0e7fce59d7d875" +checksum = "23f76610e969fa1784327ded240f1e28a3fd9520c9cec93b636fcf62dd37f772" dependencies = [ "five8_core", ] @@ -921,6 +862,15 @@ dependencies = [ "five8_core", ] +[[package]] +name = "five8_const" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a0f1728185f277989ca573a402716ae0beaaea3f76a8ff87ef9dd8fb19436c5" +dependencies = [ + "five8_core", +] + [[package]] name = "five8_core" version = "0.1.2" @@ -961,17 +911,6 @@ dependencies = [ "version_check", ] -[[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.16" @@ -981,7 +920,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] @@ -999,18 +938,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" -dependencies = [ - "ahash", -] - -[[package]] -name = "hashbrown" -version = "0.15.4" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" +checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" [[package]] name = "heck" @@ -1036,6 +966,12 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + [[package]] name = "impl-codec" version = "0.6.0" @@ -1053,17 +989,17 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.117", ] [[package]] name = "indexmap" -version = "2.10.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.15.4", + "hashbrown", ] [[package]] @@ -1109,13 +1045,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "jupiter" -version = "0.1.0" -dependencies = [ - "anchor-lang", -] - [[package]] name = "keccak" version = "0.1.5" @@ -1149,52 +1078,6 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" -[[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", - "libsecp256k1-gen-ecmult", - "libsecp256k1-gen-genmult", - "rand 0.7.3", - "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-gen-ecmult" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3" -dependencies = [ - "libsecp256k1-core", -] - -[[package]] -name = "libsecp256k1-gen-genmult" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" -dependencies = [ - "libsecp256k1-core", -] - [[package]] name = "lock_api" version = "0.4.13" @@ -1217,15 +1100,6 @@ version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" -[[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" @@ -1279,7 +1153,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.117", ] [[package]] @@ -1325,9 +1199,9 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" dependencies = [ "num_enum_derive", "rustversion", @@ -1335,14 +1209,14 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" dependencies = [ - "proc-macro-crate 3.3.0", + "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.117", ] [[package]] @@ -1379,10 +1253,10 @@ version = "3.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34b4653168b563151153c9e4c08ebed57fb8262bebfa79711552fa983c623e7a" dependencies = [ - "proc-macro-crate 3.3.0", + "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.117", ] [[package]] @@ -1414,6 +1288,12 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "pastey" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5a797f0e07bdf071d15742978fc3128ec6c22891c31a3a931513263904c982a" + [[package]] name = "pbkdf2" version = "0.11.0" @@ -1444,30 +1324,13 @@ name = "pinocchio" version = "0.9.0" source = "git+https://github.com/anza-xyz/pinocchio.git?rev=17b0e862c01a868ea07ef81a2f8a9b4a504bdfed#17b0e862c01a868ea07ef81a2f8a9b4a504bdfed" -[[package]] -name = "pinocchio" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b971851087bc3699b001954ad02389d50c41405ece3548cbcafc88b3e20017a" - -[[package]] -name = "pinocchio-pubkey" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0225638cadcbebae8932cb7f49cb5da7c15c21beb19f048f05a5ca7d93f065" -dependencies = [ - "five8_const", - "pinocchio 0.9.2", - "sha2-const-stable", -] - [[package]] name = "pinocchio-pubkey" version = "0.3.0" source = "git+https://github.com/anza-xyz/pinocchio.git?rev=17b0e862c01a868ea07ef81a2f8a9b4a504bdfed#17b0e862c01a868ea07ef81a2f8a9b4a504bdfed" dependencies = [ - "five8_const", - "pinocchio 0.9.0", + "five8_const 0.1.4", + "pinocchio", "sha2-const-stable", ] @@ -1476,8 +1339,8 @@ name = "pinocchio-token" version = "0.4.0" source = "git+https://github.com/anza-xyz/pinocchio.git?rev=17b0e862c01a868ea07ef81a2f8a9b4a504bdfed#17b0e862c01a868ea07ef81a2f8a9b4a504bdfed" dependencies = [ - "pinocchio 0.9.0", - "pinocchio-pubkey 0.3.0 (git+https://github.com/anza-xyz/pinocchio.git?rev=17b0e862c01a868ea07ef81a2f8a9b4a504bdfed)", + "pinocchio", + "pinocchio-pubkey", ] [[package]] @@ -1485,8 +1348,8 @@ name = "pinocchio-token-2022" version = "0.1.0" source = "git+https://github.com/anza-xyz/pinocchio.git?rev=17b0e862c01a868ea07ef81a2f8a9b4a504bdfed#17b0e862c01a868ea07ef81a2f8a9b4a504bdfed" dependencies = [ - "pinocchio 0.9.0", - "pinocchio-pubkey 0.3.0 (git+https://github.com/anza-xyz/pinocchio.git?rev=17b0e862c01a868ea07ef81a2f8a9b4a504bdfed)", + "pinocchio", + "pinocchio-pubkey", ] [[package]] @@ -1523,27 +1386,18 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" -dependencies = [ - "toml 0.5.11", -] - -[[package]] -name = "proc-macro-crate" -version = "3.3.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit", + "toml_edit 0.25.11+spec-1.1.0", ] [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] @@ -1563,20 +1417,6 @@ dependencies = [ "unarray", ] -[[package]] -name = "protocol-zap" -version = "0.1.0" -dependencies = [ - "borsh 0.10.4", - "jupiter", - "num_enum", - "pinocchio 0.9.2", - "pinocchio-pubkey 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "ruint", - "thiserror 2.0.12", - "zap-sdk", -] - [[package]] name = "qstring" version = "0.7.2" @@ -1588,9 +1428,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.40" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -1607,19 +1447,6 @@ 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.5" @@ -1641,16 +1468,6 @@ dependencies = [ "rand_core 0.9.3", ] -[[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" @@ -1671,15 +1488,6 @@ dependencies = [ "rand_core 0.9.3", ] -[[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" @@ -1698,15 +1506,6 @@ 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.4.0" @@ -1865,10 +1664,11 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" dependencies = [ + "serde_core", "serde_derive", ] @@ -1881,15 +1681,24 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.117", ] [[package]] @@ -1913,19 +1722,6 @@ dependencies = [ "serde", ] -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - [[package]] name = "sha2" version = "0.10.9" @@ -1953,12 +1749,6 @@ dependencies = [ "keccak", ] -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - [[package]] name = "smallvec" version = "1.15.1" @@ -1966,106 +1756,72 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] -name = "solana-account" -version = "2.2.1" +name = "solana-account-info" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f949fe4edaeaea78c844023bfc1c898e0b1f5a100f8a8d2d0f85d0a7b090258" +checksum = "a9cf16495d9eb53e3d04e72366a33bb1c20c24e78c171d8b8f5978357b63ae95" dependencies = [ - "solana-account-info", - "solana-clock", - "solana-instruction", - "solana-pubkey", - "solana-sdk-ids", + "solana-address 2.6.0", + "solana-program-error", + "solana-program-memory", ] [[package]] -name = "solana-account-info" -version = "2.3.0" +name = "solana-address" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8f5152a288ef1912300fc6efa6c2d1f9bb55d9398eb6c72326360b8063987da" +checksum = "a2ecac8e1b7f74c2baa9e774c42817e3e75b20787134b76cc4d45e8a604488f5" dependencies = [ - "bincode", - "serde", - "solana-program-error", - "solana-program-memory", - "solana-pubkey", + "solana-address 2.6.0", ] [[package]] -name = "solana-address-lookup-table-interface" -version = "2.2.2" +name = "solana-address" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1673f67efe870b64a65cb39e6194be5b26527691ce5922909939961a6e6b395" +checksum = "f1384b52c435a750cc9c538760fc7bb472fd78e65a9900a2d07312c5bb335b72" dependencies = [ - "bincode", + "borsh", "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8", + "five8_const 1.0.0", "serde", "serde_derive", - "solana-clock", - "solana-instruction", - "solana-pubkey", - "solana-sdk-ids", - "solana-slot-hashes", + "sha2-const-stable", + "solana-atomic-u64", + "solana-define-syscall 5.1.0", + "solana-nullable", + "solana-program-error", + "solana-sanitize", + "solana-sha256-hasher", + "wincode", ] [[package]] name = "solana-atomic-u64" -version = "2.2.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52e52720efe60465b052b9e7445a01c17550666beec855cce66f44766697bc2" +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", - "num-traits", - "solana-define-syscall", -] - -[[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", -] - -[[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", - "solana-hash", - "solana-sanitize", -] - [[package]] name = "solana-borsh" -version = "2.2.1" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718333bcd0a1a7aed6655aa66bef8d7fb047944922b2d3a18f49cbc13e73d004" +checksum = "c04abbae16f57178a163125805637b8a076175bb5c0002fb04f4792bea901cf7" dependencies = [ - "borsh 0.10.4", - "borsh 1.5.7", + "borsh", ] [[package]] name = "solana-clock" -version = "2.2.2" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb482ab70fced82ad3d7d3d87be33d466a3498eb8aa856434ff3c0dfc2e2e31" +checksum = "95cf11109c3b6115cc510f1e31f06fdd52f504271bc24ef5f1249fbbcae5f9f3" dependencies = [ "serde", "serde_derive", @@ -2076,52 +1832,55 @@ dependencies = [ [[package]] name = "solana-cpi" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dc71126edddc2ba014622fc32d0f5e2e78ec6c5a1e0eb511b85618c09e9ea11" +checksum = "4dea26709d867aada85d0d3617db0944215c8bb28d3745b912de7db13a23280c" dependencies = [ "solana-account-info", - "solana-define-syscall", + "solana-define-syscall 4.0.1", "solana-instruction", "solana-program-error", - "solana-pubkey", + "solana-pubkey 4.2.0", "solana-stable-layout", ] [[package]] name = "solana-curve25519" -version = "2.3.5" +version = "3.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "901ee3d2de34ff51365cff6a9112b74bb7ede92581b21b3550bdeac4c407b267" +checksum = "78600945fd087ceae784e4afee6c22610d5ee480fc73d6df1d733c6f06507d3e" dependencies = [ "bytemuck", "bytemuck_derive", "curve25519-dalek", - "solana-define-syscall", + "solana-define-syscall 3.0.0", "subtle", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] -name = "solana-decode-error" -version = "2.3.0" +name = "solana-define-syscall" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c781686a18db2f942e70913f7ca15dc120ec38dcab42ff7557db2c70c625a35" -dependencies = [ - "num-traits", -] +checksum = "f9697086a4e102d28a156b8d6b521730335d6951bd39a5e766512bbe09007cee" [[package]] name = "solana-define-syscall" -version = "2.3.0" +version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ae3e2abcf541c8122eafe9a625d4d194b4023c20adde1e251f94e056bb1aee2" +checksum = "57e5b1c0bc1d4a4d10c88a4100499d954c09d3fecfae4912c1a074dff68b1738" + +[[package]] +name = "solana-define-syscall" +version = "5.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21e14a4f604117f379840956a8fc8695e4c84f5b0ebed192f31f60d9b85d581d" [[package]] name = "solana-derivation-path" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "939756d798b25c5ec3cca10e06212bdca3b1443cb9bb740a38124f58b258737b" +checksum = "ff71743072690fdbdfcdc37700ae1cb77485aaad49019473a81aee099b1e0b8c" dependencies = [ "derivation-path", "qstring", @@ -2130,9 +1889,9 @@ dependencies = [ [[package]] name = "solana-epoch-rewards" -version = "2.2.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b575d3dd323b9ea10bb6fe89bf6bf93e249b215ba8ed7f68f1a3633f384db7" +checksum = "f5e7b0ba210593ba8ddd39d6d234d81795d1671cebf3026baa10d5dc23ac42f0" dependencies = [ "serde", "serde_derive", @@ -2144,9 +1903,9 @@ dependencies = [ [[package]] name = "solana-epoch-schedule" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fce071fbddecc55d727b1d7ed16a629afe4f6e4c217bc8d00af3b785f6f67ed" +checksum = "9ce264b7b42322325947c4136a09460bf5c73d9aa8262c9b0a2064be63ba8639" dependencies = [ "serde", "serde_derive", @@ -2155,51 +1914,22 @@ dependencies = [ "solana-sysvar-id", ] -[[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", - "solana-clock", - "solana-hash", - "solana-instruction", - "solana-keccak-hasher", - "solana-message", - "solana-nonce", - "solana-pubkey", - "solana-sdk-ids", - "solana-system-interface", - "thiserror 2.0.12", -] - [[package]] name = "solana-feature-gate-interface" -version = "2.2.2" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f5c5382b449e8e4e3016fb05e418c53d57782d8b5c30aa372fc265654b956d" +checksum = "75ca9b5cbb6f500f7fd73db5bd95640f71a83f04d6121a0e59a43b202dca2731" dependencies = [ - "bincode", - "serde", - "serde_derive", - "solana-account", - "solana-account-info", - "solana-instruction", "solana-program-error", - "solana-pubkey", - "solana-rent", + "solana-pubkey 4.2.0", "solana-sdk-ids", - "solana-system-interface", ] [[package]] name = "solana-fee-calculator" -version = "2.2.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89bc408da0fb3812bc3008189d148b4d3e08252c79ad810b245482a3f70cd8d" +checksum = "57e8add96b5741573e9f7529c4bb7719cfcfa999c3847a68cdfaef0cb6adf567" dependencies = [ "log", "serde", @@ -2208,51 +1938,53 @@ dependencies = [ [[package]] name = "solana-hash" -version = "2.3.0" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b96e9f0300fa287b545613f007dfe20043d7812bee255f418c1eb649c93b63" +checksum = "f1b113239362cee7093bfb250467138f079a2a03673181dc15bff6ccd677912d" dependencies = [ - "borsh 1.5.7", "bytemuck", "bytemuck_derive", "five8", - "js-sys", "serde", "serde_derive", - "solana-atomic-u64", - "solana-sanitize", - "wasm-bindgen", ] [[package]] name = "solana-instruction" -version = "2.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47298e2ce82876b64f71e9d13a46bc4b9056194e7f9937ad3084385befa50885" +checksum = "37ebb0ffd19263051bc3f683fcc086134b8ff23af894dcb63f7563c7137b42f1" dependencies = [ "bincode", - "borsh 1.5.7", - "getrandom 0.2.16", - "js-sys", - "num-traits", "serde", "serde_derive", - "solana-define-syscall", - "solana-pubkey", - "wasm-bindgen", + "solana-define-syscall 5.1.0", + "solana-instruction-error", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-instruction-error" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0b188842592fdf6cb96f55263ae1bf11713ab5114401d1d5a881ed7cc41bef6" +dependencies = [ + "num-traits", + "solana-program-error", ] [[package]] name = "solana-instructions-sysvar" -version = "2.2.2" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0e85a6fad5c2d0c4f5b91d34b8ca47118fc593af706e523cdbedf846a954f57" +checksum = "7ddf67876c541aa1e21ee1acae35c95c6fbc61119814bfef70579317a5e26955" dependencies = [ "bitflags", "solana-account-info", "solana-instruction", + "solana-instruction-error", "solana-program-error", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sanitize", "solana-sdk-ids", "solana-serialize-utils", @@ -2260,22 +1992,23 @@ dependencies = [ ] [[package]] -name = "solana-keccak-hasher" -version = "2.2.1" +name = "solana-invoke" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7aeb957fbd42a451b99235df4942d96db7ef678e8d5061ef34c9b34cae12f79" +checksum = "4065031f5c7dd29ef5f5003c1a353011eeabbafa6c5a5033da0cedbfca824b94" dependencies = [ - "sha3", - "solana-define-syscall", - "solana-hash", - "solana-sanitize", + "solana-account-info", + "solana-define-syscall 3.0.0", + "solana-instruction", + "solana-program-entrypoint", + "solana-stable-layout", ] [[package]] name = "solana-last-restart-slot" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a6360ac2fdc72e7463565cd256eedcf10d7ef0c28a1249d261ec168c1b55cdd" +checksum = "dcda154ec827f5fc1e4da0af3417951b7e9b8157540f81f936c4a8b1156134d0" dependencies = [ "serde", "serde_derive", @@ -2284,265 +2017,107 @@ dependencies = [ "solana-sysvar-id", ] -[[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", - "solana-pubkey", - "solana-sdk-ids", -] - [[package]] name = "solana-loader-v3-interface" -version = "5.0.0" +version = "6.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f7162a05b8b0773156b443bccd674ea78bb9aa406325b467ea78c06c99a63a2" +checksum = "2e0538d4dbc9022e01616f1c58f2db98ece739c5d5ed4a2ef8737a953e76a2d4" dependencies = [ "serde", "serde_bytes", "serde_derive", "solana-instruction", - "solana-pubkey", - "solana-sdk-ids", - "solana-system-interface", -] - -[[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", - "solana-pubkey", - "solana-sdk-ids", - "solana-system-interface", -] - -[[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", - "solana-hash", - "solana-instruction", - "solana-pubkey", - "solana-sanitize", + "solana-pubkey 4.2.0", "solana-sdk-ids", - "solana-short-vec", - "solana-system-interface", - "solana-transaction-error", - "wasm-bindgen", + "solana-system-interface 3.2.0", ] [[package]] name = "solana-msg" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36a1a14399afaabc2781a1db09cb14ee4cc4ee5c7a5a3cfcc601811379a8092" +checksum = "726b7cbbc6be6f1c6f29146ac824343b9415133eee8cce156452ad1db93f8008" dependencies = [ - "solana-define-syscall", + "solana-define-syscall 5.1.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-nonce" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703e22eb185537e06204a5bd9d509b948f0066f2d1d814a6f475dafb3ddf1325" -dependencies = [ - "serde", - "serde_derive", - "solana-fee-calculator", - "solana-hash", - "solana-pubkey", - "solana-sha256-hasher", -] - -[[package]] -name = "solana-program" -version = "2.3.0" +name = "solana-nullable" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98eca145bd3545e2fbb07166e895370576e47a00a7d824e325390d33bf467210" +checksum = "da028344c595c7416769ff648d206de7962571291a4cea24c38a60b6f40d53bb" dependencies = [ - "bincode", - "blake3", - "borsh 0.10.4", - "borsh 1.5.7", - "bs58", "bytemuck", - "console_error_panic_hook", - "console_log", - "getrandom 0.2.16", - "lazy_static", - "log", - "memoffset", - "num-bigint", - "num-derive", - "num-traits", - "rand 0.8.5", - "serde", - "serde_bytes", - "serde_derive", - "solana-account-info", - "solana-address-lookup-table-interface", - "solana-atomic-u64", - "solana-big-mod-exp", - "solana-bincode", - "solana-blake3-hasher", - "solana-borsh", - "solana-clock", - "solana-cpi", - "solana-decode-error", - "solana-define-syscall", - "solana-epoch-rewards", - "solana-epoch-schedule", - "solana-example-mocks", - "solana-feature-gate-interface", - "solana-fee-calculator", - "solana-hash", - "solana-instruction", - "solana-instructions-sysvar", - "solana-keccak-hasher", - "solana-last-restart-slot", - "solana-loader-v2-interface", - "solana-loader-v3-interface", - "solana-loader-v4-interface", - "solana-message", - "solana-msg", - "solana-native-token", - "solana-nonce", - "solana-program-entrypoint", - "solana-program-error", - "solana-program-memory", - "solana-program-option", - "solana-program-pack", - "solana-pubkey", - "solana-rent", - "solana-sanitize", - "solana-sdk-ids", - "solana-sdk-macro", - "solana-secp256k1-recover", - "solana-serde-varint", - "solana-serialize-utils", - "solana-sha256-hasher", - "solana-short-vec", - "solana-slot-hashes", - "solana-slot-history", - "solana-stable-layout", - "solana-stake-interface", - "solana-system-interface", - "solana-sysvar", - "solana-sysvar-id", - "solana-vote-interface", - "thiserror 2.0.12", - "wasm-bindgen", ] [[package]] name = "solana-program-entrypoint" -version = "2.3.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32ce041b1a0ed275290a5008ee1a4a6c48f5054c8a3d78d313c08958a06aedbd" +checksum = "84c9b0a1ff494e05f503a08b3d51150b73aa639544631e510279d6375f290997" dependencies = [ "solana-account-info", - "solana-msg", + "solana-define-syscall 4.0.1", "solana-program-error", - "solana-pubkey", + "solana-pubkey 4.2.0", ] [[package]] name = "solana-program-error" -version = "2.2.2" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ee2e0217d642e2ea4bee237f37bd61bb02aec60da3647c48ff88f6556ade775" +checksum = "4f04fa578707b3612b095f0c8e19b66a1233f7c42ca8082fcb3b745afcc0add6" dependencies = [ - "borsh 1.5.7", - "num-traits", - "serde", - "serde_derive", - "solana-decode-error", - "solana-instruction", - "solana-msg", - "solana-pubkey", + "borsh", ] [[package]] name = "solana-program-memory" -version = "2.3.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a5426090c6f3fd6cfdc10685322fede9ca8e5af43cd6a59e98bfe4e91671712" +checksum = "4068648649653c2c50546e9a7fb761791b5ab0cda054c771bb5808d3a4b9eb52" dependencies = [ - "solana-define-syscall", + "solana-define-syscall 4.0.1", ] [[package]] name = "solana-program-option" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc677a2e9bc616eda6dbdab834d463372b92848b2bfe4a1ed4e4b4adba3397d0" +checksum = "7a88006a9b8594088cec9027ab77caaaa258a2aaa2083d3f086c44b42e50aeab" [[package]] name = "solana-program-pack" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "319f0ef15e6e12dc37c597faccb7d62525a509fec5f6975ecb9419efddeb277b" +checksum = "3d7701cb15b90667ae1c89ef4ac35a59c61e66ce58ddee13d729472af7f41d59" dependencies = [ "solana-program-error", ] [[package]] name = "solana-pubkey" -version = "2.4.0" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8909d399deb0851aa524420beeb5646b115fd253ef446e35fe4504c904da3941" +dependencies = [ + "solana-address 1.1.0", +] + +[[package]] +name = "solana-pubkey" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b62adb9c3261a052ca1f999398c388f1daf558a1b492f60a6d9e64857db4ff1" +checksum = "7db719574990de7e8b0f55a8593ac92a5ccb42c8ce67b3e4bf05b139d5d9ee71" dependencies = [ - "borsh 0.10.4", - "borsh 1.5.7", - "bytemuck", - "bytemuck_derive", - "curve25519-dalek", - "five8", - "five8_const", - "getrandom 0.2.16", - "js-sys", - "num-traits", - "serde", - "serde_derive", - "solana-atomic-u64", - "solana-decode-error", - "solana-define-syscall", - "solana-sanitize", - "solana-sha256-hasher", - "wasm-bindgen", + "solana-address 2.6.0", ] [[package]] name = "solana-rent" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1aea8fdea9de98ca6e8c2da5827707fb3842833521b528a713810ca685d2480" +checksum = "e860d5499a705369778647e97d760f7670adfb6fc8419dd3d568deccd46d5487" dependencies = [ "serde", "serde_derive", @@ -2553,113 +2128,78 @@ dependencies = [ [[package]] name = "solana-sanitize" -version = "2.2.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61f1bc1357b8188d9c4a3af3fc55276e56987265eb7ad073ae6f8180ee54cecf" +checksum = "dcf09694a0fc14e5ffb18f9b7b7c0f15ecb6eac5b5610bf76a1853459d19daf9" [[package]] name = "solana-sdk-ids" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5d8b9cc68d5c88b062a33e23a6466722467dde0035152d8fb1afbcdf350a5f" +checksum = "def234c1956ff616d46c9dd953f251fa7096ddbaa6d52b165218de97882b7280" dependencies = [ - "solana-pubkey", + "solana-address 2.6.0", ] [[package]] name = "solana-sdk-macro" -version = "2.2.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86280da8b99d03560f6ab5aca9de2e38805681df34e0bb8f238e69b29433b9df" +checksum = "8765316242300c48242d84a41614cb3388229ec353ba464f6fe62a733e41806f" dependencies = [ "bs58", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.117", ] -[[package]] -name = "solana-secp256k1-recover" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baa3120b6cdaa270f39444f5093a90a7b03d296d362878f7a6991d6de3bbe496" -dependencies = [ - "libsecp256k1", - "solana-define-syscall", - "thiserror 2.0.12", -] - -[[package]] -name = "solana-security-txt" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "468aa43b7edb1f9b7b7b686d5c3aeb6630dc1708e86e31343499dd5c4d775183" - [[package]] name = "solana-seed-derivable" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3beb82b5adb266c6ea90e5cf3967235644848eac476c5a1f2f9283a143b7c97f" -dependencies = [ - "solana-derivation-path", -] - -[[package]] -name = "solana-seed-phrase" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36187af2324f079f65a675ec22b31c24919cb4ac22c79472e85d819db9bbbc15" +checksum = "ff7bdb72758e3bec33ed0e2658a920f1f35dfb9ed576b951d20d63cb61ecd95c" dependencies = [ - "hmac", - "pbkdf2", - "sha2 0.10.9", + "solana-derivation-path", ] [[package]] -name = "solana-serde-varint" -version = "2.2.2" +name = "solana-seed-phrase" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a7e155eba458ecfb0107b98236088c3764a09ddf0201ec29e52a0be40857113" +checksum = "dc905b200a95f2ea9146e43f2a7181e3aeb55de6bc12afb36462d00a3c7310de" dependencies = [ - "serde", + "hmac", + "pbkdf2", + "sha2", ] [[package]] name = "solana-serialize-utils" -version = "2.2.1" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "817a284b63197d2b27afdba829c5ab34231da4a9b4e763466a003c40ca4f535e" +checksum = "5d7cc401931d178472358e6b78dc72d031dc08f752d7410f0e8bd259dd6f02fa" dependencies = [ - "solana-instruction", - "solana-pubkey", + "solana-instruction-error", + "solana-pubkey 4.2.0", "solana-sanitize", ] [[package]] name = "solana-sha256-hasher" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0037386961c0d633421f53560ad7c80675c0447cba4d1bb66d60974dd486c7ea" +checksum = "db7dc3011ea4c0334aaaa7e7128cb390ecf546b28d412e9bf2064680f57f588f" dependencies = [ - "sha2 0.10.9", - "solana-define-syscall", + "sha2", + "solana-define-syscall 4.0.1", "solana-hash", ] -[[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-signature" -version = "2.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c8ec8e657aecfc187522fc67495142c12f35e55ddeca8698edbb738b8dbd8c" +checksum = "e7a73c6e97cc2108be0adf6a6ea326434f8398df9d7eed81da2a4548b69e971c" dependencies = [ "five8", "solana-sanitize", @@ -2667,20 +2207,20 @@ dependencies = [ [[package]] name = "solana-signer" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c41991508a4b02f021c1342ba00bcfa098630b213726ceadc7cb032e051975b" +checksum = "5bfea97951fee8bae0d6038f39a5efcb6230ecdfe33425ac75196d1a1e3e3235" dependencies = [ - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-signature", "solana-transaction-error", ] [[package]] name = "solana-slot-hashes" -version = "2.2.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c8691982114513763e88d04094c9caa0376b867a29577939011331134c301ce" +checksum = "2585f70191623887329dfb5078da3a00e15e3980ea67f42c2e10b07028419f43" dependencies = [ "serde", "serde_derive", @@ -2691,9 +2231,9 @@ dependencies = [ [[package]] name = "solana-slot-history" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ccc1b2067ca22754d5283afb2b0126d61eae734fc616d23871b0943b0d935e" +checksum = "f914f6b108f5bba14a280b458d023e3621c9973f27f015a4d755b50e88d89e97" dependencies = [ "bv", "serde", @@ -2704,137 +2244,131 @@ dependencies = [ [[package]] name = "solana-stable-layout" -version = "2.2.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f14f7d02af8f2bc1b5efeeae71bc1c2b7f0f65cd75bcc7d8180f2c762a57f54" +checksum = "c9f6a291ba063a37780af29e7db14bdd3dc447584d8ba5b3fc4b88e2bbc982fa" dependencies = [ "solana-instruction", - "solana-pubkey", + "solana-pubkey 4.2.0", ] [[package]] name = "solana-stake-interface" -version = "1.2.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5269e89fde216b4d7e1d1739cf5303f8398a1ff372a81232abbee80e554a838c" +checksum = "b9bc26191b533f9a6e5a14cca05174119819ced680a80febff2f5051a713f0db" dependencies = [ - "borsh 0.10.4", - "borsh 1.5.7", "num-traits", "serde", "serde_derive", "solana-clock", "solana-cpi", - "solana-decode-error", "solana-instruction", "solana-program-error", - "solana-pubkey", - "solana-system-interface", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", + "solana-sysvar", "solana-sysvar-id", ] [[package]] name = "solana-system-interface" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94d7c18cb1a91c6be5f5a8ac9276a1d7c737e39a21beba9ea710ab4b9c63bc90" +checksum = "4e1790547bfc3061f1ee68ea9d8dc6c973c02a163697b24263a8e9f2e6d4afa2" dependencies = [ - "js-sys", "num-traits", "serde", "serde_derive", - "solana-decode-error", "solana-instruction", - "solana-pubkey", - "wasm-bindgen", + "solana-msg", + "solana-program-error", + "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.0", + "solana-instruction", + "solana-msg", + "solana-program-error", ] [[package]] name = "solana-sysvar" -version = "2.2.2" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d50c92bc019c590f5e42c61939676e18d14809ed00b2a59695dd5c67ae72c097" +checksum = "6690d3dd88f15c21edff68eb391ef8800df7a1f5cec84ee3e8d1abf05affdf74" dependencies = [ "base64 0.22.1", "bincode", - "bytemuck", - "bytemuck_derive", "lazy_static", "serde", "serde_derive", "solana-account-info", "solana-clock", - "solana-define-syscall", + "solana-define-syscall 4.0.1", "solana-epoch-rewards", "solana-epoch-schedule", "solana-fee-calculator", "solana-hash", "solana-instruction", - "solana-instructions-sysvar", "solana-last-restart-slot", "solana-program-entrypoint", "solana-program-error", "solana-program-memory", - "solana-pubkey", + "solana-pubkey 4.2.0", "solana-rent", - "solana-sanitize", "solana-sdk-ids", "solana-sdk-macro", "solana-slot-hashes", "solana-slot-history", - "solana-stake-interface", "solana-sysvar-id", ] [[package]] name = "solana-sysvar-id" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5762b273d3325b047cfda250787f8d796d781746860d5d0a746ee29f3e8812c1" +checksum = "17358d1e9a13e5b9c2264d301102126cf11a47fd394cdf3dec174fe7bc96e1de" dependencies = [ - "solana-pubkey", + "solana-address 2.6.0", "solana-sdk-ids", ] [[package]] name = "solana-transaction-error" -version = "2.2.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222a9dc8fdb61c6088baab34fc3a8b8473a03a7a5fd404ed8dd502fa79b67cb1" +checksum = "4a2165ad25b694c654d5395fc7a049452a192376e4c96a7fad05580f6ba5ba1c" dependencies = [ - "solana-instruction", + "solana-instruction-error", "solana-sanitize", ] [[package]] -name = "solana-vote-interface" -version = "2.2.6" +name = "solana-zero-copy" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b80d57478d6599d30acc31cc5ae7f93ec2361a06aefe8ea79bc81739a08af4c3" +checksum = "c5a91404c7de468dd80658cdb5d894ec803d1092ea6e2bfdf84eee6f07559c0d" dependencies = [ - "bincode", - "num-derive", - "num-traits", - "serde", - "serde_derive", - "solana-clock", - "solana-decode-error", - "solana-hash", - "solana-instruction", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", - "solana-serde-varint", - "solana-serialize-utils", - "solana-short-vec", - "solana-system-interface", + "borsh", + "bytemuck", + "bytemuck_derive", ] [[package]] name = "solana-zk-sdk" -version = "2.3.5" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a74a5cf6fd9ba73c1604ac2523976e10a1416c2867c512a86db4ff01f1ad48" +checksum = "9602bcb1f7af15caef92b91132ec2347e1c51a72ecdbefdaefa3eac4b8711475" dependencies = [ "aes-gcm-siv", "base64 0.22.1", @@ -2842,6 +2376,7 @@ dependencies = [ "bytemuck", "bytemuck_derive", "curve25519-dalek", + "getrandom 0.2.16", "itertools 0.12.1", "js-sys", "merlin", @@ -2854,49 +2389,33 @@ dependencies = [ "sha3", "solana-derivation-path", "solana-instruction", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", "solana-seed-derivable", "solana-seed-phrase", "solana-signature", "solana-signer", "subtle", - "thiserror 2.0.12", + "thiserror 2.0.18", "wasm-bindgen", "zeroize", ] [[package]] -name = "spl-associated-token-account" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76fee7d65013667032d499adc3c895e286197a35a0d3a4643c80e7fd3e9969e3" -dependencies = [ - "borsh 1.5.7", - "num-derive", - "num-traits", - "solana-program", - "spl-associated-token-account-client", - "spl-token", - "spl-token-2022", - "thiserror 1.0.69", -] - -[[package]] -name = "spl-associated-token-account-client" +name = "spl-associated-token-account-interface" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6f8349dbcbe575f354f9a533a21f272f3eb3808a49e2fdc1c34393b88ba76cb" +checksum = "e6433917b60441d68d99a17e121d9db0ea15a9a69c0e5afa34649cf5ba12612f" dependencies = [ "solana-instruction", - "solana-pubkey", + "solana-pubkey 3.0.0", ] [[package]] name = "spl-discriminator" -version = "0.4.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7398da23554a31660f17718164e31d31900956054f54f52d5ec1be51cb4f4b3" +checksum = "e597c5ff9ed7c74a54dbc47bae2f06e4db8c98f4356ad280200dc11878266db1" dependencies = [ "bytemuck", "solana-program-error", @@ -2912,7 +2431,7 @@ checksum = "d9e8418ea6269dcfb01c712f0444d2c75542c04448b480e87de59d2865edc750" dependencies = [ "quote", "spl-discriminator-syn", - "syn 2.0.104", + "syn 2.0.117", ] [[package]] @@ -2923,266 +2442,163 @@ checksum = "8c1f05593b7ca9eac7caca309720f2eafb96355e037e6d373b909a80fe7b69b9" dependencies = [ "proc-macro2", "quote", - "sha2 0.10.9", - "syn 2.0.104", + "sha2", + "syn 2.0.117", "thiserror 1.0.69", ] -[[package]] -name = "spl-elgamal-registry" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce0f668975d2b0536e8a8fd60e56a05c467f06021dae037f1d0cfed0de2e231d" -dependencies = [ - "bytemuck", - "solana-program", - "solana-zk-sdk", - "spl-pod", - "spl-token-confidential-transfer-proof-extraction", -] - -[[package]] -name = "spl-memo" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f09647c0974e33366efeb83b8e2daebb329f0420149e74d3a4bd2c08cf9f7cb" -dependencies = [ - "solana-account-info", - "solana-instruction", - "solana-msg", - "solana-program-entrypoint", - "solana-program-error", - "solana-pubkey", -] - [[package]] name = "spl-pod" -version = "0.5.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d994afaf86b779104b4a95ba9ca75b8ced3fdb17ee934e38cb69e72afbe17799" +checksum = "2f9c6e142cdf1e7e77f480053ec9f0ce989890768ddf91f619b50f39d1b456f5" dependencies = [ - "borsh 1.5.7", + "borsh", "bytemuck", "bytemuck_derive", "num-derive", "num-traits", - "solana-decode-error", - "solana-msg", + "num_enum", "solana-program-error", "solana-program-option", - "solana-pubkey", + "solana-pubkey 3.0.0", + "solana-zero-copy", "solana-zk-sdk", - "thiserror 2.0.12", -] - -[[package]] -name = "spl-program-error" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d39b5186f42b2b50168029d81e58e800b690877ef0b30580d107659250da1d1" -dependencies = [ - "num-derive", - "num-traits", - "solana-program", - "spl-program-error-derive", - "thiserror 1.0.69", -] - -[[package]] -name = "spl-program-error-derive" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d375dd76c517836353e093c2dbb490938ff72821ab568b545fd30ab3256b3e" -dependencies = [ - "proc-macro2", - "quote", - "sha2 0.10.9", - "syn 2.0.104", + "thiserror 2.0.18", ] [[package]] -name = "spl-tlv-account-resolution" -version = "0.9.0" +name = "spl-token-2022-interface" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd99ff1e9ed2ab86e3fd582850d47a739fec1be9f4661cba1782d3a0f26805f3" +checksum = "2fcd81188211f4b3c8a5eba7fd534c7142f9dd026123b3472492782cc72f4dc6" dependencies = [ + "arrayref", "bytemuck", "num-derive", "num-traits", + "num_enum", "solana-account-info", - "solana-decode-error", "solana-instruction", - "solana-msg", "solana-program-error", - "solana-pubkey", - "spl-discriminator", - "spl-pod", - "spl-program-error", - "spl-type-length-value", - "thiserror 1.0.69", -] - -[[package]] -name = "spl-token" -version = "7.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed320a6c934128d4f7e54fe00e16b8aeaecf215799d060ae14f93378da6dc834" -dependencies = [ - "arrayref", - "bytemuck", - "num-derive", - "num-traits", - "num_enum", - "solana-program", - "thiserror 1.0.69", -] - -[[package]] -name = "spl-token-2022" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b27f7405010ef816587c944536b0eafbcc35206ab6ba0f2ca79f1d28e488f4f" -dependencies = [ - "arrayref", - "bytemuck", - "num-derive", - "num-traits", - "num_enum", - "solana-program", - "solana-security-txt", + "solana-program-option", + "solana-program-pack", + "solana-pubkey 3.0.0", + "solana-sdk-ids", "solana-zk-sdk", - "spl-elgamal-registry", - "spl-memo", "spl-pod", - "spl-token", - "spl-token-confidential-transfer-ciphertext-arithmetic", "spl-token-confidential-transfer-proof-extraction", "spl-token-confidential-transfer-proof-generation", "spl-token-group-interface", "spl-token-metadata-interface", - "spl-transfer-hook-interface", "spl-type-length-value", - "thiserror 1.0.69", -] - -[[package]] -name = "spl-token-confidential-transfer-ciphertext-arithmetic" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "170378693c5516090f6d37ae9bad2b9b6125069be68d9acd4865bbe9fc8499fd" -dependencies = [ - "base64 0.22.1", - "bytemuck", - "solana-curve25519", - "solana-zk-sdk", + "thiserror 2.0.18", ] [[package]] name = "spl-token-confidential-transfer-proof-extraction" -version = "0.2.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eff2d6a445a147c9d6dd77b8301b1e116c8299601794b558eafa409b342faf96" +checksum = "879a9ebad0d77383d3ea71e7de50503554961ff0f4ef6cbca39ad126e6f6da3a" dependencies = [ "bytemuck", + "solana-account-info", "solana-curve25519", - "solana-program", + "solana-instruction", + "solana-instructions-sysvar", + "solana-msg", + "solana-program-error", + "solana-pubkey 3.0.0", + "solana-sdk-ids", "solana-zk-sdk", "spl-pod", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "spl-token-confidential-transfer-proof-generation" -version = "0.2.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8627184782eec1894de8ea26129c61303f1f0adeed65c20e0b10bc584f09356d" +checksum = "a0cd59fce3dc00f563c6fa364d67c3f200d278eae681f4dc250240afcfe044b1" dependencies = [ "curve25519-dalek", "solana-zk-sdk", - "thiserror 1.0.69", + "thiserror 2.0.18", ] [[package]] name = "spl-token-group-interface" -version = "0.5.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d595667ed72dbfed8c251708f406d7c2814a3fa6879893b323d56a10bedfc799" +checksum = "841cbd6f2322d02719be4da1affedbe6495b1048b7b985ec9796032564026e22" dependencies = [ "bytemuck", "num-derive", "num-traits", - "solana-decode-error", + "num_enum", + "solana-address 2.6.0", "solana-instruction", - "solana-msg", + "solana-nullable", "solana-program-error", - "solana-pubkey", + "solana-zero-copy", "spl-discriminator", - "spl-pod", - "thiserror 1.0.69", + "thiserror 2.0.18", ] [[package]] -name = "spl-token-metadata-interface" -version = "0.6.0" +name = "spl-token-interface" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfb9c89dbc877abd735f05547dcf9e6e12c00c11d6d74d8817506cab4c99fdbb" +checksum = "8c564ac05a7c8d8b12e988a37d82695b5ba4db376d07ea98bc4882c81f96c7f3" dependencies = [ - "borsh 1.5.7", + "arrayref", + "bytemuck", "num-derive", "num-traits", - "solana-borsh", - "solana-decode-error", + "num_enum", "solana-instruction", - "solana-msg", "solana-program-error", - "solana-pubkey", - "spl-discriminator", - "spl-pod", - "spl-type-length-value", - "thiserror 1.0.69", + "solana-program-option", + "solana-program-pack", + "solana-pubkey 3.0.0", + "solana-sdk-ids", + "thiserror 2.0.18", ] [[package]] -name = "spl-transfer-hook-interface" -version = "0.9.0" +name = "spl-token-metadata-interface" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4aa7503d52107c33c88e845e1351565050362c2314036ddf19a36cd25137c043" +checksum = "9c467c7c3bd056f8fe60119e7ec34ddd6f23052c2fa8f1f51999098063b72676" dependencies = [ - "arrayref", - "bytemuck", + "borsh", "num-derive", "num-traits", - "solana-account-info", - "solana-cpi", - "solana-decode-error", + "solana-borsh", "solana-instruction", - "solana-msg", "solana-program-error", - "solana-pubkey", + "solana-pubkey 3.0.0", "spl-discriminator", "spl-pod", - "spl-program-error", - "spl-tlv-account-resolution", "spl-type-length-value", - "thiserror 1.0.69", + "thiserror 2.0.18", ] [[package]] name = "spl-type-length-value" -version = "0.7.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba70ef09b13af616a4c987797870122863cba03acc4284f226a4473b043923f9" +checksum = "2504631748c48d2a937414d64a12dcac4588d34bd07d355d648619c189d29435" dependencies = [ "bytemuck", "num-derive", "num-traits", + "num_enum", "solana-account-info", - "solana-decode-error", - "solana-msg", "solana-program-error", + "solana-zero-copy", "spl-discriminator", - "spl-pod", - "thiserror 1.0.69", + "thiserror 2.0.18", ] [[package]] @@ -3191,6 +2607,12 @@ 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 = "subtle" version = "2.6.1" @@ -3210,9 +2632,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.104" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -3236,11 +2658,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl 2.0.18", ] [[package]] @@ -3251,18 +2673,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.117", ] [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.117", ] [[package]] @@ -3280,15 +2702,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - [[package]] name = "toml" version = "0.8.23" @@ -3297,8 +2710,8 @@ checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", "serde_spanned", - "toml_datetime", - "toml_edit", + "toml_datetime 0.6.11", + "toml_edit 0.22.27", ] [[package]] @@ -3310,6 +2723,15 @@ 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.22.27" @@ -3319,9 +2741,30 @@ dependencies = [ "indexmap", "serde", "serde_spanned", - "toml_datetime", + "toml_datetime 0.6.11", "toml_write", - "winnow", + "winnow 0.7.12", +] + +[[package]] +name = "toml_edit" +version = "0.25.11+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" +dependencies = [ + "indexmap", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "winnow 1.0.2", +] + +[[package]] +name = "toml_parser" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" +dependencies = [ + "winnow 1.0.2", ] [[package]] @@ -3410,12 +2853,6 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - [[package]] name = "wasi" version = "0.11.1+wasi-snapshot-preview1" @@ -3453,7 +2890,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.117", "wasm-bindgen-shared", ] @@ -3475,7 +2912,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.117", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3490,13 +2927,28 @@ dependencies = [ ] [[package]] -name = "web-sys" -version = "0.3.77" +name = "wincode" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "b4c754f1fc41250f2f742a27ba0fcc9f73df1dec23f6878490770855d43c322d" dependencies = [ - "js-sys", - "wasm-bindgen", + "pastey", + "proc-macro2", + "quote", + "thiserror 2.0.18", + "wincode-derive", +] + +[[package]] +name = "wincode-derive" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e070787599c7c067b89598cd3eda440cca1b69eda9e0ff7c725fc8679ce9eb4" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.117", ] [[package]] @@ -3572,6 +3024,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ee1708bef14716a11bae175f579062d4554d95be2c6829f518df847b7b3fdd0" +dependencies = [ + "memchr", +] + [[package]] name = "wit-bindgen" version = "0.46.0" @@ -3589,7 +3050,7 @@ dependencies = [ [[package]] name = "zap" -version = "0.2.2" +version = "0.2.3" dependencies = [ "anchor-lang", "anchor-spl", @@ -3604,7 +3065,7 @@ dependencies = [ name = "zap-sdk" version = "0.1.0" dependencies = [ - "solana-pubkey", + "solana-pubkey 3.0.0", ] [[package]] @@ -3624,7 +3085,7 @@ checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.117", ] [[package]] @@ -3644,5 +3105,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.117", ] diff --git a/Cargo.toml b/Cargo.toml index fbdf697..1b910e4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace] -members = ["programs/*", "libs/*", "zap-sdk", "protocol-zap"] +members = ["programs/*", "libs/*", "zap-sdk"] resolver = "2" [profile.release] @@ -12,14 +12,26 @@ incremental = false codegen-units = 1 [workspace.dependencies] -anchor-lang = "0.31.1" -anchor-spl = "0.31.1" +anchor-lang = "1.0.2" +anchor-spl = "1.0.2" bytemuck = "1.20.0" ruint = "1.3.0" +solana-pubkey = "3" +pinocchio = "0.9" +pinocchio-pubkey = "0.3" +borsh = "1" +num_enum = "0.7" +thiserror = "2" + +[workspace.lints.rust] +unexpected_cfgs = { level = "warn", check-cfg = [ + 'cfg(target_os, values("solana"))', +] } # redirect git references from damm-v2 dependency to local workspace crates # to avoid duplicate crate entries at different revisions in Cargo.lock. [patch."https://github.com/MeteoraAg/zap-program"] -protocol-zap = { path = "protocol-zap" } zap-sdk = { path = "zap-sdk" } -jupiter = { path = "libs/jupiter" } + +[workspace.metadata.cli] +solana = "3.1.10" diff --git a/README.md b/README.md index 01b98cf..1efdd4d 100644 --- a/README.md +++ b/README.md @@ -15,25 +15,21 @@ User can withdraw liquidity or claim fees from AMM pools and immediately swaps t ### Dependencies -- anchor 0.31.1 -- solana 2.1.0 -- rust 1.85.0 - - +- anchor 1.0.2 +- solana 3.1.10 +- rust 1.93.0 ### Build -Program - ``` -anchor build +anchor build --ignore-keys ``` ### Test ``` -pnpm install -pnpm test +bun install +bun run build-local-test ``` ### Program Address diff --git a/bun.lock b/bun.lock new file mode 100644 index 0000000..702b556 --- /dev/null +++ b/bun.lock @@ -0,0 +1,541 @@ +{ + "lockfileVersion": 1, + "configVersion": 1, + "workspaces": { + "": { + "dependencies": { + "@anchor-lang/core": "^1.0.0", + "@solana/spl-token": "^0.4.13", + "@solana/web3.js": "^1.98.2", + "babar": "^0.2.3", + "borsh": "^2.0.0", + "litesvm": "^0.1.0", + }, + "devDependencies": { + "@meteora-ag/cp-amm-sdk": "^1.3.7", + "@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", + "tsx": "^4.21.0", + "typescript": "^5.7.3", + }, + }, + }, + "packages": { + "@anchor-lang/borsh": ["@anchor-lang/borsh@1.0.1", "", { "dependencies": { "bn.js": "^5.1.2", "buffer-layout": "^1.2.0" }, "peerDependencies": { "@solana/web3.js": "^1.69.0" } }, "sha512-YnWRh76/3DqF0TSzRpCojRelya9OEQ23LpJQYqkAh+L1xiPcaUaYm1C9Q+W8t363aL45xNJOXMGqb0QPx6kgPw=="], + + "@anchor-lang/core": ["@anchor-lang/core@1.0.1", "", { "dependencies": { "@anchor-lang/borsh": "^1.0.1", "@anchor-lang/errors": "^1.0.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" } }, "sha512-SzZRCod5esNCFmOSwwpKp0Qx2tUiheEIR099LC56OED3BP35hLmsr6OX1xVgD2F/itR5j82xciDjFhbgHCaz2w=="], + + "@anchor-lang/errors": ["@anchor-lang/errors@1.0.1", "", {}, "sha512-1BpLZbSGT8q1BsGlocAX+/hHdh6zAU4VTCEXkisMjxOy5iaMSCOvQuEM6DO1t73463XUXykxdyzuwQ4pAoYfcw=="], + + "@babel/runtime": ["@babel/runtime@7.29.2", "", {}, "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g=="], + + "@coral-xyz/anchor": ["@coral-xyz/anchor@0.31.1", "", { "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" } }, "sha512-QUqpoEK+gi2S6nlYc2atgT2r41TT3caWr/cPUEL8n8Md9437trZ68STknq897b82p5mW0XrTBNOzRbmIRJtfsA=="], + + "@coral-xyz/anchor-errors": ["@coral-xyz/anchor-errors@0.31.1", "", {}, "sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ=="], + + "@coral-xyz/borsh": ["@coral-xyz/borsh@0.31.1", "", { "dependencies": { "bn.js": "^5.1.2", "buffer-layout": "^1.2.0" }, "peerDependencies": { "@solana/web3.js": "^1.69.0" } }, "sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw=="], + + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.7", "", { "os": "aix", "cpu": "ppc64" }, "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg=="], + + "@esbuild/android-arm": ["@esbuild/android-arm@0.27.7", "", { "os": "android", "cpu": "arm" }, "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ=="], + + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.7", "", { "os": "android", "cpu": "arm64" }, "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ=="], + + "@esbuild/android-x64": ["@esbuild/android-x64@0.27.7", "", { "os": "android", "cpu": "x64" }, "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg=="], + + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.7", "", { "os": "darwin", "cpu": "arm64" }, "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw=="], + + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.7", "", { "os": "darwin", "cpu": "x64" }, "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ=="], + + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.7", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w=="], + + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.7", "", { "os": "freebsd", "cpu": "x64" }, "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ=="], + + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.7", "", { "os": "linux", "cpu": "arm" }, "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA=="], + + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.7", "", { "os": "linux", "cpu": "arm64" }, "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A=="], + + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.7", "", { "os": "linux", "cpu": "ia32" }, "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg=="], + + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.7", "", { "os": "linux", "cpu": "none" }, "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q=="], + + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.7", "", { "os": "linux", "cpu": "none" }, "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw=="], + + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.7", "", { "os": "linux", "cpu": "ppc64" }, "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ=="], + + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.7", "", { "os": "linux", "cpu": "none" }, "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ=="], + + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.7", "", { "os": "linux", "cpu": "s390x" }, "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw=="], + + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.7", "", { "os": "linux", "cpu": "x64" }, "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA=="], + + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.7", "", { "os": "none", "cpu": "arm64" }, "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w=="], + + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.7", "", { "os": "none", "cpu": "x64" }, "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw=="], + + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.7", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A=="], + + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.7", "", { "os": "openbsd", "cpu": "x64" }, "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg=="], + + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.7", "", { "os": "none", "cpu": "arm64" }, "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw=="], + + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.7", "", { "os": "sunos", "cpu": "x64" }, "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA=="], + + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.7", "", { "os": "win32", "cpu": "arm64" }, "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA=="], + + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.7", "", { "os": "win32", "cpu": "ia32" }, "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw=="], + + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.7", "", { "os": "win32", "cpu": "x64" }, "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg=="], + + "@meteora-ag/cp-amm-sdk": ["@meteora-ag/cp-amm-sdk@1.4.2", "", { "dependencies": { "@coral-xyz/anchor": "^0.31.0", "@solana/spl-token": "^0.4.8", "@solana/web3.js": "^1.95.3", "@types/bn.js": "^5.1.0", "bn.js": "^5.2.2", "chain": "^0.4.0", "decimal.js": "^10.4.2", "invariant": "^2.2.4" } }, "sha512-0YL0qck+oV0amhxKJYMHcGgUIch7/Lw8lrnBj+a0E6DtmerntyW4q8Mz/uyslSuhFPDAvEPGuhHwFohY2Hd/1Q=="], + + "@noble/curves": ["@noble/curves@1.9.7", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw=="], + + "@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + + "@solana/buffer-layout": ["@solana/buffer-layout@4.0.1", "", { "dependencies": { "buffer": "~6.0.3" } }, "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA=="], + + "@solana/buffer-layout-utils": ["@solana/buffer-layout-utils@0.2.0", "", { "dependencies": { "@solana/buffer-layout": "^4.0.0", "@solana/web3.js": "^1.32.0", "bigint-buffer": "^1.1.5", "bignumber.js": "^9.0.1" } }, "sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g=="], + + "@solana/codecs": ["@solana/codecs@2.0.0-rc.1", "", { "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" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-qxoR7VybNJixV51L0G1RD2boZTcxmwUWnKCaJJExQ5qNKwbpSyDdWfFJfM5JhGyKe9DnPVOZB+JHWXnpbZBqrQ=="], + + "@solana/codecs-core": ["@solana/codecs-core@2.3.0", "", { "dependencies": { "@solana/errors": "2.3.0" }, "peerDependencies": { "typescript": ">=5.3.3" } }, "sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw=="], + + "@solana/codecs-data-structures": ["@solana/codecs-data-structures@2.0.0-rc.1", "", { "dependencies": { "@solana/codecs-core": "2.0.0-rc.1", "@solana/codecs-numbers": "2.0.0-rc.1", "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-rinCv0RrAVJ9rE/rmaibWJQxMwC5lSaORSZuwjopSUE6T0nb/MVg6Z1siNCXhh/HFTOg0l8bNvZHgBcN/yvXog=="], + + "@solana/codecs-numbers": ["@solana/codecs-numbers@2.3.0", "", { "dependencies": { "@solana/codecs-core": "2.3.0", "@solana/errors": "2.3.0" }, "peerDependencies": { "typescript": ">=5.3.3" } }, "sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg=="], + + "@solana/codecs-strings": ["@solana/codecs-strings@2.0.0-rc.1", "", { "dependencies": { "@solana/codecs-core": "2.0.0-rc.1", "@solana/codecs-numbers": "2.0.0-rc.1", "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "fastestsmallesttextencoderdecoder": "^1.0.22", "typescript": ">=5" } }, "sha512-9/wPhw8TbGRTt6mHC4Zz1RqOnuPTqq1Nb4EyuvpZ39GW6O2t2Q7Q0XxiB3+BdoEjwA2XgPw6e2iRfvYgqty44g=="], + + "@solana/errors": ["@solana/errors@2.3.0", "", { "dependencies": { "chalk": "^5.4.1", "commander": "^14.0.0" }, "peerDependencies": { "typescript": ">=5.3.3" }, "bin": { "errors": "bin/cli.mjs" } }, "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ=="], + + "@solana/options": ["@solana/options@2.0.0-rc.1", "", { "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" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-mLUcR9mZ3qfHlmMnREdIFPf9dpMc/Bl66tLSOOWxw4ml5xMT2ohFn7WGqoKcu/UHkT9CrC6+amEdqCNvUqI7AA=="], + + "@solana/spl-token": ["@solana/spl-token@0.4.14", "", { "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" }, "peerDependencies": { "@solana/web3.js": "^1.95.5" } }, "sha512-u09zr96UBpX4U685MnvQsNzlvw9TiY005hk1vJmJr7gMJldoPG1eYU5/wNEyOA5lkMLiR/gOi9SFD4MefOYEsA=="], + + "@solana/spl-token-group": ["@solana/spl-token-group@0.0.7", "", { "dependencies": { "@solana/codecs": "2.0.0-rc.1" }, "peerDependencies": { "@solana/web3.js": "^1.95.3" } }, "sha512-V1N/iX7Cr7H0uazWUT2uk27TMqlqedpXHRqqAbVO2gvmJyT0E0ummMEAVQeXZ05ZhQ/xF39DLSdBp90XebWEug=="], + + "@solana/spl-token-metadata": ["@solana/spl-token-metadata@0.1.6", "", { "dependencies": { "@solana/codecs": "2.0.0-rc.1" }, "peerDependencies": { "@solana/web3.js": "^1.95.3" } }, "sha512-7sMt1rsm/zQOQcUWllQX9mD2O6KhSAtY1hFR2hfFwgqfFWzSY9E9GDvFVNYUI1F0iQKcm6HmePU9QbKRXTEBiA=="], + + "@solana/web3.js": ["@solana/web3.js@1.98.4", "", { "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" } }, "sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw=="], + + "@swc/helpers": ["@swc/helpers@0.5.21", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-jI/VAmtdjB/RnI8GTnokyX7Ug8c+g+ffD6QRLa6XQewtnGyukKkKSk3wLTM3b5cjt1jNh9x0jfVlagdN2gDKQg=="], + + "@types/bn.js": ["@types/bn.js@5.2.0", "", { "dependencies": { "@types/node": "*" } }, "sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q=="], + + "@types/chai": ["@types/chai@4.3.20", "", {}, "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ=="], + + "@types/connect": ["@types/connect@3.4.38", "", { "dependencies": { "@types/node": "*" } }, "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug=="], + + "@types/json5": ["@types/json5@0.0.29", "", {}, "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="], + + "@types/mocha": ["@types/mocha@9.1.1", "", {}, "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw=="], + + "@types/node": ["@types/node@25.6.0", "", { "dependencies": { "undici-types": "~7.19.0" } }, "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ=="], + + "@types/uuid": ["@types/uuid@10.0.0", "", {}, "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ=="], + + "@types/ws": ["@types/ws@7.4.7", "", { "dependencies": { "@types/node": "*" } }, "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww=="], + + "@ungap/promise-all-settled": ["@ungap/promise-all-settled@1.1.2", "", {}, "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q=="], + + "agentkeepalive": ["agentkeepalive@4.6.0", "", { "dependencies": { "humanize-ms": "^1.2.1" } }, "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ=="], + + "ansi-colors": ["ansi-colors@4.1.1", "", {}, "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA=="], + + "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + + "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + + "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="], + + "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + + "arrify": ["arrify@1.0.1", "", {}, "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA=="], + + "assertion-error": ["assertion-error@1.1.0", "", {}, "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw=="], + + "babar": ["babar@0.2.3", "", { "dependencies": { "colors": "~1.4.0" } }, "sha512-1hmYKLj+7m5qHsJ3hosOlO7Z5BYe3E8u9u/W2BEqB4kytysuHYuGe5OIrEr7q4Zyg3y3EytFb4YrPZokYSix8g=="], + + "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + + "base-x": ["base-x@3.0.11", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA=="], + + "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], + + "bigint-buffer": ["bigint-buffer@1.1.5", "", { "dependencies": { "bindings": "^1.3.0" } }, "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA=="], + + "bignumber.js": ["bignumber.js@9.3.1", "", {}, "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ=="], + + "binary-extensions": ["binary-extensions@2.3.0", "", {}, "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="], + + "bindings": ["bindings@1.5.0", "", { "dependencies": { "file-uri-to-path": "1.0.0" } }, "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ=="], + + "bn.js": ["bn.js@5.2.3", "", {}, "sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w=="], + + "borsh": ["borsh@2.0.0", "", {}, "sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg=="], + + "brace-expansion": ["brace-expansion@1.1.14", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g=="], + + "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], + + "browser-stdout": ["browser-stdout@1.3.1", "", {}, "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw=="], + + "bs58": ["bs58@4.0.1", "", { "dependencies": { "base-x": "^3.0.2" } }, "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw=="], + + "buffer": ["buffer@6.0.3", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA=="], + + "buffer-from": ["buffer-from@1.1.2", "", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="], + + "buffer-layout": ["buffer-layout@1.2.2", "", {}, "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA=="], + + "bufferutil": ["bufferutil@4.1.0", "", { "dependencies": { "node-gyp-build": "^4.3.0" } }, "sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw=="], + + "camelcase": ["camelcase@6.3.0", "", {}, "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="], + + "chai": ["chai@4.5.0", "", { "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" } }, "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw=="], + + "chain": ["chain@0.4.2", "", {}, "sha512-GtM+TlN398yBhtSp1D2dBLQomKM3Umbji3h2/NdCqAWSMKhWbjlz33j0e55rStsEZD+8OLRHuz7kWd0U3xKMDg=="], + + "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + + "check-error": ["check-error@1.0.3", "", { "dependencies": { "get-func-name": "^2.0.2" } }, "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg=="], + + "chokidar": ["chokidar@3.5.3", "", { "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" } }, "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw=="], + + "cliui": ["cliui@7.0.4", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ=="], + + "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], + + "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + + "colors": ["colors@1.4.0", "", {}, "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="], + + "commander": ["commander@2.20.3", "", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="], + + "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], + + "cross-fetch": ["cross-fetch@3.2.0", "", { "dependencies": { "node-fetch": "^2.7.0" } }, "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q=="], + + "debug": ["debug@4.3.3", "", { "dependencies": { "ms": "2.1.2" } }, "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q=="], + + "decamelize": ["decamelize@4.0.0", "", {}, "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ=="], + + "decimal.js": ["decimal.js@10.6.0", "", {}, "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg=="], + + "deep-eql": ["deep-eql@4.1.4", "", { "dependencies": { "type-detect": "^4.0.0" } }, "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg=="], + + "delay": ["delay@5.0.0", "", {}, "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw=="], + + "diff": ["diff@5.0.0", "", {}, "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w=="], + + "emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], + + "es6-promise": ["es6-promise@4.2.8", "", {}, "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="], + + "es6-promisify": ["es6-promisify@5.0.0", "", { "dependencies": { "es6-promise": "^4.0.3" } }, "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ=="], + + "esbuild": ["esbuild@0.27.7", "", { "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" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w=="], + + "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + + "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], + + "eventemitter3": ["eventemitter3@4.0.7", "", {}, "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="], + + "eyes": ["eyes@0.1.8", "", {}, "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ=="], + + "fast-stable-stringify": ["fast-stable-stringify@1.0.0", "", {}, "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag=="], + + "fastestsmallesttextencoderdecoder": ["fastestsmallesttextencoderdecoder@1.0.22", "", {}, "sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw=="], + + "file-uri-to-path": ["file-uri-to-path@1.0.0", "", {}, "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="], + + "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], + + "find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], + + "flat": ["flat@5.0.2", "", { "bin": { "flat": "cli.js" } }, "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ=="], + + "fs.realpath": ["fs.realpath@1.0.0", "", {}, "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="], + + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + + "get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="], + + "get-func-name": ["get-func-name@2.0.2", "", {}, "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ=="], + + "get-tsconfig": ["get-tsconfig@4.14.0", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA=="], + + "glob": ["glob@7.2.0", "", { "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" } }, "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q=="], + + "glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + + "growl": ["growl@1.10.5", "", {}, "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA=="], + + "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], + + "he": ["he@1.2.0", "", { "bin": { "he": "bin/he" } }, "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="], + + "humanize-ms": ["humanize-ms@1.2.1", "", { "dependencies": { "ms": "^2.0.0" } }, "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ=="], + + "ieee754": ["ieee754@1.2.1", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="], + + "inflight": ["inflight@1.0.6", "", { "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="], + + "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], + + "invariant": ["invariant@2.2.4", "", { "dependencies": { "loose-envify": "^1.0.0" } }, "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA=="], + + "is-binary-path": ["is-binary-path@2.1.0", "", { "dependencies": { "binary-extensions": "^2.0.0" } }, "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="], + + "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], + + "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], + + "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], + + "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], + + "is-plain-obj": ["is-plain-obj@2.1.0", "", {}, "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA=="], + + "is-unicode-supported": ["is-unicode-supported@0.1.0", "", {}, "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="], + + "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + + "isomorphic-ws": ["isomorphic-ws@4.0.1", "", { "peerDependencies": { "ws": "*" } }, "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w=="], + + "jayson": ["jayson@4.3.0", "", { "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" }, "bin": { "jayson": "bin/jayson.js" } }, "sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ=="], + + "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + + "js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="], + + "json-stringify-safe": ["json-stringify-safe@5.0.1", "", {}, "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="], + + "json5": ["json5@1.0.2", "", { "dependencies": { "minimist": "^1.2.0" }, "bin": { "json5": "lib/cli.js" } }, "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA=="], + + "litesvm": ["litesvm@0.1.0", "", { "dependencies": { "@solana/web3.js": "^1.68.0", "bs58": "^4.0.1" }, "optionalDependencies": { "litesvm-darwin-arm64": "0.1.0", "litesvm-darwin-universal": "0.1.0", "litesvm-darwin-x64": "0.1.0", "litesvm-linux-x64-gnu": "0.1.0", "litesvm-linux-x64-musl": "0.1.0" } }, "sha512-XfpvWgYxFQUZxwFzWJTsuHRc1y34q8WtC60lhvH1xb6YX1/RBLqzIClp2JkxtlqGnDi/WPlThsXGmC3SinuPMQ=="], + + "litesvm-darwin-arm64": ["litesvm-darwin-arm64@0.1.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-GwBph2fNaR9UP1nhFmQYk7UMcI9+ogrzpbDl2en70FUnPc+FDlchOts2X8IL5XFCU+m4ZGoQl/N9b+FywJN5lQ=="], + + "litesvm-darwin-universal": ["litesvm-darwin-universal@0.1.0", "", { "os": "darwin" }, "sha512-GjGpz77ei+RfWiMtHiES0X8GP+TafFHWu5fAQXgXEoGia7RG32Z12iJBhwfvk0T4EKbm8bqlyqhe5Me/nARm/w=="], + + "litesvm-darwin-x64": ["litesvm-darwin-x64@0.1.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-1N/IPfoT+gcpkvG9Wm7+vcaxgl/LB8hbm85cHDQRq4O1wyiRRiR6ByeNRamj+OFEDSfI7a/1NshhMobnnr2MGQ=="], + + "litesvm-linux-x64-gnu": ["litesvm-linux-x64-gnu@0.1.0", "", { "os": "linux", "cpu": "x64" }, "sha512-S6krvRz6BXxVZIkap5XkWwulSG4KsbFrxjyqP1X0zANa8jWMHEd09Zy9pPgfOetni2exg67fBmSlWq4sRfzlCw=="], + + "litesvm-linux-x64-musl": ["litesvm-linux-x64-musl@0.1.0", "", { "os": "linux", "cpu": "x64" }, "sha512-3E9gC5HRCEHFsfUNDhAY9JKx6ou6JazlnYMhT89JgbAN/YsJmyEgkTfY6W7TVV90g4EAJ/K4smSmg+vV413mYQ=="], + + "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], + + "log-symbols": ["log-symbols@4.1.0", "", { "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" } }, "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg=="], + + "loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], + + "loupe": ["loupe@2.3.7", "", { "dependencies": { "get-func-name": "^2.0.1" } }, "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA=="], + + "make-error": ["make-error@1.3.6", "", {}, "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="], + + "minimatch": ["minimatch@4.2.1", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g=="], + + "minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="], + + "mkdirp": ["mkdirp@0.5.6", "", { "dependencies": { "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw=="], + + "mocha": ["mocha@9.2.2", "", { "dependencies": { "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", "chokidar": "3.5.3", "debug": "4.3.3", "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" }, "bin": { "mocha": "bin/mocha", "_mocha": "bin/_mocha" } }, "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g=="], + + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "nanoid": ["nanoid@3.3.1", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw=="], + + "node-fetch": ["node-fetch@2.7.0", "", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A=="], + + "node-gyp-build": ["node-gyp-build@4.8.4", "", { "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", "node-gyp-build-test": "build-test.js" } }, "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ=="], + + "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], + + "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="], + + "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], + + "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], + + "pako": ["pako@2.1.0", "", {}, "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug=="], + + "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], + + "path-is-absolute": ["path-is-absolute@1.0.1", "", {}, "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="], + + "pathval": ["pathval@1.1.1", "", {}, "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ=="], + + "picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="], + + "prettier": ["prettier@2.8.8", "", { "bin": { "prettier": "bin-prettier.js" } }, "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q=="], + + "randombytes": ["randombytes@2.1.0", "", { "dependencies": { "safe-buffer": "^5.1.0" } }, "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ=="], + + "readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="], + + "require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="], + + "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="], + + "rpc-websockets": ["rpc-websockets@9.3.8", "", { "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" } }, "sha512-7r+fm4tSJmLf9GvZfL1DJ1SJwpagpp6AazqM0FUaeV7CA+7+NYINSk1syWa4tU/6OF2CyBicLtzENGmXRJH6wQ=="], + + "safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], + + "serialize-javascript": ["serialize-javascript@6.0.0", "", { "dependencies": { "randombytes": "^2.1.0" } }, "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag=="], + + "source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + + "source-map-support": ["source-map-support@0.5.21", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="], + + "stream-chain": ["stream-chain@2.2.5", "", {}, "sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA=="], + + "stream-json": ["stream-json@1.9.1", "", { "dependencies": { "stream-chain": "^2.2.5" } }, "sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw=="], + + "string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + + "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + + "strip-bom": ["strip-bom@3.0.0", "", {}, "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="], + + "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], + + "superstruct": ["superstruct@0.15.5", "", {}, "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ=="], + + "supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], + + "text-encoding-utf-8": ["text-encoding-utf-8@1.0.2", "", {}, "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg=="], + + "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], + + "toml": ["toml@3.0.0", "", {}, "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w=="], + + "tr46": ["tr46@0.0.3", "", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="], + + "ts-mocha": ["ts-mocha@10.1.0", "", { "dependencies": { "ts-node": "7.0.1" }, "optionalDependencies": { "tsconfig-paths": "^3.5.0" }, "peerDependencies": { "mocha": "^3.X.X || ^4.X.X || ^5.X.X || ^6.X.X || ^7.X.X || ^8.X.X || ^9.X.X || ^10.X.X || ^11.X.X" }, "bin": { "ts-mocha": "bin/ts-mocha" } }, "sha512-T0C0Xm3/WqCuF2tpa0GNGESTBoKZaiqdUP8guNv4ZY316AFXlyidnrzQ1LUrCT0Wb1i3J0zFTgOh/55Un44WdA=="], + + "ts-node": ["ts-node@7.0.1", "", { "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" }, "bin": { "ts-node": "dist/bin.js" } }, "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw=="], + + "tsconfig-paths": ["tsconfig-paths@3.15.0", "", { "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg=="], + + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "tsx": ["tsx@4.21.0", "", { "dependencies": { "esbuild": "~0.27.0", "get-tsconfig": "^4.7.5" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "bin": { "tsx": "dist/cli.mjs" } }, "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw=="], + + "type-detect": ["type-detect@4.1.0", "", {}, "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw=="], + + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + + "undici-types": ["undici-types@7.19.2", "", {}, "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg=="], + + "utf-8-validate": ["utf-8-validate@6.0.6", "", { "dependencies": { "node-gyp-build": "^4.3.0" } }, "sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA=="], + + "uuid": ["uuid@8.3.2", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="], + + "webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], + + "whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], + + "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], + + "workerpool": ["workerpool@6.2.0", "", {}, "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A=="], + + "wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], + + "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], + + "ws": ["ws@7.5.10", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ=="], + + "y18n": ["y18n@5.0.8", "", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="], + + "yargs": ["yargs@16.2.0", "", { "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" } }, "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw=="], + + "yargs-parser": ["yargs-parser@20.2.4", "", {}, "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA=="], + + "yargs-unparser": ["yargs-unparser@2.0.0", "", { "dependencies": { "camelcase": "^6.0.0", "decamelize": "^4.0.0", "flat": "^5.0.2", "is-plain-obj": "^2.1.0" } }, "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA=="], + + "yn": ["yn@2.0.0", "", {}, "sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ=="], + + "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], + + "@solana/codecs/@solana/codecs-core": ["@solana/codecs-core@2.0.0-rc.1", "", { "dependencies": { "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ=="], + + "@solana/codecs/@solana/codecs-numbers": ["@solana/codecs-numbers@2.0.0-rc.1", "", { "dependencies": { "@solana/codecs-core": "2.0.0-rc.1", "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ=="], + + "@solana/codecs-data-structures/@solana/codecs-core": ["@solana/codecs-core@2.0.0-rc.1", "", { "dependencies": { "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ=="], + + "@solana/codecs-data-structures/@solana/codecs-numbers": ["@solana/codecs-numbers@2.0.0-rc.1", "", { "dependencies": { "@solana/codecs-core": "2.0.0-rc.1", "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ=="], + + "@solana/codecs-data-structures/@solana/errors": ["@solana/errors@2.0.0-rc.1", "", { "dependencies": { "chalk": "^5.3.0", "commander": "^12.1.0" }, "peerDependencies": { "typescript": ">=5" }, "bin": { "errors": "bin/cli.mjs" } }, "sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ=="], + + "@solana/codecs-strings/@solana/codecs-core": ["@solana/codecs-core@2.0.0-rc.1", "", { "dependencies": { "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ=="], + + "@solana/codecs-strings/@solana/codecs-numbers": ["@solana/codecs-numbers@2.0.0-rc.1", "", { "dependencies": { "@solana/codecs-core": "2.0.0-rc.1", "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ=="], + + "@solana/codecs-strings/@solana/errors": ["@solana/errors@2.0.0-rc.1", "", { "dependencies": { "chalk": "^5.3.0", "commander": "^12.1.0" }, "peerDependencies": { "typescript": ">=5" }, "bin": { "errors": "bin/cli.mjs" } }, "sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ=="], + + "@solana/errors/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], + + "@solana/errors/commander": ["commander@14.0.3", "", {}, "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw=="], + + "@solana/options/@solana/codecs-core": ["@solana/codecs-core@2.0.0-rc.1", "", { "dependencies": { "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ=="], + + "@solana/options/@solana/codecs-numbers": ["@solana/codecs-numbers@2.0.0-rc.1", "", { "dependencies": { "@solana/codecs-core": "2.0.0-rc.1", "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ=="], + + "@solana/options/@solana/errors": ["@solana/errors@2.0.0-rc.1", "", { "dependencies": { "chalk": "^5.3.0", "commander": "^12.1.0" }, "peerDependencies": { "typescript": ">=5" }, "bin": { "errors": "bin/cli.mjs" } }, "sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ=="], + + "@solana/web3.js/borsh": ["borsh@0.7.0", "", { "dependencies": { "bn.js": "^5.2.0", "bs58": "^4.0.0", "text-encoding-utf-8": "^1.0.2" } }, "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA=="], + + "@solana/web3.js/superstruct": ["superstruct@2.0.2", "", {}, "sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A=="], + + "chalk/supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], + + "debug/ms": ["ms@2.1.2", "", {}, "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="], + + "glob/minimatch": ["minimatch@3.1.5", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w=="], + + "jayson/@types/node": ["@types/node@12.20.55", "", {}, "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="], + + "rpc-websockets/@types/ws": ["@types/ws@8.18.1", "", { "dependencies": { "@types/node": "*" } }, "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg=="], + + "rpc-websockets/eventemitter3": ["eventemitter3@5.0.4", "", {}, "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw=="], + + "rpc-websockets/uuid": ["uuid@11.1.0", "", { "bin": { "uuid": "dist/esm/bin/uuid" } }, "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A=="], + + "rpc-websockets/ws": ["ws@8.20.0", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA=="], + + "ts-node/diff": ["diff@3.5.1", "", {}, "sha512-Z3u54A8qGyqFOSr2pk0ijYs8mOE9Qz8kTvtKeBI+upoG9j04Sq+oI7W8zAJiQybDcESET8/uIdHzs0p3k4fZlw=="], + + "@solana/codecs-data-structures/@solana/errors/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], + + "@solana/codecs-data-structures/@solana/errors/commander": ["commander@12.1.0", "", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="], + + "@solana/codecs-strings/@solana/errors/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], + + "@solana/codecs-strings/@solana/errors/commander": ["commander@12.1.0", "", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="], + + "@solana/codecs/@solana/codecs-core/@solana/errors": ["@solana/errors@2.0.0-rc.1", "", { "dependencies": { "chalk": "^5.3.0", "commander": "^12.1.0" }, "peerDependencies": { "typescript": ">=5" }, "bin": { "errors": "bin/cli.mjs" } }, "sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ=="], + + "@solana/codecs/@solana/codecs-numbers/@solana/errors": ["@solana/errors@2.0.0-rc.1", "", { "dependencies": { "chalk": "^5.3.0", "commander": "^12.1.0" }, "peerDependencies": { "typescript": ">=5" }, "bin": { "errors": "bin/cli.mjs" } }, "sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ=="], + + "@solana/options/@solana/errors/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], + + "@solana/options/@solana/errors/commander": ["commander@12.1.0", "", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="], + + "@solana/codecs/@solana/codecs-core/@solana/errors/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], + + "@solana/codecs/@solana/codecs-core/@solana/errors/commander": ["commander@12.1.0", "", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="], + + "@solana/codecs/@solana/codecs-numbers/@solana/errors/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], + + "@solana/codecs/@solana/codecs-numbers/@solana/errors/commander": ["commander@12.1.0", "", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="], + } +} diff --git a/idls/damm_v2.json b/idls/damm_v2.json index a70938b..20d9389 100644 --- a/idls/damm_v2.json +++ b/idls/damm_v2.json @@ -2,7 +2,7 @@ "address": "cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG", "metadata": { "name": "cp_amm", - "version": "0.2.0", + "version": "0.2.3", "spec": "0.1.0", "description": "Created with Anchor" }, @@ -57,8 +57,8 @@ "docs": ["The token account for nft"] }, { - "name": "owner", - "docs": ["owner of position"], + "name": "signer", + "docs": ["Signer"], "signer": true }, { @@ -70,18 +70,7 @@ "docs": ["Token b program"] }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -151,8 +140,8 @@ "docs": ["The token account for nft"] }, { - "name": "owner", - "docs": ["owner of position"], + "name": "signer", + "docs": ["Signer"], "signer": true }, { @@ -164,18 +153,7 @@ "docs": ["Token b program"] }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -184,89 +162,57 @@ "args": [] }, { - "name": "claim_protocol_fee", - "discriminator": [165, 228, 133, 48, 99, 249, 255, 33], + "name": "claim_protocol_fee2", + "discriminator": [235, 194, 54, 69, 65, 10, 236, 112], "accounts": [ { - "name": "pool_authority", - "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" - }, - { - "name": "pool", + "name": "receiver_token_account", + "docs": [ + "receiver token account for the claimed token. validated through the protocol_fee program" + ], "writable": true }, - { - "name": "token_a_vault", - "docs": ["The vault token account for input token"], - "writable": true, - "relations": ["pool"] - }, - { - "name": "token_b_vault", - "docs": ["The vault token account for output token"], - "writable": true, - "relations": ["pool"] - }, { "name": "token_a_mint", - "docs": ["The mint of token a"], "relations": ["pool"] }, { "name": "token_b_mint", - "docs": ["The mint of token b"], "relations": ["pool"] }, { - "name": "token_a_account", - "writable": true - }, - { - "name": "token_b_account", - "writable": true + "name": "token_a_program" }, { - "name": "operator", - "docs": ["Claim fee operator"] + "name": "token_b_program" }, { - "name": "signer", - "docs": ["Operator"], - "signer": true + "name": "pool", + "writable": true }, { - "name": "token_a_program", - "docs": ["Token a program"] + "name": "token_a_vault", + "writable": true, + "relations": ["pool"] }, { - "name": "token_b_program", - "docs": ["Token b program"] + "name": "token_b_vault", + "writable": true, + "relations": ["pool"] }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "pool_authority", + "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" }, { - "name": "program" + "name": "signer", + "signer": true, + "address": "FkU5rQCWQM131skHCpcEbK8P1JrQGsBgqXe55w525SSF" } ], "args": [ { - "name": "max_amount_a", - "type": "u64" - }, - { - "name": "max_amount_b", + "name": "max_amount", "type": "u64" } ] @@ -305,26 +251,15 @@ "docs": ["The token account for nft"] }, { - "name": "owner", - "docs": ["owner of position"], + "name": "signer", + "docs": ["Signer"], "signer": true }, { "name": "token_program" }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -361,18 +296,7 @@ "writable": true }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -397,18 +321,7 @@ "writable": true }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -460,18 +373,7 @@ "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -499,18 +401,7 @@ "writable": true }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -556,18 +447,7 @@ "address": "11111111111111111111111111111111" }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -625,18 +505,7 @@ "address": "11111111111111111111111111111111" }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -695,18 +564,7 @@ "address": "11111111111111111111111111111111" }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -794,18 +652,7 @@ "address": "11111111111111111111111111111111" }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -853,18 +700,7 @@ "address": "11111111111111111111111111111111" }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -996,18 +832,7 @@ "name": "token_program" }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -1172,18 +997,7 @@ "address": "11111111111111111111111111111111" }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -1349,18 +1163,7 @@ "address": "11111111111111111111111111111111" }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -1530,18 +1333,7 @@ "address": "11111111111111111111111111111111" }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -1612,18 +1404,7 @@ "address": "11111111111111111111111111111111" }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -1661,23 +1442,12 @@ "docs": ["The token account for nft"] }, { - "name": "owner", - "docs": ["owner of position"], + "name": "signer", + "docs": ["Signer"], "signer": true }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -1716,8 +1486,8 @@ "docs": ["The token account for nft"] }, { - "name": "owner", - "docs": ["owner of position"], + "name": "signer", + "docs": ["Signer"], "signer": true }, { @@ -1730,18 +1500,7 @@ "address": "11111111111111111111111111111111" }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -1776,23 +1535,12 @@ "docs": ["The token account for nft"] }, { - "name": "owner", - "docs": ["owner of position"], + "name": "signer", + "docs": ["Signer"], "signer": true }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -1881,8 +1629,8 @@ "docs": ["The token account for nft"] }, { - "name": "owner", - "docs": ["owner of position"], + "name": "signer", + "docs": ["Signer"], "signer": true }, { @@ -1894,18 +1642,7 @@ "docs": ["Token b program"] }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -1976,8 +1713,8 @@ "docs": ["The token account for nft"] }, { - "name": "owner", - "docs": ["owner of position"], + "name": "signer", + "docs": ["Signer"], "signer": true }, { @@ -1989,18 +1726,7 @@ "docs": ["Token b program"] }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -2033,18 +1759,7 @@ "signer": true }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -2095,18 +1810,7 @@ "signer": true }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -2161,18 +1865,7 @@ "signer": true }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -2248,18 +1941,7 @@ "optional": true }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -2339,18 +2021,7 @@ "optional": true }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -2367,6 +2038,36 @@ } ] }, + { + "name": "update_delegate_permission", + "discriminator": [175, 165, 56, 64, 0, 251, 89, 47], + "accounts": [ + { + "name": "position", + "writable": true + }, + { + "name": "position_nft_account", + "docs": ["The token account for nft"] + }, + { + "name": "owner", + "signer": true + }, + { + "name": "event_authority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "permission", + "type": "u32" + } + ] + }, { "name": "update_pool_fees", "discriminator": [118, 217, 203, 179, 60, 8, 70, 89], @@ -2383,18 +2084,7 @@ "signer": true }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -2424,18 +2114,7 @@ "signer": true }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -2465,18 +2144,7 @@ "signer": true }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -2494,8 +2162,8 @@ ] }, { - "name": "withdraw_ineligible_reward", - "discriminator": [148, 206, 42, 195, 247, 49, 103, 8], + "name": "withdraw_dead_liquidity_reward", + "discriminator": [121, 99, 224, 91, 178, 14, 22, 132], "accounts": [ { "name": "pool_authority", @@ -2524,18 +2192,7 @@ "name": "token_program" }, { - "name": "event_authority", - "pda": { - "seeds": [ - { - "kind": "const", - "value": [ - 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, - 114, 105, 116, 121 - ] - } - ] - } + "name": "event_authority" }, { "name": "program" @@ -2549,8 +2206,8 @@ ] }, { - "name": "zap_protocol_fee", - "discriminator": [213, 155, 187, 34, 56, 182, 91, 240], + "name": "withdraw_ineligible_reward", + "discriminator": [148, 206, 42, 195, 247, 49, 103, 8], "accounts": [ { "name": "pool_authority", @@ -2561,38 +2218,34 @@ "writable": true }, { - "name": "token_vault", + "name": "reward_vault", "writable": true }, { - "name": "token_mint" + "name": "reward_mint" }, { - "name": "receiver_token", + "name": "funder_token_account", "writable": true }, { - "name": "operator", - "docs": ["zap claim fee operator"] + "name": "funder", + "signer": true }, { - "name": "signer", - "docs": ["Operator"], - "signer": true + "name": "token_program" }, { - "name": "token_program", - "docs": ["Token program"] + "name": "event_authority" }, { - "name": "sysvar_instructions", - "address": "Sysvar1nstructions1111111111111111111111111" + "name": "program" } ], "args": [ { - "name": "max_amount", - "type": "u64" + "name": "reward_index", + "type": "u8" } ] } @@ -2641,8 +2294,8 @@ "discriminator": [198, 182, 183, 52, 97, 12, 49, 56] }, { - "name": "EvtClaimProtocolFee", - "discriminator": [186, 244, 75, 251, 188, 13, 25, 33] + "name": "EvtClaimProtocolFee2", + "discriminator": [187, 133, 66, 9, 205, 161, 84, 13] }, { "name": "EvtClaimReward", @@ -2712,6 +2365,10 @@ "name": "EvtSwap2", "discriminator": [189, 66, 51, 168, 38, 80, 117, 153] }, + { + "name": "EvtUpdateDelegatePermission", + "discriminator": [66, 188, 75, 151, 150, 232, 87, 93] + }, { "name": "EvtUpdatePoolFees", "discriminator": [76, 165, 246, 102, 102, 217, 156, 44] @@ -2724,6 +2381,10 @@ "name": "EvtUpdateRewardFunder", "discriminator": [76, 154, 208, 13, 40, 115, 246, 146] }, + { + "name": "EvtWithdrawDeadLiquidityReward", + "discriminator": [228, 66, 150, 195, 42, 62, 163, 13] + }, { "name": "EvtWithdrawIneligibleReward", "discriminator": [248, 215, 184, 78, 31, 180, 179, 168] @@ -3069,6 +2730,21 @@ "code": 6067, "name": "InvalidCompoundingFeeBps", "msg": "Invalid compounding fee bps" + }, + { + "code": 6068, + "name": "InvalidClaimProtocolFeeAccounts", + "msg": "Invalid claim protocol fee accounts" + }, + { + "code": 6069, + "name": "TransferFeeExcludedAmountIsZero", + "msg": "Transfer fee excluded amount is zero" + }, + { + "code": 6070, + "name": "DelegatedAmountNonZero", + "msg": "Delegated amount is not zero" } ], "types": [ @@ -3564,7 +3240,7 @@ } }, { - "name": "EvtClaimProtocolFee", + "name": "EvtClaimProtocolFee2", "type": { "kind": "struct", "fields": [ @@ -3573,11 +3249,15 @@ "type": "pubkey" }, { - "name": "token_a_amount", - "type": "u64" + "name": "receiver_token_account", + "type": "pubkey" }, { - "name": "token_b_amount", + "name": "token_mint", + "type": "pubkey" + }, + { + "name": "amount", "type": "u64" } ] @@ -4273,6 +3953,32 @@ ] } }, + { + "name": "EvtUpdateDelegatePermission", + "type": { + "kind": "struct", + "fields": [ + { + "name": "position", + "type": "pubkey" + }, + { + "name": "owner", + "type": "pubkey" + }, + { + "name": "permission", + "type": "u32" + }, + { + "name": "delegate", + "type": { + "option": "pubkey" + } + } + ] + } + }, { "name": "EvtUpdatePoolFees", "type": { @@ -4345,6 +4051,26 @@ ] } }, + { + "name": "EvtWithdrawDeadLiquidityReward", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "reward_mint", + "type": "pubkey" + }, + { + "name": "amount", + "type": "u64" + } + ] + } + }, { "name": "EvtWithdrawIneligibleReward", "type": { @@ -5176,10 +4902,19 @@ } } }, + { + "name": "delegate_permission", + "docs": [ + "delegate permission bitmask (paired with SPL token Approve)" + ], + "type": "u32" + }, { "name": "padding", "docs": ["padding for future usage"], - "type": "u128" + "type": { + "array": ["u8", 12] + } } ] } @@ -5257,13 +4992,11 @@ } }, { - "name": "_padding_1", + "name": "dead_liquidity_reward_checkpoint", "docs": [ - "Padding to ensure `reward_rate: u128` is 16-byte aligned" + "Cumulative dead-liquidity reward (Compounding Pool only)" ], - "type": { - "array": ["u8", 8] - } + "type": "u64" }, { "name": "mint", @@ -5763,6 +5496,17 @@ } } } + }, + { + "name": "compounding_fee_bps", + "docs": [ + "Compounding fee update mode:", + "- None: skip compounding fee update", + "- Some: update compounding_fee_bps; pool must use CollectFeeMode::Compounding" + ], + "type": { + "option": "u16" + } } ] } diff --git a/libs/dlmm/Cargo.toml b/libs/dlmm/Cargo.toml index 0f4af0f..6c5715c 100644 --- a/libs/dlmm/Cargo.toml +++ b/libs/dlmm/Cargo.toml @@ -7,6 +7,12 @@ edition = "2021" [lib] doctest = false +[lints] +workspace = true + +[features] +idl-build = ["anchor-lang/idl-build"] + [dependencies] anchor-lang = { workspace = true } bytemuck = { workspace = true, features = ["min_const_generics"] } diff --git a/libs/jupiter/Cargo.toml b/libs/jupiter/Cargo.toml deleted file mode 100644 index c7377c7..0000000 --- a/libs/jupiter/Cargo.toml +++ /dev/null @@ -1,11 +0,0 @@ -[package] -name = "jupiter" -version = "0.1.0" -description = "Created with Anchor" -edition = "2021" - -[lib] -doctest = false - -[dependencies] -anchor-lang = { workspace = true } diff --git a/libs/jupiter/src/lib.rs b/libs/jupiter/src/lib.rs deleted file mode 100644 index 5100bfe..0000000 --- a/libs/jupiter/src/lib.rs +++ /dev/null @@ -1,5 +0,0 @@ -use anchor_lang::prelude::*; - -declare_program!(jupiter); - -pub use jupiter::*; diff --git a/package.json b/package.json index f1749c4..1a53a2b 100644 --- a/package.json +++ b/package.json @@ -3,10 +3,12 @@ "scripts": { "lint:fix": "prettier */*.ts \"*/**/*{.js,.ts}\" -w", "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check", - "test": "anchor build -- --features local && ts-mocha --no-experimental-strip-types -p ./tsconfig.json -t 1000000 tests/**/*.ts" + "build-local": "anchor build --ignore-keys -- --features local", + "test": "ANCHOR_WALLET=~/.config/solana/id.json bunx ts-mocha --no-experimental-strip-types -p ./tsconfig.json -t 1000000 tests/**/*.ts", + "build-local-test": "bun run build-local && bun run test" }, "dependencies": { - "@coral-xyz/anchor": "^0.31.1", + "@anchor-lang/core": "^1.0.0", "@solana/spl-token": "^0.4.13", "@solana/web3.js": "^1.98.2", "babar": "^0.2.3", @@ -22,7 +24,7 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", + "tsx": "^4.21.0", "typescript": "^5.7.3" - }, - "packageManager": "pnpm@10.28.2+sha512.41872f037ad22f7348e3b1debbaf7e867cfd448f2726d9cf74c08f19507c31d2c8e7a11525b983febc2df640b5438dee6023ebb1f84ed43cc2d654d2bc326264" + } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index 23772c5..0000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,1708 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@coral-xyz/anchor': - specifier: ^0.31.1 - version: 0.31.1(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) - '@solana/spl-token': - specifier: ^0.4.13 - version: 0.4.13(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)(utf-8-validate@5.0.10) - '@solana/web3.js': - specifier: ^1.98.2 - version: 1.98.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) - babar: - specifier: ^0.2.3 - version: 0.2.3 - borsh: - specifier: ^2.0.0 - version: 2.0.0 - litesvm: - specifier: ^0.1.0 - version: 0.1.0(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) - devDependencies: - '@meteora-ag/cp-amm-sdk': - specifier: ^1.3.7 - version: 1.3.7(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)(utf-8-validate@5.0.10) - '@types/bn.js': - specifier: ^5.1.0 - version: 5.2.0 - '@types/chai': - specifier: ^4.3.0 - version: 4.3.20 - '@types/mocha': - specifier: ^9.0.0 - version: 9.1.1 - chai: - specifier: ^4.3.4 - version: 4.5.0 - mocha: - specifier: ^9.0.3 - version: 9.2.2 - prettier: - specifier: ^2.6.2 - version: 2.8.8 - ts-mocha: - specifier: ^10.0.0 - version: 10.1.0(mocha@9.2.2) - typescript: - specifier: ^5.7.3 - version: 5.8.3 - -packages: - - '@babel/runtime@7.27.6': - resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==} - engines: {node: '>=6.9.0'} - - '@coral-xyz/anchor-errors@0.31.1': - resolution: {integrity: sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ==} - engines: {node: '>=10'} - - '@coral-xyz/anchor@0.31.1': - resolution: {integrity: sha512-QUqpoEK+gi2S6nlYc2atgT2r41TT3caWr/cPUEL8n8Md9437trZ68STknq897b82p5mW0XrTBNOzRbmIRJtfsA==} - engines: {node: '>=17'} - - '@coral-xyz/borsh@0.31.1': - resolution: {integrity: sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw==} - engines: {node: '>=10'} - peerDependencies: - '@solana/web3.js': ^1.69.0 - - '@meteora-ag/cp-amm-sdk@1.3.7': - resolution: {integrity: sha512-k7vijBXhKtT4+geHcrRbLlgggXDgl3WtgsCTHAZAtzl1JEYeN0LopcbuOmeuRLEQVq73TlzSwhIlDCH6M3JyuA==} - - '@noble/curves@1.9.2': - resolution: {integrity: sha512-HxngEd2XUcg9xi20JkwlLCtYwfoFw4JGkuZpT+WlsPD4gB/cxkvTD8fSsoAnphGZhFdZYKeQIPCuFlWPm1uE0g==} - engines: {node: ^14.21.3 || >=16} - - '@noble/hashes@1.8.0': - resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} - engines: {node: ^14.21.3 || >=16} - - '@solana/buffer-layout-utils@0.2.0': - resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==} - engines: {node: '>= 10'} - - '@solana/buffer-layout@4.0.1': - resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==} - engines: {node: '>=5.10'} - - '@solana/codecs-core@2.0.0-rc.1': - resolution: {integrity: sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ==} - peerDependencies: - typescript: '>=5' - - '@solana/codecs-core@2.3.0': - resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: '>=5.3.3' - - '@solana/codecs-data-structures@2.0.0-rc.1': - resolution: {integrity: sha512-rinCv0RrAVJ9rE/rmaibWJQxMwC5lSaORSZuwjopSUE6T0nb/MVg6Z1siNCXhh/HFTOg0l8bNvZHgBcN/yvXog==} - peerDependencies: - typescript: '>=5' - - '@solana/codecs-numbers@2.0.0-rc.1': - resolution: {integrity: sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ==} - peerDependencies: - typescript: '>=5' - - '@solana/codecs-numbers@2.3.0': - resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: '>=5.3.3' - - '@solana/codecs-strings@2.0.0-rc.1': - resolution: {integrity: sha512-9/wPhw8TbGRTt6mHC4Zz1RqOnuPTqq1Nb4EyuvpZ39GW6O2t2Q7Q0XxiB3+BdoEjwA2XgPw6e2iRfvYgqty44g==} - peerDependencies: - fastestsmallesttextencoderdecoder: ^1.0.22 - typescript: '>=5' - - '@solana/codecs@2.0.0-rc.1': - resolution: {integrity: sha512-qxoR7VybNJixV51L0G1RD2boZTcxmwUWnKCaJJExQ5qNKwbpSyDdWfFJfM5JhGyKe9DnPVOZB+JHWXnpbZBqrQ==} - peerDependencies: - typescript: '>=5' - - '@solana/errors@2.0.0-rc.1': - resolution: {integrity: sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ==} - hasBin: true - peerDependencies: - typescript: '>=5' - - '@solana/errors@2.3.0': - resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==} - engines: {node: '>=20.18.0'} - hasBin: true - peerDependencies: - typescript: '>=5.3.3' - - '@solana/options@2.0.0-rc.1': - resolution: {integrity: sha512-mLUcR9mZ3qfHlmMnREdIFPf9dpMc/Bl66tLSOOWxw4ml5xMT2ohFn7WGqoKcu/UHkT9CrC6+amEdqCNvUqI7AA==} - peerDependencies: - typescript: '>=5' - - '@solana/spl-token-group@0.0.7': - resolution: {integrity: sha512-V1N/iX7Cr7H0uazWUT2uk27TMqlqedpXHRqqAbVO2gvmJyT0E0ummMEAVQeXZ05ZhQ/xF39DLSdBp90XebWEug==} - engines: {node: '>=16'} - peerDependencies: - '@solana/web3.js': ^1.95.3 - - '@solana/spl-token-metadata@0.1.6': - resolution: {integrity: sha512-7sMt1rsm/zQOQcUWllQX9mD2O6KhSAtY1hFR2hfFwgqfFWzSY9E9GDvFVNYUI1F0iQKcm6HmePU9QbKRXTEBiA==} - engines: {node: '>=16'} - peerDependencies: - '@solana/web3.js': ^1.95.3 - - '@solana/spl-token@0.4.13': - resolution: {integrity: sha512-cite/pYWQZZVvLbg5lsodSovbetK/eA24gaR0eeUeMuBAMNrT8XFCwaygKy0N2WSg3gSyjjNpIeAGBAKZaY/1w==} - engines: {node: '>=16'} - peerDependencies: - '@solana/web3.js': ^1.95.5 - - '@solana/web3.js@1.98.2': - resolution: {integrity: sha512-BqVwEG+TaG2yCkBMbD3C4hdpustR4FpuUFRPUmqRZYYlPI9Hg4XMWxHWOWRzHE9Lkc9NDjzXFX7lDXSgzC7R1A==} - - '@swc/helpers@0.5.17': - resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} - - '@types/bn.js@5.2.0': - resolution: {integrity: sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q==} - - '@types/chai@4.3.20': - resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==} - - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - - '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - - '@types/mocha@9.1.1': - resolution: {integrity: sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==} - - '@types/node@12.20.55': - resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - - '@types/node@24.0.14': - resolution: {integrity: sha512-4zXMWD91vBLGRtHK3YbIoFMia+1nqEz72coM42C5ETjnNCa/heoj7NT1G67iAfOqMmcfhuCZ4uNpyz8EjlAejw==} - - '@types/uuid@8.3.4': - resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} - - '@types/ws@7.4.7': - resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} - - '@types/ws@8.18.1': - resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} - - '@ungap/promise-all-settled@1.1.2': - resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==} - - agentkeepalive@4.6.0: - resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} - engines: {node: '>= 8.0.0'} - - ansi-colors@4.1.1: - resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} - engines: {node: '>=6'} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - - assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - - babar@0.2.3: - resolution: {integrity: sha512-1hmYKLj+7m5qHsJ3hosOlO7Z5BYe3E8u9u/W2BEqB4kytysuHYuGe5OIrEr7q4Zyg3y3EytFb4YrPZokYSix8g==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - base-x@3.0.11: - resolution: {integrity: sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==} - - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - bigint-buffer@1.1.5: - resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==} - engines: {node: '>= 10.0.0'} - - bignumber.js@9.3.1: - resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - - bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - - bn.js@5.2.2: - resolution: {integrity: sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==} - - borsh@0.7.0: - resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==} - - borsh@2.0.0: - resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==} - - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - browser-stdout@1.3.1: - resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - - bs58@4.0.1: - resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} - - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - buffer-layout@1.2.2: - resolution: {integrity: sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==} - engines: {node: '>=4.5'} - - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - - bufferutil@4.0.9: - resolution: {integrity: sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==} - engines: {node: '>=6.14.2'} - - camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - - chai@4.5.0: - resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} - engines: {node: '>=4'} - - chain@0.4.2: - resolution: {integrity: sha512-GtM+TlN398yBhtSp1D2dBLQomKM3Umbji3h2/NdCqAWSMKhWbjlz33j0e55rStsEZD+8OLRHuz7kWd0U3xKMDg==} - engines: {node: '>=18'} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - chalk@5.4.1: - resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - - check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} - - chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} - - cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - colors@1.4.0: - resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} - engines: {node: '>=0.1.90'} - - commander@12.1.0: - resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} - engines: {node: '>=18'} - - commander@14.0.0: - resolution: {integrity: sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==} - engines: {node: '>=20'} - - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - cross-fetch@3.2.0: - resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} - - debug@4.3.3: - resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - decamelize@4.0.0: - resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} - engines: {node: '>=10'} - - decimal.js@10.6.0: - resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} - - deep-eql@4.1.4: - resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} - engines: {node: '>=6'} - - delay@5.0.0: - resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} - engines: {node: '>=10'} - - diff@3.5.0: - resolution: {integrity: sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==} - engines: {node: '>=0.3.1'} - - diff@5.0.0: - resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} - engines: {node: '>=0.3.1'} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - es6-promise@4.2.8: - resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} - - es6-promisify@5.0.0: - resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==} - - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - - eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - - eyes@0.1.8: - resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} - engines: {node: '> 0.1.90'} - - fast-stable-stringify@1.0.0: - resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==} - - fastestsmallesttextencoderdecoder@1.0.22: - resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==} - - file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob@7.2.0: - resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} - deprecated: Glob versions prior to v9 are no longer supported - - growl@1.10.5: - resolution: {integrity: sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==} - engines: {node: '>=4.x'} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - - humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - - is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - isomorphic-ws@4.0.1: - resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} - peerDependencies: - ws: '*' - - jayson@4.2.0: - resolution: {integrity: sha512-VfJ9t1YLwacIubLhONk0KFeosUBwstRWQ0IRT1KDjEjnVnSOVHC3uwugyV7L0c7R9lpVyrUGT2XWiBA1UTtpyg==} - engines: {node: '>=8'} - hasBin: true - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - - json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - - litesvm-darwin-arm64@0.1.0: - resolution: {integrity: sha512-GwBph2fNaR9UP1nhFmQYk7UMcI9+ogrzpbDl2en70FUnPc+FDlchOts2X8IL5XFCU+m4ZGoQl/N9b+FywJN5lQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - - litesvm-darwin-universal@0.1.0: - resolution: {integrity: sha512-GjGpz77ei+RfWiMtHiES0X8GP+TafFHWu5fAQXgXEoGia7RG32Z12iJBhwfvk0T4EKbm8bqlyqhe5Me/nARm/w==} - engines: {node: '>= 10'} - os: [darwin] - - litesvm-darwin-x64@0.1.0: - resolution: {integrity: sha512-1N/IPfoT+gcpkvG9Wm7+vcaxgl/LB8hbm85cHDQRq4O1wyiRRiR6ByeNRamj+OFEDSfI7a/1NshhMobnnr2MGQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - - litesvm-linux-x64-gnu@0.1.0: - resolution: {integrity: sha512-S6krvRz6BXxVZIkap5XkWwulSG4KsbFrxjyqP1X0zANa8jWMHEd09Zy9pPgfOetni2exg67fBmSlWq4sRfzlCw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - libc: [glibc] - - litesvm-linux-x64-musl@0.1.0: - resolution: {integrity: sha512-3E9gC5HRCEHFsfUNDhAY9JKx6ou6JazlnYMhT89JgbAN/YsJmyEgkTfY6W7TVV90g4EAJ/K4smSmg+vV413mYQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - libc: [musl] - - litesvm@0.1.0: - resolution: {integrity: sha512-XfpvWgYxFQUZxwFzWJTsuHRc1y34q8WtC60lhvH1xb6YX1/RBLqzIClp2JkxtlqGnDi/WPlThsXGmC3SinuPMQ==} - engines: {node: '>= 10'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - - loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} - - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimatch@4.2.1: - resolution: {integrity: sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==} - engines: {node: '>=10'} - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - - mocha@9.2.2: - resolution: {integrity: sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==} - engines: {node: '>= 12.0.0'} - hasBin: true - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - nanoid@3.3.1: - resolution: {integrity: sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - - node-gyp-build@4.8.4: - resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} - hasBin: true - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - pako@2.1.0: - resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - rpc-websockets@9.1.1: - resolution: {integrity: sha512-1IXGM/TfPT6nfYMIXkJdzn+L4JEsmb0FL1O2OBjaH03V3yuUDdKFulGLMFG6ErV+8pZ5HVC0limve01RyO+saA==} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - serialize-javascript@6.0.0: - resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} - - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - stream-chain@2.2.5: - resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==} - - stream-json@1.9.1: - resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - superstruct@0.15.5: - resolution: {integrity: sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==} - - superstruct@2.0.2: - resolution: {integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==} - engines: {node: '>=14.0.0'} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - text-encoding-utf-8@1.0.2: - resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - toml@3.0.0: - resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} - - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - - ts-mocha@10.1.0: - resolution: {integrity: sha512-T0C0Xm3/WqCuF2tpa0GNGESTBoKZaiqdUP8guNv4ZY316AFXlyidnrzQ1LUrCT0Wb1i3J0zFTgOh/55Un44WdA==} - engines: {node: '>= 6.X.X'} - hasBin: true - peerDependencies: - mocha: ^3.X.X || ^4.X.X || ^5.X.X || ^6.X.X || ^7.X.X || ^8.X.X || ^9.X.X || ^10.X.X || ^11.X.X - - ts-node@7.0.1: - resolution: {integrity: sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==} - engines: {node: '>=4.2.0'} - hasBin: true - - tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - - type-detect@4.1.0: - resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} - engines: {node: '>=4'} - - typescript@5.8.3: - resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} - engines: {node: '>=14.17'} - hasBin: true - - undici-types@7.8.0: - resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} - - utf-8-validate@5.0.10: - resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} - engines: {node: '>=6.14.2'} - - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - workerpool@6.2.0: - resolution: {integrity: sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - ws@7.5.10: - resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@8.18.3: - resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - yargs-parser@20.2.4: - resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} - engines: {node: '>=10'} - - yargs-unparser@2.0.0: - resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} - engines: {node: '>=10'} - - yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - - yn@2.0.0: - resolution: {integrity: sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ==} - engines: {node: '>=4'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - -snapshots: - - '@babel/runtime@7.27.6': {} - - '@coral-xyz/anchor-errors@0.31.1': {} - - '@coral-xyz/anchor@0.31.1(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)': - dependencies: - '@coral-xyz/anchor-errors': 0.31.1 - '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)) - '@noble/hashes': 1.8.0 - '@solana/web3.js': 1.98.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) - bn.js: 5.2.2 - bs58: 4.0.1 - buffer-layout: 1.2.2 - camelcase: 6.3.0 - cross-fetch: 3.2.0 - eventemitter3: 4.0.7 - pako: 2.1.0 - superstruct: 0.15.5 - toml: 3.0.0 - transitivePeerDependencies: - - bufferutil - - encoding - - typescript - - utf-8-validate - - '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10))': - dependencies: - '@solana/web3.js': 1.98.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) - bn.js: 5.2.2 - buffer-layout: 1.2.2 - - '@meteora-ag/cp-amm-sdk@1.3.7(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)(utf-8-validate@5.0.10)': - dependencies: - '@coral-xyz/anchor': 0.31.1(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) - '@solana/spl-token': 0.4.13(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)(utf-8-validate@5.0.10) - '@solana/web3.js': 1.98.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) - '@types/bn.js': 5.2.0 - bn.js: 5.2.2 - chain: 0.4.2 - decimal.js: 10.6.0 - invariant: 2.2.4 - transitivePeerDependencies: - - bufferutil - - encoding - - fastestsmallesttextencoderdecoder - - typescript - - utf-8-validate - - '@noble/curves@1.9.2': - dependencies: - '@noble/hashes': 1.8.0 - - '@noble/hashes@1.8.0': {} - - '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)': - dependencies: - '@solana/buffer-layout': 4.0.1 - '@solana/web3.js': 1.98.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) - bigint-buffer: 1.1.5 - bignumber.js: 9.3.1 - transitivePeerDependencies: - - bufferutil - - encoding - - typescript - - utf-8-validate - - '@solana/buffer-layout@4.0.1': - dependencies: - buffer: 6.0.3 - - '@solana/codecs-core@2.0.0-rc.1(typescript@5.8.3)': - dependencies: - '@solana/errors': 2.0.0-rc.1(typescript@5.8.3) - typescript: 5.8.3 - - '@solana/codecs-core@2.3.0(typescript@5.8.3)': - dependencies: - '@solana/errors': 2.3.0(typescript@5.8.3) - typescript: 5.8.3 - - '@solana/codecs-data-structures@2.0.0-rc.1(typescript@5.8.3)': - dependencies: - '@solana/codecs-core': 2.0.0-rc.1(typescript@5.8.3) - '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.8.3) - '@solana/errors': 2.0.0-rc.1(typescript@5.8.3) - typescript: 5.8.3 - - '@solana/codecs-numbers@2.0.0-rc.1(typescript@5.8.3)': - dependencies: - '@solana/codecs-core': 2.0.0-rc.1(typescript@5.8.3) - '@solana/errors': 2.0.0-rc.1(typescript@5.8.3) - typescript: 5.8.3 - - '@solana/codecs-numbers@2.3.0(typescript@5.8.3)': - dependencies: - '@solana/codecs-core': 2.3.0(typescript@5.8.3) - '@solana/errors': 2.3.0(typescript@5.8.3) - typescript: 5.8.3 - - '@solana/codecs-strings@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)': - dependencies: - '@solana/codecs-core': 2.0.0-rc.1(typescript@5.8.3) - '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.8.3) - '@solana/errors': 2.0.0-rc.1(typescript@5.8.3) - fastestsmallesttextencoderdecoder: 1.0.22 - typescript: 5.8.3 - - '@solana/codecs@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)': - dependencies: - '@solana/codecs-core': 2.0.0-rc.1(typescript@5.8.3) - '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.8.3) - '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.8.3) - '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3) - '@solana/options': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder - - '@solana/errors@2.0.0-rc.1(typescript@5.8.3)': - dependencies: - chalk: 5.4.1 - commander: 12.1.0 - typescript: 5.8.3 - - '@solana/errors@2.3.0(typescript@5.8.3)': - dependencies: - chalk: 5.4.1 - commander: 14.0.0 - typescript: 5.8.3 - - '@solana/options@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)': - dependencies: - '@solana/codecs-core': 2.0.0-rc.1(typescript@5.8.3) - '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.8.3) - '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.8.3) - '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3) - '@solana/errors': 2.0.0-rc.1(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder - - '@solana/spl-token-group@0.0.7(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)': - dependencies: - '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3) - '@solana/web3.js': 1.98.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder - - typescript - - '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)': - dependencies: - '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3) - '@solana/web3.js': 1.98.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder - - typescript - - '@solana/spl-token@0.4.13(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)(utf-8-validate@5.0.10)': - dependencies: - '@solana/buffer-layout': 4.0.1 - '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) - '@solana/spl-token-group': 0.0.7(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3) - '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3) - '@solana/web3.js': 1.98.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) - buffer: 6.0.3 - transitivePeerDependencies: - - bufferutil - - encoding - - fastestsmallesttextencoderdecoder - - typescript - - utf-8-validate - - '@solana/web3.js@1.98.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)': - dependencies: - '@babel/runtime': 7.27.6 - '@noble/curves': 1.9.2 - '@noble/hashes': 1.8.0 - '@solana/buffer-layout': 4.0.1 - '@solana/codecs-numbers': 2.3.0(typescript@5.8.3) - agentkeepalive: 4.6.0 - bn.js: 5.2.2 - borsh: 0.7.0 - bs58: 4.0.1 - buffer: 6.0.3 - fast-stable-stringify: 1.0.0 - jayson: 4.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) - node-fetch: 2.7.0 - rpc-websockets: 9.1.1 - superstruct: 2.0.2 - transitivePeerDependencies: - - bufferutil - - encoding - - typescript - - utf-8-validate - - '@swc/helpers@0.5.17': - dependencies: - tslib: 2.8.1 - - '@types/bn.js@5.2.0': - dependencies: - '@types/node': 24.0.14 - - '@types/chai@4.3.20': {} - - '@types/connect@3.4.38': - dependencies: - '@types/node': 24.0.14 - - '@types/json5@0.0.29': - optional: true - - '@types/mocha@9.1.1': {} - - '@types/node@12.20.55': {} - - '@types/node@24.0.14': - dependencies: - undici-types: 7.8.0 - - '@types/uuid@8.3.4': {} - - '@types/ws@7.4.7': - dependencies: - '@types/node': 24.0.14 - - '@types/ws@8.18.1': - dependencies: - '@types/node': 24.0.14 - - '@ungap/promise-all-settled@1.1.2': {} - - agentkeepalive@4.6.0: - dependencies: - humanize-ms: 1.2.1 - - ansi-colors@4.1.1: {} - - ansi-regex@5.0.1: {} - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - argparse@2.0.1: {} - - arrify@1.0.1: {} - - assertion-error@1.1.0: {} - - babar@0.2.3: - dependencies: - colors: 1.4.0 - - balanced-match@1.0.2: {} - - base-x@3.0.11: - dependencies: - safe-buffer: 5.2.1 - - base64-js@1.5.1: {} - - bigint-buffer@1.1.5: - dependencies: - bindings: 1.5.0 - - bignumber.js@9.3.1: {} - - binary-extensions@2.3.0: {} - - bindings@1.5.0: - dependencies: - file-uri-to-path: 1.0.0 - - bn.js@5.2.2: {} - - borsh@0.7.0: - dependencies: - bn.js: 5.2.2 - bs58: 4.0.1 - text-encoding-utf-8: 1.0.2 - - borsh@2.0.0: {} - - brace-expansion@1.1.12: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - browser-stdout@1.3.1: {} - - bs58@4.0.1: - dependencies: - base-x: 3.0.11 - - buffer-from@1.1.2: {} - - buffer-layout@1.2.2: {} - - buffer@6.0.3: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - bufferutil@4.0.9: - dependencies: - node-gyp-build: 4.8.4 - optional: true - - camelcase@6.3.0: {} - - chai@4.5.0: - dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.4 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.1.0 - - chain@0.4.2: {} - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - chalk@5.4.1: {} - - check-error@1.0.3: - dependencies: - get-func-name: 2.0.2 - - chokidar@3.5.3: - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - - cliui@7.0.4: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - colors@1.4.0: {} - - commander@12.1.0: {} - - commander@14.0.0: {} - - commander@2.20.3: {} - - concat-map@0.0.1: {} - - cross-fetch@3.2.0: - dependencies: - node-fetch: 2.7.0 - transitivePeerDependencies: - - encoding - - debug@4.3.3(supports-color@8.1.1): - dependencies: - ms: 2.1.2 - optionalDependencies: - supports-color: 8.1.1 - - decamelize@4.0.0: {} - - decimal.js@10.6.0: {} - - deep-eql@4.1.4: - dependencies: - type-detect: 4.1.0 - - delay@5.0.0: {} - - diff@3.5.0: {} - - diff@5.0.0: {} - - emoji-regex@8.0.0: {} - - es6-promise@4.2.8: {} - - es6-promisify@5.0.0: - dependencies: - es6-promise: 4.2.8 - - escalade@3.2.0: {} - - escape-string-regexp@4.0.0: {} - - eventemitter3@4.0.7: {} - - eventemitter3@5.0.1: {} - - eyes@0.1.8: {} - - fast-stable-stringify@1.0.0: {} - - fastestsmallesttextencoderdecoder@1.0.22: {} - - file-uri-to-path@1.0.0: {} - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - flat@5.0.2: {} - - fs.realpath@1.0.0: {} - - fsevents@2.3.3: - optional: true - - get-caller-file@2.0.5: {} - - get-func-name@2.0.2: {} - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob@7.2.0: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - growl@1.10.5: {} - - has-flag@4.0.0: {} - - he@1.2.0: {} - - humanize-ms@1.2.1: - dependencies: - ms: 2.1.3 - - ieee754@1.2.1: {} - - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - inherits@2.0.4: {} - - invariant@2.2.4: - dependencies: - loose-envify: 1.4.0 - - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - - is-extglob@2.1.1: {} - - is-fullwidth-code-point@3.0.0: {} - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-number@7.0.0: {} - - is-plain-obj@2.1.0: {} - - is-unicode-supported@0.1.0: {} - - isexe@2.0.0: {} - - isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)): - dependencies: - ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) - - jayson@4.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10): - dependencies: - '@types/connect': 3.4.38 - '@types/node': 12.20.55 - '@types/ws': 7.4.7 - commander: 2.20.3 - delay: 5.0.0 - es6-promisify: 5.0.0 - eyes: 0.1.8 - isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) - json-stringify-safe: 5.0.1 - stream-json: 1.9.1 - uuid: 8.3.2 - ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - js-tokens@4.0.0: {} - - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 - - json-stringify-safe@5.0.1: {} - - json5@1.0.2: - dependencies: - minimist: 1.2.8 - optional: true - - litesvm-darwin-arm64@0.1.0: - optional: true - - litesvm-darwin-universal@0.1.0: - optional: true - - litesvm-darwin-x64@0.1.0: - optional: true - - litesvm-linux-x64-gnu@0.1.0: - optional: true - - litesvm-linux-x64-musl@0.1.0: - optional: true - - litesvm@0.1.0(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10): - dependencies: - '@solana/web3.js': 1.98.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) - bs58: 4.0.1 - optionalDependencies: - litesvm-darwin-arm64: 0.1.0 - litesvm-darwin-universal: 0.1.0 - litesvm-darwin-x64: 0.1.0 - litesvm-linux-x64-gnu: 0.1.0 - litesvm-linux-x64-musl: 0.1.0 - transitivePeerDependencies: - - bufferutil - - encoding - - typescript - - utf-8-validate - - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 - - log-symbols@4.1.0: - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - - loose-envify@1.4.0: - dependencies: - js-tokens: 4.0.0 - - loupe@2.3.7: - dependencies: - get-func-name: 2.0.2 - - make-error@1.3.6: {} - - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.12 - - minimatch@4.2.1: - dependencies: - brace-expansion: 1.1.12 - - minimist@1.2.8: {} - - mkdirp@0.5.6: - dependencies: - minimist: 1.2.8 - - mocha@9.2.2: - dependencies: - '@ungap/promise-all-settled': 1.1.2 - ansi-colors: 4.1.1 - browser-stdout: 1.3.1 - chokidar: 3.5.3 - debug: 4.3.3(supports-color@8.1.1) - diff: 5.0.0 - escape-string-regexp: 4.0.0 - find-up: 5.0.0 - glob: 7.2.0 - growl: 1.10.5 - he: 1.2.0 - js-yaml: 4.1.0 - log-symbols: 4.1.0 - minimatch: 4.2.1 - ms: 2.1.3 - nanoid: 3.3.1 - serialize-javascript: 6.0.0 - strip-json-comments: 3.1.1 - supports-color: 8.1.1 - which: 2.0.2 - workerpool: 6.2.0 - yargs: 16.2.0 - yargs-parser: 20.2.4 - yargs-unparser: 2.0.0 - - ms@2.1.2: {} - - ms@2.1.3: {} - - nanoid@3.3.1: {} - - node-fetch@2.7.0: - dependencies: - whatwg-url: 5.0.0 - - node-gyp-build@4.8.4: - optional: true - - normalize-path@3.0.0: {} - - once@1.4.0: - dependencies: - wrappy: 1.0.2 - - p-limit@3.1.0: - dependencies: - yocto-queue: 0.1.0 - - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - - pako@2.1.0: {} - - path-exists@4.0.0: {} - - path-is-absolute@1.0.1: {} - - pathval@1.1.1: {} - - picomatch@2.3.1: {} - - prettier@2.8.8: {} - - randombytes@2.1.0: - dependencies: - safe-buffer: 5.2.1 - - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 - - require-directory@2.1.1: {} - - rpc-websockets@9.1.1: - dependencies: - '@swc/helpers': 0.5.17 - '@types/uuid': 8.3.4 - '@types/ws': 8.18.1 - buffer: 6.0.3 - eventemitter3: 5.0.1 - uuid: 8.3.2 - ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) - optionalDependencies: - bufferutil: 4.0.9 - utf-8-validate: 5.0.10 - - safe-buffer@5.2.1: {} - - serialize-javascript@6.0.0: - dependencies: - randombytes: 2.1.0 - - source-map-support@0.5.21: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - - source-map@0.6.1: {} - - stream-chain@2.2.5: {} - - stream-json@1.9.1: - dependencies: - stream-chain: 2.2.5 - - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - strip-bom@3.0.0: - optional: true - - strip-json-comments@3.1.1: {} - - superstruct@0.15.5: {} - - superstruct@2.0.2: {} - - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - - supports-color@8.1.1: - dependencies: - has-flag: 4.0.0 - - text-encoding-utf-8@1.0.2: {} - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - toml@3.0.0: {} - - tr46@0.0.3: {} - - ts-mocha@10.1.0(mocha@9.2.2): - dependencies: - mocha: 9.2.2 - ts-node: 7.0.1 - optionalDependencies: - tsconfig-paths: 3.15.0 - - ts-node@7.0.1: - dependencies: - arrify: 1.0.1 - buffer-from: 1.1.2 - diff: 3.5.0 - make-error: 1.3.6 - minimist: 1.2.8 - mkdirp: 0.5.6 - source-map-support: 0.5.21 - yn: 2.0.0 - - tsconfig-paths@3.15.0: - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 - optional: true - - tslib@2.8.1: {} - - type-detect@4.1.0: {} - - typescript@5.8.3: {} - - undici-types@7.8.0: {} - - utf-8-validate@5.0.10: - dependencies: - node-gyp-build: 4.8.4 - optional: true - - uuid@8.3.2: {} - - webidl-conversions@3.0.1: {} - - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - workerpool@6.2.0: {} - - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrappy@1.0.2: {} - - ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10): - optionalDependencies: - bufferutil: 4.0.9 - utf-8-validate: 5.0.10 - - ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10): - optionalDependencies: - bufferutil: 4.0.9 - utf-8-validate: 5.0.10 - - y18n@5.0.8: {} - - yargs-parser@20.2.4: {} - - yargs-unparser@2.0.0: - dependencies: - camelcase: 6.3.0 - decamelize: 4.0.0 - flat: 5.0.2 - is-plain-obj: 2.1.0 - - yargs@16.2.0: - dependencies: - cliui: 7.0.4 - escalade: 3.2.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 20.2.4 - - yn@2.0.0: {} - - yocto-queue@0.1.0: {} diff --git a/programs/zap/Cargo.toml b/programs/zap/Cargo.toml index 6a749e0..1a32070 100644 --- a/programs/zap/Cargo.toml +++ b/programs/zap/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zap" -version = "0.2.2" +version = "0.2.3" description = "Created with Anchor" edition = "2021" @@ -16,6 +16,12 @@ no-entrypoint = [] no-idl = [] no-log-ix-name = [] idl-build = ["anchor-lang/idl-build", "anchor-spl/idl-build"] +custom-heap = [] +custom-panic = [] +anchor-debug = [] + +[lints] +workspace = true [dependencies] @@ -25,6 +31,6 @@ bytemuck = { workspace = true, features = ["derive", "min_const_generics"] } dlmm = { path = "../../libs/dlmm" } damm-v2 = { git = "https://github.com/MeteoraAg/damm-v2", features = [ "cpi", -], rev = "58a13fcf45516a9f27f2bd2a2056fb66673454e0", package = "cp-amm" } +], rev = "b66f6d04e6f64ff79e5a0037d5aedd5753c1886e", package = "cp-amm" } ruint = { workspace = true } zap-sdk = { path = "../../zap-sdk" } diff --git a/programs/zap/src/instructions/ix_zap_in_damm_v2.rs b/programs/zap/src/instructions/ix_zap_in_damm_v2.rs index 6efff65..ffaa12f 100644 --- a/programs/zap/src/instructions/ix_zap_in_damm_v2.rs +++ b/programs/zap/src/instructions/ix_zap_in_damm_v2.rs @@ -87,7 +87,7 @@ impl<'info> ZapInDammv2Ctx<'info> { }; damm_v2::cpi::swap2( CpiContext::new( - self.damm_program.to_account_info(), + self.damm_program.key(), damm_v2::cpi::accounts::SwapCtx { pool_authority: self.pool_authority.to_account_info(), input_token_account, @@ -118,7 +118,7 @@ impl<'info> ZapInDammv2Ctx<'info> { fn add_liquidity(&self, liquidity: u128) -> Result<()> { damm_v2::cpi::add_liquidity( CpiContext::new( - self.damm_program.to_account_info(), + self.damm_program.key(), damm_v2::cpi::accounts::AddLiquidityCtx { pool: self.pool.to_account_info(), position: self.position.to_account_info(), @@ -129,7 +129,7 @@ impl<'info> ZapInDammv2Ctx<'info> { token_a_mint: self.token_a_mint.to_account_info(), token_b_mint: self.token_b_mint.to_account_info(), position_nft_account: self.position_nft_account.to_account_info(), - owner: self.owner.to_account_info(), + signer: self.owner.to_account_info(), token_a_program: self.token_a_program.to_account_info(), token_b_program: self.token_b_program.to_account_info(), event_authority: self.damm_event_authority.to_account_info(), @@ -146,8 +146,8 @@ impl<'info> ZapInDammv2Ctx<'info> { } } -pub fn handle_zap_in_damm_v2<'c: 'info, 'info>( - ctx: Context<'_, '_, 'c, 'info, ZapInDammv2Ctx<'info>>, +pub fn handle_zap_in_damm_v2<'info>( + ctx: Context<'info, ZapInDammv2Ctx<'info>>, pre_sqrt_price: u128, // sqrt price user observe in local max_sqrt_price_change_bps: u32, // max sqrt price change after swap ) -> Result<()> { diff --git a/programs/zap/src/instructions/ix_zap_out.rs b/programs/zap/src/instructions/ix_zap_out.rs index dab7789..07a1d23 100644 --- a/programs/zap/src/instructions/ix_zap_out.rs +++ b/programs/zap/src/instructions/ix_zap_out.rs @@ -76,8 +76,8 @@ pub fn modify_instruction_data( Ok(()) } -pub fn handle_zap_out<'c: 'info, 'info>( - ctx: Context<'_, '_, 'c, 'info, ZapOutCtx<'info>>, +pub fn handle_zap_out<'info>( + ctx: Context<'info, ZapOutCtx<'info>>, params: &ZapOutParameters, ) -> Result<()> { // validate params diff --git a/programs/zap/src/instructions/zap_in_dlmm/ix_zap_in_dlmm_for_initialized_position.rs b/programs/zap/src/instructions/zap_in_dlmm/ix_zap_in_dlmm_for_initialized_position.rs index a4e6fd1..d2987d3 100644 --- a/programs/zap/src/instructions/zap_in_dlmm/ix_zap_in_dlmm_for_initialized_position.rs +++ b/programs/zap/src/instructions/zap_in_dlmm/ix_zap_in_dlmm_for_initialized_position.rs @@ -46,7 +46,7 @@ pub struct ZapInDlmmForInitializedPositionCtx<'info> { pub token_x_mint: InterfaceAccount<'info, Mint>, pub token_y_mint: InterfaceAccount<'info, Mint>, - pub dlmm_program: Program<'info, dlmm::program::LbClmm>, + pub dlmm_program: Program<'info, dlmm::dlmm::program::LbClmm>, /// owner of position pub owner: Signer<'info>, @@ -68,8 +68,8 @@ pub struct ZapInDlmmForInitializedPositionCtx<'info> { pub dlmm_event_authority: UncheckedAccount<'info>, } -pub fn handle_zap_in_dlmm_for_initialized_position<'c: 'info, 'info>( - ctx: Context<'_, '_, 'c, 'info, ZapInDlmmForInitializedPositionCtx<'info>>, +pub fn handle_zap_in_dlmm_for_initialized_position<'info>( + ctx: Context<'info, ZapInDlmmForInitializedPositionCtx<'info>>, active_id: i32, max_active_bin_slippage: u16, min_delta_id: i32, @@ -166,7 +166,7 @@ pub fn handle_zap_in_dlmm_for_initialized_position<'c: 'info, 'info>( dlmm::cpi::rebalance_liquidity( CpiContext::new( - ctx.accounts.dlmm_program.to_account_info(), + ctx.accounts.dlmm_program.key(), dlmm::cpi::accounts::RebalanceLiquidity { position: ctx.accounts.position.to_account_info(), lb_pair: ctx.accounts.lb_pair.to_account_info(), diff --git a/programs/zap/src/instructions/zap_in_dlmm/ix_zap_in_dlmm_for_uninitialized_position.rs b/programs/zap/src/instructions/zap_in_dlmm/ix_zap_in_dlmm_for_uninitialized_position.rs index 37af6d3..69d0f39 100644 --- a/programs/zap/src/instructions/zap_in_dlmm/ix_zap_in_dlmm_for_uninitialized_position.rs +++ b/programs/zap/src/instructions/zap_in_dlmm/ix_zap_in_dlmm_for_uninitialized_position.rs @@ -46,7 +46,7 @@ pub struct ZapInDlmmForUnintializedPositionCtx<'info> { pub token_x_mint: InterfaceAccount<'info, Mint>, pub token_y_mint: InterfaceAccount<'info, Mint>, - pub dlmm_program: Program<'info, dlmm::program::LbClmm>, + pub dlmm_program: Program<'info, dlmm::dlmm::program::LbClmm>, /// owner of position pub owner: Signer<'info>, @@ -74,7 +74,7 @@ impl<'info> ZapInDlmmForUnintializedPositionCtx<'info> { fn initialize_position(&self, lower_bin_id: i32, width: i32) -> Result<()> { dlmm::cpi::initialize_position2( CpiContext::new( - self.dlmm_program.to_account_info(), + self.dlmm_program.key(), dlmm::cpi::accounts::InitializePosition2 { payer: self.rent_payer.to_account_info(), position: self.position.to_account_info(), @@ -92,8 +92,8 @@ impl<'info> ZapInDlmmForUnintializedPositionCtx<'info> { } } -pub fn handle_zap_in_dlmm_for_uninitialized_position<'c: 'info, 'info>( - ctx: Context<'_, '_, 'c, 'info, ZapInDlmmForUnintializedPositionCtx<'info>>, +pub fn handle_zap_in_dlmm_for_uninitialized_position<'info>( + ctx: Context<'info, ZapInDlmmForUnintializedPositionCtx<'info>>, min_delta_id: i32, max_delta_id: i32, active_id: i32, @@ -208,7 +208,7 @@ pub fn handle_zap_in_dlmm_for_uninitialized_position<'c: 'info, 'info>( dlmm::cpi::rebalance_liquidity( CpiContext::new( - ctx.accounts.dlmm_program.to_account_info(), + ctx.accounts.dlmm_program.key(), dlmm::cpi::accounts::RebalanceLiquidity { position: ctx.accounts.position.to_account_info(), lb_pair: ctx.accounts.lb_pair.to_account_info(), diff --git a/programs/zap/src/lib.rs b/programs/zap/src/lib.rs index ee8b31c..67e5a2e 100644 --- a/programs/zap/src/lib.rs +++ b/programs/zap/src/lib.rs @@ -1,4 +1,5 @@ -#![allow(unexpected_cfgs)] +// Ignored due to https://github.com/solana-foundation/anchor/issues/4378 +#![allow(deprecated)] use anchor_lang::prelude::*; @@ -21,8 +22,8 @@ declare_id!("zapvX9M3uf5pvy4wRPAbQgdQsM1xmuiFnkfHKPvwMiz"); #[program] pub mod zap { use super::*; - pub fn zap_out<'c: 'info, 'info>( - ctx: Context<'_, '_, 'c, 'info, ZapOutCtx<'info>>, + pub fn zap_out<'info>( + ctx: Context<'info, ZapOutCtx<'info>>, params: ZapOutParameters, ) -> Result<()> { instructions::handle_zap_out(ctx, ¶ms) @@ -58,16 +59,16 @@ pub mod zap { ) } - pub fn zap_in_damm_v2<'c: 'info, 'info>( - ctx: Context<'_, '_, 'c, 'info, ZapInDammv2Ctx<'info>>, + pub fn zap_in_damm_v2<'info>( + ctx: Context<'info, ZapInDammv2Ctx<'info>>, pre_sqrt_price: u128, max_sqrt_price_change_bps: u32, ) -> Result<()> { instructions::handle_zap_in_damm_v2(ctx, pre_sqrt_price, max_sqrt_price_change_bps) } - pub fn zap_in_dlmm_for_initialized_position<'c: 'info, 'info>( - ctx: Context<'_, '_, 'c, 'info, ZapInDlmmForInitializedPositionCtx<'info>>, + pub fn zap_in_dlmm_for_initialized_position<'info>( + ctx: Context<'info, ZapInDlmmForInitializedPositionCtx<'info>>, active_id: i32, min_delta_id: i32, max_delta_id: i32, @@ -88,8 +89,8 @@ pub mod zap { ) } - pub fn zap_in_dlmm_for_uninitialized_position<'c: 'info, 'info>( - ctx: Context<'_, '_, 'c, 'info, ZapInDlmmForUnintializedPositionCtx<'info>>, + pub fn zap_in_dlmm_for_uninitialized_position<'info>( + ctx: Context<'info, ZapInDlmmForUnintializedPositionCtx<'info>>, min_delta_id: i32, max_delta_id: i32, active_id: i32, diff --git a/programs/zap/src/state/user_ledger.rs b/programs/zap/src/state/user_ledger.rs index 74f6446..0e3ffa0 100644 --- a/programs/zap/src/state/user_ledger.rs +++ b/programs/zap/src/state/user_ledger.rs @@ -1,6 +1,5 @@ use crate::{ - error::ZapError, get_liquidity_handler, liquidity_handler::LiquidityHandler, - math::safe_math::SafeMath, TransferFeeCalculator, + error::ZapError, get_liquidity_handler, math::safe_math::SafeMath, TransferFeeCalculator, }; use anchor_lang::prelude::*; use damm_v2::{params::swap::TradeDirection, state::Pool}; diff --git a/protocol-zap/Cargo.toml b/protocol-zap/Cargo.toml deleted file mode 100644 index 1ea1df1..0000000 --- a/protocol-zap/Cargo.toml +++ /dev/null @@ -1,14 +0,0 @@ -[package] -name = "protocol-zap" -version = "0.1.0" -edition = "2021" - -[dependencies] -borsh = "0.10" -jupiter = { path = "../libs/jupiter" } -ruint = { workspace = true } -num_enum = "0.7" -pinocchio = "0.9" -pinocchio-pubkey = "0.3" -thiserror = "2" -zap-sdk = { path = "../zap-sdk" } diff --git a/protocol-zap/src/constants.rs b/protocol-zap/src/constants.rs deleted file mode 100644 index 0071ea5..0000000 --- a/protocol-zap/src/constants.rs +++ /dev/null @@ -1,32 +0,0 @@ -use pinocchio::pubkey::Pubkey; -use pinocchio_pubkey::pubkey; - -pub const JUP_V6_SHARED_ACCOUNT_ROUTE_AMOUNT_IN_REVERSE_OFFSET: usize = 1 + 2 + 8 + 8; // Due to jupiter parameters have dynamic length type (vec), we have to do parameters_data.length - JUP_V6_SHARED_ACCOUNT_ROUTE_AMOUNT_IN_REVERSE_OFFSET -pub const JUP_V6_SHARED_ACCOUNT_ROUTE_SOURCE_ACCOUNT_INDEX: usize = 3; -pub const JUP_V6_SHARED_ACCOUNT_ROUTE_DESTINATION_ACCOUNT_INDEX: usize = 6; - -pub const JUP_V6_ROUTE_AMOUNT_IN_REVERSE_OFFSET: usize = 1 + 2 + 8 + 8; -pub const JUP_V6_ROUTE_SOURCE_ACCOUNT_INDEX: usize = 2; -pub const JUP_V6_ROUTE_DESTINATION_ACCOUNT_INDEX: usize = 4; - -pub const DLMM_SWAP2_AMOUNT_IN_OFFSET: u16 = 8; -pub const DLMM_SWAP2_SOURCE_ACCOUNT_INDEX: usize = 4; -pub const DLMM_SWAP2_DESTINATION_ACCOUNT_INDEX: usize = 5; - -pub const DAMM_V2_SWAP_AMOUNT_IN_OFFSET: u16 = 8; -pub const DAMM_V2_SWAP_SOURCE_ACCOUNT_INDEX: usize = 2; -pub const DAMM_V2_SWAP_DESTINATION_ACCOUNT_INDEX: usize = 3; - -pub const ZAP: Pubkey = pubkey!("zapvX9M3uf5pvy4wRPAbQgdQsM1xmuiFnkfHKPvwMiz"); -pub const ZAP_OUT_DISC: [u8; 8] = [155, 108, 185, 112, 104, 210, 161, 64]; - -pub const USDC_ADDRESS: Pubkey = pubkey!("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"); - -pub const SOL_ADDRESS: Pubkey = pubkey!("So11111111111111111111111111111111111111112"); - -pub const MINTS_DISALLOWED_TO_ZAP_OUT: [Pubkey; 2] = [USDC_ADDRESS, SOL_ADDRESS]; - -pub const SPL_TOKEN_PROGRAM_ID: Pubkey = pubkey!("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"); - -pub const SPL_ASSOCIATED_TOKEN_ACCOUNT_PROGRAM_ID: Pubkey = - pubkey!("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"); diff --git a/protocol-zap/src/error.rs b/protocol-zap/src/error.rs deleted file mode 100644 index 4e0ae58..0000000 --- a/protocol-zap/src/error.rs +++ /dev/null @@ -1,37 +0,0 @@ -use num_enum::{IntoPrimitive, TryFromPrimitive}; -use pinocchio::program_error::ProgramError; -use thiserror::Error; - -#[derive(Debug, Error, Clone, Copy, PartialEq, Eq, TryFromPrimitive, IntoPrimitive)] -#[repr(u32)] -pub enum ProtozolZapError { - #[error("Math operation overflow")] - MathOverflow = 0, - - #[error("Invalid zapout parameters")] - InvalidZapOutParameters = 1, - - #[error("Type cast error")] - TypeCastFailed = 2, - - #[error("Missing zap out instruction")] - MissingZapOutInstruction = 3, - - #[error("Invalid withdraw protocol fee zap accounts")] - InvalidWithdrawProtocolFeeZapAccounts = 4, - - #[error("SOL,USDC protocol fee cannot be withdrawn via zap")] - MintRestrictedFromZap = 5, - - #[error("CPI disabled")] - CpiDisabled = 6, - - #[error("Invalid zap accounts")] - InvalidZapAccounts = 7, -} - -impl From for ProgramError { - fn from(e: ProtozolZapError) -> Self { - ProgramError::Custom(e as u32) - } -} diff --git a/protocol-zap/src/lib.rs b/protocol-zap/src/lib.rs deleted file mode 100644 index 5cf5da5..0000000 --- a/protocol-zap/src/lib.rs +++ /dev/null @@ -1,62 +0,0 @@ -use borsh::{BorshDeserialize, BorshSerialize}; -use pinocchio::pubkey::Pubkey; -pub mod constants; -pub mod processors; -pub use processors::*; -use zap_sdk::constants::{ - DAMM_V2, DAMM_V2_SWAP_DISC, DLMM, DLMM_SWAP2_DISC, JUP_V6, JUP_V6_ROUTE_DISC, - JUP_V6_SHARED_ACCOUNT_ROUTE_DISC, -}; - -use crate::error::ProtozolZapError; -pub mod error; -pub mod safe_math; -pub mod tests; -pub mod utils; - -#[derive(BorshSerialize, BorshDeserialize, PartialEq, Debug)] -pub struct ZapOutParameters { - pub percentage: u8, - pub offset_amount_in: u16, - pub pre_user_token_balance: u64, - pub max_swap_amount: u64, // avoid the issue someone send token to user token account when user zap out - pub payload_data: Vec, -} - -pub struct RawZapOutAmmInfo { - source_index: usize, - destination_index: usize, - amount_in_offset: u16, -} - -pub trait ZapInfoProcessor { - fn validate_payload(&self, payload: &[u8]) -> Result<(), ProtozolZapError>; - fn extract_raw_zap_out_amm_info( - &self, - zap_params: &ZapOutParameters, - ) -> Result; -} - -const DAMM_V2_SWAP_DISC_REF: &[u8] = &DAMM_V2_SWAP_DISC; -const DLMM_SWAP2_DISC_REF: &[u8] = &DLMM_SWAP2_DISC; -const JUP_V6_ROUTE_DISC_REF: &[u8] = &JUP_V6_ROUTE_DISC; -const JUP_V6_SHARED_ACCOUNT_ROUTE_DISC_REF: &[u8] = &JUP_V6_SHARED_ACCOUNT_ROUTE_DISC; - -const DLMM_ADDRESS: Pubkey = DLMM.to_bytes(); -const DAMM_V2_ADDRESS: Pubkey = DAMM_V2.to_bytes(); -const JUP_V6_ADDRESS: Pubkey = JUP_V6.to_bytes(); - -pub fn get_zap_amm_processor( - amm_disc: &[u8], - amm_program_address: Pubkey, -) -> Result, ProtozolZapError> { - match (amm_disc, amm_program_address) { - (DLMM_SWAP2_DISC_REF, DLMM_ADDRESS) => Ok(Box::new(ZapDlmmInfoProcessor)), - (DAMM_V2_SWAP_DISC_REF, DAMM_V2_ADDRESS) => Ok(Box::new(ZapDammV2InfoProcessor)), - (JUP_V6_ROUTE_DISC_REF, JUP_V6_ADDRESS) => Ok(Box::new(ZapJupV6RouteInfoProcessor)), - (JUP_V6_SHARED_ACCOUNT_ROUTE_DISC_REF, JUP_V6_ADDRESS) => { - Ok(Box::new(ZapJupV6SharedRouteInfoProcessor)) - } - _ => Err(ProtozolZapError::InvalidZapOutParameters), - } -} diff --git a/protocol-zap/src/processors/damm_v2_zap.rs b/protocol-zap/src/processors/damm_v2_zap.rs deleted file mode 100644 index f81d79e..0000000 --- a/protocol-zap/src/processors/damm_v2_zap.rs +++ /dev/null @@ -1,27 +0,0 @@ -use crate::{ - constants::{ - DAMM_V2_SWAP_AMOUNT_IN_OFFSET, DAMM_V2_SWAP_DESTINATION_ACCOUNT_INDEX, - DAMM_V2_SWAP_SOURCE_ACCOUNT_INDEX, - }, - error::ProtozolZapError, - RawZapOutAmmInfo, ZapInfoProcessor, ZapOutParameters, -}; - -pub struct ZapDammV2InfoProcessor; - -impl ZapInfoProcessor for ZapDammV2InfoProcessor { - fn validate_payload(&self, _payload: &[u8]) -> Result<(), ProtozolZapError> { - Ok(()) - } - - fn extract_raw_zap_out_amm_info( - &self, - _zap_params: &ZapOutParameters, - ) -> Result { - Ok(RawZapOutAmmInfo { - source_index: DAMM_V2_SWAP_SOURCE_ACCOUNT_INDEX, - destination_index: DAMM_V2_SWAP_DESTINATION_ACCOUNT_INDEX, - amount_in_offset: DAMM_V2_SWAP_AMOUNT_IN_OFFSET, - }) - } -} diff --git a/protocol-zap/src/processors/dlmm_zap.rs b/protocol-zap/src/processors/dlmm_zap.rs deleted file mode 100644 index abb22bd..0000000 --- a/protocol-zap/src/processors/dlmm_zap.rs +++ /dev/null @@ -1,27 +0,0 @@ -use crate::{ - constants::{ - DLMM_SWAP2_AMOUNT_IN_OFFSET, DLMM_SWAP2_DESTINATION_ACCOUNT_INDEX, - DLMM_SWAP2_SOURCE_ACCOUNT_INDEX, - }, - error::ProtozolZapError, - RawZapOutAmmInfo, ZapInfoProcessor, ZapOutParameters, -}; - -pub struct ZapDlmmInfoProcessor; - -impl ZapInfoProcessor for ZapDlmmInfoProcessor { - fn validate_payload(&self, _payload: &[u8]) -> Result<(), ProtozolZapError> { - Ok(()) - } - - fn extract_raw_zap_out_amm_info( - &self, - _zap_params: &ZapOutParameters, - ) -> Result { - Ok(RawZapOutAmmInfo { - source_index: DLMM_SWAP2_SOURCE_ACCOUNT_INDEX, - destination_index: DLMM_SWAP2_DESTINATION_ACCOUNT_INDEX, - amount_in_offset: DLMM_SWAP2_AMOUNT_IN_OFFSET, - }) - } -} diff --git a/protocol-zap/src/processors/jup_v6_zap.rs b/protocol-zap/src/processors/jup_v6_zap.rs deleted file mode 100644 index c9fe2b7..0000000 --- a/protocol-zap/src/processors/jup_v6_zap.rs +++ /dev/null @@ -1,146 +0,0 @@ -use std::collections::{HashMap, HashSet}; - -use crate::{ - constants::{ - JUP_V6_ROUTE_AMOUNT_IN_REVERSE_OFFSET, JUP_V6_ROUTE_DESTINATION_ACCOUNT_INDEX, - JUP_V6_ROUTE_SOURCE_ACCOUNT_INDEX, JUP_V6_SHARED_ACCOUNT_ROUTE_AMOUNT_IN_REVERSE_OFFSET, - JUP_V6_SHARED_ACCOUNT_ROUTE_DESTINATION_ACCOUNT_INDEX, - JUP_V6_SHARED_ACCOUNT_ROUTE_SOURCE_ACCOUNT_INDEX, - }, - error::ProtozolZapError, - safe_math::{SafeCast, SafeMath}, - RawZapOutAmmInfo, ZapInfoProcessor, ZapOutParameters, -}; -use borsh::BorshDeserialize; -use jupiter::types::RoutePlanStep; -use jupiter::types::Swap; - -pub struct ZapJupV6RouteInfoProcessor; - -fn ensure_whitelisted_swap_leg(route_plan_steps: &[RoutePlanStep]) -> Result<(), ProtozolZapError> { - for step in route_plan_steps { - match step.swap { - Swap::Meteora - | Swap::MeteoraDammV2 - | Swap::MeteoraDammV2WithRemainingAccounts - | Swap::MeteoraDlmm - | Swap::MeteoraDlmmSwapV2 { .. } - | Swap::Mercurial - | Swap::Whirlpool { .. } - | Swap::WhirlpoolSwapV2 { .. } - | Swap::Raydium - | Swap::RaydiumV2 - | Swap::RaydiumCP - | Swap::RaydiumClmm - | Swap::RaydiumClmmV2 => { - // whitelisted swap leg - } - _ => return Err(ProtozolZapError::InvalidZapOutParameters), - } - } - - Ok(()) -} - -/// Validates that the route plan fully converges -/// - Every input index (original and intermediate) must be 100% consumed -/// - All swap paths must converge to exactly one terminal output -pub(crate) fn ensure_route_plan_fully_converges( - route_plan_steps: &[RoutePlanStep], -) -> Result<(), ProtozolZapError> { - let mut input_percent: HashMap = HashMap::new(); - let mut output_indices = HashSet::new(); - - for step in route_plan_steps { - let percent = input_percent.entry(step.input_index).or_insert(0); - *percent = percent - .checked_add(step.percent) - .ok_or_else(|| ProtozolZapError::MathOverflow)?; - output_indices.insert(step.output_index); - } - - // Verify each unique input_index sums to exactly 100% - if input_percent.values().any(|value| *value != 100) { - return Err(ProtozolZapError::InvalidZapOutParameters); - } - - // Count terminal outputs: unique outputs never used as inputs - let terminal_count = output_indices - .iter() - .filter(|idx| !input_percent.contains_key(idx)) - .count(); - - if terminal_count != 1 { - return Err(ProtozolZapError::InvalidZapOutParameters); - } - - Ok(()) -} - -impl ZapInfoProcessor for ZapJupV6RouteInfoProcessor { - fn validate_payload(&self, payload: &[u8]) -> Result<(), ProtozolZapError> { - let route_params = jupiter::client::args::Route::try_from_slice(payload) - .map_err(|_| ProtozolZapError::InvalidZapOutParameters)?; - ensure_whitelisted_swap_leg(&route_params.route_plan)?; - ensure_route_plan_fully_converges(&route_params.route_plan)?; - - // Ensure no platform_fee_bps is 0, so operator can't steal funds by providing their account as platform_fee_account - if route_params.platform_fee_bps != 0 { - return Err(ProtozolZapError::InvalidZapOutParameters); - } - - Ok(()) - } - - fn extract_raw_zap_out_amm_info( - &self, - zap_params: &ZapOutParameters, - ) -> Result { - let amount_in_offset = zap_params - .payload_data - .len() - .safe_sub(JUP_V6_ROUTE_AMOUNT_IN_REVERSE_OFFSET)? - .safe_cast()?; - - Ok(RawZapOutAmmInfo { - source_index: JUP_V6_ROUTE_SOURCE_ACCOUNT_INDEX, - destination_index: JUP_V6_ROUTE_DESTINATION_ACCOUNT_INDEX, - amount_in_offset, - }) - } -} - -pub struct ZapJupV6SharedRouteInfoProcessor; - -impl ZapInfoProcessor for ZapJupV6SharedRouteInfoProcessor { - fn validate_payload(&self, payload: &[u8]) -> Result<(), ProtozolZapError> { - let route_params = jupiter::client::args::SharedAccountsRoute::try_from_slice(payload) - .map_err(|_| ProtozolZapError::InvalidZapOutParameters)?; - ensure_whitelisted_swap_leg(&route_params.route_plan)?; - ensure_route_plan_fully_converges(&route_params.route_plan)?; - - // Ensure no platform_fee_bps is 0, so operator can't steal funds by providing their account as platform_fee_account - if route_params.platform_fee_bps != 0 { - return Err(ProtozolZapError::InvalidZapOutParameters); - } - - Ok(()) - } - - fn extract_raw_zap_out_amm_info( - &self, - zap_params: &ZapOutParameters, - ) -> Result { - let amount_in_offset = zap_params - .payload_data - .len() - .safe_sub(JUP_V6_SHARED_ACCOUNT_ROUTE_AMOUNT_IN_REVERSE_OFFSET)? - .safe_cast()?; - - Ok(RawZapOutAmmInfo { - source_index: JUP_V6_SHARED_ACCOUNT_ROUTE_SOURCE_ACCOUNT_INDEX, - destination_index: JUP_V6_SHARED_ACCOUNT_ROUTE_DESTINATION_ACCOUNT_INDEX, - amount_in_offset, - }) - } -} diff --git a/protocol-zap/src/processors/mod.rs b/protocol-zap/src/processors/mod.rs deleted file mode 100644 index 6d383b2..0000000 --- a/protocol-zap/src/processors/mod.rs +++ /dev/null @@ -1,6 +0,0 @@ -pub mod damm_v2_zap; -pub use damm_v2_zap::*; -pub mod dlmm_zap; -pub use dlmm_zap::*; -pub mod jup_v6_zap; -pub use jup_v6_zap::*; diff --git a/protocol-zap/src/safe_math.rs b/protocol-zap/src/safe_math.rs deleted file mode 100644 index c801863..0000000 --- a/protocol-zap/src/safe_math.rs +++ /dev/null @@ -1,124 +0,0 @@ -use crate::error::ProtozolZapError; -use pinocchio::msg; -use ruint::aliases::U256; -use std::panic::Location; - -/// safe math module -pub trait SafeMath: Sized { - /// safe add - fn safe_add(self, rhs: Self) -> Result; - /// safe mul - fn safe_mul(self, rhs: Self) -> Result; - /// safe div - fn safe_div(self, rhs: Self) -> Result; - /// safe sub - fn safe_sub(self, rhs: Self) -> Result; -} - -macro_rules! checked_impl { - ($t:ty, $offset:ty) => { - impl SafeMath<$offset> for $t { - #[inline(always)] - fn safe_add(self, v: $t) -> Result<$t, ProtozolZapError> { - match self.checked_add(v) { - Some(result) => Ok(result), - None => { - let caller = Location::caller(); - msg!(&format!( - "Math error thrown at {}:{}", - caller.file(), - caller.line() - )); - Err(ProtozolZapError::MathOverflow) - } - } - } - - #[inline(always)] - fn safe_sub(self, v: $t) -> Result<$t, ProtozolZapError> { - match self.checked_sub(v) { - Some(result) => Ok(result), - None => { - let caller = Location::caller(); - msg!(&format!( - "Math error thrown at {}:{}", - caller.file(), - caller.line() - )); - Err(ProtozolZapError::MathOverflow) - } - } - } - - #[inline(always)] - fn safe_mul(self, v: $t) -> Result<$t, ProtozolZapError> { - match self.checked_mul(v) { - Some(result) => Ok(result), - None => { - let caller = Location::caller(); - msg!(&format!( - "Math error thrown at {}:{}", - caller.file(), - caller.line() - )); - Err(ProtozolZapError::MathOverflow) - } - } - } - - #[inline(always)] - fn safe_div(self, v: $t) -> Result<$t, ProtozolZapError> { - match self.checked_div(v) { - Some(result) => Ok(result), - None => { - let caller = Location::caller(); - msg!(&format!( - "Math error thrown at {}:{}", - caller.file(), - caller.line() - )); - Err(ProtozolZapError::MathOverflow) - } - } - } - } - }; -} - -checked_impl!(u16, u32); -checked_impl!(i32, u32); -checked_impl!(u32, u32); -checked_impl!(u64, u32); -checked_impl!(i64, u32); -checked_impl!(u128, u32); -checked_impl!(i128, u32); -checked_impl!(usize, u32); -checked_impl!(U256, usize); - -pub trait SafeCast: Sized { - fn safe_cast(self) -> Result; -} - -macro_rules! try_into_impl { - ($t:ty, $v:ty) => { - impl SafeCast<$v> for $t { - #[track_caller] - fn safe_cast(self) -> Result<$v, ProtozolZapError> { - match self.try_into() { - Ok(result) => Ok(result), - Err(_) => { - let caller = Location::caller(); - msg!(&format!( - "TypeCast is failed at {}:{}", - caller.file(), - caller.line() - )); - Err(ProtozolZapError::TypeCastFailed) - } - } - } - } - }; -} - -try_into_impl!(usize, u16); diff --git a/protocol-zap/src/tests/jup_v6_tests.rs b/protocol-zap/src/tests/jup_v6_tests.rs deleted file mode 100644 index 3e3b240..0000000 --- a/protocol-zap/src/tests/jup_v6_tests.rs +++ /dev/null @@ -1,383 +0,0 @@ -use jupiter::types::{RoutePlanStep, Swap}; - -use crate::jup_v6_zap::ensure_route_plan_fully_converges; - -#[test] -fn test_ensure_route_plan_fully_converges_success() { - let route_plan_1_market = vec![RoutePlanStep { - swap: Swap::Meteora, - percent: 100, - input_index: 0, - output_index: 1, - }]; - assert!(ensure_route_plan_fully_converges(&route_plan_1_market).is_ok()); - - // Layer 1 Split into 3: 0 -> 1 (60%), 0 -> 2 (5%), 0 -> 3 (35%) - // Layer 2 Split into 3: 1 -> 5 (50%), 1 -> 6 (50%), 2 -> 6 (100%), 3 -> 6 (33%), 3 -> 7 (67%) - // Layer 3 Converge into 1: 5 -> 8 (100%), 6 -> 8 (100%), 7 -> 8 (100%) - let route_plan_funnel = vec![ - // Layer 1 - RoutePlanStep { - swap: Swap::MeteoraDammV2, - percent: 60, - input_index: 0, - output_index: 1, - }, - RoutePlanStep { - swap: Swap::Raydium, - percent: 5, - input_index: 0, - output_index: 2, - }, - RoutePlanStep { - swap: Swap::MeteoraDlmm, - percent: 35, - input_index: 0, - output_index: 3, - }, - // Layer 2 - RoutePlanStep { - swap: Swap::RaydiumClmm, - percent: 50, - input_index: 1, - output_index: 5, - }, - RoutePlanStep { - swap: Swap::Mercurial, - percent: 50, - input_index: 1, - output_index: 6, - }, - RoutePlanStep { - swap: Swap::RaydiumClmmV2, - percent: 100, - input_index: 2, - output_index: 6, - }, - RoutePlanStep { - swap: Swap::RaydiumV2, - percent: 33, - input_index: 3, - output_index: 6, - }, - RoutePlanStep { - swap: Swap::RaydiumCP, - percent: 67, - input_index: 3, - output_index: 7, - }, - // Layer 3 - RoutePlanStep { - swap: Swap::Meteora, - percent: 100, - input_index: 5, - output_index: 8, - }, - RoutePlanStep { - swap: Swap::MeteoraDammV2WithRemainingAccounts, - percent: 100, - input_index: 6, - output_index: 8, - }, - RoutePlanStep { - swap: Swap::MeteoraDammV2, - percent: 100, - input_index: 7, - output_index: 8, - }, - ]; - assert!(ensure_route_plan_fully_converges(&route_plan_funnel).is_ok()); - - let route_plan_sequential = vec![ - RoutePlanStep { - swap: Swap::Meteora, - percent: 100, - input_index: 0, - output_index: 1, - }, - RoutePlanStep { - swap: Swap::RaydiumClmm, - percent: 100, - input_index: 1, - output_index: 2, - }, - RoutePlanStep { - swap: Swap::Mercurial, - percent: 100, - input_index: 2, - output_index: 3, - }, - RoutePlanStep { - swap: Swap::RaydiumCP, - percent: 100, - input_index: 3, - output_index: 4, - }, - RoutePlanStep { - swap: Swap::MeteoraDammV2, - percent: 100, - input_index: 4, - output_index: 5, - }, - ]; - assert!(ensure_route_plan_fully_converges(&route_plan_sequential).is_ok()); - - // diamond: 1 -> 2 -> 4 -> 2 -> 1 - // Layer 1: 0 -> 1 (60%), 0 -> 2 (40%) - // Layer 2: 1 -> 3 (70%), 1 -> 4 (30%), 2 -> 5 (25%), 2 -> 6 (75%) - // Layer 3: 3 -> 7 (100%), 4 -> 7 (100%), 5 -> 8 (100%), 6 -> 8 (100%) - // Layer 4: 7 -> 9 (100%), 8 -> 9 (100%) - let route_plan_diamond = vec![ - // Layer 1: split 1 -> 2 - RoutePlanStep { - swap: Swap::Meteora, - percent: 60, - input_index: 0, - output_index: 1, - }, - RoutePlanStep { - swap: Swap::Raydium, - percent: 40, - input_index: 0, - output_index: 2, - }, - // Layer 2: split 2 -> 4 - RoutePlanStep { - swap: Swap::MeteoraDlmm, - percent: 70, - input_index: 1, - output_index: 3, - }, - RoutePlanStep { - swap: Swap::RaydiumCP, - percent: 30, - input_index: 1, - output_index: 4, - }, - RoutePlanStep { - swap: Swap::RaydiumClmm, - percent: 25, - input_index: 2, - output_index: 5, - }, - RoutePlanStep { - swap: Swap::Mercurial, - percent: 75, - input_index: 2, - output_index: 6, - }, - // Layer 3: converge 4 -> 2 - RoutePlanStep { - swap: Swap::MeteoraDammV2, - percent: 100, - input_index: 3, - output_index: 7, - }, - RoutePlanStep { - swap: Swap::RaydiumV2, - percent: 100, - input_index: 4, - output_index: 7, - }, - RoutePlanStep { - swap: Swap::RaydiumClmmV2, - percent: 100, - input_index: 5, - output_index: 8, - }, - RoutePlanStep { - swap: Swap::MeteoraDammV2WithRemainingAccounts, - percent: 100, - input_index: 6, - output_index: 8, - }, - // Layer 4: converge 2 -> 1 - RoutePlanStep { - swap: Swap::Meteora, - percent: 100, - input_index: 7, - output_index: 9, - }, - RoutePlanStep { - swap: Swap::Raydium, - percent: 100, - input_index: 8, - output_index: 9, - }, - ]; - assert!(ensure_route_plan_fully_converges(&route_plan_diamond).is_ok()); -} - -#[test] -fn test_ensure_route_plan_fully_converges_failure() { - let route_plan_1_market = vec![RoutePlanStep { - swap: Swap::Meteora, - percent: 50, - input_index: 0, - output_index: 1, - }]; - assert!(ensure_route_plan_fully_converges(&route_plan_1_market).is_err()); - - let route_plan_empty: Vec = vec![]; - assert!(ensure_route_plan_fully_converges(&route_plan_empty).is_err()); - - let route_plan_cycle = vec![ - RoutePlanStep { - swap: Swap::Meteora, - percent: 100, - input_index: 0, - output_index: 1, - }, - RoutePlanStep { - swap: Swap::Raydium, - percent: 100, - input_index: 1, - output_index: 0, - }, - ]; - assert!(ensure_route_plan_fully_converges(&route_plan_cycle).is_err()); - - let route_plan_over_100_pct = vec![ - RoutePlanStep { - swap: Swap::Meteora, - percent: 60, - input_index: 0, - output_index: 1, - }, - RoutePlanStep { - swap: Swap::Raydium, - percent: 60, - input_index: 0, - output_index: 2, - }, - RoutePlanStep { - swap: Swap::MeteoraDlmm, - percent: 100, - input_index: 1, - output_index: 3, - }, - RoutePlanStep { - swap: Swap::RaydiumCP, - percent: 100, - input_index: 2, - output_index: 3, - }, - ]; - assert!(ensure_route_plan_fully_converges(&route_plan_over_100_pct).is_err()); - - let route_plan_sequential = vec![ - RoutePlanStep { - swap: Swap::Meteora, - percent: 100, - input_index: 0, - output_index: 1, - }, - RoutePlanStep { - swap: Swap::RaydiumClmm, - percent: 100, - input_index: 1, - output_index: 2, - }, - RoutePlanStep { - swap: Swap::Mercurial, - percent: 80, // not 100 - input_index: 2, - output_index: 3, - }, - RoutePlanStep { - swap: Swap::RaydiumCP, - percent: 100, - input_index: 3, - output_index: 4, - }, - RoutePlanStep { - swap: Swap::MeteoraDammV2, - percent: 100, - input_index: 4, - output_index: 5, - }, - ]; - assert!(ensure_route_plan_fully_converges(&route_plan_sequential).is_err()); - - // Same as happy diamond but layer 4 outputs diverge: 7 -> 9, 8 -> 10 - // Two terminal outputs (9 and 10) - // Layer 1: 0 -> 1 (60%), 0 -> 2 (40%) - // Layer 2: 1 -> 3 (70%), 1 -> 4 (30%), 2 -> 5 (25%), 2 -> 6 (75%) - // Layer 3: 3 -> 7 (100%), 4 -> 7 (100%), 5 -> 8 (100%), 6 -> 8 (100%) - // Layer 4: 7 -> 9 (100%), 8 -> 10 (100%) <-- diverges - let route_plan_diamond = vec![ - RoutePlanStep { - swap: Swap::Meteora, - percent: 60, - input_index: 0, - output_index: 1, - }, - RoutePlanStep { - swap: Swap::Raydium, - percent: 40, - input_index: 0, - output_index: 2, - }, - RoutePlanStep { - swap: Swap::MeteoraDlmm, - percent: 70, - input_index: 1, - output_index: 3, - }, - RoutePlanStep { - swap: Swap::RaydiumCP, - percent: 30, - input_index: 1, - output_index: 4, - }, - RoutePlanStep { - swap: Swap::RaydiumClmm, - percent: 25, - input_index: 2, - output_index: 5, - }, - RoutePlanStep { - swap: Swap::Mercurial, - percent: 75, - input_index: 2, - output_index: 6, - }, - RoutePlanStep { - swap: Swap::MeteoraDammV2, - percent: 100, - input_index: 3, - output_index: 7, - }, - RoutePlanStep { - swap: Swap::RaydiumV2, - percent: 100, - input_index: 4, - output_index: 7, - }, - RoutePlanStep { - swap: Swap::RaydiumClmmV2, - percent: 100, - input_index: 5, - output_index: 8, - }, - RoutePlanStep { - swap: Swap::MeteoraDammV2WithRemainingAccounts, - percent: 100, - input_index: 6, - output_index: 8, - }, - RoutePlanStep { - swap: Swap::Meteora, - percent: 100, - input_index: 7, - output_index: 9, // two terminal outputs (9 and 10) - }, - RoutePlanStep { - swap: Swap::Raydium, - percent: 100, - input_index: 8, - output_index: 10, - }, - ]; - assert!(ensure_route_plan_fully_converges(&route_plan_diamond).is_err()); -} diff --git a/protocol-zap/src/tests/mod.rs b/protocol-zap/src/tests/mod.rs deleted file mode 100644 index c15fefb..0000000 --- a/protocol-zap/src/tests/mod.rs +++ /dev/null @@ -1,5 +0,0 @@ -#[cfg(test)] -pub mod jup_v6_tests; - -#[cfg(test)] -pub mod safe_math_tests; diff --git a/protocol-zap/src/tests/safe_math_tests.rs b/protocol-zap/src/tests/safe_math_tests.rs deleted file mode 100644 index 07e78be..0000000 --- a/protocol-zap/src/tests/safe_math_tests.rs +++ /dev/null @@ -1,30 +0,0 @@ -#[cfg(test)] -use crate::safe_math::SafeMath; - -#[test] -fn safe_add() { - assert_eq!(u64::MAX.safe_add(u64::MAX).is_err(), true); - assert_eq!(100u64.safe_add(100u64).is_ok(), true); - assert_eq!(100u64.safe_add(100u64).unwrap(), 200u64); -} - -#[test] -fn safe_sub() { - assert_eq!(0u64.safe_sub(u64::MAX).is_err(), true); - assert_eq!(200u64.safe_sub(100u64).is_ok(), true); - assert_eq!(200u64.safe_sub(100u64).unwrap(), 100u64); -} - -#[test] -fn safe_mul() { - assert_eq!(u64::MAX.safe_mul(u64::MAX).is_err(), true); - assert_eq!(100u64.safe_mul(100u64).is_ok(), true); - assert_eq!(100u64.safe_mul(100u64).unwrap(), 10000u64); -} - -#[test] -fn safe_div() { - assert_eq!(100u64.safe_div(0u64).is_err(), true); - assert_eq!(200u64.safe_div(100u64).is_ok(), true); - assert_eq!(200u64.safe_div(100u64), Ok(2u64)); -} diff --git a/protocol-zap/src/utils/mod.rs b/protocol-zap/src/utils/mod.rs deleted file mode 100644 index f1ee912..0000000 --- a/protocol-zap/src/utils/mod.rs +++ /dev/null @@ -1,209 +0,0 @@ -use crate::constants::{SOL_ADDRESS, USDC_ADDRESS}; -use crate::error::ProtozolZapError; -use crate::safe_math::SafeMath; -use crate::{constants, get_zap_amm_processor, RawZapOutAmmInfo, ZapOutParameters}; -use borsh::BorshDeserialize; -use pinocchio::pubkey::Pubkey; -use pinocchio::sysvars::instructions::{Instructions, IntrospectedInstruction}; -mod token; -use token::{get_associated_token_address, get_token_amount}; - -fn validate_zap_parameters( - zap_params: &ZapOutParameters, - max_claim_amount: u64, - amount_in_offset: u16, - claimer_token_account_data: &[u8], -) -> Result<(), ProtozolZapError> { - if zap_params.percentage != 100 { - return Err(ProtozolZapError::InvalidZapOutParameters); - } - - if zap_params.offset_amount_in != amount_in_offset { - return Err(ProtozolZapError::InvalidZapOutParameters); - } - - // Ensure no stealing from operator by setting a higher pre_token_balance than actual balance to steal fund - // Eg: Operator set 100 pre balance, but actual balance is 0 - // Actual claimed amount is 300 - // Zap will attempt to swap post - pre = 300 - 100 = 200 - // Leftover 100 will be stolen by operator - if zap_params.pre_user_token_balance != get_token_amount(claimer_token_account_data)? { - return Err(ProtozolZapError::InvalidZapOutParameters); - } - - // Ensure max swap amount is greater than or equal to max claim amount - // meaning operator must swap at least the amount of the claim amount - if zap_params.max_swap_amount < max_claim_amount { - return Err(ProtozolZapError::InvalidZapOutParameters); - } - - Ok(()) -} - -// Search for zap out instruction in the next instruction after the current one -fn search_and_validate_zap_out_instruction( - max_claim_amount: u64, - sysvar_instructions: &Instructions<&[u8]>, - claimer_token_account_key: &Pubkey, - claimer_token_account_data: &[u8], - treasury_address: &Pubkey, - treasury_paired_destination_token_address: &Pubkey, -) -> Result<(), ProtozolZapError> { - // Zap out instruction must be next to current instruction - let ix = sysvar_instructions - .get_instruction_relative(1) - .map_err(|_| ProtozolZapError::MissingZapOutInstruction)?; - - if *ix.get_program_id() != constants::ZAP { - return Err(ProtozolZapError::MissingZapOutInstruction); - } - - let disc = ix - .get_instruction_data() - .get(..8) - .ok_or_else(|| ProtozolZapError::InvalidZapOutParameters)?; - - if disc != constants::ZAP_OUT_DISC { - return Err(ProtozolZapError::MissingZapOutInstruction); - } - - let zap_params = ZapOutParameters::try_from_slice(&ix.get_instruction_data()[8..]) - .map_err(|_| ProtozolZapError::InvalidZapOutParameters)?; - - let ZapOutAmmInfo { - zap_user_token_in_address, - amm_source_token_address: source_token_address, - amm_destination_token_address: destination_token_address, - amount_in_offset, - } = extract_amm_accounts_and_info(&zap_params, ix)?; - - // Zap out from operator fee receiving account - validate_zap_parameters( - &zap_params, - max_claim_amount, - amount_in_offset, - claimer_token_account_data, - )?; - - // There's no validation to make sure that `user_token_in_account` is the same as `amm_source_token_address` - // Operator could steal the fund by providing a fake token account with 0 to bypass the zap swap invoke - // https://github.com/MeteoraAg/zap-program/blob/117e7d5586aa27cf97e6fde6266e25ee4e496f18/programs/zap/src/instructions/ix_zap_out.rs#L91 - if zap_user_token_in_address != *claimer_token_account_key { - return Err(ProtozolZapError::InvalidZapAccounts); - } - - // Zap out from operator fee receiving account - if source_token_address != *claimer_token_account_key { - return Err(ProtozolZapError::InvalidZapAccounts); - } - - let treasury_usdc_address = get_associated_token_address(&treasury_address, &USDC_ADDRESS); - let treasury_sol_address = get_associated_token_address(&treasury_address, &SOL_ADDRESS); - - // Zap to paired mint in the pool, or SOL, or USDC treasury - if destination_token_address != *treasury_paired_destination_token_address - && destination_token_address != treasury_usdc_address - && destination_token_address != treasury_sol_address - { - return Err(ProtozolZapError::InvalidZapAccounts); - } - - Ok(()) -} - -pub fn validate_zap_out_to_treasury( - claimed_amount: u64, - calling_program_id: &Pubkey, - claimer_token_account_key: &Pubkey, - claimer_token_account_data: &[u8], - sysvar_instructions_data: &[u8], - treasury_address: &Pubkey, - treasury_paired_destination_token_address: &Pubkey, -) -> Result<(), ProtozolZapError> { - let sysvar_instructions = unsafe { Instructions::new_unchecked(sysvar_instructions_data) }; - let current_index = sysvar_instructions.load_current_index(); - - let current_instruction = sysvar_instructions - .load_instruction_at(current_index.into()) - .map_err(|_| ProtozolZapError::InvalidZapAccounts)?; - - // Ensure the instruction is direct instruction call - if *current_instruction.get_program_id() != *calling_program_id { - return Err(ProtozolZapError::CpiDisabled); - } - - search_and_validate_zap_out_instruction( - claimed_amount, - &sysvar_instructions, - claimer_token_account_key, - claimer_token_account_data, - treasury_address, - treasury_paired_destination_token_address, - )?; - - Ok(()) -} -pub struct ZapOutAmmInfo { - // Account used to compare delta changes with pre_balance to decide swap amount - pub zap_user_token_in_address: Pubkey, - pub amm_source_token_address: Pubkey, - pub amm_destination_token_address: Pubkey, - pub amount_in_offset: u16, -} - -fn extract_amm_accounts_and_info( - zap_params: &ZapOutParameters, - zap_in_instruction: IntrospectedInstruction<'_>, -) -> Result { - // Accounts in ZapOutCtx - const ZAP_OUT_ACCOUNTS_LEN: usize = 2; - - let zap_user_token_in_address = zap_in_instruction - .get_account_meta_at(0) - .map_err(|_| ProtozolZapError::InvalidZapAccounts)? - .key; - - let zap_amm_program_address = zap_in_instruction - .get_account_meta_at(1) - .map_err(|_| ProtozolZapError::InvalidZapAccounts)? - .key; - - let amm_disc = zap_params - .payload_data - .get(..8) - .ok_or_else(|| ProtozolZapError::InvalidZapOutParameters)?; - - let zap_info_processor = get_zap_amm_processor(amm_disc, zap_amm_program_address)?; - - let amm_payload = zap_params - .payload_data - .get(8..) - .ok_or_else(|| ProtozolZapError::InvalidZapOutParameters)?; - - zap_info_processor.validate_payload(amm_payload)?; - - let RawZapOutAmmInfo { - source_index, - destination_index, - amount_in_offset, - } = zap_info_processor.extract_raw_zap_out_amm_info(zap_params)?; - - let offset_source_index = ZAP_OUT_ACCOUNTS_LEN.safe_add(source_index)?; - let source_token_address = zap_in_instruction - .get_account_meta_at(offset_source_index) - .map_err(|_| ProtozolZapError::InvalidZapAccounts)? - .key; - - let offset_destination_index = ZAP_OUT_ACCOUNTS_LEN.safe_add(destination_index)?; - let destination_token_address = zap_in_instruction - .get_account_meta_at(offset_destination_index) - .map_err(|_| ProtozolZapError::InvalidZapAccounts)? - .key; - - Ok(ZapOutAmmInfo { - zap_user_token_in_address, - amm_source_token_address: source_token_address, - amm_destination_token_address: destination_token_address, - amount_in_offset, - }) -} diff --git a/protocol-zap/src/utils/token.rs b/protocol-zap/src/utils/token.rs deleted file mode 100644 index eec07e7..0000000 --- a/protocol-zap/src/utils/token.rs +++ /dev/null @@ -1,24 +0,0 @@ -use crate::{ - constants::{SPL_ASSOCIATED_TOKEN_ACCOUNT_PROGRAM_ID, SPL_TOKEN_PROGRAM_ID}, - error::ProtozolZapError, -}; -use pinocchio::pubkey::{find_program_address, Pubkey}; - -// Adapted from anchor_spl::token::accessor::amount -// https://github.com/solana-foundation/anchor/blob/2cb7ababa7dba3ac269fd2e60cfa06793ad2b989/spl/src/token.rs#L519 -pub(crate) fn get_token_amount(token_account_data: &[u8]) -> Result { - if token_account_data.len() < 72 { - return Err(ProtozolZapError::InvalidZapAccounts); - } - let mut amount_bytes = [0u8; 8]; - amount_bytes.copy_from_slice(&token_account_data[64..72]); - Ok(u64::from_le_bytes(amount_bytes)) -} - -// Adatpted from spl_associated_token_account::get_associated_token_address -// https://github.com/solana-labs/solana-program-library/blob/72bb80d76de5628749e9f06ed1a36d3986dab2a2/associated-token-account/client/src/address.rs#L56 -pub(crate) fn get_associated_token_address(wallet: &Pubkey, mint: &Pubkey) -> Pubkey { - let seeds: &[&[u8]] = &[wallet, &SPL_TOKEN_PROGRAM_ID, mint]; - let (address, _bump) = find_program_address(seeds, &SPL_ASSOCIATED_TOKEN_ACCOUNT_PROGRAM_ID); - address -} diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 552d6d6..bf165c7 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,2 +1,2 @@ [toolchain] -channel = "1.85.0" \ No newline at end of file +channel = "1.93.0" \ No newline at end of file diff --git a/tests/common/damm_v2.ts b/tests/common/damm_v2.ts index 2af113b..80fa366 100644 --- a/tests/common/damm_v2.ts +++ b/tests/common/damm_v2.ts @@ -6,7 +6,7 @@ import { IdlTypes, Program, Wallet, -} from "@coral-xyz/anchor"; +} from "@anchor-lang/core"; import { CpAmm } from "./idl/damm_v2"; import CpAmmIDL from "../../idls/damm_v2.json"; @@ -427,7 +427,7 @@ export async function createPositionAndAddLiquidity( pool, position, positionNftAccount, - owner: user.publicKey, + signer: user.publicKey, tokenAAccount, tokenBAccount, tokenAVault: poolState.tokenAVault, @@ -484,7 +484,7 @@ export async function removeLiquidity( pool, position, positionNftAccount, - owner: user, + signer: user, tokenAAccount, tokenBAccount, tokenAVault, diff --git a/tests/common/dlmm.ts b/tests/common/dlmm.ts index df8de24..f862ef6 100644 --- a/tests/common/dlmm.ts +++ b/tests/common/dlmm.ts @@ -5,7 +5,7 @@ import { IdlTypes, Program, Wallet, -} from "@coral-xyz/anchor"; +} from "@anchor-lang/core"; import * as borsh from "borsh"; import { LbClmm } from "./idl/dlmm"; import DlmmIDL from "./idl/dlmm.json"; diff --git a/tests/common/endpoints/zapIn.ts b/tests/common/endpoints/zapIn.ts index 869b273..70a7244 100644 --- a/tests/common/endpoints/zapIn.ts +++ b/tests/common/endpoints/zapIn.ts @@ -1,4 +1,4 @@ -import { BN } from "@coral-xyz/anchor"; +import { BN } from "@anchor-lang/core"; import { LiteSVM } from "litesvm"; import { AccountMeta, diff --git a/tests/common/endpoints/zapOut.ts b/tests/common/endpoints/zapOut.ts index bc351cc..cc0995e 100644 --- a/tests/common/endpoints/zapOut.ts +++ b/tests/common/endpoints/zapOut.ts @@ -1,4 +1,4 @@ -import { AnchorProvider, BN, Program, Wallet } from "@coral-xyz/anchor"; +import { AnchorProvider, BN, Program, Wallet } from "@anchor-lang/core"; import { LiteSVM } from "litesvm"; import ZapIDL from "../../../target/idl/zap.json"; diff --git a/tests/common/jup.ts b/tests/common/jup.ts index 680848b..bd63916 100644 --- a/tests/common/jup.ts +++ b/tests/common/jup.ts @@ -3,7 +3,7 @@ import { PublicKey } from "@solana/web3.js"; import { LiteSVM } from "litesvm"; import { Jupiter } from "./idl/jupiter"; import JupIDL from "../../idls/jupiter.json"; -import { IdlTypes } from "@coral-xyz/anchor"; +import { IdlTypes } from "@anchor-lang/core"; import { DAMM_V2_PROGRAM_ID } from "./damm_v2"; import { deriveDammV2EventAuthority, diff --git a/tests/common/pda.ts b/tests/common/pda.ts index f19a27f..8818f14 100644 --- a/tests/common/pda.ts +++ b/tests/common/pda.ts @@ -1,4 +1,4 @@ -import { BN } from "@coral-xyz/anchor"; +import { BN } from "@anchor-lang/core"; import { binIdToBinArrayIndex, DLMM_PROGRAM_ID_LOCAL } from "./dlmm"; import { PublicKey } from "@solana/web3.js"; import { diff --git a/tests/common/transferHook/index.ts b/tests/common/transferHook/index.ts index 1762a16..aa2b1ac 100644 --- a/tests/common/transferHook/index.ts +++ b/tests/common/transferHook/index.ts @@ -1,4 +1,4 @@ -import { AnchorProvider, Program, Wallet, web3 } from "@coral-xyz/anchor"; +import { AnchorProvider, Program, Wallet, web3 } from "@anchor-lang/core"; import TransferHookIdl from "./idl/transfer_hook.json"; import { TransferHookCounter } from "./idl/transfer_hook"; import { diff --git a/tests/common/utils.ts b/tests/common/utils.ts index 40d59bb..ffe4eb5 100644 --- a/tests/common/utils.ts +++ b/tests/common/utils.ts @@ -1,4 +1,4 @@ -import { BN } from "@coral-xyz/anchor"; +import { BN } from "@anchor-lang/core"; import { FailedTransactionMetadata, LiteSVM, diff --git a/tests/fixtures/damm_v2.so b/tests/fixtures/damm_v2.so index 362c8b8..63aba9e 100755 Binary files a/tests/fixtures/damm_v2.so and b/tests/fixtures/damm_v2.so differ diff --git a/tests/fixtures/damm_v2.ts b/tests/fixtures/damm_v2.ts new file mode 100644 index 0000000..6838a03 --- /dev/null +++ b/tests/fixtures/damm_v2.ts @@ -0,0 +1,7230 @@ +/** + * Program IDL in camelCase format in order to be used in JS/TS. + * + * Note that this is only a type helper and is not the actual IDL. The original + * IDL can be found at `target/idl/cp_amm.json`. + */ +export type CpAmm = { + "address": "cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG", + "metadata": { + "name": "cpAmm", + "version": "0.2.3", + "spec": "0.1.0", + "description": "Created with Anchor" + }, + "instructions": [ + { + "name": "addLiquidity", + "discriminator": [ + 181, + 157, + 89, + 67, + 143, + 182, + 52, + 72 + ], + "accounts": [ + { + "name": "pool", + "writable": true, + "relations": [ + "position" + ] + }, + { + "name": "position", + "writable": true + }, + { + "name": "tokenAAccount", + "docs": [ + "The user token a account" + ], + "writable": true + }, + { + "name": "tokenBAccount", + "docs": [ + "The user token b account" + ], + "writable": true + }, + { + "name": "tokenAVault", + "docs": [ + "The vault token account for input token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "tokenBVault", + "docs": [ + "The vault token account for output token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "tokenAMint", + "docs": [ + "The mint of token a" + ], + "relations": [ + "pool" + ] + }, + { + "name": "tokenBMint", + "docs": [ + "The mint of token b" + ], + "relations": [ + "pool" + ] + }, + { + "name": "positionNftAccount", + "docs": [ + "The token account for nft" + ] + }, + { + "name": "signer", + "docs": [ + "Signer" + ], + "signer": true + }, + { + "name": "tokenAProgram", + "docs": [ + "Token a program" + ] + }, + { + "name": "tokenBProgram", + "docs": [ + "Token b program" + ] + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "addLiquidityParameters" + } + } + } + ] + }, + { + "name": "claimPositionFee", + "discriminator": [ + 180, + 38, + 154, + 17, + 133, + 33, + 162, + 211 + ], + "accounts": [ + { + "name": "poolAuthority", + "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" + }, + { + "name": "pool", + "relations": [ + "position" + ] + }, + { + "name": "position", + "writable": true + }, + { + "name": "tokenAAccount", + "docs": [ + "The user token a account" + ], + "writable": true + }, + { + "name": "tokenBAccount", + "docs": [ + "The user token b account" + ], + "writable": true + }, + { + "name": "tokenAVault", + "docs": [ + "The vault token account for input token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "tokenBVault", + "docs": [ + "The vault token account for output token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "tokenAMint", + "docs": [ + "The mint of token a" + ], + "relations": [ + "pool" + ] + }, + { + "name": "tokenBMint", + "docs": [ + "The mint of token b" + ], + "relations": [ + "pool" + ] + }, + { + "name": "positionNftAccount", + "docs": [ + "The token account for nft" + ] + }, + { + "name": "signer", + "docs": [ + "Signer" + ], + "signer": true + }, + { + "name": "tokenAProgram", + "docs": [ + "Token a program" + ] + }, + { + "name": "tokenBProgram", + "docs": [ + "Token b program" + ] + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "claimProtocolFee2", + "discriminator": [ + 235, + 194, + 54, + 69, + 65, + 10, + 236, + 112 + ], + "accounts": [ + { + "name": "receiverTokenAccount", + "docs": [ + "receiver token account for the claimed token. validated through the protocol_fee program" + ], + "writable": true + }, + { + "name": "tokenAMint", + "relations": [ + "pool" + ] + }, + { + "name": "tokenBMint", + "relations": [ + "pool" + ] + }, + { + "name": "tokenAProgram" + }, + { + "name": "tokenBProgram" + }, + { + "name": "pool", + "writable": true + }, + { + "name": "tokenAVault", + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "tokenBVault", + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "poolAuthority", + "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" + }, + { + "name": "signer", + "signer": true, + "address": "FkU5rQCWQM131skHCpcEbK8P1JrQGsBgqXe55w525SSF" + } + ], + "args": [ + { + "name": "maxAmount", + "type": "u64" + } + ] + }, + { + "name": "claimReward", + "discriminator": [ + 149, + 95, + 181, + 242, + 94, + 90, + 158, + 162 + ], + "accounts": [ + { + "name": "poolAuthority", + "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" + }, + { + "name": "pool", + "writable": true, + "relations": [ + "position" + ] + }, + { + "name": "position", + "writable": true + }, + { + "name": "rewardVault", + "docs": [ + "The vault token account for reward token" + ], + "writable": true + }, + { + "name": "rewardMint" + }, + { + "name": "userTokenAccount", + "writable": true + }, + { + "name": "positionNftAccount", + "docs": [ + "The token account for nft" + ] + }, + { + "name": "signer", + "docs": [ + "Signer" + ], + "signer": true + }, + { + "name": "tokenProgram" + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + }, + { + "name": "skipReward", + "type": "u8" + } + ] + }, + { + "name": "closeConfig", + "discriminator": [ + 145, + 9, + 72, + 157, + 95, + 125, + 61, + 85 + ], + "accounts": [ + { + "name": "config", + "writable": true + }, + { + "name": "operator" + }, + { + "name": "signer", + "signer": true + }, + { + "name": "rentReceiver", + "writable": true + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "closeOperatorAccount", + "discriminator": [ + 171, + 9, + 213, + 74, + 120, + 23, + 3, + 29 + ], + "accounts": [ + { + "name": "operator", + "writable": true + }, + { + "name": "signer", + "signer": true + }, + { + "name": "rentReceiver", + "writable": true + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "closePosition", + "discriminator": [ + 123, + 134, + 81, + 0, + 49, + 68, + 98, + 98 + ], + "accounts": [ + { + "name": "positionNftMint", + "docs": [ + "positionNftMint" + ], + "writable": true + }, + { + "name": "positionNftAccount", + "docs": [ + "The token account for nft" + ], + "writable": true + }, + { + "name": "pool", + "writable": true, + "relations": [ + "position" + ] + }, + { + "name": "position", + "writable": true + }, + { + "name": "poolAuthority", + "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" + }, + { + "name": "rentReceiver", + "writable": true + }, + { + "name": "owner", + "docs": [ + "Owner of position" + ], + "signer": true + }, + { + "name": "tokenProgram", + "docs": [ + "Program to create NFT mint/token account and transfer for token22 account" + ], + "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "closeTokenBadge", + "discriminator": [ + 108, + 146, + 86, + 110, + 179, + 254, + 10, + 104 + ], + "accounts": [ + { + "name": "tokenBadge", + "writable": true + }, + { + "name": "operator" + }, + { + "name": "signer", + "signer": true + }, + { + "name": "rentReceiver", + "writable": true + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "createConfig", + "docs": [ + "OPERATOR FUNCTIONS /////" + ], + "discriminator": [ + 201, + 207, + 243, + 114, + 75, + 111, + 47, + 189 + ], + "accounts": [ + { + "name": "config", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 99, + 111, + 110, + 102, + 105, + 103 + ] + }, + { + "kind": "arg", + "path": "index" + } + ] + } + }, + { + "name": "operator" + }, + { + "name": "signer", + "signer": true + }, + { + "name": "payer", + "writable": true, + "signer": true + }, + { + "name": "systemProgram", + "address": "11111111111111111111111111111111" + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "index", + "type": "u64" + }, + { + "name": "configParameters", + "type": { + "defined": { + "name": "staticConfigParameters" + } + } + } + ] + }, + { + "name": "createDynamicConfig", + "discriminator": [ + 81, + 251, + 122, + 78, + 66, + 57, + 208, + 82 + ], + "accounts": [ + { + "name": "config", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 99, + 111, + 110, + 102, + 105, + 103 + ] + }, + { + "kind": "arg", + "path": "index" + } + ] + } + }, + { + "name": "operator" + }, + { + "name": "signer", + "signer": true + }, + { + "name": "payer", + "writable": true, + "signer": true + }, + { + "name": "systemProgram", + "address": "11111111111111111111111111111111" + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "index", + "type": "u64" + }, + { + "name": "configParameters", + "type": { + "defined": { + "name": "dynamicConfigParameters" + } + } + } + ] + }, + { + "name": "createOperatorAccount", + "docs": [ + "ADMIN FUNCTIONS /////" + ], + "discriminator": [ + 221, + 64, + 246, + 149, + 240, + 153, + 229, + 163 + ], + "accounts": [ + { + "name": "operator", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 111, + 112, + 101, + 114, + 97, + 116, + 111, + 114 + ] + }, + { + "kind": "account", + "path": "whitelistedAddress" + } + ] + } + }, + { + "name": "whitelistedAddress" + }, + { + "name": "signer", + "signer": true + }, + { + "name": "payer", + "writable": true, + "signer": true + }, + { + "name": "systemProgram", + "address": "11111111111111111111111111111111" + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "permission", + "type": "u128" + } + ] + }, + { + "name": "createPosition", + "discriminator": [ + 48, + 215, + 197, + 153, + 96, + 203, + 180, + 133 + ], + "accounts": [ + { + "name": "owner" + }, + { + "name": "positionNftMint", + "docs": [ + "positionNftMint" + ], + "writable": true, + "signer": true + }, + { + "name": "positionNftAccount", + "docs": [ + "position nft account" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 115, + 105, + 116, + 105, + 111, + 110, + 95, + 110, + 102, + 116, + 95, + 97, + 99, + 99, + 111, + 117, + 110, + 116 + ] + }, + { + "kind": "account", + "path": "positionNftMint" + } + ] + } + }, + { + "name": "pool", + "writable": true + }, + { + "name": "position", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 115, + 105, + 116, + 105, + 111, + 110 + ] + }, + { + "kind": "account", + "path": "positionNftMint" + } + ] + } + }, + { + "name": "poolAuthority", + "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" + }, + { + "name": "payer", + "docs": [ + "Address paying to create the position. Can be anyone" + ], + "writable": true, + "signer": true + }, + { + "name": "tokenProgram", + "docs": [ + "Program to create NFT mint/token account and transfer for token22 account" + ], + "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" + }, + { + "name": "systemProgram", + "address": "11111111111111111111111111111111" + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "createTokenBadge", + "discriminator": [ + 88, + 206, + 0, + 91, + 60, + 175, + 151, + 118 + ], + "accounts": [ + { + "name": "tokenBadge", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 116, + 111, + 107, + 101, + 110, + 95, + 98, + 97, + 100, + 103, + 101 + ] + }, + { + "kind": "account", + "path": "tokenMint" + } + ] + } + }, + { + "name": "tokenMint" + }, + { + "name": "operator" + }, + { + "name": "signer", + "signer": true + }, + { + "name": "payer", + "writable": true, + "signer": true + }, + { + "name": "systemProgram", + "address": "11111111111111111111111111111111" + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "dummyIx", + "discriminator": [ + 234, + 95, + 176, + 185, + 7, + 42, + 35, + 159 + ], + "accounts": [ + { + "name": "podAlignedFeeTimeScheduler" + }, + { + "name": "podAlignedFeeRateLimiter" + }, + { + "name": "podAlignedFeeMarketCapScheduler" + } + ], + "args": [ + { + "name": "ixs", + "type": { + "defined": { + "name": "dummyParams" + } + } + } + ] + }, + { + "name": "fixConfigFeeParams", + "discriminator": [ + 38, + 30, + 216, + 81, + 250, + 177, + 243, + 254 + ], + "accounts": [ + { + "name": "config", + "writable": true + }, + { + "name": "operator" + }, + { + "name": "signer", + "signer": true + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "baseFeeParameters" + } + } + } + ] + }, + { + "name": "fixPoolFeeParams", + "discriminator": [ + 132, + 98, + 81, + 196, + 44, + 58, + 120, + 193 + ], + "accounts": [ + { + "name": "pool", + "writable": true + }, + { + "name": "operator" + }, + { + "name": "signer", + "signer": true + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "baseFeeParameters" + } + } + } + ] + }, + { + "name": "fixPoolLayoutVersion", + "discriminator": [ + 166, + 158, + 69, + 35, + 81, + 167, + 200, + 215 + ], + "accounts": [ + { + "name": "pool", + "writable": true + }, + { + "name": "operator" + }, + { + "name": "signer", + "signer": true + } + ], + "args": [] + }, + { + "name": "fundReward", + "discriminator": [ + 188, + 50, + 249, + 165, + 93, + 151, + 38, + 63 + ], + "accounts": [ + { + "name": "pool", + "writable": true + }, + { + "name": "rewardVault", + "writable": true + }, + { + "name": "rewardMint" + }, + { + "name": "funderTokenAccount", + "writable": true + }, + { + "name": "funder", + "signer": true + }, + { + "name": "tokenProgram" + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + }, + { + "name": "amount", + "type": "u64" + }, + { + "name": "carryForward", + "type": "bool" + } + ] + }, + { + "name": "initializeCustomizablePool", + "discriminator": [ + 20, + 161, + 241, + 24, + 189, + 221, + 180, + 2 + ], + "accounts": [ + { + "name": "creator" + }, + { + "name": "positionNftMint", + "docs": [ + "positionNftMint" + ], + "writable": true, + "signer": true + }, + { + "name": "positionNftAccount", + "docs": [ + "position nft account" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 115, + 105, + 116, + 105, + 111, + 110, + 95, + 110, + 102, + 116, + 95, + 97, + 99, + 99, + 111, + 117, + 110, + 116 + ] + }, + { + "kind": "account", + "path": "positionNftMint" + } + ] + } + }, + { + "name": "payer", + "docs": [ + "Address paying to create the pool. Can be anyone" + ], + "writable": true, + "signer": true + }, + { + "name": "poolAuthority", + "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" + }, + { + "name": "pool", + "docs": [ + "Initialize an account to store the pool state" + ], + "writable": true + }, + { + "name": "position", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 115, + 105, + 116, + 105, + 111, + 110 + ] + }, + { + "kind": "account", + "path": "positionNftMint" + } + ] + } + }, + { + "name": "tokenAMint", + "docs": [ + "Token a mint" + ] + }, + { + "name": "tokenBMint", + "docs": [ + "Token b mint" + ] + }, + { + "name": "tokenAVault", + "docs": [ + "Token a vault for the pool" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 116, + 111, + 107, + 101, + 110, + 95, + 118, + 97, + 117, + 108, + 116 + ] + }, + { + "kind": "account", + "path": "tokenAMint" + }, + { + "kind": "account", + "path": "pool" + } + ] + } + }, + { + "name": "tokenBVault", + "docs": [ + "Token b vault for the pool" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 116, + 111, + 107, + 101, + 110, + 95, + 118, + 97, + 117, + 108, + 116 + ] + }, + { + "kind": "account", + "path": "tokenBMint" + }, + { + "kind": "account", + "path": "pool" + } + ] + } + }, + { + "name": "payerTokenA", + "docs": [ + "payer token a account" + ], + "writable": true + }, + { + "name": "payerTokenB", + "docs": [ + "creator token b account" + ], + "writable": true + }, + { + "name": "tokenAProgram", + "docs": [ + "Program to create mint account and mint tokens" + ] + }, + { + "name": "tokenBProgram", + "docs": [ + "Program to create mint account and mint tokens" + ] + }, + { + "name": "token2022Program", + "docs": [ + "Program to create NFT mint/token account and transfer for token22 account" + ], + "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" + }, + { + "name": "systemProgram", + "address": "11111111111111111111111111111111" + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "initializeCustomizablePoolParameters" + } + } + } + ] + }, + { + "name": "initializePool", + "docs": [ + "USER FUNCTIONS ////" + ], + "discriminator": [ + 95, + 180, + 10, + 172, + 84, + 174, + 232, + 40 + ], + "accounts": [ + { + "name": "creator" + }, + { + "name": "positionNftMint", + "docs": [ + "positionNftMint" + ], + "writable": true, + "signer": true + }, + { + "name": "positionNftAccount", + "docs": [ + "position nft account" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 115, + 105, + 116, + 105, + 111, + 110, + 95, + 110, + 102, + 116, + 95, + 97, + 99, + 99, + 111, + 117, + 110, + 116 + ] + }, + { + "kind": "account", + "path": "positionNftMint" + } + ] + } + }, + { + "name": "payer", + "docs": [ + "Address paying to create the pool. Can be anyone" + ], + "writable": true, + "signer": true + }, + { + "name": "config", + "docs": [ + "Which config the pool belongs to." + ] + }, + { + "name": "poolAuthority", + "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" + }, + { + "name": "pool", + "docs": [ + "Initialize an account to store the pool state" + ], + "writable": true + }, + { + "name": "position", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 115, + 105, + 116, + 105, + 111, + 110 + ] + }, + { + "kind": "account", + "path": "positionNftMint" + } + ] + } + }, + { + "name": "tokenAMint", + "docs": [ + "Token a mint" + ] + }, + { + "name": "tokenBMint", + "docs": [ + "Token b mint" + ] + }, + { + "name": "tokenAVault", + "docs": [ + "Token a vault for the pool" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 116, + 111, + 107, + 101, + 110, + 95, + 118, + 97, + 117, + 108, + 116 + ] + }, + { + "kind": "account", + "path": "tokenAMint" + }, + { + "kind": "account", + "path": "pool" + } + ] + } + }, + { + "name": "tokenBVault", + "docs": [ + "Token b vault for the pool" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 116, + 111, + 107, + 101, + 110, + 95, + 118, + 97, + 117, + 108, + 116 + ] + }, + { + "kind": "account", + "path": "tokenBMint" + }, + { + "kind": "account", + "path": "pool" + } + ] + } + }, + { + "name": "payerTokenA", + "docs": [ + "payer token a account" + ], + "writable": true + }, + { + "name": "payerTokenB", + "docs": [ + "creator token b account" + ], + "writable": true + }, + { + "name": "tokenAProgram", + "docs": [ + "Program to create mint account and mint tokens" + ] + }, + { + "name": "tokenBProgram", + "docs": [ + "Program to create mint account and mint tokens" + ] + }, + { + "name": "token2022Program", + "docs": [ + "Program to create NFT mint/token account and transfer for token22 account" + ], + "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" + }, + { + "name": "systemProgram", + "address": "11111111111111111111111111111111" + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "initializePoolParameters" + } + } + } + ] + }, + { + "name": "initializePoolWithDynamicConfig", + "discriminator": [ + 149, + 82, + 72, + 197, + 253, + 252, + 68, + 15 + ], + "accounts": [ + { + "name": "creator" + }, + { + "name": "positionNftMint", + "docs": [ + "positionNftMint" + ], + "writable": true, + "signer": true + }, + { + "name": "positionNftAccount", + "docs": [ + "position nft account" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 115, + 105, + 116, + 105, + 111, + 110, + 95, + 110, + 102, + 116, + 95, + 97, + 99, + 99, + 111, + 117, + 110, + 116 + ] + }, + { + "kind": "account", + "path": "positionNftMint" + } + ] + } + }, + { + "name": "payer", + "docs": [ + "Address paying to create the pool. Can be anyone" + ], + "writable": true, + "signer": true + }, + { + "name": "poolCreatorAuthority", + "signer": true, + "relations": [ + "config" + ] + }, + { + "name": "config", + "docs": [ + "Which config the pool belongs to." + ] + }, + { + "name": "poolAuthority", + "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" + }, + { + "name": "pool", + "docs": [ + "Initialize an account to store the pool state" + ], + "writable": true + }, + { + "name": "position", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 115, + 105, + 116, + 105, + 111, + 110 + ] + }, + { + "kind": "account", + "path": "positionNftMint" + } + ] + } + }, + { + "name": "tokenAMint", + "docs": [ + "Token a mint" + ] + }, + { + "name": "tokenBMint", + "docs": [ + "Token b mint" + ] + }, + { + "name": "tokenAVault", + "docs": [ + "Token a vault for the pool" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 116, + 111, + 107, + 101, + 110, + 95, + 118, + 97, + 117, + 108, + 116 + ] + }, + { + "kind": "account", + "path": "tokenAMint" + }, + { + "kind": "account", + "path": "pool" + } + ] + } + }, + { + "name": "tokenBVault", + "docs": [ + "Token b vault for the pool" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 116, + 111, + 107, + 101, + 110, + 95, + 118, + 97, + 117, + 108, + 116 + ] + }, + { + "kind": "account", + "path": "tokenBMint" + }, + { + "kind": "account", + "path": "pool" + } + ] + } + }, + { + "name": "payerTokenA", + "docs": [ + "payer token a account" + ], + "writable": true + }, + { + "name": "payerTokenB", + "docs": [ + "creator token b account" + ], + "writable": true + }, + { + "name": "tokenAProgram", + "docs": [ + "Program to create mint account and mint tokens" + ] + }, + { + "name": "tokenBProgram", + "docs": [ + "Program to create mint account and mint tokens" + ] + }, + { + "name": "token2022Program", + "docs": [ + "Program to create NFT mint/token account and transfer for token22 account" + ], + "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" + }, + { + "name": "systemProgram", + "address": "11111111111111111111111111111111" + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "initializeCustomizablePoolParameters" + } + } + } + ] + }, + { + "name": "initializeReward", + "discriminator": [ + 95, + 135, + 192, + 196, + 242, + 129, + 230, + 68 + ], + "accounts": [ + { + "name": "poolAuthority", + "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" + }, + { + "name": "pool", + "writable": true + }, + { + "name": "rewardVault", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 114, + 101, + 119, + 97, + 114, + 100, + 95, + 118, + 97, + 117, + 108, + 116 + ] + }, + { + "kind": "account", + "path": "pool" + }, + { + "kind": "arg", + "path": "rewardIndex" + } + ] + } + }, + { + "name": "rewardMint" + }, + { + "name": "signer", + "signer": true + }, + { + "name": "payer", + "writable": true, + "signer": true + }, + { + "name": "tokenProgram" + }, + { + "name": "systemProgram", + "address": "11111111111111111111111111111111" + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + }, + { + "name": "rewardDuration", + "type": "u64" + }, + { + "name": "funder", + "type": "pubkey" + } + ] + }, + { + "name": "lockInnerPosition", + "discriminator": [ + 72, + 19, + 49, + 204, + 18, + 122, + 23, + 90 + ], + "accounts": [ + { + "name": "pool", + "relations": [ + "position" + ] + }, + { + "name": "position", + "writable": true + }, + { + "name": "positionNftAccount", + "docs": [ + "The token account for nft" + ] + }, + { + "name": "signer", + "docs": [ + "Signer" + ], + "signer": true + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "vestingParameters" + } + } + } + ] + }, + { + "name": "lockPosition", + "discriminator": [ + 227, + 62, + 2, + 252, + 247, + 10, + 171, + 185 + ], + "accounts": [ + { + "name": "pool", + "relations": [ + "position" + ] + }, + { + "name": "position", + "writable": true + }, + { + "name": "vesting", + "writable": true, + "signer": true + }, + { + "name": "positionNftAccount", + "docs": [ + "The token account for nft" + ] + }, + { + "name": "signer", + "docs": [ + "Signer" + ], + "signer": true + }, + { + "name": "payer", + "writable": true, + "signer": true + }, + { + "name": "systemProgram", + "address": "11111111111111111111111111111111" + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "vestingParameters" + } + } + } + ] + }, + { + "name": "permanentLockPosition", + "discriminator": [ + 165, + 176, + 125, + 6, + 231, + 171, + 186, + 213 + ], + "accounts": [ + { + "name": "pool", + "writable": true, + "relations": [ + "position" + ] + }, + { + "name": "position", + "writable": true + }, + { + "name": "positionNftAccount", + "docs": [ + "The token account for nft" + ] + }, + { + "name": "signer", + "docs": [ + "Signer" + ], + "signer": true + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "permanentLockLiquidity", + "type": "u128" + } + ] + }, + { + "name": "refreshVesting", + "discriminator": [ + 9, + 94, + 216, + 14, + 116, + 204, + 247, + 0 + ], + "accounts": [ + { + "name": "pool", + "relations": [ + "position" + ] + }, + { + "name": "position", + "writable": true + }, + { + "name": "positionNftAccount", + "docs": [ + "The token account for nft" + ] + }, + { + "name": "owner" + } + ], + "args": [] + }, + { + "name": "removeAllLiquidity", + "discriminator": [ + 10, + 51, + 61, + 35, + 112, + 105, + 24, + 85 + ], + "accounts": [ + { + "name": "poolAuthority", + "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" + }, + { + "name": "pool", + "writable": true, + "relations": [ + "position" + ] + }, + { + "name": "position", + "writable": true + }, + { + "name": "tokenAAccount", + "docs": [ + "The user token a account" + ], + "writable": true + }, + { + "name": "tokenBAccount", + "docs": [ + "The user token b account" + ], + "writable": true + }, + { + "name": "tokenAVault", + "docs": [ + "The vault token account for input token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "tokenBVault", + "docs": [ + "The vault token account for output token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "tokenAMint", + "docs": [ + "The mint of token a" + ], + "relations": [ + "pool" + ] + }, + { + "name": "tokenBMint", + "docs": [ + "The mint of token b" + ], + "relations": [ + "pool" + ] + }, + { + "name": "positionNftAccount", + "docs": [ + "The token account for nft" + ] + }, + { + "name": "signer", + "docs": [ + "Signer" + ], + "signer": true + }, + { + "name": "tokenAProgram", + "docs": [ + "Token a program" + ] + }, + { + "name": "tokenBProgram", + "docs": [ + "Token b program" + ] + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "tokenAAmountThreshold", + "type": "u64" + }, + { + "name": "tokenBAmountThreshold", + "type": "u64" + } + ] + }, + { + "name": "removeLiquidity", + "discriminator": [ + 80, + 85, + 209, + 72, + 24, + 206, + 177, + 108 + ], + "accounts": [ + { + "name": "poolAuthority", + "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" + }, + { + "name": "pool", + "writable": true, + "relations": [ + "position" + ] + }, + { + "name": "position", + "writable": true + }, + { + "name": "tokenAAccount", + "docs": [ + "The user token a account" + ], + "writable": true + }, + { + "name": "tokenBAccount", + "docs": [ + "The user token b account" + ], + "writable": true + }, + { + "name": "tokenAVault", + "docs": [ + "The vault token account for input token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "tokenBVault", + "docs": [ + "The vault token account for output token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "tokenAMint", + "docs": [ + "The mint of token a" + ], + "relations": [ + "pool" + ] + }, + { + "name": "tokenBMint", + "docs": [ + "The mint of token b" + ], + "relations": [ + "pool" + ] + }, + { + "name": "positionNftAccount", + "docs": [ + "The token account for nft" + ] + }, + { + "name": "signer", + "docs": [ + "Signer" + ], + "signer": true + }, + { + "name": "tokenAProgram", + "docs": [ + "Token a program" + ] + }, + { + "name": "tokenBProgram", + "docs": [ + "Token b program" + ] + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "removeLiquidityParameters" + } + } + } + ] + }, + { + "name": "setPoolStatus", + "discriminator": [ + 112, + 87, + 135, + 223, + 83, + 204, + 132, + 53 + ], + "accounts": [ + { + "name": "pool", + "writable": true + }, + { + "name": "operator" + }, + { + "name": "signer", + "signer": true + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "status", + "type": "u8" + } + ] + }, + { + "name": "splitPosition", + "discriminator": [ + 172, + 241, + 221, + 138, + 161, + 29, + 253, + 42 + ], + "accounts": [ + { + "name": "pool", + "writable": true, + "relations": [ + "firstPosition", + "secondPosition" + ] + }, + { + "name": "firstPosition", + "docs": [ + "The first position" + ], + "writable": true + }, + { + "name": "firstPositionNftAccount", + "docs": [ + "The token account for position nft" + ] + }, + { + "name": "secondPosition", + "docs": [ + "The second position" + ], + "writable": true + }, + { + "name": "secondPositionNftAccount", + "docs": [ + "The token account for position nft" + ] + }, + { + "name": "firstOwner", + "docs": [ + "Owner of first position" + ], + "signer": true + }, + { + "name": "secondOwner", + "docs": [ + "Owner of second position" + ], + "signer": true + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "splitPositionParameters" + } + } + } + ] + }, + { + "name": "splitPosition2", + "discriminator": [ + 221, + 147, + 228, + 207, + 140, + 212, + 17, + 119 + ], + "accounts": [ + { + "name": "pool", + "writable": true, + "relations": [ + "firstPosition", + "secondPosition" + ] + }, + { + "name": "firstPosition", + "docs": [ + "The first position" + ], + "writable": true + }, + { + "name": "firstPositionNftAccount", + "docs": [ + "The token account for position nft" + ] + }, + { + "name": "secondPosition", + "docs": [ + "The second position" + ], + "writable": true + }, + { + "name": "secondPositionNftAccount", + "docs": [ + "The token account for position nft" + ] + }, + { + "name": "firstOwner", + "docs": [ + "Owner of first position" + ], + "signer": true + }, + { + "name": "secondOwner", + "docs": [ + "Owner of second position" + ], + "signer": true + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "numerator", + "type": "u32" + } + ] + }, + { + "name": "swap", + "discriminator": [ + 248, + 198, + 158, + 145, + 225, + 117, + 135, + 200 + ], + "accounts": [ + { + "name": "poolAuthority", + "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" + }, + { + "name": "pool", + "docs": [ + "Pool account" + ], + "writable": true + }, + { + "name": "inputTokenAccount", + "docs": [ + "The user token account for input token" + ], + "writable": true + }, + { + "name": "outputTokenAccount", + "docs": [ + "The user token account for output token" + ], + "writable": true + }, + { + "name": "tokenAVault", + "docs": [ + "The vault token account for input token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "tokenBVault", + "docs": [ + "The vault token account for output token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "tokenAMint", + "docs": [ + "The mint of token a" + ] + }, + { + "name": "tokenBMint", + "docs": [ + "The mint of token b" + ] + }, + { + "name": "payer", + "docs": [ + "The user performing the swap" + ], + "signer": true + }, + { + "name": "tokenAProgram", + "docs": [ + "Token a program" + ] + }, + { + "name": "tokenBProgram", + "docs": [ + "Token b program" + ] + }, + { + "name": "referralTokenAccount", + "docs": [ + "referral token account" + ], + "writable": true, + "optional": true + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "swapParameters" + } + } + } + ] + }, + { + "name": "swap2", + "discriminator": [ + 65, + 75, + 63, + 76, + 235, + 91, + 91, + 136 + ], + "accounts": [ + { + "name": "poolAuthority", + "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" + }, + { + "name": "pool", + "docs": [ + "Pool account" + ], + "writable": true + }, + { + "name": "inputTokenAccount", + "docs": [ + "The user token account for input token" + ], + "writable": true + }, + { + "name": "outputTokenAccount", + "docs": [ + "The user token account for output token" + ], + "writable": true + }, + { + "name": "tokenAVault", + "docs": [ + "The vault token account for input token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "tokenBVault", + "docs": [ + "The vault token account for output token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "tokenAMint", + "docs": [ + "The mint of token a" + ] + }, + { + "name": "tokenBMint", + "docs": [ + "The mint of token b" + ] + }, + { + "name": "payer", + "docs": [ + "The user performing the swap" + ], + "signer": true + }, + { + "name": "tokenAProgram", + "docs": [ + "Token a program" + ] + }, + { + "name": "tokenBProgram", + "docs": [ + "Token b program" + ] + }, + { + "name": "referralTokenAccount", + "docs": [ + "referral token account" + ], + "writable": true, + "optional": true + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "swapParameters2" + } + } + } + ] + }, + { + "name": "updateDelegatePermission", + "discriminator": [ + 175, + 165, + 56, + 64, + 0, + 251, + 89, + 47 + ], + "accounts": [ + { + "name": "position", + "writable": true + }, + { + "name": "positionNftAccount", + "docs": [ + "The token account for nft" + ] + }, + { + "name": "owner", + "signer": true + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "permission", + "type": "u32" + } + ] + }, + { + "name": "updatePoolFees", + "discriminator": [ + 118, + 217, + 203, + 179, + 60, + 8, + 70, + 89 + ], + "accounts": [ + { + "name": "pool", + "writable": true + }, + { + "name": "operator" + }, + { + "name": "signer", + "signer": true + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "updatePoolFeesParameters" + } + } + } + ] + }, + { + "name": "updateRewardDuration", + "discriminator": [ + 138, + 174, + 196, + 169, + 213, + 235, + 254, + 107 + ], + "accounts": [ + { + "name": "pool", + "writable": true + }, + { + "name": "signer", + "signer": true + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + }, + { + "name": "newDuration", + "type": "u64" + } + ] + }, + { + "name": "updateRewardFunder", + "discriminator": [ + 211, + 28, + 48, + 32, + 215, + 160, + 35, + 23 + ], + "accounts": [ + { + "name": "pool", + "writable": true + }, + { + "name": "signer", + "signer": true + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + }, + { + "name": "newFunder", + "type": "pubkey" + } + ] + }, + { + "name": "withdrawDeadLiquidityReward", + "discriminator": [ + 121, + 99, + 224, + 91, + 178, + 14, + 22, + 132 + ], + "accounts": [ + { + "name": "poolAuthority", + "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" + }, + { + "name": "pool", + "writable": true + }, + { + "name": "rewardVault", + "writable": true + }, + { + "name": "rewardMint" + }, + { + "name": "funderTokenAccount", + "writable": true + }, + { + "name": "funder", + "signer": true + }, + { + "name": "tokenProgram" + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + } + ] + }, + { + "name": "withdrawIneligibleReward", + "discriminator": [ + 148, + 206, + 42, + 195, + 247, + 49, + 103, + 8 + ], + "accounts": [ + { + "name": "poolAuthority", + "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" + }, + { + "name": "pool", + "writable": true + }, + { + "name": "rewardVault", + "writable": true + }, + { + "name": "rewardMint" + }, + { + "name": "funderTokenAccount", + "writable": true + }, + { + "name": "funder", + "signer": true + }, + { + "name": "tokenProgram" + }, + { + "name": "eventAuthority" + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + } + ] + } + ], + "accounts": [ + { + "name": "config", + "discriminator": [ + 155, + 12, + 170, + 224, + 30, + 250, + 204, + 130 + ] + }, + { + "name": "operator", + "discriminator": [ + 219, + 31, + 188, + 145, + 69, + 139, + 204, + 117 + ] + }, + { + "name": "podAlignedFeeMarketCapScheduler", + "discriminator": [ + 251, + 130, + 208, + 253, + 245, + 27, + 145, + 203 + ] + }, + { + "name": "podAlignedFeeRateLimiter", + "discriminator": [ + 160, + 219, + 8, + 251, + 179, + 7, + 16, + 117 + ] + }, + { + "name": "podAlignedFeeTimeScheduler", + "discriminator": [ + 239, + 132, + 138, + 213, + 67, + 154, + 130, + 70 + ] + }, + { + "name": "pool", + "discriminator": [ + 241, + 154, + 109, + 4, + 17, + 177, + 109, + 188 + ] + }, + { + "name": "position", + "discriminator": [ + 170, + 188, + 143, + 228, + 122, + 64, + 247, + 208 + ] + }, + { + "name": "tokenBadge", + "discriminator": [ + 116, + 219, + 204, + 229, + 249, + 116, + 255, + 150 + ] + }, + { + "name": "vesting", + "discriminator": [ + 100, + 149, + 66, + 138, + 95, + 200, + 128, + 241 + ] + } + ], + "events": [ + { + "name": "evtClaimPositionFee", + "discriminator": [ + 198, + 182, + 183, + 52, + 97, + 12, + 49, + 56 + ] + }, + { + "name": "evtClaimProtocolFee2", + "discriminator": [ + 187, + 133, + 66, + 9, + 205, + 161, + 84, + 13 + ] + }, + { + "name": "evtClaimReward", + "discriminator": [ + 218, + 86, + 147, + 200, + 235, + 188, + 215, + 231 + ] + }, + { + "name": "evtCloseConfig", + "discriminator": [ + 36, + 30, + 239, + 45, + 58, + 132, + 14, + 5 + ] + }, + { + "name": "evtClosePosition", + "discriminator": [ + 20, + 145, + 144, + 68, + 143, + 142, + 214, + 178 + ] + }, + { + "name": "evtCreateConfig", + "discriminator": [ + 131, + 207, + 180, + 174, + 180, + 73, + 165, + 54 + ] + }, + { + "name": "evtCreateDynamicConfig", + "discriminator": [ + 231, + 197, + 13, + 164, + 248, + 213, + 133, + 152 + ] + }, + { + "name": "evtCreatePosition", + "discriminator": [ + 156, + 15, + 119, + 198, + 29, + 181, + 221, + 55 + ] + }, + { + "name": "evtCreateTokenBadge", + "discriminator": [ + 141, + 120, + 134, + 116, + 34, + 28, + 114, + 160 + ] + }, + { + "name": "evtFundReward", + "discriminator": [ + 104, + 233, + 237, + 122, + 199, + 191, + 121, + 85 + ] + }, + { + "name": "evtInitializePool", + "discriminator": [ + 228, + 50, + 246, + 85, + 203, + 66, + 134, + 37 + ] + }, + { + "name": "evtInitializeReward", + "discriminator": [ + 129, + 91, + 188, + 3, + 246, + 52, + 185, + 249 + ] + }, + { + "name": "evtLiquidityChange", + "discriminator": [ + 197, + 171, + 78, + 127, + 224, + 211, + 87, + 13 + ] + }, + { + "name": "evtLockPosition", + "discriminator": [ + 168, + 63, + 108, + 83, + 219, + 82, + 2, + 200 + ] + }, + { + "name": "evtPermanentLockPosition", + "discriminator": [ + 145, + 143, + 162, + 218, + 218, + 80, + 67, + 11 + ] + }, + { + "name": "evtSetPoolStatus", + "discriminator": [ + 100, + 213, + 74, + 3, + 95, + 91, + 228, + 146 + ] + }, + { + "name": "evtSplitPosition2", + "discriminator": [ + 165, + 32, + 203, + 174, + 72, + 100, + 233, + 103 + ] + }, + { + "name": "evtSplitPosition3", + "discriminator": [ + 232, + 117, + 190, + 218, + 85, + 162, + 207, + 78 + ] + }, + { + "name": "evtSwap2", + "discriminator": [ + 189, + 66, + 51, + 168, + 38, + 80, + 117, + 153 + ] + }, + { + "name": "evtUpdateDelegatePermission", + "discriminator": [ + 66, + 188, + 75, + 151, + 150, + 232, + 87, + 93 + ] + }, + { + "name": "evtUpdatePoolFees", + "discriminator": [ + 76, + 165, + 246, + 102, + 102, + 217, + 156, + 44 + ] + }, + { + "name": "evtUpdateRewardDuration", + "discriminator": [ + 149, + 135, + 65, + 231, + 129, + 153, + 65, + 57 + ] + }, + { + "name": "evtUpdateRewardFunder", + "discriminator": [ + 76, + 154, + 208, + 13, + 40, + 115, + 246, + 146 + ] + }, + { + "name": "evtWithdrawDeadLiquidityReward", + "discriminator": [ + 228, + 66, + 150, + 195, + 42, + 62, + 163, + 13 + ] + }, + { + "name": "evtWithdrawIneligibleReward", + "discriminator": [ + 248, + 215, + 184, + 78, + 31, + 180, + 179, + 168 + ] + } + ], + "errors": [ + { + "code": 6000, + "name": "mathOverflow", + "msg": "Math operation overflow" + }, + { + "code": 6001, + "name": "invalidFee", + "msg": "Invalid fee setup" + }, + { + "code": 6002, + "name": "exceededSlippage", + "msg": "Exceeded slippage tolerance" + }, + { + "code": 6003, + "name": "poolDisabled", + "msg": "Pool disabled" + }, + { + "code": 6004, + "name": "exceedMaxFeeBps", + "msg": "Exceeded max fee bps" + }, + { + "code": 6005, + "name": "invalidAdmin", + "msg": "Invalid admin" + }, + { + "code": 6006, + "name": "amountIsZero", + "msg": "Amount is zero" + }, + { + "code": 6007, + "name": "typeCastFailed", + "msg": "Type cast error" + }, + { + "code": 6008, + "name": "unableToModifyActivationPoint", + "msg": "Unable to modify activation point" + }, + { + "code": 6009, + "name": "invalidAuthorityToCreateThePool", + "msg": "Invalid authority to create the pool" + }, + { + "code": 6010, + "name": "invalidActivationType", + "msg": "Invalid activation type" + }, + { + "code": 6011, + "name": "invalidActivationPoint", + "msg": "Invalid activation point" + }, + { + "code": 6012, + "name": "invalidQuoteMint", + "msg": "Quote token must be SOL,USDC" + }, + { + "code": 6013, + "name": "invalidFeeCurve", + "msg": "Invalid fee curve" + }, + { + "code": 6014, + "name": "invalidPriceRange", + "msg": "Invalid Price Range" + }, + { + "code": 6015, + "name": "priceRangeViolation", + "msg": "Trade is over price range" + }, + { + "code": 6016, + "name": "invalidParameters", + "msg": "Invalid parameters" + }, + { + "code": 6017, + "name": "invalidCollectFeeMode", + "msg": "Invalid collect fee mode" + }, + { + "code": 6018, + "name": "invalidInput", + "msg": "Invalid input" + }, + { + "code": 6019, + "name": "cannotCreateTokenBadgeOnSupportedMint", + "msg": "Cannot create token badge on supported mint" + }, + { + "code": 6020, + "name": "invalidTokenBadge", + "msg": "Invalid token badge" + }, + { + "code": 6021, + "name": "invalidMinimumLiquidity", + "msg": "Invalid minimum liquidity" + }, + { + "code": 6022, + "name": "invalidVestingInfo", + "msg": "Invalid vesting information" + }, + { + "code": 6023, + "name": "insufficientLiquidity", + "msg": "Insufficient liquidity" + }, + { + "code": 6024, + "name": "invalidVestingAccount", + "msg": "Invalid vesting account" + }, + { + "code": 6025, + "name": "invalidPoolStatus", + "msg": "Invalid pool status" + }, + { + "code": 6026, + "name": "unsupportNativeMintToken2022", + "msg": "Unsupported native mint token2022" + }, + { + "code": 6027, + "name": "invalidRewardIndex", + "msg": "Invalid reward index" + }, + { + "code": 6028, + "name": "invalidRewardDuration", + "msg": "Invalid reward duration" + }, + { + "code": 6029, + "name": "rewardInitialized", + "msg": "Reward already initialized" + }, + { + "code": 6030, + "name": "rewardUninitialized", + "msg": "Reward not initialized" + }, + { + "code": 6031, + "name": "invalidRewardVault", + "msg": "Invalid reward vault" + }, + { + "code": 6032, + "name": "mustWithdrawnIneligibleReward", + "msg": "Must withdraw ineligible reward" + }, + { + "code": 6033, + "name": "identicalRewardDuration", + "msg": "Reward duration is the same" + }, + { + "code": 6034, + "name": "rewardCampaignInProgress", + "msg": "Reward campaign in progress" + }, + { + "code": 6035, + "name": "identicalFunder", + "msg": "Identical funder" + }, + { + "code": 6036, + "name": "invalidFunder", + "msg": "Invalid funder" + }, + { + "code": 6037, + "name": "rewardNotEnded", + "msg": "Reward not ended" + }, + { + "code": 6038, + "name": "feeInverseIsIncorrect", + "msg": "Fee inverse is incorrect" + }, + { + "code": 6039, + "name": "positionIsNotEmpty", + "msg": "Position is not empty" + }, + { + "code": 6040, + "name": "invalidPoolCreatorAuthority", + "msg": "Invalid pool creator authority" + }, + { + "code": 6041, + "name": "invalidConfigType", + "msg": "Invalid config type" + }, + { + "code": 6042, + "name": "invalidPoolCreator", + "msg": "Invalid pool creator" + }, + { + "code": 6043, + "name": "rewardVaultFrozenSkipRequired", + "msg": "Reward vault is frozen, must skip reward to proceed" + }, + { + "code": 6044, + "name": "invalidSplitPositionParameters", + "msg": "Invalid parameters for split position" + }, + { + "code": 6045, + "name": "unsupportPositionHasVestingLock", + "msg": "Unsupported split position has vesting lock" + }, + { + "code": 6046, + "name": "samePosition", + "msg": "Same position" + }, + { + "code": 6047, + "name": "invalidBaseFeeMode", + "msg": "Invalid base fee mode" + }, + { + "code": 6048, + "name": "invalidFeeRateLimiter", + "msg": "Invalid fee rate limiter" + }, + { + "code": 6049, + "name": "failToValidateSingleSwapInstruction", + "msg": "Fail to validate single swap instruction in rate limiter" + }, + { + "code": 6050, + "name": "invalidFeeTimeScheduler", + "msg": "Invalid fee scheduler" + }, + { + "code": 6051, + "name": "undeterminedError", + "msg": "Undetermined error" + }, + { + "code": 6052, + "name": "invalidPoolVersion", + "msg": "Invalid pool version" + }, + { + "code": 6053, + "name": "invalidAuthority", + "msg": "Invalid authority to do that action" + }, + { + "code": 6054, + "name": "invalidPermission", + "msg": "Invalid permission" + }, + { + "code": 6055, + "name": "invalidFeeMarketCapScheduler", + "msg": "Invalid fee market cap scheduler" + }, + { + "code": 6056, + "name": "cannotUpdateBaseFee", + "msg": "Cannot update base fee" + }, + { + "code": 6057, + "name": "invalidDynamicFeeParameters", + "msg": "Invalid dynamic fee parameters" + }, + { + "code": 6058, + "name": "invalidUpdatePoolFeesParameters", + "msg": "Invalid update pool fees parameters" + }, + { + "code": 6059, + "name": "missingOperatorAccount", + "msg": "Missing operator account" + }, + { + "code": 6060, + "name": "incorrectAta", + "msg": "Incorrect ATA" + }, + { + "code": 6061, + "name": "invalidZapOutParameters", + "msg": "Invalid zap out parameters" + }, + { + "code": 6062, + "name": "invalidWithdrawProtocolFeeZapAccounts", + "msg": "Invalid withdraw protocol fee zap accounts" + }, + { + "code": 6063, + "name": "mintRestrictedFromZap", + "msg": "SOL,USDC protocol fee cannot be withdrawn via zap" + }, + { + "code": 6064, + "name": "cpiDisabled", + "msg": "CPI disabled" + }, + { + "code": 6065, + "name": "missingZapOutInstruction", + "msg": "Missing zap out instruction" + }, + { + "code": 6066, + "name": "invalidZapAccounts", + "msg": "Invalid zap accounts" + }, + { + "code": 6067, + "name": "invalidCompoundingFeeBps", + "msg": "Invalid compounding fee bps" + }, + { + "code": 6068, + "name": "invalidClaimProtocolFeeAccounts", + "msg": "Invalid claim protocol fee accounts" + }, + { + "code": 6069, + "name": "transferFeeExcludedAmountIsZero", + "msg": "Transfer fee excluded amount is zero" + }, + { + "code": 6070, + "name": "delegatedAmountNonZero", + "msg": "Delegated amount is not zero" + } + ], + "types": [ + { + "name": "addLiquidityParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "liquidityDelta", + "docs": [ + "delta liquidity" + ], + "type": "u128" + }, + { + "name": "tokenAAmountThreshold", + "docs": [ + "maximum token a amount" + ], + "type": "u64" + }, + { + "name": "tokenBAmountThreshold", + "docs": [ + "maximum token b amount" + ], + "type": "u64" + } + ] + } + }, + { + "name": "baseFeeInfo", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "data", + "type": { + "array": [ + "u8", + 32 + ] + } + } + ] + } + }, + { + "name": "baseFeeParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "data", + "type": { + "array": [ + "u8", + 27 + ] + } + } + ] + } + }, + { + "name": "baseFeeStruct", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "baseFeeInfo", + "type": { + "defined": { + "name": "baseFeeInfo" + } + } + }, + { + "name": "padding1", + "type": "u64" + } + ] + } + }, + { + "name": "borshFeeMarketCapScheduler", + "type": { + "kind": "struct", + "fields": [ + { + "name": "cliffFeeNumerator", + "type": "u64" + }, + { + "name": "numberOfPeriod", + "type": "u16" + }, + { + "name": "sqrtPriceStepBps", + "type": "u32" + }, + { + "name": "schedulerExpirationDuration", + "type": "u32" + }, + { + "name": "reductionFactor", + "type": "u64" + }, + { + "name": "baseFeeMode", + "type": "u8" + } + ] + } + }, + { + "name": "borshFeeRateLimiter", + "docs": [ + "we denote reference_amount = x0, cliff_fee_numerator = c, fee_increment = i", + "if input_amount <= x0, then fee = input_amount * c", + "", + "if input_amount > x0, then input_amount = x0 + (a * x0 + b)", + "if a < max_index", + "then fee = x0 * c + x0 * (c + i) + .... + x0 * (c + i*a) + b * (c + i * (a+1))", + "then fee = x0 * (c + c*a + i*a*(a+1)/2) + b * (c + i * (a+1))", + "", + "if a >= max_index", + "if a = max_index + d, input_amount = x0 + max_index * x0 + (d * x0 + b)", + "then fee = x0 * (c + c*max_index + i*max_index*(max_index+1)/2) + (d * x0 + b) * MAX_FEE" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "cliffFeeNumerator", + "type": "u64" + }, + { + "name": "feeIncrementBps", + "type": "u16" + }, + { + "name": "maxLimiterDuration", + "type": "u32" + }, + { + "name": "maxFeeBps", + "type": "u32" + }, + { + "name": "referenceAmount", + "type": "u64" + }, + { + "name": "baseFeeMode", + "type": "u8" + } + ] + } + }, + { + "name": "borshFeeTimeScheduler", + "type": { + "kind": "struct", + "fields": [ + { + "name": "cliffFeeNumerator", + "type": "u64" + }, + { + "name": "numberOfPeriod", + "type": "u16" + }, + { + "name": "periodFrequency", + "type": "u64" + }, + { + "name": "reductionFactor", + "type": "u64" + }, + { + "name": "baseFeeMode", + "type": "u8" + } + ] + } + }, + { + "name": "config", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "vaultConfigKey", + "docs": [ + "Vault config key" + ], + "type": "pubkey" + }, + { + "name": "poolCreatorAuthority", + "docs": [ + "Only pool_creator_authority can use the current config to initialize new pool. When it's Pubkey::default, it's a public config." + ], + "type": "pubkey" + }, + { + "name": "poolFees", + "docs": [ + "Pool fee" + ], + "type": { + "defined": { + "name": "poolFeesConfig" + } + } + }, + { + "name": "activationType", + "docs": [ + "Activation type" + ], + "type": "u8" + }, + { + "name": "collectFeeMode", + "docs": [ + "Collect fee mode" + ], + "type": "u8" + }, + { + "name": "configType", + "docs": [ + "Config type mode, 0 for static, 1 for dynamic" + ], + "type": "u8" + }, + { + "name": "padding0", + "docs": [ + "padding 0" + ], + "type": { + "array": [ + "u8", + 5 + ] + } + }, + { + "name": "index", + "docs": [ + "config index" + ], + "type": "u64" + }, + { + "name": "sqrtMinPrice", + "docs": [ + "sqrt min price" + ], + "type": "u128" + }, + { + "name": "sqrtMaxPrice", + "docs": [ + "sqrt max price" + ], + "type": "u128" + }, + { + "name": "padding1", + "docs": [ + "Fee curve point", + "Padding for further use" + ], + "type": { + "array": [ + "u64", + 10 + ] + } + } + ] + } + }, + { + "name": "dummyParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "borshFeeTimeSchedulerParams", + "type": { + "defined": { + "name": "borshFeeTimeScheduler" + } + } + }, + { + "name": "borshFeeRateLimiterParams", + "type": { + "defined": { + "name": "borshFeeRateLimiter" + } + } + }, + { + "name": "borshFeeMarketCapSchedulerParams", + "type": { + "defined": { + "name": "borshFeeMarketCapScheduler" + } + } + } + ] + } + }, + { + "name": "dynamicConfigParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "poolCreatorAuthority", + "type": "pubkey" + } + ] + } + }, + { + "name": "dynamicFeeConfig", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "initialized", + "type": "u8" + }, + { + "name": "padding", + "type": { + "array": [ + "u8", + 7 + ] + } + }, + { + "name": "maxVolatilityAccumulator", + "type": "u32" + }, + { + "name": "variableFeeControl", + "type": "u32" + }, + { + "name": "binStep", + "type": "u16" + }, + { + "name": "filterPeriod", + "type": "u16" + }, + { + "name": "decayPeriod", + "type": "u16" + }, + { + "name": "reductionFactor", + "type": "u16" + }, + { + "name": "padding1", + "type": { + "array": [ + "u8", + 8 + ] + } + }, + { + "name": "binStepU128", + "type": "u128" + } + ] + } + }, + { + "name": "dynamicFeeParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "binStep", + "type": "u16" + }, + { + "name": "binStepU128", + "type": "u128" + }, + { + "name": "filterPeriod", + "type": "u16" + }, + { + "name": "decayPeriod", + "type": "u16" + }, + { + "name": "reductionFactor", + "type": "u16" + }, + { + "name": "maxVolatilityAccumulator", + "type": "u32" + }, + { + "name": "variableFeeControl", + "type": "u32" + } + ] + } + }, + { + "name": "dynamicFeeStruct", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "initialized", + "type": "u8" + }, + { + "name": "padding", + "type": { + "array": [ + "u8", + 7 + ] + } + }, + { + "name": "maxVolatilityAccumulator", + "type": "u32" + }, + { + "name": "variableFeeControl", + "type": "u32" + }, + { + "name": "binStep", + "type": "u16" + }, + { + "name": "filterPeriod", + "type": "u16" + }, + { + "name": "decayPeriod", + "type": "u16" + }, + { + "name": "reductionFactor", + "type": "u16" + }, + { + "name": "lastUpdateTimestamp", + "type": "u64" + }, + { + "name": "binStepU128", + "type": "u128" + }, + { + "name": "sqrtPriceReference", + "type": "u128" + }, + { + "name": "volatilityAccumulator", + "type": "u128" + }, + { + "name": "volatilityReference", + "type": "u128" + } + ] + } + }, + { + "name": "evtClaimPositionFee", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "position", + "type": "pubkey" + }, + { + "name": "owner", + "type": "pubkey" + }, + { + "name": "feeAClaimed", + "type": "u64" + }, + { + "name": "feeBClaimed", + "type": "u64" + } + ] + } + }, + { + "name": "evtClaimProtocolFee2", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "receiverTokenAccount", + "type": "pubkey" + }, + { + "name": "tokenMint", + "type": "pubkey" + }, + { + "name": "amount", + "type": "u64" + } + ] + } + }, + { + "name": "evtClaimReward", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "position", + "type": "pubkey" + }, + { + "name": "owner", + "type": "pubkey" + }, + { + "name": "mintReward", + "type": "pubkey" + }, + { + "name": "rewardIndex", + "type": "u8" + }, + { + "name": "totalReward", + "type": "u64" + } + ] + } + }, + { + "name": "evtCloseConfig", + "docs": [ + "Close config" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "config", + "docs": [ + "Config pubkey" + ], + "type": "pubkey" + }, + { + "name": "admin", + "docs": [ + "admin pk" + ], + "type": "pubkey" + } + ] + } + }, + { + "name": "evtClosePosition", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "owner", + "type": "pubkey" + }, + { + "name": "position", + "type": "pubkey" + }, + { + "name": "positionNftMint", + "type": "pubkey" + } + ] + } + }, + { + "name": "evtCreateConfig", + "docs": [ + "Create static config" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "poolFees", + "type": { + "defined": { + "name": "poolFeeParameters" + } + } + }, + { + "name": "vaultConfigKey", + "type": "pubkey" + }, + { + "name": "poolCreatorAuthority", + "type": "pubkey" + }, + { + "name": "activationType", + "type": "u8" + }, + { + "name": "sqrtMinPrice", + "type": "u128" + }, + { + "name": "sqrtMaxPrice", + "type": "u128" + }, + { + "name": "collectFeeMode", + "type": "u8" + }, + { + "name": "index", + "type": "u64" + }, + { + "name": "config", + "type": "pubkey" + } + ] + } + }, + { + "name": "evtCreateDynamicConfig", + "docs": [ + "Create dynamic config" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "config", + "type": "pubkey" + }, + { + "name": "poolCreatorAuthority", + "type": "pubkey" + }, + { + "name": "index", + "type": "u64" + } + ] + } + }, + { + "name": "evtCreatePosition", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "owner", + "type": "pubkey" + }, + { + "name": "position", + "type": "pubkey" + }, + { + "name": "positionNftMint", + "type": "pubkey" + } + ] + } + }, + { + "name": "evtCreateTokenBadge", + "docs": [ + "Create token badge" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "tokenMint", + "type": "pubkey" + } + ] + } + }, + { + "name": "evtFundReward", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "funder", + "type": "pubkey" + }, + { + "name": "mintReward", + "type": "pubkey" + }, + { + "name": "rewardIndex", + "type": "u8" + }, + { + "name": "amount", + "type": "u64" + }, + { + "name": "transferFeeExcludedAmountIn", + "type": "u64" + }, + { + "name": "rewardDurationEnd", + "type": "u64" + }, + { + "name": "preRewardRate", + "type": "u128" + }, + { + "name": "postRewardRate", + "type": "u128" + } + ] + } + }, + { + "name": "evtInitializePool", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "tokenAMint", + "type": "pubkey" + }, + { + "name": "tokenBMint", + "type": "pubkey" + }, + { + "name": "creator", + "type": "pubkey" + }, + { + "name": "payer", + "type": "pubkey" + }, + { + "name": "alphaVault", + "type": "pubkey" + }, + { + "name": "poolFees", + "type": { + "defined": { + "name": "poolFeeParameters" + } + } + }, + { + "name": "sqrtMinPrice", + "type": "u128" + }, + { + "name": "sqrtMaxPrice", + "type": "u128" + }, + { + "name": "activationType", + "type": "u8" + }, + { + "name": "collectFeeMode", + "type": "u8" + }, + { + "name": "liquidity", + "type": "u128" + }, + { + "name": "sqrtPrice", + "type": "u128" + }, + { + "name": "activationPoint", + "type": "u64" + }, + { + "name": "tokenAFlag", + "type": "u8" + }, + { + "name": "tokenBFlag", + "type": "u8" + }, + { + "name": "tokenAAmount", + "type": "u64" + }, + { + "name": "tokenBAmount", + "type": "u64" + }, + { + "name": "totalAmountA", + "type": "u64" + }, + { + "name": "totalAmountB", + "type": "u64" + }, + { + "name": "poolType", + "type": "u8" + } + ] + } + }, + { + "name": "evtInitializeReward", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "rewardMint", + "type": "pubkey" + }, + { + "name": "funder", + "type": "pubkey" + }, + { + "name": "creator", + "type": "pubkey" + }, + { + "name": "rewardIndex", + "type": "u8" + }, + { + "name": "rewardDuration", + "type": "u64" + } + ] + } + }, + { + "name": "evtLiquidityChange", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "position", + "type": "pubkey" + }, + { + "name": "owner", + "type": "pubkey" + }, + { + "name": "tokenAAmount", + "type": "u64" + }, + { + "name": "tokenBAmount", + "type": "u64" + }, + { + "name": "transferFeeIncludedTokenAAmount", + "type": "u64" + }, + { + "name": "transferFeeIncludedTokenBAmount", + "type": "u64" + }, + { + "name": "reserveAAmount", + "type": "u64" + }, + { + "name": "reserveBAmount", + "type": "u64" + }, + { + "name": "liquidityDelta", + "type": "u128" + }, + { + "name": "tokenAAmountThreshold", + "type": "u64" + }, + { + "name": "tokenBAmountThreshold", + "type": "u64" + }, + { + "name": "changeType", + "type": "u8" + } + ] + } + }, + { + "name": "evtLockPosition", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "position", + "type": "pubkey" + }, + { + "name": "owner", + "type": "pubkey" + }, + { + "name": "vesting", + "type": "pubkey" + }, + { + "name": "cliffPoint", + "type": "u64" + }, + { + "name": "periodFrequency", + "type": "u64" + }, + { + "name": "cliffUnlockLiquidity", + "type": "u128" + }, + { + "name": "liquidityPerPeriod", + "type": "u128" + }, + { + "name": "numberOfPeriod", + "type": "u16" + } + ] + } + }, + { + "name": "evtPermanentLockPosition", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "position", + "type": "pubkey" + }, + { + "name": "lockLiquidityAmount", + "type": "u128" + }, + { + "name": "totalPermanentLockedLiquidity", + "type": "u128" + } + ] + } + }, + { + "name": "evtSetPoolStatus", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "status", + "type": "u8" + } + ] + } + }, + { + "name": "evtSplitPosition2", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "firstOwner", + "type": "pubkey" + }, + { + "name": "secondOwner", + "type": "pubkey" + }, + { + "name": "firstPosition", + "type": "pubkey" + }, + { + "name": "secondPosition", + "type": "pubkey" + }, + { + "name": "currentSqrtPrice", + "type": "u128" + }, + { + "name": "amountSplits", + "type": { + "defined": { + "name": "splitAmountInfo" + } + } + }, + { + "name": "firstPositionInfo", + "type": { + "defined": { + "name": "splitPositionInfo" + } + } + }, + { + "name": "secondPositionInfo", + "type": { + "defined": { + "name": "splitPositionInfo" + } + } + }, + { + "name": "splitPositionParameters", + "type": { + "defined": { + "name": "splitPositionParameters2" + } + } + } + ] + } + }, + { + "name": "evtSplitPosition3", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "firstOwner", + "type": "pubkey" + }, + { + "name": "secondOwner", + "type": "pubkey" + }, + { + "name": "firstPosition", + "type": "pubkey" + }, + { + "name": "secondPosition", + "type": "pubkey" + }, + { + "name": "currentSqrtPrice", + "type": "u128" + }, + { + "name": "amountSplits", + "type": { + "defined": { + "name": "splitAmountInfo2" + } + } + }, + { + "name": "firstPositionInfo", + "type": { + "defined": { + "name": "splitPositionInfo2" + } + } + }, + { + "name": "secondPositionInfo", + "type": { + "defined": { + "name": "splitPositionInfo2" + } + } + }, + { + "name": "splitPositionParameters", + "type": { + "defined": { + "name": "splitPositionParameters3" + } + } + } + ] + } + }, + { + "name": "evtSwap2", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "tradeDirection", + "type": "u8" + }, + { + "name": "collectFeeMode", + "type": "u8" + }, + { + "name": "hasReferral", + "type": "bool" + }, + { + "name": "params", + "type": { + "defined": { + "name": "swapParameters2" + } + } + }, + { + "name": "swapResult", + "type": { + "defined": { + "name": "swapResult2" + } + } + }, + { + "name": "includedTransferFeeAmountIn", + "type": "u64" + }, + { + "name": "includedTransferFeeAmountOut", + "type": "u64" + }, + { + "name": "excludedTransferFeeAmountOut", + "type": "u64" + }, + { + "name": "currentTimestamp", + "type": "u64" + }, + { + "name": "reserveAAmount", + "type": "u64" + }, + { + "name": "reserveBAmount", + "type": "u64" + } + ] + } + }, + { + "name": "evtUpdateDelegatePermission", + "type": { + "kind": "struct", + "fields": [ + { + "name": "position", + "type": "pubkey" + }, + { + "name": "owner", + "type": "pubkey" + }, + { + "name": "permission", + "type": "u32" + }, + { + "name": "delegate", + "type": { + "option": "pubkey" + } + } + ] + } + }, + { + "name": "evtUpdatePoolFees", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "operator", + "type": "pubkey" + }, + { + "name": "params", + "type": { + "defined": { + "name": "updatePoolFeesParameters" + } + } + } + ] + } + }, + { + "name": "evtUpdateRewardDuration", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "rewardIndex", + "type": "u8" + }, + { + "name": "oldRewardDuration", + "type": "u64" + }, + { + "name": "newRewardDuration", + "type": "u64" + } + ] + } + }, + { + "name": "evtUpdateRewardFunder", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "rewardIndex", + "type": "u8" + }, + { + "name": "oldFunder", + "type": "pubkey" + }, + { + "name": "newFunder", + "type": "pubkey" + } + ] + } + }, + { + "name": "evtWithdrawDeadLiquidityReward", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "rewardMint", + "type": "pubkey" + }, + { + "name": "amount", + "type": "u64" + } + ] + } + }, + { + "name": "evtWithdrawIneligibleReward", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "rewardMint", + "type": "pubkey" + }, + { + "name": "amount", + "type": "u64" + } + ] + } + }, + { + "name": "initializeCustomizablePoolParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "poolFees", + "docs": [ + "pool fees" + ], + "type": { + "defined": { + "name": "poolFeeParameters" + } + } + }, + { + "name": "sqrtMinPrice", + "docs": [ + "sqrt min price" + ], + "type": "u128" + }, + { + "name": "sqrtMaxPrice", + "docs": [ + "sqrt max price" + ], + "type": "u128" + }, + { + "name": "hasAlphaVault", + "docs": [ + "has alpha vault" + ], + "type": "bool" + }, + { + "name": "liquidity", + "docs": [ + "initialize liquidity" + ], + "type": "u128" + }, + { + "name": "sqrtPrice", + "docs": [ + "The init price of the pool as a sqrt(token_b/token_a) Q64.64 value. Market cap fee scheduler minimum price will be derived from this value" + ], + "type": "u128" + }, + { + "name": "activationType", + "docs": [ + "activation type" + ], + "type": "u8" + }, + { + "name": "collectFeeMode", + "docs": [ + "collect fee mode" + ], + "type": "u8" + }, + { + "name": "activationPoint", + "docs": [ + "activation point" + ], + "type": { + "option": "u64" + } + } + ] + } + }, + { + "name": "initializePoolParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "liquidity", + "docs": [ + "initialize liquidity" + ], + "type": "u128" + }, + { + "name": "sqrtPrice", + "docs": [ + "The init price of the pool as a sqrt(token_b/token_a) Q64.64 value" + ], + "type": "u128" + }, + { + "name": "activationPoint", + "docs": [ + "activation point" + ], + "type": { + "option": "u64" + } + } + ] + } + }, + { + "name": "innerVesting", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "cliffPoint", + "type": "u64" + }, + { + "name": "periodFrequency", + "type": "u64" + }, + { + "name": "cliffUnlockLiquidity", + "type": "u128" + }, + { + "name": "liquidityPerPeriod", + "type": "u128" + }, + { + "name": "totalReleasedLiquidity", + "type": "u128" + }, + { + "name": "numberOfPeriod", + "type": "u16" + }, + { + "name": "padding", + "type": { + "array": [ + "u8", + 14 + ] + } + } + ] + } + }, + { + "name": "operator", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "whitelistedAddress", + "type": "pubkey" + }, + { + "name": "permission", + "type": "u128" + }, + { + "name": "padding", + "type": { + "array": [ + "u64", + 2 + ] + } + } + ] + } + }, + { + "name": "podAlignedFeeMarketCapScheduler", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "cliffFeeNumerator", + "type": "u64" + }, + { + "name": "baseFeeMode", + "type": "u8" + }, + { + "name": "padding", + "type": { + "array": [ + "u8", + 5 + ] + } + }, + { + "name": "numberOfPeriod", + "type": "u16" + }, + { + "name": "sqrtPriceStepBps", + "type": "u32" + }, + { + "name": "schedulerExpirationDuration", + "type": "u32" + }, + { + "name": "reductionFactor", + "type": "u64" + } + ] + } + }, + { + "name": "podAlignedFeeRateLimiter", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "cliffFeeNumerator", + "type": "u64" + }, + { + "name": "baseFeeMode", + "type": "u8" + }, + { + "name": "padding", + "type": { + "array": [ + "u8", + 5 + ] + } + }, + { + "name": "feeIncrementBps", + "type": "u16" + }, + { + "name": "maxLimiterDuration", + "type": "u32" + }, + { + "name": "maxFeeBps", + "type": "u32" + }, + { + "name": "referenceAmount", + "type": "u64" + } + ] + } + }, + { + "name": "podAlignedFeeTimeScheduler", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "cliffFeeNumerator", + "type": "u64" + }, + { + "name": "baseFeeMode", + "type": "u8" + }, + { + "name": "padding", + "type": { + "array": [ + "u8", + 5 + ] + } + }, + { + "name": "numberOfPeriod", + "type": "u16" + }, + { + "name": "periodFrequency", + "type": "u64" + }, + { + "name": "reductionFactor", + "type": "u64" + } + ] + } + }, + { + "name": "pool", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "poolFees", + "docs": [ + "Pool fee" + ], + "type": { + "defined": { + "name": "poolFeesStruct" + } + } + }, + { + "name": "tokenAMint", + "docs": [ + "token a mint" + ], + "type": "pubkey" + }, + { + "name": "tokenBMint", + "docs": [ + "token b mint" + ], + "type": "pubkey" + }, + { + "name": "tokenAVault", + "docs": [ + "token a vault" + ], + "type": "pubkey" + }, + { + "name": "tokenBVault", + "docs": [ + "token b vault" + ], + "type": "pubkey" + }, + { + "name": "whitelistedVault", + "docs": [ + "Whitelisted vault to be able to buy pool before activation_point" + ], + "type": "pubkey" + }, + { + "name": "padding0", + "docs": [ + "padding, previously partner pubkey, be careful when using this field" + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "liquidity", + "docs": [ + "liquidity share" + ], + "type": "u128" + }, + { + "name": "padding1", + "docs": [ + "padding, previous reserve amount, be careful to use that field" + ], + "type": "u128" + }, + { + "name": "protocolAFee", + "docs": [ + "protocol a fee" + ], + "type": "u64" + }, + { + "name": "protocolBFee", + "docs": [ + "protocol b fee" + ], + "type": "u64" + }, + { + "name": "padding2", + "type": "u128" + }, + { + "name": "sqrtMinPrice", + "docs": [ + "min price" + ], + "type": "u128" + }, + { + "name": "sqrtMaxPrice", + "docs": [ + "max price" + ], + "type": "u128" + }, + { + "name": "sqrtPrice", + "docs": [ + "current price" + ], + "type": "u128" + }, + { + "name": "activationPoint", + "docs": [ + "Activation point, can be slot or timestamp" + ], + "type": "u64" + }, + { + "name": "activationType", + "docs": [ + "Activation type, 0 means by slot, 1 means by timestamp" + ], + "type": "u8" + }, + { + "name": "poolStatus", + "docs": [ + "pool status, 0: enable, 1 disable" + ], + "type": "u8" + }, + { + "name": "tokenAFlag", + "docs": [ + "token a flag" + ], + "type": "u8" + }, + { + "name": "tokenBFlag", + "docs": [ + "token b flag" + ], + "type": "u8" + }, + { + "name": "collectFeeMode", + "docs": [ + "0 is collect fee in both token, 1 only collect fee only in token b" + ], + "type": "u8" + }, + { + "name": "poolType", + "docs": [ + "pool type" + ], + "type": "u8" + }, + { + "name": "feeVersion", + "docs": [ + "pool fee version, 0: max_fee is still capped at 50%, 1: max_fee is capped at 99%" + ], + "type": "u8" + }, + { + "name": "padding3", + "docs": [ + "padding" + ], + "type": "u8" + }, + { + "name": "feeAPerLiquidity", + "docs": [ + "cumulative" + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "feeBPerLiquidity", + "docs": [ + "cumulative" + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "permanentLockLiquidity", + "type": "u128" + }, + { + "name": "metrics", + "docs": [ + "metrics" + ], + "type": { + "defined": { + "name": "poolMetrics" + } + } + }, + { + "name": "creator", + "docs": [ + "pool creator" + ], + "type": "pubkey" + }, + { + "name": "tokenAAmount", + "docs": [ + "token a amount" + ], + "type": "u64" + }, + { + "name": "tokenBAmount", + "docs": [ + "token b amount" + ], + "type": "u64" + }, + { + "name": "layoutVersion", + "docs": [ + "layout version: version 0: haven't track token_a_amount and token_b_amount, version 1: track token_a_amount and token_b_amount" + ], + "type": "u8" + }, + { + "name": "padding4", + "docs": [ + "Padding for further use" + ], + "type": { + "array": [ + "u8", + 7 + ] + } + }, + { + "name": "padding5", + "docs": [ + "Padding for further use" + ], + "type": { + "array": [ + "u64", + 3 + ] + } + }, + { + "name": "rewardInfos", + "docs": [ + "Farming reward information" + ], + "type": { + "array": [ + { + "defined": { + "name": "rewardInfo" + } + }, + 2 + ] + } + } + ] + } + }, + { + "name": "poolFeeParameters", + "docs": [ + "Information regarding fee charges" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "baseFee", + "docs": [ + "Base fee" + ], + "type": { + "defined": { + "name": "baseFeeParameters" + } + } + }, + { + "name": "compoundingFeeBps", + "docs": [ + "compounding fee bps, only have value if CollectFeeMode::Compounding" + ], + "type": "u16" + }, + { + "name": "padding", + "docs": [ + "padding for future use" + ], + "type": "u8" + }, + { + "name": "dynamicFee", + "docs": [ + "dynamic fee" + ], + "type": { + "option": { + "defined": { + "name": "dynamicFeeParameters" + } + } + } + } + ] + } + }, + { + "name": "poolFeesConfig", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "baseFee", + "type": { + "defined": { + "name": "baseFeeInfo" + } + } + }, + { + "name": "dynamicFee", + "type": { + "defined": { + "name": "dynamicFeeConfig" + } + } + }, + { + "name": "protocolFeePercent", + "type": "u8" + }, + { + "name": "padding0", + "type": "u8" + }, + { + "name": "referralFeePercent", + "type": "u8" + }, + { + "name": "padding1", + "type": { + "array": [ + "u8", + 3 + ] + } + }, + { + "name": "compoundingFeeBps", + "docs": [ + "Compounding fee bps, only non-zero if collect_fee_mode is compounding" + ], + "type": "u16" + }, + { + "name": "padding2", + "type": { + "array": [ + "u64", + 5 + ] + } + } + ] + } + }, + { + "name": "poolFeesStruct", + "docs": [ + "Information regarding fee charges", + "trading_fee = amount * trade_fee_numerator / denominator", + "protocol_fee = trading_fee * protocol_fee_percentage / 100", + "referral_fee = protocol_fee * referral_percentage / 100" + ], + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "baseFee", + "docs": [ + "Trade fees are extra token amounts that are held inside the token", + "accounts during a trade, making the value of liquidity tokens rise.", + "Trade fee numerator" + ], + "type": { + "defined": { + "name": "baseFeeStruct" + } + } + }, + { + "name": "protocolFeePercent", + "docs": [ + "Protocol trading fees are extra token amounts that are held inside the token", + "accounts during a trade, with the equivalent in pool tokens minted to", + "the protocol of the program.", + "Protocol trade fee numerator" + ], + "type": "u8" + }, + { + "name": "padding0", + "docs": [ + "padding for future use" + ], + "type": "u8" + }, + { + "name": "referralFeePercent", + "docs": [ + "referral fee" + ], + "type": "u8" + }, + { + "name": "padding1", + "docs": [ + "padding" + ], + "type": { + "array": [ + "u8", + 3 + ] + } + }, + { + "name": "compoundingFeeBps", + "docs": [ + "compounding fee bps, only non-zero in CollectFeeMode::Compounding" + ], + "type": "u16" + }, + { + "name": "dynamicFee", + "docs": [ + "dynamic fee" + ], + "type": { + "defined": { + "name": "dynamicFeeStruct" + } + } + }, + { + "name": "initSqrtPrice", + "type": "u128" + } + ] + } + }, + { + "name": "poolMetrics", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "totalLpAFee", + "type": "u128" + }, + { + "name": "totalLpBFee", + "type": "u128" + }, + { + "name": "totalProtocolAFee", + "type": "u64" + }, + { + "name": "totalProtocolBFee", + "type": "u64" + }, + { + "name": "padding0", + "type": { + "array": [ + "u64", + 2 + ] + } + }, + { + "name": "totalPosition", + "type": "u64" + }, + { + "name": "padding", + "type": "u64" + } + ] + } + }, + { + "name": "position", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "nftMint", + "docs": [ + "nft mint" + ], + "type": "pubkey" + }, + { + "name": "feeAPerTokenCheckpoint", + "docs": [ + "fee a checkpoint" + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "feeBPerTokenCheckpoint", + "docs": [ + "fee b checkpoint" + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "feeAPending", + "docs": [ + "fee a pending" + ], + "type": "u64" + }, + { + "name": "feeBPending", + "docs": [ + "fee b pending" + ], + "type": "u64" + }, + { + "name": "unlockedLiquidity", + "docs": [ + "unlock liquidity" + ], + "type": "u128" + }, + { + "name": "vestedLiquidity", + "docs": [ + "vesting liquidity" + ], + "type": "u128" + }, + { + "name": "permanentLockedLiquidity", + "docs": [ + "permanent locked liquidity" + ], + "type": "u128" + }, + { + "name": "metrics", + "docs": [ + "metrics" + ], + "type": { + "defined": { + "name": "positionMetrics" + } + } + }, + { + "name": "rewardInfos", + "docs": [ + "Farming reward information" + ], + "type": { + "array": [ + { + "defined": { + "name": "userRewardInfo" + } + }, + 2 + ] + } + }, + { + "name": "innerVesting", + "docs": [ + "inner vesting info" + ], + "type": { + "defined": { + "name": "innerVesting" + } + } + }, + { + "name": "delegatePermission", + "docs": [ + "delegate permission bitmask (paired with SPL token Approve)" + ], + "type": "u32" + }, + { + "name": "padding", + "docs": [ + "padding for future usage" + ], + "type": { + "array": [ + "u8", + 12 + ] + } + } + ] + } + }, + { + "name": "positionMetrics", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "totalClaimedAFee", + "type": "u64" + }, + { + "name": "totalClaimedBFee", + "type": "u64" + } + ] + } + }, + { + "name": "removeLiquidityParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "liquidityDelta", + "docs": [ + "delta liquidity" + ], + "type": "u128" + }, + { + "name": "tokenAAmountThreshold", + "docs": [ + "minimum token a amount" + ], + "type": "u64" + }, + { + "name": "tokenBAmountThreshold", + "docs": [ + "minimum token b amount" + ], + "type": "u64" + } + ] + } + }, + { + "name": "rewardInfo", + "docs": [ + "Stores the state relevant for tracking liquidity mining rewards" + ], + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "initialized", + "docs": [ + "Indicates if the reward has been initialized" + ], + "type": "u8" + }, + { + "name": "rewardTokenFlag", + "docs": [ + "reward token flag" + ], + "type": "u8" + }, + { + "name": "padding0", + "docs": [ + "padding" + ], + "type": { + "array": [ + "u8", + 6 + ] + } + }, + { + "name": "deadLiquidityRewardCheckpoint", + "docs": [ + "Cumulative dead-liquidity reward (Compounding Pool only)" + ], + "type": "u64" + }, + { + "name": "mint", + "docs": [ + "Reward token mint." + ], + "type": "pubkey" + }, + { + "name": "vault", + "docs": [ + "Reward vault token account." + ], + "type": "pubkey" + }, + { + "name": "funder", + "docs": [ + "Authority account that allows to fund rewards" + ], + "type": "pubkey" + }, + { + "name": "rewardDuration", + "docs": [ + "reward duration" + ], + "type": "u64" + }, + { + "name": "rewardDurationEnd", + "docs": [ + "reward duration end" + ], + "type": "u64" + }, + { + "name": "rewardRate", + "docs": [ + "reward rate" + ], + "type": "u128" + }, + { + "name": "rewardPerTokenStored", + "docs": [ + "Reward per token stored" + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "lastUpdateTime", + "docs": [ + "The last time reward states were updated." + ], + "type": "u64" + }, + { + "name": "cumulativeSecondsWithEmptyLiquidityReward", + "docs": [ + "Accumulated seconds when the farm distributed rewards but the bin was empty.", + "These rewards will be carried over to the next reward time window." + ], + "type": "u64" + } + ] + } + }, + { + "name": "splitAmountInfo", + "type": { + "kind": "struct", + "fields": [ + { + "name": "permanentLockedLiquidity", + "type": "u128" + }, + { + "name": "unlockedLiquidity", + "type": "u128" + }, + { + "name": "feeA", + "type": "u64" + }, + { + "name": "feeB", + "type": "u64" + }, + { + "name": "reward0", + "type": "u64" + }, + { + "name": "reward1", + "type": "u64" + } + ] + } + }, + { + "name": "splitAmountInfo2", + "type": { + "kind": "struct", + "fields": [ + { + "name": "permanentLockedLiquidity", + "type": "u128" + }, + { + "name": "unlockedLiquidity", + "type": "u128" + }, + { + "name": "vestedLiquidity", + "type": "u128" + }, + { + "name": "feeA", + "type": "u64" + }, + { + "name": "feeB", + "type": "u64" + }, + { + "name": "reward0", + "type": "u64" + }, + { + "name": "reward1", + "type": "u64" + } + ] + } + }, + { + "name": "splitPositionInfo", + "type": { + "kind": "struct", + "fields": [ + { + "name": "liquidity", + "type": "u128" + }, + { + "name": "feeA", + "type": "u64" + }, + { + "name": "feeB", + "type": "u64" + }, + { + "name": "reward0", + "type": "u64" + }, + { + "name": "reward1", + "type": "u64" + } + ] + } + }, + { + "name": "splitPositionInfo2", + "type": { + "kind": "struct", + "fields": [ + { + "name": "unlockedLiquidity", + "type": "u128" + }, + { + "name": "permanentLockedLiquidity", + "type": "u128" + }, + { + "name": "vestedLiquidity", + "type": "u128" + }, + { + "name": "feeA", + "type": "u64" + }, + { + "name": "feeB", + "type": "u64" + }, + { + "name": "reward0", + "type": "u64" + }, + { + "name": "reward1", + "type": "u64" + } + ] + } + }, + { + "name": "splitPositionParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "unlockedLiquidityPercentage", + "docs": [ + "Percentage of unlocked liquidity to split to the second position" + ], + "type": "u8" + }, + { + "name": "permanentLockedLiquidityPercentage", + "docs": [ + "Percentage of permanent locked liquidity to split to the second position" + ], + "type": "u8" + }, + { + "name": "feeAPercentage", + "docs": [ + "Percentage of fee A pending to split to the second position" + ], + "type": "u8" + }, + { + "name": "feeBPercentage", + "docs": [ + "Percentage of fee B pending to split to the second position" + ], + "type": "u8" + }, + { + "name": "reward0Percentage", + "docs": [ + "Percentage of reward 0 pending to split to the second position" + ], + "type": "u8" + }, + { + "name": "reward1Percentage", + "docs": [ + "Percentage of reward 1 pending to split to the second position" + ], + "type": "u8" + }, + { + "name": "innerVestingLiquidityPercentage", + "docs": [ + "Percentage of inner vesting liquidity" + ], + "type": "u8" + }, + { + "name": "padding", + "docs": [ + "padding for future" + ], + "type": { + "array": [ + "u8", + 15 + ] + } + } + ] + } + }, + { + "name": "splitPositionParameters2", + "type": { + "kind": "struct", + "fields": [ + { + "name": "unlockedLiquidityNumerator", + "type": "u32" + }, + { + "name": "permanentLockedLiquidityNumerator", + "type": "u32" + }, + { + "name": "feeANumerator", + "type": "u32" + }, + { + "name": "feeBNumerator", + "type": "u32" + }, + { + "name": "reward0Numerator", + "type": "u32" + }, + { + "name": "reward1Numerator", + "type": "u32" + } + ] + } + }, + { + "name": "splitPositionParameters3", + "type": { + "kind": "struct", + "fields": [ + { + "name": "unlockedLiquidityNumerator", + "type": "u32" + }, + { + "name": "permanentLockedLiquidityNumerator", + "type": "u32" + }, + { + "name": "feeANumerator", + "type": "u32" + }, + { + "name": "feeBNumerator", + "type": "u32" + }, + { + "name": "reward0Numerator", + "type": "u32" + }, + { + "name": "reward1Numerator", + "type": "u32" + }, + { + "name": "innerVestingLiquidityNumerator", + "type": "u32" + } + ] + } + }, + { + "name": "staticConfigParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "poolFees", + "type": { + "defined": { + "name": "poolFeeParameters" + } + } + }, + { + "name": "sqrtMinPrice", + "type": "u128" + }, + { + "name": "sqrtMaxPrice", + "type": "u128" + }, + { + "name": "vaultConfigKey", + "type": "pubkey" + }, + { + "name": "poolCreatorAuthority", + "type": "pubkey" + }, + { + "name": "activationType", + "type": "u8" + }, + { + "name": "collectFeeMode", + "type": "u8" + } + ] + } + }, + { + "name": "swapParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "amountIn", + "type": "u64" + }, + { + "name": "minimumAmountOut", + "type": "u64" + } + ] + } + }, + { + "name": "swapParameters2", + "type": { + "kind": "struct", + "fields": [ + { + "name": "amount0", + "docs": [ + "When it's exact in, partial fill, this will be amount_in. When it's exact out, this will be amount_out" + ], + "type": "u64" + }, + { + "name": "amount1", + "docs": [ + "When it's exact in, partial fill, this will be minimum_amount_out. When it's exact out, this will be maximum_amount_in" + ], + "type": "u64" + }, + { + "name": "swapMode", + "docs": [ + "Swap mode, refer [SwapMode]" + ], + "type": "u8" + } + ] + } + }, + { + "name": "swapResult2", + "type": { + "kind": "struct", + "fields": [ + { + "name": "includedFeeInputAmount", + "type": "u64" + }, + { + "name": "excludedFeeInputAmount", + "type": "u64" + }, + { + "name": "amountLeft", + "type": "u64" + }, + { + "name": "outputAmount", + "type": "u64" + }, + { + "name": "nextSqrtPrice", + "type": "u128" + }, + { + "name": "claimingFee", + "type": "u64" + }, + { + "name": "protocolFee", + "type": "u64" + }, + { + "name": "compoundingFee", + "type": "u64" + }, + { + "name": "referralFee", + "type": "u64" + } + ] + } + }, + { + "name": "tokenBadge", + "docs": [ + "Parameter that set by the protocol" + ], + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "tokenMint", + "docs": [ + "token mint" + ], + "type": "pubkey" + }, + { + "name": "padding", + "docs": [ + "Reserve" + ], + "type": { + "array": [ + "u8", + 128 + ] + } + } + ] + } + }, + { + "name": "updatePoolFeesParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "cliffFeeNumerator", + "docs": [ + "Base fee update mode:", + "- None: skip base fee update", + "- Some: update new cliff_fee_numerator if base fee is static" + ], + "type": { + "option": "u64" + } + }, + { + "name": "dynamicFee", + "docs": [ + "Dynamic fee update mode:", + "- None: skip dynamic fee update", + "- Some(with default value): disable dynamic fee", + "- Some(with non default value): enable dynamic fee if disabled or update dynamic fee if enabled" + ], + "type": { + "option": { + "defined": { + "name": "dynamicFeeParameters" + } + } + } + }, + { + "name": "compoundingFeeBps", + "docs": [ + "Compounding fee update mode:", + "- None: skip compounding fee update", + "- Some: update compounding_fee_bps; pool must use CollectFeeMode::Compounding" + ], + "type": { + "option": "u16" + } + } + ] + } + }, + { + "name": "userRewardInfo", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "rewardPerTokenCheckpoint", + "docs": [ + "The latest update reward checkpoint" + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "rewardPendings", + "docs": [ + "Current pending rewards" + ], + "type": "u64" + }, + { + "name": "totalClaimedRewards", + "docs": [ + "Total claimed rewards" + ], + "type": "u64" + } + ] + } + }, + { + "name": "vesting", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "position", + "type": "pubkey" + }, + { + "name": "innerVesting", + "type": { + "defined": { + "name": "innerVesting" + } + } + }, + { + "name": "padding2", + "type": { + "array": [ + "u128", + 4 + ] + } + } + ] + } + }, + { + "name": "vestingParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "cliffPoint", + "type": { + "option": "u64" + } + }, + { + "name": "periodFrequency", + "type": "u64" + }, + { + "name": "cliffUnlockLiquidity", + "type": "u128" + }, + { + "name": "liquidityPerPeriod", + "type": "u128" + }, + { + "name": "numberOfPeriod", + "type": "u16" + } + ] + } + } + ], + "constants": [ + { + "name": "binStepBpsDefault", + "type": "u16", + "value": "1" + }, + { + "name": "binStepU128DefaultLeBytes", + "type": { + "array": [ + "u8", + 16 + ] + }, + "value": "[203, 16, 199, 186, 184, 141, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0]" + }, + { + "name": "currentPoolVersion", + "type": "u8", + "value": "1" + }, + { + "name": "customizablePoolPrefix", + "type": "bytes", + "value": "[99, 112, 111, 111, 108]" + }, + { + "name": "feeDenominator", + "docs": [ + "Default fee denominator. DO NOT simply update it as it will break logic that depends on it as default value." + ], + "type": "u64", + "value": "1000000000" + }, + { + "name": "maxBasisPoint", + "docs": [ + "Max basis point. 100% in pct" + ], + "type": "u16", + "value": "10000" + }, + { + "name": "maxFeeNumeratorV0", + "type": "u64", + "value": "500000000" + }, + { + "name": "maxFeeNumeratorV1", + "type": "u64", + "value": "990000000" + }, + { + "name": "maxSqrtPriceLeBytes", + "type": { + "array": [ + "u8", + 16 + ] + }, + "value": "[155, 87, 105, 78, 169, 26, 92, 132, 177, 196, 254, 255, 0, 0, 0, 0]" + }, + { + "name": "minFeeNumerator", + "type": "u64", + "value": "100000" + }, + { + "name": "minSqrtPriceLeBytes", + "type": { + "array": [ + "u8", + 16 + ] + }, + "value": "[80, 59, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]" + }, + { + "name": "poolAuthorityPrefix", + "type": "bytes", + "value": "[112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121]" + }, + { + "name": "poolPrefix", + "type": "bytes", + "value": "[112, 111, 111, 108]" + }, + { + "name": "positionNftAccountPrefix", + "type": "bytes", + "value": "[112, 111, 115, 105, 116, 105, 111, 110, 95, 110, 102, 116, 95, 97, 99, 99, 111, 117, 110, 116]" + }, + { + "name": "positionPrefix", + "type": "bytes", + "value": "[112, 111, 115, 105, 116, 105, 111, 110]" + }, + { + "name": "splitPositionDenominator", + "type": "u32", + "value": "1000000000" + }, + { + "name": "tokenVaultPrefix", + "type": "bytes", + "value": "[116, 111, 107, 101, 110, 95, 118, 97, 117, 108, 116]" + } + ] +}; diff --git a/tests/test_zapin/zapin_dammv2.test.ts b/tests/test_zapin/zapin_dammv2.test.ts index 643add9..621f1f9 100644 --- a/tests/test_zapin/zapin_dammv2.test.ts +++ b/tests/test_zapin/zapin_dammv2.test.ts @@ -37,7 +37,7 @@ import { swap, } from "../common/damm_v2"; import { getAssociatedTokenAddressSync } from "@solana/spl-token"; -import { BN } from "@coral-xyz/anchor"; +import { BN } from "@anchor-lang/core"; import { getDammV2Pool, getDammV2Position } from "../common/pda"; import { expect } from "chai"; import { diff --git a/tests/test_zapin/zapin_dlmm_initialize_position.test.ts b/tests/test_zapin/zapin_dlmm_initialize_position.test.ts index 89b5f05..8347f68 100644 --- a/tests/test_zapin/zapin_dlmm_initialize_position.test.ts +++ b/tests/test_zapin/zapin_dlmm_initialize_position.test.ts @@ -44,7 +44,7 @@ import { initializeBinArrayBitmapExtension, getBinArrayAccountMetaByBinRange, } from "../common/dlmm"; -import { BN } from "@coral-xyz/anchor"; +import { BN } from "@anchor-lang/core"; import { deriveBinArrayBitmapExtension } from "../common/pda"; describe("Zapin DLMM with initialize position", () => { diff --git a/tests/test_zapin/zapin_dlmm_uninitialize_position.test.ts b/tests/test_zapin/zapin_dlmm_uninitialize_position.test.ts index 5b51080..5ac7385 100644 --- a/tests/test_zapin/zapin_dlmm_uninitialize_position.test.ts +++ b/tests/test_zapin/zapin_dlmm_uninitialize_position.test.ts @@ -42,7 +42,7 @@ import { getBinArrayAccountMetaByBinRange, initializeBinArrayBitmapExtension, } from "../common/dlmm"; -import { BN } from "@coral-xyz/anchor"; +import { BN } from "@anchor-lang/core"; import { deriveBinArrayBitmapExtension } from "../common/pda"; describe("Zapin DLMM with Uninitialize position", () => { diff --git a/tests/test_zapout/zap_out_damm_v2.test.ts b/tests/test_zapout/zap_out_damm_v2.test.ts index f39f595..bef3c6f 100644 --- a/tests/test_zapout/zap_out_damm_v2.test.ts +++ b/tests/test_zapout/zap_out_damm_v2.test.ts @@ -16,7 +16,7 @@ import { ZapProgram, zapOutDammv2, } from "../common"; -import { TOKEN_PROGRAM_ID } from "@coral-xyz/anchor/dist/cjs/utils/token"; +import { TOKEN_PROGRAM_ID, getAssociatedTokenAddressSync } from "@solana/spl-token"; import { expect } from "chai"; import ZapIDL from "../../target/idl/zap.json"; @@ -26,7 +26,6 @@ import { createPositionAndAddLiquidity, removeLiquidity, } from "../common/damm_v2"; -import { getAssociatedTokenAddressSync } from "@solana/spl-token"; describe("Zap out damm V2", () => { let zapProgram: ZapProgram; diff --git a/tests/test_zapout/zap_out_dlmm.test.ts b/tests/test_zapout/zap_out_dlmm.test.ts index b5acb64..be83fda 100644 --- a/tests/test_zapout/zap_out_dlmm.test.ts +++ b/tests/test_zapout/zap_out_dlmm.test.ts @@ -18,11 +18,10 @@ import { TOKEN_DECIMALS, warpSlotBy, } from "../common"; -import { TOKEN_PROGRAM_ID } from "@coral-xyz/anchor/dist/cjs/utils/token"; +import { TOKEN_PROGRAM_ID, getAssociatedTokenAddressSync } from "@solana/spl-token"; import { expect } from "chai"; import ZapIDL from "../../target/idl/zap.json"; -import { getAssociatedTokenAddressSync } from "@solana/spl-token"; import { binIdToBinArrayIndex, createBinArrays, @@ -34,7 +33,7 @@ import { removeAllLiquidity, createDlmmPermissionlessPool, } from "../common/dlmm"; -import { BN } from "@coral-xyz/anchor"; +import { BN } from "@anchor-lang/core"; describe("Zap out dlmm", () => { let zapProgram: ZapProgram; diff --git a/tests/test_zapout/zap_out_dlmm_transfer_hook.test.ts b/tests/test_zapout/zap_out_dlmm_transfer_hook.test.ts index 6f0b3d6..6abdd73 100644 --- a/tests/test_zapout/zap_out_dlmm_transfer_hook.test.ts +++ b/tests/test_zapout/zap_out_dlmm_transfer_hook.test.ts @@ -17,14 +17,14 @@ import { createTokenWithTransferHook, warpSlotBy, } from "../common"; -import { TOKEN_PROGRAM_ID } from "@coral-xyz/anchor/dist/cjs/utils/token"; -import { expect } from "chai"; - -import ZapIDL from "../../target/idl/zap.json"; import { + TOKEN_PROGRAM_ID, getAssociatedTokenAddressSync, TOKEN_2022_PROGRAM_ID, } from "@solana/spl-token"; +import { expect } from "chai"; + +import ZapIDL from "../../target/idl/zap.json"; import { binIdToBinArrayIndex, createBinArrays, @@ -37,7 +37,7 @@ import { removeAllLiquidity, createDlmmPermissionlessPool, } from "../common/dlmm"; -import { BN } from "@coral-xyz/anchor"; +import { BN } from "@anchor-lang/core"; import { createExtraAccountMetaListAndCounter, TRANSFER_HOOK_COUNTER_PROGRAM_ID, diff --git a/tests/test_zapout/zap_out_jup_v6.test.ts b/tests/test_zapout/zap_out_jup_v6.test.ts index 9a362e0..ccab606 100644 --- a/tests/test_zapout/zap_out_jup_v6.test.ts +++ b/tests/test_zapout/zap_out_jup_v6.test.ts @@ -16,7 +16,7 @@ import { ZapProgram, zapOutJupV6, } from "../common"; -import { TOKEN_PROGRAM_ID } from "@coral-xyz/anchor/dist/cjs/utils/token"; +import { TOKEN_PROGRAM_ID, getAssociatedTokenAddressSync } from "@solana/spl-token"; import { expect } from "chai"; import ZapIDL from "../../target/idl/zap.json"; @@ -26,7 +26,6 @@ import { DAMM_V2_PROGRAM_ID, removeLiquidity, } from "../common/damm_v2"; -import { getAssociatedTokenAddressSync } from "@solana/spl-token"; import { JUP_V6_PROGRAM_ID } from "../common/jup"; describe("Zap out Jup V6", () => { diff --git a/zap-sdk/Cargo.toml b/zap-sdk/Cargo.toml index 606a237..46ea891 100644 --- a/zap-sdk/Cargo.toml +++ b/zap-sdk/Cargo.toml @@ -4,4 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -solana-pubkey = "2" +solana-pubkey = { workspace = true } + +[lints] +workspace = true