diff --git a/.github/workflows/e2e-attestor.yml b/.github/workflows/e2e-attestor.yml index 49f762c47..52933b71b 100644 --- a/.github/workflows/e2e-attestor.yml +++ b/.github/workflows/e2e-attestor.yml @@ -24,8 +24,8 @@ env: COSMOS_LC_ON_ETH: attestor SP1_VERSION: "6.1.0" IBC_ATTESTOR_IMAGE: ghcr.io/cosmos/ibc-attestor:v0.3.0 - SOLANA_VERSION: "2.3.13" - ANCHOR_VERSION: "0.32.1" + SOLANA_VERSION: "3.1.10" + ANCHOR_VERSION: "1.1.2" permissions: contents: read packages: read diff --git a/.github/workflows/e2e-full.yml b/.github/workflows/e2e-full.yml index d0d422aa6..61eae8215 100644 --- a/.github/workflows/e2e-full.yml +++ b/.github/workflows/e2e-full.yml @@ -41,8 +41,8 @@ env: ETH_LC_ON_COSMOS: full COSMOS_LC_ON_ETH: sp1 SP1_VERSION: "6.1.0" - SOLANA_VERSION: "2.3.13" - ANCHOR_VERSION: "0.32.1" + SOLANA_VERSION: "3.1.10" + ANCHOR_VERSION: "1.1.2" E2E_IBC_GO_DOCKER_TAG: ${{ inputs.ibc-go-docker-tag || 'v11.0.0' }} permissions: contents: read diff --git a/.github/workflows/e2e-lc-combinations.yml b/.github/workflows/e2e-lc-combinations.yml index d6a7998db..0974a49d9 100644 --- a/.github/workflows/e2e-lc-combinations.yml +++ b/.github/workflows/e2e-lc-combinations.yml @@ -33,8 +33,8 @@ env: E2E_PROOF_TYPE: groth16 SP1_VERSION: "6.1.0" IBC_ATTESTOR_IMAGE: ghcr.io/cosmos/ibc-attestor:v0.3.0 - SOLANA_VERSION: "2.3.13" - ANCHOR_VERSION: "0.32.1" + SOLANA_VERSION: "3.1.10" + ANCHOR_VERSION: "1.1.2" permissions: contents: read diff --git a/.github/workflows/e2e-minimal.yml b/.github/workflows/e2e-minimal.yml index ccacf469a..4e93b60fc 100644 --- a/.github/workflows/e2e-minimal.yml +++ b/.github/workflows/e2e-minimal.yml @@ -42,8 +42,8 @@ env: ETH_LC_ON_COSMOS: full COSMOS_LC_ON_ETH: sp1 SP1_VERSION: "6.1.0" - SOLANA_VERSION: "2.3.13" - ANCHOR_VERSION: "0.32.1" + SOLANA_VERSION: "3.1.10" + ANCHOR_VERSION: "1.1.2" E2E_IBC_GO_DOCKER_TAG: ${{ inputs.ibc-go-docker-tag || 'v11.0.0' }} permissions: contents: read diff --git a/.github/workflows/e2e-mock.yml b/.github/workflows/e2e-mock.yml index 136604e38..04e273e18 100644 --- a/.github/workflows/e2e-mock.yml +++ b/.github/workflows/e2e-mock.yml @@ -30,8 +30,8 @@ env: SP1_PROVER: mock E2E_PROOF_TYPE: groth16 SP1_VERSION: "6.1.0" - SOLANA_VERSION: "2.3.13" - ANCHOR_VERSION: "0.32.1" + SOLANA_VERSION: "3.1.10" + ANCHOR_VERSION: "1.1.2" E2E_IBC_GO_DOCKER_TAG: ${{ inputs.ibc-go-docker-tag || 'v11.0.0' }} permissions: diff --git a/.github/workflows/solana.yml b/.github/workflows/solana.yml index 3b9f0ee0a..ccdc892ab 100644 --- a/.github/workflows/solana.yml +++ b/.github/workflows/solana.yml @@ -20,8 +20,8 @@ concurrency: cancel-in-progress: true env: - SOLANA_VERSION: "2.3.13" - ANCHOR_VERSION: "0.32.1" + SOLANA_VERSION: "3.1.10" + ANCHOR_VERSION: "1.1.2" jobs: build-and-test: diff --git a/Cargo.lock b/Cargo.lock index 551aa6ab9..b7c95cede 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -76,26 +76,26 @@ dependencies = [ [[package]] name = "agave-feature-set" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a2c365c0245cbb8959de725fc2b44c754b673fdf34c9a7f9d4a25c35a7bf1" +checksum = "4a36f13a213d45f45f8ff87ea9fc6b0a792a7997c76b7c5d6d4a2ebe741d19d0" dependencies = [ "ahash", "solana-epoch-schedule", - "solana-hash", - "solana-pubkey", + "solana-hash 3.1.0", + "solana-pubkey 3.0.0", "solana-sha256-hasher", "solana-svm-feature-set", ] [[package]] name = "agave-reserved-account-keys" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8289c8a8a2ef5aa10ce49a070f360f4e035ee3410b8d8f3580fb39d8cf042581" +checksum = "6e4dbcc14290a572b94f8793561f74f87e8dd1efb6c28c883d79a84242ee9633" dependencies = [ "agave-feature-set", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", ] @@ -218,7 +218,7 @@ dependencies = [ "alloy-trie", "alloy-tx-macros 1.8.3", "auto_impl", - "borsh 1.6.1", + "borsh", "c-kzg", "derive_more 2.1.1", "either", @@ -245,7 +245,7 @@ dependencies = [ "alloy-trie", "alloy-tx-macros 2.0.4", "auto_impl", - "borsh 1.6.1", + "borsh", "c-kzg", "derive_more 2.1.1", "either", @@ -385,7 +385,7 @@ checksum = "9441120fa82df73e8959ae0e4ab8ade03de2aaae61be313fbf5746277847ce25" dependencies = [ "alloy-primitives 1.5.7", "alloy-rlp", - "borsh 1.6.1", + "borsh", "serde", ] @@ -397,7 +397,7 @@ checksum = "2919c5a56a1007492da313e7a3b6d45ef5edc5d33416fdec63c0d7a2702a0d20" dependencies = [ "alloy-primitives 1.5.7", "alloy-rlp", - "borsh 1.6.1", + "borsh", "k256", "serde", "thiserror 2.0.18", @@ -411,7 +411,7 @@ checksum = "ec6ae911a2fc304a7cb80a79fb7bed6d1474aed4e7c203df1f8ff538f64fc78d" dependencies = [ "alloy-primitives 1.5.7", "alloy-rlp", - "borsh 1.6.1", + "borsh", "once_cell", "serde", ] @@ -430,7 +430,7 @@ dependencies = [ "alloy-rlp", "alloy-serde 1.8.3", "auto_impl", - "borsh 1.6.1", + "borsh", "c-kzg", "derive_more 2.1.1", "either", @@ -453,7 +453,7 @@ dependencies = [ "alloy-rlp", "alloy-serde 2.0.4", "auto_impl", - "borsh 1.6.1", + "borsh", "c-kzg", "derive_more 2.1.1", "either", @@ -1478,7 +1478,7 @@ checksum = "e8597d36d546e1dab822345ad563243ec3920e199322cb554ce56c8ef1a1e2e7" dependencies = [ "alloy-json-rpc 1.8.3", "alloy-transport 1.8.3", - "itertools 0.13.0", + "itertools 0.14.0", "reqwest 0.13.3", "serde_json", "tower 0.5.3", @@ -1555,7 +1555,7 @@ dependencies = [ "rustls 0.23.40", "serde_json", "tokio", - "tokio-tungstenite 0.28.0", + "tokio-tungstenite", "tracing", "url", "ws_stream_wasm", @@ -1574,7 +1574,7 @@ dependencies = [ "rustls 0.23.40", "serde_json", "tokio", - "tokio-tungstenite 0.28.0", + "tokio-tungstenite", "tracing", "url", "ws_stream_wasm", @@ -1627,141 +1627,116 @@ source = "git+https://github.com/Snowfork/milagro_bls?rev=bc2b5b5e8d48b7e2e1bfaa [[package]] name = "anchor-attribute-access-control" -version = "0.32.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a883ca44ef14b2113615fc6d3a85fefc68b5002034e88db37f7f1f802f88aa9" +checksum = "9fc4b6b3c3f3e37a0b7d537e03a36bfb0415ee11b4443fa4190437cf26a874b6" dependencies = [ - "anchor-syn", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] name = "anchor-attribute-account" -version = "0.32.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c4d97763b29030412b4b80715076377edc9cc63bc3c9e667297778384b9fd2" +checksum = "48e8b1468add67e6a69732883e58d23a18be51538994adaae69c9b3fe967e6be" dependencies = [ "anchor-syn", - "bs58", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] name = "anchor-attribute-constant" -version = "0.32.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aae3328bbf9bbd517a51621b1ba6cbec06cbbc25e8cfc7403bddf69bcf088206" +checksum = "80e1e3ade39ba05716ddc3b792859d838cccf43f5f4913ae8a163de7a2ed7f7e" dependencies = [ "anchor-syn", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] name = "anchor-attribute-error" -version = "0.32.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2398a6d9e16df1ee9d7d37d970a8246756de898c8dd16ef6bdbe4da20cf39a" +checksum = "d4e026f0ff09d740fd1821bbf97d9ac649c123ff92f04b9197b002494af4acf1" dependencies = [ "anchor-syn", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] name = "anchor-attribute-event" -version = "0.32.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f12758f4ec2f0e98d4d56916c6fe95cb23d74b8723dd902c762c5ef46ebe7b65" +checksum = "7aafc8e26eb16a0c4129661f6857c42f301859fc2ee10f4e5287d571f0ea07f5" dependencies = [ "anchor-syn", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] name = "anchor-attribute-program" -version = "0.32.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c7193b5af2649813584aae6e3569c46fd59616a96af2083c556b13136c3830f" +checksum = "6844e657ffe049b073389efb843bb281d08579b8a47ef294365f729b35ed3dca" dependencies = [ "anchor-lang-idl", "anchor-syn", "anyhow", - "bs58", "heck 0.3.3", "proc-macro2", "quote", - "serde_json", - "syn 1.0.109", -] - -[[package]] -name = "anchor-client" -version = "0.32.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a03f35d3cb6b26508da163e4f9bc7adc2a5445a1cf38bb1da6e6e3919c7d53d" -dependencies = [ - "anchor-lang", - "anyhow", - "futures", - "regex", - "serde", - "solana-account-decoder", - "solana-pubsub-client", - "solana-rpc-client", - "solana-rpc-client-api", - "solana-sdk", - "thiserror 1.0.69", - "tokio", - "url", + "syn 2.0.117", ] [[package]] name = "anchor-derive-accounts" -version = "0.32.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d332d1a13c0fca1a446de140b656e66110a5e8406977dcb6a41e5d6f323760b0" +checksum = "2c87a6769d7cf2deed8d3351d6d1d8aa05a3a07751f1418ab6b34aaa307bd34b" dependencies = [ "anchor-syn", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] name = "anchor-derive-serde" -version = "0.32.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8656e4af182edaeae665fa2d2d7ee81148518b5bd0be9a67f2a381bb17da7d46" +checksum = "1f014d99530ae48a81f710f150688c5c542fdeee3af8998010e147a64d7a697c" dependencies = [ "anchor-syn", - "borsh-derive-internal", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] name = "anchor-derive-space" -version = "0.32.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcff2a083560cd79817db07d89a4de39a2c4b2eaa00c1742cf0df49b25ff2bed" +checksum = "33ba30c2d844e7440c491ad5f3e25f93115c6c9319df480eda460ce96030832b" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] name = "anchor-lang" -version = "0.32.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e67d85d5376578f12d840c29ff323190f6eecd65b00a0b5f2b2f232751d049cc" +checksum = "aa6708f356398752b8d7a08fb701c9c17395e103786fb1b33615a7267a6f4774" dependencies = [ "anchor-attribute-access-control", "anchor-attribute-account", @@ -1772,39 +1747,55 @@ dependencies = [ "anchor-derive-accounts", "anchor-derive-serde", "anchor-derive-space", + "anchor-lang-error", "anchor-lang-idl", "base64 0.21.7", "bincode", - "borsh 0.10.4", + "borsh", "bytemuck", + "const-crypto", "solana-account-info", "solana-clock", "solana-cpi", - "solana-define-syscall", + "solana-define-syscall 3.0.0", "solana-feature-gate-interface", "solana-instruction", "solana-instructions-sysvar", "solana-invoke", - "solana-loader-v3-interface 3.0.0", + "solana-loader-v3-interface", "solana-msg", "solana-program-entrypoint", "solana-program-error", "solana-program-memory", "solana-program-option", "solana-program-pack", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", - "solana-system-interface", + "solana-stake-interface", + "solana-system-interface 2.0.0", "solana-sysvar", "solana-sysvar-id", "thiserror 1.0.69", ] +[[package]] +name = "anchor-lang-error" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20760a8d5b7ddd1aea7a347c43c702ea4e962ccb7b9908c952e4b372b2d9e1f7" +dependencies = [ + "anchor-attribute-error", + "borsh", + "solana-msg", + "solana-program-error", + "solana-pubkey 3.0.0", +] + [[package]] name = "anchor-lang-idl" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e8599d21995f68e296265aa5ab0c3cef582fd58afec014d01bd0bce18a4418" +checksum = "47914b4290ae2bdf4ec203aa821e6eba86d7c78ef497918938038dcc6919f953" dependencies = [ "anchor-lang-idl-spec", "anyhow", @@ -1827,9 +1818,9 @@ dependencies = [ [[package]] name = "anchor-syn" -version = "0.32.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b93b69aa7d099b59378433f6d7e20e1008fc10c69e48b220270e5b3f2ec4c8be" +checksum = "f8f6c61ef5b47db60700087bb6e419284b3461ba8f59040e1f6827aa9e9a5bc4" dependencies = [ "anyhow", "bs58", @@ -1838,9 +1829,8 @@ dependencies = [ "proc-macro2", "quote", "serde", - "serde_json", - "sha2 0.10.9", - "syn 1.0.109", + "sha2 0.11.0", + "syn 2.0.117", "thiserror 1.0.69", ] @@ -1918,6 +1908,49 @@ version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" +[[package]] +name = "anza-quinn" +version = "0.11.9-rustsec20260037" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91bfa08f6e7e4187354ff4f793b81cc08218a6a95cc48f5de7616d44452bf6e0" +dependencies = [ + "anza-quinn-proto", + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-udp", + "rustc-hash 2.1.2", + "rustls 0.23.40", + "socket2 0.6.3", + "thiserror 2.0.18", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "anza-quinn-proto" +version = "0.11.13-rustsec20260037" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d00a4d8cf8d72ee56e0ee20d3b4eef4785ce1b05299c4982c6de7f251c458efe" +dependencies = [ + "bytes", + "fastbloom", + "getrandom 0.3.4", + "lru-slab", + "rand 0.9.4", + "ring", + "rustc-hash 2.1.2", + "rustls 0.23.40", + "rustls-pki-types", + "rustls-platform-verifier", + "slab", + "thiserror 2.0.18", + "tinyvec", + "tracing", + "web-time", +] + [[package]] name = "arbitrary" version = "1.4.2" @@ -1928,25 +1961,23 @@ dependencies = [ ] [[package]] -name = "ark-bls12-381" -version = "0.4.0" +name = "arc-swap" +version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" +checksum = "c049c0be4daef0b145cb3555416b3b8ef5b7888a38aea1a3a155801fe7b0810b" dependencies = [ - "ark-ec", - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", + "rustversion", ] [[package]] -name = "ark-bn254" +name = "ark-bls12-381" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" dependencies = [ "ark-ec", "ark-ff 0.4.2", + "ark-serialize 0.4.2", "ark-std 0.4.0", ] @@ -2196,6 +2227,12 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +[[package]] +name = "ascii" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" + [[package]] name = "asn1-rs" version = "0.5.2" @@ -2235,17 +2272,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "async-channel" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" -dependencies = [ - "concurrent-queue", - "event-listener 2.5.3", - "futures-core", -] - [[package]] name = "async-compression" version = "0.4.42" @@ -2264,7 +2290,7 @@ version = "3.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" dependencies = [ - "event-listener 5.4.1", + "event-listener", "event-listener-strategy", "pin-project-lite", ] @@ -2339,17 +2365,6 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - [[package]] name = "auto_impl" version = "1.3.0" @@ -2893,7 +2908,7 @@ dependencies = [ "object", "rustc-demangle", "serde", - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -2902,12 +2917,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" -[[package]] -name = "base64" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" - [[package]] name = "base64" version = "0.13.1" @@ -2972,7 +2981,7 @@ dependencies = [ "bitflags 2.11.1", "cexpr", "clang-sys", - "itertools 0.10.5", + "itertools 0.13.0", "log", "prettyplease", "proc-macro2", @@ -3145,43 +3154,19 @@ checksum = "3e31ea183f6ee62ac8b8a8cf7feddd766317adfb13ff469de57ce033efd6a790" [[package]] name = "borsh" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "115e54d64eb62cdebad391c19efc9dce4981c690c85a33a12199d99bb9546fee" -dependencies = [ - "borsh-derive 0.10.4", - "hashbrown 0.13.2", -] - -[[package]] -name = "borsh" -version = "1.6.1" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfd1e3f8955a5d7de9fab72fc8373fade9fb8a703968cb200ae3dc6cf08e185a" +checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" dependencies = [ - "borsh-derive 1.6.1", - "bytes", + "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.6.1" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfcfdc083699101d5a7965e49925975f2f55060f94f9a05e7187be95d530ca59" +checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3" dependencies = [ "once_cell", "proc-macro-crate 3.5.0", @@ -3190,37 +3175,15 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "borsh-derive-internal" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65d6ba50644c98714aa2a70d13d7df3cd75cd2b523a2b452bf010443800976b3" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "borsh-schema-derive-internal" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276691d96f063427be83e6692b86148e488ebba9f48f77788724ca027ba3b6d4" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "brine-ed25519" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffb604b3e64e069843eb815cd108f3dfc8bfcf9c4434a3d7d832332092cd1d63" dependencies = [ - "curve25519-dalek 4.1.3", + "curve25519-dalek", "sha2 0.10.9", - "solana-curve25519", + "solana-curve25519 2.3.13", ] [[package]] @@ -3378,12 +3341,12 @@ dependencies = [ [[package]] name = "cargo_toml" -version = "0.19.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a98356df42a2eb1bd8f1793ae4ee4de48e384dd974ce5eac8eee802edb7492be" +checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" dependencies = [ "serde", - "toml 0.8.23", + "toml 0.9.12+spec-1.1.0", ] [[package]] @@ -3464,7 +3427,7 @@ dependencies = [ "iana-time-zone", "num-traits", "serde", - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -3549,6 +3512,19 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" +[[package]] +name = "combine" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" +dependencies = [ + "ascii", + "byteorder", + "either", + "memchr", + "unreachable", +] + [[package]] name = "combine" version = "4.6.7" @@ -3600,23 +3576,25 @@ dependencies = [ ] [[package]] -name = "console_error_panic_hook" -version = "0.1.7" +name = "console" +version = "0.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" +checksum = "4fe5f465a4f6fee88fad41b85d990f84c835335e85b5d9e6e63e0d06d28cba7c" dependencies = [ - "cfg-if", - "wasm-bindgen", + "encode_unicode", + "libc", + "unicode-width", + "windows-sys 0.61.2", ] [[package]] -name = "console_log" -version = "0.2.2" +name = "const-crypto" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89f72f65e8501878b8a004d5a1afb780987e2ce2b4532c562e367a72c57499f" +checksum = "1c06f1eb05f06cf2e380fdded278fbf056a38974299d77960555a311dcf91a52" dependencies = [ - "log", - "web-sys", + "keccak-const", + "sha2-const-stable", ] [[package]] @@ -3744,7 +3722,7 @@ dependencies = [ "ark-ff 0.4.2", "ark-serialize 0.4.2", "cosmwasm-core", - "curve25519-dalek 4.1.3", + "curve25519-dalek", "digest 0.10.7", "ecdsa", "ed25519-zebra", @@ -3976,16 +3954,6 @@ dependencies = [ "hybrid-array", ] -[[package]] -name = "crypto-mac" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" -dependencies = [ - "generic-array 0.14.9", - "subtle", -] - [[package]] name = "ctr" version = "0.9.2" @@ -4015,19 +3983,6 @@ dependencies = [ "cmov", ] -[[package]] -name = "curve25519-dalek" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" -dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.5.1", - "subtle", - "zeroize", -] - [[package]] name = "curve25519-dalek" version = "4.1.3" @@ -4655,7 +4610,7 @@ dependencies = [ "byteorder", "dynasm", "fnv", - "memmap2 0.9.10", + "memmap2", ] [[package]] @@ -4669,19 +4624,10 @@ dependencies = [ "elliptic-curve", "rfc6979", "serdect", - "signature 2.2.0", + "signature", "spki", ] -[[package]] -name = "ed25519" -version = "1.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" -dependencies = [ - "signature 1.6.4", -] - [[package]] name = "ed25519" version = "2.2.3" @@ -4689,7 +4635,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" dependencies = [ "pkcs8", - "signature 2.2.0", + "signature", ] [[package]] @@ -4709,23 +4655,24 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "1.0.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" dependencies = [ - "curve25519-dalek 3.2.0", - "ed25519 1.5.3", - "rand 0.7.3", + "curve25519-dalek", + "ed25519", + "rand_core 0.6.4", "serde", - "sha2 0.9.9", + "sha2 0.10.9", + "subtle", "zeroize", ] [[package]] name = "ed25519-dalek-bip32" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d2be62a4061b872c8c0873ee4fc6f101ce7b889d039f019c5fa2af471a59908" +checksum = "6b49a684b133c4980d7ee783936af771516011c8cd15f429dbda77245e282f03" dependencies = [ "derivation-path", "ed25519-dalek", @@ -4739,8 +4686,8 @@ version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" dependencies = [ - "curve25519-dalek 4.1.3", - "ed25519 2.2.3", + "curve25519-dalek", + "ed25519", "hashbrown 0.14.5", "hex", "rand_core 0.6.4", @@ -4853,19 +4800,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "env_logger" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" -dependencies = [ - "atty", - "humantime", - "log", - "regex", - "termcolor", -] - [[package]] name = "equivalent" version = "1.0.2" @@ -5102,12 +5036,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - [[package]] name = "event-listener" version = "5.4.1" @@ -5125,7 +5053,7 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" dependencies = [ - "event-listener 5.4.1", + "event-listener", "pin-project-lite", ] @@ -5249,27 +5177,27 @@ checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" [[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", ] [[package]] name = "five8_const" -version = "0.1.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26dec3da8bc3ef08f2c04f61eab298c3ab334523e55f076354d6d6f613799a7b" +checksum = "1a0f1728185f277989ca573a402716ae0beaaea3f76a8ff87ef9dd8fb19436c5" dependencies = [ "five8_core", ] [[package]] name = "five8_core" -version = "0.1.2" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2551bf44bc5f776c15044b9b94153a00198be06743e262afaaa61f11ac7523a5" +checksum = "059c31d7d36c43fe39d89e55711858b4da8be7eb6dabac23c7289b1a19489406" [[package]] name = "fixed-hash" @@ -5326,21 +5254,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - [[package]] name = "form_urlencoded" version = "1.2.2" @@ -5505,19 +5418,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", - "wasm-bindgen", -] - [[package]] name = "getrandom" version = "0.2.17" @@ -5527,7 +5427,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] @@ -5709,6 +5609,15 @@ dependencies = [ "crunchy", ] +[[package]] +name = "hash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" +dependencies = [ + "byteorder", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -5811,15 +5720,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - [[package]] name = "hermit-abi" version = "0.5.2" @@ -5856,16 +5756,6 @@ dependencies = [ "hmac 0.12.1", ] -[[package]] -name = "hmac" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" -dependencies = [ - "crypto-mac", - "digest 0.9.0", -] - [[package]] name = "hmac" version = "0.12.1" @@ -5884,17 +5774,6 @@ dependencies = [ "digest 0.11.2", ] -[[package]] -name = "hmac-drbg" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" -dependencies = [ - "digest 0.9.0", - "generic-array 0.14.9", - "hmac 0.8.1", -] - [[package]] name = "http" version = "0.2.12" @@ -5962,12 +5841,6 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" -[[package]] -name = "humantime" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" - [[package]] name = "hybrid-array" version = "0.4.11" @@ -6103,7 +5976,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.62.2", + "windows-core 0.61.2", ] [[package]] @@ -6327,7 +6200,7 @@ dependencies = [ name = "ibc-eureka-constrained-types" version = "0.1.0" dependencies = [ - "borsh 0.10.4", + "borsh", ] [[package]] @@ -6764,13 +6637,26 @@ version = "0.17.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" dependencies = [ - "console", + "console 0.15.11", "number_prefix", "portable-atomic", "unicode-width", "web-time", ] +[[package]] +name = "indicatif" +version = "0.18.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9433806cd6b4ec1aba79c021c7e4c58fb4c3b9977c085062e611ac929998fb0c" +dependencies = [ + "console 0.16.4", + "portable-atomic", + "unicode-width", + "unit-prefix", + "web-time", +] + [[package]] name = "informalsystems-pbjson" version = "0.7.0" @@ -6886,8 +6772,8 @@ checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" dependencies = [ "cesu8", "cfg-if", - "combine", - "jni-sys 0.3.1", + "combine 4.6.7", + "jni-sys", "log", "thiserror 1.0.69", "walkdir", @@ -6896,31 +6782,9 @@ dependencies = [ [[package]] name = "jni-sys" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" -dependencies = [ - "jni-sys 0.4.1", -] - -[[package]] -name = "jni-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" -dependencies = [ - "jni-sys-macros", -] - -[[package]] -name = "jni-sys-macros" -version = "0.4.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" -dependencies = [ - "quote", - "syn 2.0.117", -] +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" @@ -6934,12 +6798,10 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.97" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1840c94c045fbcf8ba2812c95db44499f7c64910a912551aaaa541decebcacf" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ - "cfg-if", - "futures-util", "once_cell", "wasm-bindgen", ] @@ -6985,17 +6847,7 @@ dependencies = [ "once_cell", "serdect", "sha2 0.10.9", - "signature 2.2.0", -] - -[[package]] -name = "kaigan" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ba15de5aeb137f0f65aa3bf82187647f1285abfe5b20c80c2c37f7007ad519a" -dependencies = [ - "borsh 0.10.4", - "serde", + "signature", ] [[package]] @@ -7017,6 +6869,12 @@ dependencies = [ "sha3-asm", ] +[[package]] +name = "keccak-const" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d8d8ce877200136358e0bbff3a77965875db3af755a11e1fa6b1b3e2df13ea" + [[package]] name = "konst" version = "0.2.20" @@ -7060,7 +6918,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" dependencies = [ "cfg-if", - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -7071,61 +6929,14 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libredox" -version = "0.1.16" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c" +checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" dependencies = [ + "bitflags 2.11.1", "libc", ] -[[package]] -name = "libsecp256k1" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9d220bc1feda2ac231cb78c3d26f27676b8cf82c96971f7aeef3d0cf2797c73" -dependencies = [ - "arrayref", - "base64 0.12.3", - "digest 0.9.0", - "hmac-drbg", - "libsecp256k1-core", - "libsecp256k1-gen-ecmult", - "libsecp256k1-gen-genmult", - "rand 0.7.3", - "serde", - "sha2 0.9.9", - "typenum", -] - -[[package]] -name = "libsecp256k1-core" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0f6ab710cec28cef759c5f18671a27dae2a5f952cdaaee1d8e2908cb2478a80" -dependencies = [ - "crunchy", - "digest 0.9.0", - "subtle", -] - -[[package]] -name = "libsecp256k1-gen-ecmult" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3" -dependencies = [ - "libsecp256k1-core", -] - -[[package]] -name = "libsecp256k1-gen-genmult" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" -dependencies = [ - "libsecp256k1-core", -] - [[package]] name = "linux-raw-sys" version = "0.12.1" @@ -7243,15 +7054,6 @@ dependencies = [ "rustix", ] -[[package]] -name = "memmap2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" -dependencies = [ - "libc", -] - [[package]] name = "memmap2" version = "0.9.10" @@ -7357,7 +7159,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" dependencies = [ "libc", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", "windows-sys 0.61.2", ] @@ -7372,7 +7174,7 @@ dependencies = [ "crossbeam-epoch", "crossbeam-utils", "equivalent", - "event-listener 5.4.1", + "event-listener", "futures-util", "parking_lot", "portable-atomic", @@ -7638,7 +7440,7 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" dependencies = [ - "hermit-abi 0.5.2", + "hermit-abi", "libc", ] @@ -7756,32 +7558,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" -[[package]] -name = "openssl" -version = "0.10.78" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f38c4372413cdaaf3cc79dd92d29d7d9f5ab09b51b10dded508fb90bb70b9222" -dependencies = [ - "bitflags 2.11.1", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "openssl-probe" version = "0.1.6" @@ -7794,18 +7570,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" -[[package]] -name = "openssl-sys" -version = "0.9.114" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13ce1245cd07fcc4cfdb438f7507b0c7e4f3849a69fd84d52374c66d83741bb6" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - [[package]] name = "opentelemetry" version = "0.23.0" @@ -8507,7 +8271,7 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -8546,6 +8310,12 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "pastey" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4" + [[package]] name = "pathdiff" version = "0.2.3" @@ -8793,15 +8563,6 @@ dependencies = [ "uint 0.10.0", ] -[[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 = "1.3.1" @@ -8963,12 +8724,11 @@ name = "proof-api-cosmos-to-solana" version = "0.1.0" dependencies = [ "alloy 2.0.4", - "anchor-client", "anchor-lang", "anyhow", "base64 0.22.1", "bincode", - "borsh 0.10.4", + "borsh", "ed25519-consensus", "hex", "ibc-client-tendermint", @@ -8983,12 +8743,16 @@ dependencies = [ "serde", "serde_json", "solana-client", + "solana-commitment-config", + "solana-ed25519-program", "solana-ibc-borsh-header", "solana-ibc-constants", "solana-ibc-gmp-types", "solana-ibc-proto", "solana-ibc-sdk", "solana-sdk", + "solana-sdk-ids", + "solana-system-interface 2.0.0", "solana-transaction-status", "spl-associated-token-account", "spl-token", @@ -9070,7 +8834,7 @@ dependencies = [ "anchor-lang", "anyhow", "bincode", - "borsh 1.6.1", + "borsh", "ibc-eureka-solidity-types 0.1.0", "ibc-eureka-utils 0.1.0", "ibc-proto 0.52.0", @@ -9081,11 +8845,14 @@ dependencies = [ "serde_json", "sha2 0.10.9", "solana-client", + "solana-commitment-config", "solana-ibc-constants", "solana-ibc-gmp-types", "solana-ibc-proto", "solana-ibc-sdk", "solana-sdk", + "solana-sdk-ids", + "solana-system-interface 2.0.0", "solana-transaction-status", "spl-associated-token-account", "spl-token", @@ -9104,7 +8871,7 @@ dependencies = [ "async-trait", "base64 0.22.1", "bincode", - "borsh 1.6.1", + "borsh", "ethereum-apis 0.1.0", "ethereum-light-client 0.1.0", "ethereum-types 0.1.0", @@ -9123,7 +8890,10 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.9", + "solana-address-lookup-table-interface", "solana-client", + "solana-commitment-config", + "solana-compute-budget-interface", "solana-ibc-constants", "solana-ibc-gmp-types", "solana-ibc-proto", @@ -9147,12 +8917,11 @@ dependencies = [ name = "proof-api-solana-to-cosmos" version = "0.1.0" dependencies = [ - "anchor-client", "anchor-lang", "anyhow", "async-trait", "base64 0.22.1", - "borsh 1.6.1", + "borsh", "hex", "ibc-eureka-utils 0.1.0", "ibc-proto 0.52.0", @@ -9181,6 +8950,7 @@ dependencies = [ "proof-api-lib", "serde", "serde_json", + "solana-commitment-config", "solana-sdk", "tokio", "tonic 0.13.1", @@ -9308,7 +9078,7 @@ dependencies = [ "libc", "once_cell", "raw-cpuid", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", "web-sys", "winapi", ] @@ -9347,7 +9117,6 @@ checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" dependencies = [ "aws-lc-rs", "bytes", - "fastbloom", "getrandom 0.3.4", "lru-slab", "rand 0.9.4", @@ -9355,7 +9124,6 @@ dependencies = [ "rustc-hash 2.1.2", "rustls 0.23.40", "rustls-pki-types", - "rustls-platform-verifier", "slab", "thiserror 2.0.18", "tinyvec", @@ -9374,7 +9142,7 @@ dependencies = [ "once_cell", "socket2 0.6.3", "tracing", - "windows-sys 0.60.2", + "windows-sys 0.59.0", ] [[package]] @@ -9404,19 +9172,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.6" @@ -9440,16 +9195,6 @@ dependencies = [ "serde", ] -[[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" @@ -9470,15 +9215,6 @@ dependencies = [ "rand_core 0.9.5", ] -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", -] - [[package]] name = "rand_core" version = "0.6.4" @@ -9498,15 +9234,6 @@ dependencies = [ "serde", ] -[[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" @@ -10239,9 +9966,9 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.29" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" dependencies = [ "windows-sys 0.61.2", ] @@ -10550,6 +10277,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" +dependencies = [ + "serde_core", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -10681,6 +10417,12 @@ dependencies = [ "digest 0.11.2", ] +[[package]] +name = "sha2-const-stable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f179d4e11094a893b82fff208f74d448a7512f99f5a0acbd5c679b705f83ed9" + [[package]] name = "sha3" version = "0.10.9" @@ -10716,16 +10458,6 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" -[[package]] -name = "signal-hook" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" -dependencies = [ - "libc", - "signal-hook-registry", -] - [[package]] name = "signal-hook-registry" version = "1.4.8" @@ -10736,12 +10468,6 @@ dependencies = [ "libc", ] -[[package]] -name = "signature" -version = "1.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" - [[package]] name = "signature" version = "2.2.0" @@ -11266,9 +10992,9 @@ dependencies = [ [[package]] name = "solana-account" -version = "2.2.1" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f949fe4edaeaea78c844023bfc1c898e0b1f5a100f8a8d2d0f85d0a7b090258" +checksum = "efc0ed36decb689413b9da5d57f2be49eea5bebb3cf7897015167b0c4336e731" dependencies = [ "bincode", "serde", @@ -11276,17 +11002,17 @@ dependencies = [ "serde_derive", "solana-account-info", "solana-clock", - "solana-instruction", - "solana-pubkey", + "solana-instruction-error", + "solana-pubkey 4.2.0", "solana-sdk-ids", "solana-sysvar", ] [[package]] name = "solana-account-decoder" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba71c97fa4d85ce4a1e0e79044ad0406c419382be598c800202903a7688ce71a" +checksum = "57fcc1c9e2a2d82c9aa09e0d34940b6c5a43c2fd5eea38c7caed0f6b177e27a8" dependencies = [ "Inflector", "base64 0.22.1", @@ -11294,21 +11020,20 @@ dependencies = [ "bs58", "bv", "serde", - "serde_derive", "serde_json", "solana-account", "solana-account-decoder-client-types", "solana-address-lookup-table-interface", "solana-clock", - "solana-config-program-client", + "solana-config-interface", "solana-epoch-schedule", "solana-fee-calculator", "solana-instruction", - "solana-loader-v3-interface 5.0.0", + "solana-loader-v3-interface", "solana-nonce", "solana-program-option", "solana-program-pack", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-rent", "solana-sdk-ids", "solana-slot-hashes", @@ -11317,9 +11042,9 @@ dependencies = [ "solana-sysvar", "solana-vote-interface", "spl-generic-token", - "spl-token", - "spl-token-2022", + "spl-token-2022-interface", "spl-token-group-interface", + "spl-token-interface", "spl-token-metadata-interface", "thiserror 2.0.18", "zstd", @@ -11327,38 +11052,71 @@ dependencies = [ [[package]] name = "solana-account-decoder-client-types" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5519e8343325b707f17fbed54fcefb325131b692506d0af9e08a539d15e4f8cf" +checksum = "43e62ffb8742a71d3e8b5263ba892cdc65b24b063fa5b5f414205350b031a730" dependencies = [ "base64 0.22.1", "bs58", "serde", - "serde_derive", "serde_json", "solana-account", - "solana-pubkey", + "solana-pubkey 3.0.0", "zstd", ] [[package]] name = "solana-account-info" -version = "2.3.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8f5152a288ef1912300fc6efa6c2d1f9bb55d9398eb6c72326360b8063987da" +checksum = "fc3397241392f5756925029acaa8515dc70fcbe3d8059d4885d7d6533baf64fd" dependencies = [ "bincode", - "serde", + "serde_core", + "solana-address 2.6.1", "solana-program-error", "solana-program-memory", - "solana-pubkey", ] [[package]] -name = "solana-address-lookup-table-interface" -version = "2.2.2" +name = "solana-address" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2ecac8e1b7f74c2baa9e774c42817e3e75b20787134b76cc4d45e8a604488f5" +dependencies = [ + "solana-address 2.6.1", +] + +[[package]] +name = "solana-address" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1673f67efe870b64a65cb39e6194be5b26527691ce5922909939961a6e6b395" +checksum = "39c93e262f671bf402e1040e4a7e40b05d81da5956c7681948c975a0997517bb" +dependencies = [ + "borsh", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8", + "five8_const", + "rand 0.9.4", + "serde", + "serde_derive", + "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-address-lookup-table-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115b4f773acc4f3f3cb986b0d335e9845c0368c82b0940410935bc11ae065578" dependencies = [ "bincode", "bytemuck", @@ -11366,106 +11124,80 @@ dependencies = [ "serde_derive", "solana-clock", "solana-instruction", - "solana-pubkey", + "solana-instruction-error", + "solana-pubkey 4.2.0", "solana-sdk-ids", "solana-slot-hashes", ] [[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" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75db7f2bbac3e62cfd139065d15bcda9e2428883ba61fc8d27ccb251081e7567" +checksum = "30c80fb6d791b3925d5ec4bf23a7c169ef5090c013059ec3ed7d0b2c04efa085" dependencies = [ "num-bigint 0.4.6", "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", + "solana-define-syscall 3.0.0", ] [[package]] name = "solana-blake3-hasher" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a0801e25a1b31a14494fc80882a036be0ffd290efc4c2d640bfcca120a4672" +checksum = "7116e1d942a2432ca3f514625104757ab8a56233787e95144c93950029e31176" dependencies = [ "blake3", - "solana-define-syscall", - "solana-hash", - "solana-sanitize", -] - -[[package]] -name = "solana-bn254" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4420f125118732833f36facf96a27e7b78314b2d642ba07fa9ffdacd8d79e243" -dependencies = [ - "ark-bn254", - "ark-ec", - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "bytemuck", - "solana-define-syscall", - "thiserror 2.0.18", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", ] [[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.6.1", + "borsh", ] [[package]] name = "solana-client" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc55d1f263e0be4127daf33378d313ea0977f9ffd3fba50fa544ca26722fc695" +checksum = "56cdbbecbda755254a0c11010472a53036ff6fccdf5d7e908b92c95f04ff2497" dependencies = [ + "anza-quinn", "async-trait", "bincode", "dashmap 5.5.3", "futures", "futures-util", "indexmap 2.14.0", - "indicatif", + "indicatif 0.18.6", "log", - "quinn", "rayon", "solana-account", "solana-client-traits", "solana-commitment-config", "solana-connection-cache", "solana-epoch-info", - "solana-hash", + "solana-hash 3.1.0", "solana-instruction", "solana-keypair", "solana-measure", "solana-message", - "solana-pubkey", + "solana-net-utils", + "solana-pubkey 3.0.0", "solana-pubsub-client", "solana-quic-client", "solana-quic-definitions", @@ -11475,45 +11207,47 @@ dependencies = [ "solana-signature", "solana-signer", "solana-streamer", - "solana-thin-client", "solana-time-utils", "solana-tpu-client", "solana-transaction", "solana-transaction-error", + "solana-transaction-status-client-types", "solana-udp-client", "thiserror 2.0.18", "tokio", + "tokio-util", ] [[package]] name = "solana-client-traits" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83f0071874e629f29e0eb3dab8a863e98502ac7aba55b7e0df1803fc5cac72a7" +checksum = "08618ed587e128105510c54ae3e456b9a06d674d8640db75afe66dad65cb4e02" dependencies = [ "solana-account", "solana-commitment-config", "solana-epoch-info", - "solana-hash", + "solana-hash 3.1.0", "solana-instruction", "solana-keypair", "solana-message", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-signature", "solana-signer", - "solana-system-interface", + "solana-system-interface 2.0.0", "solana-transaction", "solana-transaction-error", ] [[package]] name = "solana-clock" -version = "2.2.3" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8584296123df8fe229b95e2ebfd37ae637fe9db9b7d4dd677ac5a78e80dbfce" +checksum = "f0acdace90d96e2c9e70d681465b4fe888b6bcf27c354ae9774e9f8a3b72923d" dependencies = [ "serde", "serde_derive", + "solana-get-sysvar", "solana-sdk-ids", "solana-sdk-macro", "solana-sysvar-id", @@ -11521,20 +11255,18 @@ dependencies = [ [[package]] name = "solana-cluster-type" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ace9fea2daa28354d107ea879cff107181d85cd4e0f78a2bedb10e1a428c97e" +checksum = "3a494cf8eda7d98d9f0144b288bb409c88308d2e86f15cc1045aa77b83304718" dependencies = [ - "serde", - "serde_derive", - "solana-hash", + "solana-hash 4.5.0", ] [[package]] name = "solana-commitment-config" -version = "2.2.1" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac49c4dde3edfa832de1697e9bcdb7c3b3f7cb7a1981b7c62526c8bb6700fb73" +checksum = "1517aa49dcfa9cb793ef90e7aac81346d62ca4a546bb1a754030a033e3972e1c" dependencies = [ "serde", "serde_derive", @@ -11542,35 +11274,36 @@ dependencies = [ [[package]] name = "solana-compute-budget-interface" -version = "2.2.2" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8432d2c4c22d0499aa06d62e4f7e333f81777b3d7c96050ae9e5cb71a8c3aee4" +checksum = "8292c436b269ad23cecc8b24f7da3ab07ca111661e25e00ce0e1d22771951ab9" dependencies = [ - "borsh 1.6.1", - "serde", - "serde_derive", "solana-instruction", "solana-sdk-ids", ] [[package]] -name = "solana-config-program-client" -version = "0.0.2" +name = "solana-config-interface" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53aceac36f105fd4922e29b4f0c1f785b69d7b3e7e387e384b8985c8e0c3595e" +checksum = "63e401ae56aed512821cc7a0adaa412ff97fecd2dff4602be7b1330d2daec0c4" dependencies = [ "bincode", - "borsh 0.10.4", - "kaigan", "serde", - "solana-program", + "serde_derive", + "solana-account", + "solana-instruction", + "solana-pubkey 3.0.0", + "solana-sdk-ids", + "solana-short-vec", + "solana-system-interface 2.0.0", ] [[package]] name = "solana-connection-cache" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45c1cff5ebb26aefff52f1a8e476de70ec1683f8cc6e4a8c86b615842d91f436" +checksum = "efbacf3640794251ba0efa0bc13fbbaeac90f0e02c15dd723da1b7fec058f3b2" dependencies = [ "async-trait", "bincode", @@ -11591,15 +11324,15 @@ 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", ] @@ -11611,19 +11344,24 @@ checksum = "eae4261b9a8613d10e77ac831a8fa60b6fa52b9b103df46d641deff9f9812a23" dependencies = [ "bytemuck", "bytemuck_derive", - "curve25519-dalek 4.1.3", - "solana-define-syscall", + "curve25519-dalek", + "solana-define-syscall 2.3.0", "subtle", "thiserror 2.0.18", ] [[package]] -name = "solana-decode-error" -version = "2.3.0" +name = "solana-curve25519" +version = "3.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c781686a18db2f942e70913f7ca15dc120ec38dcab42ff7557db2c70c625a35" +checksum = "5aff7432cdf2ec6a44ac06b4d64d2ee006f6c0066d6456e032a7fe25be40cd5c" dependencies = [ - "num-traits", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "solana-define-syscall 3.0.0", + "subtle", + "thiserror 2.0.18", ] [[package]] @@ -11632,11 +11370,29 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2ae3e2abcf541c8122eafe9a625d4d194b4023c20adde1e251f94e056bb1aee2" +[[package]] +name = "solana-define-syscall" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9697086a4e102d28a156b8d6b521730335d6951bd39a5e766512bbe09007cee" + +[[package]] +name = "solana-define-syscall" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57e5b1c0bc1d4a4d10c88a4100499d954c09d3fecfae4912c1a074dff68b1738" + +[[package]] +name = "solana-define-syscall" +version = "5.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", @@ -11645,24 +11401,21 @@ dependencies = [ [[package]] name = "solana-ed25519-program" -version = "2.2.3" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1feafa1691ea3ae588f99056f4bdd1293212c7ece28243d7da257c443e84753" +checksum = "e1419197f1c06abf760043f6d64ba9d79a03ad5a43f18c7586471937122094da" dependencies = [ "bytemuck", "bytemuck_derive", - "ed25519-dalek", - "solana-feature-set", "solana-instruction", - "solana-precompile-error", "solana-sdk-ids", ] [[package]] name = "solana-epoch-info" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ef6f0b449290b0b9f32973eefd95af35b01c5c0c34c569f936c34c5b20d77b" +checksum = "e093c84f6ece620a6b10cd036574b0cd51944231ab32d81f80f76d54aba833e6" dependencies = [ "serde", "serde_derive", @@ -11670,13 +11423,14 @@ dependencies = [ [[package]] name = "solana-epoch-rewards" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b575d3dd323b9ea10bb6fe89bf6bf93e249b215ba8ed7f68f1a3633f384db7" +checksum = "daf7eb4986b0b1d6f562b21f75a836f1a6df6e00c275efcef50aab5c144dc59e" dependencies = [ "serde", "serde_derive", - "solana-hash", + "solana-get-sysvar", + "solana-hash 4.5.0", "solana-sdk-ids", "solana-sdk-macro", "solana-sysvar-id", @@ -11684,87 +11438,79 @@ dependencies = [ [[package]] name = "solana-epoch-rewards-hasher" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c5fd2662ae7574810904585fd443545ed2b568dbd304b25a31e79ccc76e81b" +checksum = "1ee8beac9bff4db9225e57d532d169b0be5e447f1e6601a2f50f27a01bf5518f" dependencies = [ "siphasher 0.3.11", - "solana-hash", - "solana-pubkey", + "solana-address 2.6.1", + "solana-hash 4.5.0", ] [[package]] name = "solana-epoch-schedule" -version = "2.2.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fce071fbddecc55d727b1d7ed16a629afe4f6e4c217bc8d00af3b785f6f67ed" +checksum = "8116e6ffa6002237d5ab5edcbda17f9ba66b6742c45a89c9fb40a94dbacd4c1d" dependencies = [ "serde", "serde_derive", + "solana-get-sysvar", + "solana-program-error", "solana-sdk-ids", "solana-sdk-macro", "solana-sysvar-id", ] +[[package]] +name = "solana-epoch-stake" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "027e6d0b9e7daac5b2ac7c3f9ca1b727861121d9ef05084cf435ff736051e7c2" +dependencies = [ + "solana-define-syscall 5.1.0", + "solana-pubkey 4.2.0", +] + [[package]] name = "solana-example-mocks" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84461d56cbb8bb8d539347151e0525b53910102e4bced875d49d5139708e39d3" +checksum = "978855d164845c1b0235d4b4d101cadc55373fffaf0b5b6cfa2194d25b2ed658" dependencies = [ "serde", "serde_derive", "solana-address-lookup-table-interface", "solana-clock", - "solana-hash", + "solana-hash 3.1.0", "solana-instruction", "solana-keccak-hasher", "solana-message", "solana-nonce", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", - "solana-system-interface", + "solana-system-interface 2.0.0", "thiserror 2.0.18", ] [[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-feature-set" -version = "2.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93b93971e289d6425f88e6e3cb6668c4b05df78b3c518c249be55ced8efd6b6d" -dependencies = [ - "ahash", - "lazy_static", - "solana-epoch-schedule", - "solana-hash", - "solana-pubkey", - "solana-sha256-hasher", ] [[package]] name = "solana-fee-calculator" -version = "2.2.1" +version = "3.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89bc408da0fb3812bc3008189d148b4d3e08252c79ad810b245482a3f70cd8d" +checksum = "ef67f01cc6a0c72e99a08d0d484683f995de4c80e9568728fa77d1537f9b7e09" dependencies = [ "log", "serde", @@ -11773,79 +11519,61 @@ dependencies = [ [[package]] name = "solana-fee-structure" -version = "2.3.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33adf673581c38e810bf618f745bf31b683a0a4a4377682e6aaac5d9a058dd4e" +checksum = "5e2abdb1223eea8ec64136f39cb1ffcf257e00f915c957c35c0dd9e3f4e700b0" dependencies = [ "serde", "serde_derive", - "solana-message", - "solana-native-token", ] [[package]] -name = "solana-genesis-config" -version = "2.3.0" +name = "solana-get-sysvar" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3725085d47b96d37fef07a29d78d2787fc89a0b9004c66eed7753d1e554989f" +checksum = "ef3bc859fc036ed490146793557386cbfae614ebba4adc704c37d94350824ed4" dependencies = [ - "bincode", - "chrono", - "memmap2 0.5.10", - "serde", - "serde_derive", - "solana-account", - "solana-clock", - "solana-cluster-type", - "solana-epoch-schedule", - "solana-fee-calculator", - "solana-hash", - "solana-inflation", - "solana-keypair", - "solana-logger", - "solana-poh-config", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", - "solana-sha256-hasher", - "solana-shred-version", - "solana-signer", - "solana-time-utils", + "solana-address 2.6.1", + "solana-define-syscall 5.1.0", + "solana-program-error", ] [[package]] name = "solana-hard-forks" -version = "2.2.1" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c28371f878e2ead55611d8ba1b5fb879847156d04edea13693700ad1a28baf" +checksum = "45406eccad36220e52988b024d8daa93e691e38d5d71ad5fec55410cc9cf427d" + +[[package]] +name = "solana-hash" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "337c246447142f660f778cf6cb582beba8e28deb05b3b24bfb9ffd7c562e5f41" dependencies = [ - "serde", - "serde_derive", + "solana-hash 4.5.0", ] [[package]] name = "solana-hash" -version = "2.3.0" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b96e9f0300fa287b545613f007dfe20043d7812bee255f418c1eb649c93b63" +checksum = "6f4c847893a2ea50b4ae3ca723b124e07cd0544fecea3598f785168f9b78333f" dependencies = [ - "borsh 1.6.1", + "borsh", "bytemuck", "bytemuck_derive", "five8", - "js-sys", "serde", "serde_derive", "solana-atomic-u64", "solana-sanitize", - "wasm-bindgen", ] [[package]] name = "solana-ibc-borsh-header" version = "0.1.0" dependencies = [ - "borsh 0.10.4", + "borsh", "ibc-client-tendermint", "ibc-core-client-types", "tendermint", @@ -11860,7 +11588,7 @@ name = "solana-ibc-gmp-types" version = "0.1.0" dependencies = [ "anchor-lang", - "borsh 0.10.4", + "borsh", "solana-ibc-proto", "solana-sdk", "solana-sha256-hasher", @@ -11894,7 +11622,9 @@ name = "solana-ibc-sdk" version = "0.1.0" dependencies = [ "anchor-lang", + "borsh", "solana-ibc-sdk-codegen", + "solana-instructions-sysvar", ] [[package]] @@ -11912,21 +11642,23 @@ version = "0.1.0" dependencies = [ "anchor-lang", "bincode", - "borsh 0.10.4", + "borsh", "solana-ibc-constants", "solana-ibc-gmp-types", "solana-ibc-macros", "solana-ibc-proto", + "solana-instructions-sysvar", "solana-keccak-hasher", "solana-sdk", + "solana-sdk-ids", "solana-sha256-hasher", ] [[package]] name = "solana-inflation" -version = "2.2.1" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23eef6a09eb8e568ce6839573e4966850e85e9ce71e6ae1a6c930c1c43947de3" +checksum = "ccf104167e42e747602b88e02b25cacfc5de699c3b7cbba60d3250437e6a22ed" dependencies = [ "serde", "serde_derive", @@ -11934,34 +11666,42 @@ dependencies = [ [[package]] name = "solana-instruction" -version = "2.3.3" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab5682934bd1f65f8d2c16f21cb532526fcc1a09f796e2cacdb091eee5774ad" +checksum = "37ebb0ffd19263051bc3f683fcc086134b8ff23af894dcb63f7563c7137b42f1" dependencies = [ "bincode", - "borsh 1.6.1", - "getrandom 0.2.17", - "js-sys", + "borsh", + "serde", + "serde_derive", + "solana-define-syscall 5.1.0", + "solana-instruction-error", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-instruction-error" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b7d34343838343a3755b7dfb1e438d94c6db2263b519cfe3c2257af932b6e93" +dependencies = [ "num-traits", "serde", "serde_derive", - "serde_json", - "solana-define-syscall", - "solana-pubkey", - "wasm-bindgen", + "solana-program-error", ] [[package]] name = "solana-instructions-sysvar" -version = "2.2.2" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0e85a6fad5c2d0c4f5b91d34b8ca47118fc593af706e523cdbedf846a954f57" +checksum = "9e0732294560e88ecdb2bbc656e67383e9f88c78ec09469cef172f0d28cd1bcd" dependencies = [ "bitflags 2.11.1", "solana-account-info", "solana-instruction", + "solana-instruction-error", "solana-program-error", - "solana-pubkey", "solana-sanitize", "solana-sdk-ids", "solana-serialize-utils", @@ -11970,12 +11710,12 @@ dependencies = [ [[package]] name = "solana-invoke" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58f5693c6de226b3626658377168b0184e94e8292ff16e3d31d4766e65627565" +checksum = "4065031f5c7dd29ef5f5003c1a353011eeabbafa6c5a5033da0cedbfca824b94" dependencies = [ "solana-account-info", - "solana-define-syscall", + "solana-define-syscall 3.0.0", "solana-instruction", "solana-program-entrypoint", "solana-stable-layout", @@ -11983,43 +11723,43 @@ dependencies = [ [[package]] name = "solana-keccak-hasher" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7aeb957fbd42a451b99235df4942d96db7ef678e8d5061ef34c9b34cae12f79" +checksum = "ed1c0d16d6fdeba12291a1f068cdf0d479d9bff1141bf44afd7aa9d485f65ef8" dependencies = [ "sha3", - "solana-define-syscall", - "solana-hash", - "solana-sanitize", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", ] [[package]] name = "solana-keypair" -version = "2.2.3" +version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd3f04aa1a05c535e93e121a95f66e7dcccf57e007282e8255535d24bf1e98bb" +checksum = "263d614c12aa267a3278703175fd6440552ca61bc960b5a02a4482720c53438b" dependencies = [ "ed25519-dalek", "ed25519-dalek-bip32", "five8", - "rand 0.7.3", + "five8_core", + "rand 0.9.4", + "solana-address 2.6.1", "solana-derivation-path", - "solana-pubkey", "solana-seed-derivable", "solana-seed-phrase", "solana-signature", "solana-signer", - "wasm-bindgen", ] [[package]] name = "solana-last-restart-slot" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a6360ac2fdc72e7463565cd256eedcf10d7ef0c28a1249d261ec168c1b55cdd" +checksum = "c22474b83d3c7c318e1c3a725784fc2d1d03b728e36369e58ce48769a61ed85e" dependencies = [ "serde", "serde_derive", + "solana-get-sysvar", "solana-sdk-ids", "solana-sdk-macro", "solana-sysvar-id", @@ -12027,110 +11767,64 @@ dependencies = [ [[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 = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4be76cfa9afd84ca2f35ebc09f0da0f0092935ccdac0595d98447f259538c2" +checksum = "1e4a6f0ad4fd9c30679bfee2ce3ea6a449cac38049f210480b751f65676dfe82" dependencies = [ "serde", "serde_bytes", "serde_derive", "solana-instruction", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", - "solana-system-interface", ] [[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-pubkey 4.2.0", "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-logger" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db8e777ec1afd733939b532a42492d888ec7c88d8b4127a5d867eb45c6eb5cd5" -dependencies = [ - "env_logger", - "lazy_static", - "libc", - "log", - "signal-hook", + "solana-system-interface 3.2.0", ] [[package]] name = "solana-measure" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11dcd67cd2ae6065e494b64e861e0498d046d95a61cbbf1ae3d58be1ea0f42ed" +checksum = "1ee6df5d71fbc041b3badfd014753b76c643f5fcb9bba2498aae2a30d40616d0" [[package]] name = "solana-message" -version = "2.4.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1796aabce376ff74bf89b78d268fa5e683d7d7a96a0a4e4813ec34de49d5314b" +checksum = "0448b1fd891c5f46491e5dc7d9986385ba3c852c340db2911dd29faa01d2b08d" dependencies = [ "bincode", "blake3", "lazy_static", "serde", "serde_derive", - "solana-bincode", - "solana-hash", + "solana-address 2.6.1", + "solana-hash 4.5.0", "solana-instruction", - "solana-pubkey", "solana-sanitize", "solana-sdk-ids", "solana-short-vec", - "solana-system-interface", "solana-transaction-error", - "wasm-bindgen", ] [[package]] name = "solana-metrics" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0375159d8460f423d39e5103dcff6e07796a5ec1850ee1fcfacfd2482a8f34b5" +checksum = "bb0f05dfe08e1b14429eb35feb15f89455d7c75d8a1704ee8da1f0ebf0993d42" dependencies = [ "crossbeam-channel", "gethostname", @@ -12144,76 +11838,75 @@ dependencies = [ [[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" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61515b880c36974053dd499c0510066783f0cc6ac17def0c7ef2a244874cf4a9" +checksum = "ae8dd4c280dca9d046139eb5b7a5ac9ad10403fbd64964c7d7571214950d758f" [[package]] name = "solana-net-utils" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a9e831d0f09bd92135d48c5bc79071bb59c0537b9459f1b4dec17ecc0558fa" +checksum = "5ed12c06e326edff1a26380f18b01d1c9ec4723aeed2c0d6dec1035d9eacb1fa" dependencies = [ "anyhow", "bincode", "bytes", + "cfg-if", + "dashmap 5.5.3", "itertools 0.12.1", "log", "nix 0.30.1", "rand 0.8.6", "serde", - "serde_derive", - "socket2 0.5.10", + "socket2 0.6.3", "solana-serde", + "solana-svm-type-overrides", "tokio", "url", ] [[package]] name = "solana-nonce" -version = "2.2.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703e22eb185537e06204a5bd9d509b948f0066f2d1d814a6f475dafb3ddf1325" +checksum = "d95dbc9f2e33b6c10e231df15cb2a3bff9ea7eab6347f9e316fe75c97fd67bbb" dependencies = [ "serde", "serde_derive", "solana-fee-calculator", - "solana-hash", - "solana-pubkey", + "solana-hash 4.5.0", + "solana-pubkey 4.2.0", "solana-sha256-hasher", ] [[package]] -name = "solana-nonce-account" -version = "2.2.1" +name = "solana-nullable" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde971a20b8dbf60144d6a84439dda86b5466e00e2843091fe731083cda614da" +checksum = "ec7b49f68ccea949a6ea75f485dbe2e17cf4c1d894ed262371d584269359e1a0" dependencies = [ - "solana-account", - "solana-hash", - "solana-nonce", - "solana-sdk-ids", + "bytemuck", ] [[package]] name = "solana-offchain-message" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b526398ade5dea37f1f147ce55dae49aa017a5d7326606359b0445ca8d946581" +checksum = "f6e2a1141a673f72a05cf406b99e4b2b8a457792b7c01afa07b3f00d4e2de393" dependencies = [ "num_enum 0.7.6", - "solana-hash", + "solana-hash 3.1.0", "solana-packet", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sanitize", "solana-sha256-hasher", "solana-signature", @@ -12222,9 +11915,9 @@ dependencies = [ [[package]] name = "solana-packet" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "004f2d2daf407b3ec1a1ca5ec34b3ccdfd6866dd2d3c7d0715004a96e4b6d127" +checksum = "6edf2f25743c95229ac0fdc32f8f5893ef738dbf332c669e9861d33ddb0f469d" dependencies = [ "bincode", "bitflags 2.11.1", @@ -12236,16 +11929,16 @@ dependencies = [ [[package]] name = "solana-perf" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37192c0be5c222ca49dbc5667288c5a8bb14837051dd98e541ee4dad160a5da9" +checksum = "cae20efb5ec6c98b3932d6755d5df962ab51344f099d704317a79af2faa42403" dependencies = [ "ahash", "bincode", "bv", "bytes", "caps", - "curve25519-dalek 4.1.3", + "curve25519-dalek", "dlopen2", "fnv", "libc", @@ -12254,129 +11947,65 @@ dependencies = [ "rand 0.8.6", "rayon", "serde", - "solana-hash", + "solana-hash 3.1.0", "solana-message", "solana-metrics", "solana-packet", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-rayon-threadlimit", "solana-sdk-ids", "solana-short-vec", "solana-signature", "solana-time-utils", -] - -[[package]] -name = "solana-poh-config" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d650c3b4b9060082ac6b0efbbb66865089c58405bfb45de449f3f2b91eccee75" -dependencies = [ - "serde", - "serde_derive", -] - -[[package]] -name = "solana-precompile-error" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d87b2c1f5de77dfe2b175ee8dd318d196aaca4d0f66f02842f80c852811f9f8" -dependencies = [ - "num-traits", - "solana-decode-error", -] - -[[package]] -name = "solana-precompiles" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36e92768a57c652edb0f5d1b30a7d0bc64192139c517967c18600debe9ae3832" -dependencies = [ - "lazy_static", - "solana-ed25519-program", - "solana-feature-set", - "solana-message", - "solana-precompile-error", - "solana-pubkey", - "solana-sdk-ids", - "solana-secp256k1-program", - "solana-secp256r1-program", + "solana-transaction-context", ] [[package]] name = "solana-presigner" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81a57a24e6a4125fc69510b6774cd93402b943191b6cddad05de7281491c90fe" +checksum = "0f704eaf825be3180832445b9e4983b875340696e8e7239bf2d535b0f86c14a2" dependencies = [ - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-signature", "solana-signer", ] [[package]] name = "solana-program" -version = "2.3.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98eca145bd3545e2fbb07166e895370576e47a00a7d824e325390d33bf467210" +checksum = "91b12305dd81045d705f427acd0435a2e46444b65367d7179d7bdcfc3bc5f5eb" dependencies = [ - "bincode", - "blake3", - "borsh 0.10.4", - "borsh 1.6.1", - "bs58", - "bytemuck", - "console_error_panic_hook", - "console_log", - "getrandom 0.2.17", - "lazy_static", - "log", "memoffset", - "num-bigint 0.4.6", - "num-derive", - "num-traits", - "rand 0.8.6", - "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-define-syscall 3.0.0", "solana-epoch-rewards", "solana-epoch-schedule", + "solana-epoch-stake", "solana-example-mocks", - "solana-feature-gate-interface", "solana-fee-calculator", - "solana-hash", + "solana-hash 3.1.0", "solana-instruction", + "solana-instruction-error", "solana-instructions-sysvar", "solana-keccak-hasher", "solana-last-restart-slot", - "solana-loader-v2-interface", - "solana-loader-v3-interface 5.0.0", - "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-pubkey 3.0.0", "solana-rent", - "solana-sanitize", "solana-sdk-ids", - "solana-sdk-macro", "solana-secp256k1-recover", "solana-serde-varint", "solana-serialize-utils", @@ -12385,99 +12014,81 @@ dependencies = [ "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.18", - "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.6.1", - "num-traits", + "borsh", "serde", "serde_derive", - "solana-decode-error", - "solana-instruction", - "solana-msg", - "solana-pubkey", ] [[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 = "9b62adb9c3261a052ca1f999398c388f1daf558a1b492f60a6d9e64857db4ff1" +checksum = "8909d399deb0851aa524420beeb5646b115fd253ef446e35fe4504c904da3941" dependencies = [ - "borsh 0.10.4", - "borsh 1.6.1", - "bytemuck", - "bytemuck_derive", - "curve25519-dalek 4.1.3", - "five8", - "five8_const", - "getrandom 0.2.17", - "js-sys", - "num-traits", "rand 0.8.6", - "serde", - "serde_derive", - "solana-atomic-u64", - "solana-decode-error", - "solana-define-syscall", - "solana-sanitize", - "solana-sha256-hasher", - "wasm-bindgen", + "solana-address 1.1.0", +] + +[[package]] +name = "solana-pubkey" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7db719574990de7e8b0f55a8593ac92a5ccb42c8ce67b3e4bf05b139d5d9ee71" +dependencies = [ + "solana-address 2.6.1", ] [[package]] name = "solana-pubsub-client" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d18a7476e1d2e8df5093816afd8fffee94fbb6e442d9be8e6bd3e85f88ce8d5c" +checksum = "320923e8c430d05c515f2f413dee50afa0da421b4fe37dc4b76fd9f28b7409a7" dependencies = [ "crossbeam-channel", "futures-util", @@ -12485,41 +12096,40 @@ dependencies = [ "log", "semver 1.0.28", "serde", - "serde_derive", "serde_json", "solana-account-decoder-client-types", "solana-clock", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-rpc-client-types", "solana-signature", "thiserror 2.0.18", "tokio", "tokio-stream", - "tokio-tungstenite 0.20.1", - "tungstenite 0.20.1", + "tokio-tungstenite", + "tungstenite", "url", ] [[package]] name = "solana-quic-client" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44feb5f4a97494459c435aa56de810500cc24e22d0afc632990a8e54a07c05a4" +checksum = "4ede9c4da2447500b05c2fdc8b238c703b33943604a927dc197733bc91ac2a1f" dependencies = [ + "anza-quinn", + "anza-quinn-proto", "async-lock", "async-trait", "futures", "itertools 0.12.1", "log", - "quinn", - "quinn-proto", "rustls 0.23.40", "solana-connection-cache", "solana-keypair", "solana-measure", "solana-metrics", "solana-net-utils", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-quic-definitions", "solana-rpc-client-api", "solana-signer", @@ -12532,27 +12142,28 @@ dependencies = [ [[package]] name = "solana-quic-definitions" -version = "2.3.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf0d4d5b049eb1d0c35f7b18f305a27c8986fc5c0c9b383e97adaa35334379e" +checksum = "15319accf7d3afd845817aeffa6edd8cc185f135cefbc6b985df29cfd8c09609" dependencies = [ "solana-keypair", ] [[package]] name = "solana-rayon-threadlimit" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02cc2a4cae3ef7bb6346b35a60756d2622c297d5fa204f96731db9194c0dc75b" +checksum = "09d48133891ea0e717d845059429b98d03bab34f3ec4e2b58bfe78248a898017" dependencies = [ + "log", "num_cpus", ] [[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", @@ -12561,50 +12172,11 @@ dependencies = [ "solana-sysvar-id", ] -[[package]] -name = "solana-rent-collector" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "127e6dfa51e8c8ae3aa646d8b2672bc4ac901972a338a9e1cd249e030564fb9d" -dependencies = [ - "serde", - "serde_derive", - "solana-account", - "solana-clock", - "solana-epoch-schedule", - "solana-genesis-config", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", -] - -[[package]] -name = "solana-rent-debits" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f6f9113c6003492e74438d1288e30cffa8ccfdc2ef7b49b9e816d8034da18cd" -dependencies = [ - "solana-pubkey", - "solana-reward-info", -] - -[[package]] -name = "solana-reserved-account-keys" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4b22ea19ca2a3f28af7cd047c914abf833486bf7a7c4a10fc652fff09b385b1" -dependencies = [ - "lazy_static", - "solana-feature-set", - "solana-pubkey", - "solana-sdk-ids", -] - [[package]] name = "solana-reward-info" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18205b69139b1ae0ab8f6e11cdcb627328c0814422ad2482000fa2ca54ae4a2f" +checksum = "82be7946105c2ee6be9f9ee7bd18a068b558389221d29efa92b906476102bfcc" dependencies = [ "serde", "serde_derive", @@ -12612,34 +12184,34 @@ dependencies = [ [[package]] name = "solana-rpc-client" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8d3161ac0918178e674c1f7f1bfac40de3e7ed0383bd65747d63113c156eaeb" +checksum = "29f7447f65aacd7ef752393bec2a9082d0313983b804f92d06fe72caf44e8cd6" dependencies = [ "async-trait", "base64 0.22.1", "bincode", "bs58", "futures", - "indicatif", + "indicatif 0.18.6", "log", "reqwest 0.12.28", "reqwest-middleware 0.4.2", "semver 1.0.28", "serde", - "serde_derive", "serde_json", "solana-account", + "solana-account-decoder", "solana-account-decoder-client-types", "solana-clock", "solana-commitment-config", "solana-epoch-info", "solana-epoch-schedule", "solana-feature-gate-interface", - "solana-hash", + "solana-hash 3.1.0", "solana-instruction", "solana-message", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-rpc-client-api", "solana-signature", "solana-transaction", @@ -12652,16 +12224,15 @@ dependencies = [ [[package]] name = "solana-rpc-client-api" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dbc138685c79d88a766a8fd825057a74ea7a21e1dd7f8de275ada899540fff7" +checksum = "841d953ce18f99a07c8101e071dd54d2a99b80835ad2ea1566913c55d4bce2ef" dependencies = [ "anyhow", "jsonrpc-core", "reqwest 0.12.28", "reqwest-middleware 0.4.2", "serde", - "serde_derive", "serde_json", "solana-account-decoder-client-types", "solana-clock", @@ -12674,16 +12245,16 @@ dependencies = [ [[package]] name = "solana-rpc-client-nonce-utils" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f0ee41b9894ff36adebe546a110b899b0d0294b07845d8acdc73822e6af4b0" +checksum = "b0e7777237c3791d40039ab1274d346949497f9be48cd688717ff001cb740cf9" dependencies = [ "solana-account", "solana-commitment-config", - "solana-hash", + "solana-hash 3.1.0", "solana-message", "solana-nonce", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-rpc-client", "solana-sdk-ids", "thiserror 2.0.18", @@ -12691,23 +12262,24 @@ dependencies = [ [[package]] name = "solana-rpc-client-types" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea428a81729255d895ea47fba9b30fd4dacbfe571a080448121bd0592751676" +checksum = "095c430a4ff4ddb10b7399f8d3d26eafeaccb84f8802568594f6f5941c60dff5" dependencies = [ "base64 0.22.1", "bs58", "semver 1.0.28", "serde", - "serde_derive", "serde_json", "solana-account", "solana-account-decoder-client-types", + "solana-address 1.1.0", "solana-clock", "solana-commitment-config", "solana-fee-calculator", "solana-inflation", - "solana-pubkey", + "solana-reward-info", + "solana-transaction", "solana-transaction-error", "solana-transaction-status-client-types", "solana-version", @@ -12715,65 +12287,50 @@ dependencies = [ "thiserror 2.0.18", ] -[[package]] -name = "solana-sanitize" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61f1bc1357b8188d9c4a3af3fc55276e56987265eb7ad073ae6f8180ee54cecf" - +[[package]] +name = "solana-sanitize" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf09694a0fc14e5ffb18f9b7b7c0f15ecb6eac5b5610bf76a1853459d19daf9" + +[[package]] +name = "solana-sbpf" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15b079e08471a9dbfe1e48b2c7439c85aa2a055cbd54eddd8bd257b0a7dbb29" +dependencies = [ + "byteorder", + "combine 3.8.1", + "hash32", + "log", + "rustc-demangle", + "thiserror 2.0.18", +] + [[package]] name = "solana-sdk" -version = "2.3.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cc0e4a7635b902791c44b6581bfb82f3ada32c5bc0929a64f39fe4bb384c86a" +checksum = "3f03df7969f5e723ad31b6c9eadccc209037ac4caa34d8dc259316b05c11e82b" dependencies = [ "bincode", "bs58", - "getrandom 0.1.16", - "js-sys", "serde", - "serde_json", "solana-account", - "solana-bn254", - "solana-client-traits", - "solana-cluster-type", - "solana-commitment-config", - "solana-compute-budget-interface", - "solana-decode-error", - "solana-derivation-path", - "solana-ed25519-program", "solana-epoch-info", "solana-epoch-rewards-hasher", - "solana-feature-set", "solana-fee-structure", - "solana-genesis-config", - "solana-hard-forks", "solana-inflation", - "solana-instruction", "solana-keypair", "solana-message", - "solana-native-token", - "solana-nonce-account", "solana-offchain-message", - "solana-packet", - "solana-poh-config", - "solana-precompile-error", - "solana-precompiles", "solana-presigner", "solana-program", "solana-program-memory", - "solana-pubkey", - "solana-quic-definitions", - "solana-rent-collector", - "solana-rent-debits", - "solana-reserved-account-keys", - "solana-reward-info", + "solana-pubkey 3.0.0", "solana-sanitize", "solana-sdk-ids", "solana-sdk-macro", - "solana-secp256k1-program", - "solana-secp256k1-recover", - "solana-secp256r1-program", "solana-seed-derivable", "solana-seed-phrase", "solana-serde", @@ -12782,30 +12339,26 @@ dependencies = [ "solana-shred-version", "solana-signature", "solana-signer", - "solana-system-transaction", "solana-time-utils", "solana-transaction", - "solana-transaction-context", "solana-transaction-error", - "solana-validator-exit", "thiserror 2.0.18", - "wasm-bindgen", ] [[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.1", ] [[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", @@ -12813,71 +12366,31 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "solana-secp256k1-program" -version = "2.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f19833e4bc21558fe9ec61f239553abe7d05224347b57d65c2218aeeb82d6149" -dependencies = [ - "bincode", - "digest 0.10.7", - "libsecp256k1", - "serde", - "serde_derive", - "sha3", - "solana-feature-set", - "solana-instruction", - "solana-precompile-error", - "solana-sdk-ids", - "solana-signature", -] - [[package]] name = "solana-secp256k1-recover" -version = "2.2.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baa3120b6cdaa270f39444f5093a90a7b03d296d362878f7a6991d6de3bbe496" +checksum = "e3a1ad3ed7846631c88c71c5d2f21a2ecb6b61da333d9be173b6b061b35609ae" dependencies = [ - "borsh 1.6.1", - "libsecp256k1", - "solana-define-syscall", + "k256", + "solana-define-syscall 5.1.0", "thiserror 2.0.18", ] -[[package]] -name = "solana-secp256r1-program" -version = "2.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce0ae46da3071a900f02d367d99b2f3058fe2e90c5062ac50c4f20cfedad8f0f" -dependencies = [ - "bytemuck", - "openssl", - "solana-feature-set", - "solana-instruction", - "solana-precompile-error", - "solana-sdk-ids", -] - -[[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" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3beb82b5adb266c6ea90e5cf3967235644848eac476c5a1f2f9283a143b7c97f" +checksum = "ff7bdb72758e3bec33ed0e2658a920f1f35dfb9ed576b951d20d63cb61ecd95c" 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 = "dc905b200a95f2ea9146e43f2a7181e3aeb55de6bc12afb36462d00a3c7310de" dependencies = [ "hmac 0.12.1", "pbkdf2", @@ -12886,154 +12399,157 @@ dependencies = [ [[package]] name = "solana-serde" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1931484a408af466e14171556a47adaa215953c7f48b24e5f6b0282763818b04" +checksum = "709a93cab694c70f40b279d497639788fc2ccbcf9b4aa32273d4b361322c02dd" dependencies = [ "serde", ] [[package]] name = "solana-serde-varint" -version = "2.2.2" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a7e155eba458ecfb0107b98236088c3764a09ddf0201ec29e52a0be40857113" +checksum = "950e5b83e839dc0f92c66afc124bb8f40e89bc90f0579e8ec5499296d27f54e3" dependencies = [ "serde", ] [[package]] name = "solana-serialize-utils" -version = "2.2.1" +version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "817a284b63197d2b27afdba829c5ab34231da4a9b4e763466a003c40ca4f535e" +checksum = "761357b0853c9623bf12c1d2314b3d6160a85b087b84c45224fb85766d22616b" dependencies = [ - "solana-instruction", - "solana-pubkey", + "solana-instruction-error", + "solana-pubkey 4.2.0", "solana-sanitize", ] [[package]] name = "solana-sha256-hasher" -version = "2.3.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa3feb32c28765f6aa1ce8f3feac30936f16c5c3f7eb73d63a5b8f6f8ecdc44" +checksum = "db7dc3011ea4c0334aaaa7e7128cb390ecf546b28d412e9bf2064680f57f588f" dependencies = [ "sha2 0.10.9", - "solana-define-syscall", - "solana-hash", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", ] [[package]] name = "solana-short-vec" -version = "2.2.1" +version = "3.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c54c66f19b9766a56fa0057d060de8378676cb64987533fa088861858fc5a69" +checksum = "7d8250a4495aad49ad20556a607da53bdcb20de78da10b65afbf918b7f1de647" dependencies = [ - "serde", + "serde_core", ] [[package]] name = "solana-shred-version" -version = "2.2.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afd3db0461089d1ad1a78d9ba3f15b563899ca2386351d38428faa5350c60a98" +checksum = "d6c79722e299d957958bf33695f7cd1ef6724ff55563c60fd9e3e24487cccde2" dependencies = [ "solana-hard-forks", - "solana-hash", + "solana-hash 4.5.0", "solana-sha256-hasher", ] [[package]] name = "solana-signature" -version = "2.3.0" +version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c8ec8e657aecfc187522fc67495142c12f35e55ddeca8698edbb738b8dbd8c" +checksum = "b0364c7577c3c82a693ce28a1febc8d1b5d1b0a175fdc2114ae6186b69effe1e" dependencies = [ "ed25519-dalek", "five8", - "rand 0.8.6", + "rand 0.9.4", "serde", "serde-big-array", "serde_derive", "solana-sanitize", + "wincode", ] [[package]] name = "solana-signer" -version = "2.2.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c41991508a4b02f021c1342ba00bcfa098630b213726ceadc7cb032e051975b" +checksum = "520bd6021163ee517f4bdc7ae03ded904f97e11320001ba0b3355f45eb14f558" dependencies = [ - "solana-pubkey", + "solana-pubkey 4.2.0", "solana-signature", "solana-transaction-error", ] [[package]] name = "solana-slot-hashes" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c8691982114513763e88d04094c9caa0376b867a29577939011331134c301ce" +checksum = "5c7ce2b4b8911bf2db3de7b6266e67bfc21a6a9f8c566fb096d9782ca2ad16ee" dependencies = [ "serde", "serde_derive", - "solana-hash", + "solana-get-sysvar", + "solana-hash 4.5.0", "solana-sdk-ids", "solana-sysvar-id", ] [[package]] name = "solana-slot-history" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ccc1b2067ca22754d5283afb2b0126d61eae734fc616d23871b0943b0d935e" +checksum = "40427c04d3e808493cb5e3d1a97cef84d7c15cb6f89b15c5684d0d4027105600" dependencies = [ "bv", "serde", "serde_derive", + "solana-get-sysvar", "solana-sdk-ids", "solana-sysvar-id", ] [[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.6.1", "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-streamer" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5643516e5206b89dd4bdf67c39815606d835a51a13260e43349abdb92d241b1d" +checksum = "e9c9d1d759bb2d08119e45dcb0ff6834038086cc7b2d1f4e279f2ac340d77bce" dependencies = [ - "async-channel", + "anza-quinn", + "anza-quinn-proto", + "arc-swap", "bytes", "crossbeam-channel", "dashmap 5.5.3", @@ -13046,21 +12562,20 @@ dependencies = [ "libc", "log", "nix 0.30.1", + "num_cpus", "pem", "percentage", - "quinn", - "quinn-proto", "rand 0.8.6", "rustls 0.23.40", "smallvec", - "socket2 0.5.10", + "socket2 0.6.3", "solana-keypair", "solana-measure", "solana-metrics", "solana-net-utils", "solana-packet", "solana-perf", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-quic-definitions", "solana-signature", "solana-signer", @@ -13076,46 +12591,54 @@ dependencies = [ [[package]] name = "solana-svm-feature-set" -version = "2.3.13" +version = "3.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62a20c4fc8d409780c4592c17ac3e01b6f3dc949e6ffd3acbda6d2a21e67b53a" + +[[package]] +name = "solana-svm-type-overrides" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f24b836eb4d74ec255217bdbe0f24f64a07adeac31aca61f334f91cd4a3b1d5" +checksum = "51b2ea7c2f849cd6d190e2607c2af779d3dad2792784cc13c0e9342e429c87a1" +dependencies = [ + "rand 0.8.6", +] [[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-transaction" -version = "2.2.1" +name = "solana-system-interface" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bd98a25e5bcba8b6be8bcbb7b84b24c2a6a8178d7fb0e3077a916855ceba91a" +checksum = "55b54965bf0b76fa8e2b35376583efddd4d916618cfe595bf48c7d7b55a9e628" dependencies = [ - "solana-hash", - "solana-keypair", - "solana-message", - "solana-pubkey", - "solana-signer", - "solana-system-interface", - "solana-transaction", + "num-traits", + "serde", + "serde_derive", + "solana-address 2.6.1", + "solana-instruction", + "solana-msg", + "solana-program-error", ] [[package]] name = "solana-sysvar" -version = "2.3.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8c3595f95069f3d90f275bb9bd235a1973c4d059028b0a7f81baca2703815db" +checksum = "6690d3dd88f15c21edff68eb391ef8800df7a1f5cec84ee3e8d1abf05affdf74" dependencies = [ "base64 0.22.1", "bincode", @@ -13126,97 +12649,65 @@ dependencies = [ "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-hash 4.5.0", "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.1", "solana-sdk-ids", ] -[[package]] -name = "solana-thin-client" -version = "2.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c1025715a113e0e2e379b30a6bfe4455770dc0759dabf93f7dbd16646d5acbe" -dependencies = [ - "bincode", - "log", - "rayon", - "solana-account", - "solana-client-traits", - "solana-clock", - "solana-commitment-config", - "solana-connection-cache", - "solana-epoch-info", - "solana-hash", - "solana-instruction", - "solana-keypair", - "solana-message", - "solana-pubkey", - "solana-rpc-client", - "solana-rpc-client-api", - "solana-signature", - "solana-signer", - "solana-system-interface", - "solana-transaction", - "solana-transaction-error", -] - [[package]] name = "solana-time-utils" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6af261afb0e8c39252a04d026e3ea9c405342b08c871a2ad8aa5448e068c784c" +checksum = "0ced92c60aa76ec4780a9d93f3bd64dfa916e1b998eacc6f1c110f3f444f02c9" [[package]] name = "solana-tls-utils" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14494aa87a75a883d1abcfee00f1278a28ecc594a2f030084879eb40570728f6" +checksum = "05b5c952335b378c92ad47286a7dee28acfd0b0ce1ac89562f51b4dcb33210ea" dependencies = [ "rustls 0.23.40", "solana-keypair", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-signer", "x509-parser", ] [[package]] name = "solana-tpu-client" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17895ce70fd1dd93add3fbac87d599954ded93c63fa1c66f702d278d96a6da14" +checksum = "d331918bac33058ac2acd923c4cf646a8b7bc77fd7463d886da9f24b9e2787c1" dependencies = [ "async-trait", "bincode", "futures-util", "indexmap 2.14.0", - "indicatif", + "indicatif 0.18.6", "log", "rayon", "solana-client-traits", @@ -13227,7 +12718,7 @@ dependencies = [ "solana-measure", "solana-message", "solana-net-utils", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-pubsub-client", "solana-quic-definitions", "solana-rpc-client", @@ -13242,65 +12733,60 @@ dependencies = [ [[package]] name = "solana-transaction" -version = "2.2.3" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80657d6088f721148f5d889c828ca60c7daeedac9a8679f9ec215e0c42bcbf41" +checksum = "96697cff5075a028265324255efed226099f6d761ca67342b230d09f72cc48d2" dependencies = [ "bincode", "serde", "serde_derive", - "solana-bincode", - "solana-feature-set", - "solana-hash", + "solana-address 2.6.1", + "solana-hash 4.5.0", "solana-instruction", - "solana-keypair", + "solana-instruction-error", "solana-message", - "solana-precompiles", - "solana-pubkey", "solana-sanitize", "solana-sdk-ids", "solana-short-vec", "solana-signature", "solana-signer", - "solana-system-interface", "solana-transaction-error", - "wasm-bindgen", ] [[package]] name = "solana-transaction-context" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54a312304361987a85b2ef2293920558e6612876a639dd1309daf6d0d59ef2fe" +checksum = "be7c191d89fb883fef0b4bb4225121f7ad14eb5664d5dc9707b4af661e21924c" dependencies = [ "bincode", "serde", - "serde_derive", "solana-account", "solana-instruction", "solana-instructions-sysvar", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-rent", + "solana-sbpf", "solana-sdk-ids", ] [[package]] name = "solana-transaction-error" -version = "2.2.1" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222a9dc8fdb61c6088baab34fc3a8b8473a03a7a5fd404ed8dd502fa79b67cb1" +checksum = "a949797bc1ac31836d0070e791083028a8c2e0d493fa4cf51c0bed7a04c65c22" dependencies = [ "serde", "serde_derive", - "solana-instruction", + "solana-instruction-error", "solana-sanitize", ] [[package]] name = "solana-transaction-metrics-tracker" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03fc4e1b6252dc724f5ee69db6229feb43070b7318651580d2174da8baefb993" +checksum = "257ae75d68fe879753baef265a0d1bfcf9274b212dfc44ffea177ce0f1271508" dependencies = [ "base64 0.22.1", "bincode", @@ -13314,63 +12800,63 @@ dependencies = [ [[package]] name = "solana-transaction-status" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135f92f4192cc68900c665becf97fc0a6500ae5a67ff347bf2cbc20ecfefa821" +checksum = "81283f595988fccb91f1697addde2efd074aea4e7b2853e4415e06a8754ff8ee" dependencies = [ "Inflector", "agave-reserved-account-keys", "base64 0.22.1", "bincode", - "borsh 1.6.1", + "borsh", "bs58", "log", "serde", - "serde_derive", "serde_json", "solana-account-decoder", "solana-address-lookup-table-interface", "solana-clock", - "solana-hash", + "solana-hash 3.1.0", "solana-instruction", "solana-loader-v2-interface", - "solana-loader-v3-interface 5.0.0", + "solana-loader-v3-interface", "solana-message", "solana-program-option", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-reward-info", "solana-sdk-ids", "solana-signature", "solana-stake-interface", - "solana-system-interface", + "solana-system-interface 2.0.0", "solana-transaction", "solana-transaction-error", "solana-transaction-status-client-types", "solana-vote-interface", - "spl-associated-token-account", - "spl-memo", - "spl-token", - "spl-token-2022", + "spl-associated-token-account-interface", + "spl-memo-interface", + "spl-token-2022-interface", "spl-token-group-interface", + "spl-token-interface", "spl-token-metadata-interface", "thiserror 2.0.18", ] [[package]] name = "solana-transaction-status-client-types" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51f1d7c2387c35850848212244d2b225847666cb52d3bd59a5c409d2c300303d" +checksum = "3a02265337e99bf3e446de1d8133b2d28556f06780e9ab516870317688f332e0" dependencies = [ "base64 0.22.1", "bincode", "bs58", "serde", - "serde_derive", "serde_json", "solana-account-decoder-client-types", "solana-commitment-config", + "solana-instruction", "solana-message", + "solana-pubkey 3.0.0", "solana-reward-info", "solana-signature", "solana-transaction", @@ -13381,9 +12867,9 @@ dependencies = [ [[package]] name = "solana-udp-client" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dd36227dd3035ac09a89d4239551d2e3d7d9b177b61ccc7c6d393c3974d0efa" +checksum = "3f55aab86699ab277347e7086157a1a7c599ce3817c0a8bb07b62bbe3a113f44" dependencies = [ "async-trait", "solana-connection-cache", @@ -13395,63 +12881,70 @@ dependencies = [ "tokio", ] -[[package]] -name = "solana-validator-exit" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bbf6d7a3c0b28dd5335c52c0e9eae49d0ae489a8f324917faf0ded65a812c1d" - [[package]] name = "solana-version" -version = "2.3.13" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3324d46c7f7b7f5d34bf7dc71a2883bdc072c7b28ca81d0b2167ecec4cf8da9f" +checksum = "17a9c5d23a31d8f34aac59812099c9d8d76203a447d04b65824f5c913ced9072" dependencies = [ "agave-feature-set", "rand 0.8.6", "semver 1.0.28", "serde", - "serde_derive", "solana-sanitize", "solana-serde-varint", ] [[package]] name = "solana-vote-interface" -version = "2.2.6" +version = "4.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b80d57478d6599d30acc31cc5ae7f93ec2361a06aefe8ea79bc81739a08af4c3" +checksum = "db6e123e16bfdd7a81d71b4c4699e0b29580b619f4cd2ef5b6aae1eb85e8979f" dependencies = [ "bincode", + "cfg_eval", "num-derive", "num-traits", "serde", "serde_derive", + "serde_with", "solana-clock", - "solana-decode-error", - "solana-hash", + "solana-hash 3.1.0", "solana-instruction", - "solana-pubkey", + "solana-instruction-error", + "solana-pubkey 3.0.0", "solana-rent", "solana-sdk-ids", "solana-serde-varint", "solana-serialize-utils", "solana-short-vec", - "solana-system-interface", + "solana-system-interface 2.0.0", +] + +[[package]] +name = "solana-zero-copy" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea15126ebdc7e270c50d43884369af9f51d2308156d46a18e351522a164844d" +dependencies = [ + "borsh", + "bytemuck", + "bytemuck_derive", ] [[package]] name = "solana-zk-sdk" -version = "2.3.13" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b9fc6ec37d16d0dccff708ed1dd6ea9ba61796700c3bb7c3b401973f10f63b" +checksum = "9602bcb1f7af15caef92b91132ec2347e1c51a72ecdbefdaefa3eac4b8711475" dependencies = [ "aes-gcm-siv", "base64 0.22.1", "bincode", "bytemuck", "bytemuck_derive", - "curve25519-dalek 4.1.3", + "curve25519-dalek", + "getrandom 0.2.17", "itertools 0.12.1", "js-sys", "merlin", @@ -13464,7 +12957,7 @@ dependencies = [ "sha3", "solana-derivation-path", "solana-instruction", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", "solana-seed-derivable", "solana-seed-phrase", @@ -13560,7 +13053,7 @@ dependencies = [ "hashbrown 0.14.5", "hex", "itertools 0.14.0", - "memmap2 0.9.10", + "memmap2", "num 0.4.3", "rrs-succinct 0.2.0", "serde", @@ -13880,7 +13373,7 @@ version = "0.1.0" dependencies = [ "alloy 2.0.4", "anyhow", - "borsh 0.10.4", + "borsh", "clap", "dotenv", "futures", @@ -13944,7 +13437,7 @@ dependencies = [ "hashbrown 0.14.5", "libc", "memfd", - "memmap2 0.9.10", + "memmap2", "serde", "tracing", "uuid", @@ -13952,9 +13445,9 @@ dependencies = [ [[package]] name = "sp1-lib" -version = "5.2.4" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73b8ff343f2405d5935440e56b7aba5cee6d87303f0051974cbd6f5de502f57" +checksum = "03046db52868c1b60e8acffa0777ef6dc11ec1bbbb10b9eb612a871f69c8d3f6" dependencies = [ "bincode", "elliptic-curve", @@ -14068,7 +13561,7 @@ dependencies = [ "futures", "hashbrown 0.14.5", "hex", - "indicatif", + "indicatif 0.17.11", "itertools 0.14.0", "lru 0.12.5", "mti", @@ -14428,7 +13921,7 @@ dependencies = [ "futures", "hashbrown 0.14.5", "hex", - "indicatif", + "indicatif 0.17.11", "itertools 0.13.0", "k256", "p3-baby-bear 0.2.3-succinct", @@ -14479,7 +13972,7 @@ dependencies = [ "eventsource-stream", "futures", "hex", - "indicatif", + "indicatif 0.17.11", "itertools 0.14.0", "k256", "num-bigint 0.4.6", @@ -14613,35 +14106,46 @@ dependencies = [ [[package]] name = "spl-associated-token-account" -version = "7.0.0" +version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae179d4a26b3c7a20c839898e6aed84cb4477adf108a366c95532f058aea041b" +checksum = "0242277e290c023de8826f504abcf9206b3cd4e18d9ace4ec59a698b2828e88b" dependencies = [ - "borsh 1.6.1", + "borsh", "num-derive", "num-traits", - "solana-program", - "spl-associated-token-account-client", - "spl-token", - "spl-token-2022", + "solana-account-info", + "solana-cpi", + "solana-instruction", + "solana-msg", + "solana-program-entrypoint", + "solana-program-error", + "solana-pubkey 3.0.0", + "solana-rent", + "solana-sdk-ids", + "solana-system-interface 2.0.0", + "solana-sysvar", + "spl-associated-token-account-interface", + "spl-token-2022-interface", + "spl-token-interface", "thiserror 2.0.18", ] [[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 = [ + "borsh", "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", @@ -14673,127 +14177,51 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "spl-elgamal-registry" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65edfeed09cd4231e595616aa96022214f9c9d2be02dea62c2b30d5695a6833a" -dependencies = [ - "bytemuck", - "solana-account-info", - "solana-cpi", - "solana-instruction", - "solana-msg", - "solana-program-entrypoint", - "solana-program-error", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", - "solana-system-interface", - "solana-sysvar", - "solana-zk-sdk", - "spl-pod", - "spl-token-confidential-transfer-proof-extraction", -] - [[package]] name = "spl-generic-token" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "741a62a566d97c58d33f9ed32337ceedd4e35109a686e31b1866c5dfa56abddc" -dependencies = [ - "bytemuck", - "solana-pubkey", -] - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d994afaf86b779104b4a95ba9ca75b8ced3fdb17ee934e38cb69e72afbe17799" -dependencies = [ - "borsh 1.6.1", - "bytemuck", - "bytemuck_derive", - "num-derive", - "num-traits", - "solana-decode-error", - "solana-msg", - "solana-program-error", - "solana-program-option", - "solana-pubkey", - "solana-zk-sdk", - "thiserror 2.0.18", -] - -[[package]] -name = "spl-program-error" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdebc8b42553070b75aa5106f071fef2eb798c64a7ec63375da4b1f058688c6" -dependencies = [ - "num-derive", - "num-traits", - "solana-decode-error", - "solana-msg", - "solana-program-error", - "spl-program-error-derive", - "thiserror 2.0.18", +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233df81b75ab99b42f002b5cdd6e65a7505ffa930624f7096a7580a56765e9cf" +dependencies = [ + "bytemuck", + "solana-pubkey 3.0.0", ] [[package]] -name = "spl-program-error-derive" -version = "0.5.0" +name = "spl-memo-interface" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2539e259c66910d78593475540e8072f0b10f0f61d7607bbf7593899ed52d0" +checksum = "3745d384b0afee980d43d62b66c27bdcbbd03507732b8d3626d3413cb72084f2" dependencies = [ - "proc-macro2", - "quote", - "sha2 0.10.9", - "syn 2.0.117", + "solana-instruction", + "solana-pubkey 4.2.0", ] [[package]] -name = "spl-tlv-account-resolution" -version = "0.10.0" +name = "spl-pod" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1408e961215688715d5a1063cbdcf982de225c45f99c82b4f7d7e1dd22b998d7" +checksum = "2f9c6e142cdf1e7e77f480053ec9f0ce989890768ddf91f619b50f39d1b456f5" dependencies = [ + "borsh", "bytemuck", + "bytemuck_derive", "num-derive", "num-traits", - "solana-account-info", - "solana-decode-error", - "solana-instruction", - "solana-msg", + "num_enum 0.7.6", "solana-program-error", - "solana-pubkey", - "spl-discriminator", - "spl-pod", - "spl-program-error", - "spl-type-length-value", + "solana-program-option", + "solana-pubkey 3.0.0", + "solana-zero-copy", + "solana-zk-sdk", "thiserror 2.0.18", ] [[package]] name = "spl-token" -version = "8.0.0" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053067c6a82c705004f91dae058b11b4780407e9ccd6799dc9e7d0fab5f242da" +checksum = "878b0183d51fcd8a53e1604f4c13321894cf53227e6773c529b0d03d499a8dfd" dependencies = [ "arrayref", "bytemuck", @@ -14802,7 +14230,6 @@ dependencies = [ "num_enum 0.7.6", "solana-account-info", "solana-cpi", - "solana-decode-error", "solana-instruction", "solana-msg", "solana-program-entrypoint", @@ -14810,18 +14237,19 @@ dependencies = [ "solana-program-memory", "solana-program-option", "solana-program-pack", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-rent", "solana-sdk-ids", "solana-sysvar", + "spl-token-interface", "thiserror 2.0.18", ] [[package]] -name = "spl-token-2022" -version = "8.0.1" +name = "spl-token-2022-interface" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f0dfbb079eebaee55e793e92ca5f433744f4b71ee04880bfd6beefba5973e5" +checksum = "2fcd81188211f4b3c8a5eba7fd534c7142f9dd026123b3472492782cc72f4dc6" dependencies = [ "arrayref", "bytemuck", @@ -14829,64 +14257,36 @@ dependencies = [ "num-traits", "num_enum 0.7.6", "solana-account-info", - "solana-clock", - "solana-cpi", - "solana-decode-error", "solana-instruction", - "solana-msg", - "solana-native-token", - "solana-program-entrypoint", "solana-program-error", - "solana-program-memory", "solana-program-option", "solana-program-pack", - "solana-pubkey", - "solana-rent", + "solana-pubkey 3.0.0", "solana-sdk-ids", - "solana-security-txt", - "solana-system-interface", - "solana-sysvar", "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 2.0.18", ] -[[package]] -name = "spl-token-confidential-transfer-ciphertext-arithmetic" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cddd52bfc0f1c677b41493dafa3f2dbbb4b47cf0990f08905429e19dc8289b35" -dependencies = [ - "base64 0.22.1", - "bytemuck", - "solana-curve25519", - "solana-zk-sdk", -] - [[package]] name = "spl-token-confidential-transfer-proof-extraction" -version = "0.3.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe2629860ff04c17bafa9ba4bed8850a404ecac81074113e1f840dbd0ebb7bd6" +checksum = "879a9ebad0d77383d3ea71e7de50503554961ff0f4ef6cbca39ad126e6f6da3a" dependencies = [ "bytemuck", "solana-account-info", - "solana-curve25519", + "solana-curve25519 3.1.14", "solana-instruction", "solana-instructions-sysvar", "solana-msg", "solana-program-error", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", "solana-zk-sdk", "spl-pod", @@ -14895,91 +14295,84 @@ dependencies = [ [[package]] name = "spl-token-confidential-transfer-proof-generation" -version = "0.4.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa27b9174bea869a7ebf31e0be6890bce90b1a4288bc2bbf24bd413f80ae3fde" +checksum = "a0cd59fce3dc00f563c6fa364d67c3f200d278eae681f4dc250240afcfe044b1" dependencies = [ - "curve25519-dalek 4.1.3", + "curve25519-dalek", "solana-zk-sdk", "thiserror 2.0.18", ] [[package]] name = "spl-token-group-interface" -version = "0.6.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5597b4cd76f85ce7cd206045b7dc22da8c25516573d42d267c8d1fd128db5129" +checksum = "841cbd6f2322d02719be4da1affedbe6495b1048b7b985ec9796032564026e22" dependencies = [ "bytemuck", "num-derive", "num-traits", - "solana-decode-error", + "num_enum 0.7.6", + "solana-address 2.6.1", "solana-instruction", - "solana-msg", + "solana-nullable", "solana-program-error", - "solana-pubkey", + "solana-zero-copy", "spl-discriminator", - "spl-pod", "thiserror 2.0.18", ] [[package]] -name = "spl-token-metadata-interface" -version = "0.7.0" +name = "spl-token-interface" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "304d6e06f0de0c13a621464b1fd5d4b1bebf60d15ca71a44d3839958e0da16ee" +checksum = "8c564ac05a7c8d8b12e988a37d82695b5ba4db376d07ea98bc4882c81f96c7f3" dependencies = [ - "borsh 1.6.1", + "arrayref", + "bytemuck", "num-derive", "num-traits", - "solana-borsh", - "solana-decode-error", + "num_enum 0.7.6", "solana-instruction", - "solana-msg", "solana-program-error", - "solana-pubkey", - "spl-discriminator", - "spl-pod", - "spl-type-length-value", + "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.10.0" +name = "spl-token-metadata-interface" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7e905b849b6aba63bde8c4badac944ebb6c8e6e14817029cbe1bc16829133bd" +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 2.0.18", ] [[package]] name = "spl-type-length-value" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d417eb548214fa822d93f84444024b4e57c13ed6719d4dcc68eec24fb481e9f5" +checksum = "ca20a1a19f4507a98ca4b28ff5ed54cac9b9d34ed27863e2bde50a3238f9a6ac" dependencies = [ "bytemuck", "num-derive", "num-traits", + "num_enum 0.7.6", "solana-account-info", - "solana-decode-error", "solana-msg", "solana-program-error", "spl-discriminator", @@ -15284,7 +14677,7 @@ source = "git+https://github.com/cometbft/tendermint-rs#a2aa5bffcb2a2b62f775ba0c dependencies = [ "bytes", "digest 0.10.7", - "ed25519 2.2.3", + "ed25519", "ed25519-consensus", "flex-error", "futures", @@ -15296,7 +14689,7 @@ dependencies = [ "serde_json", "serde_repr", "sha2 0.10.9", - "signature 2.2.0", + "signature", "subtle", "subtle-encoding", "tendermint-proto", @@ -15363,7 +14756,7 @@ dependencies = [ "solana-ibc-types", "solana-keccak-hasher", "solana-msg", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sha256-hasher", "tendermint", "tendermint-light-client-verifier", @@ -15680,21 +15073,6 @@ dependencies = [ "tokio-util", ] -[[package]] -name = "tokio-tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" -dependencies = [ - "futures-util", - "log", - "rustls 0.21.12", - "tokio", - "tokio-rustls 0.24.1", - "tungstenite 0.20.1", - "webpki-roots 0.25.4", -] - [[package]] name = "tokio-tungstenite" version = "0.28.0" @@ -15707,7 +15085,7 @@ dependencies = [ "rustls-pki-types", "tokio", "tokio-rustls 0.26.4", - "tungstenite 0.28.0", + "tungstenite", "webpki-roots 0.26.11", ] @@ -15720,29 +15098,36 @@ dependencies = [ "bytes", "futures-core", "futures-sink", + "futures-util", "pin-project-lite", "tokio", ] [[package]] name = "toml" -version = "0.5.11" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", + "toml_edit 0.22.27", ] [[package]] name = "toml" -version = "0.8.23" +version = "0.9.12+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" +checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" dependencies = [ - "serde", - "serde_spanned", - "toml_datetime 0.6.11", - "toml_edit 0.22.27", + "indexmap 2.14.0", + "serde_core", + "serde_spanned 1.1.1", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 0.7.15", ] [[package]] @@ -15754,6 +15139,15 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.7.5+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +dependencies = [ + "serde_core", +] + [[package]] name = "toml_datetime" version = "1.1.1+spec-1.1.0" @@ -15782,7 +15176,7 @@ checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ "indexmap 2.14.0", "serde", - "serde_spanned", + "serde_spanned 0.6.9", "toml_datetime 0.6.11", "toml_write", "winnow 0.7.15", @@ -15815,6 +15209,12 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" +[[package]] +name = "toml_writer" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2" + [[package]] name = "tonic" version = "0.12.3" @@ -16236,27 +15636,6 @@ dependencies = [ "toml 0.8.23", ] -[[package]] -name = "tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http 0.2.12", - "httparse", - "log", - "rand 0.8.6", - "rustls 0.21.12", - "sha1", - "thiserror 1.0.69", - "url", - "utf-8", - "webpki-roots 0.24.0", -] - [[package]] name = "tungstenite" version = "0.28.0" @@ -16274,6 +15653,7 @@ dependencies = [ "sha1", "thiserror 2.0.18", "utf-8", + "webpki-roots 0.26.11", ] [[package]] @@ -16385,6 +15765,12 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +[[package]] +name = "unit-prefix" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81e544489bf3d8ef66c953931f56617f423cd4b5494be343d9b9d3dda037b9a3" + [[package]] name = "universal-hash" version = "0.5.1" @@ -16395,6 +15781,15 @@ dependencies = [ "subtle", ] +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +dependencies = [ + "void", +] + [[package]] name = "untrusted" version = "0.9.0" @@ -16469,12 +15864,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - [[package]] name = "vec_map" version = "0.8.2" @@ -16490,6 +15879,12 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + [[package]] name = "vsimd" version = "0.8.0" @@ -16553,12 +15948,6 @@ dependencies = [ "tracing", ] -[[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" @@ -16585,32 +15974,48 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.120" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df52b6d9b87e0c74c9edfa1eb2d9bf85e5d63515474513aa50fa181b3c4f5db1" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn 2.0.117", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.70" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af934872acec734c2d80e6617bbb5ff4f12b052dd8e6332b0817bce889516084" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ + "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", + "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.120" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b1041f495fb322e64aca85f5756b2172e35cd459376e67f2a6c9dffcedb103" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -16618,22 +16023,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.120" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dcd0ff20416988a18ac686d4d4d0f6aae9ebf08a389ff5d29012b05af2a1b41" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ - "bumpalo", "proc-macro2", "quote", "syn 2.0.117", + "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.120" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49757b3c82ebf16c57d69365a142940b384176c24df52a087fb748e2085359ea" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" dependencies = [ "unicode-ident", ] @@ -16701,9 +16106,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.97" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eadbac71025cd7b0834f20d1fe8472e8495821b4e9801eb0a60bd1f19827602" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", @@ -16721,28 +16126,13 @@ dependencies = [ [[package]] name = "webpki-root-certs" -version = "1.0.7" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31141ce3fc3e300ae89b78c0dd67f9708061d1d2eda54b8209346fd6be9a92c" +checksum = "804f18a4ac2676ffb4e8b5b5fa9ae38af06df08162314f96a68d2a363e21a8ca" dependencies = [ "rustls-pki-types", ] -[[package]] -name = "webpki-roots" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b291546d5d9d1eab74f069c77749f2cb8504a12caa20f0f2de93ddbf6f411888" -dependencies = [ - "rustls-webpki 0.101.7", -] - -[[package]] -name = "webpki-roots" -version = "0.25.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - [[package]] name = "webpki-roots" version = "0.26.11" @@ -16798,6 +16188,31 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "wincode" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66d967db7705dc29120bb6e8ce5b5a2e27734ed5976d1c904e95bd238d1c3c5a" +dependencies = [ + "pastey", + "proc-macro2", + "quote", + "thiserror 2.0.18", + "wincode-derive", +] + +[[package]] +name = "wincode-derive" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15ab90b719560d0fda79c74550ad1c948d17b118765942838055ebaf34d67071" +dependencies = [ + "darling 0.23.0", + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "windows" version = "0.52.0" @@ -16819,22 +16234,22 @@ dependencies = [ [[package]] name = "windows-core" -version = "0.62.2" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ "windows-implement", "windows-interface", - "windows-link", + "windows-link 0.1.3", "windows-result", "windows-strings", ] [[package]] name = "windows-implement" -version = "0.60.2" +version = "0.60.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" dependencies = [ "proc-macro2", "quote", @@ -16843,15 +16258,21 @@ dependencies = [ [[package]] name = "windows-interface" -version = "0.59.3" +version = "0.59.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" dependencies = [ "proc-macro2", "quote", "syn 2.0.117", ] +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + [[package]] name = "windows-link" version = "0.2.1" @@ -16860,20 +16281,20 @@ checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] name = "windows-result" -version = "0.4.1" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] name = "windows-strings" -version = "0.5.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -16912,22 +16333,13 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-sys" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" -dependencies = [ - "windows-targets 0.53.5", -] - [[package]] name = "windows-sys" version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -16969,30 +16381,13 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", + "windows_i686_gnullvm", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] -[[package]] -name = "windows-targets" -version = "0.53.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" -dependencies = [ - "windows-link", - "windows_aarch64_gnullvm 0.53.1", - "windows_aarch64_msvc 0.53.1", - "windows_i686_gnu 0.53.1", - "windows_i686_gnullvm 0.53.1", - "windows_i686_msvc 0.53.1", - "windows_x86_64_gnu 0.53.1", - "windows_x86_64_gnullvm 0.53.1", - "windows_x86_64_msvc 0.53.1", -] - [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -17011,12 +16406,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" - [[package]] name = "windows_aarch64_msvc" version = "0.42.2" @@ -17035,12 +16424,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" - [[package]] name = "windows_i686_gnu" version = "0.42.2" @@ -17059,24 +16442,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" -[[package]] -name = "windows_i686_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" - [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" - [[package]] name = "windows_i686_msvc" version = "0.42.2" @@ -17095,12 +16466,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_i686_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" - [[package]] name = "windows_x86_64_gnu" version = "0.42.2" @@ -17119,12 +16484,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" - [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -17143,12 +16502,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" - [[package]] name = "windows_x86_64_msvc" version = "0.42.2" @@ -17167,12 +16520,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" - [[package]] name = "winnow" version = "0.5.40" diff --git a/Cargo.toml b/Cargo.toml index 9ae48b717..af87fdae1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -84,8 +84,8 @@ hex = { version = "0.4", default-features = false } base64 = { version = "0.22", default-features = false } prost = { version = "0.13", default-features = false } prost-build = { version = "0.13", default-features = false } -# Solana workspace uses borsh 0.10.4 for Anchor compatibility (Anchor 0.31.1 requires that version). -borsh = { version = "1.5.7", default-features = false } +# Anchor 1.0 uses Borsh 1.5.7. +borsh = { version = "=1.5.7", default-features = false } subtle-encoding = { version = "0.5", default-features = false } schemars = { version = "0.8", default-features = false } @@ -202,19 +202,24 @@ ibc-eureka-relayer-eth-to-cosmos-v1_3 = { package = "ibc-eureka-relayer-eth-to-c ibc-eureka-relayer-core-v1_3 = { package = "ibc-eureka-relayer-core", git = "https://github.com/cosmos/solidity-ibc-eureka", rev = "035aa5eb171b6608614a9bc4e76e79d61c190e39", default-features = false } # Solana dependencies -solana-client = { version = "2.0" } -solana-sdk = { version = "2.0" } -solana-commitment-config = { version = "2.2.1", default-features = false } -solana-transaction-status = { version = "2.0" } +solana-client = { version = "=3.1.10" } +solana-sdk = { version = "=3.0.0" } +solana-commitment-config = { version = "=3.1.1", default-features = false } +solana-transaction-status = { version = "=3.1.10" } bincode = { version = "1.3" } -anchor-lang = { version = "0.32.1" } -anchor-client = { version = "0.32.1" } - -solana-account-info = { version = "2.2", default-features = false } -solana-pubkey = { version = "2.2", default-features = false, features = ["sha2", "curve25519"] } -solana-sha256-hasher = { version = "2.2", default-features = false } -solana-keccak-hasher = { version = "2.2", default-features = false } -solana-msg = { version = "2.2", default-features = false } +anchor-lang = { version = "=1.1.2" } + +solana-account-info = { version = "=3.1.0", default-features = false } +solana-pubkey = { version = "=3.0.0", default-features = false, features = ["sha2", "curve25519"] } +solana-sha256-hasher = { version = "=3.1.0", default-features = false } +solana-keccak-hasher = { version = "=3.1.0", default-features = false } +solana-msg = { version = "=3.1.0", default-features = false } +solana-instructions-sysvar = { version = "=3.0.1", default-features = false } +solana-sdk-ids = { version = "=3.1.0", default-features = false } +solana-system-interface = { version = "=2.0.0", default-features = false, features = ["bincode"] } +solana-ed25519-program = { version = "=3.0.0", default-features = false } +solana-address-lookup-table-interface = { version = "=3.1.0", default-features = false } +solana-compute-budget-interface = { version = "=3.0.0", default-features = false } [patch.crates-io] # TODO: remove on publish of verifier with &self in verify method diff --git a/README.md b/README.md index 114815a2c..dce1f75c8 100644 --- a/README.md +++ b/README.md @@ -146,7 +146,7 @@ Or directly: ```sh cd programs/solana anchor build -anchor test +anchor test --validator legacy anchor deploy ``` diff --git a/flake.nix b/flake.nix index 34570141a..f0e56b9e3 100644 --- a/flake.nix +++ b/flake.nix @@ -44,6 +44,11 @@ }; anchor-go = pkgs.callPackage ./nix/anchor-go.nix {}; in { + apps.solana = { + type = "app"; + program = "${solana-agave}/bin/solana"; + }; + devShells = { default = pkgs.mkShell { buildInputs = diff --git a/nix/agave.nix b/nix/agave.nix index 341f814a0..94a58db57 100644 --- a/nix/agave.nix +++ b/nix/agave.nix @@ -21,15 +21,11 @@ "cargo-build-sbf" "cargo-test-sbf" "solana" - "solana-bench-tps" "solana-faucet" "solana-gossip" "solana-keygen" - "solana-log-analyzer" - "solana-net-shaper" "solana-test-validator" "solana-genesis" - "agave-ledger-tool" "agave-install" "agave-validator" ], @@ -38,10 +34,23 @@ inherit (stdenv) hostPlatform isLinux; versions = { - agave = "2.3.13"; - platformTools = "v1.48"; + agave = "3.1.10"; + platformTools = "v1.52"; }; + criterion = + if isLinux + then { + version = "v2.3.3"; + archive = "criterion-v2.3.3-linux-x86_64.tar.bz2"; + hash = "sha256-7n+S1yaFY4SKo66Qu/XfhmBLjQ+w5JQrDs+/YgFZZVA="; + } + else { + version = "v2.3.2"; + archive = "criterion-v2.3.2-osx-x86_64.tar.bz2"; + hash = "sha256-pw12DJO7CgNk1HaZxJgTFxF8oTX6vskURIvqAu3c7fI="; + }; + # Create nightly toolchain from rust-bin (used for IDL generation) rustNightly = rust-bin.nightly.latest.default.override { extensions = ["rust-src"]; @@ -50,19 +59,19 @@ platformConfig = { x86_64-darwin = { archive = "platform-tools-osx-x86_64.tar.bz2"; - sha256 = "sha256-vLTtCmUkxxkd8KKQa8qpQ7kb5S52EI/DVllgtu8zM2I="; + sha256 = "sha256-HdTysfe1MWwvGJjzfHXtSV7aoIMzM0kVP+lV5Wg3kdE="; }; aarch64-darwin = { archive = "platform-tools-osx-aarch64.tar.bz2"; - sha256 = "sha256-eZ5M/O444icVXIP7IpT5b5SoQ9QuAcA1n7cSjiIW0t0="; + sha256 = "sha256-Fyffsx6DPOd30B5wy0s869JrN2vwnYBSfwJFfUz2/QA="; }; x86_64-linux = { archive = "platform-tools-linux-x86_64.tar.bz2"; - sha256 = "sha256-qdMVf5N9X2+vQyGjWoA14PgnEUpmOwFQ20kuiT7CdZc="; + sha256 = "sha256-izhh6T2vCF7BK2XE+sN02b7EWHo94Whx2msIqwwdkH4="; }; aarch64-linux = { archive = "platform-tools-linux-aarch64.tar.bz2"; - sha256 = "sha256-rsYCIiL3ueJHkDZkhLzGz59mljd7uY9UHIhp4vMecPI="; + sha256 = "sha256-sfhbLsR+9tUPZoPjUUv0apUmlQMVUXjN+0i9aUszH5g="; }; }; @@ -77,7 +86,12 @@ # Download SBF SDK archive from Agave releases sbfSdkArchive = fetchurl { url = "https://github.com/anza-xyz/agave/releases/download/v${versions.agave}/sbf-sdk.tar.bz2"; - sha256 = "sha256-zdGtFHxj/I4ID3RN3BNx27LakxzhwOuvSZpVb3M93YM="; + sha256 = "sha256-H+BQutp7cdju1C/ux6l+ZrzZpJtzkjza97czP7e35Ag="; + }; + + criterionArchive = fetchurl { + url = "https://github.com/Snaipe/Criterion/releases/download/${criterion.version}/${criterion.archive}"; + sha256 = criterion.hash; }; # SBF SDK derivation @@ -94,6 +108,12 @@ # Create symlink to platform tools mkdir -p $out/dependencies ln -s ${platformTools} $out/dependencies/platform-tools + touch $out/dependencies/platform-tools-${versions.platformTools}.md + + # strip.sh sources install.sh, which expects Criterion to be present. + mkdir -p $out/dependencies/criterion + tar --strip-components 1 -xjf ${criterionArchive} -C $out/dependencies/criterion + touch $out/dependencies/criterion-${criterion.version}.md # Extract scripts from agave/platform-tools-sdk/sbf/scripts/ if [ -d "${agave.src}/platform-tools-sdk/sbf/scripts" ]; then @@ -158,11 +178,10 @@ owner = "anza-xyz"; repo = "agave"; rev = "v${versions.agave}"; - hash = "sha256-RSucqvbshaaby4fALhAQJtZztwsRdA+X7yRnoBxQvsg="; - fetchSubmodules = true; + hash = "sha256-9fVjwEnZqleeS5CAA4IB1ZGCljUNTT0HhxUGu3Bm8Zg="; }; - cargoHash = "sha256-yTS++bUu+4wmbXXZkU4eDq4sGNzls1euptJoY6OYZOM="; + cargoHash = "sha256-SvKpmZ6I7sTh7lMYZLnk4GlIlUL3s4HfjL2Zf+5+G8M="; cargoBuildFlags = map (n: "--bin=${n}") solanaPkgs; @@ -541,7 +560,7 @@ setup_nightly echo "🧪 Running tests with nightly toolchain..." - "$REAL_ANCHOR" test --skip-build "''${extra_args[@]}" + "$REAL_ANCHOR" test --skip-build --validator legacy "''${extra_args[@]}" } # Function to run unit tests with cargo test diff --git a/nix/anchor.nix b/nix/anchor.nix index 20ab6f516..afe481fe4 100644 --- a/nix/anchor.nix +++ b/nix/anchor.nix @@ -2,6 +2,8 @@ lib, stdenv, rustPlatform, + curl, + jq, fetchFromGitHub, pkg-config, openssl, @@ -11,19 +13,18 @@ }: rustPlatform.buildRustPackage rec { pname = "anchor"; - version = "0.32.1"; + version = "1.1.2"; src = fetchFromGitHub { - owner = "solana-foundation"; + owner = "otter-sec"; repo = "anchor"; tag = "v${version}"; - hash = "sha256-oyCe8STDciRtdhOWgJrT+k50HhUWL2LSG8m4Ewnu2dc="; - fetchSubmodules = true; + hash = "sha256-UV5aquH0YqCpex9LDrDdmZmdebhUXKqqsM6X/d2vJIs="; }; - cargoHash = "sha256-XrVvhJ1lFLBA+DwWgTV34jufrcjszpbCgXpF+TUoEvo="; + cargoHash = "sha256-oEgWfklxjP8+TxrhDKJgcTsanpqJpEiHXJyir8neYj8="; - nativeBuildInputs = [perl pkg-config]; + nativeBuildInputs = [perl pkg-config curl jq]; buildInputs = [openssl] ++ lib.optionals stdenv.isLinux [hidapi udev]; @@ -35,8 +36,8 @@ rustPlatform.buildRustPackage rec { meta = with lib; { description = "Solana Sealevel Framework"; - homepage = "https://github.com/solana-foundation/anchor"; - changelog = "https://github.com/solana-foundation/anchor/blob/${src.rev}/CHANGELOG.md"; + homepage = "https://github.com/otter-sec/anchor"; + changelog = "https://github.com/otter-sec/anchor/blob/${src.rev}/CHANGELOG.md"; license = licenses.asl20; mainProgram = "anchor"; }; diff --git a/packages/constrained_types/Cargo.toml b/packages/constrained_types/Cargo.toml index eb0e21d9f..351a1c3c0 100644 --- a/packages/constrained_types/Cargo.toml +++ b/packages/constrained_types/Cargo.toml @@ -8,7 +8,7 @@ description = "Generic constrained types for validated data with compile-time le keywords = ["ibc", "validation", "types", "constraints"] [dependencies] -borsh = { version = "0.10.4", default-features = false, optional = true } +borsh = { version = "=1.5.7", default-features = false, optional = true } [features] default = ["std"] diff --git a/packages/constrained_types/src/lib.rs b/packages/constrained_types/src/lib.rs index 00dcca9e9..96366c53a 100644 --- a/packages/constrained_types/src/lib.rs +++ b/packages/constrained_types/src/lib.rs @@ -215,10 +215,7 @@ pub struct ConstrainedBytes(ConstrainedVec borsh::BorshSerialize for ConstrainedBytes { - fn serialize( - &self, - writer: &mut W, - ) -> borsh::maybestd::io::Result<()> { + fn serialize(&self, writer: &mut W) -> borsh::io::Result<()> { borsh::BorshSerialize::serialize(self.0.as_ref(), writer) } } diff --git a/packages/proof-api/lib/Cargo.toml b/packages/proof-api/lib/Cargo.toml index c08820e6c..a4b9cb68f 100644 --- a/packages/proof-api/lib/Cargo.toml +++ b/packages/proof-api/lib/Cargo.toml @@ -39,6 +39,9 @@ bincode = { workspace = true } borsh = { workspace = true } solana-sdk = { workspace = true } solana-client = { workspace = true } +solana-commitment-config = { workspace = true } +solana-address-lookup-table-interface = { workspace = true } +solana-compute-budget-interface = { workspace = true } solana-transaction-status = { workspace = true } solana-ibc-sdk = { path = "../../../programs/solana/packages/solana-ibc-sdk" } solana-ibc-gmp-types = { path = "../../../programs/solana/packages/solana-ibc-gmp-types" } diff --git a/packages/proof-api/lib/src/listener/solana.rs b/packages/proof-api/lib/src/listener/solana.rs index 77751fa2d..2a15efda1 100644 --- a/packages/proof-api/lib/src/listener/solana.rs +++ b/packages/proof-api/lib/src/listener/solana.rs @@ -2,7 +2,8 @@ use anyhow::{Context, Result}; use solana_client::rpc_client::RpcClient; -use solana_sdk::{commitment_config::CommitmentConfig, pubkey::Pubkey, signature::Signature}; +use solana_commitment_config::CommitmentConfig; +use solana_sdk::{pubkey::Pubkey, signature::Signature}; use solana_transaction_status::UiTransactionEncoding; use std::sync::Arc; diff --git a/packages/proof-api/lib/src/utils/solana_attested.rs b/packages/proof-api/lib/src/utils/solana_attested.rs index d6a6cd9ae..80eb6a184 100644 --- a/packages/proof-api/lib/src/utils/solana_attested.rs +++ b/packages/proof-api/lib/src/utils/solana_attested.rs @@ -12,12 +12,11 @@ use ibc_proto_eureka::ibc::core::{ channel::v2::{MsgAcknowledgement, MsgRecvPacket}, client::v1::Height, }; +use solana_compute_budget_interface::ComputeBudgetInstruction; use solana_ibc_constants::CHUNK_DATA_SIZE; use solana_ibc_sdk::attestation::accounts::ClientState as AttestationClientState; use solana_ibc_sdk::ics26_router::types::Delivery; -use solana_sdk::{ - compute_budget::ComputeBudgetInstruction, instruction::Instruction, pubkey::Pubkey, -}; +use solana_sdk::{instruction::Instruction, pubkey::Pubkey}; /// Maximum compute units allowed per Solana transaction. const MAX_COMPUTE_UNIT_LIMIT: u32 = 1_400_000; diff --git a/packages/proof-api/lib/src/utils/solana_v0_tx.rs b/packages/proof-api/lib/src/utils/solana_v0_tx.rs index 41458cced..455205202 100644 --- a/packages/proof-api/lib/src/utils/solana_v0_tx.rs +++ b/packages/proof-api/lib/src/utils/solana_v0_tx.rs @@ -5,17 +5,16 @@ //! `cosmos-to-solana` proof API modules delegate to these helpers. use anyhow::Result; +use solana_address_lookup_table_interface::{ + instruction::{create_lookup_table, extend_lookup_table}, + state::AddressLookupTable, +}; use solana_client::rpc_client::RpcClient; +use solana_commitment_config::CommitmentConfig; +use solana_compute_budget_interface::ComputeBudgetInstruction; use solana_sdk::{ - address_lookup_table::{ - instruction::{create_lookup_table, extend_lookup_table}, - state::AddressLookupTable, - AddressLookupTableAccount, - }, - commitment_config::CommitmentConfig, - compute_budget::ComputeBudgetInstruction, instruction::Instruction, - message::{v0, VersionedMessage}, + message::{v0, AddressLookupTableAccount, VersionedMessage}, pubkey::Pubkey, transaction::VersionedTransaction, }; @@ -235,6 +234,6 @@ pub fn extend_compute_ix_with_heap() -> Vec { pub fn derive_alt_address(slot: u64, authority: Pubkey) -> (Pubkey, u8) { Pubkey::find_program_address( &[authority.as_ref(), &slot.to_le_bytes()], - &solana_sdk::address_lookup_table::program::id(), + &solana_address_lookup_table_interface::program::id(), ) } diff --git a/packages/proof-api/modules/cosmos-to-solana/Cargo.toml b/packages/proof-api/modules/cosmos-to-solana/Cargo.toml index b790246ce..a26d36e87 100644 --- a/packages/proof-api/modules/cosmos-to-solana/Cargo.toml +++ b/packages/proof-api/modules/cosmos-to-solana/Cargo.toml @@ -25,13 +25,15 @@ ed25519-consensus = "2.1" # Solana specific dependencies solana-client.workspace = true solana-sdk.workspace = true +solana-commitment-config.workspace = true +solana-sdk-ids.workspace = true +solana-system-interface.workspace = true +solana-ed25519-program.workspace = true solana-transaction-status.workspace = true bincode.workspace = true hex.workspace = true anchor-lang.workspace = true -anchor-client.workspace = true -# Pin borsh 0.10.4 for Anchor/Solana type compatibility (not workspace borsh 1.x) -borsh = { version = "0.10.4", default-features = false } +borsh.workspace = true ibc-proto-eureka.workspace = true ibc-proto.workspace = true @@ -50,8 +52,8 @@ solana-ibc-proto = { path = "../../../../programs/solana/pack solana-ibc-gmp-types = { path = "../../../../programs/solana/packages/solana-ibc-gmp-types" } # SPL Token dependencies -spl-token = "8.0" -spl-associated-token-account = "7.0" +spl-token = "9.0" +spl-associated-token-account = "8.0" # Encoding base64.workspace = true diff --git a/packages/proof-api/modules/cosmos-to-solana/src/tx_builder.rs b/packages/proof-api/modules/cosmos-to-solana/src/tx_builder.rs index ae04ca41b..bdb8cf281 100644 --- a/packages/proof-api/modules/cosmos-to-solana/src/tx_builder.rs +++ b/packages/proof-api/modules/cosmos-to-solana/src/tx_builder.rs @@ -36,7 +36,8 @@ use proof_api_lib::{ }, }; use solana_client::rpc_client::RpcClient; -use solana_sdk::{commitment_config::CommitmentConfig, pubkey::Pubkey}; +use solana_commitment_config::CommitmentConfig; +use solana_sdk::pubkey::Pubkey; use crate::constants::ANCHOR_DISCRIMINATOR_SIZE; use proof_api_core::api::{self, SolanaPacketTxs}; @@ -197,7 +198,7 @@ impl TxBuilder { )?; let borsh_header = crate::borsh_conversions::header_to_borsh(header); - let header_bytes = borsh_header.try_to_vec()?; + let header_bytes = borsh::to_vec(&borsh_header)?; let chunks = Self::split_into_chunks(&header_bytes); let total_chunks = u8::try_from(chunks.len()) .map_err(|_| anyhow::anyhow!("Too many chunks: {} should fit u8", chunks.len()))?; @@ -287,7 +288,7 @@ impl TxBuilder { trusted_consensus_state, new_consensus_state, self.fee_payer, - solana_sdk::system_program::id(), + solana_sdk_ids::system_program::id(), ]; alt_accounts.extend((0..total_chunks).map(|chunk_index| { diff --git a/packages/proof-api/modules/cosmos-to-solana/src/tx_builder/chunking.rs b/packages/proof-api/modules/cosmos-to-solana/src/tx_builder/chunking.rs index 830cc942c..00b47733e 100644 --- a/packages/proof-api/modules/cosmos-to-solana/src/tx_builder/chunking.rs +++ b/packages/proof-api/modules/cosmos-to-solana/src/tx_builder/chunking.rs @@ -3,8 +3,8 @@ use std::collections::HashSet; use anyhow::Result; +use solana_commitment_config::CommitmentConfig; use solana_sdk::{ - commitment_config::CommitmentConfig, instruction::{AccountMeta, Instruction}, pubkey::Pubkey, }; @@ -490,7 +490,7 @@ impl super::TxBuilder { } tracing::info!("GMP PDA {gmp_pda}: pre-funding {capped} lamports"); - Ok(Some(solana_sdk::system_instruction::transfer( + Ok(Some(solana_system_interface::instruction::transfer( &self.fee_payer, &gmp_pda, capped, @@ -528,8 +528,8 @@ impl super::TxBuilder { // Add fee payer and system program first (these always exist) alt_accounts.push(self.fee_payer); seen.insert(self.fee_payer); - alt_accounts.push(solana_sdk::system_program::id()); - seen.insert(solana_sdk::system_program::id()); + alt_accounts.push(solana_sdk_ids::system_program::id()); + seen.insert(solana_sdk_ids::system_program::id()); // Add all accounts from instructions, but only if they exist on-chain for ix in instructions { diff --git a/packages/proof-api/modules/cosmos-to-solana/src/tx_builder/client.rs b/packages/proof-api/modules/cosmos-to-solana/src/tx_builder/client.rs index 0f35455bd..d85238b79 100644 --- a/packages/proof-api/modules/cosmos-to-solana/src/tx_builder/client.rs +++ b/packages/proof-api/modules/cosmos-to-solana/src/tx_builder/client.rs @@ -1,9 +1,10 @@ //! Client operations - create/update client and signature verification. +use anchor_lang::solana_program::bpf_loader_upgradeable; use anyhow::{Context, Result}; use ibc_client_tendermint::types::Header as TmHeader; +use solana_ed25519_program::{Ed25519SignatureOffsets, DATA_START}; use solana_sdk::{ - ed25519_instruction::{Ed25519SignatureOffsets, DATA_START}, instruction::{AccountMeta, Instruction}, pubkey::Pubkey, }; @@ -40,7 +41,7 @@ impl super::TxBuilder { let (program_data_pda, _) = Pubkey::find_program_address( &[solana_ics07_program_id.as_ref()], - &solana_sdk::bpf_loader_upgradeable::id(), + &bpf_loader_upgradeable::id(), ); Initialize::builder(&solana_ics07_program_id) @@ -359,8 +360,8 @@ impl super::TxBuilder { } /// Builds a single signature pre-verification transaction - /// NOTE: Can't use `solana_sdk` `ed25519_instruction` because it requires tx signing which we do - /// in the grpc caller, not here + /// NOTE: Can't use the SDK Ed25519 instruction helper because it requires tx signing, which is + /// done in the gRPC caller instead. pub(crate) fn build_pre_verify_signature_transaction( &self, sig_data: &SignatureData, diff --git a/packages/proof-api/modules/cosmos-to-solana/src/tx_builder/packets.rs b/packages/proof-api/modules/cosmos-to-solana/src/tx_builder/packets.rs index b8e539800..acec83138 100644 --- a/packages/proof-api/modules/cosmos-to-solana/src/tx_builder/packets.rs +++ b/packages/proof-api/modules/cosmos-to-solana/src/tx_builder/packets.rs @@ -2,8 +2,8 @@ use anchor_lang::prelude::*; use anyhow::Result; +use solana_commitment_config::CommitmentConfig; use solana_sdk::{ - commitment_config::CommitmentConfig, instruction::{AccountMeta, Instruction}, pubkey::Pubkey, }; diff --git a/packages/proof-api/modules/cosmos-to-solana/src/tx_builder/transaction.rs b/packages/proof-api/modules/cosmos-to-solana/src/tx_builder/transaction.rs index 84e6d5f8a..637512b78 100644 --- a/packages/proof-api/modules/cosmos-to-solana/src/tx_builder/transaction.rs +++ b/packages/proof-api/modules/cosmos-to-solana/src/tx_builder/transaction.rs @@ -1,8 +1,10 @@ //! Transaction building utilities for Solana. use anchor_lang::prelude::*; +use anchor_lang::solana_program::bpf_loader_upgradeable; use anyhow::{Context, Result}; -use solana_sdk::{commitment_config::CommitmentConfig, instruction::Instruction, pubkey::Pubkey}; +use solana_commitment_config::CommitmentConfig; +use solana_sdk::{instruction::Instruction, pubkey::Pubkey}; use crate::constants::ANCHOR_DISCRIMINATOR_SIZE; use proof_api_lib::utils::solana_v0_tx; @@ -31,7 +33,7 @@ impl super::TxBuilder { let (program_data_pda, _) = Pubkey::find_program_address( &[solana_ics07_program_id.as_ref()], - &solana_sdk::bpf_loader_upgradeable::id(), + &bpf_loader_upgradeable::id(), ); let account = self @@ -41,12 +43,12 @@ impl super::TxBuilder { .value .ok_or_else(|| anyhow::anyhow!("ICS07 ProgramData account not found"))?; - let loader_state: solana_sdk::bpf_loader_upgradeable::UpgradeableLoaderState = + let loader_state: bpf_loader_upgradeable::UpgradeableLoaderState = bincode::deserialize(&account.data) .map_err(|e| anyhow::anyhow!("Failed to deserialize ProgramData: {e}"))?; match loader_state { - solana_sdk::bpf_loader_upgradeable::UpgradeableLoaderState::ProgramData { + bpf_loader_upgradeable::UpgradeableLoaderState::ProgramData { upgrade_authority_address: Some(authority), .. } => Ok(authority), diff --git a/packages/proof-api/modules/eth-to-solana/Cargo.toml b/packages/proof-api/modules/eth-to-solana/Cargo.toml index 25265c1c1..2cb50cc38 100644 --- a/packages/proof-api/modules/eth-to-solana/Cargo.toml +++ b/packages/proof-api/modules/eth-to-solana/Cargo.toml @@ -24,6 +24,9 @@ alloy = { workspace = true, features = ["full", "node-bindings", "reqwest-rustls # Solana dependencies solana-client.workspace = true solana-sdk.workspace = true +solana-commitment-config.workspace = true +solana-sdk-ids.workspace = true +solana-system-interface.workspace = true solana-transaction-status.workspace = true bincode.workspace = true sha2.workspace = true @@ -38,8 +41,8 @@ solana-ibc-constants = { path = "../../../../programs/solana/pack solana-ibc-proto = { path = "../../../../programs/solana/packages/solana-ibc-proto" } # SPL Token dependencies -spl-token = "8.0" -spl-associated-token-account = "7.0" +spl-token = "9.0" +spl-associated-token-account = "8.0" [dev-dependencies] tokio = { workspace = true, features = ["macros", "rt-multi-thread"] } diff --git a/packages/proof-api/modules/eth-to-solana/src/tx_builder.rs b/packages/proof-api/modules/eth-to-solana/src/tx_builder.rs index 7dd3c5dfd..45feb7b83 100644 --- a/packages/proof-api/modules/eth-to-solana/src/tx_builder.rs +++ b/packages/proof-api/modules/eth-to-solana/src/tx_builder.rs @@ -10,7 +10,8 @@ use std::sync::Arc; use anchor_lang::prelude::*; use anyhow::{Context, Result}; use solana_client::rpc_client::RpcClient; -use solana_sdk::{commitment_config::CommitmentConfig, instruction::Instruction, pubkey::Pubkey}; +use solana_commitment_config::CommitmentConfig; +use solana_sdk::{instruction::Instruction, pubkey::Pubkey}; use crate::constants::ANCHOR_DISCRIMINATOR_SIZE; use proof_api_lib::events::{EurekaEventWithHeight, SolanaEurekaEventWithHeight}; diff --git a/packages/proof-api/modules/eth-to-solana/src/tx_builder/attested.rs b/packages/proof-api/modules/eth-to-solana/src/tx_builder/attested.rs index b26adaa03..584fd0c4e 100644 --- a/packages/proof-api/modules/eth-to-solana/src/tx_builder/attested.rs +++ b/packages/proof-api/modules/eth-to-solana/src/tx_builder/attested.rs @@ -20,7 +20,7 @@ use proof_api_lib::{ solana_attested, wait_for_condition, }, }; -use solana_sdk::commitment_config::CommitmentConfig; +use solana_commitment_config::CommitmentConfig; use proof_api_core::api::{self, SolanaPacketTxs}; diff --git a/packages/proof-api/modules/eth-to-solana/src/tx_builder/packets.rs b/packages/proof-api/modules/eth-to-solana/src/tx_builder/packets.rs index ad83bfb2c..bbaddee01 100644 --- a/packages/proof-api/modules/eth-to-solana/src/tx_builder/packets.rs +++ b/packages/proof-api/modules/eth-to-solana/src/tx_builder/packets.rs @@ -4,8 +4,8 @@ use std::collections::HashSet; use anchor_lang::prelude::*; use anyhow::Result; +use solana_commitment_config::CommitmentConfig; use solana_sdk::{ - commitment_config::CommitmentConfig, instruction::{AccountMeta, Instruction}, pubkey::Pubkey, }; @@ -639,8 +639,8 @@ impl super::SolanaTxBuilder { alt_accounts.push(self.fee_payer); seen.insert(self.fee_payer); - alt_accounts.push(solana_sdk::system_program::id()); - seen.insert(solana_sdk::system_program::id()); + alt_accounts.push(solana_sdk_ids::system_program::id()); + seen.insert(solana_sdk_ids::system_program::id()); for ix in instructions { if seen.insert(ix.program_id) { @@ -761,7 +761,7 @@ impl super::SolanaTxBuilder { } tracing::info!("GMP PDA {gmp_pda}: pre-funding {capped} lamports"); - Ok(Some(solana_sdk::system_instruction::transfer( + Ok(Some(solana_system_interface::instruction::transfer( &self.fee_payer, &gmp_pda, capped, diff --git a/packages/proof-api/modules/solana-to-cosmos/Cargo.lock b/packages/proof-api/modules/solana-to-cosmos/Cargo.lock deleted file mode 100644 index b2e5e8014..000000000 --- a/packages/proof-api/modules/solana-to-cosmos/Cargo.lock +++ /dev/null @@ -1,13985 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" -dependencies = [ - "lazy_static", - "regex", -] - -[[package]] -name = "addchain" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2e69442aa5628ea6951fa33e24efe8313f4321a91bd729fc2f75bdfc858570" -dependencies = [ - "num-bigint 0.3.3", - "num-integer", - "num-traits", -] - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" - -[[package]] -name = "aead" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" -dependencies = [ - "crypto-common", - "generic-array 0.14.7", -] - -[[package]] -name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", -] - -[[package]] -name = "aes-gcm-siv" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae0784134ba9375416d469ec31e7c5f9fa94405049cf08c5ce5b4698be673e0d" -dependencies = [ - "aead", - "aes", - "cipher", - "ctr", - "polyval", - "subtle", - "zeroize", -] - -[[package]] -name = "agave-feature-set" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e35cc5b8887b993ba4975a23b6e098ee10db50e8e23ee3a9523035b7ca35b53b" -dependencies = [ - "ahash", - "solana-epoch-schedule", - "solana-hash", - "solana-pubkey", - "solana-sha256-hasher", - "solana-svm-feature-set", -] - -[[package]] -name = "agave-reserved-account-keys" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "685cb445fe51b7b8a914d1b7dd5a0ea0b106fb8ea9454e84c4cd726a5d87c571" -dependencies = [ - "agave-feature-set", - "solana-pubkey", - "solana-sdk-ids", -] - -[[package]] -name = "ahash" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" -dependencies = [ - "cfg-if", - "getrandom 0.3.3", - "once_cell", - "version_check", - "zerocopy", -] - -[[package]] -name = "aho-corasick" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" -dependencies = [ - "memchr", -] - -[[package]] -name = "alloc-no-stdlib" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" - -[[package]] -name = "alloc-stdlib" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" -dependencies = [ - "alloc-no-stdlib", -] - -[[package]] -name = "allocator-api2" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" - -[[package]] -name = "alloy" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e0d1aecf3cab3d0e7383064ce488616434b4ade10d8904dff422e74203c712f" -dependencies = [ - "alloy-consensus 1.0.17", - "alloy-contract", - "alloy-core", - "alloy-eips 1.0.17", - "alloy-network 1.0.17", - "alloy-node-bindings", - "alloy-provider", - "alloy-pubsub", - "alloy-rpc-client", - "alloy-rpc-types", - "alloy-serde 1.0.17", - "alloy-signer 1.0.17", - "alloy-signer-local 1.0.17", - "alloy-transport", - "alloy-transport-http", - "alloy-transport-ipc", - "alloy-transport-ws", -] - -[[package]] -name = "alloy-chains" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5674914c2cfdb866c21cb0c09d82374ee39a1395cf512e7515f4c014083b3fff" -dependencies = [ - "alloy-primitives 1.2.1", - "num_enum 0.7.4", - "strum 0.27.1", -] - -[[package]] -name = "alloy-consensus" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2179ba839ac532f50279f5da2a6c5047f791f03f6f808b4dfab11327b97902f" -dependencies = [ - "alloy-eips 0.14.0", - "alloy-primitives 1.2.1", - "alloy-rlp", - "alloy-serde 0.14.0", - "alloy-trie 0.8.1", - "auto_impl", - "c-kzg", - "derive_more 2.0.1", - "either", - "k256", - "once_cell", - "rand 0.8.5", - "serde", - "serde_with", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-consensus" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9c6ad411efe0f49e0e99b9c7d8749a1eb55f6dbf74a1bc6953ab285b02c4f67" -dependencies = [ - "alloy-eips 1.0.17", - "alloy-primitives 1.2.1", - "alloy-rlp", - "alloy-serde 1.0.17", - "alloy-trie 0.9.0", - "alloy-tx-macros", - "auto_impl", - "c-kzg", - "derive_more 2.0.1", - "either", - "k256", - "once_cell", - "rand 0.8.5", - "secp256k1", - "serde", - "serde_with", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-consensus-any" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aec6f67bdc62aa277e0ec13c1b1fb396c8a62b65c8e9bd8c1d3583cc6d1a8dd3" -dependencies = [ - "alloy-consensus 0.14.0", - "alloy-eips 0.14.0", - "alloy-primitives 1.2.1", - "alloy-rlp", - "alloy-serde 0.14.0", - "serde", -] - -[[package]] -name = "alloy-consensus-any" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf397edad57b696501702d5887e4e14d7d0bbae9fbb6439e148d361f7254f45" -dependencies = [ - "alloy-consensus 1.0.17", - "alloy-eips 1.0.17", - "alloy-primitives 1.2.1", - "alloy-rlp", - "alloy-serde 1.0.17", - "serde", -] - -[[package]] -name = "alloy-contract" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "977b97d271159578afcb26e39e1ca5ce1a7f937697793d7d571b0166dd8b8225" -dependencies = [ - "alloy-consensus 1.0.17", - "alloy-dyn-abi", - "alloy-json-abi 1.2.1", - "alloy-network 1.0.17", - "alloy-network-primitives 1.0.17", - "alloy-primitives 1.2.1", - "alloy-provider", - "alloy-pubsub", - "alloy-rpc-types-eth 1.0.17", - "alloy-sol-types 1.2.1", - "alloy-transport", - "futures", - "futures-util", - "serde_json", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-core" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad31216895d27d307369daa1393f5850b50bbbd372478a9fa951c095c210627e" -dependencies = [ - "alloy-dyn-abi", - "alloy-json-abi 1.2.1", - "alloy-primitives 1.2.1", - "alloy-rlp", - "alloy-sol-types 1.2.1", -] - -[[package]] -name = "alloy-dyn-abi" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b95b3deca680efc7e9cba781f1a1db352fa1ea50e6384a514944dcf4419e652" -dependencies = [ - "alloy-json-abi 1.2.1", - "alloy-primitives 1.2.1", - "alloy-sol-type-parser 1.2.1", - "alloy-sol-types 1.2.1", - "itoa", - "serde", - "serde_json", - "winnow 0.7.11", -] - -[[package]] -name = "alloy-eip2124" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "741bdd7499908b3aa0b159bba11e71c8cddd009a2c2eb7a06e825f1ec87900a5" -dependencies = [ - "alloy-primitives 1.2.1", - "alloy-rlp", - "crc", - "serde", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-eip2930" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b82752a889170df67bbb36d42ca63c531eb16274f0d7299ae2a680facba17bd" -dependencies = [ - "alloy-primitives 1.2.1", - "alloy-rlp", - "serde", -] - -[[package]] -name = "alloy-eip7702" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d4769c6ffddca380b0070d71c8b7f30bed375543fe76bb2f74ec0acf4b7cd16" -dependencies = [ - "alloy-primitives 1.2.1", - "alloy-rlp", - "k256", - "serde", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-eips" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "609515c1955b33af3d78d26357540f68c5551a90ef58fd53def04f2aa074ec43" -dependencies = [ - "alloy-eip2124", - "alloy-eip2930", - "alloy-eip7702", - "alloy-primitives 1.2.1", - "alloy-rlp", - "alloy-serde 0.14.0", - "auto_impl", - "c-kzg", - "derive_more 2.0.1", - "either", - "serde", - "sha2 0.10.9", -] - -[[package]] -name = "alloy-eips" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "749b8449e4daf7359bdf1dabdba6ce424ff8b1bdc23bdb795661b2e991a08d87" -dependencies = [ - "alloy-eip2124", - "alloy-eip2930", - "alloy-eip7702", - "alloy-primitives 1.2.1", - "alloy-rlp", - "alloy-serde 1.0.17", - "auto_impl", - "c-kzg", - "derive_more 2.0.1", - "either", - "serde", - "sha2 0.10.9", -] - -[[package]] -name = "alloy-genesis" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fcbae2107f3f2df2b02bb7d9e81e8aa730ae371ca9dd7fd0c81c3d0cb78a452" -dependencies = [ - "alloy-eips 1.0.17", - "alloy-primitives 1.2.1", - "alloy-serde 1.0.17", - "alloy-trie 0.9.0", - "serde", -] - -[[package]] -name = "alloy-hardforks" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ce138b29a2f8e7ed97c064af8359dfa6559c12cba5e821ae4eb93081a56557e" -dependencies = [ - "alloy-chains", - "alloy-eip2124", - "alloy-primitives 1.2.1", - "auto_impl", - "dyn-clone", -] - -[[package]] -name = "alloy-json-abi" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe6beff64ad0aa6ad1019a3db26fef565aefeb011736150ab73ed3366c3cfd1b" -dependencies = [ - "alloy-primitives 0.8.25", - "alloy-sol-type-parser 0.8.25", - "serde", -] - -[[package]] -name = "alloy-json-abi" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15516116086325c157c18261d768a20677f0f699348000ed391d4ad0dcb82530" -dependencies = [ - "alloy-primitives 1.2.1", - "alloy-sol-type-parser 1.2.1", - "serde", - "serde_json", -] - -[[package]] -name = "alloy-json-rpc" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3994ab6ff6bdeb5aebe65381a8f6a47534789817570111555e8ac413e242ce06" -dependencies = [ - "alloy-primitives 1.2.1", - "alloy-sol-types 1.2.1", - "serde", - "serde_json", - "thiserror 2.0.12", - "tracing", -] - -[[package]] -name = "alloy-json-rpc" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc30b0e20fcd0843834ecad2a716661c7b9d5aca2486f8e96b93d5246eb83e06" -dependencies = [ - "alloy-primitives 1.2.1", - "alloy-sol-types 1.2.1", - "http 1.3.1", - "serde", - "serde_json", - "thiserror 2.0.12", - "tracing", -] - -[[package]] -name = "alloy-network" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0be3aa020a6d3aa7601185b4c1a7d6f3a5228cb5424352db63064b29a455c891" -dependencies = [ - "alloy-consensus 0.14.0", - "alloy-consensus-any 0.14.0", - "alloy-eips 0.14.0", - "alloy-json-rpc 0.14.0", - "alloy-network-primitives 0.14.0", - "alloy-primitives 1.2.1", - "alloy-rpc-types-any 0.14.0", - "alloy-rpc-types-eth 0.14.0", - "alloy-serde 0.14.0", - "alloy-signer 0.14.0", - "alloy-sol-types 1.2.1", - "async-trait", - "auto_impl", - "derive_more 2.0.1", - "futures-utils-wasm", - "serde", - "serde_json", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-network" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaeb681024cf71f5ca14f3d812c0a8d8b49f13f7124713538e66d74d3bfe6aff" -dependencies = [ - "alloy-consensus 1.0.17", - "alloy-consensus-any 1.0.17", - "alloy-eips 1.0.17", - "alloy-json-rpc 1.0.17", - "alloy-network-primitives 1.0.17", - "alloy-primitives 1.2.1", - "alloy-rpc-types-any 1.0.17", - "alloy-rpc-types-eth 1.0.17", - "alloy-serde 1.0.17", - "alloy-signer 1.0.17", - "alloy-sol-types 1.2.1", - "async-trait", - "auto_impl", - "derive_more 2.0.1", - "futures-utils-wasm", - "serde", - "serde_json", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-network-primitives" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "498f2ee2eef38a6db0fc810c7bf7daebdf5f2fa8d04adb8bd53e54e91ddbdea3" -dependencies = [ - "alloy-consensus 0.14.0", - "alloy-eips 0.14.0", - "alloy-primitives 1.2.1", - "alloy-serde 0.14.0", - "serde", -] - -[[package]] -name = "alloy-network-primitives" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a03ad273e1c55cc481889b4130e82860e33624e6969e9a08854e0f3ebe659295" -dependencies = [ - "alloy-consensus 1.0.17", - "alloy-eips 1.0.17", - "alloy-primitives 1.2.1", - "alloy-serde 1.0.17", - "serde", -] - -[[package]] -name = "alloy-node-bindings" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d4f3ab81744547ab8283aa94c9670d3880ac826642e52739e3c4ecbfa84857a" -dependencies = [ - "alloy-genesis", - "alloy-hardforks", - "alloy-network 1.0.17", - "alloy-primitives 1.2.1", - "alloy-signer 1.0.17", - "alloy-signer-local 1.0.17", - "k256", - "rand 0.8.5", - "serde_json", - "tempfile", - "thiserror 2.0.12", - "tracing", - "url", -] - -[[package]] -name = "alloy-primitives" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c77490fe91a0ce933a1f219029521f20fc28c2c0ca95d53fa4da9c00b8d9d4e" -dependencies = [ - "alloy-rlp", - "bytes", - "cfg-if", - "const-hex", - "derive_more 2.0.1", - "hashbrown 0.15.4", - "indexmap 2.10.0", - "itoa", - "paste", - "rand 0.8.5", - "ruint", - "serde", - "tiny-keccak", -] - -[[package]] -name = "alloy-primitives" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6177ed26655d4e84e00b65cb494d4e0b8830e7cae7ef5d63087d445a2600fb55" -dependencies = [ - "alloy-rlp", - "arbitrary", - "bytes", - "cfg-if", - "const-hex", - "derive_arbitrary", - "derive_more 2.0.1", - "foldhash", - "hashbrown 0.15.4", - "indexmap 2.10.0", - "itoa", - "k256", - "keccak-asm", - "paste", - "proptest", - "proptest-derive", - "rand 0.9.1", - "ruint", - "rustc-hash 2.1.1", - "serde", - "sha3", - "tiny-keccak", -] - -[[package]] -name = "alloy-provider" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abc164acf8c41c756e76c7aea3be8f0fb03f8a3ef90a33e3ddcea5d1614d8779" -dependencies = [ - "alloy-chains", - "alloy-consensus 1.0.17", - "alloy-eips 1.0.17", - "alloy-json-rpc 1.0.17", - "alloy-network 1.0.17", - "alloy-network-primitives 1.0.17", - "alloy-node-bindings", - "alloy-primitives 1.2.1", - "alloy-pubsub", - "alloy-rpc-client", - "alloy-rpc-types-anvil", - "alloy-rpc-types-debug", - "alloy-rpc-types-eth 1.0.17", - "alloy-rpc-types-trace", - "alloy-rpc-types-txpool", - "alloy-signer 1.0.17", - "alloy-sol-types 1.2.1", - "alloy-transport", - "alloy-transport-http", - "alloy-transport-ipc", - "alloy-transport-ws", - "async-stream", - "async-trait", - "auto_impl", - "dashmap 6.1.0", - "either", - "futures", - "futures-utils-wasm", - "http 1.3.1", - "lru 0.13.0", - "parking_lot", - "pin-project", - "reqwest 0.12.22", - "serde", - "serde_json", - "thiserror 2.0.12", - "tokio", - "tracing", - "url", - "wasmtimer", -] - -[[package]] -name = "alloy-pubsub" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "670d155c3e35bcaa252ca706a2757a456c56aa71b80ad1539d07d49b86304e78" -dependencies = [ - "alloy-json-rpc 1.0.17", - "alloy-primitives 1.2.1", - "alloy-transport", - "bimap", - "futures", - "parking_lot", - "serde", - "serde_json", - "tokio", - "tokio-stream", - "tower 0.5.2", - "tracing", - "wasmtimer", -] - -[[package]] -name = "alloy-rlp" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f70d83b765fdc080dbcd4f4db70d8d23fe4761f2f02ebfa9146b833900634b4" -dependencies = [ - "alloy-rlp-derive", - "arrayvec", - "bytes", -] - -[[package]] -name = "alloy-rlp-derive" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "alloy-rpc-client" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c44d31bcb9afad460915fe1fba004a2af5a07a3376c307b9bdfeec3678c209" -dependencies = [ - "alloy-json-rpc 1.0.17", - "alloy-primitives 1.2.1", - "alloy-pubsub", - "alloy-transport", - "alloy-transport-http", - "alloy-transport-ipc", - "alloy-transport-ws", - "async-stream", - "futures", - "pin-project", - "reqwest 0.12.22", - "serde", - "serde_json", - "tokio", - "tokio-stream", - "tower 0.5.2", - "tracing", - "tracing-futures", - "url", - "wasmtimer", -] - -[[package]] -name = "alloy-rpc-types" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ba2cf3d3c6ece87f1c6bb88324a997f28cf0ad7e98d5e0b6fa91c4003c30916" -dependencies = [ - "alloy-primitives 1.2.1", - "alloy-rpc-types-anvil", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth 1.0.17", - "alloy-rpc-types-trace", - "alloy-rpc-types-txpool", - "alloy-serde 1.0.17", - "serde", -] - -[[package]] -name = "alloy-rpc-types-anvil" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65e80e2ffa56956a92af375df1422b239fde6552bd222dfeaeb39f07949060fa" -dependencies = [ - "alloy-primitives 1.2.1", - "alloy-rpc-types-eth 1.0.17", - "alloy-serde 1.0.17", - "serde", -] - -[[package]] -name = "alloy-rpc-types-any" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1a40595b927dfb07218459037837dbc8de8500a26024bb6ff0548dd2ccc13e0" -dependencies = [ - "alloy-consensus-any 0.14.0", - "alloy-rpc-types-eth 0.14.0", - "alloy-serde 0.14.0", -] - -[[package]] -name = "alloy-rpc-types-any" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef5b22062142ce3b2ed3374337d4b343437e5de6959397f55d2c9fe2c2ce0162" -dependencies = [ - "alloy-consensus-any 1.0.17", - "alloy-rpc-types-eth 1.0.17", - "alloy-serde 1.0.17", -] - -[[package]] -name = "alloy-rpc-types-debug" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f53a2a78b44582e0742ab96d5782842d9b90cebf6ef6ccd8be864ae246fdd0f" -dependencies = [ - "alloy-primitives 1.2.1", - "serde", -] - -[[package]] -name = "alloy-rpc-types-engine" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7041c3fd4dcd7af95e86280944cc33b4492ac2ddbe02f84079f8019742ec2857" -dependencies = [ - "alloy-consensus 1.0.17", - "alloy-eips 1.0.17", - "alloy-primitives 1.2.1", - "alloy-rlp", - "alloy-serde 1.0.17", - "derive_more 2.0.1", - "rand 0.8.5", - "serde", - "strum 0.27.1", -] - -[[package]] -name = "alloy-rpc-types-eth" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2a9f64e0f69cfb6029e2a044519a1bdd44ce9fc334d5315a7b9837f7a6748e5" -dependencies = [ - "alloy-consensus 0.14.0", - "alloy-consensus-any 0.14.0", - "alloy-eips 0.14.0", - "alloy-network-primitives 0.14.0", - "alloy-primitives 1.2.1", - "alloy-rlp", - "alloy-serde 0.14.0", - "alloy-sol-types 1.2.1", - "itertools 0.14.0", - "serde", - "serde_json", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-rpc-types-eth" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391e59f81bacbffc7bddd2da3a26d6eec0e2058e9237c279e9b1052bdf21b49e" -dependencies = [ - "alloy-consensus 1.0.17", - "alloy-consensus-any 1.0.17", - "alloy-eips 1.0.17", - "alloy-network-primitives 1.0.17", - "alloy-primitives 1.2.1", - "alloy-rlp", - "alloy-serde 1.0.17", - "alloy-sol-types 1.2.1", - "itertools 0.14.0", - "serde", - "serde_json", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-rpc-types-trace" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29d96238f37e8a72dcf2cf6bead4c4f91dec1c0720b12be10558406e1633a804" -dependencies = [ - "alloy-primitives 1.2.1", - "alloy-rpc-types-eth 1.0.17", - "alloy-serde 1.0.17", - "serde", - "serde_json", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-rpc-types-txpool" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e45d00db47a280d0a6e498b6e63344bccd9485d8860d2e2f06b680200c37ebc2" -dependencies = [ - "alloy-primitives 1.2.1", - "alloy-rpc-types-eth 1.0.17", - "alloy-serde 1.0.17", - "serde", -] - -[[package]] -name = "alloy-serde" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4dba6ff08916bc0a9cbba121ce21f67c0b554c39cf174bc7b9df6c651bd3c3b" -dependencies = [ - "alloy-primitives 1.2.1", - "serde", - "serde_json", -] - -[[package]] -name = "alloy-serde" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea08bc854235d4dff08fd57df8033285c11b8d7548b20c6da218194e7e6035f" -dependencies = [ - "alloy-primitives 1.2.1", - "serde", - "serde_json", -] - -[[package]] -name = "alloy-signer" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c580da7f00f3999e44e327223044d6732358627f93043e22d92c583f6583556" -dependencies = [ - "alloy-primitives 1.2.1", - "async-trait", - "auto_impl", - "either", - "elliptic-curve", - "k256", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-signer" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcb3759f85ef5f010a874d9ebd5ee6ce01cac65211510863124e0ebac6552db0" -dependencies = [ - "alloy-primitives 1.2.1", - "async-trait", - "auto_impl", - "either", - "elliptic-curve", - "k256", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-signer-local" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a00f0f07862bd8f6bc66c953660693c5903062c2c9d308485b2a6eee411089e7" -dependencies = [ - "alloy-consensus 0.14.0", - "alloy-network 0.14.0", - "alloy-primitives 1.2.1", - "alloy-signer 0.14.0", - "async-trait", - "k256", - "rand 0.8.5", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-signer-local" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14d95902d29e1290809e1c967a1e974145b44b78f6e3e12fc07a60c1225e3df0" -dependencies = [ - "alloy-consensus 1.0.17", - "alloy-network 1.0.17", - "alloy-primitives 1.2.1", - "alloy-signer 1.0.17", - "async-trait", - "k256", - "rand 0.8.5", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-sol-macro" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10ae8e9a91d328ae954c22542415303919aabe976fe7a92eb06db1b68fd59f2" -dependencies = [ - "alloy-sol-macro-expander 0.8.25", - "alloy-sol-macro-input 0.8.25", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "alloy-sol-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a14f21d053aea4c6630687c2f4ad614bed4c81e14737a9b904798b24f30ea849" -dependencies = [ - "alloy-sol-macro-expander 1.2.1", - "alloy-sol-macro-input 1.2.1", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "alloy-sol-macro-expander" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83ad5da86c127751bc607c174d6c9fe9b85ef0889a9ca0c641735d77d4f98f26" -dependencies = [ - "alloy-json-abi 0.8.25", - "alloy-sol-macro-input 0.8.25", - "const-hex", - "heck 0.5.0", - "indexmap 2.10.0", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.104", - "syn-solidity 0.8.25", - "tiny-keccak", -] - -[[package]] -name = "alloy-sol-macro-expander" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34d99282e7c9ef14eb62727981a985a01869e586d1dec729d3bb33679094c100" -dependencies = [ - "alloy-json-abi 1.2.1", - "alloy-sol-macro-input 1.2.1", - "const-hex", - "heck 0.5.0", - "indexmap 2.10.0", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.104", - "syn-solidity 1.2.1", - "tiny-keccak", -] - -[[package]] -name = "alloy-sol-macro-input" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3d30f0d3f9ba3b7686f3ff1de9ee312647aac705604417a2f40c604f409a9e" -dependencies = [ - "alloy-json-abi 0.8.25", - "const-hex", - "dunce", - "heck 0.5.0", - "macro-string", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.104", - "syn-solidity 0.8.25", -] - -[[package]] -name = "alloy-sol-macro-input" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda029f955b78e493360ee1d7bd11e1ab9f2a220a5715449babc79d6d0a01105" -dependencies = [ - "alloy-json-abi 1.2.1", - "const-hex", - "dunce", - "heck 0.5.0", - "macro-string", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.104", - "syn-solidity 1.2.1", -] - -[[package]] -name = "alloy-sol-type-parser" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d162f8524adfdfb0e4bd0505c734c985f3e2474eb022af32eef0d52a4f3935c" -dependencies = [ - "serde", - "winnow 0.7.11", -] - -[[package]] -name = "alloy-sol-type-parser" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10db1bd7baa35bc8d4a1b07efbf734e73e5ba09f2580fb8cee3483a36087ceb2" -dependencies = [ - "serde", - "winnow 0.7.11", -] - -[[package]] -name = "alloy-sol-types" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d43d5e60466a440230c07761aa67671d4719d46f43be8ea6e7ed334d8db4a9ab" -dependencies = [ - "alloy-json-abi 0.8.25", - "alloy-primitives 0.8.25", - "alloy-sol-macro 0.8.25", - "const-hex", -] - -[[package]] -name = "alloy-sol-types" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58377025a47d8b8426b3e4846a251f2c1991033b27f517aade368146f6ab1dfe" -dependencies = [ - "alloy-json-abi 1.2.1", - "alloy-primitives 1.2.1", - "alloy-sol-macro 1.2.1", - "serde", -] - -[[package]] -name = "alloy-transport" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcdf4b7fc58ebb2605b2fc5a33dae5cf15527ea70476978351cc0db1c596ea93" -dependencies = [ - "alloy-json-rpc 1.0.17", - "alloy-primitives 1.2.1", - "base64 0.22.1", - "derive_more 2.0.1", - "futures", - "futures-utils-wasm", - "parking_lot", - "serde", - "serde_json", - "thiserror 2.0.12", - "tokio", - "tower 0.5.2", - "tracing", - "url", - "wasmtimer", -] - -[[package]] -name = "alloy-transport-http" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c4b0f3a9c28bcd3761504d9eb3578838d6d115c8959fc1ea05f59a3a8f691af" -dependencies = [ - "alloy-json-rpc 1.0.17", - "alloy-transport", - "reqwest 0.12.22", - "serde_json", - "tower 0.5.2", - "tracing", - "url", -] - -[[package]] -name = "alloy-transport-ipc" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "758edb7c266374374e001c50fb1ea89cb5ed48d47ffbf297599f2a557804dd3b" -dependencies = [ - "alloy-json-rpc 1.0.17", - "alloy-pubsub", - "alloy-transport", - "bytes", - "futures", - "interprocess", - "pin-project", - "serde", - "serde_json", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "alloy-transport-ws" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5596b913d1299ee37a9c1bb5118b2639bf253dc1088957bdf2073ae63a6fdfa" -dependencies = [ - "alloy-pubsub", - "alloy-transport", - "futures", - "http 1.3.1", - "rustls 0.23.28", - "serde_json", - "tokio", - "tokio-tungstenite 0.26.2", - "tracing", - "ws_stream_wasm", -] - -[[package]] -name = "alloy-trie" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "983d99aa81f586cef9dae38443245e585840fcf0fc58b09aee0b1f27aed1d500" -dependencies = [ - "alloy-primitives 1.2.1", - "alloy-rlp", - "arrayvec", - "derive_more 2.0.1", - "nybbles 0.3.4", - "serde", - "smallvec", - "tracing", -] - -[[package]] -name = "alloy-trie" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bada1fc392a33665de0dc50d401a3701b62583c655e3522a323490a5da016962" -dependencies = [ - "alloy-primitives 1.2.1", - "alloy-rlp", - "arrayvec", - "derive_more 2.0.1", - "nybbles 0.4.0", - "serde", - "smallvec", - "tracing", -] - -[[package]] -name = "alloy-tx-macros" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79bf2869e66904b2148c809e7a75e23ca26f5d7b46663a149a1444fb98a69d1d" -dependencies = [ - "alloy-primitives 1.2.1", - "darling", - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "amcl" -version = "0.3.0" -source = "git+https://github.com/Snowfork/milagro_bls?rev=bc2b5b5e8d48b7e2e1bfaa56dc2d93e13cb32095#bc2b5b5e8d48b7e2e1bfaa56dc2d93e13cb32095" - -[[package]] -name = "anchor-attribute-access-control" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f70fd141a4d18adf11253026b32504f885447048c7494faf5fa83b01af9c0cf" -dependencies = [ - "anchor-syn", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "anchor-attribute-account" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715a261c57c7679581e06f07a74fa2af874ac30f86bd8ea07cca4a7e5388a064" -dependencies = [ - "anchor-syn", - "bs58", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "anchor-attribute-constant" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "730d6df8ae120321c5c25e0779e61789e4b70dc8297102248902022f286102e4" -dependencies = [ - "anchor-syn", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "anchor-attribute-error" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27e6e449cc3a37b2880b74dcafb8e5a17b954c0e58e376432d7adc646fb333ef" -dependencies = [ - "anchor-syn", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "anchor-attribute-event" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7710e4c54adf485affcd9be9adec5ef8846d9c71d7f31e16ba86ff9fc1dd49f" -dependencies = [ - "anchor-syn", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "anchor-attribute-program" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ecfd49b2aeadeb32f35262230db402abed76ce87e27562b34f61318b2ec83c" -dependencies = [ - "anchor-lang-idl", - "anchor-syn", - "anyhow", - "bs58", - "heck 0.3.3", - "proc-macro2", - "quote", - "serde_json", - "syn 1.0.109", -] - -[[package]] -name = "anchor-client" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49b3e91b12501d37c8f07de9da8c7d22067998a7760a515231187afb47ded225" -dependencies = [ - "anchor-lang", - "anyhow", - "futures", - "regex", - "serde", - "solana-account-decoder", - "solana-client", - "solana-sdk", - "thiserror 1.0.69", - "tokio", - "url", -] - -[[package]] -name = "anchor-derive-accounts" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be89d160793a88495af462a7010b3978e48e30a630c91de47ce2c1d3cb7a6149" -dependencies = [ - "anchor-syn", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "anchor-derive-serde" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abc6ee78acb7bfe0c2dd2abc677aaa4789c0281a0c0ef01dbf6fe85e0fd9e6e4" -dependencies = [ - "anchor-syn", - "borsh-derive-internal", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "anchor-derive-space" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134a01c0703f6fd355a0e472c033f6f3e41fac1ef6e370b20c50f4c8d022cea7" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "anchor-lang" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6bab117055905e930f762c196e08f861f8dfe7241b92cee46677a3b15561a0a" -dependencies = [ - "anchor-attribute-access-control", - "anchor-attribute-account", - "anchor-attribute-constant", - "anchor-attribute-error", - "anchor-attribute-event", - "anchor-attribute-program", - "anchor-derive-accounts", - "anchor-derive-serde", - "anchor-derive-space", - "base64 0.21.7", - "bincode", - "borsh 0.10.4", - "bytemuck", - "solana-program", - "thiserror 1.0.69", -] - -[[package]] -name = "anchor-lang-idl" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e8599d21995f68e296265aa5ab0c3cef582fd58afec014d01bd0bce18a4418" -dependencies = [ - "anchor-lang-idl-spec", - "anyhow", - "heck 0.3.3", - "serde", - "serde_json", - "sha2 0.10.9", -] - -[[package]] -name = "anchor-lang-idl-spec" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bdf143115440fe621bdac3a29a1f7472e09f6cd82b2aa569429a0c13f103838" -dependencies = [ - "anyhow", - "serde", -] - -[[package]] -name = "anchor-syn" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dc7a6d90cc643df0ed2744862cdf180587d1e5d28936538c18fc8908489ed67" -dependencies = [ - "anyhow", - "bs58", - "heck 0.3.3", - "proc-macro2", - "quote", - "serde", - "serde_json", - "sha2 0.10.9", - "syn 1.0.109", - "thiserror 1.0.69", -] - -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "ansi_term" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" -dependencies = [ - "winapi", -] - -[[package]] -name = "anstream" -version = "0.6.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" - -[[package]] -name = "anstyle-parse" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882" -dependencies = [ - "anstyle", - "once_cell_polyfill", - "windows-sys 0.59.0", -] - -[[package]] -name = "anyhow" -version = "1.0.98" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" -dependencies = [ - "backtrace", -] - -[[package]] -name = "arbitrary" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" - -[[package]] -name = "ark-bls12-381" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" -dependencies = [ - "ark-ec", - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", -] - -[[package]] -name = "ark-bn254" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" -dependencies = [ - "ark-ec", - "ark-ff 0.4.2", - "ark-std 0.4.0", -] - -[[package]] -name = "ark-ec" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" -dependencies = [ - "ark-ff 0.4.2", - "ark-poly", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "derivative", - "hashbrown 0.13.2", - "itertools 0.10.5", - "num-traits", - "rayon", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" -dependencies = [ - "ark-ff-asm 0.3.0", - "ark-ff-macros 0.3.0", - "ark-serialize 0.3.0", - "ark-std 0.3.0", - "derivative", - "num-bigint 0.4.6", - "num-traits", - "paste", - "rustc_version 0.3.3", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" -dependencies = [ - "ark-ff-asm 0.4.2", - "ark-ff-macros 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "derivative", - "digest 0.10.7", - "itertools 0.10.5", - "num-bigint 0.4.6", - "num-traits", - "paste", - "rayon", - "rustc_version 0.4.1", - "zeroize", -] - -[[package]] -name = "ark-ff-asm" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-asm" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" -dependencies = [ - "num-bigint 0.4.6", - "num-traits", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" -dependencies = [ - "num-bigint 0.4.6", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-poly" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" -dependencies = [ - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "derivative", - "hashbrown 0.13.2", -] - -[[package]] -name = "ark-serialize" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" -dependencies = [ - "ark-std 0.3.0", - "digest 0.9.0", -] - -[[package]] -name = "ark-serialize" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" -dependencies = [ - "ark-serialize-derive", - "ark-std 0.4.0", - "digest 0.10.7", - "num-bigint 0.4.6", -] - -[[package]] -name = "ark-serialize-derive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-std" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" -dependencies = [ - "num-traits", - "rand 0.8.5", -] - -[[package]] -name = "ark-std" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" -dependencies = [ - "num-traits", - "rand 0.8.5", - "rayon", -] - -[[package]] -name = "arrayref" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" - -[[package]] -name = "arrayvec" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" -dependencies = [ - "serde", -] - -[[package]] -name = "asn1-rs" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" -dependencies = [ - "asn1-rs-derive", - "asn1-rs-impl", - "displaydoc", - "nom", - "num-traits", - "rusticata-macros", - "thiserror 1.0.69", - "time", -] - -[[package]] -name = "asn1-rs-derive" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "synstructure 0.12.6", -] - -[[package]] -name = "asn1-rs-impl" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "async-channel" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" -dependencies = [ - "concurrent-queue", - "event-listener 2.5.3", - "futures-core", -] - -[[package]] -name = "async-compression" -version = "0.4.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddb939d66e4ae03cee6091612804ba446b12878410cfa17f785f4dd67d4014e8" -dependencies = [ - "brotli", - "flate2", - "futures-core", - "memchr", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "async-lock" -version = "3.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" -dependencies = [ - "event-listener 5.4.1", - "event-listener-strategy", - "pin-project-lite", -] - -[[package]] -name = "async-stream" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" -dependencies = [ - "async-stream-impl", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-stream-impl" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "async-trait" -version = "0.1.88" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "async_io_stream" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" -dependencies = [ - "futures", - "pharos", - "rustc_version 0.4.1", -] - -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - -[[package]] -name = "auto_impl" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "autocfg" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" - -[[package]] -name = "axum" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" -dependencies = [ - "async-trait", - "axum-core 0.4.5", - "bytes", - "futures-util", - "http 1.3.1", - "http-body 1.0.1", - "http-body-util", - "hyper 1.6.0", - "hyper-util", - "itoa", - "matchit 0.7.3", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "serde_json", - "serde_path_to_error", - "serde_urlencoded", - "sync_wrapper 1.0.2", - "tokio", - "tower 0.5.2", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "axum" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5" -dependencies = [ - "axum-core 0.5.2", - "bytes", - "futures-util", - "http 1.3.1", - "http-body 1.0.1", - "http-body-util", - "itoa", - "matchit 0.8.4", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "sync_wrapper 1.0.2", - "tower 0.5.2", - "tower-layer", - "tower-service", -] - -[[package]] -name = "axum-core" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http 1.3.1", - "http-body 1.0.1", - "http-body-util", - "mime", - "pin-project-lite", - "rustversion", - "sync_wrapper 1.0.2", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "axum-core" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68464cd0412f486726fb3373129ef5d2993f90c34bc2bc1c1e9943b2f4fc7ca6" -dependencies = [ - "bytes", - "futures-core", - "http 1.3.1", - "http-body 1.0.1", - "http-body-util", - "mime", - "pin-project-lite", - "rustversion", - "sync_wrapper 1.0.2", - "tower-layer", - "tower-service", -] - -[[package]] -name = "backoff" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" -dependencies = [ - "futures-core", - "getrandom 0.2.16", - "instant", - "pin-project-lite", - "rand 0.8.5", - "tokio", -] - -[[package]] -name = "backtrace" -version = "0.3.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "serde", - "windows-targets 0.52.6", -] - -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - -[[package]] -name = "base64" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "base64ct" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" - -[[package]] -name = "bech32" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" - -[[package]] -name = "bimap" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bindgen" -version = "0.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" -dependencies = [ - "bitflags 2.9.1", - "cexpr", - "clang-sys", - "itertools 0.13.0", - "log", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "rustc-hash 1.1.0", - "shlex", - "syn 2.0.104", -] - -[[package]] -name = "bit-set" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" - -[[package]] -name = "bitcoin-io" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b47c4ab7a93edb0c7198c5535ed9b52b63095f4e9b45279c6736cec4b856baf" - -[[package]] -name = "bitcoin_hashes" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" -dependencies = [ - "bitcoin-io", - "hex-conservative", -] - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" -dependencies = [ - "serde", -] - -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] - -[[package]] -name = "blake2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "blake2b_simd" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e903a20b159e944f91ec8499fe1e55651480c541ea0a584f5d967c49ad9d99" -dependencies = [ - "arrayref", - "arrayvec", - "constant_time_eq", -] - -[[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 0.14.7", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array 0.14.7", -] - -[[package]] -name = "bls12_381" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3c196a77437e7cc2fb515ce413a6401291578b5afc8ecb29a3c7ab957f05941" -dependencies = [ - "ff 0.12.1", - "group 0.12.1", - "pairing", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "blst" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fd49896f12ac9b6dcd7a5998466b9b58263a695a3dd1ecc1aaca2e12a90b080" -dependencies = [ - "cc", - "glob", - "threadpool", - "zeroize", -] - -[[package]] -name = "bnum" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e31ea183f6ee62ac8b8a8cf7feddd766317adfb13ff469de57ce033efd6a790" - -[[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", - "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" -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-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "brine-ed25519" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb604b3e64e069843eb815cd108f3dfc8bfcf9c4434a3d7d832332092cd1d63" -dependencies = [ - "curve25519-dalek 4.1.3", - "sha2 0.10.9", - "solana-curve25519", -] - -[[package]] -name = "brotli" -version = "8.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", - "brotli-decompressor", -] - -[[package]] -name = "brotli-decompressor" -version = "5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", -] - -[[package]] -name = "bs58" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "bumpalo" -version = "3.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" - -[[package]] -name = "bv" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8834bb1d8ee5dc048ee3124f2c7c1afcc6bc9aed03f11e9dfd8c69470a5db340" -dependencies = [ - "feature-probe", - "serde", -] - -[[package]] -name = "byte-slice-cast" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" - -[[package]] -name = "bytemuck" -version = "1.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422" -dependencies = [ - "bytemuck_derive", -] - -[[package]] -name = "bytemuck_derive" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f154e572231cb6ba2bd1176980827e3d5dc04cc183a75dea38109fbdd672d29" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" -dependencies = [ - "serde", -] - -[[package]] -name = "c-kzg" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7318cfa722931cb5fe0838b98d3ce5621e75f6a6408abc21721d80de9223f2e4" -dependencies = [ - "blst", - "cc", - "glob", - "hex", - "libc", - "once_cell", - "serde", -] - -[[package]] -name = "camino" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab" -dependencies = [ - "serde", -] - -[[package]] -name = "caps" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190baaad529bcfbde9e1a19022c42781bdb6ff9de25721abdb8fd98c0807730b" -dependencies = [ - "libc", - "thiserror 1.0.69", -] - -[[package]] -name = "cargo-platform" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo_metadata" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" -dependencies = [ - "camino", - "cargo-platform", - "semver 1.0.26", - "serde", - "serde_json", - "thiserror 1.0.69", -] - -[[package]] -name = "cbindgen" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fce8dd7fcfcbf3a0a87d8f515194b49d6135acab73e18bd380d1d93bb1a15eb" -dependencies = [ - "clap", - "heck 0.4.1", - "indexmap 2.10.0", - "log", - "proc-macro2", - "quote", - "serde", - "serde_json", - "syn 2.0.104", - "tempfile", - "toml 0.8.23", -] - -[[package]] -name = "cc" -version = "1.2.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d487aa071b5f64da6f19a3e848e3578944b726ee5a4854b82172f02aa876bfdc" -dependencies = [ - "jobserver", - "libc", - "shlex", -] - -[[package]] -name = "cesu8" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" - -[[package]] -name = "cexpr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" -dependencies = [ - "nom", -] - -[[package]] -name = "cfg-if" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" - -[[package]] -name = "cfg_aliases" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" - -[[package]] -name = "cfg_eval" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45565fc9416b9896014f5732ac776f810ee53a66730c17e4020c3ec064a8f88f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "chrono" -version = "0.4.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "num-traits", - "serde", - "windows-link", -] - -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - -[[package]] -name = "clang-sys" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" -dependencies = [ - "glob", - "libc", - "libloading", -] - -[[package]] -name = "clap" -version = "4.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40b6887a1d8685cebccf115538db5c0efe625ccac9696ad45c409d96566e910f" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c66c08ce9f0c698cbce5c0279d0bb6ac936d8674174fe48f736533b964f59e" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", -] - -[[package]] -name = "clap_derive" -version = "4.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c7947ae4cc3d851207c1adb5b5e260ff0cca11446b1d6d1423788e442257ce" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "clap_lex" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" - -[[package]] -name = "colorchoice" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" - -[[package]] -name = "combine" -version = "4.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" -dependencies = [ - "bytes", - "memchr", -] - -[[package]] -name = "concurrent-queue" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "console" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e09ced7ebbccb63b4c65413d821f2e00ce54c5ca4514ddc6b3c892fdbcbc69d" -dependencies = [ - "encode_unicode", - "libc", - "once_cell", - "unicode-width", - "windows-sys 0.60.2", -] - -[[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-hex" -version = "1.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83e22e0ed40b96a48d3db274f72fd365bd78f67af39b6bbd47e8a15e1c6207ff" -dependencies = [ - "cfg-if", - "cpufeatures", - "hex", - "proptest", - "serde", -] - -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - -[[package]] -name = "const_format" -version = "0.2.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" -dependencies = [ - "const_format_proc_macros", -] - -[[package]] -name = "const_format_proc_macros" -version = "0.2.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" -dependencies = [ - "proc-macro2", - "quote", - "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 = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "cosmos-sdk-proto" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "462e1f6a8e005acc8835d32d60cbd7973ed65ea2a8d8473830e675f050956427" -dependencies = [ - "informalsystems-pbjson", - "prost", - "serde", - "tendermint-proto", -] - -[[package]] -name = "cosmwasm-core" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35b6dc17e7fd89d0a0a58f12ef33f0bbdf09a6a14c3dfb383eae665e5889250e" - -[[package]] -name = "cosmwasm-crypto" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2f53285517db3e33d825b3e46301efe845135778527e1295154413b2f0469e" -dependencies = [ - "ark-bls12-381", - "ark-ec", - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "cosmwasm-core", - "curve25519-dalek 4.1.3", - "digest 0.10.7", - "ecdsa", - "ed25519-zebra", - "k256", - "num-traits", - "p256", - "rand_core 0.6.4", - "rayon", - "sha2 0.10.9", - "thiserror 1.0.69", -] - -[[package]] -name = "cosmwasm-derive" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a782b93fae93e57ca8ad3e9e994e784583f5933aeaaa5c80a545c4b437be2047" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "cosmwasm-schema" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6984ab21b47a096e17ae4c73cea2123a704d4b6686c39421247ad67020d76f95" -dependencies = [ - "cosmwasm-schema-derive", - "schemars 0.8.22", - "serde", - "serde_json", - "thiserror 1.0.69", -] - -[[package]] -name = "cosmwasm-schema-derive" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e01c9214319017f6ebd8e299036e1f717fa9bb6724e758f7d6fb2477599d1a29" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "cosmwasm-std" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf82335c14bd94eeb4d3c461b7aa419ecd7ea13c2efe24b97cd972bdb8044e7d" -dependencies = [ - "base64 0.22.1", - "bech32", - "bnum", - "cosmwasm-core", - "cosmwasm-crypto", - "cosmwasm-derive", - "derive_more 1.0.0", - "hex", - "rand_core 0.6.4", - "rmp-serde", - "schemars 0.8.22", - "serde", - "serde-json-wasm", - "sha2 0.10.9", - "static_assertions", - "thiserror 1.0.69", -] - -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "crc" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" - -[[package]] -name = "crc32fast" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - -[[package]] -name = "crunchy" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" - -[[package]] -name = "crypto-bigint" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" -dependencies = [ - "generic-array 0.14.7", - "rand_core 0.6.4", - "subtle", - "zeroize", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array 0.14.7", - "rand_core 0.6.4", - "typenum", -] - -[[package]] -name = "crypto-mac" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" -dependencies = [ - "generic-array 0.14.7", - "subtle", -] - -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher", -] - -[[package]] -name = "ctrlc" -version = "3.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f93780a459b7d656ef7f071fe699c4d3d2cb201c4b24d085b6ddc505276e73" -dependencies = [ - "nix", - "windows-sys 0.59.0", -] - -[[package]] -name = "curve25519-dalek" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" -dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.5.1", - "subtle", - "zeroize", -] - -[[package]] -name = "curve25519-dalek" -version = "4.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" -dependencies = [ - "cfg-if", - "cpufeatures", - "curve25519-dalek-derive", - "digest 0.10.7", - "fiat-crypto", - "rand_core 0.6.4", - "rustc_version 0.4.1", - "serde", - "subtle", - "zeroize", -] - -[[package]] -name = "curve25519-dalek-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "curve25519-dalek-ng" -version = "4.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" -dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.6.4", - "subtle-ng", - "zeroize", -] - -[[package]] -name = "cw-ics08-wasm-eth" -version = "1.2.0" -source = "git+https://github.com/cosmos/solidity-ibc-eureka?tag=cw-ics08-wasm-eth-v1.2.0#57cb581aaa8839a479147c0713df4c012e64c260" -dependencies = [ - "alloy-primitives 0.8.25", - "cosmwasm-schema", - "cosmwasm-std", - "cw2", - "ethereum-light-client 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?tag=cw-ics08-wasm-eth-v1.2.0)", - "ethereum-types 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?tag=cw-ics08-wasm-eth-v1.2.0)", - "hex", - "ibc-proto 0.51.1 (registry+https://github.com/rust-lang/crates.io-index)", - "prost", - "serde", - "serde_json", - "thiserror 2.0.12", -] - -[[package]] -name = "cw-ics08-wasm-eth" -version = "1.3.0" -dependencies = [ - "alloy-primitives 1.2.1", - "cosmwasm-schema", - "cosmwasm-std", - "cw-ics08-wasm-eth 1.2.0", - "cw2", - "ethereum-light-client 0.1.0", - "ethereum-light-client 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?tag=cw-ics08-wasm-eth-v1.2.0)", - "ethereum-types 0.1.0", - "hex", - "ibc-proto 0.51.1 (registry+https://github.com/rust-lang/crates.io-index)", - "prost", - "serde", - "serde_json", - "thiserror 2.0.12", -] - -[[package]] -name = "cw-storage-plus" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f13360e9007f51998d42b1bc6b7fa0141f74feae61ed5fd1e5b0a89eec7b5de1" -dependencies = [ - "cosmwasm-std", - "schemars 0.8.22", - "serde", -] - -[[package]] -name = "cw2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b04852cd38f044c0751259d5f78255d07590d136b8a86d4e09efdd7666bd6d27" -dependencies = [ - "cosmwasm-schema", - "cosmwasm-std", - "cw-storage-plus", - "schemars 0.8.22", - "semver 1.0.26", - "serde", - "thiserror 1.0.69", -] - -[[package]] -name = "darling" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.104", -] - -[[package]] -name = "darling_macro" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" -dependencies = [ - "darling_core", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "dashmap" -version = "5.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" -dependencies = [ - "cfg-if", - "hashbrown 0.14.5", - "lock_api", - "once_cell", - "parking_lot_core", -] - -[[package]] -name = "dashmap" -version = "6.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" -dependencies = [ - "cfg-if", - "crossbeam-utils", - "hashbrown 0.14.5", - "lock_api", - "once_cell", - "parking_lot_core", -] - -[[package]] -name = "dashu" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b3e5ac1e23ff1995ef05b912e2b012a8784506987a2651552db2c73fb3d7e0" -dependencies = [ - "dashu-base", - "dashu-float", - "dashu-int", - "dashu-macros", - "dashu-ratio", - "rustversion", -] - -[[package]] -name = "dashu-base" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0b80bf6b85aa68c58ffea2ddb040109943049ce3fbdf4385d0380aef08ef289" - -[[package]] -name = "dashu-float" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85078445a8dbd2e1bd21f04a816f352db8d333643f0c9b78ca7c3d1df71063e7" -dependencies = [ - "dashu-base", - "dashu-int", - "num-modular", - "num-order", - "rustversion", - "static_assertions", -] - -[[package]] -name = "dashu-int" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee99d08031ca34a4d044efbbb21dff9b8c54bb9d8c82a189187c0651ffdb9fbf" -dependencies = [ - "cfg-if", - "dashu-base", - "num-modular", - "num-order", - "rustversion", - "static_assertions", -] - -[[package]] -name = "dashu-macros" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93381c3ef6366766f6e9ed9cf09e4ef9dec69499baf04f0c60e70d653cf0ab10" -dependencies = [ - "dashu-base", - "dashu-float", - "dashu-int", - "dashu-ratio", - "paste", - "proc-macro2", - "quote", - "rustversion", -] - -[[package]] -name = "dashu-ratio" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47e33b04dd7ce1ccf8a02a69d3419e354f2bbfdf4eb911a0b7465487248764c9" -dependencies = [ - "dashu-base", - "dashu-float", - "dashu-int", - "num-modular", - "num-order", - "rustversion", -] - -[[package]] -name = "data-encoding" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" - -[[package]] -name = "der" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" -dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", -] - -[[package]] -name = "der-parser" -version = "8.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" -dependencies = [ - "asn1-rs", - "displaydoc", - "nom", - "num-bigint 0.4.6", - "num-traits", - "rusticata-macros", -] - -[[package]] -name = "deranged" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" -dependencies = [ - "powerfmt", - "serde", -] - -[[package]] -name = "derivation-path" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e5c37193a1db1d8ed868c03ec7b152175f26160a5b740e5e484143877e0adf0" - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive_arbitrary" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "derive_more" -version = "0.99.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "derive_more" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" -dependencies = [ - "derive_more-impl 1.0.0", -] - -[[package]] -name = "derive_more" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" -dependencies = [ - "derive_more-impl 2.0.1", -] - -[[package]] -name = "derive_more-impl" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", - "unicode-xid", -] - -[[package]] -name = "derive_more-impl" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", - "unicode-xid", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array 0.14.7", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer 0.10.4", - "const-oid", - "crypto-common", - "subtle", -] - -[[package]] -name = "dirs" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" -dependencies = [ - "dirs-sys", -] - -[[package]] -name = "dirs-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" -dependencies = [ - "libc", - "option-ext", - "redox_users", - "windows-sys 0.48.0", -] - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "dlopen2" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b4f5f101177ff01b8ec4ecc81eead416a8aa42819a2869311b3420fa114ffa" -dependencies = [ - "dlopen2_derive", - "libc", - "once_cell", - "winapi", -] - -[[package]] -name = "dlopen2_derive" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6cbae11b3de8fce2a456e8ea3dada226b35fe791f0dc1d360c0941f0bb681f3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "doctest-file" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" - -[[package]] -name = "dotenv" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" - -[[package]] -name = "downcast-rs" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" - -[[package]] -name = "downloader" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ac1e888d6830712d565b2f3a974be3200be9296bc1b03db8251a4cbf18a4a34" -dependencies = [ - "digest 0.10.7", - "futures", - "rand 0.8.5", - "reqwest 0.12.22", - "thiserror 1.0.69", - "tokio", -] - -[[package]] -name = "dunce" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" - -[[package]] -name = "dyn-clone" -version = "1.0.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" - -[[package]] -name = "ecdsa" -version = "0.16.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" -dependencies = [ - "der", - "digest 0.10.7", - "elliptic-curve", - "rfc6979", - "serdect", - "signature 2.2.0", - "spki", -] - -[[package]] -name = "ed25519" -version = "1.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" -dependencies = [ - "signature 1.6.4", -] - -[[package]] -name = "ed25519" -version = "2.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" -dependencies = [ - "pkcs8", - "signature 2.2.0", -] - -[[package]] -name = "ed25519-consensus" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c8465edc8ee7436ffea81d21a019b16676ee3db267aa8d5a8d729581ecf998b" -dependencies = [ - "curve25519-dalek-ng", - "hex", - "rand_core 0.6.4", - "sha2 0.9.9", - "zeroize", -] - -[[package]] -name = "ed25519-dalek" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" -dependencies = [ - "curve25519-dalek 3.2.0", - "ed25519 1.5.3", - "rand 0.7.3", - "serde", - "sha2 0.9.9", - "zeroize", -] - -[[package]] -name = "ed25519-dalek-bip32" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d2be62a4061b872c8c0873ee4fc6f101ce7b889d039f019c5fa2af471a59908" -dependencies = [ - "derivation-path", - "ed25519-dalek", - "hmac 0.12.1", - "sha2 0.10.9", -] - -[[package]] -name = "ed25519-zebra" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" -dependencies = [ - "curve25519-dalek 4.1.3", - "ed25519 2.2.3", - "hashbrown 0.14.5", - "hex", - "rand_core 0.6.4", - "sha2 0.10.9", - "zeroize", -] - -[[package]] -name = "either" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" -dependencies = [ - "serde", -] - -[[package]] -name = "elf" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4445909572dbd556c457c849c4ca58623d84b27c8fff1e74b0b4227d8b90d17b" - -[[package]] -name = "elliptic-curve" -version = "0.13.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" -dependencies = [ - "base16ct", - "crypto-bigint", - "digest 0.10.7", - "ff 0.13.1", - "generic-array 0.14.7", - "group 0.13.0", - "pem-rfc7468", - "pkcs8", - "rand_core 0.6.4", - "sec1", - "serdect", - "subtle", - "zeroize", -] - -[[package]] -name = "encode_unicode" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "enum-map" -version = "2.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9" -dependencies = [ - "enum-map-derive", - "serde", -] - -[[package]] -name = "enum-map-derive" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "env_logger" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" -dependencies = [ - "atty", - "humantime", - "log", - "regex", - "termcolor", -] - -[[package]] -name = "equivalent" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" - -[[package]] -name = "errno" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" -dependencies = [ - "libc", - "windows-sys 0.60.2", -] - -[[package]] -name = "ethereum-apis" -version = "0.1.0" -dependencies = [ - "alloy", - "ethereum-types 0.1.0", - "reqwest 0.12.22", - "serde", - "serde_json", - "thiserror 2.0.12", - "tracing", -] - -[[package]] -name = "ethereum-apis" -version = "0.1.0" -source = "git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8#d9f58589bee5881561cd8c769750a35448e5ebc8" -dependencies = [ - "alloy", - "ethereum-types 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8)", - "reqwest 0.12.22", - "serde", - "serde_json", - "thiserror 2.0.12", - "tracing", -] - -[[package]] -name = "ethereum-light-client" -version = "0.1.0" -dependencies = [ - "alloy-primitives 1.2.1", - "alloy-rlp", - "ethereum-trie-db 0.1.0", - "ethereum-types 0.1.0", - "hex", - "ibc-eureka-solidity-types 0.1.0", - "ibc-proto 0.51.1 (git+https://github.com/srdtrk/ibc-proto-rs?rev=7074fb20c3a654e945e5ca46627c5a971d785e04)", - "milagro_bls", - "prost", - "schemars 0.8.22", - "serde", - "serde_json", - "sha2 0.10.9", - "thiserror 2.0.12", - "tree_hash 0.1.0", -] - -[[package]] -name = "ethereum-light-client" -version = "0.1.0" -source = "git+https://github.com/cosmos/solidity-ibc-eureka?tag=cw-ics08-wasm-eth-v1.2.0#57cb581aaa8839a479147c0713df4c012e64c260" -dependencies = [ - "alloy-primitives 0.8.25", - "alloy-rlp", - "ethereum-trie-db 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?tag=cw-ics08-wasm-eth-v1.2.0)", - "ethereum-types 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?tag=cw-ics08-wasm-eth-v1.2.0)", - "hex", - "ibc-eureka-solidity-types 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?tag=cw-ics08-wasm-eth-v1.2.0)", - "ibc-proto 0.51.1 (git+https://github.com/srdtrk/ibc-proto-rs?rev=7074fb20c3a654e945e5ca46627c5a971d785e04)", - "milagro_bls", - "prost", - "schemars 0.8.22", - "serde", - "serde_json", - "sha2 0.10.9", - "thiserror 2.0.12", - "tree_hash 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?tag=cw-ics08-wasm-eth-v1.2.0)", -] - -[[package]] -name = "ethereum-light-client" -version = "0.1.0" -source = "git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8#d9f58589bee5881561cd8c769750a35448e5ebc8" -dependencies = [ - "alloy-primitives 1.2.1", - "alloy-rlp", - "ethereum-trie-db 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8)", - "ethereum-types 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8)", - "hex", - "schemars 0.8.22", - "serde", - "serde_json", - "sha2 0.10.9", - "thiserror 2.0.12", - "tree_hash 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8)", -] - -[[package]] -name = "ethereum-trie-db" -version = "0.1.0" -dependencies = [ - "alloy-primitives 1.2.1", - "hash-db", - "hash256-std-hasher", - "hex", - "memory-db", - "primitive-types 0.13.1", - "rlp 0.6.1", - "rlp-derive", - "sha3", - "thiserror 2.0.12", - "trie-db 0.30.0", -] - -[[package]] -name = "ethereum-trie-db" -version = "0.1.0" -source = "git+https://github.com/cosmos/solidity-ibc-eureka?tag=cw-ics08-wasm-eth-v1.2.0#57cb581aaa8839a479147c0713df4c012e64c260" -dependencies = [ - "alloy-primitives 0.8.25", - "hash-db", - "hash256-std-hasher", - "hex", - "memory-db", - "primitive-types 0.13.1", - "rlp 0.6.1", - "rlp-derive", - "sha3", - "thiserror 2.0.12", - "trie-db 0.29.1", -] - -[[package]] -name = "ethereum-trie-db" -version = "0.1.0" -source = "git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8#d9f58589bee5881561cd8c769750a35448e5ebc8" -dependencies = [ - "alloy-primitives 1.2.1", - "hash-db", - "hash256-std-hasher", - "hex", - "memory-db", - "primitive-types 0.13.1", - "rlp 0.6.1", - "rlp-derive", - "sha3", - "thiserror 2.0.12", - "trie-db 0.30.0", -] - -[[package]] -name = "ethereum-types" -version = "0.1.0" -dependencies = [ - "alloy-primitives 1.2.1", - "schemars 0.8.22", - "serde", - "serde_json", - "serde_with", - "tree_hash 0.1.0", - "tree_hash_derive 0.10.0", -] - -[[package]] -name = "ethereum-types" -version = "0.1.0" -source = "git+https://github.com/cosmos/solidity-ibc-eureka?tag=cw-ics08-wasm-eth-v1.2.0#57cb581aaa8839a479147c0713df4c012e64c260" -dependencies = [ - "alloy-primitives 0.8.25", - "schemars 0.8.22", - "serde", - "serde_with", - "tree_hash 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?tag=cw-ics08-wasm-eth-v1.2.0)", - "tree_hash_derive 0.9.1", -] - -[[package]] -name = "ethereum-types" -version = "0.1.0" -source = "git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8#d9f58589bee5881561cd8c769750a35448e5ebc8" -dependencies = [ - "alloy-primitives 1.2.1", - "schemars 0.8.22", - "serde", - "serde_with", - "tree_hash 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8)", - "tree_hash_derive 0.10.0", -] - -[[package]] -name = "ethereum_serde_utils" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dc1355dbb41fbbd34ec28d4fb2a57d9a70c67ac3c19f6a5ca4d4a176b9e997a" -dependencies = [ - "alloy-primitives 1.2.1", - "hex", - "serde", - "serde_derive", - "serde_json", -] - -[[package]] -name = "ethereum_ssz" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ca8ba45b63c389c6e115b095ca16381534fdcc03cf58176a3f8554db2dbe19b" -dependencies = [ - "alloy-primitives 1.2.1", - "ethereum_serde_utils", - "itertools 0.13.0", - "serde", - "serde_derive", - "smallvec", - "typenum", -] - -[[package]] -name = "ethereum_ssz_derive" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd55d08012b4e0dfcc92b8d6081234df65f2986ad34cc76eeed69c5e2ce7506" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "event-listener" -version = "5.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener-strategy" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" -dependencies = [ - "event-listener 5.4.1", - "pin-project-lite", -] - -[[package]] -name = "eventsource-stream" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74fef4569247a5f429d9156b9d0a2599914385dd189c539334c625d8099d90ab" -dependencies = [ - "futures-core", - "nom", - "pin-project-lite", -] - -[[package]] -name = "eyre" -version = "0.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" -dependencies = [ - "indenter", - "once_cell", -] - -[[package]] -name = "fastbloom" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27cea6e7f512d43b098939ff4d5a5d6fe3db07971e1d05176fe26c642d33f5b8" -dependencies = [ - "getrandom 0.3.3", - "rand 0.9.1", - "siphasher 1.0.1", - "wide", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fastrlp" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", -] - -[[package]] -name = "fastrlp" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce8dba4714ef14b8274c371879b175aa55b16b30f269663f19d576f380018dc4" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", -] - -[[package]] -name = "feature-probe" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" - -[[package]] -name = "ff" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" -dependencies = [ - "bitvec", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "ff" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" -dependencies = [ - "bitvec", - "byteorder", - "ff_derive", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "ff_derive" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f10d12652036b0e99197587c6ba87a8fc3031986499973c030d8b44fcc151b60" -dependencies = [ - "addchain", - "num-bigint 0.3.3", - "num-integer", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "fiat-crypto" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" - -[[package]] -name = "five8" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75b8549488b4715defcb0d8a8a1c1c76a80661b5fa106b4ca0e7fce59d7d875" -dependencies = [ - "five8_core", -] - -[[package]] -name = "five8_const" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26dec3da8bc3ef08f2c04f61eab298c3ab334523e55f076354d6d6f613799a7b" -dependencies = [ - "five8_core", -] - -[[package]] -name = "five8_core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2551bf44bc5f776c15044b9b94153a00198be06743e262afaaa61f11ac7523a5" - -[[package]] -name = "fixed-hash" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" -dependencies = [ - "byteorder", - "rand 0.8.5", - "rustc-hex", - "static_assertions", -] - -[[package]] -name = "fixedbitset" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" - -[[package]] -name = "flate2" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "flex-error" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c606d892c9de11507fa0dcffc116434f94e105d0bbdc4e405b61519464c49d7b" -dependencies = [ - "paste", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "futures" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-executor" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" - -[[package]] -name = "futures-macro" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-timer" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "futures-utils-wasm" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" - -[[package]] -name = "gcd" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" - -[[package]] -name = "gen_ops" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "304de19db7028420975a296ab0fcbbc8e69438c4ed254a1e41e2a7f37d5f0e0a" - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", - "zeroize", -] - -[[package]] -name = "generic-array" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96512db27971c2c3eece70a1e106fbe6c87760234e31e8f7e5634912fe52794a" -dependencies = [ - "serde", - "typenum", -] - -[[package]] -name = "gethostname" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", - "wasm-bindgen", -] - -[[package]] -name = "getrandom" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi 0.11.1+wasi-snapshot-preview1", - "wasm-bindgen", -] - -[[package]] -name = "getrandom" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "r-efi", - "wasi 0.14.2+wasi-0.2.4", - "wasm-bindgen", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "glob" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" - -[[package]] -name = "governor" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" -dependencies = [ - "cfg-if", - "dashmap 5.5.3", - "futures", - "futures-timer", - "no-std-compat", - "nonzero_ext", - "parking_lot", - "portable-atomic", - "quanta", - "rand 0.8.5", - "smallvec", - "spinning_top", -] - -[[package]] -name = "group" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" -dependencies = [ - "ff 0.12.1", - "memuse", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff 0.13.1", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap 2.10.0", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "h2" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17da50a276f1e01e0ba6c029e47b7100754904ee8a278f886546e98575380785" -dependencies = [ - "atomic-waker", - "bytes", - "fnv", - "futures-core", - "futures-sink", - "http 1.3.1", - "indexmap 2.10.0", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "halo2" -version = "0.1.0-beta.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a23c779b38253fe1538102da44ad5bd5378495a61d2c4ee18d64eaa61ae5995" -dependencies = [ - "halo2_proofs", -] - -[[package]] -name = "halo2_proofs" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e925780549adee8364c7f2b685c753f6f3df23bde520c67416e93bf615933760" -dependencies = [ - "blake2b_simd", - "ff 0.12.1", - "group 0.12.1", - "pasta_curves 0.4.1", - "rand_core 0.6.4", - "rayon", -] - -[[package]] -name = "hash-db" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e7d7786361d7425ae2fe4f9e407eb0efaa0840f5212d109cc018c40c35c6ab4" - -[[package]] -name = "hash256-std-hasher" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92c171d55b98633f4ed3860808f004099b36c1cc29c42cfc53aa8591b21efcf2" -dependencies = [ - "crunchy", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[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.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "allocator-api2", - "serde", -] - -[[package]] -name = "hashbrown" -version = "0.15.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" -dependencies = [ - "allocator-api2", - "equivalent", - "foldhash", - "serde", -] - -[[package]] -name = "headers" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" -dependencies = [ - "base64 0.21.7", - "bytes", - "headers-core", - "http 0.2.12", - "httpdate", - "mime", - "sha1", -] - -[[package]] -name = "headers-core" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" -dependencies = [ - "http 0.2.12", -] - -[[package]] -name = "heck" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] - -[[package]] -name = "hex-conservative" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd" -dependencies = [ - "arrayvec", -] - -[[package]] -name = "histogram" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12cb882ccb290b8646e554b157ab0b71e64e8d5bef775cd66b6531e52d302669" - -[[package]] -name = "hmac" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" -dependencies = [ - "crypto-mac", - "digest 0.9.0", -] - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "hmac-drbg" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" -dependencies = [ - "digest 0.9.0", - "generic-array 0.14.7", - "hmac 0.8.1", -] - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - -[[package]] -name = "http-body" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" -dependencies = [ - "bytes", - "http 1.3.1", -] - -[[package]] -name = "http-body-util" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" -dependencies = [ - "bytes", - "futures-core", - "http 1.3.1", - "http-body 1.0.1", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "humantime" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f" - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "h2 0.4.11", - "http 1.3.1", - "http-body 1.0.1", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "smallvec", - "tokio", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" -dependencies = [ - "futures-util", - "http 0.2.12", - "hyper 0.14.32", - "rustls 0.21.12", - "tokio", - "tokio-rustls 0.24.1", -] - -[[package]] -name = "hyper-rustls" -version = "0.27.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" -dependencies = [ - "http 1.3.1", - "hyper 1.6.0", - "hyper-util", - "rustls 0.23.28", - "rustls-pki-types", - "tokio", - "tokio-rustls 0.26.2", - "tower-service", - "webpki-roots 1.0.1", -] - -[[package]] -name = "hyper-timeout" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" -dependencies = [ - "hyper 1.6.0", - "hyper-util", - "pin-project-lite", - "tokio", - "tower-service", -] - -[[package]] -name = "hyper-util" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc2fdfdbff08affe55bb779f33b053aa1fe5dd5b54c257343c17edfa55711bdb" -dependencies = [ - "base64 0.22.1", - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "http 1.3.1", - "http-body 1.0.1", - "hyper 1.6.0", - "ipnet", - "libc", - "percent-encoding", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "log", - "wasm-bindgen", - "windows-core 0.61.2", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "ibc-client-tendermint" -version = "0.57.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11225e842c5e3bf0787a36cf10d16b954dafbef357533fa2a87c7ac1bb2739f7" -dependencies = [ - "derive_more 1.0.0", - "ibc-client-tendermint-types", - "ibc-core-client", - "ibc-core-commitment-types", - "ibc-core-handler-types", - "ibc-core-host", - "ibc-primitives", - "serde", - "tendermint", - "tendermint-light-client-verifier", -] - -[[package]] -name = "ibc-client-tendermint-types" -version = "0.57.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa16efb7dc6d7b73d483e55553e6c69eeaf0b82384b464514c52fe813d3c55d2" -dependencies = [ - "displaydoc", - "ibc-core-client-types", - "ibc-core-commitment-types", - "ibc-core-host-types", - "ibc-primitives", - "ibc-proto 0.51.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde", - "tendermint", - "tendermint-light-client-verifier", - "tendermint-proto", -] - -[[package]] -name = "ibc-core-channel-types" -version = "0.57.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "681d986a6943683ef16fbaab8295125bf795ab4e15a1909eccb8574bb4567f10" -dependencies = [ - "derive_more 1.0.0", - "displaydoc", - "ibc-core-client-types", - "ibc-core-commitment-types", - "ibc-core-connection-types", - "ibc-core-host-types", - "ibc-primitives", - "ibc-proto 0.51.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde", - "sha2 0.10.9", - "subtle-encoding", - "tendermint", -] - -[[package]] -name = "ibc-core-client" -version = "0.57.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e95616bda7fa163c1ed5e96aa2a5c902d07b31fddbcd756ebaca7a004bc078e8" -dependencies = [ - "ibc-core-client-context", - "ibc-core-client-types", - "ibc-core-commitment-types", - "ibc-core-handler-types", - "ibc-core-host", - "ibc-primitives", -] - -[[package]] -name = "ibc-core-client-context" -version = "0.57.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540ce861ac8fe7ce6ff14de043d8a3e8e239875c058f0b5baa9fe9b0a31ac94" -dependencies = [ - "derive_more 1.0.0", - "displaydoc", - "ibc-core-client-types", - "ibc-core-commitment-types", - "ibc-core-handler-types", - "ibc-core-host-types", - "ibc-primitives", - "subtle-encoding", - "tendermint", -] - -[[package]] -name = "ibc-core-client-types" -version = "0.57.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f741122f7504846a6099d41244687e5db3235b7ce5f651de8a552489c1f5c9a" -dependencies = [ - "derive_more 1.0.0", - "displaydoc", - "ibc-core-commitment-types", - "ibc-core-host-types", - "ibc-primitives", - "ibc-proto 0.51.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde", - "subtle-encoding", - "tendermint", -] - -[[package]] -name = "ibc-core-commitment-types" -version = "0.57.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ba35d2bde395cff6ddbf550d604c3098903e661430588995b1e5f8db1f2e1d1" -dependencies = [ - "derive_more 1.0.0", - "displaydoc", - "ibc-core-host-types", - "ibc-primitives", - "ibc-proto 0.51.1 (registry+https://github.com/rust-lang/crates.io-index)", - "ics23", - "serde", - "subtle-encoding", -] - -[[package]] -name = "ibc-core-connection-types" -version = "0.57.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2eed5ea03d3900f89b3b498c7f2ff83ca50c2f4f76cebc339bfa5ecb2f0ffc1" -dependencies = [ - "derive_more 1.0.0", - "displaydoc", - "ibc-core-client-types", - "ibc-core-commitment-types", - "ibc-core-host-types", - "ibc-primitives", - "ibc-proto 0.51.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde", - "subtle-encoding", - "tendermint", -] - -[[package]] -name = "ibc-core-handler-types" -version = "0.57.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "426cdb98d683cf8f65b1ebb7638fd4e8a35e1718aa143bcf895636ee34c68385" -dependencies = [ - "derive_more 1.0.0", - "displaydoc", - "ibc-core-channel-types", - "ibc-core-client-types", - "ibc-core-commitment-types", - "ibc-core-connection-types", - "ibc-core-host-types", - "ibc-core-router-types", - "ibc-primitives", - "ibc-proto 0.51.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde", - "subtle-encoding", - "tendermint", -] - -[[package]] -name = "ibc-core-host" -version = "0.57.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ff10f831f430b02462e71852bcbc947dde972762ee26dce1202f861003366f2" -dependencies = [ - "derive_more 1.0.0", - "displaydoc", - "ibc-core-channel-types", - "ibc-core-client-context", - "ibc-core-client-types", - "ibc-core-commitment-types", - "ibc-core-connection-types", - "ibc-core-handler-types", - "ibc-core-host-types", - "ibc-primitives", - "subtle-encoding", -] - -[[package]] -name = "ibc-core-host-types" -version = "0.57.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5879fb43b0789f42919b7965a93f8a18a08eaa39bf624fbaf837d8673ef1ecdc" -dependencies = [ - "base64 0.22.1", - "derive_more 1.0.0", - "displaydoc", - "ibc-primitives", - "prost", - "serde", -] - -[[package]] -name = "ibc-core-router-types" -version = "0.57.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61cdfb5f8f7986ac50941f556c16d46e81cdf3529b257be1ab3beca8281f953e" -dependencies = [ - "derive_more 1.0.0", - "displaydoc", - "ibc-core-host-types", - "ibc-primitives", - "ibc-proto 0.51.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde", - "subtle-encoding", - "tendermint", -] - -[[package]] -name = "ibc-eureka-constrained-types" -version = "0.1.0" - -[[package]] -name = "proof-api" -version = "0.1.0" -dependencies = [ - "anyhow", - "clap", - "proof-api-core 0.1.0", - "proof-api-cosmos-to-cosmos", - "proof-api-cosmos-to-eth", - "proof-api-cosmos-to-solana", - "proof-api-eth-to-cosmos 0.1.0", - "proof-api-eth-to-cosmos-compat", - "proof-api-solana-to-cosmos", - "prometheus", - "serde_json", - "tokio", - "tracing", - "tracing-subscriber", - "warp", -] - -[[package]] -name = "proof-api-core" -version = "0.1.0" -dependencies = [ - "anyhow", - "prometheus", - "prost", - "serde", - "serde_json", - "tonic 0.13.1", - "tonic-build", - "tonic-reflection", - "tracing", -] - -[[package]] -name = "proof-api-core" -version = "0.1.0" -source = "git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8#d9f58589bee5881561cd8c769750a35448e5ebc8" -dependencies = [ - "anyhow", - "prometheus", - "prost", - "serde", - "serde_json", - "tonic 0.13.1", - "tonic-build", - "tonic-reflection", - "tracing", -] - -[[package]] -name = "proof-api-cosmos-to-cosmos" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-trait", - "ibc-core-host-types", - "proof-api-core 0.1.0", - "proof-api-lib 0.1.0", - "ibc-eureka-utils 0.1.0", - "ibc-proto 0.51.1 (git+https://github.com/srdtrk/ibc-proto-rs?rev=7074fb20c3a654e945e5ca46627c5a971d785e04)", - "ics23", - "prost", - "serde", - "serde_json", - "tendermint", - "tendermint-rpc", - "tonic 0.13.1", - "tracing", -] - -[[package]] -name = "proof-api-cosmos-to-eth" -version = "0.1.0" -dependencies = [ - "alloy", - "anyhow", - "async-trait", - "ibc-core-host-types", - "proof-api-core 0.1.0", - "proof-api-lib 0.1.0", - "ibc-eureka-solidity-types 0.1.0", - "ibc-eureka-utils 0.1.0", - "serde", - "serde_json", - "sp1-ics07-tendermint-prover 0.1.0", - "sp1-prover", - "sp1-sdk", - "tendermint", - "tendermint-rpc", - "tonic 0.13.1", - "tracing", -] - -[[package]] -name = "proof-api-cosmos-to-solana" -version = "0.1.0" -dependencies = [ - "anchor-client", - "anchor-lang", - "anyhow", - "bincode", - "borsh 1.5.7", - "hex", - "ibc-client-tendermint", - "proof-api-core 0.1.0", - "proof-api-lib 0.1.0", - "ibc-eureka-utils 0.1.0", - "ibc-proto 0.51.1 (registry+https://github.com/rust-lang/crates.io-index)", - "ibc-proto 0.51.1 (git+https://github.com/srdtrk/ibc-proto-rs?rev=7074fb20c3a654e945e5ca46627c5a971d785e04)", - "prost", - "serde", - "serde_json", - "sha2 0.10.9", - "solana-client", - "solana-ibc-constants", - "solana-ibc-proto", - "solana-ibc-types", - "solana-sdk", - "solana-transaction-status", - "tendermint", - "tendermint-proto", - "tendermint-rpc", - "tonic 0.13.1", - "tracing", -] - -[[package]] -name = "proof-api-eth-to-cosmos" -version = "0.1.0" -dependencies = [ - "alloy", - "anyhow", - "async-trait", - "ethereum-apis 0.1.0", - "ethereum-light-client 0.1.0", - "ethereum-types 0.1.0", - "proof-api-core 0.1.0", - "proof-api-lib 0.1.0", - "ibc-eureka-solidity-types 0.1.0", - "ibc-eureka-utils 0.1.0", - "ibc-proto 0.51.1 (git+https://github.com/srdtrk/ibc-proto-rs?rev=7074fb20c3a654e945e5ca46627c5a971d785e04)", - "prost", - "serde", - "serde_json", - "tendermint", - "tendermint-rpc", - "tonic 0.13.1", - "tracing", -] - -[[package]] -name = "proof-api-eth-to-cosmos" -version = "0.1.0" -source = "git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8#d9f58589bee5881561cd8c769750a35448e5ebc8" -dependencies = [ - "alloy", - "anyhow", - "async-trait", - "ethereum-apis 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8)", - "ethereum-light-client 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8)", - "ethereum-types 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8)", - "proof-api-core 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8)", - "proof-api-lib 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8)", - "ibc-eureka-solidity-types 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8)", - "ibc-eureka-utils 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8)", - "ibc-proto 0.51.1 (git+https://github.com/srdtrk/ibc-proto-rs?rev=7074fb20c3a654e945e5ca46627c5a971d785e04)", - "prost", - "serde", - "serde_json", - "tendermint", - "tendermint-rpc", - "tonic 0.13.1", - "tracing", -] - -[[package]] -name = "proof-api-eth-to-cosmos-compat" -version = "0.1.0" -dependencies = [ - "anyhow", - "hex", - "proof-api-core 0.1.0", - "proof-api-core 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8)", - "proof-api-eth-to-cosmos 0.1.0", - "proof-api-eth-to-cosmos 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8)", - "proof-api-lib 0.1.0", - "ibc-eureka-utils 0.1.0", - "ibc-proto 0.51.1 (git+https://github.com/srdtrk/ibc-proto-rs?rev=7074fb20c3a654e945e5ca46627c5a971d785e04)", - "prost", - "serde_json", - "tendermint-rpc", - "tonic 0.13.1", - "tracing", -] - -[[package]] -name = "proof-api-lib" -version = "0.1.0" -dependencies = [ - "alloy", - "anchor-lang", - "anyhow", - "async-trait", - "base64 0.22.1", - "ethereum-apis 0.1.0", - "ethereum-light-client 0.1.0", - "ethereum-types 0.1.0", - "futures", - "futures-timer", - "ibc-client-tendermint-types", - "ibc-core-commitment-types", - "ibc-eureka-solidity-types 0.1.0", - "ibc-eureka-utils 0.1.0", - "ibc-proto 0.51.1 (registry+https://github.com/rust-lang/crates.io-index)", - "ibc-proto 0.51.1 (git+https://github.com/srdtrk/ibc-proto-rs?rev=7074fb20c3a654e945e5ca46627c5a971d785e04)", - "ics23", - "prost", - "serde", - "serde_json", - "solana-client", - "solana-ibc-types", - "solana-sdk", - "solana-transaction-status", - "sp1-ics07-tendermint-prover 0.1.0", - "sp1-prover", - "sp1-sdk", - "tendermint", - "tendermint-light-client-verifier", - "tendermint-rpc", - "tonic 0.13.1", - "tracing", -] - -[[package]] -name = "proof-api-lib" -version = "0.1.0" -source = "git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8#d9f58589bee5881561cd8c769750a35448e5ebc8" -dependencies = [ - "alloy", - "anyhow", - "async-trait", - "ethereum-apis 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8)", - "ethereum-light-client 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8)", - "ethereum-types 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8)", - "futures", - "futures-timer", - "ibc-core-commitment-types", - "ibc-eureka-solidity-types 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8)", - "ibc-eureka-utils 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8)", - "ibc-proto 0.51.1 (git+https://github.com/srdtrk/ibc-proto-rs?rev=7074fb20c3a654e945e5ca46627c5a971d785e04)", - "prost", - "serde", - "serde_json", - "sp1-ics07-tendermint-prover 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8)", - "sp1-prover", - "sp1-sdk", - "tendermint", - "tendermint-light-client-verifier", - "tendermint-rpc", - "tracing", -] - -[[package]] -name = "proof-api-solana-to-cosmos" -version = "0.1.0" -dependencies = [ - "anchor-client", - "anchor-lang", - "anyhow", - "async-trait", - "base64 0.22.1", - "borsh 1.5.7", - "hex", - "proof-api-core 0.1.0", - "proof-api-lib 0.1.0", - "ibc-eureka-utils 0.1.0", - "ibc-proto 0.51.1 (git+https://github.com/srdtrk/ibc-proto-rs?rev=7074fb20c3a654e945e5ca46627c5a971d785e04)", - "prost", - "serde", - "serde_json", - "solana-client", - "solana-ibc-types", - "solana-sdk", - "solana-transaction-status", - "tendermint", - "tendermint-rpc", - "tonic 0.13.1", - "tracing", -] - -[[package]] -name = "ibc-eureka-solidity-types" -version = "0.1.0" -dependencies = [ - "alloy-contract", - "alloy-primitives 1.2.1", - "alloy-sol-types 1.2.1", - "hex", - "ibc-client-tendermint-types", - "ibc-core-client-types", - "ibc-core-commitment-types", - "ibc-proto 0.51.1 (git+https://github.com/srdtrk/ibc-proto-rs?rev=7074fb20c3a654e945e5ca46627c5a971d785e04)", - "sha2 0.10.9", - "tendermint", - "tendermint-light-client-verifier", - "thiserror 2.0.12", - "time", -] - -[[package]] -name = "ibc-eureka-solidity-types" -version = "0.1.0" -source = "git+https://github.com/cosmos/solidity-ibc-eureka?tag=cw-ics08-wasm-eth-v1.2.0#57cb581aaa8839a479147c0713df4c012e64c260" -dependencies = [ - "alloy-primitives 0.8.25", - "alloy-sol-types 0.8.25", - "ibc-client-tendermint-types", - "ibc-core-client-types", - "ibc-core-commitment-types", - "ibc-proto 0.51.1 (git+https://github.com/srdtrk/ibc-proto-rs?rev=7074fb20c3a654e945e5ca46627c5a971d785e04)", - "serde", - "sha2 0.10.9", - "tendermint", - "tendermint-light-client-verifier", - "thiserror 2.0.12", - "time", -] - -[[package]] -name = "ibc-eureka-solidity-types" -version = "0.1.0" -source = "git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8#d9f58589bee5881561cd8c769750a35448e5ebc8" -dependencies = [ - "alloy-contract", - "alloy-primitives 1.2.1", - "alloy-sol-types 1.2.1", - "hex", - "ibc-client-tendermint-types", - "ibc-core-client-types", - "ibc-core-commitment-types", - "ibc-proto 0.51.1 (git+https://github.com/srdtrk/ibc-proto-rs?rev=7074fb20c3a654e945e5ca46627c5a971d785e04)", - "sha2 0.10.9", - "tendermint", - "tendermint-light-client-verifier", - "thiserror 2.0.12", - "time", -] - -[[package]] -name = "ibc-eureka-utils" -version = "0.1.0" -dependencies = [ - "alloy-network 1.0.17", - "alloy-signer-local 1.0.17", - "anyhow", - "async-trait", - "cosmos-sdk-proto", - "ibc-client-tendermint-types", - "ibc-core-client-types", - "ibc-core-commitment-types", - "ibc-core-host-types", - "ibc-eureka-solidity-types 0.1.0", - "ibc-proto 0.51.1 (registry+https://github.com/rust-lang/crates.io-index)", - "prost", - "reqwest 0.11.27", - "tendermint", - "tendermint-light-client-verifier", - "tendermint-rpc", -] - -[[package]] -name = "ibc-eureka-utils" -version = "0.1.0" -source = "git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8#d9f58589bee5881561cd8c769750a35448e5ebc8" -dependencies = [ - "alloy-network 1.0.17", - "alloy-signer-local 1.0.17", - "anyhow", - "async-trait", - "cosmos-sdk-proto", - "ibc-client-tendermint-types", - "ibc-core-client-types", - "ibc-core-commitment-types", - "ibc-core-host-types", - "ibc-eureka-solidity-types 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8)", - "ibc-proto 0.51.1 (registry+https://github.com/rust-lang/crates.io-index)", - "prost", - "reqwest 0.11.27", - "tendermint", - "tendermint-light-client-verifier", - "tendermint-rpc", -] - -[[package]] -name = "ibc-primitives" -version = "0.57.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ff3dab00855e9ab99fa7276814bd29b0350f2da70b3e9f67f1d86f4e269655b" -dependencies = [ - "derive_more 1.0.0", - "displaydoc", - "ibc-proto 0.51.1 (registry+https://github.com/rust-lang/crates.io-index)", - "prost", - "serde", - "time", -] - -[[package]] -name = "ibc-proto" -version = "0.51.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b70f517162e74e2d35875b8b94bf4d1e45f2c69ef3de452dc855944455d33ca" -dependencies = [ - "base64 0.22.1", - "bytes", - "cosmos-sdk-proto", - "flex-error", - "ics23", - "informalsystems-pbjson", - "prost", - "serde", - "subtle-encoding", - "tendermint-proto", -] - -[[package]] -name = "ibc-proto" -version = "0.51.1" -source = "git+https://github.com/srdtrk/ibc-proto-rs?rev=7074fb20c3a654e945e5ca46627c5a971d785e04#7074fb20c3a654e945e5ca46627c5a971d785e04" -dependencies = [ - "base64 0.22.1", - "bytes", - "cosmos-sdk-proto", - "flex-error", - "ics23", - "prost", - "subtle-encoding", - "tendermint-proto", -] - -[[package]] -name = "ics23" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73b17f1a5bd7d12ad30a21445cfa5f52fd7651cb3243ba866f9916b1ec112f12" -dependencies = [ - "anyhow", - "blake2", - "blake3", - "bytes", - "hex", - "informalsystems-pbjson", - "prost", - "ripemd", - "serde", - "sha2 0.10.9", - "sha3", -] - -[[package]] -name = "icu_collections" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" -dependencies = [ - "displaydoc", - "potential_utf", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locale_core" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_normalizer" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" - -[[package]] -name = "icu_properties" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locale_core", - "icu_properties_data", - "icu_provider", - "potential_utf", - "zerotrie", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" - -[[package]] -name = "icu_provider" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" -dependencies = [ - "displaydoc", - "icu_locale_core", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerotrie", - "zerovec", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "impl-codec" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-rlp" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54ed8ad1f3877f7e775b8cbf30ed1bd3209a95401817f19a0eb4402d13f8cf90" -dependencies = [ - "rlp 0.6.1", -] - -[[package]] -name = "impl-trait-for-tuples" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "indenter" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" -dependencies = [ - "arbitrary", - "equivalent", - "hashbrown 0.15.4", - "serde", -] - -[[package]] -name = "indicatif" -version = "0.17.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4adb2ee6ad319a912210a36e56e3623555817bcc877a7e6e8802d1d69c4d8056" -dependencies = [ - "console", - "portable-atomic", - "unicode-width", - "unit-prefix", - "web-time", -] - -[[package]] -name = "informalsystems-pbjson" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aa4a0980c8379295100d70854354e78df2ee1c6ca0f96ffe89afeb3140e3a3d" -dependencies = [ - "base64 0.21.7", - "serde", -] - -[[package]] -name = "inout" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" -dependencies = [ - "generic-array 0.14.7", -] - -[[package]] -name = "instant" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "interprocess" -version = "2.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d941b405bd2322993887859a8ee6ac9134945a24ec5ec763a8a962fc64dfec2d" -dependencies = [ - "doctest-file", - "futures-core", - "libc", - "recvmsg", - "tokio", - "widestring", - "windows-sys 0.52.0", -] - -[[package]] -name = "io-uring" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013" -dependencies = [ - "bitflags 2.9.1", - "cfg-if", - "libc", -] - -[[package]] -name = "ipnet" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" - -[[package]] -name = "iri-string" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" -dependencies = [ - "memchr", - "serde", -] - -[[package]] -name = "is_terminal_polyfill" -version = "1.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" - -[[package]] -name = "jni" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" -dependencies = [ - "cesu8", - "cfg-if", - "combine", - "jni-sys", - "log", - "thiserror 1.0.69", - "walkdir", - "windows-sys 0.45.0", -] - -[[package]] -name = "jni-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" - -[[package]] -name = "jobserver" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" -dependencies = [ - "getrandom 0.3.3", - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.77" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "jsonrpc-core" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb" -dependencies = [ - "futures", - "futures-executor", - "futures-util", - "log", - "serde", - "serde_derive", - "serde_json", -] - -[[package]] -name = "jubjub" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a575df5f985fe1cd5b2b05664ff6accfc46559032b954529fd225a2168d27b0f" -dependencies = [ - "bitvec", - "bls12_381", - "ff 0.12.1", - "group 0.12.1", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "k256" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" -dependencies = [ - "cfg-if", - "ecdsa", - "elliptic-curve", - "once_cell", - "serdect", - "sha2 0.10.9", - "signature 2.2.0", -] - -[[package]] -name = "kaigan" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ba15de5aeb137f0f65aa3bf82187647f1285abfe5b20c80c2c37f7007ad519a" -dependencies = [ - "borsh 0.10.4", - "serde", -] - -[[package]] -name = "keccak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" -dependencies = [ - "cpufeatures", -] - -[[package]] -name = "keccak-asm" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" -dependencies = [ - "digest 0.10.7", - "sha3-asm", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -dependencies = [ - "spin", -] - -[[package]] -name = "libc" -version = "0.2.174" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" - -[[package]] -name = "libloading" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" -dependencies = [ - "cfg-if", - "windows-targets 0.53.2", -] - -[[package]] -name = "libm" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" - -[[package]] -name = "libredox" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" -dependencies = [ - "bitflags 2.9.1", - "libc", -] - -[[package]] -name = "libsecp256k1" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9d220bc1feda2ac231cb78c3d26f27676b8cf82c96971f7aeef3d0cf2797c73" -dependencies = [ - "arrayref", - "base64 0.12.3", - "digest 0.9.0", - "hmac-drbg", - "libsecp256k1-core", - "libsecp256k1-gen-ecmult", - "libsecp256k1-gen-genmult", - "rand 0.7.3", - "serde", - "sha2 0.9.9", - "typenum", -] - -[[package]] -name = "libsecp256k1-core" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0f6ab710cec28cef759c5f18671a27dae2a5f952cdaaee1d8e2908cb2478a80" -dependencies = [ - "crunchy", - "digest 0.9.0", - "subtle", -] - -[[package]] -name = "libsecp256k1-gen-ecmult" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3" -dependencies = [ - "libsecp256k1-core", -] - -[[package]] -name = "libsecp256k1-gen-genmult" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" -dependencies = [ - "libsecp256k1-core", -] - -[[package]] -name = "linux-raw-sys" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" - -[[package]] -name = "litemap" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" - -[[package]] -name = "lock_api" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" - -[[package]] -name = "lru" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" -dependencies = [ - "hashbrown 0.15.4", -] - -[[package]] -name = "lru" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465" -dependencies = [ - "hashbrown 0.15.4", -] - -[[package]] -name = "lru-slab" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" - -[[package]] -name = "macro-string" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata 0.1.10", -] - -[[package]] -name = "matchit" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" - -[[package]] -name = "matchit" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" - -[[package]] -name = "memchr" -version = "2.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" - -[[package]] -name = "memmap2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" -dependencies = [ - "libc", -] - -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - -[[package]] -name = "memory-db" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808b50db46293432a45e63bc15ea51e0ab4c0a1647b8eb114e31a3e698dd6fbe" -dependencies = [ - "hash-db", -] - -[[package]] -name = "memuse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d97bbf43eb4f088f8ca469930cde17fa036207c9a5e02ccc5107c4e8b17c964" - -[[package]] -name = "merlin" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" -dependencies = [ - "byteorder", - "keccak", - "rand_core 0.6.4", - "zeroize", -] - -[[package]] -name = "milagro_bls" -version = "1.5.0" -source = "git+https://github.com/Snowfork/milagro_bls?rev=bc2b5b5e8d48b7e2e1bfaa56dc2d93e13cb32095#bc2b5b5e8d48b7e2e1bfaa56dc2d93e13cb32095" -dependencies = [ - "amcl", - "rand 0.8.5", - "zeroize", -] - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "mime_guess" -version = "2.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" -dependencies = [ - "mime", - "unicase", -] - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "miniz_oxide" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" -dependencies = [ - "libc", - "wasi 0.11.1+wasi-snapshot-preview1", - "windows-sys 0.59.0", -] - -[[package]] -name = "multer" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" -dependencies = [ - "bytes", - "encoding_rs", - "futures-util", - "http 0.2.12", - "httparse", - "log", - "memchr", - "mime", - "spin", - "version_check", -] - -[[package]] -name = "multimap" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" - -[[package]] -name = "nix" -version = "0.30.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" -dependencies = [ - "bitflags 2.9.1", - "cfg-if", - "cfg_aliases", - "libc", - "memoffset", -] - -[[package]] -name = "no-std-compat" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" - -[[package]] -name = "nohash-hasher" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "nonzero_ext" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" - -[[package]] -name = "ntapi" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" -dependencies = [ - "winapi", -] - -[[package]] -name = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] - -[[package]] -name = "num" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" -dependencies = [ - "num-bigint 0.2.6", - "num-complex 0.2.4", - "num-integer", - "num-iter", - "num-rational 0.2.4", - "num-traits", -] - -[[package]] -name = "num" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" -dependencies = [ - "num-bigint 0.4.6", - "num-complex 0.4.6", - "num-integer", - "num-iter", - "num-rational 0.4.2", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", -] - -[[package]] -name = "num-complex" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-complex" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-derive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-modular" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17bb261bf36fa7d83f4c294f834e91256769097b3cb505d44831e0a179ac647f" - -[[package]] -name = "num-order" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "537b596b97c40fcf8056d153049eb22f481c17ebce72a513ec9286e4986d1bb6" -dependencies = [ - "num-modular", -] - -[[package]] -name = "num-rational" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" -dependencies = [ - "autocfg", - "num-bigint 0.2.6", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" -dependencies = [ - "num-bigint 0.4.6", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "num_cpus" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" -dependencies = [ - "hermit-abi 0.5.2", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" -dependencies = [ - "num_enum_derive 0.5.11", -] - -[[package]] -name = "num_enum" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" -dependencies = [ - "num_enum_derive 0.7.4", - "rustversion", -] - -[[package]] -name = "num_enum_derive" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" -dependencies = [ - "proc-macro-crate 1.3.1", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" -dependencies = [ - "proc-macro-crate 3.3.0", - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "nybbles" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8983bb634df7248924ee0c4c3a749609b5abcb082c28fffe3254b3eb3602b307" -dependencies = [ - "alloy-rlp", - "const-hex", - "proptest", - "serde", - "smallvec", -] - -[[package]] -name = "nybbles" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d51b0175c49668a033fe7cc69080110d9833b291566cdf332905f3ad9c68a0" -dependencies = [ - "alloy-rlp", - "proptest", - "ruint", - "serde", - "smallvec", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - -[[package]] -name = "oid-registry" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" -dependencies = [ - "asn1-rs", -] - -[[package]] -name = "once_cell" -version = "1.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" - -[[package]] -name = "once_cell_polyfill" -version = "1.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" - -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - -[[package]] -name = "openssl" -version = "0.10.73" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" -dependencies = [ - "bitflags 2.9.1", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "openssl-probe" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" - -[[package]] -name = "openssl-sys" -version = "0.9.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - -[[package]] -name = "p256" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" -dependencies = [ - "ecdsa", - "elliptic-curve", - "primeorder", - "sha2 0.10.9", -] - -[[package]] -name = "p3-air" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d05a97452c4b1cfa8626e69181d901fc8231d99ff7d87e9701a2e6b934606615" -dependencies = [ - "p3-field", - "p3-matrix", -] - -[[package]] -name = "p3-baby-bear" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7521838ecab2ddf4f7bc4ceebad06ec02414729598485c1ada516c39900820e8" -dependencies = [ - "num-bigint 0.4.6", - "p3-field", - "p3-mds", - "p3-poseidon2", - "p3-symmetric", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-bn254-fr" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0dd4d095d254783098bd09fc5fdf33fd781a1be54608ab93cb3ed4bd723da54" -dependencies = [ - "ff 0.13.1", - "num-bigint 0.4.6", - "p3-field", - "p3-poseidon2", - "p3-symmetric", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-challenger" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5d18c223b7e0177f4ac91070fa3f6cc557d5ee3b279869924c3102fb1b20910" -dependencies = [ - "p3-field", - "p3-maybe-rayon", - "p3-symmetric", - "p3-util", - "serde", - "tracing", -] - -[[package]] -name = "p3-commit" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b38fe979d53d4f1d64158c40b3cd9ea1bd6b7bc8f085e489165c542ef914ae28" -dependencies = [ - "itertools 0.12.1", - "p3-challenger", - "p3-field", - "p3-matrix", - "p3-util", - "serde", -] - -[[package]] -name = "p3-dft" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46414daedd796f1eefcdc1811c0484e4bced5729486b6eaba9521c572c76761a" -dependencies = [ - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-util", - "tracing", -] - -[[package]] -name = "p3-field" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48948a0516b349e9d1cdb95e7236a6ee010c44e68c5cc78b4b92bf1c4022a0d9" -dependencies = [ - "itertools 0.12.1", - "num-bigint 0.4.6", - "num-traits", - "p3-util", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-fri" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c274dab2dcd060cdea9ab3f8f7129f5fa5f08917d6092dc2b297a31d883aa0" -dependencies = [ - "itertools 0.12.1", - "p3-challenger", - "p3-commit", - "p3-dft", - "p3-field", - "p3-interpolation", - "p3-matrix", - "p3-maybe-rayon", - "p3-util", - "serde", - "tracing", -] - -[[package]] -name = "p3-interpolation" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed8de7333abb0ad0a17bb78726a43749cc7fcab4763f296894e8b2933841d4d8" -dependencies = [ - "p3-field", - "p3-matrix", - "p3-util", -] - -[[package]] -name = "p3-keccak-air" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01c7ec21317c455d39588428e4ec85b96d663ff171ddf102a10e2ca54c942dea" -dependencies = [ - "p3-air", - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-util", - "tracing", -] - -[[package]] -name = "p3-matrix" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4de3f373589477cb735ea58e125898ed20935e03664b4614c7fac258b3c42f" -dependencies = [ - "itertools 0.12.1", - "p3-field", - "p3-maybe-rayon", - "p3-util", - "rand 0.8.5", - "serde", - "tracing", -] - -[[package]] -name = "p3-maybe-rayon" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3968ad1160310296eb04f91a5f4edfa38fe1d6b2b8cd6b5c64e6f9b7370979e" -dependencies = [ - "rayon", -] - -[[package]] -name = "p3-mds" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2356b1ed0add6d5dfbf7a338ce534a6fde827374394a52cec16a0840af6e97c9" -dependencies = [ - "itertools 0.12.1", - "p3-dft", - "p3-field", - "p3-matrix", - "p3-symmetric", - "p3-util", - "rand 0.8.5", -] - -[[package]] -name = "p3-merkle-tree" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f159e073afbee02c00d22390bf26ebb9ce03bbcd3e6dcd13c6a7a3811ab39608" -dependencies = [ - "itertools 0.12.1", - "p3-commit", - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-symmetric", - "p3-util", - "serde", - "tracing", -] - -[[package]] -name = "p3-poseidon2" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da1eec7e1b6900581bedd95e76e1ef4975608dd55be9872c9d257a8a9651c3a" -dependencies = [ - "gcd", - "p3-field", - "p3-mds", - "p3-symmetric", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-symmetric" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb439bea1d822623b41ff4b51e3309e80d13cadf8b86d16ffd5e6efb9fdc360" -dependencies = [ - "itertools 0.12.1", - "p3-field", - "serde", -] - -[[package]] -name = "p3-uni-stark" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a86f29c32bf46fa4acb6547d2065a711e146d4faca388b56d75718c60a0097d" -dependencies = [ - "itertools 0.12.1", - "p3-air", - "p3-challenger", - "p3-commit", - "p3-dft", - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-util", - "serde", - "tracing", -] - -[[package]] -name = "p3-util" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c2c2010678b9332b563eaa38364915b585c1a94b5ca61e2c7541c087ddda5c" -dependencies = [ - "serde", -] - -[[package]] -name = "pairing" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135590d8bdba2b31346f9cd1fb2a912329f5135e832a4f422942eb6ead8b6b3b" -dependencies = [ - "group 0.12.1", -] - -[[package]] -name = "parity-scale-codec" -version = "3.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799781ae679d79a948e13d4824a40970bfa500058d245760dd857301059810fa" -dependencies = [ - "arrayvec", - "bitvec", - "byte-slice-cast", - "const_format", - "impl-trait-for-tuples", - "parity-scale-codec-derive", - "rustversion", - "serde", -] - -[[package]] -name = "parity-scale-codec-derive" -version = "3.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34b4653168b563151153c9e4c08ebed57fb8262bebfa79711552fa983c623e7a" -dependencies = [ - "proc-macro-crate 3.3.0", - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "parking" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" - -[[package]] -name = "parking_lot" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-targets 0.52.6", -] - -[[package]] -name = "pasta_curves" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc65faf8e7313b4b1fbaa9f7ca917a0eed499a9663be71477f87993604341d8" -dependencies = [ - "blake2b_simd", - "ff 0.12.1", - "group 0.12.1", - "lazy_static", - "rand 0.8.5", - "static_assertions", - "subtle", -] - -[[package]] -name = "pasta_curves" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" -dependencies = [ - "blake2b_simd", - "ff 0.13.1", - "group 0.13.0", - "lazy_static", - "rand 0.8.5", - "static_assertions", - "subtle", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pathdiff" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" - -[[package]] -name = "pbkdf2" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "peg" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9928cfca101b36ec5163e70049ee5368a8a1c3c6efc9ca9c5f9cc2f816152477" -dependencies = [ - "peg-macros", - "peg-runtime", -] - -[[package]] -name = "peg-macros" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6298ab04c202fa5b5d52ba03269fb7b74550b150323038878fe6c372d8280f71" -dependencies = [ - "peg-runtime", - "proc-macro2", - "quote", -] - -[[package]] -name = "peg-runtime" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "132dca9b868d927b35b5dd728167b2dee150eb1ad686008fc71ccb298b776fca" - -[[package]] -name = "pem" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" -dependencies = [ - "base64 0.13.1", -] - -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "percentage" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd23b938276f14057220b707937bcb42fa76dda7560e57a2da30cb52d557937" -dependencies = [ - "num 0.2.1", -] - -[[package]] -name = "pest" -version = "2.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" -dependencies = [ - "memchr", - "thiserror 2.0.12", - "ucd-trie", -] - -[[package]] -name = "petgraph" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" -dependencies = [ - "fixedbitset", - "indexmap 2.10.0", -] - -[[package]] -name = "pharos" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" -dependencies = [ - "futures", - "rustc_version 0.4.1", -] - -[[package]] -name = "pin-project" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "pkg-config" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" - -[[package]] -name = "polyval" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" -dependencies = [ - "cfg-if", - "cpufeatures", - "opaque-debug", - "universal-hash", -] - -[[package]] -name = "portable-atomic" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" - -[[package]] -name = "potential_utf" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" -dependencies = [ - "zerovec", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy", -] - -[[package]] -name = "prettyplease" -version = "0.2.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061c1221631e079b26479d25bbf2275bfe5917ae8419cd7e34f13bfc2aa7539a" -dependencies = [ - "proc-macro2", - "syn 2.0.104", -] - -[[package]] -name = "primeorder" -version = "0.13.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" -dependencies = [ - "elliptic-curve", -] - -[[package]] -name = "primitive-types" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" -dependencies = [ - "fixed-hash", - "impl-codec", - "uint 0.9.5", -] - -[[package]] -name = "primitive-types" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d15600a7d856470b7d278b3fe0e311fe28c2526348549f8ef2ff7db3299c87f5" -dependencies = [ - "fixed-hash", - "impl-rlp", - "uint 0.10.0", -] - -[[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 = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" -dependencies = [ - "once_cell", - "toml_edit 0.19.15", -] - -[[package]] -name = "proc-macro-crate" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" -dependencies = [ - "toml_edit 0.22.27", -] - -[[package]] -name = "proc-macro-error-attr2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" -dependencies = [ - "proc-macro2", - "quote", -] - -[[package]] -name = "proc-macro-error2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" -dependencies = [ - "proc-macro-error-attr2", - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "proc-macro2" -version = "1.0.95" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "prometheus" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ca5326d8d0b950a9acd87e6a3f94745394f62e4dae1b1ee22b2bc0c394af43a" -dependencies = [ - "cfg-if", - "fnv", - "lazy_static", - "memchr", - "parking_lot", - "protobuf", - "thiserror 2.0.12", -] - -[[package]] -name = "proptest" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fcdab19deb5195a31cf7726a210015ff1496ba1464fd42cb4f537b8b01b471f" -dependencies = [ - "bit-set", - "bit-vec", - "bitflags 2.9.1", - "lazy_static", - "num-traits", - "rand 0.9.1", - "rand_chacha 0.9.0", - "rand_xorshift", - "regex-syntax 0.8.5", - "rusty-fork", - "tempfile", - "unarray", -] - -[[package]] -name = "proptest-derive" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee1c9ac207483d5e7db4940700de86a9aae46ef90c48b57f99fe7edb8345e49" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "prost" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" -dependencies = [ - "bytes", - "prost-derive", -] - -[[package]] -name = "prost-build" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" -dependencies = [ - "heck 0.5.0", - "itertools 0.14.0", - "log", - "multimap", - "once_cell", - "petgraph", - "prettyplease", - "prost", - "prost-types", - "regex", - "syn 2.0.104", - "tempfile", -] - -[[package]] -name = "prost-derive" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" -dependencies = [ - "anyhow", - "itertools 0.14.0", - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "prost-types" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" -dependencies = [ - "prost", -] - -[[package]] -name = "protobuf" -version = "3.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d65a1d4ddae7d8b5de68153b48f6aa3bba8cb002b243dbdbc55a5afbc98f99f4" -dependencies = [ - "once_cell", - "protobuf-support", - "thiserror 1.0.69", -] - -[[package]] -name = "protobuf-support" -version = "3.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e36c2f31e0a47f9280fb347ef5e461ffcd2c52dd520d8e216b52f93b0b0d7d6" -dependencies = [ - "thiserror 1.0.69", -] - -[[package]] -name = "qstring" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d464fae65fff2680baf48019211ce37aaec0c78e9264c84a3e484717f965104e" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "quanta" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3ab5a9d756f0d97bdc89019bd2e4ea098cf9cde50ee7564dde6b81ccc8f06c7" -dependencies = [ - "crossbeam-utils", - "libc", - "once_cell", - "raw-cpuid", - "wasi 0.11.1+wasi-snapshot-preview1", - "web-sys", - "winapi", -] - -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - -[[package]] -name = "quinn" -version = "0.11.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" -dependencies = [ - "bytes", - "cfg_aliases", - "pin-project-lite", - "quinn-proto", - "quinn-udp", - "rustc-hash 2.1.1", - "rustls 0.23.28", - "socket2", - "thiserror 2.0.12", - "tokio", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-proto" -version = "0.11.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" -dependencies = [ - "bytes", - "fastbloom", - "getrandom 0.3.3", - "lru-slab", - "rand 0.9.1", - "ring", - "rustc-hash 2.1.1", - "rustls 0.23.28", - "rustls-pki-types", - "rustls-platform-verifier", - "slab", - "thiserror 2.0.12", - "tinyvec", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-udp" -version = "0.5.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970" -dependencies = [ - "cfg_aliases", - "libc", - "once_cell", - "socket2", - "tracing", - "windows-sys 0.59.0", -] - -[[package]] -name = "quote" -version = "1.0.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "r-efi" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" - -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", - "serde", -] - -[[package]] -name = "rand" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" -dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.3", - "serde", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core 0.9.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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.16", -] - -[[package]] -name = "rand_core" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" -dependencies = [ - "getrandom 0.3.3", - "serde", -] - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" -dependencies = [ - "rand_core 0.9.3", -] - -[[package]] -name = "range-set-blaze" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8421b5d459262eabbe49048d362897ff3e3830b44eac6cfe341d6acb2f0f13d2" -dependencies = [ - "gen_ops", - "itertools 0.12.1", - "num-integer", - "num-traits", -] - -[[package]] -name = "raw-cpuid" -version = "11.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" -dependencies = [ - "bitflags 2.9.1", -] - -[[package]] -name = "rayon" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "rayon-scan" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f87cc11a0140b4b0da0ffc889885760c61b13672d80a908920b2c0df078fa14" -dependencies = [ - "rayon", -] - -[[package]] -name = "recvmsg" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" - -[[package]] -name = "redox_syscall" -version = "0.5.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" -dependencies = [ - "bitflags 2.9.1", -] - -[[package]] -name = "redox_users" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" -dependencies = [ - "getrandom 0.2.16", - "libredox", - "thiserror 1.0.69", -] - -[[package]] -name = "ref-cast" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" -dependencies = [ - "ref-cast-impl", -] - -[[package]] -name = "ref-cast-impl" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "regex" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", -] - -[[package]] -name = "regex-automata" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax 0.8.5", -] - -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - -[[package]] -name = "regex-syntax" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" - -[[package]] -name = "reqwest" -version = "0.11.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.32", - "hyper-rustls 0.24.2", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls 0.21.12", - "rustls-native-certs 0.6.3", - "rustls-pemfile 1.0.4", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 0.1.2", - "system-configuration", - "tokio", - "tokio-rustls 0.24.1", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", -] - -[[package]] -name = "reqwest" -version = "0.12.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" -dependencies = [ - "async-compression", - "base64 0.22.1", - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "http 1.3.1", - "http-body 1.0.1", - "http-body-util", - "hyper 1.6.0", - "hyper-rustls 0.27.7", - "hyper-util", - "js-sys", - "log", - "percent-encoding", - "pin-project-lite", - "quinn", - "rustls 0.23.28", - "rustls-pki-types", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 1.0.2", - "tokio", - "tokio-rustls 0.26.2", - "tokio-util", - "tower 0.5.2", - "tower-http", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-streams", - "web-sys", - "webpki-roots 1.0.1", -] - -[[package]] -name = "reqwest-middleware" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562ceb5a604d3f7c885a792d42c199fd8af239d0a51b2fa6a78aafa092452b04" -dependencies = [ - "anyhow", - "async-trait", - "http 1.3.1", - "reqwest 0.12.22", - "serde", - "thiserror 1.0.69", - "tower-service", -] - -[[package]] -name = "reqwest-middleware" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57f17d28a6e6acfe1733fe24bcd30774d13bffa4b8a22535b4c8c98423088d4e" -dependencies = [ - "anyhow", - "async-trait", - "http 1.3.1", - "reqwest 0.12.22", - "serde", - "thiserror 1.0.69", - "tower-service", -] - -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac 0.12.1", - "subtle", -] - -[[package]] -name = "ring" -version = "0.17.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" -dependencies = [ - "cc", - "cfg-if", - "getrandom 0.2.16", - "libc", - "untrusted", - "windows-sys 0.52.0", -] - -[[package]] -name = "ripemd" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "rlp" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" -dependencies = [ - "bytes", - "rustc-hex", -] - -[[package]] -name = "rlp" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa24e92bb2a83198bb76d661a71df9f7076b8c420b8696e4d3d97d50d94479e3" -dependencies = [ - "bytes", - "rustc-hex", -] - -[[package]] -name = "rlp-derive" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "652db34deaaa57929e10ca18e5454a32cb0efc351ae80d320334bbf907b908b3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "rmp" -version = "0.8.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" -dependencies = [ - "byteorder", - "num-traits", - "paste", -] - -[[package]] -name = "rmp-serde" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" -dependencies = [ - "byteorder", - "rmp", - "serde", -] - -[[package]] -name = "rrs-succinct" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3372685893a9f67d18e98e792d690017287fd17379a83d798d958e517d380fa9" -dependencies = [ - "downcast-rs", - "num_enum 0.5.11", - "paste", -] - -[[package]] -name = "ruint" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11256b5fe8c68f56ac6f39ef0720e592f33d2367a4782740d9c9142e889c7fb4" -dependencies = [ - "alloy-rlp", - "arbitrary", - "ark-ff 0.3.0", - "ark-ff 0.4.2", - "bytes", - "fastrlp 0.3.1", - "fastrlp 0.4.0", - "num-bigint 0.4.6", - "num-integer", - "num-traits", - "parity-scale-codec", - "primitive-types 0.12.2", - "proptest", - "rand 0.8.5", - "rand 0.9.1", - "rlp 0.5.2", - "ruint-macro", - "serde", - "valuable", - "zeroize", -] - -[[package]] -name = "ruint-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" - -[[package]] -name = "rustc-demangle" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc-hash" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" - -[[package]] -name = "rustc-hex" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" - -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver 0.11.0", -] - -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver 1.0.26", -] - -[[package]] -name = "rusticata-macros" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" -dependencies = [ - "nom", -] - -[[package]] -name = "rustix" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" -dependencies = [ - "bitflags 2.9.1", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring", - "rustls-webpki 0.101.7", - "sct", -] - -[[package]] -name = "rustls" -version = "0.23.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7160e3e10bf4535308537f3c4e1641468cd0e485175d6163087c0393c7d46643" -dependencies = [ - "log", - "once_cell", - "ring", - "rustls-pki-types", - "rustls-webpki 0.103.3", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-native-certs" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" -dependencies = [ - "openssl-probe", - "rustls-pemfile 1.0.4", - "schannel", - "security-framework 2.11.1", -] - -[[package]] -name = "rustls-native-certs" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" -dependencies = [ - "openssl-probe", - "rustls-pki-types", - "schannel", - "security-framework 3.2.0", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - -[[package]] -name = "rustls-pemfile" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "rustls-pki-types" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" -dependencies = [ - "web-time", - "zeroize", -] - -[[package]] -name = "rustls-platform-verifier" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19787cda76408ec5404443dc8b31795c87cd8fec49762dc75fa727740d34acc1" -dependencies = [ - "core-foundation 0.10.1", - "core-foundation-sys", - "jni", - "log", - "once_cell", - "rustls 0.23.28", - "rustls-native-certs 0.8.1", - "rustls-platform-verifier-android", - "rustls-webpki 0.103.3", - "security-framework 3.2.0", - "security-framework-sys", - "webpki-root-certs 0.26.11", - "windows-sys 0.59.0", -] - -[[package]] -name = "rustls-platform-verifier-android" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" - -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "rustls-webpki" -version = "0.103.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - -[[package]] -name = "rustversion" -version = "1.0.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" - -[[package]] -name = "rusty-fork" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" -dependencies = [ - "fnv", - "quick-error", - "tempfile", - "wait-timeout", -] - -[[package]] -name = "ryu" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" - -[[package]] -name = "safe_arch" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" -dependencies = [ - "bytemuck", -] - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "scale-info" -version = "2.11.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "346a3b32eba2640d17a9cb5927056b08f3de90f65b72fe09402c2ad07d684d0b" -dependencies = [ - "cfg-if", - "derive_more 1.0.0", - "parity-scale-codec", - "scale-info-derive", -] - -[[package]] -name = "scale-info-derive" -version = "2.11.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6630024bf739e2179b91fb424b28898baf819414262c5d376677dbff1fe7ebf" -dependencies = [ - "proc-macro-crate 3.3.0", - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "scc" -version = "2.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22b2d775fb28f245817589471dd49c5edf64237f4a19d10ce9a92ff4651a27f4" -dependencies = [ - "sdd", -] - -[[package]] -name = "schannel" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "schemars" -version = "0.8.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" -dependencies = [ - "dyn-clone", - "schemars_derive", - "serde", - "serde_json", -] - -[[package]] -name = "schemars" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" -dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", -] - -[[package]] -name = "schemars" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1375ba8ef45a6f15d83fa8748f1079428295d403d6ea991d09ab100155fbc06d" -dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", -] - -[[package]] -name = "schemars_derive" -version = "0.8.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" -dependencies = [ - "proc-macro2", - "quote", - "serde_derive_internals", - "syn 2.0.104", -] - -[[package]] -name = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "sdd" -version = "3.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "584e070911c7017da6cb2eb0788d09f43d789029b5877d3e5ecc8acf86ceee21" - -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array 0.14.7", - "pkcs8", - "serdect", - "subtle", - "zeroize", -] - -[[package]] -name = "secp256k1" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" -dependencies = [ - "bitcoin_hashes", - "rand 0.8.5", - "secp256k1-sys", - "serde", -] - -[[package]] -name = "secp256k1-sys" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" -dependencies = [ - "cc", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags 2.9.1", - "core-foundation 0.9.4", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" -dependencies = [ - "bitflags 2.9.1", - "core-foundation 0.10.1", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver" -version = "1.0.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" -dependencies = [ - "serde", -] - -[[package]] -name = "semver-parser" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" -dependencies = [ - "pest", -] - -[[package]] -name = "send_wrapper" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" - -[[package]] -name = "serde" -version = "1.0.219" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde-big-array" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" -dependencies = [ - "serde", -] - -[[package]] -name = "serde-json-wasm" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f05da0d153dd4595bdffd5099dc0e9ce425b205ee648eb93437ff7302af8c9a5" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_bytes" -version = "0.11.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_derive" -version = "1.0.219" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "serde_derive_internals" -version = "0.29.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "serde_json" -version = "1.0.140" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_path_to_error" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a" -dependencies = [ - "itoa", - "serde", -] - -[[package]] -name = "serde_repr" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "serde_spanned" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_with" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" -dependencies = [ - "base64 0.22.1", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.10.0", - "schemars 0.9.0", - "schemars 1.0.3", - "serde", - "serde_derive", - "serde_json", - "serde_with_macros", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "serdect" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" -dependencies = [ - "base16ct", - "serde", -] - -[[package]] -name = "serial_test" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b258109f244e1d6891bf1053a55d63a5cd4f8f4c30cf9a1280989f80e7a1fa9" -dependencies = [ - "futures", - "log", - "once_cell", - "parking_lot", - "scc", - "serial_test_derive", -] - -[[package]] -name = "serial_test_derive" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - -[[package]] -name = "sha2" -version = "0.10.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "sha3" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" -dependencies = [ - "digest 0.10.7", - "keccak", -] - -[[package]] -name = "sha3-asm" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" -dependencies = [ - "cc", - "cfg-if", -] - -[[package]] -name = "sharded-slab" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "signal-hook" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" -dependencies = [ - "libc", - "signal-hook-registry", -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" -dependencies = [ - "libc", -] - -[[package]] -name = "signature" -version = "1.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" - -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest 0.10.7", - "rand_core 0.6.4", -] - -[[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - -[[package]] -name = "siphasher" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" - -[[package]] -name = "size" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fed904c7fb2856d868b92464fc8fa597fce366edea1a9cbfaa8cb5fe080bd6d" - -[[package]] -name = "slab" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" - -[[package]] -name = "smallvec" -version = "1.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" -dependencies = [ - "serde", -] - -[[package]] -name = "snowbridge-amcl" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "460a9ed63cdf03c1b9847e8a12a5f5ba19c4efd5869e4a737e05be25d7c427e5" -dependencies = [ - "parity-scale-codec", - "scale-info", -] - -[[package]] -name = "socket2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "solana-account" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f949fe4edaeaea78c844023bfc1c898e0b1f5a100f8a8d2d0f85d0a7b090258" -dependencies = [ - "bincode", - "serde", - "serde_bytes", - "serde_derive", - "solana-account-info", - "solana-clock", - "solana-instruction", - "solana-pubkey", - "solana-sdk-ids", - "solana-sysvar", -] - -[[package]] -name = "solana-account-decoder" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5963fbe3e1099613c270fd5ebc0ff5c6e88a2bea2505b6e348daa0466282cd6" -dependencies = [ - "Inflector", - "base64 0.22.1", - "bincode", - "bs58", - "bv", - "serde", - "serde_derive", - "serde_json", - "solana-account", - "solana-account-decoder-client-types", - "solana-address-lookup-table-interface", - "solana-clock", - "solana-config-program-client", - "solana-epoch-schedule", - "solana-fee-calculator", - "solana-instruction", - "solana-loader-v3-interface", - "solana-nonce", - "solana-program-option", - "solana-program-pack", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", - "solana-slot-hashes", - "solana-slot-history", - "solana-stake-interface", - "solana-sysvar", - "solana-vote-interface", - "spl-generic-token", - "spl-token", - "spl-token-2022", - "spl-token-group-interface", - "spl-token-metadata-interface", - "thiserror 2.0.12", - "zstd", -] - -[[package]] -name = "solana-account-decoder-client-types" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59f2101f4cc33e3fbfc8d1d23ea35d8532d6f1fa6a7c7081742e886f98f33126" -dependencies = [ - "base64 0.22.1", - "bs58", - "serde", - "serde_derive", - "serde_json", - "solana-account", - "solana-pubkey", - "zstd", -] - -[[package]] -name = "solana-account-info" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8f5152a288ef1912300fc6efa6c2d1f9bb55d9398eb6c72326360b8063987da" -dependencies = [ - "bincode", - "serde", - "solana-program-error", - "solana-program-memory", - "solana-pubkey", -] - -[[package]] -name = "solana-address-lookup-table-interface" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1673f67efe870b64a65cb39e6194be5b26527691ce5922909939961a6e6b395" -dependencies = [ - "bincode", - "bytemuck", - "serde", - "serde_derive", - "solana-clock", - "solana-instruction", - "solana-pubkey", - "solana-sdk-ids", - "solana-slot-hashes", -] - -[[package]] -name = "solana-atomic-u64" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52e52720efe60465b052b9e7445a01c17550666beec855cce66f44766697bc2" -dependencies = [ - "parking_lot", -] - -[[package]] -name = "solana-big-mod-exp" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75db7f2bbac3e62cfd139065d15bcda9e2428883ba61fc8d27ccb251081e7567" -dependencies = [ - "num-bigint 0.4.6", - "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-bn254" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4420f125118732833f36facf96a27e7b78314b2d642ba07fa9ffdacd8d79e243" -dependencies = [ - "ark-bn254", - "ark-ec", - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "bytemuck", - "solana-define-syscall", - "thiserror 2.0.12", -] - -[[package]] -name = "solana-borsh" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718333bcd0a1a7aed6655aa66bef8d7fb047944922b2d3a18f49cbc13e73d004" -dependencies = [ - "borsh 0.10.4", - "borsh 1.5.7", -] - -[[package]] -name = "solana-client" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4a1e134e7f683fca78ff3912f1590858b51f6a64aad417d30baca8926ed2fd" -dependencies = [ - "async-trait", - "bincode", - "dashmap 5.5.3", - "futures", - "futures-util", - "indexmap 2.10.0", - "indicatif", - "log", - "quinn", - "rayon", - "solana-account", - "solana-client-traits", - "solana-commitment-config", - "solana-connection-cache", - "solana-epoch-info", - "solana-hash", - "solana-instruction", - "solana-keypair", - "solana-measure", - "solana-message", - "solana-pubkey", - "solana-pubsub-client", - "solana-quic-client", - "solana-quic-definitions", - "solana-rpc-client", - "solana-rpc-client-api", - "solana-rpc-client-nonce-utils", - "solana-signature", - "solana-signer", - "solana-streamer", - "solana-thin-client", - "solana-time-utils", - "solana-tpu-client", - "solana-transaction", - "solana-transaction-error", - "solana-udp-client", - "thiserror 2.0.12", - "tokio", -] - -[[package]] -name = "solana-client-traits" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83f0071874e629f29e0eb3dab8a863e98502ac7aba55b7e0df1803fc5cac72a7" -dependencies = [ - "solana-account", - "solana-commitment-config", - "solana-epoch-info", - "solana-hash", - "solana-instruction", - "solana-keypair", - "solana-message", - "solana-pubkey", - "solana-signature", - "solana-signer", - "solana-system-interface", - "solana-transaction", - "solana-transaction-error", -] - -[[package]] -name = "solana-clock" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb482ab70fced82ad3d7d3d87be33d466a3498eb8aa856434ff3c0dfc2e2e31" -dependencies = [ - "serde", - "serde_derive", - "solana-sdk-ids", - "solana-sdk-macro", - "solana-sysvar-id", -] - -[[package]] -name = "solana-cluster-type" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ace9fea2daa28354d107ea879cff107181d85cd4e0f78a2bedb10e1a428c97e" -dependencies = [ - "serde", - "serde_derive", - "solana-hash", -] - -[[package]] -name = "solana-commitment-config" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac49c4dde3edfa832de1697e9bcdb7c3b3f7cb7a1981b7c62526c8bb6700fb73" -dependencies = [ - "serde", - "serde_derive", -] - -[[package]] -name = "solana-compute-budget-interface" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8432d2c4c22d0499aa06d62e4f7e333f81777b3d7c96050ae9e5cb71a8c3aee4" -dependencies = [ - "borsh 1.5.7", - "serde", - "serde_derive", - "solana-instruction", - "solana-sdk-ids", -] - -[[package]] -name = "solana-config-program-client" -version = "0.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53aceac36f105fd4922e29b4f0c1f785b69d7b3e7e387e384b8985c8e0c3595e" -dependencies = [ - "bincode", - "borsh 0.10.4", - "kaigan", - "serde", - "solana-program", -] - -[[package]] -name = "solana-connection-cache" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be7fcabde8fdaa5a0e6fbbd0ed4cd07e5754e7d187b69be663811c236b891961" -dependencies = [ - "async-trait", - "bincode", - "crossbeam-channel", - "futures-util", - "indexmap 2.10.0", - "log", - "rand 0.8.5", - "rayon", - "solana-keypair", - "solana-measure", - "solana-metrics", - "solana-time-utils", - "solana-transaction-error", - "thiserror 2.0.12", - "tokio", -] - -[[package]] -name = "solana-cpi" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dc71126edddc2ba014622fc32d0f5e2e78ec6c5a1e0eb511b85618c09e9ea11" -dependencies = [ - "solana-account-info", - "solana-define-syscall", - "solana-instruction", - "solana-program-error", - "solana-pubkey", - "solana-stable-layout", -] - -[[package]] -name = "solana-curve25519" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b162f50499b391b785d57b2f2c73e3b9754d88fd4894bef444960b00bda8dcca" -dependencies = [ - "bytemuck", - "bytemuck_derive", - "curve25519-dalek 4.1.3", - "solana-define-syscall", - "subtle", - "thiserror 2.0.12", -] - -[[package]] -name = "solana-decode-error" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c781686a18db2f942e70913f7ca15dc120ec38dcab42ff7557db2c70c625a35" -dependencies = [ - "num-traits", -] - -[[package]] -name = "solana-define-syscall" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ae3e2abcf541c8122eafe9a625d4d194b4023c20adde1e251f94e056bb1aee2" - -[[package]] -name = "solana-derivation-path" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "939756d798b25c5ec3cca10e06212bdca3b1443cb9bb740a38124f58b258737b" -dependencies = [ - "derivation-path", - "qstring", - "uriparse", -] - -[[package]] -name = "solana-ed25519-program" -version = "2.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1feafa1691ea3ae588f99056f4bdd1293212c7ece28243d7da257c443e84753" -dependencies = [ - "bytemuck", - "bytemuck_derive", - "ed25519-dalek", - "solana-feature-set", - "solana-instruction", - "solana-precompile-error", - "solana-sdk-ids", -] - -[[package]] -name = "solana-epoch-info" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ef6f0b449290b0b9f32973eefd95af35b01c5c0c34c569f936c34c5b20d77b" -dependencies = [ - "serde", - "serde_derive", -] - -[[package]] -name = "solana-epoch-rewards" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b575d3dd323b9ea10bb6fe89bf6bf93e249b215ba8ed7f68f1a3633f384db7" -dependencies = [ - "serde", - "serde_derive", - "solana-hash", - "solana-sdk-ids", - "solana-sdk-macro", - "solana-sysvar-id", -] - -[[package]] -name = "solana-epoch-rewards-hasher" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c5fd2662ae7574810904585fd443545ed2b568dbd304b25a31e79ccc76e81b" -dependencies = [ - "siphasher 0.3.11", - "solana-hash", - "solana-pubkey", -] - -[[package]] -name = "solana-epoch-schedule" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fce071fbddecc55d727b1d7ed16a629afe4f6e4c217bc8d00af3b785f6f67ed" -dependencies = [ - "serde", - "serde_derive", - "solana-sdk-ids", - "solana-sdk-macro", - "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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f5c5382b449e8e4e3016fb05e418c53d57782d8b5c30aa372fc265654b956d" -dependencies = [ - "bincode", - "serde", - "serde_derive", - "solana-account", - "solana-account-info", - "solana-instruction", - "solana-program-error", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", - "solana-system-interface", -] - -[[package]] -name = "solana-feature-set" -version = "2.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93b93971e289d6425f88e6e3cb6668c4b05df78b3c518c249be55ced8efd6b6d" -dependencies = [ - "ahash", - "lazy_static", - "solana-epoch-schedule", - "solana-hash", - "solana-pubkey", - "solana-sha256-hasher", -] - -[[package]] -name = "solana-fee-calculator" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89bc408da0fb3812bc3008189d148b4d3e08252c79ad810b245482a3f70cd8d" -dependencies = [ - "log", - "serde", - "serde_derive", -] - -[[package]] -name = "solana-fee-structure" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33adf673581c38e810bf618f745bf31b683a0a4a4377682e6aaac5d9a058dd4e" -dependencies = [ - "serde", - "serde_derive", - "solana-message", - "solana-native-token", -] - -[[package]] -name = "solana-genesis-config" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3725085d47b96d37fef07a29d78d2787fc89a0b9004c66eed7753d1e554989f" -dependencies = [ - "bincode", - "chrono", - "memmap2", - "serde", - "serde_derive", - "solana-account", - "solana-clock", - "solana-cluster-type", - "solana-epoch-schedule", - "solana-fee-calculator", - "solana-hash", - "solana-inflation", - "solana-keypair", - "solana-logger", - "solana-poh-config", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", - "solana-sha256-hasher", - "solana-shred-version", - "solana-signer", - "solana-time-utils", -] - -[[package]] -name = "solana-hard-forks" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c28371f878e2ead55611d8ba1b5fb879847156d04edea13693700ad1a28baf" -dependencies = [ - "serde", - "serde_derive", -] - -[[package]] -name = "solana-hash" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b96e9f0300fa287b545613f007dfe20043d7812bee255f418c1eb649c93b63" -dependencies = [ - "borsh 1.5.7", - "bytemuck", - "bytemuck_derive", - "five8", - "js-sys", - "serde", - "serde_derive", - "solana-atomic-u64", - "solana-sanitize", - "wasm-bindgen", -] - -[[package]] -name = "solana-ibc-constants" -version = "0.1.0" - -[[package]] -name = "solana-ibc-proto" -version = "0.1.0" -dependencies = [ - "anchor-lang", - "ibc-eureka-constrained-types", - "prost", - "prost-build", -] - -[[package]] -name = "solana-ibc-types" -version = "0.1.0" -dependencies = [ - "anchor-lang", - "ibc-eureka-constrained-types", - "prost", - "solana-ibc-constants", - "solana-ibc-proto", -] - -[[package]] -name = "solana-inflation" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23eef6a09eb8e568ce6839573e4966850e85e9ce71e6ae1a6c930c1c43947de3" -dependencies = [ - "serde", - "serde_derive", -] - -[[package]] -name = "solana-instruction" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47298e2ce82876b64f71e9d13a46bc4b9056194e7f9937ad3084385befa50885" -dependencies = [ - "bincode", - "borsh 1.5.7", - "getrandom 0.2.16", - "js-sys", - "num-traits", - "serde", - "serde_derive", - "solana-define-syscall", - "solana-pubkey", - "wasm-bindgen", -] - -[[package]] -name = "solana-instructions-sysvar" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0e85a6fad5c2d0c4f5b91d34b8ca47118fc593af706e523cdbedf846a954f57" -dependencies = [ - "bitflags 2.9.1", - "solana-account-info", - "solana-instruction", - "solana-program-error", - "solana-pubkey", - "solana-sanitize", - "solana-sdk-ids", - "solana-serialize-utils", - "solana-sysvar-id", -] - -[[package]] -name = "solana-keccak-hasher" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7aeb957fbd42a451b99235df4942d96db7ef678e8d5061ef34c9b34cae12f79" -dependencies = [ - "sha3", - "solana-define-syscall", - "solana-hash", - "solana-sanitize", -] - -[[package]] -name = "solana-keypair" -version = "2.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd3f04aa1a05c535e93e121a95f66e7dcccf57e007282e8255535d24bf1e98bb" -dependencies = [ - "ed25519-dalek", - "ed25519-dalek-bip32", - "five8", - "rand 0.7.3", - "solana-derivation-path", - "solana-pubkey", - "solana-seed-derivable", - "solana-seed-phrase", - "solana-signature", - "solana-signer", - "wasm-bindgen", -] - -[[package]] -name = "solana-last-restart-slot" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a6360ac2fdc72e7463565cd256eedcf10d7ef0c28a1249d261ec168c1b55cdd" -dependencies = [ - "serde", - "serde_derive", - "solana-sdk-ids", - "solana-sdk-macro", - "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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f7162a05b8b0773156b443bccd674ea78bb9aa406325b467ea78c06c99a63a2" -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-logger" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db8e777ec1afd733939b532a42492d888ec7c88d8b4127a5d867eb45c6eb5cd5" -dependencies = [ - "env_logger", - "lazy_static", - "libc", - "log", - "signal-hook", -] - -[[package]] -name = "solana-measure" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e0e02388fa871b8b42c59ff5f7123370c47a5f389f8e773b4c5402c20ec7e04" - -[[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-sdk-ids", - "solana-short-vec", - "solana-system-interface", - "solana-transaction-error", - "wasm-bindgen", -] - -[[package]] -name = "solana-metrics" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1f79991e14c635e76ec1d61061305e4e0e6649e213bff2e1b92c59a789bc652" -dependencies = [ - "crossbeam-channel", - "gethostname", - "log", - "reqwest 0.12.22", - "solana-cluster-type", - "solana-sha256-hasher", - "solana-time-utils", - "thiserror 2.0.12", -] - -[[package]] -name = "solana-msg" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36a1a14399afaabc2781a1db09cb14ee4cc4ee5c7a5a3cfcc601811379a8092" -dependencies = [ - "solana-define-syscall", -] - -[[package]] -name = "solana-native-token" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61515b880c36974053dd499c0510066783f0cc6ac17def0c7ef2a244874cf4a9" - -[[package]] -name = "solana-net-utils" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f0d5d50fa415f82d18f2b610b7d6d1e747ebe4d2955e977d007e16f3af8d77" -dependencies = [ - "anyhow", - "bincode", - "bytes", - "itertools 0.12.1", - "log", - "nix", - "rand 0.8.5", - "serde", - "serde_derive", - "socket2", - "solana-serde", - "tokio", - "url", -] - -[[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-nonce-account" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde971a20b8dbf60144d6a84439dda86b5466e00e2843091fe731083cda614da" -dependencies = [ - "solana-account", - "solana-hash", - "solana-nonce", - "solana-sdk-ids", -] - -[[package]] -name = "solana-offchain-message" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b526398ade5dea37f1f147ce55dae49aa017a5d7326606359b0445ca8d946581" -dependencies = [ - "num_enum 0.7.4", - "solana-hash", - "solana-packet", - "solana-pubkey", - "solana-sanitize", - "solana-sha256-hasher", - "solana-signature", - "solana-signer", -] - -[[package]] -name = "solana-packet" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "004f2d2daf407b3ec1a1ca5ec34b3ccdfd6866dd2d3c7d0715004a96e4b6d127" -dependencies = [ - "bincode", - "bitflags 2.9.1", - "cfg_eval", - "serde", - "serde_derive", - "serde_with", -] - -[[package]] -name = "solana-perf" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee5e3e876ebce18775e8264b4673f45c2b5990e726a45a7f0cd9f3bd6cb1403" -dependencies = [ - "ahash", - "bincode", - "bv", - "bytes", - "caps", - "curve25519-dalek 4.1.3", - "dlopen2", - "fnv", - "libc", - "log", - "nix", - "rand 0.8.5", - "rayon", - "serde", - "solana-hash", - "solana-message", - "solana-metrics", - "solana-packet", - "solana-pubkey", - "solana-rayon-threadlimit", - "solana-sdk-ids", - "solana-short-vec", - "solana-signature", - "solana-time-utils", -] - -[[package]] -name = "solana-poh-config" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d650c3b4b9060082ac6b0efbbb66865089c58405bfb45de449f3f2b91eccee75" -dependencies = [ - "serde", - "serde_derive", -] - -[[package]] -name = "solana-precompile-error" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d87b2c1f5de77dfe2b175ee8dd318d196aaca4d0f66f02842f80c852811f9f8" -dependencies = [ - "num-traits", - "solana-decode-error", -] - -[[package]] -name = "solana-precompiles" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36e92768a57c652edb0f5d1b30a7d0bc64192139c517967c18600debe9ae3832" -dependencies = [ - "lazy_static", - "solana-ed25519-program", - "solana-feature-set", - "solana-message", - "solana-precompile-error", - "solana-pubkey", - "solana-sdk-ids", - "solana-secp256k1-program", - "solana-secp256r1-program", -] - -[[package]] -name = "solana-presigner" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81a57a24e6a4125fc69510b6774cd93402b943191b6cddad05de7281491c90fe" -dependencies = [ - "solana-pubkey", - "solana-signature", - "solana-signer", -] - -[[package]] -name = "solana-program" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98eca145bd3545e2fbb07166e895370576e47a00a7d824e325390d33bf467210" -dependencies = [ - "bincode", - "blake3", - "borsh 0.10.4", - "borsh 1.5.7", - "bs58", - "bytemuck", - "console_error_panic_hook", - "console_log", - "getrandom 0.2.16", - "lazy_static", - "log", - "memoffset", - "num-bigint 0.4.6", - "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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32ce041b1a0ed275290a5008ee1a4a6c48f5054c8a3d78d313c08958a06aedbd" -dependencies = [ - "solana-account-info", - "solana-msg", - "solana-program-error", - "solana-pubkey", -] - -[[package]] -name = "solana-program-error" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ee2e0217d642e2ea4bee237f37bd61bb02aec60da3647c48ff88f6556ade775" -dependencies = [ - "borsh 1.5.7", - "num-traits", - "serde", - "serde_derive", - "solana-decode-error", - "solana-instruction", - "solana-msg", - "solana-pubkey", -] - -[[package]] -name = "solana-program-memory" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a5426090c6f3fd6cfdc10685322fede9ca8e5af43cd6a59e98bfe4e91671712" -dependencies = [ - "solana-define-syscall", -] - -[[package]] -name = "solana-program-option" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc677a2e9bc616eda6dbdab834d463372b92848b2bfe4a1ed4e4b4adba3397d0" - -[[package]] -name = "solana-program-pack" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "319f0ef15e6e12dc37c597faccb7d62525a509fec5f6975ecb9419efddeb277b" -dependencies = [ - "solana-program-error", -] - -[[package]] -name = "solana-pubkey" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b62adb9c3261a052ca1f999398c388f1daf558a1b492f60a6d9e64857db4ff1" -dependencies = [ - "borsh 0.10.4", - "borsh 1.5.7", - "bytemuck", - "bytemuck_derive", - "curve25519-dalek 4.1.3", - "five8", - "five8_const", - "getrandom 0.2.16", - "js-sys", - "num-traits", - "rand 0.8.5", - "serde", - "serde_derive", - "solana-atomic-u64", - "solana-decode-error", - "solana-define-syscall", - "solana-sanitize", - "solana-sha256-hasher", - "wasm-bindgen", -] - -[[package]] -name = "solana-pubsub-client" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2b90bcec41efc8ed9e6b765e043e9fb5984b5c3fbf16f4d2c1dc827fd4b35e2" -dependencies = [ - "crossbeam-channel", - "futures-util", - "http 0.2.12", - "log", - "semver 1.0.26", - "serde", - "serde_derive", - "serde_json", - "solana-account-decoder-client-types", - "solana-clock", - "solana-pubkey", - "solana-rpc-client-types", - "solana-signature", - "thiserror 2.0.12", - "tokio", - "tokio-stream", - "tokio-tungstenite 0.20.1", - "tungstenite 0.20.1", - "url", -] - -[[package]] -name = "solana-quic-client" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f5c70a7b38bf0b672f51a718c4b377adf0ae218d8d576024e7c3ed00e7ee86" -dependencies = [ - "async-lock", - "async-trait", - "futures", - "itertools 0.12.1", - "log", - "quinn", - "quinn-proto", - "rustls 0.23.28", - "solana-connection-cache", - "solana-keypair", - "solana-measure", - "solana-metrics", - "solana-net-utils", - "solana-pubkey", - "solana-quic-definitions", - "solana-rpc-client-api", - "solana-signer", - "solana-streamer", - "solana-tls-utils", - "solana-transaction-error", - "thiserror 2.0.12", - "tokio", -] - -[[package]] -name = "solana-quic-definitions" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf0d4d5b049eb1d0c35f7b18f305a27c8986fc5c0c9b383e97adaa35334379e" -dependencies = [ - "solana-keypair", -] - -[[package]] -name = "solana-rayon-threadlimit" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee3a2eac4ab76fc2e269d5b7e84d6e728b5b2ea30644e61182471bf4e0c4b44d" -dependencies = [ - "num_cpus", -] - -[[package]] -name = "solana-rent" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1aea8fdea9de98ca6e8c2da5827707fb3842833521b528a713810ca685d2480" -dependencies = [ - "serde", - "serde_derive", - "solana-sdk-ids", - "solana-sdk-macro", - "solana-sysvar-id", -] - -[[package]] -name = "solana-rent-collector" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "127e6dfa51e8c8ae3aa646d8b2672bc4ac901972a338a9e1cd249e030564fb9d" -dependencies = [ - "serde", - "serde_derive", - "solana-account", - "solana-clock", - "solana-epoch-schedule", - "solana-genesis-config", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", -] - -[[package]] -name = "solana-rent-debits" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f6f9113c6003492e74438d1288e30cffa8ccfdc2ef7b49b9e816d8034da18cd" -dependencies = [ - "solana-pubkey", - "solana-reward-info", -] - -[[package]] -name = "solana-reserved-account-keys" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4b22ea19ca2a3f28af7cd047c914abf833486bf7a7c4a10fc652fff09b385b1" -dependencies = [ - "lazy_static", - "solana-feature-set", - "solana-pubkey", - "solana-sdk-ids", -] - -[[package]] -name = "solana-reward-info" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18205b69139b1ae0ab8f6e11cdcb627328c0814422ad2482000fa2ca54ae4a2f" -dependencies = [ - "serde", - "serde_derive", -] - -[[package]] -name = "solana-rpc-client" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40231712d6f1e5833ff1e101954786cbd0b5301098ea42384f7bb3e553085852" -dependencies = [ - "async-trait", - "base64 0.22.1", - "bincode", - "bs58", - "futures", - "indicatif", - "log", - "reqwest 0.12.22", - "reqwest-middleware 0.4.2", - "semver 1.0.26", - "serde", - "serde_derive", - "serde_json", - "solana-account", - "solana-account-decoder-client-types", - "solana-clock", - "solana-commitment-config", - "solana-epoch-info", - "solana-epoch-schedule", - "solana-feature-gate-interface", - "solana-hash", - "solana-instruction", - "solana-message", - "solana-pubkey", - "solana-rpc-client-api", - "solana-signature", - "solana-transaction", - "solana-transaction-error", - "solana-transaction-status-client-types", - "solana-version", - "solana-vote-interface", - "tokio", -] - -[[package]] -name = "solana-rpc-client-api" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a1be31922f97505007ccf969828b34e8dc43ce434a17f970b0edea8f0e66777" -dependencies = [ - "anyhow", - "jsonrpc-core", - "reqwest 0.12.22", - "reqwest-middleware 0.4.2", - "serde", - "serde_derive", - "serde_json", - "solana-account-decoder-client-types", - "solana-clock", - "solana-rpc-client-types", - "solana-signer", - "solana-transaction-error", - "solana-transaction-status-client-types", - "thiserror 2.0.12", -] - -[[package]] -name = "solana-rpc-client-nonce-utils" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2bd5b1ccc7fc945a9b0adad091836ee18b7688afd6979889849d5404254a14f" -dependencies = [ - "solana-account", - "solana-commitment-config", - "solana-hash", - "solana-message", - "solana-nonce", - "solana-pubkey", - "solana-rpc-client", - "solana-sdk-ids", - "thiserror 2.0.12", -] - -[[package]] -name = "solana-rpc-client-types" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e82a9b71f023a4bd511088f22e3c1f0e226a6e2e94b0656776509f234dd223a" -dependencies = [ - "base64 0.22.1", - "bs58", - "semver 1.0.26", - "serde", - "serde_derive", - "serde_json", - "solana-account", - "solana-account-decoder-client-types", - "solana-clock", - "solana-commitment-config", - "solana-fee-calculator", - "solana-inflation", - "solana-pubkey", - "solana-transaction-error", - "solana-transaction-status-client-types", - "solana-version", - "spl-generic-token", - "thiserror 2.0.12", -] - -[[package]] -name = "solana-sanitize" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61f1bc1357b8188d9c4a3af3fc55276e56987265eb7ad073ae6f8180ee54cecf" - -[[package]] -name = "solana-sdk" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cc0e4a7635b902791c44b6581bfb82f3ada32c5bc0929a64f39fe4bb384c86a" -dependencies = [ - "bincode", - "bs58", - "getrandom 0.1.16", - "js-sys", - "serde", - "serde_json", - "solana-account", - "solana-bn254", - "solana-client-traits", - "solana-cluster-type", - "solana-commitment-config", - "solana-compute-budget-interface", - "solana-decode-error", - "solana-derivation-path", - "solana-ed25519-program", - "solana-epoch-info", - "solana-epoch-rewards-hasher", - "solana-feature-set", - "solana-fee-structure", - "solana-genesis-config", - "solana-hard-forks", - "solana-inflation", - "solana-instruction", - "solana-keypair", - "solana-message", - "solana-native-token", - "solana-nonce-account", - "solana-offchain-message", - "solana-packet", - "solana-poh-config", - "solana-precompile-error", - "solana-precompiles", - "solana-presigner", - "solana-program", - "solana-program-memory", - "solana-pubkey", - "solana-quic-definitions", - "solana-rent-collector", - "solana-rent-debits", - "solana-reserved-account-keys", - "solana-reward-info", - "solana-sanitize", - "solana-sdk-ids", - "solana-sdk-macro", - "solana-secp256k1-program", - "solana-secp256k1-recover", - "solana-secp256r1-program", - "solana-seed-derivable", - "solana-seed-phrase", - "solana-serde", - "solana-serde-varint", - "solana-short-vec", - "solana-shred-version", - "solana-signature", - "solana-signer", - "solana-system-transaction", - "solana-time-utils", - "solana-transaction", - "solana-transaction-context", - "solana-transaction-error", - "solana-validator-exit", - "thiserror 2.0.12", - "wasm-bindgen", -] - -[[package]] -name = "solana-sdk-ids" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5d8b9cc68d5c88b062a33e23a6466722467dde0035152d8fb1afbcdf350a5f" -dependencies = [ - "solana-pubkey", -] - -[[package]] -name = "solana-sdk-macro" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86280da8b99d03560f6ab5aca9de2e38805681df34e0bb8f238e69b29433b9df" -dependencies = [ - "bs58", - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "solana-secp256k1-program" -version = "2.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f19833e4bc21558fe9ec61f239553abe7d05224347b57d65c2218aeeb82d6149" -dependencies = [ - "bincode", - "digest 0.10.7", - "libsecp256k1", - "serde", - "serde_derive", - "sha3", - "solana-feature-set", - "solana-instruction", - "solana-precompile-error", - "solana-sdk-ids", - "solana-signature", -] - -[[package]] -name = "solana-secp256k1-recover" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baa3120b6cdaa270f39444f5093a90a7b03d296d362878f7a6991d6de3bbe496" -dependencies = [ - "borsh 1.5.7", - "libsecp256k1", - "solana-define-syscall", - "thiserror 2.0.12", -] - -[[package]] -name = "solana-secp256r1-program" -version = "2.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce0ae46da3071a900f02d367d99b2f3058fe2e90c5062ac50c4f20cfedad8f0f" -dependencies = [ - "bytemuck", - "openssl", - "solana-feature-set", - "solana-instruction", - "solana-precompile-error", - "solana-sdk-ids", -] - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36187af2324f079f65a675ec22b31c24919cb4ac22c79472e85d819db9bbbc15" -dependencies = [ - "hmac 0.12.1", - "pbkdf2", - "sha2 0.10.9", -] - -[[package]] -name = "solana-serde" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1931484a408af466e14171556a47adaa215953c7f48b24e5f6b0282763818b04" -dependencies = [ - "serde", -] - -[[package]] -name = "solana-serde-varint" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a7e155eba458ecfb0107b98236088c3764a09ddf0201ec29e52a0be40857113" -dependencies = [ - "serde", -] - -[[package]] -name = "solana-serialize-utils" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "817a284b63197d2b27afdba829c5ab34231da4a9b4e763466a003c40ca4f535e" -dependencies = [ - "solana-instruction", - "solana-pubkey", - "solana-sanitize", -] - -[[package]] -name = "solana-sha256-hasher" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa3feb32c28765f6aa1ce8f3feac30936f16c5c3f7eb73d63a5b8f6f8ecdc44" -dependencies = [ - "sha2 0.10.9", - "solana-define-syscall", - "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-shred-version" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afd3db0461089d1ad1a78d9ba3f15b563899ca2386351d38428faa5350c60a98" -dependencies = [ - "solana-hard-forks", - "solana-hash", - "solana-sha256-hasher", -] - -[[package]] -name = "solana-signature" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c8ec8e657aecfc187522fc67495142c12f35e55ddeca8698edbb738b8dbd8c" -dependencies = [ - "ed25519-dalek", - "five8", - "rand 0.8.5", - "serde", - "serde-big-array", - "serde_derive", - "solana-sanitize", -] - -[[package]] -name = "solana-signer" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c41991508a4b02f021c1342ba00bcfa098630b213726ceadc7cb032e051975b" -dependencies = [ - "solana-pubkey", - "solana-signature", - "solana-transaction-error", -] - -[[package]] -name = "solana-slot-hashes" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c8691982114513763e88d04094c9caa0376b867a29577939011331134c301ce" -dependencies = [ - "serde", - "serde_derive", - "solana-hash", - "solana-sdk-ids", - "solana-sysvar-id", -] - -[[package]] -name = "solana-slot-history" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ccc1b2067ca22754d5283afb2b0126d61eae734fc616d23871b0943b0d935e" -dependencies = [ - "bv", - "serde", - "serde_derive", - "solana-sdk-ids", - "solana-sysvar-id", -] - -[[package]] -name = "solana-stable-layout" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f14f7d02af8f2bc1b5efeeae71bc1c2b7f0f65cd75bcc7d8180f2c762a57f54" -dependencies = [ - "solana-instruction", - "solana-pubkey", -] - -[[package]] -name = "solana-stake-interface" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5269e89fde216b4d7e1d1739cf5303f8398a1ff372a81232abbee80e554a838c" -dependencies = [ - "borsh 0.10.4", - "borsh 1.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-sysvar-id", -] - -[[package]] -name = "solana-streamer" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f55673d787ef1478fa2939801e8bde7cb4ed38a99ff3d5541c2d159a06904f3" -dependencies = [ - "async-channel", - "bytes", - "crossbeam-channel", - "dashmap 5.5.3", - "futures", - "futures-util", - "governor", - "histogram", - "indexmap 2.10.0", - "itertools 0.12.1", - "libc", - "log", - "nix", - "pem", - "percentage", - "quinn", - "quinn-proto", - "rand 0.8.5", - "rustls 0.23.28", - "smallvec", - "socket2", - "solana-keypair", - "solana-measure", - "solana-metrics", - "solana-net-utils", - "solana-packet", - "solana-perf", - "solana-pubkey", - "solana-quic-definitions", - "solana-signature", - "solana-signer", - "solana-time-utils", - "solana-tls-utils", - "solana-transaction-error", - "solana-transaction-metrics-tracker", - "thiserror 2.0.12", - "tokio", - "tokio-util", - "x509-parser", -] - -[[package]] -name = "solana-svm-feature-set" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e65361fa1fb2a123319df6d9694c1c5ca20e555cda18eb1f953babf32e4cddd4" - -[[package]] -name = "solana-system-interface" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94d7c18cb1a91c6be5f5a8ac9276a1d7c737e39a21beba9ea710ab4b9c63bc90" -dependencies = [ - "js-sys", - "num-traits", - "serde", - "serde_derive", - "solana-decode-error", - "solana-instruction", - "solana-pubkey", - "wasm-bindgen", -] - -[[package]] -name = "solana-system-transaction" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bd98a25e5bcba8b6be8bcbb7b84b24c2a6a8178d7fb0e3077a916855ceba91a" -dependencies = [ - "solana-hash", - "solana-keypair", - "solana-message", - "solana-pubkey", - "solana-signer", - "solana-system-interface", - "solana-transaction", -] - -[[package]] -name = "solana-sysvar" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8c3595f95069f3d90f275bb9bd235a1973c4d059028b0a7f81baca2703815db" -dependencies = [ - "base64 0.22.1", - "bincode", - "bytemuck", - "bytemuck_derive", - "lazy_static", - "serde", - "serde_derive", - "solana-account-info", - "solana-clock", - "solana-define-syscall", - "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-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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5762b273d3325b047cfda250787f8d796d781746860d5d0a746ee29f3e8812c1" -dependencies = [ - "solana-pubkey", - "solana-sdk-ids", -] - -[[package]] -name = "solana-thin-client" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25571fe8261c632206373ccbf35edf12a476405264a0d0829adf65202c0e1c17" -dependencies = [ - "bincode", - "log", - "rayon", - "solana-account", - "solana-client-traits", - "solana-clock", - "solana-commitment-config", - "solana-connection-cache", - "solana-epoch-info", - "solana-hash", - "solana-instruction", - "solana-keypair", - "solana-message", - "solana-pubkey", - "solana-rpc-client", - "solana-rpc-client-api", - "solana-signature", - "solana-signer", - "solana-system-interface", - "solana-transaction", - "solana-transaction-error", -] - -[[package]] -name = "solana-time-utils" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6af261afb0e8c39252a04d026e3ea9c405342b08c871a2ad8aa5448e068c784c" - -[[package]] -name = "solana-tls-utils" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbab408af08c4b0dc103b608f053e8bf7aec9f18a20da79fb98ccf35950ee468" -dependencies = [ - "rustls 0.23.28", - "solana-keypair", - "solana-pubkey", - "solana-signer", - "x509-parser", -] - -[[package]] -name = "solana-tpu-client" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc8ccdb1b26950de965860e02285361c48563d3b5eef64166fe45b5b9245e1b" -dependencies = [ - "async-trait", - "bincode", - "futures-util", - "indexmap 2.10.0", - "indicatif", - "log", - "rayon", - "solana-client-traits", - "solana-clock", - "solana-commitment-config", - "solana-connection-cache", - "solana-epoch-schedule", - "solana-measure", - "solana-message", - "solana-net-utils", - "solana-pubkey", - "solana-pubsub-client", - "solana-quic-definitions", - "solana-rpc-client", - "solana-rpc-client-api", - "solana-signature", - "solana-signer", - "solana-transaction", - "solana-transaction-error", - "thiserror 2.0.12", - "tokio", -] - -[[package]] -name = "solana-transaction" -version = "2.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80657d6088f721148f5d889c828ca60c7daeedac9a8679f9ec215e0c42bcbf41" -dependencies = [ - "bincode", - "serde", - "serde_derive", - "solana-bincode", - "solana-feature-set", - "solana-hash", - "solana-instruction", - "solana-keypair", - "solana-message", - "solana-precompiles", - "solana-pubkey", - "solana-sanitize", - "solana-sdk-ids", - "solana-short-vec", - "solana-signature", - "solana-signer", - "solana-system-interface", - "solana-transaction-error", - "wasm-bindgen", -] - -[[package]] -name = "solana-transaction-context" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aefd75e49dd990f7fdbe562a539a7b046a839aadf43843845d766a2a6a2adfef" -dependencies = [ - "bincode", - "serde", - "serde_derive", - "solana-account", - "solana-instruction", - "solana-instructions-sysvar", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", -] - -[[package]] -name = "solana-transaction-error" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222a9dc8fdb61c6088baab34fc3a8b8473a03a7a5fd404ed8dd502fa79b67cb1" -dependencies = [ - "serde", - "serde_derive", - "solana-instruction", - "solana-sanitize", -] - -[[package]] -name = "solana-transaction-metrics-tracker" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5ffbcb223e76a4e8389f32d447f9d5d68ce0947ba0a3b7db83141085d68c8f3" -dependencies = [ - "base64 0.22.1", - "bincode", - "log", - "rand 0.8.5", - "solana-packet", - "solana-perf", - "solana-short-vec", - "solana-signature", -] - -[[package]] -name = "solana-transaction-status" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287a86e28777cdc8c0745ff5700a2c3741a2a7a72a347a93815e832adfe39dc5" -dependencies = [ - "Inflector", - "agave-reserved-account-keys", - "base64 0.22.1", - "bincode", - "borsh 1.5.7", - "bs58", - "log", - "serde", - "serde_derive", - "serde_json", - "solana-account-decoder", - "solana-address-lookup-table-interface", - "solana-clock", - "solana-hash", - "solana-instruction", - "solana-loader-v2-interface", - "solana-loader-v3-interface", - "solana-message", - "solana-program-option", - "solana-pubkey", - "solana-reward-info", - "solana-sdk-ids", - "solana-signature", - "solana-stake-interface", - "solana-system-interface", - "solana-transaction", - "solana-transaction-error", - "solana-transaction-status-client-types", - "solana-vote-interface", - "spl-associated-token-account", - "spl-memo", - "spl-token", - "spl-token-2022", - "spl-token-group-interface", - "spl-token-metadata-interface", - "thiserror 2.0.12", -] - -[[package]] -name = "solana-transaction-status-client-types" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e91068d54435121280c4a2f1c280d8d18381e3ccf54057c4530f40f26c2be1c" -dependencies = [ - "base64 0.22.1", - "bincode", - "bs58", - "serde", - "serde_derive", - "serde_json", - "solana-account-decoder-client-types", - "solana-commitment-config", - "solana-message", - "solana-reward-info", - "solana-signature", - "solana-transaction", - "solana-transaction-context", - "solana-transaction-error", - "thiserror 2.0.12", -] - -[[package]] -name = "solana-udp-client" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e42f000524bb38b5af2e0fba649bc3d10b0e8e0dd833dc11389a91e955cb6c54" -dependencies = [ - "async-trait", - "solana-connection-cache", - "solana-keypair", - "solana-net-utils", - "solana-streamer", - "solana-transaction-error", - "thiserror 2.0.12", - "tokio", -] - -[[package]] -name = "solana-validator-exit" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bbf6d7a3c0b28dd5335c52c0e9eae49d0ae489a8f324917faf0ded65a812c1d" - -[[package]] -name = "solana-version" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4607a9de98043bcf7db9e5d90b31fefb728c80eec901595b6931d7cdc1558b2" -dependencies = [ - "agave-feature-set", - "rand 0.8.5", - "semver 1.0.26", - "serde", - "serde_derive", - "solana-sanitize", - "solana-serde-varint", -] - -[[package]] -name = "solana-vote-interface" -version = "2.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b80d57478d6599d30acc31cc5ae7f93ec2361a06aefe8ea79bc81739a08af4c3" -dependencies = [ - "bincode", - "num-derive", - "num-traits", - "serde", - "serde_derive", - "solana-clock", - "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", -] - -[[package]] -name = "solana-zk-sdk" -version = "2.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bb171c0f76c420a7cb6aabbe5fa85a1a009d5bb4009189c43e1a03aff9446d7" -dependencies = [ - "aes-gcm-siv", - "base64 0.22.1", - "bincode", - "bytemuck", - "bytemuck_derive", - "curve25519-dalek 4.1.3", - "itertools 0.12.1", - "js-sys", - "merlin", - "num-derive", - "num-traits", - "rand 0.8.5", - "serde", - "serde_derive", - "serde_json", - "sha3", - "solana-derivation-path", - "solana-instruction", - "solana-pubkey", - "solana-sdk-ids", - "solana-seed-derivable", - "solana-seed-phrase", - "solana-signature", - "solana-signer", - "subtle", - "thiserror 2.0.12", - "wasm-bindgen", - "zeroize", -] - -[[package]] -name = "sp1-build" -version = "5.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5563b406d74b417ce07c0d7e0d8184b423f3bc3eacd1e98b105691a167f47c8f" -dependencies = [ - "anyhow", - "cargo_metadata", - "chrono", - "clap", - "dirs", - "sp1-prover", -] - -[[package]] -name = "sp1-core-executor" -version = "5.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291c086ca35f43725b33337a7a33c64418d89033d8d6e5586f82b9de2cf90dcb" -dependencies = [ - "bincode", - "bytemuck", - "clap", - "elf", - "enum-map", - "eyre", - "hashbrown 0.14.5", - "hex", - "itertools 0.13.0", - "nohash-hasher", - "num 0.4.3", - "p3-baby-bear", - "p3-field", - "p3-maybe-rayon", - "p3-util", - "rand 0.8.5", - "range-set-blaze", - "rrs-succinct", - "serde", - "serde_json", - "sp1-curves", - "sp1-primitives", - "sp1-stark", - "strum 0.26.3", - "strum_macros 0.26.4", - "subenum", - "thiserror 1.0.69", - "tiny-keccak", - "tracing", - "typenum", - "vec_map", -] - -[[package]] -name = "sp1-core-machine" -version = "5.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "236d063c38900e8346342af0b352a23d25b9806b624ee30fcae4c0cc7ddbed27" -dependencies = [ - "bincode", - "cbindgen", - "cc", - "cfg-if", - "elliptic-curve", - "generic-array 1.1.0", - "glob", - "hashbrown 0.14.5", - "hex", - "itertools 0.13.0", - "k256", - "num 0.4.3", - "num_cpus", - "p256", - "p3-air", - "p3-baby-bear", - "p3-challenger", - "p3-field", - "p3-keccak-air", - "p3-matrix", - "p3-maybe-rayon", - "p3-poseidon2", - "p3-symmetric", - "p3-uni-stark", - "p3-util", - "pathdiff", - "rand 0.8.5", - "rayon", - "rayon-scan", - "serde", - "serde_json", - "size", - "snowbridge-amcl", - "sp1-core-executor", - "sp1-curves", - "sp1-derive", - "sp1-primitives", - "sp1-stark", - "static_assertions", - "strum 0.26.3", - "strum_macros 0.26.4", - "tempfile", - "thiserror 1.0.69", - "tracing", - "tracing-forest", - "tracing-subscriber", - "typenum", - "web-time", -] - -[[package]] -name = "sp1-cuda" -version = "5.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c81ab46ba84d41e471351329a69ac43be7da1aa701ed29c70048c83c0fe28c" -dependencies = [ - "bincode", - "ctrlc", - "prost", - "serde", - "sp1-core-machine", - "sp1-prover", - "tokio", - "tracing", - "twirp-rs", -] - -[[package]] -name = "sp1-curves" -version = "5.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4d6faecc70f0ca84d0e1259ab2f5eb6d2d351d263c3cd00edf654f8530c0473" -dependencies = [ - "cfg-if", - "dashu", - "elliptic-curve", - "generic-array 1.1.0", - "itertools 0.13.0", - "k256", - "num 0.4.3", - "p256", - "p3-field", - "serde", - "snowbridge-amcl", - "sp1-primitives", - "sp1-stark", - "typenum", -] - -[[package]] -name = "sp1-derive" -version = "5.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c25a3bd262f3b0b0ab59d9bc86638ebd895ade9c16526203023c08f926d62732" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "sp1-ics07-tendermint-operator" -version = "0.1.0" -dependencies = [ - "alloy", - "anyhow", - "clap", - "dotenv", - "futures", - "ibc-client-tendermint-types", - "ibc-core-commitment-types", - "ibc-eureka-solidity-types 0.1.0", - "ibc-eureka-utils 0.1.0", - "ibc-proto 0.51.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde", - "serde_json", - "serde_with", - "sp1-ics07-tendermint-prover 0.1.0", - "sp1-sdk", - "subtle-encoding", - "tendermint-light-client-verifier", - "tendermint-rpc", - "tokio", - "tracing", -] - -[[package]] -name = "sp1-ics07-tendermint-prover" -version = "0.1.0" -dependencies = [ - "alloy-sol-types 1.2.1", - "ibc-core-commitment-types", - "ibc-eureka-solidity-types 0.1.0", - "ibc-proto 0.51.1 (registry+https://github.com/rust-lang/crates.io-index)", - "prost", - "sp1-prover", - "sp1-sdk", - "tracing", -] - -[[package]] -name = "sp1-ics07-tendermint-prover" -version = "0.1.0" -source = "git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8#d9f58589bee5881561cd8c769750a35448e5ebc8" -dependencies = [ - "alloy-sol-types 1.2.1", - "ibc-core-commitment-types", - "ibc-eureka-solidity-types 0.1.0 (git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8)", - "ibc-proto 0.51.1 (registry+https://github.com/rust-lang/crates.io-index)", - "prost", - "sp1-prover", - "sp1-sdk", - "tracing", -] - -[[package]] -name = "sp1-primitives" -version = "5.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "699935774a5131c1a8b371108d0666c0c80c43611045fb77fae43f2f242676d5" -dependencies = [ - "bincode", - "blake3", - "cfg-if", - "hex", - "lazy_static", - "num-bigint 0.4.6", - "p3-baby-bear", - "p3-field", - "p3-poseidon2", - "p3-symmetric", - "serde", - "sha2 0.10.9", -] - -[[package]] -name = "sp1-prover" -version = "5.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f9381b478115137a435d02756dae7f3da01abaa0b1b9db8c0973389bd5bfaa9" -dependencies = [ - "anyhow", - "bincode", - "clap", - "dirs", - "downloader", - "enum-map", - "eyre", - "hashbrown 0.14.5", - "hex", - "itertools 0.13.0", - "lru 0.12.5", - "num-bigint 0.4.6", - "p3-baby-bear", - "p3-bn254-fr", - "p3-challenger", - "p3-commit", - "p3-field", - "p3-matrix", - "p3-symmetric", - "p3-util", - "rayon", - "serde", - "serde_json", - "serial_test", - "sha2 0.10.9", - "sp1-core-executor", - "sp1-core-machine", - "sp1-primitives", - "sp1-recursion-circuit", - "sp1-recursion-compiler", - "sp1-recursion-core", - "sp1-recursion-gnark-ffi", - "sp1-stark", - "thiserror 1.0.69", - "tracing", - "tracing-appender", - "tracing-subscriber", -] - -[[package]] -name = "sp1-recursion-circuit" -version = "5.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e56f69b0e112a7fbba23cbef61fb37f6092ba6897425859b30c4cd2786450179" -dependencies = [ - "hashbrown 0.14.5", - "itertools 0.13.0", - "num-traits", - "p3-air", - "p3-baby-bear", - "p3-bn254-fr", - "p3-challenger", - "p3-commit", - "p3-dft", - "p3-field", - "p3-fri", - "p3-matrix", - "p3-symmetric", - "p3-uni-stark", - "p3-util", - "rand 0.8.5", - "rayon", - "serde", - "sp1-core-executor", - "sp1-core-machine", - "sp1-derive", - "sp1-primitives", - "sp1-recursion-compiler", - "sp1-recursion-core", - "sp1-recursion-gnark-ffi", - "sp1-stark", - "tracing", -] - -[[package]] -name = "sp1-recursion-compiler" -version = "5.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6101a4c46d55206a5f0d312fd6f663248cbdb49c90f1662138f20472bef31b71" -dependencies = [ - "backtrace", - "itertools 0.13.0", - "p3-baby-bear", - "p3-bn254-fr", - "p3-field", - "p3-symmetric", - "serde", - "sp1-core-machine", - "sp1-primitives", - "sp1-recursion-core", - "sp1-recursion-derive", - "sp1-stark", - "tracing", - "vec_map", -] - -[[package]] -name = "sp1-recursion-core" -version = "5.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13fa9644be4e3b9cf0b1f0976b2c3814dbd5b6d6f47dc8662d6a22828f2c3dd7" -dependencies = [ - "backtrace", - "cbindgen", - "cc", - "cfg-if", - "ff 0.13.1", - "glob", - "hashbrown 0.14.5", - "itertools 0.13.0", - "num_cpus", - "p3-air", - "p3-baby-bear", - "p3-bn254-fr", - "p3-challenger", - "p3-commit", - "p3-dft", - "p3-field", - "p3-fri", - "p3-matrix", - "p3-maybe-rayon", - "p3-merkle-tree", - "p3-poseidon2", - "p3-symmetric", - "p3-util", - "pathdiff", - "rand 0.8.5", - "serde", - "sp1-core-machine", - "sp1-derive", - "sp1-primitives", - "sp1-stark", - "static_assertions", - "thiserror 1.0.69", - "tracing", - "vec_map", - "zkhash", -] - -[[package]] -name = "sp1-recursion-derive" -version = "5.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e6d5c7e2620d61956e6f75026a88ef2f714dab4abf84e870f13145e6bbec79" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "sp1-recursion-gnark-ffi" -version = "5.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d40fc06701180ce02d6079370d00ca74b8d86c84d85909a3684eddc8bfd8c1bf" -dependencies = [ - "anyhow", - "bincode", - "bindgen", - "cc", - "cfg-if", - "hex", - "num-bigint 0.4.6", - "p3-baby-bear", - "p3-field", - "p3-symmetric", - "serde", - "serde_json", - "sha2 0.10.9", - "sp1-core-machine", - "sp1-recursion-compiler", - "sp1-stark", - "tempfile", - "tracing", -] - -[[package]] -name = "sp1-sdk" -version = "5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "690529ed3c6e9ae4e7aa68aefc87db3b2ae82e6edde754dd1dabffa98cc591cb" -dependencies = [ - "alloy-primitives 1.2.1", - "alloy-signer 0.14.0", - "alloy-signer-local 0.14.0", - "alloy-sol-types 1.2.1", - "anyhow", - "async-trait", - "backoff", - "bincode", - "cfg-if", - "dirs", - "eventsource-stream", - "futures", - "hashbrown 0.14.5", - "hex", - "indicatif", - "itertools 0.13.0", - "k256", - "p3-baby-bear", - "p3-field", - "p3-fri", - "prost", - "reqwest 0.12.22", - "reqwest-middleware 0.3.3", - "serde", - "serde_json", - "sp1-build", - "sp1-core-executor", - "sp1-core-machine", - "sp1-cuda", - "sp1-primitives", - "sp1-prover", - "sp1-stark", - "strum 0.26.3", - "strum_macros 0.26.4", - "tempfile", - "thiserror 1.0.69", - "tokio", - "tonic 0.12.3", - "tracing", - "twirp-rs", -] - -[[package]] -name = "sp1-stark" -version = "5.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a795a0a309949772a6f26480f5d844e9f2fad9ef82e4caef9e7b0cec98daffe" -dependencies = [ - "arrayref", - "hashbrown 0.14.5", - "itertools 0.13.0", - "num-bigint 0.4.6", - "num-traits", - "p3-air", - "p3-baby-bear", - "p3-challenger", - "p3-commit", - "p3-dft", - "p3-field", - "p3-fri", - "p3-matrix", - "p3-maybe-rayon", - "p3-merkle-tree", - "p3-poseidon2", - "p3-symmetric", - "p3-uni-stark", - "p3-util", - "rayon-scan", - "serde", - "sp1-derive", - "sp1-primitives", - "strum 0.26.3", - "strum_macros 0.26.4", - "sysinfo", - "tracing", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - -[[package]] -name = "spinning_top" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" -dependencies = [ - "lock_api", -] - -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "spl-associated-token-account" -version = "7.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae179d4a26b3c7a20c839898e6aed84cb4477adf108a366c95532f058aea041b" -dependencies = [ - "borsh 1.5.7", - "num-derive", - "num-traits", - "solana-program", - "spl-associated-token-account-client", - "spl-token", - "spl-token-2022", - "thiserror 2.0.12", -] - -[[package]] -name = "spl-associated-token-account-client" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6f8349dbcbe575f354f9a533a21f272f3eb3808a49e2fdc1c34393b88ba76cb" -dependencies = [ - "solana-instruction", - "solana-pubkey", -] - -[[package]] -name = "spl-discriminator" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7398da23554a31660f17718164e31d31900956054f54f52d5ec1be51cb4f4b3" -dependencies = [ - "bytemuck", - "solana-program-error", - "solana-sha256-hasher", - "spl-discriminator-derive", -] - -[[package]] -name = "spl-discriminator-derive" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9e8418ea6269dcfb01c712f0444d2c75542c04448b480e87de59d2865edc750" -dependencies = [ - "quote", - "spl-discriminator-syn", - "syn 2.0.104", -] - -[[package]] -name = "spl-discriminator-syn" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d1dbc82ab91422345b6df40a79e2b78c7bce1ebb366da323572dd60b7076b67" -dependencies = [ - "proc-macro2", - "quote", - "sha2 0.10.9", - "syn 2.0.104", - "thiserror 1.0.69", -] - -[[package]] -name = "spl-elgamal-registry" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65edfeed09cd4231e595616aa96022214f9c9d2be02dea62c2b30d5695a6833a" -dependencies = [ - "bytemuck", - "solana-account-info", - "solana-cpi", - "solana-instruction", - "solana-msg", - "solana-program-entrypoint", - "solana-program-error", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", - "solana-system-interface", - "solana-sysvar", - "solana-zk-sdk", - "spl-pod", - "spl-token-confidential-transfer-proof-extraction", -] - -[[package]] -name = "spl-generic-token" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "741a62a566d97c58d33f9ed32337ceedd4e35109a686e31b1866c5dfa56abddc" -dependencies = [ - "bytemuck", - "solana-pubkey", -] - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d994afaf86b779104b4a95ba9ca75b8ced3fdb17ee934e38cb69e72afbe17799" -dependencies = [ - "borsh 1.5.7", - "bytemuck", - "bytemuck_derive", - "num-derive", - "num-traits", - "solana-decode-error", - "solana-msg", - "solana-program-error", - "solana-program-option", - "solana-pubkey", - "solana-zk-sdk", - "thiserror 2.0.12", -] - -[[package]] -name = "spl-program-error" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdebc8b42553070b75aa5106f071fef2eb798c64a7ec63375da4b1f058688c6" -dependencies = [ - "num-derive", - "num-traits", - "solana-decode-error", - "solana-msg", - "solana-program-error", - "spl-program-error-derive", - "thiserror 2.0.12", -] - -[[package]] -name = "spl-program-error-derive" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2539e259c66910d78593475540e8072f0b10f0f61d7607bbf7593899ed52d0" -dependencies = [ - "proc-macro2", - "quote", - "sha2 0.10.9", - "syn 2.0.104", -] - -[[package]] -name = "spl-tlv-account-resolution" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1408e961215688715d5a1063cbdcf982de225c45f99c82b4f7d7e1dd22b998d7" -dependencies = [ - "bytemuck", - "num-derive", - "num-traits", - "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 2.0.12", -] - -[[package]] -name = "spl-token" -version = "8.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053067c6a82c705004f91dae058b11b4780407e9ccd6799dc9e7d0fab5f242da" -dependencies = [ - "arrayref", - "bytemuck", - "num-derive", - "num-traits", - "num_enum 0.7.4", - "solana-account-info", - "solana-cpi", - "solana-decode-error", - "solana-instruction", - "solana-msg", - "solana-program-entrypoint", - "solana-program-error", - "solana-program-memory", - "solana-program-option", - "solana-program-pack", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", - "solana-sysvar", - "thiserror 2.0.12", -] - -[[package]] -name = "spl-token-2022" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f0dfbb079eebaee55e793e92ca5f433744f4b71ee04880bfd6beefba5973e5" -dependencies = [ - "arrayref", - "bytemuck", - "num-derive", - "num-traits", - "num_enum 0.7.4", - "solana-account-info", - "solana-clock", - "solana-cpi", - "solana-decode-error", - "solana-instruction", - "solana-msg", - "solana-native-token", - "solana-program-entrypoint", - "solana-program-error", - "solana-program-memory", - "solana-program-option", - "solana-program-pack", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", - "solana-security-txt", - "solana-system-interface", - "solana-sysvar", - "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 2.0.12", -] - -[[package]] -name = "spl-token-confidential-transfer-ciphertext-arithmetic" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cddd52bfc0f1c677b41493dafa3f2dbbb4b47cf0990f08905429e19dc8289b35" -dependencies = [ - "base64 0.22.1", - "bytemuck", - "solana-curve25519", - "solana-zk-sdk", -] - -[[package]] -name = "spl-token-confidential-transfer-proof-extraction" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe2629860ff04c17bafa9ba4bed8850a404ecac81074113e1f840dbd0ebb7bd6" -dependencies = [ - "bytemuck", - "solana-account-info", - "solana-curve25519", - "solana-instruction", - "solana-instructions-sysvar", - "solana-msg", - "solana-program-error", - "solana-pubkey", - "solana-sdk-ids", - "solana-zk-sdk", - "spl-pod", - "thiserror 2.0.12", -] - -[[package]] -name = "spl-token-confidential-transfer-proof-generation" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa27b9174bea869a7ebf31e0be6890bce90b1a4288bc2bbf24bd413f80ae3fde" -dependencies = [ - "curve25519-dalek 4.1.3", - "solana-zk-sdk", - "thiserror 2.0.12", -] - -[[package]] -name = "spl-token-group-interface" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5597b4cd76f85ce7cd206045b7dc22da8c25516573d42d267c8d1fd128db5129" -dependencies = [ - "bytemuck", - "num-derive", - "num-traits", - "solana-decode-error", - "solana-instruction", - "solana-msg", - "solana-program-error", - "solana-pubkey", - "spl-discriminator", - "spl-pod", - "thiserror 2.0.12", -] - -[[package]] -name = "spl-token-metadata-interface" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "304d6e06f0de0c13a621464b1fd5d4b1bebf60d15ca71a44d3839958e0da16ee" -dependencies = [ - "borsh 1.5.7", - "num-derive", - "num-traits", - "solana-borsh", - "solana-decode-error", - "solana-instruction", - "solana-msg", - "solana-program-error", - "solana-pubkey", - "spl-discriminator", - "spl-pod", - "spl-type-length-value", - "thiserror 2.0.12", -] - -[[package]] -name = "spl-transfer-hook-interface" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7e905b849b6aba63bde8c4badac944ebb6c8e6e14817029cbe1bc16829133bd" -dependencies = [ - "arrayref", - "bytemuck", - "num-derive", - "num-traits", - "solana-account-info", - "solana-cpi", - "solana-decode-error", - "solana-instruction", - "solana-msg", - "solana-program-error", - "solana-pubkey", - "spl-discriminator", - "spl-pod", - "spl-program-error", - "spl-tlv-account-resolution", - "spl-type-length-value", - "thiserror 2.0.12", -] - -[[package]] -name = "spl-type-length-value" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d417eb548214fa822d93f84444024b4e57c13ed6719d4dcc68eec24fb481e9f5" -dependencies = [ - "bytemuck", - "num-derive", - "num-traits", - "solana-account-info", - "solana-decode-error", - "solana-msg", - "solana-program-error", - "spl-discriminator", - "spl-pod", - "thiserror 2.0.12", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "strum" -version = "0.26.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" -dependencies = [ - "strum_macros 0.26.4", -] - -[[package]] -name = "strum" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f64def088c51c9510a8579e3c5d67c65349dcf755e5479ad3d010aa6454e2c32" -dependencies = [ - "strum_macros 0.27.1", -] - -[[package]] -name = "strum_macros" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.104", -] - -[[package]] -name = "strum_macros" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.104", -] - -[[package]] -name = "subenum" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5d5dfb8556dd04017db5e318bbeac8ab2b0c67b76bf197bfb79e9b29f18ecf" -dependencies = [ - "heck 0.4.1", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "subtle-encoding" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dcb1ed7b8330c5eed5441052651dd7a12c75e2ed88f2ec024ae1fa3a5e59945" -dependencies = [ - "zeroize", -] - -[[package]] -name = "subtle-ng" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn-solidity" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4560533fbd6914b94a8fb5cc803ed6801c3455668db3b810702c57612bac9412" -dependencies = [ - "paste", - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "syn-solidity" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ac494e7266fcdd2ad80bf4375d55d27a117ea5c866c26d0e97fe5b3caeeb75" -dependencies = [ - "paste", - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[package]] -name = "sync_wrapper" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" -dependencies = [ - "futures-core", -] - -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "unicode-xid", -] - -[[package]] -name = "synstructure" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "sysinfo" -version = "0.30.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3" -dependencies = [ - "cfg-if", - "core-foundation-sys", - "libc", - "ntapi", - "once_cell", - "rayon", - "windows", -] - -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation 0.9.4", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "tempfile" -version = "3.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" -dependencies = [ - "fastrand", - "getrandom 0.3.3", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "tendermint" -version = "0.40.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc997743ecfd4864bbca8170d68d9b2bee24653b034210752c2d883ef4b838b1" -dependencies = [ - "bytes", - "digest 0.10.7", - "ed25519 2.2.3", - "ed25519-consensus", - "flex-error", - "futures", - "num-traits", - "once_cell", - "prost", - "serde", - "serde_bytes", - "serde_json", - "serde_repr", - "sha2 0.10.9", - "signature 2.2.0", - "subtle", - "subtle-encoding", - "tendermint-proto", - "time", - "zeroize", -] - -[[package]] -name = "tendermint-config" -version = "0.40.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069d1791f9b02a596abcd26eb72003b2e9906c6169a60fa82ffc080dd3a43fda" -dependencies = [ - "flex-error", - "serde", - "serde_json", - "tendermint", - "toml 0.8.23", - "url", -] - -[[package]] -name = "tendermint-light-client-membership" -version = "0.1.0" -dependencies = [ - "hex", - "ibc-core-commitment-types", - "ibc-core-host-types", - "ibc-proto 0.51.1 (registry+https://github.com/rust-lang/crates.io-index)", - "prost", - "serde", - "serde_json", - "thiserror 2.0.12", -] - -[[package]] -name = "tendermint-light-client-misbehaviour" -version = "0.1.0" -dependencies = [ - "ibc-client-tendermint", - "ibc-core-client-types", - "ibc-core-host-types", - "sha2 0.10.9", - "tendermint-light-client-update-client", - "tendermint-light-client-verifier", - "thiserror 2.0.12", -] - -[[package]] -name = "tendermint-light-client-uc-and-membership" -version = "0.1.0" -dependencies = [ - "hex", - "ibc-client-tendermint", - "ibc-core-client-types", - "ibc-core-commitment-types", - "ibc-proto 0.51.1 (registry+https://github.com/rust-lang/crates.io-index)", - "prost", - "serde", - "serde_json", - "tendermint", - "tendermint-light-client-membership", - "tendermint-light-client-update-client", - "thiserror 2.0.12", -] - -[[package]] -name = "tendermint-light-client-update-client" -version = "0.1.0" -dependencies = [ - "brine-ed25519", - "hex", - "ibc-client-tendermint", - "ibc-core-client", - "ibc-core-client-types", - "ibc-core-commitment-types", - "ibc-core-host-types", - "ibc-primitives", - "prost", - "serde", - "serde_json", - "sha2 0.10.9", - "tendermint", - "tendermint-light-client-verifier", - "thiserror 2.0.12", -] - -[[package]] -name = "tendermint-light-client-verifier" -version = "0.40.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "548421907264a3a580634d71459a6ceda0dc569f24c9675adfab17465edf8511" -dependencies = [ - "derive_more 0.99.20", - "flex-error", - "serde", - "tendermint", - "time", -] - -[[package]] -name = "tendermint-proto" -version = "0.40.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c40e13d39ca19082d8a7ed22de7595979350319833698f8b1080f29620a094" -dependencies = [ - "bytes", - "flex-error", - "prost", - "serde", - "serde_bytes", - "subtle-encoding", - "time", -] - -[[package]] -name = "tendermint-rpc" -version = "0.40.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35e0569a4b4cc42ff00df5a665be2858a39ff79df4790b176f1cd0e169bc0fc2" -dependencies = [ - "async-trait", - "bytes", - "flex-error", - "futures", - "getrandom 0.2.16", - "peg", - "pin-project", - "rand 0.8.5", - "reqwest 0.11.27", - "semver 1.0.26", - "serde", - "serde_bytes", - "serde_json", - "subtle", - "subtle-encoding", - "tendermint", - "tendermint-config", - "tendermint-proto", - "thiserror 1.0.69", - "time", - "tokio", - "tracing", - "url", - "uuid", - "walkdir", -] - -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl 1.0.69", -] - -[[package]] -name = "thiserror" -version = "2.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" -dependencies = [ - "thiserror-impl 2.0.12", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "thiserror-impl" -version = "2.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "thread_local" -version = "1.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "threadpool" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" -dependencies = [ - "num_cpus", -] - -[[package]] -name = "time" -version = "0.3.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" - -[[package]] -name = "time-macros" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - -[[package]] -name = "tinystr" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tinyvec" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1140bb80481756a8cbe10541f37433b459c5aa1e727b4c020fbfebdc25bf3ec4" -dependencies = [ - "backtrace", - "bytes", - "io-uring", - "libc", - "mio", - "parking_lot", - "pin-project-lite", - "signal-hook-registry", - "slab", - "socket2", - "tokio-macros", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-macros" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" -dependencies = [ - "rustls 0.23.28", - "tokio", -] - -[[package]] -name = "tokio-stream" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", - "tokio-util", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" -dependencies = [ - "futures-util", - "log", - "rustls 0.21.12", - "tokio", - "tokio-rustls 0.24.1", - "tungstenite 0.20.1", - "webpki-roots 0.25.4", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38" -dependencies = [ - "futures-util", - "log", - "tokio", - "tungstenite 0.21.0", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" -dependencies = [ - "futures-util", - "log", - "rustls 0.23.28", - "rustls-pki-types", - "tokio", - "tokio-rustls 0.26.2", - "tungstenite 0.26.2", - "webpki-roots 0.26.11", -] - -[[package]] -name = "tokio-util" -version = "0.7.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.22.27", -] - -[[package]] -name = "toml_datetime" -version = "0.6.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.19.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" -dependencies = [ - "indexmap 2.10.0", - "toml_datetime", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.22.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" -dependencies = [ - "indexmap 2.10.0", - "serde", - "serde_spanned", - "toml_datetime", - "toml_write", - "winnow 0.7.11", -] - -[[package]] -name = "toml_write" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" - -[[package]] -name = "tonic" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" -dependencies = [ - "async-stream", - "async-trait", - "axum 0.7.9", - "base64 0.22.1", - "bytes", - "h2 0.4.11", - "http 1.3.1", - "http-body 1.0.1", - "http-body-util", - "hyper 1.6.0", - "hyper-timeout", - "hyper-util", - "percent-encoding", - "pin-project", - "prost", - "rustls-native-certs 0.8.1", - "rustls-pemfile 2.2.0", - "socket2", - "tokio", - "tokio-rustls 0.26.2", - "tokio-stream", - "tower 0.4.13", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tonic" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e581ba15a835f4d9ea06c55ab1bd4dce26fc53752c69a04aac00703bfb49ba9" -dependencies = [ - "async-trait", - "axum 0.8.4", - "base64 0.22.1", - "bytes", - "h2 0.4.11", - "http 1.3.1", - "http-body 1.0.1", - "http-body-util", - "hyper 1.6.0", - "hyper-timeout", - "hyper-util", - "percent-encoding", - "pin-project", - "prost", - "socket2", - "tokio", - "tokio-stream", - "tower 0.5.2", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tonic-build" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac6f67be712d12f0b41328db3137e0d0757645d8904b4cb7d51cd9c2279e847" -dependencies = [ - "prettyplease", - "proc-macro2", - "prost-build", - "prost-types", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "tonic-reflection" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9687bd5bfeafebdded2356950f278bba8226f0b32109537c4253406e09aafe1" -dependencies = [ - "prost", - "prost-types", - "tokio", - "tokio-stream", - "tonic 0.13.1", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "indexmap 1.9.3", - "pin-project", - "pin-project-lite", - "rand 0.8.5", - "slab", - "tokio", - "tokio-util", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" -dependencies = [ - "futures-core", - "futures-util", - "indexmap 2.10.0", - "pin-project-lite", - "slab", - "sync_wrapper 1.0.2", - "tokio", - "tokio-util", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-http" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" -dependencies = [ - "bitflags 2.9.1", - "bytes", - "futures-util", - "http 1.3.1", - "http-body 1.0.1", - "iri-string", - "pin-project-lite", - "tower 0.5.2", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-appender" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" -dependencies = [ - "crossbeam-channel", - "thiserror 1.0.69", - "time", - "tracing-subscriber", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "tracing-core" -version = "0.1.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-forest" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee40835db14ddd1e3ba414292272eddde9dad04d3d4b65509656414d1c42592f" -dependencies = [ - "ansi_term", - "smallvec", - "thiserror 1.0.69", - "tracing", - "tracing-subscriber", -] - -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "futures", - "futures-task", - "pin-project", - "tracing", -] - -[[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", -] - -[[package]] -name = "tree_hash" -version = "0.1.0" -dependencies = [ - "alloy-primitives 1.2.1", - "ethereum_ssz", - "ethereum_ssz_derive", - "rand 0.9.1", - "sha2 0.10.9", - "smallvec", - "tree_hash_derive 0.10.0", -] - -[[package]] -name = "tree_hash" -version = "0.1.0" -source = "git+https://github.com/cosmos/solidity-ibc-eureka?tag=cw-ics08-wasm-eth-v1.2.0#57cb581aaa8839a479147c0713df4c012e64c260" -dependencies = [ - "alloy-primitives 0.8.25", - "sha2 0.10.9", - "smallvec", -] - -[[package]] -name = "tree_hash" -version = "0.1.0" -source = "git+https://github.com/cosmos/solidity-ibc-eureka?rev=d9f58589bee5881561cd8c769750a35448e5ebc8#d9f58589bee5881561cd8c769750a35448e5ebc8" -dependencies = [ - "alloy-primitives 1.2.1", - "sha2 0.10.9", - "smallvec", -] - -[[package]] -name = "tree_hash_derive" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "699e7fb6b3fdfe0c809916f251cf5132d64966858601695c3736630a87e7166a" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "tree_hash_derive" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bee2ea1551f90040ab0e34b6fb7f2fa3bad8acc925837ac654f2c78a13e3089" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "trie-db" -version = "0.29.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c992b4f40c234a074d48a757efeabb1a6be88af84c0c23f7ca158950cb0ae7f" -dependencies = [ - "hash-db", - "log", - "rustc-hex", - "smallvec", -] - -[[package]] -name = "trie-db" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c0670ab45a6b7002c7df369fee950a27cf29ae0474343fd3a15aa15f691e7a6" -dependencies = [ - "hash-db", - "log", - "rustc-hex", - "smallvec", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http 0.2.12", - "httparse", - "log", - "rand 0.8.5", - "rustls 0.21.12", - "sha1", - "thiserror 1.0.69", - "url", - "utf-8", - "webpki-roots 0.24.0", -] - -[[package]] -name = "tungstenite" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http 1.3.1", - "httparse", - "log", - "rand 0.8.5", - "sha1", - "thiserror 1.0.69", - "url", - "utf-8", -] - -[[package]] -name = "tungstenite" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" -dependencies = [ - "bytes", - "data-encoding", - "http 1.3.1", - "httparse", - "log", - "rand 0.9.1", - "rustls 0.23.28", - "rustls-pki-types", - "sha1", - "thiserror 2.0.12", - "utf-8", -] - -[[package]] -name = "twirp-rs" -version = "0.13.0-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27dfcc06b8d9262bc2d4b8d1847c56af9971a52dd8a0076876de9db763227d0d" -dependencies = [ - "async-trait", - "axum 0.7.9", - "futures", - "http 1.3.1", - "http-body-util", - "hyper 1.6.0", - "prost", - "reqwest 0.12.22", - "serde", - "serde_json", - "thiserror 1.0.69", - "tokio", - "tower 0.5.2", - "url", -] - -[[package]] -name = "typenum" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" - -[[package]] -name = "ucd-trie" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" - -[[package]] -name = "uint" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - -[[package]] -name = "uint" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "909988d098b2f738727b161a106cfc7cab00c539c2687a8836f8e565976fb53e" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - -[[package]] -name = "unicase" -version = "2.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" - -[[package]] -name = "unicode-ident" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" - -[[package]] -name = "unicode-segmentation" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" - -[[package]] -name = "unicode-width" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" - -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - -[[package]] -name = "unit-prefix" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "323402cff2dd658f39ca17c789b502021b3f18707c91cdf22e3838e1b4023817" - -[[package]] -name = "universal-hash" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" -dependencies = [ - "crypto-common", - "subtle", -] - -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - -[[package]] -name = "uriparse" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0200d0fc04d809396c2ad43f3c95da3582a2556eba8d453c1087f4120ee352ff" -dependencies = [ - "fnv", - "lazy_static", -] - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "utf8parse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" - -[[package]] -name = "uuid" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" - -[[package]] -name = "valuable" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "vec_map" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" -dependencies = [ - "serde", -] - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "wait-timeout" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" -dependencies = [ - "libc", -] - -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "warp" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4378d202ff965b011c64817db11d5829506d3404edeadb61f190d111da3f231c" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "headers", - "http 0.2.12", - "hyper 0.14.32", - "log", - "mime", - "mime_guess", - "multer", - "percent-encoding", - "pin-project", - "scoped-tls", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-tungstenite 0.21.0", - "tokio-util", - "tower-service", - "tracing", -] - -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "wasi" -version = "0.11.1+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" - -[[package]] -name = "wasi" -version = "0.14.2+wasi-0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" -dependencies = [ - "wit-bindgen-rt", -] - -[[package]] -name = "wasm-bindgen" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" -dependencies = [ - "cfg-if", - "once_cell", - "rustversion", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.104", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "wasm-streams" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" -dependencies = [ - "futures-util", - "js-sys", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "wasmtimer" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8d49b5d6c64e8558d9b1b065014426f35c18de636895d24893dbbd329743446" -dependencies = [ - "futures", - "js-sys", - "parking_lot", - "pin-utils", - "slab", - "wasm-bindgen", -] - -[[package]] -name = "web-sys" -version = "0.3.77" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "web-time" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki-root-certs" -version = "0.26.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" -dependencies = [ - "webpki-root-certs 1.0.2", -] - -[[package]] -name = "webpki-root-certs" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4ffd8df1c57e87c325000a3d6ef93db75279dc3a231125aac571650f22b12a" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "webpki-roots" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b291546d5d9d1eab74f069c77749f2cb8504a12caa20f0f2de93ddbf6f411888" -dependencies = [ - "rustls-webpki 0.101.7", -] - -[[package]] -name = "webpki-roots" -version = "0.25.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - -[[package]] -name = "webpki-roots" -version = "0.26.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" -dependencies = [ - "webpki-roots 1.0.1", -] - -[[package]] -name = "webpki-roots" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8782dd5a41a24eed3a4f40b606249b3e236ca61adf1f25ea4d45c73de122b502" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "wide" -version = "0.7.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03" -dependencies = [ - "bytemuck", - "safe_arch", -] - -[[package]] -name = "widestring" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" -dependencies = [ - "windows-core 0.52.0", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-core" -version = "0.61.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-link", - "windows-result", - "windows-strings", -] - -[[package]] -name = "windows-implement" -version = "0.60.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "windows-interface" -version = "0.59.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "windows-link" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" - -[[package]] -name = "windows-result" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-strings" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" -dependencies = [ - "windows-targets 0.53.2", -] - -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.53.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" -dependencies = [ - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_i686_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" - -[[package]] -name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - -[[package]] -name = "winnow" -version = "0.7.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd" -dependencies = [ - "memchr", -] - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wit-bindgen-rt" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" -dependencies = [ - "bitflags 2.9.1", -] - -[[package]] -name = "writeable" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" - -[[package]] -name = "ws_stream_wasm" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c173014acad22e83f16403ee360115b38846fe754e735c5d9d3803fe70c6abc" -dependencies = [ - "async_io_stream", - "futures", - "js-sys", - "log", - "pharos", - "rustc_version 0.4.1", - "send_wrapper", - "thiserror 2.0.12", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - -[[package]] -name = "x509-parser" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" -dependencies = [ - "asn1-rs", - "base64 0.13.1", - "data-encoding", - "der-parser", - "lazy_static", - "nom", - "oid-registry", - "rusticata-macros", - "thiserror 1.0.69", - "time", -] - -[[package]] -name = "yoke" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", - "synstructure 0.13.2", -] - -[[package]] -name = "zerocopy" -version = "0.8.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "zerofrom" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", - "synstructure 0.13.2", -] - -[[package]] -name = "zeroize" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "zerotrie" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", -] - -[[package]] -name = "zerovec" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "zkhash" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4352d1081da6922701401cdd4cbf29a2723feb4cfabb5771f6fee8e9276da1c7" -dependencies = [ - "ark-ff 0.4.2", - "ark-std 0.4.0", - "bitvec", - "blake2", - "bls12_381", - "byteorder", - "cfg-if", - "group 0.12.1", - "group 0.13.0", - "halo2", - "hex", - "jubjub", - "lazy_static", - "pasta_curves 0.5.1", - "rand 0.8.5", - "serde", - "sha2 0.10.9", - "sha3", - "subtle", -] - -[[package]] -name = "zstd" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "7.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" -dependencies = [ - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.15+zstd.1.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" -dependencies = [ - "cc", - "pkg-config", -] diff --git a/packages/proof-api/modules/solana-to-cosmos/Cargo.toml b/packages/proof-api/modules/solana-to-cosmos/Cargo.toml index 5da8ec864..8cda3e345 100644 --- a/packages/proof-api/modules/solana-to-cosmos/Cargo.toml +++ b/packages/proof-api/modules/solana-to-cosmos/Cargo.toml @@ -27,7 +27,6 @@ solana-client.workspace = true solana-sdk.workspace = true solana-transaction-status.workspace = true anchor-lang.workspace = true -anchor-client.workspace = true borsh.workspace = true base64.workspace = true hex.workspace = true diff --git a/packages/proof-api/modules/solana-to-eth/Cargo.toml b/packages/proof-api/modules/solana-to-eth/Cargo.toml index d09f51507..5bc781698 100644 --- a/packages/proof-api/modules/solana-to-eth/Cargo.toml +++ b/packages/proof-api/modules/solana-to-eth/Cargo.toml @@ -19,7 +19,8 @@ tracing = { workspace = true, default-features = true } alloy = { workspace = true, features = ["full", "node-bindings", "reqwest-rustls-tls"] } # Solana specific dependencies -solana-sdk.workspace = true +solana-sdk.workspace = true +solana-commitment-config.workspace = true [dev-dependencies] tokio = { workspace = true, features = ["macros", "rt-multi-thread"] } diff --git a/packages/proof-api/modules/solana-to-eth/src/lib.rs b/packages/proof-api/modules/solana-to-eth/src/lib.rs index 09ec0d68d..02c3d98c9 100644 --- a/packages/proof-api/modules/solana-to-eth/src/lib.rs +++ b/packages/proof-api/modules/solana-to-eth/src/lib.rs @@ -22,7 +22,7 @@ use proof_api_lib::{ service_utils::{parse_eth_tx_hashes, parse_solana_tx_hashes, to_tonic_status}, utils::RelayEventsParams, }; -use solana_sdk::commitment_config::CommitmentConfig; +use solana_commitment_config::CommitmentConfig; use tonic::{Request, Response}; use proof_api_core::{ diff --git a/packages/tendermint-light-client/misbehaviour/src/lib.rs b/packages/tendermint-light-client/misbehaviour/src/lib.rs index 68f78894b..d7b2ff628 100644 --- a/packages/tendermint-light-client/misbehaviour/src/lib.rs +++ b/packages/tendermint-light-client/misbehaviour/src/lib.rs @@ -19,7 +19,6 @@ use tendermint_light_client_verifier::{ options::Options, types::TrustThreshold as TmTrustThreshold, }; -#[cfg(not(feature = "solana"))] use tendermint_light_client_verifier::ProdVerifier; /// Output from misbehaviour verification @@ -70,7 +69,6 @@ pub enum MisbehaviourError { /// Returns `MisbehaviourError::MisbehaviourVerificationFailed` if misbehaviour verification fails. /// Returns `MisbehaviourError::CheckForMisbehaviourFailed` if misbehaviour check fails. /// Returns `MisbehaviourError::MisbehaviourNotDetected` if no misbehaviour is detected. -#[cfg(not(feature = "solana"))] pub fn check_for_misbehaviour( client_state: &ClientState, misbehaviour: &Misbehaviour, @@ -99,7 +97,7 @@ pub fn check_for_misbehaviour( /// Returns `MisbehaviourError::CheckForMisbehaviourFailed` if misbehaviour check fails. /// Returns `MisbehaviourError::MisbehaviourNotDetected` if no misbehaviour is detected. #[cfg(feature = "solana")] -pub fn check_for_misbehaviour<'a>( +pub fn check_for_misbehaviour_solana<'a>( client_state: &ClientState, misbehaviour: &Misbehaviour, trusted_consensus_state_1: ConsensusState, diff --git a/packages/tendermint-light-client/solana/src/lib.rs b/packages/tendermint-light-client/solana/src/lib.rs index b2e83ab44..b23471989 100644 --- a/packages/tendermint-light-client/solana/src/lib.rs +++ b/packages/tendermint-light-client/solana/src/lib.rs @@ -213,8 +213,6 @@ mod tests { use super::*; use rstest::rstest; use solana_ibc_types::ics07::SIGNATURE_VERIFICATION_IS_VALID_OFFSET; - use std::cell::RefCell; - use std::rc::Rc; use tendermint::crypto::signature::Verifier; fn create_verification_account_data(is_valid: u8) -> Vec { @@ -229,16 +227,7 @@ mod tests { lamports: &'a mut u64, owner: &'a Pubkey, ) -> AccountInfo<'a> { - AccountInfo { - key, - is_signer: false, - is_writable: false, - lamports: Rc::new(RefCell::new(lamports)), - data: Rc::new(RefCell::new(data)), - owner, - executable: false, - rent_epoch: 0, - } + AccountInfo::new(key, false, false, lamports, data, owner, false) } fn compute_sig_verify_pda( diff --git a/packages/tendermint-light-client/update-client/src/lib.rs b/packages/tendermint-light-client/update-client/src/lib.rs index bd625866d..815487e47 100644 --- a/packages/tendermint-light-client/update-client/src/lib.rs +++ b/packages/tendermint-light-client/update-client/src/lib.rs @@ -20,7 +20,6 @@ use tendermint_light_client_verifier::{ options::Options, types::TrustThreshold as TmTrustThreshold, }; -#[cfg(not(feature = "solana"))] use tendermint_light_client_verifier::ProdVerifier; /// Trust threshold @@ -107,7 +106,6 @@ pub enum UpdateClientError { /// - The client ID cannot be created /// - The chain ID is invalid /// - Header verification fails -#[cfg(not(feature = "solana"))] pub fn update_client( client_state: &ClientState, trusted_consensus_state: &ConsensusState, @@ -132,7 +130,7 @@ pub fn update_client( /// # Errors /// Returns error if client/chain ID is invalid or header verification fails. #[cfg(feature = "solana")] -pub fn update_client<'a>( +pub fn update_client_solana<'a>( client_state: &ClientState, trusted_consensus_state: &ConsensusState, proposed_header: Header, @@ -140,7 +138,7 @@ pub fn update_client<'a>( verification_accounts: &'a [anchor_lang::prelude::AccountInfo<'a>], program_id: &'a anchor_lang::prelude::Pubkey, ) -> Result { - update_client_impl( + update_client_solana_impl( client_state, trusted_consensus_state, proposed_header, @@ -150,7 +148,6 @@ pub fn update_client<'a>( ) } -#[cfg(not(feature = "solana"))] fn update_client_impl( client_state: &ClientState, trusted_consensus_state: &ConsensusState, @@ -168,7 +165,7 @@ fn update_client_impl( } #[cfg(feature = "solana")] -fn update_client_impl<'a>( +fn update_client_solana_impl<'a>( client_state: &ClientState, trusted_consensus_state: &ConsensusState, proposed_header: Header, diff --git a/packages/tendermint-light-client/update-client/tests/helpers.rs b/packages/tendermint-light-client/update-client/tests/helpers.rs index 072e559e9..ad15ae386 100644 --- a/packages/tendermint-light-client/update-client/tests/helpers.rs +++ b/packages/tendermint-light-client/update-client/tests/helpers.rs @@ -160,28 +160,12 @@ pub fn setup_test_context(fixture: UpdateClientFixture) -> TestContext { pub fn execute_update_client( ctx: &TestContext, ) -> Result { - #[cfg(not(feature = "solana"))] - { - update_client( - &ctx.client_state, - &ctx.trusted_consensus_state, - ctx.proposed_header.clone(), - ctx.current_time, - ) - } - #[cfg(feature = "solana")] - { - // For tests with solana feature, use empty verification accounts and a dummy program ID - let dummy_program_id = anchor_lang::prelude::Pubkey::new_unique(); - update_client( - &ctx.client_state, - &ctx.trusted_consensus_state, - ctx.proposed_header.clone(), - ctx.current_time, - &[], - &dummy_program_id, - ) - } + update_client( + &ctx.client_state, + &ctx.trusted_consensus_state, + ctx.proposed_header.clone(), + ctx.current_time, + ) } pub fn load_happy_path_fixture() -> UpdateClientFixture { diff --git a/programs/operator/Cargo.toml b/programs/operator/Cargo.toml index 847767f37..88fb5a1ba 100644 --- a/programs/operator/Cargo.toml +++ b/programs/operator/Cargo.toml @@ -32,8 +32,7 @@ ibc-core-commitment-types = { workspace = true } prost = { workspace = true } hex = { workspace = true } -# borsh 0.10.4 required for solana-ibc-borsh-header compatibility (renamed to avoid workspace conflict) -borsh_0_10 = { package = "borsh", version = "0.10.4" } +borsh.workspace = true solana-ibc-borsh-header = { path = "../solana/packages/solana-ibc-borsh-header", features = ["light-client"] } diff --git a/programs/operator/src/runners/solana_misbehaviour_to_borsh.rs b/programs/operator/src/runners/solana_misbehaviour_to_borsh.rs index bed66069f..e407ddf9e 100644 --- a/programs/operator/src/runners/solana_misbehaviour_to_borsh.rs +++ b/programs/operator/src/runners/solana_misbehaviour_to_borsh.rs @@ -3,7 +3,6 @@ use std::io::{self, Read}; use anyhow::{Context, Result}; -use borsh_0_10::BorshSerialize; use ibc_client_tendermint::types::Misbehaviour; use ibc_proto::ibc::lightclients::tendermint::v1::Misbehaviour as RawMisbehaviour; use prost::Message; @@ -30,9 +29,7 @@ pub fn run() -> Result<()> { let borsh_misbehaviour = misbehaviour_to_borsh(&misbehaviour); - let borsh_bytes = borsh_misbehaviour - .try_to_vec() - .context("Failed to serialize to Borsh")?; + let borsh_bytes = borsh::to_vec(&borsh_misbehaviour).context("Failed to serialize to Borsh")?; println!("{}", hex::encode(borsh_bytes)); diff --git a/programs/solana/Anchor.toml b/programs/solana/Anchor.toml index 076ab6fe7..74e02905a 100644 --- a/programs/solana/Anchor.toml +++ b/programs/solana/Anchor.toml @@ -1,5 +1,6 @@ [toolchain] -anchor_version = "0.32.1" +anchor_version = "1.1.2" +solana_version = "3.1.10" [features] resolution = true @@ -27,9 +28,6 @@ test_cpi_target = "GHB99UGVmKFeNrtSLsuzL2QhZZgaqcASvTjotQd2dZzu" test_ibc_app = "5E73beFMq9QZvbwPN5i84psh2WcyJ9PgqF4avBaRDgCC" test_gmp_app = "GdEUjpVtKvHKStM3Hph6PnLSUMsJXvcVqugubhtQ5QUD" -[registry] -url = "https://api.apr.dev" - [provider] cluster = "localnet" wallet = "~/.config/solana/id.json" diff --git a/programs/solana/Cargo.lock b/programs/solana/Cargo.lock index daca875cf..a033ecf00 100644 --- a/programs/solana/Cargo.lock +++ b/programs/solana/Cargo.lock @@ -2,6 +2,16 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + [[package]] name = "access-manager" version = "0.1.0" @@ -10,20 +20,13 @@ dependencies = [ "bincode", "mollusk-svm", "solana-ibc-types", + "solana-instructions-sysvar", "solana-program-test", "solana-sdk", + "solana-sdk-ids", "tokio", ] -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - [[package]] name = "adler2" version = "2.0.0" @@ -36,7 +39,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" dependencies = [ - "crypto-common", + "crypto-common 0.1.6", "generic-array", ] @@ -48,7 +51,7 @@ checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher", - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -68,23 +71,37 @@ dependencies = [ [[package]] name = "agave-feature-set" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "842ac28d0f5202fc8dbe8322ee06c328b27ef5fe7b0c5828409d39b6664beac5" +checksum = "4a36f13a213d45f45f8ff87ea9fc6b0a792a7997c76b7c5d6d4a2ebe741d19d0" dependencies = [ "ahash 0.8.12", "solana-epoch-schedule", - "solana-hash", - "solana-pubkey", + "solana-hash 3.1.0", + "solana-pubkey 3.0.0", "solana-sha256-hasher", "solana-svm-feature-set", ] +[[package]] +name = "agave-fs" +version = "3.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f4412d89cbeaa7cc39b6c1e37f052cb7f815433f3d2d6ed4f927da04c88f9a" +dependencies = [ + "agave-io-uring", + "io-uring", + "libc", + "log", + "slab", + "smallvec", +] + [[package]] name = "agave-io-uring" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27e59b815adb321550d3c586f37800466bdf7c00e0454fcfb429e0869ec2b7b4" +checksum = "6b10398e813092a6f7f3d8a4ad4017870087bdb3a10ade3281b186086e6e775e" dependencies = [ "io-uring", "libc", @@ -93,11 +110,23 @@ dependencies = [ "smallvec", ] +[[package]] +name = "agave-logger" +version = "3.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92bb03118dee8e9feb1e5f9a999c415a1aec647f2fbe330251bbb58a76caf3a1" +dependencies = [ + "env_logger", + "libc", + "log", + "signal-hook", +] + [[package]] name = "agave-precompiles" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a96b5f9384229334da8069a3f45080629bf3120fa8224e10b62f2e2ae300e4" +checksum = "c4321be6c2553f19159af1efaccc8b7951ad4b143840c91439da190f8205e92e" dependencies = [ "agave-feature-set", "bincode", @@ -105,11 +134,11 @@ dependencies = [ "ed25519-dalek 1.0.1", "libsecp256k1", "openssl", - "sha3", + "sha3 0.10.8", "solana-ed25519-program", "solana-message", "solana-precompile-error", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", "solana-secp256k1-program", "solana-secp256r1-program", @@ -117,29 +146,116 @@ dependencies = [ [[package]] name = "agave-reserved-account-keys" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1afa41b3076b5960dfbd38a70c0055a85c78348068b1840120199f87c9449762" +checksum = "6e4dbcc14290a572b94f8793561f74f87e8dd1efb6c28c883d79a84242ee9633" dependencies = [ "agave-feature-set", - "solana-pubkey", + "solana-pubkey 3.0.0", + "solana-sdk-ids", +] + +[[package]] +name = "agave-snapshots" +version = "3.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d885e8f6ddc79bf6b6d6b4347974e0d846feccab1c9ae666ad92e21cf43dfc4" +dependencies = [ + "agave-fs", + "bincode", + "bzip2", + "crossbeam-channel", + "log", + "lz4", + "rand 0.8.5", + "regex", + "semver 1.0.28", + "solana-accounts-db", + "solana-clock", + "solana-genesis-config", + "solana-hash 3.1.0", + "solana-lattice-hash", + "solana-measure", + "solana-metrics", + "strum", + "symlink", + "tar", + "tempfile", + "thiserror 2.0.18", + "zstd", +] + +[[package]] +name = "agave-syscalls" +version = "3.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "108ce050e29fa68a49928213a74f12fc314f8f6964cceeec908be700f1ae5a80" +dependencies = [ + "bincode", + "libsecp256k1", + "num-traits", + "solana-account", + "solana-account-info", + "solana-big-mod-exp", + "solana-blake3-hasher", + "solana-bn254", + "solana-clock", + "solana-cpi", + "solana-curve25519 3.1.10", + "solana-hash 3.1.0", + "solana-instruction", + "solana-keccak-hasher", + "solana-loader-v3-interface", + "solana-poseidon", + "solana-program-entrypoint", + "solana-program-runtime", + "solana-pubkey 3.0.0", + "solana-sbpf", "solana-sdk-ids", + "solana-secp256k1-recover", + "solana-sha256-hasher", + "solana-stable-layout", + "solana-stake-interface", + "solana-svm-callback", + "solana-svm-feature-set", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-timings", + "solana-svm-type-overrides", + "solana-sysvar", + "solana-sysvar-id", + "solana-transaction-context", + "thiserror 2.0.18", ] [[package]] name = "agave-transaction-view" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83f6035a79822b299f8a495fcd2c5f87baba15574b9e4374e58b42349ba1498c" +checksum = "5dc12186a81042cd93d5199adb469bdc7215968dda6c59f778a02eaa3aac7896" dependencies = [ - "solana-hash", + "solana-hash 3.1.0", "solana-message", "solana-packet", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", "solana-short-vec", "solana-signature", "solana-svm-transaction", + "solana-transaction-context", +] + +[[package]] +name = "agave-votor-messages" +version = "3.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66191497da4f496b7866e41dc227f894ba58ee58127c7be29dd709574549baab" +dependencies = [ + "agave-logger", + "serde", + "solana-bls-signatures", + "solana-clock", + "solana-hash 3.1.0", ] [[package]] @@ -190,35 +306,44 @@ dependencies = [ "alloc-no-stdlib", ] +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + [[package]] name = "alloy-consensus" -version = "1.0.9" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad451f9a70c341d951bca4e811d74dbe1e193897acd17e9dbac1353698cc430b" +checksum = "a6ff0c4adba2abdcd9fb5829ae5f4394c06f8585ed283a9ba79aa33763c802e1" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", "alloy-serde", "alloy-trie", + "alloy-tx-macros", "auto_impl", + "borsh", "c-kzg", "derive_more 2.1.1", "either", "k256", "once_cell", "rand 0.8.5", - "secp256k1", + "secp256k1 0.30.0", "serde", + "serde_json", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "alloy-consensus-any" -version = "1.0.9" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "142daffb15d5be1a2b20d2cd540edbcef03037b55d4ff69dc06beb4d06286dba" +checksum = "7cdf48932b1db3216175e19a2b476d89d53076e004850ee7983c6807ba0fde74" dependencies = [ "alloy-consensus", "alloy-eips", @@ -238,57 +363,76 @@ dependencies = [ "alloy-rlp", "crc", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "alloy-eip2930" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b82752a889170df67bbb36d42ca63c531eb16274f0d7299ae2a680facba17bd" +checksum = "9441120fa82df73e8959ae0e4ab8ade03de2aaae61be313fbf5746277847ce25" dependencies = [ "alloy-primitives", "alloy-rlp", + "borsh", "serde", ] [[package]] name = "alloy-eip7702" -version = "0.6.1" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2919c5a56a1007492da313e7a3b6d45ef5edc5d33416fdec63c0d7a2702a0d20" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "borsh", + "serde", + "thiserror 2.0.18", +] + +[[package]] +name = "alloy-eip7928" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d4769c6ffddca380b0070d71c8b7f30bed375543fe76bb2f74ec0acf4b7cd16" +checksum = "b3b12337f74cbfa451cb04dac173974814a6ff463079e1793aa09600ba8813ab" dependencies = [ "alloy-primitives", "alloy-rlp", + "borsh", + "once_cell", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "alloy-eips" -version = "1.0.9" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3056872f6da48046913e76edb5ddced272861f6032f09461aea1a2497be5ae5d" +checksum = "ea4c0453065b9206acc0f869a258dc8dcbbd595e144b4446f2c493a24a814d1f" dependencies = [ "alloy-eip2124", "alloy-eip2930", "alloy-eip7702", + "alloy-eip7928", "alloy-primitives", "alloy-rlp", "alloy-serde", "auto_impl", + "borsh", "c-kzg", "derive_more 2.1.1", "either", "serde", + "serde_with", "sha2 0.10.9", ] [[package]] name = "alloy-json-abi" -version = "1.1.3" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4e7305e76403f140c3827c71679689bfd2d91ed3a8c21a5354b19a56f74571c" +checksum = "7c36c9d7f9021601b04bfef14a4b64849f6d73116a4e91e071d7fbfe10247901" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -298,23 +442,24 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "1.0.9" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc08b31ebf9273839bd9a01f9333cbb7a3abb4e820c312ade349dd18bdc79581" +checksum = "c4691c60de5d628533752cd07e102d17c47874c06c04c91af33960fd94c484f4" dependencies = [ "alloy-primitives", "alloy-sol-types", + "http 1.3.1", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", "tracing", ] [[package]] name = "alloy-network" -version = "1.0.9" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed117b08f0cc190312bf0c38c34cf4f0dabfb4ea8f330071c587cd7160a88cb2" +checksum = "9d912bb639bf4ac31e83095afe9e907c8b9774ce0c405966228368309fcfc45f" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -333,14 +478,14 @@ dependencies = [ "futures-utils-wasm", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "alloy-network-primitives" -version = "1.0.9" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7162ff7be8649c0c391f4e248d1273e85c62076703a1f3ec7daf76b283d886d" +checksum = "d875a11bd98595f57f73890f2e36f4a1cca0fa670623e59c9fb08b2389979c36" dependencies = [ "alloy-consensus", "alloy-eips", @@ -351,9 +496,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "1.1.3" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "274f4961a08cd5320bfa0e2fd861eb2d1c3b3a45873276dfee0ea33083aa3823" +checksum = "4885c1409b6936c4898e646ef58baf6ec54edaf6d8179f79df805a7b85b7cf3e" dependencies = [ "alloy-rlp", "bytes", @@ -361,26 +506,27 @@ dependencies = [ "const-hex", "derive_more 2.1.1", "foldhash", - "hashbrown 0.15.3", - "indexmap 2.9.0", + "hashbrown 0.17.1", + "indexmap 2.14.0", "itoa", "k256", "keccak-asm", "paste", "proptest", - "rand 0.9.1", + "rand 0.9.5", + "rapidhash", "ruint", "rustc-hash", + "secp256k1 0.31.1", "serde", - "sha3", - "tiny-keccak", + "sha3 0.11.0", ] [[package]] name = "alloy-rlp" -version = "0.3.13" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e93e50f64a77ad9c5470bf2ad0ca02f228da70c792a8f06634801e202579f35e" +checksum = "24671b1f62edcf0f9b62994c7bf72cd621a04a4b99f5020ece1a647b40e2f103" dependencies = [ "alloy-rlp-derive", "arrayvec", @@ -389,9 +535,9 @@ dependencies = [ [[package]] name = "alloy-rlp-derive" -version = "0.3.13" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce8849c74c9ca0f5a03da1c865e3eb6f768df816e67dd3721a398a8a7e398011" +checksum = "9d4311c03125e8a18296504560b9de3d75ecbd0dcda7f71e6cf2a196d57e6fba" dependencies = [ "proc-macro2", "quote", @@ -400,20 +546,24 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "1.0.19" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed1e99233cff99aff94fe29cea9e9dd6014c85eeea7890ea4f0e4eada9957ceb" +checksum = "911a513723ef0b90c3b072f65eebf54d6ebc8b651d06734e252d024bd89b88ac" dependencies = [ "alloy-consensus-any", + "alloy-network-primitives", + "alloy-primitives", "alloy-rpc-types-eth", "alloy-serde", + "serde", + "serde_json", ] [[package]] name = "alloy-rpc-types-eth" -version = "1.0.9" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcaf7dff0fdd756a714d58014f4f8354a1706ebf9fa2cf73431e0aeec3c9431e" +checksum = "4e1bd19904581ee2075b61faabab1a4cefa8b96d8f2c85343adeae8ecf615e2b" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -426,14 +576,15 @@ dependencies = [ "itertools 0.14.0", "serde", "serde_json", - "thiserror 2.0.12", + "serde_with", + "thiserror 2.0.18", ] [[package]] name = "alloy-serde" -version = "1.0.9" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "730e8f2edf2fc224cabd1c25d090e1655fa6137b2e409f92e5eec735903f1507" +checksum = "c1e97b3e0b9f816b25083045dcfa69431bd059a078e828e4d82d296d1949b96c" dependencies = [ "alloy-primitives", "serde", @@ -442,9 +593,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.0.9" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b0d2428445ec13edc711909e023d7779618504c4800be055a5b940025dbafe3" +checksum = "6913d06ccc0d9c6ab67e2f82e2fbe292706da1f91442f30cded2d04b56bf0d58" dependencies = [ "alloy-primitives", "async-trait", @@ -452,14 +603,14 @@ dependencies = [ "either", "elliptic-curve", "k256", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "alloy-signer-local" -version = "1.0.9" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14fe6fedb7fe6e0dfae47fe020684f1d8e063274ef14bca387ddb7a6efa8ec1" +checksum = "c880813cd26bd1ddf8c2236e31295896efd1fcc5cc761d8894ae894503aeea53" dependencies = [ "alloy-consensus", "alloy-network", @@ -468,14 +619,14 @@ dependencies = [ "async-trait", "k256", "rand 0.8.5", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "alloy-sol-macro" -version = "1.1.3" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e2e0d050de1da5c6a4a5f4bcb4a54e225046352a5bbcd38045aa8ada90f1529" +checksum = "840128ed2b2971d6d4668a553fe403a82683d3acc646c73e75887e7157408033" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", @@ -487,28 +638,28 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "1.1.3" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "513322ca875f8dd097652396ddee766f4b9818b934e2080cf60d914482024825" +checksum = "63ec265e5d65d725175f6ca7711c970824c90ef9c0d1f1973711d4150ee612dd" dependencies = [ "alloy-json-abi", "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.9.0", + "indexmap 2.14.0", "proc-macro-error2", "proc-macro2", "quote", + "sha3 0.11.0", "syn 2.0.117", "syn-solidity", - "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "1.1.3" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df8b5eebcc14d5e8a1cbf19623ec066f3f82efc30810fd6de4dfbbd18138000e" +checksum = "89bf01077f18650876cfa682eb1f949967b5cde03f1a51c955c469d2c9b4aa67" dependencies = [ "alloy-json-abi", "const-hex", @@ -524,19 +675,19 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "1.1.3" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112610edf1bb26a03d1fb5d34bec72702b9030d3f43fa480468ab364dabc3502" +checksum = "857b470ecdd2ed38beaf82ad1a38c516a8ff75266750f38b9eeed001d575241b" dependencies = [ "serde", - "winnow", + "winnow 1.0.4", ] [[package]] name = "alloy-sol-types" -version = "1.1.3" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef95d325a32cef807cf26ef838a0ec78b887d1a0c58018207ec02a984e96cfd4" +checksum = "384cf252de0db2dec52821eac037a7f57e2aa33fe5b900ce6fe39973402341f1" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -546,136 +697,144 @@ dependencies = [ [[package]] name = "alloy-trie" -version = "0.8.1" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "983d99aa81f586cef9dae38443245e585840fcf0fc58b09aee0b1f27aed1d500" +checksum = "3f14b5d9b2c2173980202c6ff470d96e7c5e202c65a9f67884ad565226df7fbb" dependencies = [ "alloy-primitives", "alloy-rlp", - "arrayvec", "derive_more 2.1.1", "nybbles", "serde", "smallvec", + "thiserror 2.0.18", "tracing", ] +[[package]] +name = "alloy-tx-macros" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "406bc1183f6843e0aba09f7b3365e828b597213d60793ba5cb41befc863e3a78" +dependencies = [ + "darling 0.23.0", + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "anchor-attribute-access-control" -version = "0.32.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a883ca44ef14b2113615fc6d3a85fefc68b5002034e88db37f7f1f802f88aa9" +checksum = "9fc4b6b3c3f3e37a0b7d537e03a36bfb0415ee11b4443fa4190437cf26a874b6" dependencies = [ - "anchor-syn", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] name = "anchor-attribute-account" -version = "0.32.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c4d97763b29030412b4b80715076377edc9cc63bc3c9e667297778384b9fd2" +checksum = "48e8b1468add67e6a69732883e58d23a18be51538994adaae69c9b3fe967e6be" dependencies = [ "anchor-syn", - "bs58", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] name = "anchor-attribute-constant" -version = "0.32.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aae3328bbf9bbd517a51621b1ba6cbec06cbbc25e8cfc7403bddf69bcf088206" +checksum = "80e1e3ade39ba05716ddc3b792859d838cccf43f5f4913ae8a163de7a2ed7f7e" dependencies = [ "anchor-syn", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] name = "anchor-attribute-error" -version = "0.32.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2398a6d9e16df1ee9d7d37d970a8246756de898c8dd16ef6bdbe4da20cf39a" +checksum = "d4e026f0ff09d740fd1821bbf97d9ac649c123ff92f04b9197b002494af4acf1" dependencies = [ "anchor-syn", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] name = "anchor-attribute-event" -version = "0.32.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f12758f4ec2f0e98d4d56916c6fe95cb23d74b8723dd902c762c5ef46ebe7b65" +checksum = "7aafc8e26eb16a0c4129661f6857c42f301859fc2ee10f4e5287d571f0ea07f5" dependencies = [ "anchor-syn", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] name = "anchor-attribute-program" -version = "0.32.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c7193b5af2649813584aae6e3569c46fd59616a96af2083c556b13136c3830f" +checksum = "6844e657ffe049b073389efb843bb281d08579b8a47ef294365f729b35ed3dca" dependencies = [ "anchor-lang-idl", "anchor-syn", "anyhow", - "bs58", "heck 0.3.3", "proc-macro2", "quote", - "serde_json", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] name = "anchor-derive-accounts" -version = "0.32.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d332d1a13c0fca1a446de140b656e66110a5e8406977dcb6a41e5d6f323760b0" +checksum = "2c87a6769d7cf2deed8d3351d6d1d8aa05a3a07751f1418ab6b34aaa307bd34b" dependencies = [ "anchor-syn", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] name = "anchor-derive-serde" -version = "0.32.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8656e4af182edaeae665fa2d2d7ee81148518b5bd0be9a67f2a381bb17da7d46" +checksum = "1f014d99530ae48a81f710f150688c5c542fdeee3af8998010e147a64d7a697c" dependencies = [ "anchor-syn", - "borsh-derive-internal", + "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] name = "anchor-derive-space" -version = "0.32.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcff2a083560cd79817db07d89a4de39a2c4b2eaa00c1742cf0df49b25ff2bed" +checksum = "33ba30c2d844e7440c491ad5f3e25f93115c6c9319df480eda460ce96030832b" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] name = "anchor-lang" -version = "0.32.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e67d85d5376578f12d840c29ff323190f6eecd65b00a0b5f2b2f232751d049cc" +checksum = "aa6708f356398752b8d7a08fb701c9c17395e103786fb1b33615a7267a6f4774" dependencies = [ "anchor-attribute-access-control", "anchor-attribute-account", @@ -686,39 +845,55 @@ dependencies = [ "anchor-derive-accounts", "anchor-derive-serde", "anchor-derive-space", + "anchor-lang-error", "anchor-lang-idl", "base64 0.21.7", "bincode", - "borsh 0.10.4", + "borsh", "bytemuck", + "const-crypto", "solana-account-info", "solana-clock", "solana-cpi", - "solana-define-syscall", + "solana-define-syscall 3.0.0", "solana-feature-gate-interface", "solana-instruction", "solana-instructions-sysvar", "solana-invoke", - "solana-loader-v3-interface 3.0.0", + "solana-loader-v3-interface", "solana-msg", "solana-program-entrypoint", "solana-program-error", "solana-program-memory", "solana-program-option", "solana-program-pack", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", - "solana-system-interface", + "solana-stake-interface", + "solana-system-interface 2.0.0", "solana-sysvar", "solana-sysvar-id", "thiserror 1.0.69", ] +[[package]] +name = "anchor-lang-error" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20760a8d5b7ddd1aea7a347c43c702ea4e962ccb7b9908c952e4b372b2d9e1f7" +dependencies = [ + "anchor-attribute-error", + "borsh", + "solana-msg", + "solana-program-error", + "solana-pubkey 3.0.0", +] + [[package]] name = "anchor-lang-idl" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e8599d21995f68e296265aa5ab0c3cef582fd58afec014d01bd0bce18a4418" +checksum = "47914b4290ae2bdf4ec203aa821e6eba86d7c78ef497918938038dcc6919f953" dependencies = [ "anchor-lang-idl-spec", "anyhow", @@ -741,24 +916,24 @@ dependencies = [ [[package]] name = "anchor-spl" -version = "0.32.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3397ab3fc5b198bbfe55d827ff58bd69f2a8d3f9f71c3732c23c2093fec4d3ef" +checksum = "2f698a45d424351ff695df413adcb3fa603f2c791a0b4a937ebcd2e93a052c77" 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.32.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b93b69aa7d099b59378433f6d7e20e1008fc10c69e48b220270e5b3f2ec4c8be" +checksum = "f8f6c61ef5b47db60700087bb6e419284b3461ba8f59040e1f6827aa9e9a5bc4" dependencies = [ "anyhow", "bs58", @@ -767,18 +942,11 @@ dependencies = [ "proc-macro2", "quote", "serde", - "serde_json", - "sha2 0.10.9", - "syn 1.0.109", + "sha2 0.11.0", + "syn 2.0.117", "thiserror 1.0.69", ] -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - [[package]] name = "android_system_properties" version = "0.1.5" @@ -789,44 +957,157 @@ dependencies = [ ] [[package]] -name = "anyhow" -version = "1.0.98" +name = "anstream" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] [[package]] -name = "aquamarine" -version = "0.6.0" +name = "anstyle" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f50776554130342de4836ba542aa85a4ddb361690d7e8df13774d7284c3d5c2" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" + +[[package]] +name = "anstyle-parse" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" dependencies = [ - "include_dir", - "itertools 0.10.5", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.117", + "utf8parse", ] [[package]] -name = "ark-bn254" -version = "0.4.0" +name = "anstyle-query" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "ark-ec", - "ark-ff 0.4.2", - "ark-std 0.4.0", + "windows-sys 0.61.2", ] [[package]] -name = "ark-ec" -version = "0.4.2" +name = "anstyle-wincon" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys 0.61.2", +] + +[[package]] +name = "anyhow" +version = "1.0.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3" + +[[package]] +name = "anza-quinn" +version = "0.11.9-rustsec20260037" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91bfa08f6e7e4187354ff4f793b81cc08218a6a95cc48f5de7616d44452bf6e0" +dependencies = [ + "anza-quinn-proto", + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2 0.6.5", + "thiserror 2.0.18", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "anza-quinn-proto" +version = "0.11.13-rustsec20260037" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d00a4d8cf8d72ee56e0ee20d3b4eef4785ce1b05299c4982c6de7f251c458efe" +dependencies = [ + "bytes", + "fastbloom", + "getrandom 0.3.3", + "lru-slab", + "rand 0.9.5", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "rustls-platform-verifier", + "slab", + "thiserror 2.0.18", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "aquamarine" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f50776554130342de4836ba542aa85a4ddb361690d7e8df13774d7284c3d5c2" +dependencies = [ + "include_dir", + "itertools 0.10.5", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "arc-swap" +version = "1.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c049c0be4daef0b145cb3555416b3b8ef5b7888a38aea1a3a155801fe7b0810b" +dependencies = [ + "rustversion", +] + +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-bn254" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-std 0.5.0", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" dependencies = [ "ark-ff 0.4.2", - "ark-poly", + "ark-poly 0.4.2", "ark-serialize 0.4.2", "ark-std 0.4.0", "derivative", @@ -836,6 +1117,27 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe 0.6.0", + "fnv", + "hashbrown 0.15.3", + "itertools 0.13.0", + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "zeroize", +] + [[package]] name = "ark-ff" version = "0.3.0" @@ -874,6 +1176,26 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm 0.5.0", + "ark-ff-macros 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "educe 0.6.0", + "itertools 0.13.0", + "num-bigint 0.4.6", + "num-traits", + "paste", + "zeroize", +] + [[package]] name = "ark-ff-asm" version = "0.3.0" @@ -894,6 +1216,16 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-ff-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn 2.0.117", +] + [[package]] name = "ark-ff-macros" version = "0.3.0" @@ -919,6 +1251,19 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint 0.4.6", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "ark-poly" version = "0.4.2" @@ -932,6 +1277,21 @@ dependencies = [ "hashbrown 0.13.2", ] +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe 0.6.0", + "fnv", + "hashbrown 0.15.3", +] + [[package]] name = "ark-serialize" version = "0.3.0" @@ -948,12 +1308,25 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" dependencies = [ - "ark-serialize-derive", + "ark-serialize-derive 0.4.2", "ark-std 0.4.0", "digest 0.10.7", "num-bigint 0.4.6", ] +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-serialize-derive 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "num-bigint 0.4.6", +] + [[package]] name = "ark-serialize-derive" version = "0.4.2" @@ -965,6 +1338,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "ark-std" version = "0.3.0" @@ -985,6 +1369,16 @@ dependencies = [ "rand 0.8.5", ] +[[package]] +name = "ark-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + [[package]] name = "arrayref" version = "0.3.9" @@ -996,9 +1390,6 @@ name = "arrayvec" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" -dependencies = [ - "serde", -] [[package]] name = "ascii" @@ -1051,17 +1442,6 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" -[[package]] -name = "async-channel" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" -dependencies = [ - "concurrent-queue", - "event-listener 2.5.3", - "futures-core", -] - [[package]] name = "async-compression" version = "0.4.25" @@ -1082,7 +1462,7 @@ version = "3.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" dependencies = [ - "event-listener 5.4.1", + "event-listener", "event-listener-strategy", "pin-project-lite", ] @@ -1109,7 +1489,7 @@ dependencies = [ "alloy-sol-types", "anchor-lang", "bincode", - "borsh 0.10.4", + "borsh", "hex", "ics25-handler", "mollusk-svm", @@ -1118,25 +1498,16 @@ dependencies = [ "serde", "sha2 0.10.9", "solana-ibc-types", + "solana-instructions-sysvar", "solana-keccak-hasher", "solana-program-test", "solana-sdk", + "solana-sdk-ids", "solana-secp256k1-recover", "solana-sha256-hasher", "tokio", ] -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - [[package]] name = "auto_impl" version = "1.3.0" @@ -1154,21 +1525,6 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" -[[package]] -name = "backtrace" -version = "0.3.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - [[package]] name = "base16ct" version = "0.2.0" @@ -1251,6 +1607,12 @@ dependencies = [ "hex-conservative", ] +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + [[package]] name = "bitflags" version = "2.9.1" @@ -1322,6 +1684,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-buffer" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" +dependencies = [ + "hybrid-array", +] + [[package]] name = "blst" version = "0.3.16" @@ -1335,13 +1706,19 @@ dependencies = [ ] [[package]] -name = "borsh" -version = "0.10.4" +name = "blstrs" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "115e54d64eb62cdebad391c19efc9dce4981c690c85a33a12199d99bb9546fee" +checksum = "7a8a8ed6fefbeef4a8c7b460e4110e12c5e22a5b7cf32621aae6ad650c4dcf29" dependencies = [ - "borsh-derive 0.10.4", - "hashbrown 0.13.2", + "blst", + "byte-slice-cast", + "ff", + "group", + "pairing", + "rand_core 0.6.4", + "serde", + "subtle", ] [[package]] @@ -1350,23 +1727,10 @@ 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" @@ -1374,34 +1738,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3" dependencies = [ "once_cell", - "proc-macro-crate 3.3.0", + "proc-macro-crate", "proc-macro2", "quote", "syn 2.0.117", ] -[[package]] -name = "borsh-derive-internal" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65d6ba50644c98714aa2a70d13d7df3cd75cd2b523a2b452bf010443800976b3" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "borsh-schema-derive-internal" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276691d96f063427be83e6692b86148e488ebba9f48f77788724ca027ba3b6d4" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "brine-ed25519" version = "0.2.0" @@ -1410,7 +1752,7 @@ checksum = "ffb604b3e64e069843eb815cd108f3dfc8bfcf9c4434a3d7d832332092cd1d63" dependencies = [ "curve25519-dalek 4.1.3", "sha2 0.10.9", - "solana-curve25519", + "solana-curve25519 2.3.5", ] [[package]] @@ -1546,12 +1888,12 @@ dependencies = [ [[package]] name = "cargo_toml" -version = "0.19.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a98356df42a2eb1bd8f1793ae4ee4de48e384dd974ce5eac8eee802edb7492be" +checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" dependencies = [ "serde", - "toml 0.8.22", + "toml 0.9.12+spec-1.1.0", ] [[package]] @@ -1573,9 +1915,9 @@ checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg_aliases" @@ -1596,17 +1938,16 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.41" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" +checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" dependencies = [ - "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "serde", "wasm-bindgen", - "windows-link 0.1.3", + "windows-link 0.2.1", ] [[package]] @@ -1624,10 +1965,16 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ - "crypto-common", + "crypto-common 0.1.6", "inout", ] +[[package]] +name = "colorchoice" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" + [[package]] name = "combine" version = "3.8.1" @@ -1662,35 +2009,24 @@ dependencies = [ [[package]] name = "console" -version = "0.15.11" +version = "0.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" +checksum = "4fe5f465a4f6fee88fad41b85d990f84c835335e85b5d9e6e63e0d06d28cba7c" dependencies = [ "encode_unicode", "libc", - "once_cell", "unicode-width", - "windows-sys 0.59.0", -] - -[[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", + "windows-sys 0.61.2", ] [[package]] -name = "console_log" -version = "0.2.2" +name = "const-crypto" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89f72f65e8501878b8a004d5a1afb780987e2ce2b4532c562e367a72c57499f" +checksum = "1c06f1eb05f06cf2e380fdded278fbf056a38974299d77960555a311dcf91a52" dependencies = [ - "log", - "web-sys", + "keccak-const", + "sha2-const-stable", ] [[package]] @@ -1700,7 +2036,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "hex", "proptest", "serde", @@ -1712,6 +2048,12 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +[[package]] +name = "const-oid" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" + [[package]] name = "const_format" version = "0.2.35" @@ -1784,6 +2126,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + [[package]] name = "crc" version = "3.4.0" @@ -1871,6 +2222,15 @@ dependencies = [ "typenum", ] +[[package]] +name = "crypto-common" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" +dependencies = [ + "hybrid-array", +] + [[package]] name = "crypto-mac" version = "0.8.0" @@ -1910,7 +2270,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", @@ -1947,19 +2307,29 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.11" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core 0.21.3", + "darling_macro 0.21.3", +] + +[[package]] +name = "darling" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.23.0", + "darling_macro 0.23.0", ] [[package]] name = "darling_core" -version = "0.20.11" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" dependencies = [ "fnv", "ident_case", @@ -1969,13 +2339,38 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "serde", + "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 0.21.3", + "quote", + "syn 2.0.117", +] + [[package]] name = "darling_macro" -version = "0.20.11" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" dependencies = [ - "darling_core", + "darling_core 0.23.0", "quote", "syn 2.0.117", ] @@ -1992,6 +2387,7 @@ dependencies = [ "once_cell", "parking_lot_core", "rayon", + "serde", ] [[package]] @@ -2000,13 +2396,44 @@ version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" +[[package]] +name = "defmt" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2953bfe4f93bbd20cc71198842756f77d161884c99ebbabc41d80231ded88d1" +dependencies = [ + "bitflags 1.3.2", + "defmt-macros", +] + +[[package]] +name = "defmt-macros" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bad9c72e7ca2137e0dc3813245a0d282fd6daad32fd800af018306a9169b5fe8" +dependencies = [ + "defmt-parser", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "defmt-parser" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e" +dependencies = [ + "thiserror 2.0.18", +] + [[package]] name = "der" version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" dependencies = [ - "const-oid", + "const-oid 0.9.6", "zeroize", ] @@ -2128,11 +2555,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", - "const-oid", - "crypto-common", + "const-oid 0.9.6", + "crypto-common 0.1.6", "subtle", ] +[[package]] +name = "digest" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" +dependencies = [ + "block-buffer 0.12.1", + "const-oid 0.10.2", + "crypto-common 0.2.2", +] + [[package]] name = "dir-diff" version = "0.3.3" @@ -2188,6 +2626,12 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + [[package]] name = "eager" version = "0.1.0" @@ -2272,12 +2716,12 @@ dependencies = [ [[package]] name = "ed25519-dalek-bip32" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d2be62a4061b872c8c0873ee4fc6f101ce7b889d039f019c5fa2af471a59908" +checksum = "6b49a684b133c4980d7ee783936af771516011c8cd15f429dbda77245e282f03" dependencies = [ "derivation-path", - "ed25519-dalek 1.0.1", + "ed25519-dalek 2.2.0", "hmac 0.12.1", "sha2 0.10.9", ] @@ -2288,12 +2732,24 @@ version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f0042ff8246a363dbe77d2ceedb073339e85a804b9a47636c6e016a9a32c05f" dependencies = [ - "enum-ordinalize", + "enum-ordinalize 3.1.15", "proc-macro2", "quote", "syn 1.0.109", ] +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize 4.4.1", + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "either" version = "1.15.0" @@ -2363,16 +2819,46 @@ dependencies = [ ] [[package]] -name = "env_logger" -version = "0.9.3" +name = "enum-ordinalize" +version = "4.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" +checksum = "07f808d588c10e464ea6f7d3eaed500049eff30aaac103460f61828c2d65b3eb" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e528e2d34ba8a67a1a650b86beae8ef69fc5fdb638016f386b973226590432" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "env_filter" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900d271a03799a1ee8d1ca9b19893b48ca674a9284fefcfb85f05e74ed314217" dependencies = [ - "atty", - "humantime", "log", "regex", - "termcolor", +] + +[[package]] +name = "env_logger" +version = "0.11.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de671bd27a75a797dc9ae289ba1e77276e75e2026408aab65185384e2d5cd3f6" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "jiff", + "log", ] [[package]] @@ -2391,12 +2877,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - [[package]] name = "event-listener" version = "5.4.1" @@ -2414,20 +2894,20 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" dependencies = [ - "event-listener 5.4.1", + "event-listener", "pin-project-lite", ] [[package]] name = "fastbloom" -version = "0.9.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27cea6e7f512d43b098939ff4d5a5d6fe3db07971e1d05176fe26c642d33f5b8" +checksum = "4e7f34442dbe69c60fe8eaf58a8cafff81a1f278816d8ab4db255b3bef4ac3c4" dependencies = [ "getrandom 0.3.3", - "rand 0.9.1", + "libm", + "rand 0.9.5", "siphasher 1.0.2", - "wide", ] [[package]] @@ -2470,6 +2950,7 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" dependencies = [ + "bitvec", "rand_core 0.6.4", "subtle", ] @@ -2493,27 +2974,27 @@ dependencies = [ [[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", ] [[package]] name = "five8_const" -version = "0.1.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26dec3da8bc3ef08f2c04f61eab298c3ab334523e55f076354d6d6f613799a7b" +checksum = "1a0f1728185f277989ca573a402716ae0beaaea3f76a8ff87ef9dd8fb19436c5" dependencies = [ "five8_core", ] [[package]] name = "five8_core" -version = "0.1.2" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2551bf44bc5f776c15044b9b94153a00198be06743e262afaaa61f11ac7523a5" +checksum = "059c31d7d36c43fe39d89e55711858b4da8be7eb6dabac23c7289b1a19489406" [[package]] name = "fixed-hash" @@ -2569,9 +3050,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "foldhash" -version = "0.1.5" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" [[package]] name = "foreign-types" @@ -2590,9 +3071,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -2738,10 +3219,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ "cfg-if", - "js-sys", "libc", "wasi 0.9.0+wasi-snapshot-preview1", - "wasm-bindgen", ] [[package]] @@ -2771,12 +3250,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - [[package]] name = "glob" version = "0.3.3" @@ -2810,7 +3283,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", + "rand 0.8.5", "rand_core 0.6.4", + "rand_xorshift 0.3.0", "subtle", ] @@ -2852,9 +3327,19 @@ name = "hashbrown" version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" +dependencies = [ + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" dependencies = [ "foldhash", "serde", + "serde_core", ] [[package]] @@ -2878,15 +3363,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - [[package]] name = "hermit-abi" version = "0.5.2" @@ -3004,6 +3480,15 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f" +[[package]] +name = "hybrid-array" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "818356c5132c1fede50f837ca96afbe78ff42413047f4abb886217845e1b6c8c" +dependencies = [ + "typenum", +] + [[package]] name = "hyper" version = "1.6.0" @@ -3032,10 +3517,10 @@ dependencies = [ "http 1.3.1", "hyper", "hyper-util", - "rustls 0.23.27", + "rustls", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.2", + "tokio-rustls", "tower-service", "webpki-roots 1.0.2", ] @@ -3058,7 +3543,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2", + "socket2 0.6.5", "tokio", "tower-service", "tracing", @@ -3300,7 +3785,7 @@ dependencies = [ name = "ibc-eureka-constrained-types" version = "0.1.0" dependencies = [ - "borsh 0.10.4", + "borsh", ] [[package]] @@ -3342,7 +3827,7 @@ dependencies = [ "access-manager", "anchor-lang", "bincode", - "borsh 0.10.4", + "borsh", "ed25519-dalek 2.2.0", "hex", "ibc-client-tendermint", @@ -3359,9 +3844,11 @@ dependencies = [ "serde_json", "sha2 0.10.9", "solana-allocator", + "solana-compute-budget-interface", "solana-ibc-borsh-header", "solana-ibc-constants", "solana-ibc-types", + "solana-instructions-sysvar", "solana-program-test", "solana-sdk", "solana-sdk-ids", @@ -3390,7 +3877,7 @@ dependencies = [ "ripemd", "serde", "sha2 0.10.9", - "sha3", + "sha3 0.10.8", ] [[package]] @@ -3416,8 +3903,10 @@ dependencies = [ "rstest", "solana-ibc-constants", "solana-ibc-types", + "solana-instructions-sysvar", "solana-program-test", "solana-sdk", + "solana-sdk-ids", "solana-sha256-hasher", "test-ibc-app", "tokio", @@ -3438,8 +3927,11 @@ dependencies = [ "solana-ibc-macros", "solana-ibc-proto", "solana-ibc-types", + "solana-instructions-sysvar", "solana-program-test", "solana-sdk", + "solana-sdk-ids", + "solana-system-interface 2.0.0", "test-gmp-app", "tokio", ] @@ -3538,9 +4030,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -3578,7 +4070,10 @@ dependencies = [ "solana-ibc-gmp-types", "solana-ibc-proto", "solana-ibc-types", + "solana-instructions-sysvar", "solana-sdk", + "solana-sdk-ids", + "solana-system-interface 2.0.0", ] [[package]] @@ -3649,25 +4144,26 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.9.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.15.3", + "hashbrown 0.17.1", "serde", + "serde_core", ] [[package]] name = "indicatif" -version = "0.17.11" +version = "0.18.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" +checksum = "9433806cd6b4ec1aba79c021c7e4c58fb4c3b9977c085062e611ac929998fb0c" dependencies = [ "console", - "number_prefix", "portable-atomic", "unicode-width", + "unit-prefix", "web-time", ] @@ -3702,13 +4198,14 @@ dependencies = [ "anchor-spl", "attestation", "bincode", - "borsh 0.10.4", + "borsh", "ics26-router", "ics27-gmp", "ift", "mock-ibc-app", "prost", "sha2 0.10.9", + "solana-compute-budget-interface", "solana-ibc-constants", "solana-ibc-gmp-types", "solana-ibc-proto", @@ -3716,6 +4213,8 @@ dependencies = [ "solana-keccak-hasher", "solana-program-test", "solana-sdk", + "solana-sdk-ids", + "solana-system-interface 2.0.0", "test-access-manager", "test-cpi-proxy", "test-gmp-app", @@ -3729,7 +4228,7 @@ version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdd7bddefd0a8833b88a4b68f90dae22c7450d11b354198baee3874fd811b344" dependencies = [ - "bitflags", + "bitflags 2.9.1", "cfg-if", "libc", ] @@ -3741,14 +4240,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] -name = "iri-string" -version = "0.7.8" +name = "is_terminal_polyfill" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" -dependencies = [ - "memchr", - "serde", -] +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" [[package]] name = "itertools" @@ -3768,6 +4263,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.14.0" @@ -3783,6 +4287,31 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +[[package]] +name = "jiff" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "961d16382652bfdd8c6f68b223b26a8c93e0d475c672f414411db31c6c5c900e" +dependencies = [ + "defmt", + "jiff-static", + "log", + "portable-atomic", + "portable-atomic-util", + "serde_core", +] + +[[package]] +name = "jiff-static" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0879bd39df99c4c5e2c6615ccc026391a423dde10532c573e6086eb94a802cc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "jni" version = "0.21.1" @@ -3852,25 +4381,26 @@ dependencies = [ "once_cell", "serdect", "sha2 0.10.9", + "signature 2.2.0", ] [[package]] -name = "kaigan" -version = "0.2.6" +name = "keccak" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ba15de5aeb137f0f65aa3bf82187647f1285abfe5b20c80c2c37f7007ad519a" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" dependencies = [ - "borsh 0.10.4", - "serde", + "cpufeatures 0.2.17", ] [[package]] name = "keccak" -version = "0.1.5" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +checksum = "9e24a010dd405bd7ed803e5253182815b41bf2e6a80cc3bfc066658e03a198aa" dependencies = [ - "cpufeatures", + "cfg-if", + "cpufeatures 0.3.0", ] [[package]] @@ -3883,6 +4413,12 @@ dependencies = [ "sha3-asm", ] +[[package]] +name = "keccak-const" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d8d8ce877200136358e0bbff3a77965875db3af755a11e1fa6b1b3e2df13ea" + [[package]] name = "lazy_static" version = "1.5.0" @@ -3891,9 +4427,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.172" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libm" @@ -3907,7 +4443,7 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" dependencies = [ - "bitflags", + "bitflags 2.9.1", "libc", "redox_syscall 0.7.0", ] @@ -3966,12 +4502,24 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c9a85a9752c549ceb7578064b4ed891179d20acd85f27318573b64d2d7ee7ee" dependencies = [ - "ark-bn254", + "ark-bn254 0.4.0", "ark-ff 0.4.2", "num-bigint 0.4.6", "thiserror 1.0.69", ] +[[package]] +name = "light-poseidon" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47a1ccadd0bb5a32c196da536fd72c59183de24a055f6bf0513bf845fefab862" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ff 0.5.0", + "num-bigint 0.4.6", + "thiserror 1.0.69", +] + [[package]] name = "linux-raw-sys" version = "0.11.0" @@ -3996,9 +4544,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.27" +version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" [[package]] name = "lru" @@ -4036,9 +4584,9 @@ dependencies = [ [[package]] name = "macro-string" -version = "0.1.4" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" +checksum = "59a9dbbfc75d2688ed057456ce8a3ee3f48d12eec09229f560f3643b9f275653" dependencies = [ "proc-macro2", "quote", @@ -4085,7 +4633,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" dependencies = [ "byteorder", - "keccak", + "keccak 0.1.5", "rand_core 0.6.4", "zeroize", ] @@ -4107,13 +4655,13 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.3" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +checksum = "30d65c71f1ce40ab09135ce117d742b9f8a19ff91a41a8b57ed50bc2de59c427" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -4163,9 +4711,9 @@ dependencies = [ [[package]] name = "modular-bitfield" -version = "0.11.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" +checksum = "2956e537fc68236d2aa048f55704f231cc93f1c4de42fe1ecb5bd7938061fc4a" dependencies = [ "modular-bitfield-impl", "static_assertions", @@ -4173,26 +4721,25 @@ dependencies = [ [[package]] name = "modular-bitfield-impl" -version = "0.11.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" +checksum = "59b43b4fd69e3437618106f7754f34021b831a514f9e1a98ae863cabcd8d8dad" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] name = "mollusk-svm" -version = "0.4.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe5e2f229c38a778c6e629f32ad2de2adb69df8dba07cbbf99b944aa330b1c4f" +checksum = "9506b7859ad9716fff8c5fcdb23abf9801793571e6106c29dd74a10374aa7d93" dependencies = [ "agave-feature-set", - "agave-precompiles", + "agave-syscalls", "bincode", "mollusk-svm-error", - "mollusk-svm-keys", "mollusk-svm-result", "solana-account", "solana-bpf-loader-program", @@ -4200,33 +4747,38 @@ dependencies = [ "solana-compute-budget", "solana-epoch-rewards", "solana-epoch-schedule", - "solana-hash", + "solana-hash 3.1.0", "solana-instruction", - "solana-loader-v3-interface 3.0.0", + "solana-instruction-error", + "solana-instructions-sysvar", + "solana-loader-v3-interface", "solana-loader-v4-interface", - "solana-log-collector", "solana-logger", + "solana-message", "solana-precompile-error", "solana-program-error", "solana-program-runtime", - "solana-pubkey", - "solana-rent", + "solana-pubkey 4.2.0", + "solana-rent 3.1.0", "solana-sdk-ids", "solana-slot-hashes", "solana-stake-interface", "solana-svm-callback", + "solana-svm-log-collector", + "solana-svm-timings", + "solana-svm-transaction", "solana-system-program", "solana-sysvar", "solana-sysvar-id", - "solana-timings", "solana-transaction-context", + "solana-transaction-error", ] [[package]] name = "mollusk-svm-bencher" -version = "0.4.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f119e7080b9dc952db811b94270f173d7f6a69f4730282c5e813d2f34d43ab05" +checksum = "96da3f1ee86b20c432821542d00da477e6cb6184372169a8107fc985a7dca1a7" dependencies = [ "chrono", "mollusk-svm", @@ -4234,54 +4786,45 @@ dependencies = [ "serde_json", "solana-account", "solana-instruction", - "solana-pubkey", + "solana-pubkey 4.2.0", ] [[package]] name = "mollusk-svm-error" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be2443a68c1f91e3ed4ac014b17a438cbcf976e636f0ad1e613c49873ee2e764" -dependencies = [ - "solana-pubkey", - "thiserror 1.0.69", -] - -[[package]] -name = "mollusk-svm-keys" -version = "0.4.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55f53f00fc28aa0561e04088fe90115fc2f348c3380adc9500de2a2b62b4d0ff" +checksum = "ff7c52dc834fc5962f54c7ffcb61a73b9f0ae0ab63b5e84043fa387b751254c2" dependencies = [ - "mollusk-svm-error", - "solana-account", - "solana-instruction", - "solana-pubkey", - "solana-transaction-context", + "solana-pubkey 4.2.0", + "thiserror 2.0.18", ] [[package]] name = "mollusk-svm-programs-token" -version = "0.4.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7b83ea06294d62f3db6cd783d6fcb3bb9c370dff3128b45eac2cb2145c60150" +checksum = "ba8a9b81a9d39a7ed52fc3c9ed5872b80659c7b9ff34e650f523780e71b13afa" dependencies = [ "mollusk-svm", "solana-account", - "solana-pubkey", + "solana-program-pack", + "solana-pubkey 4.2.0", + "solana-rent 3.1.0", + "spl-token-interface", ] [[package]] name = "mollusk-svm-result" -version = "0.4.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b25a23a80c4273f698c595fa10f969050effca7bb2ecee2df72c956f582b174a" +checksum = "92376062d0cad8a3b28f86e57b58c8949302aa6eaed518f584fdfc2f75d8face" dependencies = [ "solana-account", "solana-instruction", "solana-program-error", - "solana-pubkey", - "solana-rent", + "solana-pubkey 4.2.0", + "solana-rent 3.1.0", + "solana-transaction-error", ] [[package]] @@ -4296,7 +4839,7 @@ version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ - "bitflags", + "bitflags 2.9.1", "cfg-if", "cfg_aliases", "libc", @@ -4451,7 +4994,7 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" dependencies = [ - "hermit-abi 0.5.2", + "hermit-abi", "libc", ] @@ -4471,40 +5014,26 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" dependencies = [ - "proc-macro-crate 3.3.0", + "proc-macro-crate", "proc-macro2", "quote", "syn 2.0.117", ] -[[package]] -name = "number_prefix" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" - [[package]] name = "nybbles" -version = "0.3.4" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8983bb634df7248924ee0c4c3a749609b5abcb082c28fffe3254b3eb3602b307" +checksum = "0d49ff0c0d00d4a502b39df9af3a525e1efeb14b9dabb5bb83335284c1309210" dependencies = [ "alloy-rlp", - "const-hex", + "cfg-if", "proptest", + "ruint", "serde", "smallvec", ] -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - [[package]] name = "oid-registry" version = "0.6.1" @@ -4520,6 +5049,12 @@ version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +[[package]] +name = "once_cell_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" + [[package]] name = "opaque-debug" version = "0.3.1" @@ -4532,7 +5067,7 @@ version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags", + "bitflags 2.9.1", "cfg-if", "foreign-types", "libc", @@ -4599,6 +5134,15 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group", +] + [[package]] name = "parity-scale-codec" version = "3.7.5" @@ -4621,7 +5165,7 @@ 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.117", @@ -4662,6 +5206,12 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "pastey" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4" + [[package]] name = "pbkdf2" version = "0.11.0" @@ -4682,9 +5232,9 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "percentage" @@ -4712,7 +5262,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" dependencies = [ "fixedbitset", - "indexmap 2.9.0", + "indexmap 2.14.0", ] [[package]] @@ -4770,7 +5320,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "opaque-debug", "universal-hash", ] @@ -4781,6 +5331,15 @@ version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" +[[package]] +name = "portable-atomic-util" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" +dependencies = [ + "portable-atomic", +] + [[package]] name = "potential_utf" version = "0.1.2" @@ -4848,20 +5407,11 @@ 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.13+spec-1.1.0", ] [[package]] @@ -4888,9 +5438,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] @@ -4903,11 +5453,11 @@ checksum = "bee689443a2bd0a16ab0348b52ee43e3b2d1b1f931c8aa5c9f8de4c86fbe8c40" dependencies = [ "bit-set", "bit-vec", - "bitflags", + "bitflags 2.9.1", "num-traits", - "rand 0.9.1", + "rand 0.9.5", "rand_chacha 0.9.0", - "rand_xorshift", + "rand_xorshift 0.4.0", "regex-syntax", "rusty-fork", "tempfile", @@ -5017,9 +5567,9 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash", - "rustls 0.23.27", - "socket2", - "thiserror 2.0.12", + "rustls", + "socket2 0.5.10", + "thiserror 2.0.18", "tokio", "tracing", "web-time", @@ -5032,17 +5582,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" dependencies = [ "bytes", - "fastbloom", "getrandom 0.3.3", "lru-slab", - "rand 0.9.1", + "rand 0.9.5", "ring", "rustc-hash", - "rustls 0.23.27", + "rustls", "rustls-pki-types", - "rustls-platform-verifier", "slab", - "thiserror 2.0.12", + "thiserror 2.0.18", "tinyvec", "tracing", "web-time", @@ -5057,16 +5605,16 @@ dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2", + "socket2 0.5.10", "tracing", "windows-sys 0.59.0", ] [[package]] name = "quote" -version = "1.0.40" +version = "1.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368" dependencies = [ "proc-macro2", ] @@ -5110,9 +5658,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.1" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" +checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.3", @@ -5186,6 +5734,15 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + [[package]] name = "rand_xorshift" version = "0.4.0" @@ -5204,13 +5761,22 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "rapidhash" +version = "4.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5da7e78a036ce858e8d55b7e7dc8ba3a88b78350fd2155d3591bbd966b58589e" +dependencies = [ + "rustversion", +] + [[package]] name = "raw-cpuid" version = "11.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" dependencies = [ - "bitflags", + "bitflags 2.9.1", ] [[package]] @@ -5239,7 +5805,7 @@ version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" dependencies = [ - "bitflags", + "bitflags 2.9.1", ] [[package]] @@ -5248,14 +5814,34 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f3fe0889e69e2ae9e41f4d6c4c0181701d00e4697b356fb1f74173a5e0ee27" dependencies = [ - "bitflags", + "bitflags 2.9.1", +] + +[[package]] +name = "ref-cast" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", ] [[package]] name = "regex" -version = "1.11.1" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" dependencies = [ "aho-corasick", "memchr", @@ -5265,9 +5851,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "8fcfdb36bda0c880c5931cdc7a2bcdc8ba4556847b9d912bca70bc94708711ad" dependencies = [ "aho-corasick", "memchr", @@ -5276,9 +5862,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "relative-path" @@ -5288,11 +5874,10 @@ checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" [[package]] name = "reqwest" -version = "0.12.22" +version = "0.12.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" dependencies = [ - "async-compression", "base64 0.22.1", "bytes", "futures-channel", @@ -5309,15 +5894,14 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.27", + "rustls", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper", "tokio", - "tokio-rustls 0.26.2", - "tokio-util 0.7.15", + "tokio-rustls", "tower", "tower-http", "tower-service", @@ -5405,7 +5989,7 @@ checksum = "9c845311f0ff7951c5506121a9ad75aec44d083c31583b2ea5a30bcb0b0abba0" dependencies = [ "cfg-if", "glob", - "proc-macro-crate 3.3.0", + "proc-macro-crate", "proc-macro2", "quote", "regex", @@ -5417,13 +6001,14 @@ dependencies = [ [[package]] name = "ruint" -version = "1.14.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78a46eb779843b2c4f21fac5773e25d6d5b7c8f0922876c91541790d2ca27eef" +checksum = "a68df0380e5c9d20ce49534f292a36a7514ae21350726efe1865bdb1fa91d278" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", "ark-ff 0.4.2", + "ark-ff 0.5.0", "bytes", "fastrlp 0.3.1", "fastrlp 0.4.0", @@ -5434,10 +6019,10 @@ dependencies = [ "primitive-types", "proptest", "rand 0.8.5", - "rand 0.9.1", + "rand 0.9.5", "rlp", "ruint-macro", - "serde", + "serde_core", "valuable", "zeroize", ] @@ -5481,7 +6066,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.26", + "semver 1.0.28", ] [[package]] @@ -5499,7 +6084,7 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ - "bitflags", + "bitflags 2.9.1", "errno", "libc", "linux-raw-sys", @@ -5508,26 +6093,14 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.12" +version = "0.23.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring", - "rustls-webpki 0.101.7", - "sct", -] - -[[package]] -name = "rustls" -version = "0.23.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "730944ca083c1c233a75c09f199e973ca499344a2b7ba9e755c457e86fb4a321" +checksum = "3c54fcab019b409d04215d3a17cb438fd7fbf192ee61461f20f4fe18704bc138" dependencies = [ "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.103.3", + "rustls-webpki", "subtle", "zeroize", ] @@ -5556,23 +6129,23 @@ dependencies = [ [[package]] name = "rustls-platform-verifier" -version = "0.5.3" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19787cda76408ec5404443dc8b31795c87cd8fec49762dc75fa727740d34acc1" +checksum = "1d99feebc72bae7ab76ba994bb5e121b8d83d910ca40b36e0921f53becc41784" dependencies = [ "core-foundation", "core-foundation-sys", "jni", "log", "once_cell", - "rustls 0.23.27", + "rustls", "rustls-native-certs", "rustls-platform-verifier-android", - "rustls-webpki 0.103.3", + "rustls-webpki", "security-framework", "security-framework-sys", - "webpki-root-certs 0.26.11", - "windows-sys 0.59.0", + "webpki-root-certs", + "windows-sys 0.61.2", ] [[package]] @@ -5583,19 +6156,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "rustls-webpki" -version = "0.103.3" +version = "0.103.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" +checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" dependencies = [ "ring", "rustls-pki-types", @@ -5626,15 +6189,6 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" -[[package]] -name = "safe_arch" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" -dependencies = [ - "bytemuck", -] - [[package]] name = "same-file" version = "1.0.6" @@ -5654,21 +6208,35 @@ dependencies = [ ] [[package]] -name = "scopeguard" -version = "1.2.0" +name = "schemars" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] [[package]] -name = "sct" -version = "0.7.1" +name = "schemars" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" dependencies = [ - "ring", - "untrusted", + "dyn-clone", + "ref-cast", + "serde", + "serde_json", ] +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + [[package]] name = "sec1" version = "0.7.3" @@ -5692,10 +6260,21 @@ checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" dependencies = [ "bitcoin_hashes", "rand 0.8.5", - "secp256k1-sys", + "secp256k1-sys 0.10.1", "serde", ] +[[package]] +name = "secp256k1" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3c81b43dc2d8877c216a3fccf76677ee1ebccd429566d3e67447290d0c42b2" +dependencies = [ + "bitcoin_hashes", + "rand 0.9.5", + "secp256k1-sys 0.11.0", +] + [[package]] name = "secp256k1-sys" version = "0.10.1" @@ -5705,13 +6284,22 @@ dependencies = [ "cc", ] +[[package]] +name = "secp256k1-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb913707158fadaf0d8702c2db0e857de66eb003ccfdda5924b5f5ac98efb38" +dependencies = [ + "cc", +] + [[package]] name = "security-framework" version = "3.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" dependencies = [ - "bitflags", + "bitflags 2.9.1", "core-foundation", "core-foundation-sys", "libc", @@ -5739,9 +6327,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.26" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" [[package]] name = "semver-parser" @@ -5763,10 +6351,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", ] @@ -5788,11 +6377,20 @@ 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", @@ -5801,14 +6399,15 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" dependencies = [ "itoa", "memchr", - "ryu", "serde", + "serde_core", + "zmij", ] [[package]] @@ -5831,6 +6430,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" +dependencies = [ + "serde_core", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -5845,17 +6453,18 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.12.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" +checksum = "381b283ce7bc6b476d903296fb59d0d36633652b633b27f64db4fb46dcbfc3b9" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.9.0", - "serde", - "serde_derive", + "indexmap 2.14.0", + "schemars 0.9.0", + "schemars 1.2.1", + "serde_core", "serde_json", "serde_with_macros", "time", @@ -5863,11 +6472,11 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.12.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" +checksum = "a6d4e30573c8cb306ed6ab1dca8423eec9a463ea0e155f45399455e0368b27e0" dependencies = [ - "darling", + "darling 0.21.3", "proc-macro2", "quote", "syn 2.0.117", @@ -5890,7 +6499,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest 0.10.7", ] @@ -5902,7 +6511,7 @@ checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ "block-buffer 0.9.0", "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest 0.9.0", "opaque-debug", ] @@ -5914,10 +6523,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest 0.10.7", ] +[[package]] +name = "sha2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "digest 0.11.3", +] + +[[package]] +name = "sha2-const-stable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f179d4e11094a893b82fff208f74d448a7512f99f5a0acbd5c679b705f83ed9" + [[package]] name = "sha3" version = "0.10.8" @@ -5925,7 +6551,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ "digest 0.10.7", - "keccak", + "keccak 0.1.5", +] + +[[package]] +name = "sha3" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be176f1a57ce4e3d31c1a166222d9768de5954f811601fb7ca06fc8203905ce1" +dependencies = [ + "digest 0.11.3", + "keccak 0.2.0", ] [[package]] @@ -6012,18 +6648,15 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.9" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "smallvec" -version = "1.15.0" +version = "1.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" +checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" dependencies = [ "serde", ] @@ -6038,11 +6671,21 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "socket2" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + [[package]] name = "solana-account" -version = "2.2.1" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f949fe4edaeaea78c844023bfc1c898e0b1f5a100f8a8d2d0f85d0a7b090258" +checksum = "efc0ed36decb689413b9da5d57f2be49eea5bebb3cf7897015167b0c4336e731" dependencies = [ "bincode", "qualifier_attr", @@ -6051,59 +6694,98 @@ dependencies = [ "serde_derive", "solana-account-info", "solana-clock", + "solana-instruction-error", + "solana-pubkey 4.2.0", + "solana-sdk-ids", + "solana-sysvar", +] + +[[package]] +name = "solana-account-decoder" +version = "3.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57fcc1c9e2a2d82c9aa09e0d34940b6c5a43c2fd5eea38c7caed0f6b177e27a8" +dependencies = [ + "Inflector", + "base64 0.22.1", + "bincode", + "bs58", + "bv", + "serde", + "serde_json", + "solana-account", + "solana-account-decoder-client-types", + "solana-address-lookup-table-interface", + "solana-clock", + "solana-config-interface", + "solana-epoch-schedule", + "solana-fee-calculator", "solana-instruction", - "solana-pubkey", + "solana-loader-v3-interface", + "solana-nonce", + "solana-program-option", + "solana-program-pack", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", "solana-sdk-ids", + "solana-slot-hashes", + "solana-slot-history", + "solana-stake-interface", "solana-sysvar", + "solana-vote-interface", + "spl-generic-token", + "spl-token-2022-interface", + "spl-token-group-interface", + "spl-token-interface", + "spl-token-metadata-interface", + "thiserror 2.0.18", + "zstd", ] [[package]] name = "solana-account-decoder-client-types" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff354a599d3ee16e000f9a889f83b17aaaa1fb025b3554e1737bc361321917e8" +checksum = "43e62ffb8742a71d3e8b5263ba892cdc65b24b063fa5b5f414205350b031a730" dependencies = [ "base64 0.22.1", "bs58", "serde", - "serde_derive", "serde_json", "solana-account", - "solana-pubkey", + "solana-pubkey 3.0.0", "zstd", ] [[package]] name = "solana-account-info" -version = "2.3.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8f5152a288ef1912300fc6efa6c2d1f9bb55d9398eb6c72326360b8063987da" +checksum = "fc3397241392f5756925029acaa8515dc70fcbe3d8059d4885d7d6533baf64fd" dependencies = [ "bincode", - "serde", + "serde_core", + "solana-address 2.6.1", "solana-program-error", "solana-program-memory", - "solana-pubkey", ] [[package]] name = "solana-accounts-db" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4422210378374990af644ee2bc6ebead12ca11dfe62057983f7aadc3337733d" +checksum = "9b4440c9ef4a236679a2ce959942aa2484820a87cfeebba9507f0e37fd53d922" dependencies = [ - "agave-io-uring", + "agave-fs", "ahash 0.8.12", "bincode", "blake3", "bv", "bytemuck", "bytemuck_derive", - "bzip2", "crossbeam-channel", "dashmap", - "indexmap 2.9.0", - "io-uring", + "indexmap 2.14.0", "itertools 0.12.1", "log", "lz4", @@ -6115,8 +6797,6 @@ dependencies = [ "rayon", "seqlock", "serde", - "serde_derive", - "slab", "smallvec", "solana-account", "solana-address-lookup-table-interface", @@ -6125,20 +6805,19 @@ dependencies = [ "solana-epoch-schedule", "solana-fee-calculator", "solana-genesis-config", - "solana-hash", + "solana-hash 3.1.0", "solana-lattice-hash", "solana-measure", "solana-message", "solana-metrics", "solana-nohash-hasher", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-rayon-threadlimit", - "solana-rent-collector", "solana-reward-info", "solana-sha256-hasher", "solana-slot-hashes", "solana-svm-transaction", - "solana-system-interface", + "solana-system-interface 2.0.0", "solana-sysvar", "solana-time-utils", "solana-transaction", @@ -6146,24 +6825,58 @@ dependencies = [ "solana-transaction-error", "spl-generic-token", "static_assertions", - "tar", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] -name = "solana-address-lookup-table-interface" -version = "2.2.2" +name = "solana-address" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1673f67efe870b64a65cb39e6194be5b26527691ce5922909939961a6e6b395" +checksum = "a2ecac8e1b7f74c2baa9e774c42817e3e75b20787134b76cc4d45e8a604488f5" dependencies = [ - "bincode", - "bytemuck", + "solana-address 2.6.1", +] + +[[package]] +name = "solana-address" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c93e262f671bf402e1040e4a7e40b05d81da5956c7681948c975a0997517bb" +dependencies = [ + "borsh", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek 4.1.3", + "five8", + "five8_const", + "rand 0.9.5", + "serde", + "serde_derive", + "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-address-lookup-table-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115b4f773acc4f3f3cb986b0d335e9845c0368c82b0940410935bc11ae065578" +dependencies = [ + "bincode", + "bytemuck", "serde", "serde_derive", "solana-clock", "solana-instruction", - "solana-pubkey", + "solana-instruction-error", + "solana-pubkey 4.2.0", "solana-sdk-ids", "solana-slot-hashes", ] @@ -6179,55 +6892,54 @@ dependencies = [ [[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-banks-client" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2e7c321fe0f533e05a416bb30992377f445ae8babf0721374c8fdbcc5f90ca5" +checksum = "580412201a93474b4f6fb81397f437872587675cd89a7641593ff0bf474f2cd2" dependencies = [ - "borsh 1.5.7", + "borsh", "futures", "solana-account", "solana-banks-interface", "solana-clock", "solana-commitment-config", - "solana-hash", + "solana-hash 3.1.0", "solana-message", "solana-program-pack", - "solana-pubkey", - "solana-rent", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", "solana-signature", "solana-sysvar", "solana-transaction", "solana-transaction-context", "solana-transaction-error", "tarpc", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tokio-serde", ] [[package]] name = "solana-banks-interface" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f51b473d2f123f6d0d40c84b20941a2175765f91c4a25b7ab39b3c36fcb86290" +checksum = "d52bbb162580cdfa9cb1c1bbcdf56701b194369de5dc30d52fa0ccef00223b63" dependencies = [ "serde", - "serde_derive", "solana-account", "solana-clock", "solana-commitment-config", - "solana-hash", + "solana-hash 3.1.0", "solana-message", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-signature", "solana-transaction", "solana-transaction-context", @@ -6237,9 +6949,9 @@ dependencies = [ [[package]] name = "solana-banks-server" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a264c8a1511c7d42ac2f3d43973d844adced56f4421bbffcfdca3a74df80542" +checksum = "5b411175ea4aba3dc51da75e5dd0213a2d057f7a79e6747b9ace2b1aed3e707c" dependencies = [ "agave-feature-set", "bincode", @@ -6250,9 +6962,9 @@ dependencies = [ "solana-client", "solana-clock", "solana-commitment-config", - "solana-hash", + "solana-hash 3.1.0", "solana-message", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-runtime", "solana-runtime-transaction", "solana-send-transaction-service", @@ -6267,115 +6979,119 @@ dependencies = [ [[package]] name = "solana-big-mod-exp" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75db7f2bbac3e62cfd139065d15bcda9e2428883ba61fc8d27ccb251081e7567" +checksum = "30c80fb6d791b3925d5ec4bf23a7c169ef5090c013059ec3ed7d0b2c04efa085" dependencies = [ "num-bigint 0.4.6", "num-traits", - "solana-define-syscall", + "solana-define-syscall 3.0.0", ] [[package]] name = "solana-bincode" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19a3787b8cf9c9fe3dd360800e8b70982b9e5a8af9e11c354b6665dd4a003adc" +checksum = "278a1a5bad62cd9da89ac8d4b7ec444e83caa8ae96aa656dfc27684b28d49a5d" dependencies = [ "bincode", - "serde", - "solana-instruction", + "serde_core", + "solana-instruction-error", ] [[package]] name = "solana-blake3-hasher" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a0801e25a1b31a14494fc80882a036be0ffd290efc4c2d640bfcca120a4672" +checksum = "7116e1d942a2432ca3f514625104757ab8a56233787e95144c93950029e31176" dependencies = [ "blake3", - "solana-define-syscall", - "solana-hash", - "solana-sanitize", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-bls-signatures" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c75573697bbb148afa8209aa3ce228ca0754584c9a8a91e818db0f706ae4fb" +dependencies = [ + "base64 0.22.1", + "blst", + "blstrs", + "bytemuck", + "cfg_eval", + "ff", + "group", + "pairing", + "rand 0.8.5", + "serde", + "serde_json", + "serde_with", + "solana-signature", + "solana-signer", + "subtle", + "thiserror 2.0.18", ] [[package]] name = "solana-bn254" -version = "2.2.2" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4420f125118732833f36facf96a27e7b78314b2d642ba07fa9ffdacd8d79e243" +checksum = "62ff13a8867fcc7b0f1114764e1bf6191b4551dcaf93729ddc676cd4ec6abc9f" dependencies = [ - "ark-bn254", - "ark-ec", - "ark-ff 0.4.2", - "ark-serialize 0.4.2", + "ark-bn254 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", "bytemuck", - "solana-define-syscall", - "thiserror 2.0.12", + "solana-define-syscall 5.1.0", + "thiserror 2.0.18", ] [[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-bpf-loader-program" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373ff685f621a27dd459c7276c964c22ee928643ab611d270ed96c2e75a73d50" +checksum = "36128e7525889b05f13a4dbfb86f1ff3aef2063ab63b899591d348226e20def8" dependencies = [ + "agave-syscalls", "bincode", - "libsecp256k1", - "num-traits", "qualifier_attr", - "scopeguard", "solana-account", - "solana-account-info", - "solana-big-mod-exp", "solana-bincode", - "solana-blake3-hasher", - "solana-bn254", "solana-clock", - "solana-cpi", - "solana-curve25519", - "solana-hash", "solana-instruction", - "solana-keccak-hasher", - "solana-loader-v3-interface 5.0.0", + "solana-loader-v3-interface", "solana-loader-v4-interface", - "solana-log-collector", - "solana-measure", "solana-packet", - "solana-poseidon", "solana-program-entrypoint", "solana-program-runtime", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sbpf", "solana-sdk-ids", - "solana-secp256k1-recover", - "solana-sha256-hasher", - "solana-stable-layout", "solana-svm-feature-set", - "solana-system-interface", - "solana-sysvar", - "solana-sysvar-id", - "solana-timings", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-type-overrides", + "solana-system-interface 2.0.0", "solana-transaction-context", - "solana-type-overrides", - "thiserror 2.0.12", ] [[package]] name = "solana-bucket-map" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cb42f8f367f104638b32d7e5df5a21f10f8622b54dd911b9d4367250ff4053c" +checksum = "2a7cec41cfc4bf0db14ae82c0705e2d00034b5021268a07ef120f3870587c5bb" dependencies = [ "bv", "bytemuck", @@ -6386,25 +7102,24 @@ dependencies = [ "rand 0.8.5", "solana-clock", "solana-measure", - "solana-pubkey", + "solana-pubkey 3.0.0", "tempfile", ] [[package]] name = "solana-builtins" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad4c2ac52da585bf52d1154c7010ca2c059b0bc5534bdad7ee8d61b4a48351df" +checksum = "784cd398c18e3d565d08382d1f83c94d4603647169239f37b32ba25439873b07" dependencies = [ "agave-feature-set", "solana-bpf-loader-program", "solana-compute-budget-program", - "solana-hash", + "solana-hash 3.1.0", "solana-loader-v4-program", "solana-program-runtime", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", - "solana-stake-program", "solana-system-program", "solana-vote-program", "solana-zk-elgamal-proof-program", @@ -6413,9 +7128,9 @@ dependencies = [ [[package]] name = "solana-builtins-default-costs" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f89f78dcf75c26207790b9038d896cf92bde352371c858da2ad8faa5b08cf26f" +checksum = "98f0361a1c69c869ed9c03cd7fbbacbda5e51b80d41aab5e3b2b2a21f2bca5d9" dependencies = [ "agave-feature-set", "ahash 0.8.12", @@ -6423,40 +7138,40 @@ dependencies = [ "solana-bpf-loader-program", "solana-compute-budget-program", "solana-loader-v4-program", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", - "solana-stake-program", "solana-system-program", "solana-vote-program", ] [[package]] name = "solana-client" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f790d575783721b747d08fa4fa0f248bec6bcb4ffc609c32d4a69803a9147b" +checksum = "56cdbbecbda755254a0c11010472a53036ff6fccdf5d7e908b92c95f04ff2497" dependencies = [ + "anza-quinn", "async-trait", "bincode", "dashmap", "futures", "futures-util", - "indexmap 2.9.0", + "indexmap 2.14.0", "indicatif", "log", - "quinn", "rayon", "solana-account", "solana-client-traits", "solana-commitment-config", "solana-connection-cache", "solana-epoch-info", - "solana-hash", + "solana-hash 3.1.0", "solana-instruction", "solana-keypair", "solana-measure", "solana-message", - "solana-pubkey", + "solana-net-utils", + "solana-pubkey 3.0.0", "solana-pubsub-client", "solana-quic-client", "solana-quic-definitions", @@ -6466,45 +7181,47 @@ dependencies = [ "solana-signature", "solana-signer", "solana-streamer", - "solana-thin-client", "solana-time-utils", "solana-tpu-client", "solana-transaction", "solana-transaction-error", + "solana-transaction-status-client-types", "solana-udp-client", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", + "tokio-util 0.7.18", ] [[package]] name = "solana-client-traits" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83f0071874e629f29e0eb3dab8a863e98502ac7aba55b7e0df1803fc5cac72a7" +checksum = "08618ed587e128105510c54ae3e456b9a06d674d8640db75afe66dad65cb4e02" dependencies = [ "solana-account", "solana-commitment-config", "solana-epoch-info", - "solana-hash", + "solana-hash 3.1.0", "solana-instruction", "solana-keypair", "solana-message", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-signature", "solana-signer", - "solana-system-interface", + "solana-system-interface 2.0.0", "solana-transaction", "solana-transaction-error", ] [[package]] name = "solana-clock" -version = "2.2.2" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb482ab70fced82ad3d7d3d87be33d466a3498eb8aa856434ff3c0dfc2e2e31" +checksum = "f0acdace90d96e2c9e70d681465b4fe888b6bcf27c354ae9774e9f8a3b72923d" dependencies = [ "serde", "serde_derive", + "solana-get-sysvar", "solana-sdk-ids", "solana-sdk-macro", "solana-sysvar-id", @@ -6512,20 +7229,20 @@ dependencies = [ [[package]] name = "solana-cluster-type" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ace9fea2daa28354d107ea879cff107181d85cd4e0f78a2bedb10e1a428c97e" +checksum = "3a494cf8eda7d98d9f0144b288bb409c88308d2e86f15cc1045aa77b83304718" dependencies = [ "serde", "serde_derive", - "solana-hash", + "solana-hash 4.5.0", ] [[package]] name = "solana-commitment-config" -version = "2.2.1" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac49c4dde3edfa832de1697e9bcdb7c3b3f7cb7a1981b7c62526c8bb6700fb73" +checksum = "1517aa49dcfa9cb793ef90e7aac81346d62ca4a546bb1a754030a033e3972e1c" dependencies = [ "serde", "serde_derive", @@ -6533,9 +7250,9 @@ dependencies = [ [[package]] name = "solana-compute-budget" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "337eeedb2a04af26c830dc7c8dd882b73e6fdb651f92b48c6f833f97765a6d25" +checksum = "c346408840a596e128b1b5214fd72a2c1cf8484cc96965e10333f6a18fcb897b" dependencies = [ "solana-fee-structure", "solana-program-runtime", @@ -6543,9 +7260,9 @@ dependencies = [ [[package]] name = "solana-compute-budget-instruction" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4309fbcfeb223e8029b7f6cf57bb6faa297fb1602abe7a9c0abaa0f4f3340f5d" +checksum = "e5247f6c5a646681ed98f8f92b01d18ae75a22311ee00415ed2970d60dfcd610" dependencies = [ "agave-feature-set", "log", @@ -6555,59 +7272,61 @@ dependencies = [ "solana-compute-budget-interface", "solana-instruction", "solana-packet", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", "solana-svm-transaction", "solana-transaction-error", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "solana-compute-budget-interface" -version = "2.2.2" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8432d2c4c22d0499aa06d62e4f7e333f81777b3d7c96050ae9e5cb71a8c3aee4" +checksum = "8292c436b269ad23cecc8b24f7da3ab07ca111661e25e00ce0e1d22771951ab9" dependencies = [ - "borsh 1.5.7", - "serde", - "serde_derive", + "borsh", "solana-instruction", "solana-sdk-ids", ] [[package]] name = "solana-compute-budget-program" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "462aad593c7dcbc6300c261dac85471d8fa633b43bfd4af8b26f5c13aacdba82" +checksum = "bb474148341578c7aebd3a6d42e2f5b3be0c49ed28eb325460966d63073c9498" dependencies = [ "solana-program-runtime", ] [[package]] -name = "solana-config-program-client" -version = "0.0.2" +name = "solana-config-interface" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53aceac36f105fd4922e29b4f0c1f785b69d7b3e7e387e384b8985c8e0c3595e" +checksum = "63e401ae56aed512821cc7a0adaa412ff97fecd2dff4602be7b1330d2daec0c4" dependencies = [ "bincode", - "borsh 0.10.4", - "kaigan", "serde", - "solana-program", + "serde_derive", + "solana-account", + "solana-instruction", + "solana-pubkey 3.0.0", + "solana-sdk-ids", + "solana-short-vec", + "solana-system-interface 2.0.0", ] [[package]] name = "solana-connection-cache" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0eb18d35478418354075b86a677fec246b7b78e45241c9286b788db4592d54a" +checksum = "efbacf3640794251ba0efa0bc13fbbaeac90f0e02c15dd723da1b7fec058f3b2" dependencies = [ "async-trait", "bincode", "crossbeam-channel", "futures-util", - "indexmap 2.9.0", + "indexmap 2.14.0", "log", "rand 0.8.5", "rayon", @@ -6616,15 +7335,15 @@ dependencies = [ "solana-metrics", "solana-time-utils", "solana-transaction-error", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", ] [[package]] name = "solana-cost-model" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fe6835735ae1cd6d6f4f4b1f9567032d723bd3e04994df00f0745ad671d5118" +checksum = "39e905e7a64c5b784e7b916d96ebc244f415cd535858b44d5e414b54a3fc198e" dependencies = [ "agave-feature-set", "ahash 0.8.12", @@ -6639,26 +7358,26 @@ dependencies = [ "solana-fee-structure", "solana-metrics", "solana-packet", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-runtime-transaction", "solana-sdk-ids", "solana-svm-transaction", - "solana-system-interface", + "solana-system-interface 2.0.0", "solana-transaction-error", "solana-vote-program", ] [[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", ] @@ -6671,18 +7390,23 @@ dependencies = [ "bytemuck", "bytemuck_derive", "curve25519-dalek 4.1.3", - "solana-define-syscall", + "solana-define-syscall 2.3.0", "subtle", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] -name = "solana-decode-error" -version = "2.3.0" +name = "solana-curve25519" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c781686a18db2f942e70913f7ca15dc120ec38dcab42ff7557db2c70c625a35" +checksum = "f3d7e1177e6006823b91e0a930d94992ed74f8a6327d54ee50a9457ff72e625a" dependencies = [ - "num-traits", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek 4.1.3", + "solana-define-syscall 3.0.0", + "subtle", + "thiserror 2.0.18", ] [[package]] @@ -6691,11 +7415,29 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2ae3e2abcf541c8122eafe9a625d4d194b4023c20adde1e251f94e056bb1aee2" +[[package]] +name = "solana-define-syscall" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9697086a4e102d28a156b8d6b521730335d6951bd39a5e766512bbe09007cee" + +[[package]] +name = "solana-define-syscall" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57e5b1c0bc1d4a4d10c88a4100499d954c09d3fecfae4912c1a074dff68b1738" + +[[package]] +name = "solana-define-syscall" +version = "5.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", @@ -6704,24 +7446,21 @@ dependencies = [ [[package]] name = "solana-ed25519-program" -version = "2.2.3" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1feafa1691ea3ae588f99056f4bdd1293212c7ece28243d7da257c443e84753" +checksum = "e1419197f1c06abf760043f6d64ba9d79a03ad5a43f18c7586471937122094da" dependencies = [ "bytemuck", "bytemuck_derive", - "ed25519-dalek 1.0.1", - "solana-feature-set", "solana-instruction", - "solana-precompile-error", "solana-sdk-ids", ] [[package]] name = "solana-epoch-info" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ef6f0b449290b0b9f32973eefd95af35b01c5c0c34c569f936c34c5b20d77b" +checksum = "e093c84f6ece620a6b10cd036574b0cd51944231ab32d81f80f76d54aba833e6" dependencies = [ "serde", "serde_derive", @@ -6729,13 +7468,14 @@ dependencies = [ [[package]] name = "solana-epoch-rewards" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b575d3dd323b9ea10bb6fe89bf6bf93e249b215ba8ed7f68f1a3633f384db7" +checksum = "daf7eb4986b0b1d6f562b21f75a836f1a6df6e00c275efcef50aab5c144dc59e" dependencies = [ "serde", "serde_derive", - "solana-hash", + "solana-get-sysvar", + "solana-hash 4.5.0", "solana-sdk-ids", "solana-sdk-macro", "solana-sysvar-id", @@ -6743,54 +7483,66 @@ dependencies = [ [[package]] name = "solana-epoch-rewards-hasher" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c5fd2662ae7574810904585fd443545ed2b568dbd304b25a31e79ccc76e81b" +checksum = "1ee8beac9bff4db9225e57d532d169b0be5e447f1e6601a2f50f27a01bf5518f" dependencies = [ "siphasher 0.3.11", - "solana-hash", - "solana-pubkey", + "solana-address 2.6.1", + "solana-hash 4.5.0", ] [[package]] name = "solana-epoch-schedule" -version = "2.2.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fce071fbddecc55d727b1d7ed16a629afe4f6e4c217bc8d00af3b785f6f67ed" +checksum = "8116e6ffa6002237d5ab5edcbda17f9ba66b6742c45a89c9fb40a94dbacd4c1d" dependencies = [ "serde", "serde_derive", + "solana-get-sysvar", + "solana-program-error", "solana-sdk-ids", "solana-sdk-macro", "solana-sysvar-id", ] +[[package]] +name = "solana-epoch-stake" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "027e6d0b9e7daac5b2ac7c3f9ca1b727861121d9ef05084cf435ff736051e7c2" +dependencies = [ + "solana-define-syscall 5.1.0", + "solana-pubkey 4.2.0", +] + [[package]] name = "solana-example-mocks" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84461d56cbb8bb8d539347151e0525b53910102e4bced875d49d5139708e39d3" +checksum = "978855d164845c1b0235d4b4d101cadc55373fffaf0b5b6cfa2194d25b2ed658" dependencies = [ "serde", "serde_derive", "solana-address-lookup-table-interface", "solana-clock", - "solana-hash", + "solana-hash 3.1.0", "solana-instruction", "solana-keccak-hasher", "solana-message", "solana-nonce", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", - "solana-system-interface", - "thiserror 2.0.12", + "solana-system-interface 2.0.0", + "thiserror 2.0.18", ] [[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", @@ -6799,31 +7551,17 @@ dependencies = [ "solana-account-info", "solana-instruction", "solana-program-error", - "solana-pubkey", - "solana-rent", + "solana-pubkey 4.2.0", + "solana-rent 4.3.0", "solana-sdk-ids", - "solana-system-interface", -] - -[[package]] -name = "solana-feature-set" -version = "2.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93b93971e289d6425f88e6e3cb6668c4b05df78b3c518c249be55ced8efd6b6d" -dependencies = [ - "ahash 0.8.12", - "lazy_static", - "solana-epoch-schedule", - "solana-hash", - "solana-pubkey", - "solana-sha256-hasher", + "solana-system-interface 3.2.0", ] [[package]] name = "solana-fee" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5944331185243c219a0e2d8836e88108da9c83d8dff2c4d0e5705197958d7d6" +checksum = "56a1e5ee3af013f0851107fbf873c4949aeb7bfaeaea5444fa7ed0adb209696f" dependencies = [ "agave-feature-set", "solana-fee-structure", @@ -6832,9 +7570,9 @@ dependencies = [ [[package]] name = "solana-fee-calculator" -version = "2.2.1" +version = "3.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89bc408da0fb3812bc3008189d148b4d3e08252c79ad810b245482a3f70cd8d" +checksum = "ef67f01cc6a0c72e99a08d0d484683f995de4c80e9568728fa77d1537f9b7e09" dependencies = [ "log", "serde", @@ -6843,21 +7581,19 @@ dependencies = [ [[package]] name = "solana-fee-structure" -version = "2.3.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33adf673581c38e810bf618f745bf31b683a0a4a4377682e6aaac5d9a058dd4e" +checksum = "5e2abdb1223eea8ec64136f39cb1ffcf257e00f915c957c35c0dd9e3f4e700b0" dependencies = [ "serde", "serde_derive", - "solana-message", - "solana-native-token", ] [[package]] name = "solana-genesis-config" -version = "2.3.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3725085d47b96d37fef07a29d78d2787fc89a0b9004c66eed7753d1e554989f" +checksum = "749eccc960e85c9b33608450093d256006253e1cb436b8380e71777840a3f675" dependencies = [ "bincode", "chrono", @@ -6869,13 +7605,12 @@ dependencies = [ "solana-cluster-type", "solana-epoch-schedule", "solana-fee-calculator", - "solana-hash", + "solana-hash 3.1.0", "solana-inflation", "solana-keypair", - "solana-logger", "solana-poh-config", - "solana-pubkey", - "solana-rent", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", "solana-sdk-ids", "solana-sha256-hasher", "solana-shred-version", @@ -6883,11 +7618,22 @@ dependencies = [ "solana-time-utils", ] +[[package]] +name = "solana-get-sysvar" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef3bc859fc036ed490146793557386cbfae614ebba4adc704c37d94350824ed4" +dependencies = [ + "solana-address 2.6.1", + "solana-define-syscall 5.1.0", + "solana-program-error", +] + [[package]] name = "solana-hard-forks" -version = "2.2.1" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c28371f878e2ead55611d8ba1b5fb879847156d04edea13693700ad1a28baf" +checksum = "45406eccad36220e52988b024d8daa93e691e38d5d71ad5fec55410cc9cf427d" dependencies = [ "serde", "serde_derive", @@ -6895,27 +7641,33 @@ dependencies = [ [[package]] name = "solana-hash" -version = "2.3.0" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "337c246447142f660f778cf6cb582beba8e28deb05b3b24bfb9ffd7c562e5f41" +dependencies = [ + "solana-hash 4.5.0", +] + +[[package]] +name = "solana-hash" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b96e9f0300fa287b545613f007dfe20043d7812bee255f418c1eb649c93b63" +checksum = "6f4c847893a2ea50b4ae3ca723b124e07cd0544fecea3598f785168f9b78333f" dependencies = [ - "borsh 1.5.7", "bytemuck", "bytemuck_derive", "five8", - "js-sys", "serde", "serde_derive", "solana-atomic-u64", "solana-sanitize", - "wasm-bindgen", ] [[package]] name = "solana-ibc-borsh-header" version = "0.1.0" dependencies = [ - "borsh 0.10.4", + "borsh", "ibc-client-tendermint", "ibc-core-client-types", "tendermint", @@ -6930,7 +7682,7 @@ name = "solana-ibc-gmp-types" version = "0.1.0" dependencies = [ "anchor-lang", - "borsh 0.10.4", + "borsh", "solana-ibc-proto", "solana-sdk", "solana-sha256-hasher", @@ -6956,7 +7708,7 @@ dependencies = [ "ibc-proto", "prost", "prost-build", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -6964,7 +7716,9 @@ name = "solana-ibc-sdk" version = "0.1.0" dependencies = [ "anchor-lang", + "borsh", "solana-ibc-sdk-codegen", + "solana-instructions-sysvar", ] [[package]] @@ -6982,21 +7736,23 @@ version = "0.1.0" dependencies = [ "anchor-lang", "bincode", - "borsh 0.10.4", + "borsh", "solana-ibc-constants", "solana-ibc-gmp-types", "solana-ibc-macros", "solana-ibc-proto", + "solana-instructions-sysvar", "solana-keccak-hasher", "solana-sdk", + "solana-sdk-ids", "solana-sha256-hasher", ] [[package]] name = "solana-inflation" -version = "2.2.1" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23eef6a09eb8e568ce6839573e4966850e85e9ce71e6ae1a6c930c1c43947de3" +checksum = "ccf104167e42e747602b88e02b25cacfc5de699c3b7cbba60d3250437e6a22ed" dependencies = [ "serde", "serde_derive", @@ -7004,33 +7760,41 @@ dependencies = [ [[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", + "serde", + "serde_derive", + "solana-define-syscall 5.1.0", + "solana-instruction-error", + "solana-pubkey 4.2.0", +] + +[[package]] +name = "solana-instruction-error" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b7d34343838343a3755b7dfb1e438d94c6db2263b519cfe3c2257af932b6e93" +dependencies = [ "num-traits", "serde", "serde_derive", - "solana-define-syscall", - "solana-pubkey", - "wasm-bindgen", + "solana-program-error", ] [[package]] name = "solana-instructions-sysvar" -version = "2.2.2" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0e85a6fad5c2d0c4f5b91d34b8ca47118fc593af706e523cdbedf846a954f57" +checksum = "9e0732294560e88ecdb2bbc656e67383e9f88c78ec09469cef172f0d28cd1bcd" dependencies = [ - "bitflags", + "bitflags 2.9.1", "solana-account-info", "solana-instruction", + "solana-instruction-error", "solana-program-error", - "solana-pubkey", "solana-sanitize", "solana-sdk-ids", "solana-serialize-utils", @@ -7039,12 +7803,12 @@ dependencies = [ [[package]] name = "solana-invoke" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58f5693c6de226b3626658377168b0184e94e8292ff16e3d31d4766e65627565" +checksum = "4065031f5c7dd29ef5f5003c1a353011eeabbafa6c5a5033da0cedbfca824b94" dependencies = [ "solana-account-info", - "solana-define-syscall", + "solana-define-syscall 3.0.0", "solana-instruction", "solana-program-entrypoint", "solana-stable-layout", @@ -7052,43 +7816,43 @@ dependencies = [ [[package]] name = "solana-keccak-hasher" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7aeb957fbd42a451b99235df4942d96db7ef678e8d5061ef34c9b34cae12f79" +checksum = "ed1c0d16d6fdeba12291a1f068cdf0d479d9bff1141bf44afd7aa9d485f65ef8" dependencies = [ - "sha3", - "solana-define-syscall", - "solana-hash", - "solana-sanitize", + "sha3 0.10.8", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", ] [[package]] name = "solana-keypair" -version = "2.2.3" +version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd3f04aa1a05c535e93e121a95f66e7dcccf57e007282e8255535d24bf1e98bb" +checksum = "263d614c12aa267a3278703175fd6440552ca61bc960b5a02a4482720c53438b" dependencies = [ - "ed25519-dalek 1.0.1", + "ed25519-dalek 2.2.0", "ed25519-dalek-bip32", "five8", - "rand 0.7.3", + "five8_core", + "rand 0.9.5", + "solana-address 2.6.1", "solana-derivation-path", - "solana-pubkey", "solana-seed-derivable", "solana-seed-phrase", "solana-signature", "solana-signer", - "wasm-bindgen", ] [[package]] name = "solana-last-restart-slot" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a6360ac2fdc72e7463565cd256eedcf10d7ef0c28a1249d261ec168c1b55cdd" +checksum = "c22474b83d3c7c318e1c3a725784fc2d1d03b728e36369e58ce48769a61ed85e" dependencies = [ "serde", "serde_derive", + "solana-get-sysvar", "solana-sdk-ids", "solana-sdk-macro", "solana-sysvar-id", @@ -7096,9 +7860,9 @@ dependencies = [ [[package]] name = "solana-lattice-hash" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ad2606f88688a8d706fe9ec2ee44d747646b492421dc1dd8912acc972556577" +checksum = "4a723b440d3aaa896a5dd137b35b966cfd61ef64529636bb1125f3f2bc2d6b8a" dependencies = [ "base64 0.22.1", "blake3", @@ -7106,104 +7870,65 @@ dependencies = [ "bytemuck", ] -[[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 = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4be76cfa9afd84ca2f35ebc09f0da0f0092935ccdac0595d98447f259538c2" -dependencies = [ - "serde", - "serde_bytes", - "serde_derive", - "solana-instruction", - "solana-pubkey", - "solana-sdk-ids", - "solana-system-interface", -] - [[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-pubkey 4.2.0", "solana-sdk-ids", - "solana-system-interface", + "solana-system-interface 3.2.0", ] [[package]] name = "solana-loader-v4-interface" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "706a777242f1f39a83e2a96a2a6cb034cb41169c6ecbee2cf09cb873d9659e7e" +checksum = "e4c948b33ff81fa89699911b207059e493defdba9647eaf18f23abdf3674e0fb" dependencies = [ "serde", "serde_bytes", "serde_derive", "solana-instruction", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", - "solana-system-interface", + "solana-system-interface 2.0.0", ] [[package]] name = "solana-loader-v4-program" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e18c0a649f485adc941a9fc1db0f2fd124eebe47caeee34af26b3c9f2d4a1d61" +checksum = "3f21fc8ee1d0f22ff002542f352eb5c38128dfc2dbc700be1db23251ecc3e78c" dependencies = [ "log", - "qualifier_attr", "solana-account", "solana-bincode", "solana-bpf-loader-program", "solana-instruction", - "solana-loader-v3-interface 5.0.0", + "solana-loader-v3-interface", "solana-loader-v4-interface", - "solana-log-collector", - "solana-measure", "solana-packet", "solana-program-runtime", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sbpf", "solana-sdk-ids", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-type-overrides", "solana-transaction-context", - "solana-type-overrides", -] - -[[package]] -name = "solana-log-collector" -version = "2.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a738db27e60af100f4adf3b57f703038da37f0e4935316e1069e59e38b1acf8" -dependencies = [ - "log", ] [[package]] name = "solana-logger" -version = "2.3.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db8e777ec1afd733939b532a42492d888ec7c88d8b4127a5d867eb45c6eb5cd5" +checksum = "ef7421d1092680d72065edbf5c7605856719b021bf5f173656c71febcdd5d003" dependencies = [ "env_logger", "lazy_static", @@ -7214,38 +7939,35 @@ dependencies = [ [[package]] name = "solana-measure" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e346ee610693e1eb7d34d7b6340ad2995d0623005060afc20af775974e4ce49" +checksum = "1ee6df5d71fbc041b3badfd014753b76c643f5fcb9bba2498aae2a30d40616d0" [[package]] name = "solana-message" -version = "2.4.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1796aabce376ff74bf89b78d268fa5e683d7d7a96a0a4e4813ec34de49d5314b" +checksum = "0448b1fd891c5f46491e5dc7d9986385ba3c852c340db2911dd29faa01d2b08d" dependencies = [ "bincode", "blake3", "lazy_static", "serde", "serde_derive", - "solana-bincode", - "solana-hash", + "solana-address 2.6.1", + "solana-hash 4.5.0", "solana-instruction", - "solana-pubkey", "solana-sanitize", "solana-sdk-ids", "solana-short-vec", - "solana-system-interface", "solana-transaction-error", - "wasm-bindgen", ] [[package]] name = "solana-metrics" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce74aa31c5f684ae4c75e32aa7051381623a01630f45d15a01493ce5ad80690d" +checksum = "bb0f05dfe08e1b14429eb35feb15f89455d7c75d8a1704ee8da1f0ebf0993d42" dependencies = [ "crossbeam-channel", "gethostname", @@ -7254,41 +7976,43 @@ dependencies = [ "solana-cluster-type", "solana-sha256-hasher", "solana-time-utils", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[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" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61515b880c36974053dd499c0510066783f0cc6ac17def0c7ef2a244874cf4a9" +checksum = "ae8dd4c280dca9d046139eb5b7a5ac9ad10403fbd64964c7d7571214950d758f" [[package]] name = "solana-net-utils" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "003f8a978967e86ab9b7f4472d601d98ac4ebfff310e465637e8bf743cb26433" +checksum = "5ed12c06e326edff1a26380f18b01d1c9ec4723aeed2c0d6dec1035d9eacb1fa" dependencies = [ "anyhow", "bincode", "bytes", + "cfg-if", + "dashmap", "itertools 0.12.1", "log", "nix", "rand 0.8.5", "serde", - "serde_derive", - "socket2", + "socket2 0.6.5", "solana-serde", + "solana-svm-type-overrides", "tokio", "url", ] @@ -7301,40 +8025,49 @@ checksum = "8b8a731ed60e89177c8a7ab05fe0f1511cedd3e70e773f288f9de33a9cfdc21e" [[package]] name = "solana-nonce" -version = "2.2.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703e22eb185537e06204a5bd9d509b948f0066f2d1d814a6f475dafb3ddf1325" +checksum = "d95dbc9f2e33b6c10e231df15cb2a3bff9ea7eab6347f9e316fe75c97fd67bbb" dependencies = [ "serde", "serde_derive", "solana-fee-calculator", - "solana-hash", - "solana-pubkey", + "solana-hash 4.5.0", + "solana-pubkey 4.2.0", "solana-sha256-hasher", ] [[package]] name = "solana-nonce-account" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde971a20b8dbf60144d6a84439dda86b5466e00e2843091fe731083cda614da" +checksum = "805fd25b29e5a1a0e6c3dd6320c9da80f275fbe4ff6e392617c303a2085c435e" dependencies = [ "solana-account", - "solana-hash", + "solana-hash 3.1.0", "solana-nonce", "solana-sdk-ids", ] +[[package]] +name = "solana-nullable" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec7b49f68ccea949a6ea75f485dbe2e17cf4c1d894ed262371d584269359e1a0" +dependencies = [ + "bytemuck", +] + [[package]] name = "solana-offchain-message" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b526398ade5dea37f1f147ce55dae49aa017a5d7326606359b0445ca8d946581" +checksum = "f6e2a1141a673f72a05cf406b99e4b2b8a457792b7c01afa07b3f00d4e2de393" dependencies = [ "num_enum", - "solana-hash", + "solana-hash 3.1.0", "solana-packet", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sanitize", "solana-sha256-hasher", "solana-signature", @@ -7343,12 +8076,12 @@ dependencies = [ [[package]] name = "solana-packet" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "004f2d2daf407b3ec1a1ca5ec34b3ccdfd6866dd2d3c7d0715004a96e4b6d127" +checksum = "6edf2f25743c95229ac0fdc32f8f5893ef738dbf332c669e9861d33ddb0f469d" dependencies = [ "bincode", - "bitflags", + "bitflags 2.9.1", "cfg_eval", "serde", "serde_derive", @@ -7357,9 +8090,9 @@ dependencies = [ [[package]] name = "solana-perf" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d43a35a7c2b2aad5db286e78b943d148afc1e3b300734bcba437b6d79d00516" +checksum = "cae20efb5ec6c98b3932d6755d5df962ab51344f099d704317a79af2faa42403" dependencies = [ "ahash 0.8.12", "bincode", @@ -7375,23 +8108,24 @@ dependencies = [ "rand 0.8.5", "rayon", "serde", - "solana-hash", + "solana-hash 3.1.0", "solana-message", "solana-metrics", "solana-packet", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-rayon-threadlimit", "solana-sdk-ids", "solana-short-vec", "solana-signature", "solana-time-utils", + "solana-transaction-context", ] [[package]] name = "solana-poh-config" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d650c3b4b9060082ac6b0efbbb66865089c58405bfb45de449f3f2b91eccee75" +checksum = "2f1fef1f2ff2480fdbcc64bef5e3c47bec6e1647270db88b43f23e3a55f8d9cf" dependencies = [ "serde", "serde_derive", @@ -7399,117 +8133,72 @@ dependencies = [ [[package]] name = "solana-poseidon" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e3dca50aa507fdebd0ac57dbb82fb852cde0089b947a50195668e129d4920fb" +checksum = "25a2c8f53a80947785b58e55bda1b619bac03f266c9055b7b0208775f0522057" dependencies = [ - "ark-bn254", - "light-poseidon", - "solana-define-syscall", - "thiserror 2.0.12", + "ark-bn254 0.4.0", + "ark-bn254 0.5.0", + "light-poseidon 0.2.0", + "light-poseidon 0.4.0", + "solana-define-syscall 3.0.0", + "thiserror 2.0.18", ] [[package]] name = "solana-precompile-error" -version = "2.2.2" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d87b2c1f5de77dfe2b175ee8dd318d196aaca4d0f66f02842f80c852811f9f8" +checksum = "cafcd950de74c6c39d55dc8ca108bbb007799842ab370ef26cf45a34453c31e1" dependencies = [ "num-traits", - "solana-decode-error", -] - -[[package]] -name = "solana-precompiles" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36e92768a57c652edb0f5d1b30a7d0bc64192139c517967c18600debe9ae3832" -dependencies = [ - "lazy_static", - "solana-ed25519-program", - "solana-feature-set", - "solana-message", - "solana-precompile-error", - "solana-pubkey", - "solana-sdk-ids", - "solana-secp256k1-program", - "solana-secp256r1-program", ] [[package]] name = "solana-presigner" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81a57a24e6a4125fc69510b6774cd93402b943191b6cddad05de7281491c90fe" +checksum = "0f704eaf825be3180832445b9e4983b875340696e8e7239bf2d535b0f86c14a2" dependencies = [ - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-signature", "solana-signer", ] [[package]] name = "solana-program" -version = "2.3.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98eca145bd3545e2fbb07166e895370576e47a00a7d824e325390d33bf467210" +checksum = "91b12305dd81045d705f427acd0435a2e46444b65367d7179d7bdcfc3bc5f5eb" 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 0.4.6", - "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-define-syscall 3.0.0", "solana-epoch-rewards", "solana-epoch-schedule", + "solana-epoch-stake", "solana-example-mocks", - "solana-feature-gate-interface", "solana-fee-calculator", - "solana-hash", + "solana-hash 3.1.0", "solana-instruction", + "solana-instruction-error", "solana-instructions-sysvar", "solana-keccak-hasher", "solana-last-restart-slot", - "solana-loader-v2-interface", - "solana-loader-v3-interface 5.0.0", - "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-pubkey 3.0.0", + "solana-rent 3.1.0", "solana-sdk-ids", - "solana-sdk-macro", "solana-secp256k1-recover", "solana-serde-varint", "solana-serialize-utils", @@ -7518,117 +8207,126 @@ dependencies = [ "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-binaries" +version = "3.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aec04996ee91ca1b538c2692ea632270c895ba665b32ba43a9986c603dc6064" +dependencies = [ + "bincode", + "serde", + "solana-account", + "solana-loader-v3-interface", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", + "solana-sdk-ids", + "spl-generic-token", ] [[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", + "borsh", "serde", "serde_derive", - "solana-decode-error", - "solana-instruction", - "solana-msg", - "solana-pubkey", ] [[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-program-runtime" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15b647dd44ba3ac33307cfa6b32e76a28e296a7dbfeeb529c42f4275a9daa778" +checksum = "b9cefa43d3f60a2dd25e0fcc3a5a46f50de021c42981029b1e8f375e1d954853" dependencies = [ "base64 0.22.1", "bincode", - "enum-iterator", "itertools 0.12.1", "log", "percentage", "rand 0.8.5", "serde", "solana-account", + "solana-account-info", "solana-clock", "solana-epoch-rewards", "solana-epoch-schedule", "solana-fee-structure", - "solana-hash", + "solana-hash 3.1.0", "solana-instruction", "solana-last-restart-slot", - "solana-log-collector", - "solana-measure", - "solana-metrics", + "solana-loader-v3-interface", "solana-program-entrypoint", - "solana-pubkey", - "solana-rent", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", "solana-sbpf", "solana-sdk-ids", "solana-slot-hashes", "solana-stable-layout", + "solana-stake-interface", "solana-svm-callback", "solana-svm-feature-set", - "solana-system-interface", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-timings", + "solana-svm-transaction", + "solana-svm-type-overrides", + "solana-system-interface 2.0.0", "solana-sysvar", "solana-sysvar-id", - "solana-timings", "solana-transaction-context", - "solana-type-overrides", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "solana-program-test" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a19dd82b59cd43caf9b8c758629d6ecb8cad6b6d4fca3ecf56078f364218210" +checksum = "cd4bdb9e77ff833ad51db721d30672d44bc6b4120ba5a2512523831e49bf9144" dependencies = [ "agave-feature-set", + "agave-logger", "assert_matches", "async-trait", "base64 0.22.1", @@ -7644,27 +8342,27 @@ dependencies = [ "solana-banks-interface", "solana-banks-server", "solana-clock", + "solana-cluster-type", "solana-commitment-config", "solana-compute-budget", "solana-epoch-rewards", "solana-epoch-schedule", "solana-fee-calculator", "solana-genesis-config", - "solana-hash", + "solana-hash 3.1.0", "solana-instruction", "solana-keypair", - "solana-loader-v3-interface 5.0.0", - "solana-log-collector", - "solana-logger", + "solana-loader-v3-interface", "solana-message", "solana-msg", "solana-native-token", "solana-poh-config", + "solana-program-binaries", "solana-program-entrypoint", "solana-program-error", "solana-program-runtime", - "solana-pubkey", - "solana-rent", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", "solana-runtime", "solana-sbpf", "solana-sdk-ids", @@ -7672,66 +8370,58 @@ dependencies = [ "solana-stable-layout", "solana-stake-interface", "solana-svm", - "solana-system-interface", + "solana-svm-log-collector", + "solana-svm-timings", + "solana-system-interface 2.0.0", "solana-sysvar", "solana-sysvar-id", - "solana-timings", "solana-transaction", "solana-transaction-context", "solana-transaction-error", "solana-vote-program", "spl-generic-token", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", ] [[package]] name = "solana-pubkey" -version = "2.4.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b62adb9c3261a052ca1f999398c388f1daf558a1b492f60a6d9e64857db4ff1" +checksum = "8909d399deb0851aa524420beeb5646b115fd253ef446e35fe4504c904da3941" dependencies = [ - "borsh 0.10.4", - "borsh 1.5.7", - "bytemuck", - "bytemuck_derive", - "curve25519-dalek 4.1.3", - "five8", - "five8_const", - "getrandom 0.2.16", - "js-sys", - "num-traits", "rand 0.8.5", - "serde", - "serde_derive", - "solana-atomic-u64", - "solana-decode-error", - "solana-define-syscall", - "solana-sanitize", - "solana-sha256-hasher", - "wasm-bindgen", + "solana-address 1.1.0", +] + +[[package]] +name = "solana-pubkey" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7db719574990de7e8b0f55a8593ac92a5ccb42c8ce67b3e4bf05b139d5d9ee71" +dependencies = [ + "solana-address 2.6.1", ] [[package]] name = "solana-pubsub-client" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e76bf575aa0873f1f4d9f1f1526f9496010cf61d8bb648af6fe0586428cbdaf6" +checksum = "320923e8c430d05c515f2f413dee50afa0da421b4fe37dc4b76fd9f28b7409a7" dependencies = [ "crossbeam-channel", "futures-util", "http 0.2.12", "log", - "semver 1.0.26", + "semver 1.0.28", "serde", - "serde_derive", "serde_json", "solana-account-decoder-client-types", "solana-clock", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-rpc-client-types", "solana-signature", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tokio-stream", "tokio-tungstenite", @@ -7741,57 +8431,58 @@ dependencies = [ [[package]] name = "solana-quic-client" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "358617efc272897b6830a8bfce07a0eaab5d57a51fb385415b41d493724f4eb2" +checksum = "4ede9c4da2447500b05c2fdc8b238c703b33943604a927dc197733bc91ac2a1f" dependencies = [ + "anza-quinn", + "anza-quinn-proto", "async-lock", "async-trait", "futures", "itertools 0.12.1", "log", - "quinn", - "quinn-proto", - "rustls 0.23.27", + "rustls", "solana-connection-cache", "solana-keypair", "solana-measure", "solana-metrics", "solana-net-utils", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-quic-definitions", "solana-rpc-client-api", "solana-signer", "solana-streamer", "solana-tls-utils", "solana-transaction-error", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", ] [[package]] name = "solana-quic-definitions" -version = "2.3.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf0d4d5b049eb1d0c35f7b18f305a27c8986fc5c0c9b383e97adaa35334379e" +checksum = "15319accf7d3afd845817aeffa6edd8cc185f135cefbc6b985df29cfd8c09609" dependencies = [ "solana-keypair", ] [[package]] name = "solana-rayon-threadlimit" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d03ae3c589b0f4e1fdd379e19f9ac13bd73efd97b39b6abc3af786cbbf7410" +checksum = "09d48133891ea0e717d845059429b98d03bab34f3ec4e2b58bfe78248a898017" dependencies = [ + "log", "num_cpus", ] [[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", @@ -7801,49 +8492,19 @@ dependencies = [ ] [[package]] -name = "solana-rent-collector" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "127e6dfa51e8c8ae3aa646d8b2672bc4ac901972a338a9e1cd249e030564fb9d" -dependencies = [ - "serde", - "serde_derive", - "solana-account", - "solana-clock", - "solana-epoch-schedule", - "solana-genesis-config", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", -] - -[[package]] -name = "solana-rent-debits" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f6f9113c6003492e74438d1288e30cffa8ccfdc2ef7b49b9e816d8034da18cd" -dependencies = [ - "solana-pubkey", - "solana-reward-info", -] - -[[package]] -name = "solana-reserved-account-keys" -version = "2.2.2" +name = "solana-rent" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4b22ea19ca2a3f28af7cd047c914abf833486bf7a7c4a10fc652fff09b385b1" +checksum = "39f0d780bf8e8a1fe8b5b5fce1acad6b209485b86dec246e7523d5e4a8b7c7fc" dependencies = [ - "lazy_static", - "solana-feature-set", - "solana-pubkey", - "solana-sdk-ids", + "solana-sdk-macro", ] [[package]] name = "solana-reward-info" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18205b69139b1ae0ab8f6e11cdcb627328c0814422ad2482000fa2ca54ae4a2f" +checksum = "82be7946105c2ee6be9f9ee7bd18a068b558389221d29efa92b906476102bfcc" dependencies = [ "serde", "serde_derive", @@ -7851,9 +8512,9 @@ dependencies = [ [[package]] name = "solana-rpc-client" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51f051ddebaecb403e33ed71789cdd9c33d657c73e8393d218c1668e3f0c71b7" +checksum = "29f7447f65aacd7ef752393bec2a9082d0313983b804f92d06fe72caf44e8cd6" dependencies = [ "async-trait", "base64 0.22.1", @@ -7864,21 +8525,21 @@ dependencies = [ "log", "reqwest", "reqwest-middleware", - "semver 1.0.26", + "semver 1.0.28", "serde", - "serde_derive", "serde_json", "solana-account", + "solana-account-decoder", "solana-account-decoder-client-types", "solana-clock", "solana-commitment-config", "solana-epoch-info", "solana-epoch-schedule", "solana-feature-gate-interface", - "solana-hash", + "solana-hash 3.1.0", "solana-instruction", "solana-message", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-rpc-client-api", "solana-signature", "solana-transaction", @@ -7891,16 +8552,15 @@ dependencies = [ [[package]] name = "solana-rpc-client-api" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d479965da655b0b77068462b0dcc80be940a49eabe8e339ba6c3aaa0f566854" +checksum = "841d953ce18f99a07c8101e071dd54d2a99b80835ad2ea1566913c55d4bce2ef" dependencies = [ "anyhow", "jsonrpc-core", "reqwest", "reqwest-middleware", "serde", - "serde_derive", "serde_json", "solana-account-decoder-client-types", "solana-clock", @@ -7908,63 +8568,69 @@ dependencies = [ "solana-signer", "solana-transaction-error", "solana-transaction-status-client-types", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "solana-rpc-client-nonce-utils" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22d7db81b6b36d0c4395896822be539fc20020be0585add6f08dc48e2d352525" +checksum = "b0e7777237c3791d40039ab1274d346949497f9be48cd688717ff001cb740cf9" dependencies = [ "solana-account", "solana-commitment-config", - "solana-hash", + "solana-hash 3.1.0", "solana-message", "solana-nonce", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-rpc-client", "solana-sdk-ids", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "solana-rpc-client-types" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b6c7dabcd3db1fc41f0a3390b7999a754f32599bbd4aef4b6355cfe418cf7af" +checksum = "095c430a4ff4ddb10b7399f8d3d26eafeaccb84f8802568594f6f5941c60dff5" dependencies = [ "base64 0.22.1", "bs58", - "semver 1.0.26", + "semver 1.0.28", "serde", - "serde_derive", "serde_json", "solana-account", "solana-account-decoder-client-types", + "solana-address 1.1.0", "solana-clock", "solana-commitment-config", "solana-fee-calculator", "solana-inflation", - "solana-pubkey", + "solana-reward-info", + "solana-transaction", "solana-transaction-error", "solana-transaction-status-client-types", "solana-version", "spl-generic-token", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "solana-runtime" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3087d892b1b553eceb20a1735cad570474a6be8e66c70bb203bbeddbaa52000" +checksum = "bcade4e95d16de9ecdb7cc108eb65be6e9c468ba5c6dcf0b0f2cb42e68ccb9b5" dependencies = [ "agave-feature-set", + "agave-fs", "agave-precompiles", "agave-reserved-account-keys", + "agave-snapshots", + "agave-syscalls", + "agave-votor-messages", "ahash 0.8.12", "aquamarine", + "arc-swap", "arrayref", "assert_matches", "base64 0.22.1", @@ -7972,11 +8638,9 @@ dependencies = [ "blake3", "bv", "bytemuck", - "bzip2", "crossbeam-channel", "dashmap", "dir-diff", - "flate2", "fnv", "im", "itertools 0.12.1", @@ -7995,23 +8659,26 @@ dependencies = [ "rand 0.8.5", "rayon", "regex", + "semver 1.0.28", "serde", - "serde_derive", "serde_json", "serde_with", "solana-account", "solana-account-info", "solana-accounts-db", "solana-address-lookup-table-interface", + "solana-bls-signatures", "solana-bpf-loader-program", "solana-bucket-map", "solana-builtins", "solana-client-traits", "solana-clock", + "solana-cluster-type", "solana-commitment-config", "solana-compute-budget", "solana-compute-budget-instruction", "solana-compute-budget-interface", + "solana-config-interface", "solana-cost-model", "solana-cpi", "solana-ed25519-program", @@ -8024,12 +8691,12 @@ dependencies = [ "solana-fee-structure", "solana-genesis-config", "solana-hard-forks", - "solana-hash", + "solana-hash 3.1.0", "solana-inflation", "solana-instruction", "solana-keypair", "solana-lattice-hash", - "solana-loader-v3-interface 5.0.0", + "solana-loader-v3-interface", "solana-loader-v4-interface", "solana-measure", "solana-message", @@ -8043,11 +8710,9 @@ dependencies = [ "solana-poh-config", "solana-precompile-error", "solana-program-runtime", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-rayon-threadlimit", - "solana-rent", - "solana-rent-collector", - "solana-rent-debits", + "solana-rent 3.1.0", "solana-reward-info", "solana-runtime-transaction", "solana-sdk-ids", @@ -8060,17 +8725,15 @@ dependencies = [ "solana-slot-hashes", "solana-slot-history", "solana-stake-interface", - "solana-stake-program", "solana-svm", "solana-svm-callback", - "solana-svm-rent-collector", + "solana-svm-timings", "solana-svm-transaction", - "solana-system-interface", + "solana-system-interface 2.0.0", "solana-system-transaction", "solana-sysvar", "solana-sysvar-id", "solana-time-utils", - "solana-timings", "solana-transaction", "solana-transaction-context", "solana-transaction-error", @@ -8085,44 +8748,43 @@ dependencies = [ "strum", "strum_macros", "symlink", - "tar", "tempfile", - "thiserror 2.0.12", - "zstd", + "thiserror 2.0.18", ] [[package]] name = "solana-runtime-transaction" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e656a1a026b0cda7d9b9ec57354879e0c977e68df7769ad5147f78448f19c9a" +checksum = "85538e4376c5d8cab0fc9afa10a193edda72affa1727f56696600e3e2ffe0766" dependencies = [ "agave-transaction-view", "log", "solana-compute-budget", "solana-compute-budget-instruction", - "solana-hash", + "solana-hash 3.1.0", "solana-message", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", "solana-signature", "solana-svm-transaction", "solana-transaction", + "solana-transaction-context", "solana-transaction-error", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[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-sbpf" -version = "0.11.1" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "474a2d95dc819898ded08d24f29642d02189d3e1497bbb442a92a3997b7eb55f" +checksum = "b15b079e08471a9dbfe1e48b2c7439c85aa2a055cbd54eddd8bd257b0a7dbb29" dependencies = [ "byteorder", "combine 3.8.1", @@ -8131,63 +8793,34 @@ dependencies = [ "log", "rand 0.8.5", "rustc-demangle", - "thiserror 2.0.12", + "thiserror 2.0.18", "winapi", ] [[package]] name = "solana-sdk" -version = "2.3.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cc0e4a7635b902791c44b6581bfb82f3ada32c5bc0929a64f39fe4bb384c86a" +checksum = "3f03df7969f5e723ad31b6c9eadccc209037ac4caa34d8dc259316b05c11e82b" dependencies = [ "bincode", "bs58", - "getrandom 0.1.16", - "js-sys", "serde", - "serde_json", "solana-account", - "solana-bn254", - "solana-client-traits", - "solana-cluster-type", - "solana-commitment-config", - "solana-compute-budget-interface", - "solana-decode-error", - "solana-derivation-path", - "solana-ed25519-program", "solana-epoch-info", "solana-epoch-rewards-hasher", - "solana-feature-set", "solana-fee-structure", - "solana-genesis-config", - "solana-hard-forks", "solana-inflation", - "solana-instruction", "solana-keypair", "solana-message", - "solana-native-token", - "solana-nonce-account", "solana-offchain-message", - "solana-packet", - "solana-poh-config", - "solana-precompile-error", - "solana-precompiles", "solana-presigner", "solana-program", "solana-program-memory", - "solana-pubkey", - "solana-quic-definitions", - "solana-rent-collector", - "solana-rent-debits", - "solana-reserved-account-keys", - "solana-reward-info", + "solana-pubkey 3.0.0", "solana-sanitize", "solana-sdk-ids", "solana-sdk-macro", - "solana-secp256k1-program", - "solana-secp256k1-recover", - "solana-secp256r1-program", "solana-seed-derivable", "solana-seed-phrase", "solana-serde", @@ -8196,30 +8829,26 @@ dependencies = [ "solana-shred-version", "solana-signature", "solana-signer", - "solana-system-transaction", "solana-time-utils", "solana-transaction", - "solana-transaction-context", "solana-transaction-error", - "solana-validator-exit", - "thiserror 2.0.12", - "wasm-bindgen", + "thiserror 2.0.18", ] [[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.1", ] [[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", @@ -8229,68 +8858,55 @@ dependencies = [ [[package]] name = "solana-secp256k1-program" -version = "2.2.3" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f19833e4bc21558fe9ec61f239553abe7d05224347b57d65c2218aeeb82d6149" +checksum = "ad4cf8232f7aef9ff2dd95d701f63e3c11909dec2400def5c361be29d24291e7" dependencies = [ - "bincode", "digest 0.10.7", - "libsecp256k1", + "k256", "serde", "serde_derive", - "sha3", - "solana-feature-set", - "solana-instruction", - "solana-precompile-error", - "solana-sdk-ids", + "sha3 0.10.8", "solana-signature", ] [[package]] name = "solana-secp256k1-recover" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baa3120b6cdaa270f39444f5093a90a7b03d296d362878f7a6991d6de3bbe496" +checksum = "394a4470477d66296af5217970a905b1c5569032a7732c367fb69e5666c8607e" dependencies = [ - "libsecp256k1", - "solana-define-syscall", - "thiserror 2.0.12", + "k256", + "solana-define-syscall 3.0.0", + "thiserror 2.0.18", ] [[package]] name = "solana-secp256r1-program" -version = "2.2.4" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce0ae46da3071a900f02d367d99b2f3058fe2e90c5062ac50c4f20cfedad8f0f" +checksum = "445d8e12592631d76fc4dc57858bae66c9fd7cc838c306c62a472547fc9d0ce6" dependencies = [ "bytemuck", "openssl", - "solana-feature-set", "solana-instruction", - "solana-precompile-error", "solana-sdk-ids", ] -[[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" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3beb82b5adb266c6ea90e5cf3967235644848eac476c5a1f2f9283a143b7c97f" +checksum = "ff7bdb72758e3bec33ed0e2658a920f1f35dfb9ed576b951d20d63cb61ecd95c" 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 = "dc905b200a95f2ea9146e43f2a7181e3aeb55de6bc12afb36462d00a3c7310de" dependencies = [ "hmac 0.12.1", "pbkdf2", @@ -8299,9 +8915,9 @@ dependencies = [ [[package]] name = "solana-send-transaction-service" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5742fd2e760f53fe224a6427e70fa940f48a94734cd767b35b7a3bb79620f2fb" +checksum = "d5292b2711216b21a5c9ba0e7a713ef9c8dc190311acd20dfd441ac1c5438cac" dependencies = [ "async-trait", "crossbeam-channel", @@ -8310,200 +8926,174 @@ dependencies = [ "solana-client", "solana-clock", "solana-connection-cache", - "solana-hash", + "solana-hash 3.1.0", "solana-keypair", "solana-measure", "solana-metrics", "solana-nonce-account", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-quic-definitions", "solana-runtime", "solana-signature", "solana-time-utils", "solana-tpu-client-next", "tokio", - "tokio-util 0.7.15", + "tokio-util 0.7.18", ] [[package]] name = "solana-serde" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1931484a408af466e14171556a47adaa215953c7f48b24e5f6b0282763818b04" +checksum = "709a93cab694c70f40b279d497639788fc2ccbcf9b4aa32273d4b361322c02dd" dependencies = [ "serde", ] [[package]] name = "solana-serde-varint" -version = "2.2.2" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a7e155eba458ecfb0107b98236088c3764a09ddf0201ec29e52a0be40857113" +checksum = "950e5b83e839dc0f92c66afc124bb8f40e89bc90f0579e8ec5499296d27f54e3" dependencies = [ "serde", ] [[package]] name = "solana-serialize-utils" -version = "2.2.1" +version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "817a284b63197d2b27afdba829c5ab34231da4a9b4e763466a003c40ca4f535e" +checksum = "761357b0853c9623bf12c1d2314b3d6160a85b087b84c45224fb85766d22616b" 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", - "solana-hash", + "solana-define-syscall 4.0.1", + "solana-hash 4.5.0", ] [[package]] name = "solana-short-vec" -version = "2.2.1" +version = "3.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c54c66f19b9766a56fa0057d060de8378676cb64987533fa088861858fc5a69" +checksum = "7d8250a4495aad49ad20556a607da53bdcb20de78da10b65afbf918b7f1de647" dependencies = [ - "serde", + "serde_core", ] [[package]] name = "solana-shred-version" -version = "2.2.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afd3db0461089d1ad1a78d9ba3f15b563899ca2386351d38428faa5350c60a98" +checksum = "d6c79722e299d957958bf33695f7cd1ef6724ff55563c60fd9e3e24487cccde2" dependencies = [ "solana-hard-forks", - "solana-hash", + "solana-hash 4.5.0", "solana-sha256-hasher", ] [[package]] name = "solana-signature" -version = "2.3.0" +version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c8ec8e657aecfc187522fc67495142c12f35e55ddeca8698edbb738b8dbd8c" +checksum = "b0364c7577c3c82a693ce28a1febc8d1b5d1b0a175fdc2114ae6186b69effe1e" dependencies = [ - "ed25519-dalek 1.0.1", + "ed25519-dalek 2.2.0", "five8", - "rand 0.8.5", + "rand 0.9.5", "serde", "serde-big-array", "serde_derive", "solana-sanitize", + "wincode", ] [[package]] name = "solana-signer" -version = "2.2.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c41991508a4b02f021c1342ba00bcfa098630b213726ceadc7cb032e051975b" +checksum = "520bd6021163ee517f4bdc7ae03ded904f97e11320001ba0b3355f45eb14f558" dependencies = [ - "solana-pubkey", + "solana-pubkey 4.2.0", "solana-signature", "solana-transaction-error", ] [[package]] name = "solana-slot-hashes" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c8691982114513763e88d04094c9caa0376b867a29577939011331134c301ce" +checksum = "5c7ce2b4b8911bf2db3de7b6266e67bfc21a6a9f8c566fb096d9782ca2ad16ee" dependencies = [ "serde", "serde_derive", - "solana-hash", + "solana-get-sysvar", + "solana-hash 4.5.0", "solana-sdk-ids", "solana-sysvar-id", ] [[package]] name = "solana-slot-history" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ccc1b2067ca22754d5283afb2b0126d61eae734fc616d23871b0943b0d935e" +checksum = "40427c04d3e808493cb5e3d1a97cef84d7c15cb6f89b15c5684d0d4027105600" dependencies = [ "bv", "serde", "serde_derive", + "solana-get-sysvar", "solana-sdk-ids", "solana-sysvar-id", ] [[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-sysvar-id", -] - -[[package]] -name = "solana-stake-program" -version = "2.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f78edb81bf582bb627f4c175a17afaf909361c87e8932576878e22bd14558c0" -dependencies = [ - "agave-feature-set", - "bincode", - "log", - "solana-account", - "solana-bincode", - "solana-clock", - "solana-config-program-client", - "solana-genesis-config", - "solana-instruction", - "solana-log-collector", - "solana-native-token", - "solana-packet", - "solana-program-runtime", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", - "solana-stake-interface", + "solana-pubkey 3.0.0", + "solana-system-interface 2.0.0", "solana-sysvar", - "solana-transaction-context", - "solana-type-overrides", - "solana-vote-interface", + "solana-sysvar-id", ] [[package]] name = "solana-streamer" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afbe7593dc790744a41256fa0feaf0191a3f6cc453cc91dbbe56f1f1698c2032" +checksum = "e9c9d1d759bb2d08119e45dcb0ff6834038086cc7b2d1f4e279f2ac340d77bce" dependencies = [ - "async-channel", + "anza-quinn", + "anza-quinn-proto", + "arc-swap", "bytes", "crossbeam-channel", "dashmap", @@ -8511,26 +9101,25 @@ dependencies = [ "futures-util", "governor", "histogram", - "indexmap 2.9.0", + "indexmap 2.14.0", "itertools 0.12.1", "libc", "log", "nix", + "num_cpus", "pem", "percentage", - "quinn", - "quinn-proto", "rand 0.8.5", - "rustls 0.23.27", + "rustls", "smallvec", - "socket2", + "socket2 0.6.5", "solana-keypair", "solana-measure", "solana-metrics", "solana-net-utils", "solana-packet", "solana-perf", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-quic-definitions", "solana-signature", "solana-signer", @@ -8538,171 +9127,198 @@ dependencies = [ "solana-tls-utils", "solana-transaction-error", "solana-transaction-metrics-tracker", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", - "tokio-util 0.7.15", + "tokio-util 0.7.18", "x509-parser", ] [[package]] name = "solana-svm" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02ae1d0d5e62c7acdbfff71de2120a32bbecb73ea5114876e0b9712a59bed00f" +checksum = "586cd746aa1ef80bd5735813de1b3cb9b1b0c5b5b81ded3069aed213b45de046" dependencies = [ "ahash 0.8.12", - "itertools 0.12.1", "log", "percentage", "serde", - "serde_derive", "solana-account", "solana-clock", "solana-fee-structure", - "solana-hash", + "solana-hash 3.1.0", "solana-instruction", "solana-instructions-sysvar", - "solana-loader-v3-interface 5.0.0", + "solana-loader-v3-interface", "solana-loader-v4-interface", "solana-loader-v4-program", - "solana-log-collector", - "solana-measure", "solana-message", "solana-nonce", "solana-nonce-account", "solana-program-entrypoint", "solana-program-pack", "solana-program-runtime", - "solana-pubkey", - "solana-rent", - "solana-rent-collector", - "solana-rent-debits", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", "solana-sdk-ids", - "solana-slot-hashes", "solana-svm-callback", "solana-svm-feature-set", - "solana-svm-rent-collector", + "solana-svm-log-collector", + "solana-svm-measure", + "solana-svm-timings", "solana-svm-transaction", - "solana-system-interface", + "solana-svm-type-overrides", + "solana-system-interface 2.0.0", "solana-sysvar-id", - "solana-timings", "solana-transaction-context", "solana-transaction-error", - "solana-type-overrides", "spl-generic-token", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "solana-svm-callback" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0febba5d13ba084926b3b03cf72c1d643a1e0624ba0887d2203addd4f7e0ea2" +checksum = "b9114cc1391e57d0d6902c7c347964cb8e41e3c141ebb4be3ec5440be1c994fa" dependencies = [ "solana-account", + "solana-clock", "solana-precompile-error", - "solana-pubkey", + "solana-pubkey 3.0.0", ] [[package]] name = "solana-svm-feature-set" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d3f211bd2dac2c8cc367acb4a528c2b0044593e7b66f18c2f3d689374b1013" +checksum = "62a20c4fc8d409780c4592c17ac3e01b6f3dc949e6ffd3acbda6d2a21e67b53a" [[package]] -name = "solana-svm-rent-collector" -version = "2.3.5" +name = "solana-svm-log-collector" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4f63ba74ab5af97bb48565a2cc43785d1045680101e56068224f570d508ab6e" +checksum = "f92f14f80cf719d5bc2c14bbee50075920637d1f9afe2fce990e5394fa579293" dependencies = [ - "solana-account", - "solana-clock", - "solana-pubkey", - "solana-rent", - "solana-rent-collector", - "solana-sdk-ids", - "solana-transaction-context", - "solana-transaction-error", + "log", +] + +[[package]] +name = "solana-svm-measure" +version = "3.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c68915dfa801dd03b3f7c3e0a510fe233754463e77f5afe6a30a51ac9fa326" + +[[package]] +name = "solana-svm-timings" +version = "3.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89a98d45197b57ae84bbf97647840adb153e444ad147638e742929d83343f48e" +dependencies = [ + "eager", + "enum-iterator", + "solana-pubkey 3.0.0", ] [[package]] name = "solana-svm-transaction" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c3c2e2ac0e7561ee8c54f1afaf86ac299cf378e72d3cc29d12e2f61b61ed1fb" +checksum = "1a6074e3b4bdd7ade15db51a4f309eb9e22239d33b01f4ea5ecf6aff8f81d0ba" dependencies = [ - "solana-hash", + "solana-hash 3.1.0", "solana-message", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", "solana-signature", "solana-transaction", ] +[[package]] +name = "solana-svm-type-overrides" +version = "3.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51b2ea7c2f849cd6d190e2607c2af779d3dad2792784cc13c0e9342e429c87a1" +dependencies = [ + "rand 0.8.5", +] + [[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.1", + "solana-instruction", + "solana-msg", + "solana-program-error", ] [[package]] name = "solana-system-program" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b241be2be806cdb345010e79a2d66342d76b99b46d6e3bb0a6b092f3f7277cd0" +checksum = "14d88343aac5ad97d240eca299c8dfcde833e861b6a40bff6fda3ac215efc211" dependencies = [ "bincode", "log", "serde", - "serde_derive", "solana-account", "solana-bincode", "solana-fee-calculator", "solana-instruction", - "solana-log-collector", "solana-nonce", "solana-nonce-account", "solana-packet", "solana-program-runtime", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", - "solana-system-interface", + "solana-svm-log-collector", + "solana-svm-type-overrides", + "solana-system-interface 2.0.0", "solana-sysvar", "solana-transaction-context", - "solana-type-overrides", ] [[package]] name = "solana-system-transaction" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bd98a25e5bcba8b6be8bcbb7b84b24c2a6a8178d7fb0e3077a916855ceba91a" +checksum = "a31b5699ec533621515e714f1533ee6b3b0e71c463301d919eb59b8c1e249d30" dependencies = [ - "solana-hash", + "solana-hash 3.1.0", "solana-keypair", "solana-message", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-signer", - "solana-system-interface", + "solana-system-interface 2.0.0", "solana-transaction", ] [[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", @@ -8713,107 +9329,64 @@ dependencies = [ "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-hash 4.5.0", "solana-instruction", - "solana-instructions-sysvar", "solana-last-restart-slot", "solana-program-entrypoint", "solana-program-error", "solana-program-memory", - "solana-pubkey", - "solana-rent", - "solana-sanitize", + "solana-pubkey 4.2.0", + "solana-rent 3.1.0", "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.1", "solana-sdk-ids", ] -[[package]] -name = "solana-thin-client" -version = "2.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b3a724f50159c7737a78ff3243a395cf26715c420f925354f470b4af3d7f385" -dependencies = [ - "bincode", - "log", - "rayon", - "solana-account", - "solana-client-traits", - "solana-clock", - "solana-commitment-config", - "solana-connection-cache", - "solana-epoch-info", - "solana-hash", - "solana-instruction", - "solana-keypair", - "solana-message", - "solana-pubkey", - "solana-rpc-client", - "solana-rpc-client-api", - "solana-signature", - "solana-signer", - "solana-system-interface", - "solana-transaction", - "solana-transaction-error", -] - [[package]] name = "solana-time-utils" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6af261afb0e8c39252a04d026e3ea9c405342b08c871a2ad8aa5448e068c784c" - -[[package]] -name = "solana-timings" -version = "2.3.5" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7246a0db41c7250c2459ffddebc90461eb751e100f8d98400a4ddc57712e61d4" -dependencies = [ - "eager", - "enum-iterator", - "solana-pubkey", -] +checksum = "0ced92c60aa76ec4780a9d93f3bd64dfa916e1b998eacc6f1c110f3f444f02c9" [[package]] name = "solana-tls-utils" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a895901511e859c8a0cb56647bf1606aae97a937b3c1dd077ec3269b401060" +checksum = "05b5c952335b378c92ad47286a7dee28acfd0b0ce1ac89562f51b4dcb33210ea" dependencies = [ - "rustls 0.23.27", + "rustls", "solana-keypair", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-signer", "x509-parser", ] [[package]] name = "solana-tpu-client" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b57ebd4d19385cebfe8668b800a47ff1fdd707ac4405c3d685c6254909a2518" +checksum = "d331918bac33058ac2acd923c4cf646a8b7bc77fd7463d886da9f24b9e2787c1" dependencies = [ "async-trait", "bincode", "futures-util", - "indexmap 2.9.0", + "indexmap 2.14.0", "indicatif", "log", "rayon", @@ -8825,7 +9398,7 @@ dependencies = [ "solana-measure", "solana-message", "solana-net-utils", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-pubsub-client", "solana-quic-definitions", "solana-rpc-client", @@ -8834,21 +9407,21 @@ dependencies = [ "solana-signer", "solana-transaction", "solana-transaction-error", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", ] [[package]] name = "solana-tpu-client-next" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d398145042f8e9dccd1aefefefd9fa0f3433b01932b1c4c30eb78431fbe1f95" +checksum = "354ac341bb7e6d1a61375164fa51273b8254d17cdd1616962804d3882855be4b" dependencies = [ + "anza-quinn", "async-trait", "log", "lru", - "quinn", - "rustls 0.23.27", + "rustls", "solana-clock", "solana-connection-cache", "solana-keypair", @@ -8860,72 +9433,68 @@ dependencies = [ "solana-time-utils", "solana-tls-utils", "solana-tpu-client", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", - "tokio-util 0.7.15", + "tokio-util 0.7.18", ] [[package]] name = "solana-transaction" -version = "2.2.3" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80657d6088f721148f5d889c828ca60c7daeedac9a8679f9ec215e0c42bcbf41" +checksum = "96697cff5075a028265324255efed226099f6d761ca67342b230d09f72cc48d2" dependencies = [ "bincode", "serde", "serde_derive", - "solana-bincode", - "solana-feature-set", - "solana-hash", + "solana-address 2.6.1", + "solana-hash 4.5.0", "solana-instruction", - "solana-keypair", + "solana-instruction-error", "solana-message", - "solana-precompiles", - "solana-pubkey", "solana-sanitize", "solana-sdk-ids", "solana-short-vec", "solana-signature", "solana-signer", - "solana-system-interface", "solana-transaction-error", - "wasm-bindgen", ] [[package]] name = "solana-transaction-context" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fccd9980ab22ba779977149172a61a7103a92eca2efdc9259fd37a66a478452b" +checksum = "be7c191d89fb883fef0b4bb4225121f7ad14eb5664d5dc9707b4af661e21924c" dependencies = [ "bincode", + "qualifier_attr", "serde", - "serde_derive", "solana-account", "solana-instruction", "solana-instructions-sysvar", - "solana-pubkey", - "solana-rent", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", + "solana-sbpf", "solana-sdk-ids", ] [[package]] name = "solana-transaction-error" -version = "2.2.1" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222a9dc8fdb61c6088baab34fc3a8b8473a03a7a5fd404ed8dd502fa79b67cb1" +checksum = "a949797bc1ac31836d0070e791083028a8c2e0d493fa4cf51c0bed7a04c65c22" dependencies = [ "serde", "serde_derive", - "solana-instruction", + "solana-instruction-error", "solana-sanitize", ] [[package]] name = "solana-transaction-metrics-tracker" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e02564801f080ffad4355a1da37fc69bdb897e7689cb1afebaef9c9b4bf22659" +checksum = "257ae75d68fe879753baef265a0d1bfcf9274b212dfc44ffea177ce0f1271508" dependencies = [ "base64 0.22.1", "bincode", @@ -8939,41 +9508,33 @@ dependencies = [ [[package]] name = "solana-transaction-status-client-types" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ac5eda278b6c4244f04f2349c9e2d903c89baf8d21bf9666fbf4c247e999bbd" +checksum = "3a02265337e99bf3e446de1d8133b2d28556f06780e9ab516870317688f332e0" dependencies = [ "base64 0.22.1", "bincode", "bs58", "serde", - "serde_derive", "serde_json", "solana-account-decoder-client-types", "solana-commitment-config", + "solana-instruction", "solana-message", + "solana-pubkey 3.0.0", "solana-reward-info", "solana-signature", "solana-transaction", "solana-transaction-context", "solana-transaction-error", - "thiserror 2.0.12", -] - -[[package]] -name = "solana-type-overrides" -version = "2.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00d41f3582537b7479ffbf552b5928d5cdb71d499124f87d096b62a09dfa1b04" -dependencies = [ - "rand 0.8.5", + "thiserror 2.0.18", ] [[package]] name = "solana-udp-client" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee17180892cb1d375eae57bcde8256e08479cbb052bcd704218214a90abb25d" +checksum = "3f55aab86699ab277347e7086157a1a7c599ce3817c0a8bb07b62bbe3a113f44" dependencies = [ "async-trait", "solana-connection-cache", @@ -8981,63 +9542,55 @@ dependencies = [ "solana-net-utils", "solana-streamer", "solana-transaction-error", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", ] [[package]] name = "solana-unified-scheduler-logic" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3510745db0ad21d22670202b44730923fad9bd1521016d4f36a39fa775325593" +checksum = "d653d85171c16e6b5e35c3525dd012b50b2c089f8ffe13692f599e7fe14b18fc" dependencies = [ "assert_matches", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-runtime-transaction", "solana-transaction", "static_assertions", "unwrap_none", ] -[[package]] -name = "solana-validator-exit" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bbf6d7a3c0b28dd5335c52c0e9eae49d0ae489a8f324917faf0ded65a812c1d" - [[package]] name = "solana-version" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f06f1172d3e180c512ab7907786721c4042f3ff67e65bcf847a51009644c255c" +checksum = "17a9c5d23a31d8f34aac59812099c9d8d76203a447d04b65824f5c913ced9072" dependencies = [ "agave-feature-set", "rand 0.8.5", - "semver 1.0.26", + "semver 1.0.28", "serde", - "serde_derive", "solana-sanitize", "solana-serde-varint", ] [[package]] name = "solana-vote" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "543f653cacebaaf3071dc0d916cccc20e3ac49c69b6429f291bdf6b8bdaea577" +checksum = "c0809748b89d2aaf6ba4020554ad10487166deff1ff3304ac0a973d67c5f17b7" dependencies = [ "itertools 0.12.1", "log", "serde", - "serde_derive", "solana-account", "solana-bincode", "solana-clock", - "solana-hash", + "solana-hash 3.1.0", "solana-instruction", "solana-keypair", "solana-packet", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", "solana-serialize-utils", "solana-signature", @@ -9045,38 +9598,40 @@ dependencies = [ "solana-svm-transaction", "solana-transaction", "solana-vote-interface", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "solana-vote-interface" -version = "2.2.6" +version = "4.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b80d57478d6599d30acc31cc5ae7f93ec2361a06aefe8ea79bc81739a08af4c3" +checksum = "db6e123e16bfdd7a81d71b4c4699e0b29580b619f4cd2ef5b6aae1eb85e8979f" dependencies = [ "bincode", + "cfg_eval", "num-derive", "num-traits", "serde", "serde_derive", + "serde_with", "solana-clock", - "solana-decode-error", - "solana-hash", + "solana-hash 3.1.0", "solana-instruction", - "solana-pubkey", - "solana-rent", + "solana-instruction-error", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", "solana-sdk-ids", "solana-serde-varint", "solana-serialize-utils", "solana-short-vec", - "solana-system-interface", + "solana-system-interface 2.0.0", ] [[package]] name = "solana-vote-program" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd2506dec20f4d39d716ffa3fff220db4986224f5c6c80362c7e8a1acb227fc1" +checksum = "be3d7ddb2f7585dcc2225dec9991b15a76c2b80c3edad8f4d5b563fd6b7a2f25" dependencies = [ "agave-feature-set", "bincode", @@ -9084,49 +9639,59 @@ dependencies = [ "num-derive", "num-traits", "serde", - "serde_derive", "solana-account", "solana-bincode", "solana-clock", "solana-epoch-schedule", - "solana-hash", + "solana-hash 3.1.0", "solana-instruction", "solana-keypair", "solana-packet", "solana-program-runtime", - "solana-pubkey", - "solana-rent", + "solana-pubkey 3.0.0", + "solana-rent 3.1.0", "solana-sdk-ids", "solana-signer", "solana-slot-hashes", "solana-transaction", "solana-transaction-context", "solana-vote-interface", - "thiserror 2.0.12", + "thiserror 2.0.18", +] + +[[package]] +name = "solana-zero-copy" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea15126ebdc7e270c50d43884369af9f51d2308156d46a18e351522a164844d" +dependencies = [ + "borsh", + "bytemuck", + "bytemuck_derive", ] [[package]] name = "solana-zk-elgamal-proof-program" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ec87f712d98d4cb956f2e1d435439273254e48e07de1b6872c7506b1451661a" +checksum = "f83f4e40a373aee876998df8f2ffb2a7a6a49667b732a0e6de6d8e5655edc392" dependencies = [ "agave-feature-set", "bytemuck", "num-derive", "num-traits", "solana-instruction", - "solana-log-collector", "solana-program-runtime", "solana-sdk-ids", + "solana-svm-log-collector", "solana-zk-sdk", ] [[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", @@ -9134,6 +9699,7 @@ dependencies = [ "bytemuck", "bytemuck_derive", "curve25519-dalek 4.1.3", + "getrandom 0.2.16", "itertools 0.12.1", "js-sys", "merlin", @@ -9143,43 +9709,43 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "sha3", + "sha3 0.10.8", "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 = "solana-zk-token-proof-program" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6055b75746cdc1e32b9fa797ab05b22d3ba85d4d5c0a0bd68dc4a6f797294634" +checksum = "6a51feb27c5d776ca053a9b4dd6d7635015fae86fd07b0e74f0cf38e78941d3c" dependencies = [ "agave-feature-set", "bytemuck", "num-derive", "num-traits", "solana-instruction", - "solana-log-collector", "solana-program-runtime", "solana-sdk-ids", + "solana-svm-log-collector", "solana-zk-token-sdk", ] [[package]] name = "solana-zk-token-sdk" -version = "2.3.5" +version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3811fa84def9983eb9e203727cec61f4efc6e131f65f426e355f1e3753e78b5" +checksum = "f2cd24e74dc810c1270c4c8237e4c1fb9f5b80ba3eba96da125070e17187b838" dependencies = [ "aes-gcm-siv", "base64 0.22.1", @@ -9193,253 +9759,122 @@ dependencies = [ "num-traits", "rand 0.8.5", "serde", - "serde_derive", "serde_json", - "sha3", - "solana-curve25519", + "sha3 0.10.8", + "solana-curve25519 3.1.10", "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", "zeroize", ] -[[package]] -name = "spinning_top" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" -dependencies = [ - "lock_api", -] - -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "spl-associated-token-account" -version = "7.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae179d4a26b3c7a20c839898e6aed84cb4477adf108a366c95532f058aea041b" -dependencies = [ - "borsh 1.5.7", - "num-derive", - "num-traits", - "solana-program", - "spl-associated-token-account-client", - "spl-token", - "spl-token-2022", - "thiserror 2.0.12", -] - -[[package]] -name = "spl-associated-token-account-client" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6f8349dbcbe575f354f9a533a21f272f3eb3808a49e2fdc1c34393b88ba76cb" -dependencies = [ - "solana-instruction", - "solana-pubkey", -] - -[[package]] -name = "spl-discriminator" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7398da23554a31660f17718164e31d31900956054f54f52d5ec1be51cb4f4b3" -dependencies = [ - "bytemuck", - "solana-program-error", - "solana-sha256-hasher", - "spl-discriminator-derive", -] - -[[package]] -name = "spl-discriminator-derive" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9e8418ea6269dcfb01c712f0444d2c75542c04448b480e87de59d2865edc750" -dependencies = [ - "quote", - "spl-discriminator-syn", - "syn 2.0.117", -] - -[[package]] -name = "spl-discriminator-syn" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d1dbc82ab91422345b6df40a79e2b78c7bce1ebb366da323572dd60b7076b67" -dependencies = [ - "proc-macro2", - "quote", - "sha2 0.10.9", - "syn 2.0.117", - "thiserror 1.0.69", -] - -[[package]] -name = "spl-elgamal-registry" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65edfeed09cd4231e595616aa96022214f9c9d2be02dea62c2b30d5695a6833a" -dependencies = [ - "bytemuck", - "solana-account-info", - "solana-cpi", - "solana-instruction", - "solana-msg", - "solana-program-entrypoint", - "solana-program-error", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", - "solana-system-interface", - "solana-sysvar", - "solana-zk-sdk", - "spl-pod", - "spl-token-confidential-transfer-proof-extraction", +[[package]] +name = "spinning_top" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" +dependencies = [ + "lock_api", ] [[package]] -name = "spl-generic-token" -version = "1.0.1" +name = "spki" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "741a62a566d97c58d33f9ed32337ceedd4e35109a686e31b1866c5dfa56abddc" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" dependencies = [ - "bytemuck", - "solana-pubkey", + "base64ct", + "der", ] [[package]] -name = "spl-memo" -version = "6.0.0" +name = "spl-associated-token-account-interface" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f09647c0974e33366efeb83b8e2daebb329f0420149e74d3a4bd2c08cf9f7cb" +checksum = "e6433917b60441d68d99a17e121d9db0ea15a9a69c0e5afa34649cf5ba12612f" dependencies = [ - "solana-account-info", "solana-instruction", - "solana-msg", - "solana-program-entrypoint", - "solana-program-error", - "solana-pubkey", + "solana-pubkey 3.0.0", ] [[package]] -name = "spl-pod" -version = "0.5.1" +name = "spl-discriminator" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d994afaf86b779104b4a95ba9ca75b8ced3fdb17ee934e38cb69e72afbe17799" +checksum = "e597c5ff9ed7c74a54dbc47bae2f06e4db8c98f4356ad280200dc11878266db1" dependencies = [ - "borsh 1.5.7", "bytemuck", - "bytemuck_derive", - "num-derive", - "num-traits", - "solana-decode-error", - "solana-msg", "solana-program-error", - "solana-program-option", - "solana-pubkey", - "solana-zk-sdk", - "thiserror 2.0.12", + "solana-sha256-hasher", + "spl-discriminator-derive", ] [[package]] -name = "spl-program-error" -version = "0.7.0" +name = "spl-discriminator-derive" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdebc8b42553070b75aa5106f071fef2eb798c64a7ec63375da4b1f058688c6" +checksum = "d9e8418ea6269dcfb01c712f0444d2c75542c04448b480e87de59d2865edc750" dependencies = [ - "num-derive", - "num-traits", - "solana-decode-error", - "solana-msg", - "solana-program-error", - "spl-program-error-derive", - "thiserror 2.0.12", + "quote", + "spl-discriminator-syn", + "syn 2.0.117", ] [[package]] -name = "spl-program-error-derive" -version = "0.5.0" +name = "spl-discriminator-syn" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2539e259c66910d78593475540e8072f0b10f0f61d7607bbf7593899ed52d0" +checksum = "5d1dbc82ab91422345b6df40a79e2b78c7bce1ebb366da323572dd60b7076b67" dependencies = [ "proc-macro2", "quote", "sha2 0.10.9", "syn 2.0.117", + "thiserror 1.0.69", ] [[package]] -name = "spl-tlv-account-resolution" -version = "0.10.0" +name = "spl-generic-token" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1408e961215688715d5a1063cbdcf982de225c45f99c82b4f7d7e1dd22b998d7" +checksum = "233df81b75ab99b42f002b5cdd6e65a7505ffa930624f7096a7580a56765e9cf" dependencies = [ "bytemuck", - "num-derive", - "num-traits", - "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 2.0.12", + "solana-pubkey 3.0.0", ] [[package]] -name = "spl-token" -version = "8.0.0" +name = "spl-pod" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053067c6a82c705004f91dae058b11b4780407e9ccd6799dc9e7d0fab5f242da" +checksum = "2f9c6e142cdf1e7e77f480053ec9f0ce989890768ddf91f619b50f39d1b456f5" dependencies = [ - "arrayref", + "borsh", "bytemuck", + "bytemuck_derive", "num-derive", "num-traits", "num_enum", - "solana-account-info", - "solana-cpi", - "solana-decode-error", - "solana-instruction", - "solana-msg", - "solana-program-entrypoint", "solana-program-error", - "solana-program-memory", "solana-program-option", - "solana-program-pack", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", - "solana-sysvar", - "thiserror 2.0.12", + "solana-pubkey 3.0.0", + "solana-zero-copy", + "solana-zk-sdk", + "thiserror 2.0.18", ] [[package]] -name = "spl-token-2022" -version = "8.0.1" +name = "spl-token-2022-interface" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f0dfbb079eebaee55e793e92ca5f433744f4b71ee04880bfd6beefba5973e5" +checksum = "0888304af6b3d839e435712e6c84025e09513017425ff62045b6b8c41feb77d9" dependencies = [ "arrayref", "bytemuck", @@ -9447,162 +9882,127 @@ dependencies = [ "num-traits", "num_enum", "solana-account-info", - "solana-clock", - "solana-cpi", - "solana-decode-error", "solana-instruction", - "solana-msg", - "solana-native-token", - "solana-program-entrypoint", "solana-program-error", - "solana-program-memory", "solana-program-option", "solana-program-pack", - "solana-pubkey", - "solana-rent", + "solana-pubkey 3.0.0", "solana-sdk-ids", - "solana-security-txt", - "solana-system-interface", - "solana-sysvar", "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 2.0.12", -] - -[[package]] -name = "spl-token-confidential-transfer-ciphertext-arithmetic" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cddd52bfc0f1c677b41493dafa3f2dbbb4b47cf0990f08905429e19dc8289b35" -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.3.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe2629860ff04c17bafa9ba4bed8850a404ecac81074113e1f840dbd0ebb7bd6" +checksum = "879a9ebad0d77383d3ea71e7de50503554961ff0f4ef6cbca39ad126e6f6da3a" dependencies = [ "bytemuck", "solana-account-info", - "solana-curve25519", + "solana-curve25519 3.1.10", "solana-instruction", "solana-instructions-sysvar", "solana-msg", "solana-program-error", - "solana-pubkey", + "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.4.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa27b9174bea869a7ebf31e0be6890bce90b1a4288bc2bbf24bd413f80ae3fde" +checksum = "a0cd59fce3dc00f563c6fa364d67c3f200d278eae681f4dc250240afcfe044b1" dependencies = [ "curve25519-dalek 4.1.3", "solana-zk-sdk", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "spl-token-group-interface" -version = "0.6.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5597b4cd76f85ce7cd206045b7dc22da8c25516573d42d267c8d1fd128db5129" +checksum = "841cbd6f2322d02719be4da1affedbe6495b1048b7b985ec9796032564026e22" dependencies = [ "bytemuck", "num-derive", "num-traits", - "solana-decode-error", + "num_enum", + "solana-address 2.6.1", "solana-instruction", - "solana-msg", + "solana-nullable", "solana-program-error", - "solana-pubkey", + "solana-zero-copy", "spl-discriminator", - "spl-pod", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] -name = "spl-token-metadata-interface" -version = "0.7.0" +name = "spl-token-interface" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "304d6e06f0de0c13a621464b1fd5d4b1bebf60d15ca71a44d3839958e0da16ee" +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 2.0.12", + "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.10.0" +name = "spl-token-metadata-interface" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7e905b849b6aba63bde8c4badac944ebb6c8e6e14817029cbe1bc16829133bd" +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 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "spl-type-length-value" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d417eb548214fa822d93f84444024b4e57c13ed6719d4dcc68eec24fb481e9f5" +checksum = "ca20a1a19f4507a98ca4b28ff5ed54cac9b9d34ed27863e2bde50a3238f9a6ac" dependencies = [ "bytemuck", "num-derive", "num-traits", + "num_enum", "solana-account-info", - "solana-decode-error", "solana-msg", "solana-program-error", "spl-discriminator", "spl-pod", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -9696,9 +10096,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "1.1.3" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33bd753c739f7307ce20950983f7fa4371780815225043fe330122c613f42a99" +checksum = "ec005042c7d952febc1a3ef5b0f6674e9054aa836877a31c90b20e25b3d31744" dependencies = [ "paste", "proc-macro2", @@ -9746,9 +10146,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tar" -version = "0.4.44" +version = "0.4.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" +checksum = "3f6221d9a6003c78398e3b239969f352578258df48c8eb051caadae0015bc840" dependencies = [ "filetime", "libc", @@ -9843,7 +10243,7 @@ dependencies = [ "ibc-core-commitment-types", "ibc-core-host-types", "tendermint-light-client-solana", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -9859,7 +10259,7 @@ dependencies = [ "tendermint-light-client-solana", "tendermint-light-client-update-client", "tendermint-light-client-verifier", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -9874,7 +10274,7 @@ dependencies = [ "solana-ibc-types", "solana-keccak-hasher", "solana-msg", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sha256-hasher", "tendermint", "tendermint-light-client-verifier", @@ -9894,7 +10294,7 @@ dependencies = [ "tendermint", "tendermint-light-client-solana", "tendermint-light-client-verifier", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -9947,8 +10347,10 @@ dependencies = [ "bincode", "mollusk-svm", "solana-ibc-types", + "solana-instructions-sysvar", "solana-program-test", "solana-sdk", + "solana-sdk-ids", "tokio", ] @@ -9969,6 +10371,7 @@ dependencies = [ "solana-ibc-types", "solana-program-test", "solana-sdk", + "solana-sdk-ids", "test-cpi-proxy", "tokio", ] @@ -9982,6 +10385,7 @@ dependencies = [ "mollusk-svm", "mollusk-svm-bencher", "solana-sdk", + "solana-sdk-ids", ] [[package]] @@ -9994,6 +10398,7 @@ dependencies = [ "prost", "solana-ibc-macros", "solana-ibc-types", + "solana-instructions-sysvar", ] [[package]] @@ -10007,11 +10412,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]] @@ -10027,9 +10432,9 @@ dependencies = [ [[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", @@ -10085,15 +10490,6 @@ dependencies = [ "time-core", ] -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - [[package]] name = "tinystr" version = "0.8.1" @@ -10121,50 +10517,39 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.45.0" +version = "1.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2513ca694ef9ede0fb23fe71a4ee4107cb102b9dc1930f6d0fd77aae068ae165" +checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" dependencies = [ - "backtrace", "bytes", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.6.5", "tokio-macros", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" -version = "2.5.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" dependencies = [ "proc-macro2", "quote", "syn 2.0.117", ] -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ - "rustls 0.23.27", + "rustls", "tokio", ] @@ -10176,7 +10561,7 @@ checksum = "911a61637386b789af998ee23f50aa30d5fd7edcec8d6d3dedae5e5815205466" dependencies = [ "bincode", "bytes", - "educe", + "educe 0.4.23", "futures-core", "futures-sink", "pin-project", @@ -10197,17 +10582,18 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.20.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +checksum = "d25a406cddcc431a75d3d9afc6a7c0f7428d4891dd973e4d54c56b46127bf857" dependencies = [ "futures-util", "log", - "rustls 0.21.12", + "rustls", + "rustls-pki-types", "tokio", - "tokio-rustls 0.24.1", + "tokio-rustls", "tungstenite", - "webpki-roots 0.25.4", + "webpki-roots 0.26.11", ] [[package]] @@ -10227,36 +10613,43 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.15" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" dependencies = [ "bytes", "futures-core", "futures-sink", + "futures-util", "pin-project-lite", "tokio", ] [[package]] name = "toml" -version = "0.5.11" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +checksum = "05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae" dependencies = [ "serde", + "serde_spanned 0.6.8", + "toml_datetime 0.6.9", + "toml_edit 0.22.26", ] [[package]] name = "toml" -version = "0.8.22" +version = "0.9.12+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae" +checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit", + "indexmap 2.14.0", + "serde_core", + "serde_spanned 1.1.1", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 0.7.15", ] [[package]] @@ -10268,18 +10661,57 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.7.5+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_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.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.14.0", "serde", - "serde_spanned", - "toml_datetime", + "serde_spanned 0.6.8", + "toml_datetime 0.6.9", "toml_write", - "winnow", + "winnow 0.7.15", +] + +[[package]] +name = "toml_edit" +version = "0.25.13+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6975367e4d2ef766d86af01ffad14b622fecc8d4357a998fbc4deb6e9bacaf9b" +dependencies = [ + "indexmap 2.14.0", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "winnow 1.0.4", +] + +[[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.4", ] [[package]] @@ -10288,6 +10720,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076" +[[package]] +name = "toml_writer" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2" + [[package]] name = "tower" version = "0.5.2" @@ -10305,20 +10743,25 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.6" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" dependencies = [ - "bitflags", + "async-compression", + "bitflags 2.9.1", "bytes", + "futures-core", "futures-util", "http 1.3.1", "http-body", - "iri-string", + "http-body-util", "pin-project-lite", + "tokio", + "tokio-util 0.7.18", "tower", "tower-layer", "tower-service", + "url", ] [[package]] @@ -10413,30 +10856,29 @@ dependencies = [ [[package]] name = "tungstenite" -version = "0.20.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +checksum = "8628dcc84e5a09eb3d8423d6cb682965dea9133204e8fb3efee74c2a0c259442" dependencies = [ - "byteorder", "bytes", "data-encoding", - "http 0.2.12", + "http 1.3.1", "httparse", "log", - "rand 0.8.5", - "rustls 0.21.12", + "rand 0.9.5", + "rustls", + "rustls-pki-types", "sha1", - "thiserror 1.0.69", - "url", + "thiserror 2.0.18", "utf-8", - "webpki-roots 0.24.0", + "webpki-roots 0.26.11", ] [[package]] name = "typenum" -version = "1.18.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "ucd-trie" @@ -10486,13 +10928,19 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +[[package]] +name = "unit-prefix" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81e544489bf3d8ef66c953931f56617f423cd4b5494be343d9b9d3dda037b9a3" + [[package]] name = "universal-hash" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ - "crypto-common", + "crypto-common 0.1.6", "subtle", ] @@ -10529,13 +10977,14 @@ dependencies = [ [[package]] name = "url" -version = "2.5.4" +version = "2.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" dependencies = [ "form_urlencoded", "idna", "percent-encoding", + "serde", ] [[package]] @@ -10550,6 +10999,12 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + [[package]] name = "valuable" version = "0.1.1" @@ -10714,15 +11169,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki-root-certs" -version = "0.26.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" -dependencies = [ - "webpki-root-certs 1.0.6", -] - [[package]] name = "webpki-root-certs" version = "1.0.6" @@ -10734,19 +11180,13 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.24.0" +version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b291546d5d9d1eab74f069c77749f2cb8504a12caa20f0f2de93ddbf6f411888" +checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "rustls-webpki 0.101.7", + "webpki-roots 1.0.2", ] -[[package]] -name = "webpki-roots" -version = "0.25.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - [[package]] name = "webpki-roots" version = "1.0.2" @@ -10756,16 +11196,6 @@ dependencies = [ "rustls-pki-types", ] -[[package]] -name = "wide" -version = "0.7.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03" -dependencies = [ - "bytemuck", - "safe_arch", -] - [[package]] name = "winapi" version = "0.3.9" @@ -10797,6 +11227,31 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "wincode" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66d967db7705dc29120bb6e8ce5b5a2e27734ed5976d1c904e95bd238d1c3c5a" +dependencies = [ + "pastey", + "proc-macro2", + "quote", + "thiserror 2.0.18", + "wincode-derive", +] + +[[package]] +name = "wincode-derive" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15ab90b719560d0fda79c74550ad1c948d17b118765942838055ebaf34d67071" +dependencies = [ + "darling 0.23.0", + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "windows-core" version = "0.61.2" @@ -11021,9 +11476,18 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.7.10" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" dependencies = [ "memchr", ] @@ -11034,7 +11498,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags", + "bitflags 2.9.1", ] [[package]] @@ -11198,6 +11662,12 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" + [[package]] name = "zstd" version = "0.13.3" diff --git a/programs/solana/Cargo.toml b/programs/solana/Cargo.toml index fda15b8b9..760418104 100644 --- a/programs/solana/Cargo.toml +++ b/programs/solana/Cargo.toml @@ -77,11 +77,10 @@ keywords = [ ] [workspace.dependencies] -anchor-lang = { version = "0.32.1", default-features = false } -anchor-spl = { version = "0.32.1" } +anchor-lang = { version = "=1.1.2", default-features = false } +anchor-spl = { version = "=1.1.2" } # Parent workspace packages referenced via path dependencies (not added to root workspace.dependencies) -# This maintains independence between workspaces, allowing root to use borsh 1.x while Solana uses borsh 0.10.4 tendermint-light-client-update-client = { path = "../../packages/tendermint-light-client/update-client", default-features = false } tendermint-light-client-membership = { path = "../../packages/tendermint-light-client/membership", default-features = false } tendermint-light-client-misbehaviour = { path = "../../packages/tendermint-light-client/misbehaviour", default-features = false } @@ -115,17 +114,18 @@ thiserror = { version = "2.0", default-features = false } bech32 = { version = "0.11", default-features = false } hex = { version = "0.4", default-features = false } prost = { version = "0.13", default-features = false } -borsh = { version = "0.10.4", default-features = false } +borsh = { version = "=1.5.7", default-features = false } # Build dependencies prost-build = { version = "0.13", default-features = false } # Testing -mollusk-svm = { version = "0.4.1", default-features = false } -mollusk-svm-bencher = { version = "0.4.1", default-features = false } -mollusk-svm-programs-token = { version = "0.4.1", default-features = false, features = ["token", "token-2022"] } -solana-program-test = "2.3" -solana-sdk = { version = "2.3.1", default-features = false } +mollusk-svm = { version = "~0.12", default-features = false } +mollusk-svm-bencher = { version = "~0.12", default-features = false } +mollusk-svm-programs-token = { version = "~0.12", default-features = false, features = ["token", "token-2022"] } +solana-program-test = "=3.1.10" +solana-sdk = { version = "=3.0.0", default-features = false } +solana-compute-budget-interface = { version = "=3.0.0", default-features = false } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" bincode = "1.3" @@ -133,17 +133,17 @@ rstest = "0.26" ed25519-dalek = { version = "2.1", features = ["rand_core"] } rand = "0.8" -## TODO: Update on anchor 1.0 when it will support rust edition 2004 -alloy-primitives = { version = "~1.1", default-features = false, features = ["k256"] } -alloy-signer = { version = "~1.0", default-features = false } -alloy-signer-local = { version = "~1.0", default-features = false } -alloy-sol-types = { version = "~1.1", default-features = false } - -## TODO: Update on anchor 1.0 when it will support anchor sdk v3 -solana-sha256-hasher = { version = "2.2", default-features = false } -solana-keccak-hasher = { version = "2.2", default-features = false } -solana-sdk-ids = { version = "2.2", default-features = false } -solana-secp256k1-recover = { version = "2.2", default-features = false } +alloy-primitives = { version = "1.5", default-features = false, features = ["k256"] } +alloy-signer = { version = "2.0", default-features = false } +alloy-signer-local = { version = "2.0", default-features = false } +alloy-sol-types = { version = "1.5", default-features = false } + +solana-sha256-hasher = { version = "=3.1.0", default-features = false } +solana-keccak-hasher = { version = "=3.1.0", default-features = false } +solana-instructions-sysvar = { version = "=3.0.1", default-features = false } +solana-sdk-ids = { version = "=3.1.0", default-features = false } +solana-secp256k1-recover = { version = "=3.0.0", default-features = false } +solana-system-interface = { version = "=2.0.0", default-features = false, features = ["bincode"] } [profile.dev] debug = 0 diff --git a/programs/solana/integration-tests/Cargo.toml b/programs/solana/integration-tests/Cargo.toml index 8ba29e2ee..754a910f1 100644 --- a/programs/solana/integration-tests/Cargo.toml +++ b/programs/solana/integration-tests/Cargo.toml @@ -36,6 +36,9 @@ solana-ibc-gmp-types = { workspace = true } solana-ibc-constants = { workspace = true } solana-ibc-proto = { workspace = true } solana-sdk = { workspace = true, features = ["full"] } +solana-sdk-ids.workspace = true +solana-compute-budget-interface.workspace = true +solana-system-interface.workspace = true solana-program-test = { workspace = true } prost = { workspace = true } borsh = { workspace = true } diff --git a/programs/solana/integration-tests/src/actors/deployer.rs b/programs/solana/integration-tests/src/actors/deployer.rs index 026e0ec47..df6ea6531 100644 --- a/programs/solana/integration-tests/src/actors/deployer.rs +++ b/programs/solana/integration-tests/src/actors/deployer.rs @@ -8,12 +8,13 @@ use super::Actor; use crate::admin::Admin; use crate::chain::{Chain, ChainProgram, InitStepSigner}; use crate::relayer::Relayer; +use anchor_lang::solana_program::bpf_loader_upgradeable; use solana_ibc_sdk::access_manager::instructions as am_sdk; use solana_ibc_sdk::ics26_router::instructions as router_sdk; use solana_ibc_sdk::ics26_router::types::CounterpartyInfo; use solana_sdk::{ - bpf_loader_upgradeable, instruction::Instruction, pubkey::Pubkey, signature::Keypair, - signer::Signer, transaction::Transaction, + instruction::Instruction, pubkey::Pubkey, signature::Keypair, signer::Signer, + transaction::Transaction, }; /// Deployer / upgrade-authority actor. diff --git a/programs/solana/integration-tests/src/actors/relayer.rs b/programs/solana/integration-tests/src/actors/relayer.rs index 5ca999165..9f46189f2 100644 --- a/programs/solana/integration-tests/src/actors/relayer.rs +++ b/programs/solana/integration-tests/src/actors/relayer.rs @@ -9,8 +9,9 @@ use crate::chain::Chain; use crate::gmp::{self, GmpAckPacketParams, GmpRecvPacketParams, GmpTimeoutPacketParams}; use crate::ift::{self, IftGmpAckPacketParams, IftGmpTimeoutPacketParams, TokenKind}; use crate::router::{self, AckPacketParams, RecvPacketParams, RecvResult, TimeoutPacketParams}; +use solana_compute_budget_interface::ComputeBudgetInstruction; use solana_program_test::BanksClientError; -use solana_sdk::{compute_budget::ComputeBudgetInstruction, pubkey::Pubkey, signature::Keypair}; +use solana_sdk::{pubkey::Pubkey, signature::Keypair}; /// Relayer actor that uploads chunks and delivers IBC packets. pub struct Relayer { diff --git a/programs/solana/integration-tests/src/attestation.rs b/programs/solana/integration-tests/src/attestation.rs index cc545ca07..bd5889f35 100644 --- a/programs/solana/integration-tests/src/attestation.rs +++ b/programs/solana/integration-tests/src/attestation.rs @@ -7,7 +7,6 @@ use crate::attestor::Attestors; use alloy_sol_types::SolValue; use attestation::crypto::AttestationType; use attestation::types::{MembershipProof, PacketAttestation, PacketCompact, StateAttestation}; -use borsh::BorshSerialize; use ics26_router::ics24::{ packet_acknowledgement_commitment_path, packet_commitment_path, packet_receipt_commitment_path, }; @@ -40,7 +39,7 @@ pub fn build_update_client_ix_for_program( .args(&attestation_sdk::UpdateClientArgs { new_height: height, params: UpdateClientParams { - proof: proof.try_to_vec().expect("MembershipProof serialization"), + proof: borsh::to_vec(&proof).expect("MembershipProof serialization"), }, }) .build() @@ -149,7 +148,7 @@ pub fn build_packet_membership_proof( /// Borsh-serialize a `MembershipProof` into the byte vector expected by /// the router's `MsgProof.proof` field. pub fn serialize_proof(proof: &MembershipProof) -> Vec { - proof.try_to_vec().expect("MembershipProof serialization") + borsh::to_vec(proof).expect("MembershipProof serialization") } /// Build a serialized recv proof: read commitment from the source chain, diff --git a/programs/solana/integration-tests/src/chain.rs b/programs/solana/integration-tests/src/chain.rs index 85aadbecc..f459593fc 100644 --- a/programs/solana/integration-tests/src/chain.rs +++ b/programs/solana/integration-tests/src/chain.rs @@ -8,18 +8,13 @@ use crate::actors::admin::Admin; use crate::actors::deployer::Deployer; use crate::actors::relayer::Relayer; use crate::Actor; +use anchor_lang::solana_program::bpf_loader_upgradeable::{self, UpgradeableLoaderState}; use solana_program_test::{BanksClient, BanksClientError, ProgramTest}; use solana_sdk::{ - account::Account, - bpf_loader_upgradeable::{self, UpgradeableLoaderState}, - hash::Hash, - instruction::Instruction, - pubkey::Pubkey, - signature::Keypair, - system_program, - sysvar::Sysvar as _, - transaction::Transaction, + account::Account, hash::Hash, instruction::Instruction, pubkey::Pubkey, signature::Keypair, + sysvar::SysvarSerialize as _, transaction::Transaction, }; +use solana_sdk_ids::system_program; const DEPLOY_DIR: &str = "../target/deploy"; /// Deterministic Unix timestamp used for every test chain clock. @@ -391,7 +386,7 @@ fn build_program_test(config: &ChainConfig<'_>) -> ProgramTest { Account { lamports: 1, data: clock_data, - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, }, diff --git a/programs/solana/integration-tests/src/gmp.rs b/programs/solana/integration-tests/src/gmp.rs index 2b6a9c67b..83a0ca1d5 100644 --- a/programs/solana/integration-tests/src/gmp.rs +++ b/programs/solana/integration-tests/src/gmp.rs @@ -16,8 +16,8 @@ use solana_ibc_sdk::ics27_gmp::types::{OnRecvPacketMsg, Payload, SendCallMsg}; use solana_sdk::{ instruction::{AccountMeta, Instruction}, pubkey::Pubkey, - system_program, }; +use solana_sdk_ids::system_program; /// IBC port identifier used by `ics27_gmp`. pub const GMP_PORT_ID: &str = "gmpport"; diff --git a/programs/solana/integration-tests/src/programs.rs b/programs/solana/integration-tests/src/programs.rs index a3d9f9e23..9efa5040d 100644 --- a/programs/solana/integration-tests/src/programs.rs +++ b/programs/solana/integration-tests/src/programs.rs @@ -7,6 +7,7 @@ use crate::accounts::account_owned_by; use crate::attestor::Attestors; use crate::chain::{add_program_data, mock_ibc_app_state_pda, ChainProgram, InitStepSigner}; +use anchor_lang::solana_program::bpf_loader_upgradeable; use anchor_lang::InstructionData; use solana_ibc_sdk::access_manager::instructions as am_sdk; use solana_ibc_sdk::attestation::instructions as attestation_sdk; @@ -19,8 +20,8 @@ use solana_sdk::{ pubkey::Pubkey, signature::Keypair, signer::Signer as _, - system_program, }; +use solana_sdk_ids::system_program; /// Program ID of the primary attestation light client. pub const ATTESTATION_PROGRAM_ID: Pubkey = attestation::ID; @@ -269,7 +270,7 @@ impl ChainProgram for AttestationLc { let payer = deployer.pubkey(); let pid = self.program_id; let (program_data_pda, _) = - Pubkey::find_program_address(&[pid.as_ref()], &solana_sdk::bpf_loader_upgradeable::ID); + Pubkey::find_program_address(&[pid.as_ref()], &bpf_loader_upgradeable::ID); let ix = attestation_sdk::Initialize::builder(&pid) .accounts(attestation_sdk::InitializeAccounts { @@ -310,7 +311,7 @@ impl ChainProgram for TestAccessManager { let payer = deployer.pubkey(); let (program_data_pda, _) = Pubkey::find_program_address( &[test_access_manager::ID.as_ref()], - &solana_sdk::bpf_loader_upgradeable::ID, + &bpf_loader_upgradeable::ID, ); let init_ix = am_sdk::Initialize::builder(&test_access_manager::ID) diff --git a/programs/solana/integration-tests/src/router.rs b/programs/solana/integration-tests/src/router.rs index 465803171..a3d9f53fd 100644 --- a/programs/solana/integration-tests/src/router.rs +++ b/programs/solana/integration-tests/src/router.rs @@ -17,8 +17,8 @@ use solana_ibc_sdk::ics26_router::types::{ use solana_sdk::{ instruction::{AccountMeta, Instruction}, pubkey::Pubkey, - system_program, }; +use solana_sdk_ids::system_program; /// Default source port used by `test_ibc_app`. pub const PORT_ID: &str = "transfer"; diff --git a/programs/solana/integration-tests/tests/gmp/failed_execution.rs b/programs/solana/integration-tests/tests/gmp/failed_execution.rs index f18a3fdb1..0f9231ada 100644 --- a/programs/solana/integration-tests/tests/gmp/failed_execution.rs +++ b/programs/solana/integration-tests/tests/gmp/failed_execution.rs @@ -1,6 +1,7 @@ use super::*; use solana_ibc_proto::{RawGmpSolanaPayload, RawSolanaAccountMeta}; -use solana_sdk::{instruction::AccountMeta, pubkey::Pubkey, system_program}; +use solana_sdk::{instruction::AccountMeta, pubkey::Pubkey}; +use solana_sdk_ids::system_program; /// When the target CPI fails (wrong PDA), the entire recv transaction reverts /// and no receipt or ack is created. diff --git a/programs/solana/integration-tests/tests/gmp/signer_exploit.rs b/programs/solana/integration-tests/tests/gmp/signer_exploit.rs index 98fb6c3f9..6909f5fa3 100644 --- a/programs/solana/integration-tests/tests/gmp/signer_exploit.rs +++ b/programs/solana/integration-tests/tests/gmp/signer_exploit.rs @@ -1,7 +1,8 @@ use super::*; use integration_tests::accounts::anchor_discriminator; use solana_ibc_proto::{RawGmpSolanaPayload, RawSolanaAccountMeta}; -use solana_sdk::{instruction::AccountMeta, system_program}; +use solana_sdk::instruction::AccountMeta; +use solana_sdk_ids::system_program; /// An attacker who substitutes the relayer pubkey (a signer) into the GMP /// payload accounts is caught by the `UnexpectedSigner` check. diff --git a/programs/solana/integration-tests/tests/gmp/signer_exploit_sol_transfer.rs b/programs/solana/integration-tests/tests/gmp/signer_exploit_sol_transfer.rs index 9d4786468..3c8d5e63c 100644 --- a/programs/solana/integration-tests/tests/gmp/signer_exploit_sol_transfer.rs +++ b/programs/solana/integration-tests/tests/gmp/signer_exploit_sol_transfer.rs @@ -1,6 +1,8 @@ use super::*; use solana_ibc_proto::{RawGmpSolanaPayload, RawSolanaAccountMeta}; -use solana_sdk::{instruction::AccountMeta, system_instruction, system_program}; +use solana_sdk::instruction::AccountMeta; +use solana_sdk_ids::system_program; +use solana_system_interface::instruction as system_instruction; /// Lamports the attacker tries to siphon from the relayer in the exploit /// payload. Any non-zero value works because the GMP signer-check rejects diff --git a/programs/solana/integration-tests/tests/gmp/three_chain.rs b/programs/solana/integration-tests/tests/gmp/three_chain.rs index e0d6bf9e1..a990a5177 100644 --- a/programs/solana/integration-tests/tests/gmp/three_chain.rs +++ b/programs/solana/integration-tests/tests/gmp/three_chain.rs @@ -1,7 +1,7 @@ use super::*; use integration_tests::chain::attestation_lc_accounts as att_lc_accounts; use integration_tests::programs::{ATTESTATION_PROGRAM_ID, TEST_ATTESTATION_ID}; -use solana_sdk::compute_budget::ComputeBudgetInstruction; +use solana_compute_budget_interface::ComputeBudgetInstruction; use solana_sdk::transaction::Transaction; /// Three-chain full-circle roundtrip: A→B→C→A→C→B→A. diff --git a/programs/solana/integration-tests/tests/ift/three_chain.rs b/programs/solana/integration-tests/tests/ift/three_chain.rs index 76dcc6197..d59c43184 100644 --- a/programs/solana/integration-tests/tests/ift/three_chain.rs +++ b/programs/solana/integration-tests/tests/ift/three_chain.rs @@ -2,7 +2,7 @@ use super::*; use integration_tests::chain::{attestation_lc_accounts, ChainConfig}; use integration_tests::gmp::{self, GmpAckPacketParams, GmpRecvPacketParams}; use integration_tests::programs::{AttestationLc, ATTESTATION_PROGRAM_ID, TEST_ATTESTATION_ID}; -use solana_sdk::compute_budget::ComputeBudgetInstruction; +use solana_compute_budget_interface::ComputeBudgetInstruction; use solana_sdk::transaction::Transaction; /// Three-chain full-circle IFT roundtrip: A→B→C→A→C→B→A. diff --git a/programs/solana/packages/solana-ibc-borsh-header/Cargo.toml b/programs/solana/packages/solana-ibc-borsh-header/Cargo.toml index 4ca3c54fe..ecec6736f 100644 --- a/programs/solana/packages/solana-ibc-borsh-header/Cargo.toml +++ b/programs/solana/packages/solana-ibc-borsh-header/Cargo.toml @@ -10,10 +10,8 @@ keywords = ["cosmos", "ibc", "solana", "tendermint", "borsh"] categories = ["cryptography", "blockchain"] [dependencies] -# Explicitly pin borsh 0.10.4 for Anchor compatibility (not workspace = true). -# This ensures correct version even when built from root workspace context via path dependencies. # std feature required because direct deserialization uses std::io. -borsh = { version = "0.10.4", default-features = false, features = ["std"] } +borsh = { version = "=1.5.7", default-features = false, features = ["std"] } # Dependencies for light-client feature ibc-client-tendermint = { workspace = true, optional = true } diff --git a/programs/solana/packages/solana-ibc-gmp-types/Cargo.toml b/programs/solana/packages/solana-ibc-gmp-types/Cargo.toml index 78bc9837b..e61bdcd2b 100644 --- a/programs/solana/packages/solana-ibc-gmp-types/Cargo.toml +++ b/programs/solana/packages/solana-ibc-gmp-types/Cargo.toml @@ -11,8 +11,7 @@ categories = ["cryptography", "blockchain"] [dependencies] anchor-lang.workspace = true -# Explicitly pin borsh 0.10.4 for Anchor compatibility (not workspace = true). -borsh = { version = "0.10.4", default-features = false } +borsh = { version = "=1.5.7", default-features = false } solana-sha256-hasher.workspace = true solana-ibc-proto = { path = "../solana-ibc-proto" } diff --git a/programs/solana/packages/solana-ibc-macros/src/lib.rs b/programs/solana/packages/solana-ibc-macros/src/lib.rs index c522bc26a..5e06c7ec8 100644 --- a/programs/solana/packages/solana-ibc-macros/src/lib.rs +++ b/programs/solana/packages/solana-ibc-macros/src/lib.rs @@ -104,7 +104,7 @@ const IBC_CALLBACKS: &[CallbackConfig] = &[ /// use super::*; /// /// pub fn on_recv_packet<'info>( -/// ctx: Context<'_, '_, '_, 'info, OnRecvPacket<'info>>, +/// ctx: Context<'info, OnRecvPacket<'info>>, /// msg: OnRecvPacketMsg, /// ) -> Result> { /// // Handle received packet diff --git a/programs/solana/packages/solana-ibc-sdk/Cargo.toml b/programs/solana/packages/solana-ibc-sdk/Cargo.toml index 917ad4b1d..2814ced6f 100644 --- a/programs/solana/packages/solana-ibc-sdk/Cargo.toml +++ b/programs/solana/packages/solana-ibc-sdk/Cargo.toml @@ -11,6 +11,8 @@ categories = ["cryptography", "blockchain"] [dependencies] anchor-lang.workspace = true +borsh.workspace = true +solana-instructions-sysvar.workspace = true [build-dependencies] solana-ibc-sdk-codegen = { path = "codegen" } diff --git a/programs/solana/packages/solana-ibc-sdk/codegen/src/instruction_gen.rs b/programs/solana/packages/solana-ibc-sdk/codegen/src/instruction_gen.rs index 45619503e..8df249f31 100644 --- a/programs/solana/packages/solana-ibc-sdk/codegen/src/instruction_gen.rs +++ b/programs/solana/packages/solana-ibc-sdk/codegen/src/instruction_gen.rs @@ -880,7 +880,7 @@ mod tests { let mut output = String::new(); generate_instruction_struct(&mut output, &instruction, &type_map, &names); - assert!(output.contains("anchor_lang::solana_program::sysvar::instructions::ID")); + assert!(output.contains("solana_instructions_sysvar::ID")); assert!(output.contains("AccountMeta::new_readonly")); } diff --git a/programs/solana/packages/solana-ibc-sdk/codegen/src/util.rs b/programs/solana/packages/solana-ibc-sdk/codegen/src/util.rs index 0364846ad..ebbe14cbc 100644 --- a/programs/solana/packages/solana-ibc-sdk/codegen/src/util.rs +++ b/programs/solana/packages/solana-ibc-sdk/codegen/src/util.rs @@ -89,7 +89,7 @@ pub fn address_to_rust_expr(address: &str) -> String { "anchor_lang::solana_program::system_program::ID".to_string() } "Sysvar1nstructions1111111111111111111111111" => { - "anchor_lang::solana_program::sysvar::instructions::ID".to_string() + "solana_instructions_sysvar::ID".to_string() } other => format!("Pubkey::from_str_const(\"{other}\")"), } @@ -172,7 +172,7 @@ mod tests { ); assert_eq!( address_to_rust_expr("Sysvar1nstructions1111111111111111111111111"), - "anchor_lang::solana_program::sysvar::instructions::ID" + "solana_instructions_sysvar::ID" ); assert_eq!( address_to_rust_expr("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"), diff --git a/programs/solana/packages/solana-ibc-sdk/src/generated/access_manager/instructions.rs b/programs/solana/packages/solana-ibc-sdk/src/generated/access_manager/instructions.rs index 0eec9d1e1..c3174ae99 100644 --- a/programs/solana/packages/solana-ibc-sdk/src/generated/access_manager/instructions.rs +++ b/programs/solana/packages/solana-ibc-sdk/src/generated/access_manager/instructions.rs @@ -99,7 +99,7 @@ impl InitializeBuilder { AccountMeta::new(access_manager, false), AccountMeta::new(accounts.payer, true), AccountMeta::new_readonly(anchor_lang::solana_program::system_program::ID, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), AccountMeta::new_readonly(accounts.program_data, false), AccountMeta::new_readonly(accounts.authority, true), ]; @@ -186,7 +186,7 @@ impl GrantRoleBuilder { let mut account_metas = vec![ AccountMeta::new(access_manager, false), AccountMeta::new_readonly(accounts.admin, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -271,7 +271,7 @@ impl RevokeRoleBuilder { let mut account_metas = vec![ AccountMeta::new(access_manager, false), AccountMeta::new_readonly(accounts.admin, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -355,7 +355,7 @@ impl RenounceRoleBuilder { let mut account_metas = vec![ AccountMeta::new(access_manager, false), AccountMeta::new_readonly(accounts.caller, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -456,7 +456,7 @@ impl UpgradeProgramBuilder { AccountMeta::new(upgrade_authority, false), AccountMeta::new(accounts.spill, false), AccountMeta::new_readonly(accounts.authority, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), AccountMeta::new_readonly( Pubkey::from_str_const("BPFLoaderUpgradeab1e11111111111111111111111"), false, @@ -554,7 +554,7 @@ impl ProposeUpgradeAuthorityTransferBuilder { let mut account_metas = vec![ AccountMeta::new(access_manager, false), AccountMeta::new_readonly(accounts.admin, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -740,7 +740,7 @@ impl CancelUpgradeAuthorityTransferBuilder { let mut account_metas = vec![ AccountMeta::new(access_manager, false), AccountMeta::new_readonly(accounts.admin, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -824,7 +824,7 @@ impl SetWhitelistedProgramsBuilder { let mut account_metas = vec![ AccountMeta::new(access_manager, false), AccountMeta::new_readonly(accounts.admin, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -944,7 +944,7 @@ impl ClaimUpgradeAuthorityBuilder { ), AccountMeta::new_readonly(am_state, false), AccountMeta::new_readonly(accounts.admin, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { diff --git a/programs/solana/packages/solana-ibc-sdk/src/generated/attestation/instructions.rs b/programs/solana/packages/solana-ibc-sdk/src/generated/attestation/instructions.rs index 6643e94b5..7a6f8fa83 100644 --- a/programs/solana/packages/solana-ibc-sdk/src/generated/attestation/instructions.rs +++ b/programs/solana/packages/solana-ibc-sdk/src/generated/attestation/instructions.rs @@ -195,7 +195,7 @@ impl ProposeAccessManagerTransferBuilder { AccountMeta::new(app_state, false), AccountMeta::new_readonly(accounts.access_manager, false), AccountMeta::new_readonly(accounts.admin, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -274,7 +274,7 @@ impl AcceptAccessManagerTransferBuilder { AccountMeta::new(app_state, false), AccountMeta::new_readonly(accounts.new_am_state, false), AccountMeta::new_readonly(accounts.admin, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -348,7 +348,7 @@ impl CancelAccessManagerTransferBuilder { AccountMeta::new(app_state, false), AccountMeta::new_readonly(accounts.am_state, false), AccountMeta::new_readonly(accounts.admin, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -620,7 +620,7 @@ impl UpdateClientBuilder { AccountMeta::new(consensus_state_store, false), AccountMeta::new_readonly(app_state, false), AccountMeta::new_readonly(accounts.access_manager, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), AccountMeta::new(accounts.submitter, true), AccountMeta::new_readonly(anchor_lang::solana_program::system_program::ID, false), ]; diff --git a/programs/solana/packages/solana-ibc-sdk/src/generated/ics07_tendermint/instructions.rs b/programs/solana/packages/solana-ibc-sdk/src/generated/ics07_tendermint/instructions.rs index 76a3a2797..825012cd3 100644 --- a/programs/solana/packages/solana-ibc-sdk/src/generated/ics07_tendermint/instructions.rs +++ b/programs/solana/packages/solana-ibc-sdk/src/generated/ics07_tendermint/instructions.rs @@ -207,7 +207,7 @@ impl ProposeAccessManagerTransferBuilder { AccountMeta::new(app_state, false), AccountMeta::new_readonly(accounts.access_manager, false), AccountMeta::new_readonly(accounts.admin, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -286,7 +286,7 @@ impl AcceptAccessManagerTransferBuilder { AccountMeta::new(app_state, false), AccountMeta::new_readonly(accounts.new_am_state, false), AccountMeta::new_readonly(accounts.admin, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -360,7 +360,7 @@ impl CancelAccessManagerTransferBuilder { AccountMeta::new(app_state, false), AccountMeta::new_readonly(accounts.am_state, false), AccountMeta::new_readonly(accounts.admin, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -620,7 +620,7 @@ impl UploadHeaderChunkBuilder { AccountMeta::new_readonly(app_state, false), AccountMeta::new_readonly(accounts.access_manager, false), AccountMeta::new(accounts.submitter, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), AccountMeta::new_readonly(anchor_lang::solana_program::system_program::ID, false), ]; account_metas.extend(self.remaining_accounts); @@ -745,7 +745,7 @@ impl AssembleAndUpdateClientBuilder { AccountMeta::new(new_consensus_state_store, false), AccountMeta::new(accounts.submitter, true), AccountMeta::new_readonly(anchor_lang::solana_program::system_program::ID, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -896,7 +896,7 @@ impl UploadMisbehaviourChunkBuilder { AccountMeta::new_readonly(app_state, false), AccountMeta::new_readonly(accounts.access_manager, false), AccountMeta::new(accounts.submitter, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), AccountMeta::new_readonly(anchor_lang::solana_program::system_program::ID, false), ]; account_metas.extend(self.remaining_accounts); @@ -1028,7 +1028,7 @@ impl AssembleAndSubmitMisbehaviourBuilder { AccountMeta::new_readonly(trusted_consensus_state_1, false), AccountMeta::new_readonly(trusted_consensus_state_2, false), AccountMeta::new(accounts.submitter, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -1168,7 +1168,7 @@ impl PreVerifySignatureBuilder { let accounts = self.accounts.expect("accounts required"); let (app_state, _) = PreVerifySignature::app_state_pda(&self.program_id); let mut account_metas = vec![ - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), AccountMeta::new(accounts.signature_verification, false), AccountMeta::new_readonly(app_state, false), AccountMeta::new_readonly(accounts.access_manager, false), diff --git a/programs/solana/packages/solana-ibc-sdk/src/generated/ics26_router/instructions.rs b/programs/solana/packages/solana-ibc-sdk/src/generated/ics26_router/instructions.rs index 45e72833d..7cba455b5 100644 --- a/programs/solana/packages/solana-ibc-sdk/src/generated/ics26_router/instructions.rs +++ b/programs/solana/packages/solana-ibc-sdk/src/generated/ics26_router/instructions.rs @@ -199,7 +199,7 @@ impl<'a> AddIbcAppBuilder<'a> { AccountMeta::new(accounts.payer, true), AccountMeta::new_readonly(accounts.authority, true), AccountMeta::new_readonly(anchor_lang::solana_program::system_program::ID, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -467,7 +467,7 @@ impl<'a> RecvPacketBuilder<'a> { AccountMeta::new(accounts.ibc_app_state, false), AccountMeta::new(accounts.relayer, true), AccountMeta::new_readonly(anchor_lang::solana_program::system_program::ID, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), AccountMeta::new_readonly(client, false), AccountMeta::new_readonly(accounts.light_client_program, false), AccountMeta::new_readonly(accounts.client_state, false), @@ -598,7 +598,7 @@ impl<'a> AckPacketBuilder<'a> { AccountMeta::new(accounts.ibc_app_state, false), AccountMeta::new(accounts.relayer, true), AccountMeta::new_readonly(anchor_lang::solana_program::system_program::ID, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), AccountMeta::new_readonly(client, false), AccountMeta::new_readonly(accounts.light_client_program, false), AccountMeta::new_readonly(accounts.client_state, false), @@ -729,7 +729,7 @@ impl<'a> TimeoutPacketBuilder<'a> { AccountMeta::new(accounts.ibc_app_state, false), AccountMeta::new(accounts.relayer, true), AccountMeta::new_readonly(anchor_lang::solana_program::system_program::ID, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), AccountMeta::new_readonly(client, false), AccountMeta::new_readonly(accounts.light_client_program, false), AccountMeta::new_readonly(accounts.client_state, false), @@ -831,7 +831,7 @@ impl<'a> AddClientBuilder<'a> { AccountMeta::new(client, false), AccountMeta::new_readonly(accounts.light_client_program, false), AccountMeta::new_readonly(anchor_lang::solana_program::system_program::ID, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -926,7 +926,7 @@ impl<'a> MigrateClientBuilder<'a> { AccountMeta::new_readonly(router_state, false), AccountMeta::new_readonly(accounts.access_manager, false), AccountMeta::new(client, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -1010,7 +1010,7 @@ impl UploadPayloadChunkBuilder { AccountMeta::new(accounts.chunk, false), AccountMeta::new(accounts.relayer, true), AccountMeta::new_readonly(anchor_lang::solana_program::system_program::ID, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -1094,7 +1094,7 @@ impl UploadProofChunkBuilder { AccountMeta::new(accounts.chunk, false), AccountMeta::new(accounts.relayer, true), AccountMeta::new_readonly(anchor_lang::solana_program::system_program::ID, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -1175,7 +1175,7 @@ impl CleanupChunksBuilder { AccountMeta::new_readonly(router_state, false), AccountMeta::new_readonly(accounts.access_manager, false), AccountMeta::new(accounts.relayer, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -1261,7 +1261,7 @@ impl ProposeAccessManagerTransferBuilder { AccountMeta::new(router_state, false), AccountMeta::new_readonly(accounts.access_manager, false), AccountMeta::new_readonly(accounts.admin, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -1340,7 +1340,7 @@ impl AcceptAccessManagerTransferBuilder { AccountMeta::new(router_state, false), AccountMeta::new_readonly(accounts.new_am_state, false), AccountMeta::new_readonly(accounts.admin, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -1414,7 +1414,7 @@ impl CancelAccessManagerTransferBuilder { AccountMeta::new(router_state, false), AccountMeta::new_readonly(accounts.am_state, false), AccountMeta::new_readonly(accounts.admin, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -1488,7 +1488,7 @@ impl PauseBuilder { AccountMeta::new(router_state, false), AccountMeta::new_readonly(accounts.access_manager, false), AccountMeta::new_readonly(accounts.pauser, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -1562,7 +1562,7 @@ impl UnpauseBuilder { AccountMeta::new(router_state, false), AccountMeta::new_readonly(accounts.access_manager, false), AccountMeta::new_readonly(accounts.unpauser, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { diff --git a/programs/solana/packages/solana-ibc-sdk/src/generated/ics27_gmp/instructions.rs b/programs/solana/packages/solana-ibc-sdk/src/generated/ics27_gmp/instructions.rs index d70ddabe9..9d4841be0 100644 --- a/programs/solana/packages/solana-ibc-sdk/src/generated/ics27_gmp/instructions.rs +++ b/programs/solana/packages/solana-ibc-sdk/src/generated/ics27_gmp/instructions.rs @@ -229,7 +229,7 @@ impl SendCallBuilder { AccountMeta::new_readonly(accounts.client, false), AccountMeta::new_readonly(accounts.light_client_program, false), AccountMeta::new_readonly(accounts.client_state, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), AccountMeta::new_readonly(accounts.consensus_state, false), AccountMeta::new_readonly(anchor_lang::solana_program::system_program::ID, false), ]; @@ -358,7 +358,7 @@ impl SendCallCpiBuilder { AccountMeta::new_readonly(accounts.client, false), AccountMeta::new_readonly(accounts.light_client_program, false), AccountMeta::new_readonly(accounts.client_state, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), AccountMeta::new_readonly(accounts.consensus_state, false), AccountMeta::new_readonly(anchor_lang::solana_program::system_program::ID, false), ]; @@ -438,7 +438,7 @@ impl OnRecvPacketBuilder { let (app_state, _) = OnRecvPacket::app_state_pda(&self.program_id); let mut account_metas = vec![ AccountMeta::new(app_state, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), AccountMeta::new(accounts.payer, true), AccountMeta::new_readonly(anchor_lang::solana_program::system_program::ID, false), ]; @@ -541,7 +541,7 @@ impl<'a> OnAcknowledgementPacketBuilder<'a> { ); let mut account_metas = vec![ AccountMeta::new_readonly(app_state, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), AccountMeta::new(accounts.payer, true), AccountMeta::new_readonly(anchor_lang::solana_program::system_program::ID, false), AccountMeta::new(result_account, false), @@ -645,7 +645,7 @@ impl<'a> OnTimeoutPacketBuilder<'a> { ); let mut account_metas = vec![ AccountMeta::new_readonly(app_state, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), AccountMeta::new(accounts.payer, true), AccountMeta::new_readonly(anchor_lang::solana_program::system_program::ID, false), AccountMeta::new(result_account, false), @@ -722,7 +722,7 @@ impl PauseAppBuilder { AccountMeta::new(app_state, false), AccountMeta::new_readonly(accounts.access_manager, false), AccountMeta::new_readonly(accounts.authority, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -796,7 +796,7 @@ impl UnpauseAppBuilder { AccountMeta::new(app_state, false), AccountMeta::new_readonly(accounts.access_manager, false), AccountMeta::new_readonly(accounts.authority, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -882,7 +882,7 @@ impl ProposeAccessManagerTransferBuilder { AccountMeta::new(app_state, false), AccountMeta::new_readonly(accounts.access_manager, false), AccountMeta::new_readonly(accounts.admin, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -961,7 +961,7 @@ impl AcceptAccessManagerTransferBuilder { AccountMeta::new(app_state, false), AccountMeta::new_readonly(accounts.new_am_state, false), AccountMeta::new_readonly(accounts.admin, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -1035,7 +1035,7 @@ impl CancelAccessManagerTransferBuilder { AccountMeta::new(app_state, false), AccountMeta::new_readonly(accounts.am_state, false), AccountMeta::new_readonly(accounts.admin, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { diff --git a/programs/solana/packages/solana-ibc-sdk/src/generated/ift/instructions.rs b/programs/solana/packages/solana-ibc-sdk/src/generated/ift/instructions.rs index 16bc824ad..c3d0a59a7 100644 --- a/programs/solana/packages/solana-ibc-sdk/src/generated/ift/instructions.rs +++ b/programs/solana/packages/solana-ibc-sdk/src/generated/ift/instructions.rs @@ -202,7 +202,7 @@ impl CreateAndInitializeSplTokenBuilder { AccountMeta::new(accounts.payer, true), AccountMeta::new_readonly(accounts.token_program, false), AccountMeta::new_readonly(anchor_lang::solana_program::system_program::ID, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -395,7 +395,7 @@ impl RegisterIftBridgeBuilder { AccountMeta::new_readonly(accounts.admin, true), AccountMeta::new(accounts.payer, true), AccountMeta::new_readonly(anchor_lang::solana_program::system_program::ID, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -499,7 +499,7 @@ impl RemoveIftBridgeBuilder { AccountMeta::new_readonly(accounts.admin, true), AccountMeta::new(accounts.payer, true), AccountMeta::new_readonly(anchor_lang::solana_program::system_program::ID, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -667,7 +667,7 @@ impl IftTransferBuilder { AccountMeta::new_readonly(accounts.ibc_client, false), AccountMeta::new_readonly(accounts.light_client_program, false), AccountMeta::new_readonly(accounts.light_client_state, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), AccountMeta::new_readonly(accounts.consensus_state, false), AccountMeta::new(accounts.pending_transfer, false), ]; @@ -927,7 +927,7 @@ impl FinalizeTransferBuilder { AccountMeta::new(accounts.payer, true), AccountMeta::new_readonly(accounts.token_program, false), AccountMeta::new_readonly(anchor_lang::solana_program::system_program::ID, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -1011,7 +1011,7 @@ impl ProposeAdminBuilder { let mut account_metas = vec![ AccountMeta::new(app_state, false), AccountMeta::new_readonly(accounts.admin, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -1083,7 +1083,7 @@ impl AcceptAdminBuilder { let mut account_metas = vec![ AccountMeta::new(app_state, false), AccountMeta::new_readonly(accounts.pending_admin, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -1155,7 +1155,7 @@ impl CancelAdminProposalBuilder { let mut account_metas = vec![ AccountMeta::new(app_state, false), AccountMeta::new_readonly(accounts.admin, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -1249,7 +1249,7 @@ impl RevokeMintAuthorityBuilder { AccountMeta::new_readonly(accounts.new_mint_authority, false), AccountMeta::new(accounts.admin, true), AccountMeta::new_readonly(accounts.token_program, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -1335,7 +1335,7 @@ impl SetMintRateLimitBuilder { AccountMeta::new_readonly(app_state, false), AccountMeta::new(accounts.app_mint_state, false), AccountMeta::new_readonly(accounts.admin, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -1414,7 +1414,7 @@ impl SetPausedBuilder { let mut account_metas = vec![ AccountMeta::new(app_state, false), AccountMeta::new_readonly(accounts.admin, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { @@ -1522,7 +1522,7 @@ impl AdminMintBuilder { false, ), AccountMeta::new_readonly(anchor_lang::solana_program::system_program::ID, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; account_metas.extend(self.remaining_accounts); Instruction { diff --git a/programs/solana/packages/solana-ibc-types/Cargo.toml b/programs/solana/packages/solana-ibc-types/Cargo.toml index 9da9b9232..cd1d35985 100644 --- a/programs/solana/packages/solana-ibc-types/Cargo.toml +++ b/programs/solana/packages/solana-ibc-types/Cargo.toml @@ -13,9 +13,8 @@ categories = ["cryptography", "blockchain"] anchor-lang.workspace = true solana-sha256-hasher.workspace = true solana-keccak-hasher.workspace = true -# Explicitly pin borsh 0.10.4 for Anchor compatibility (not workspace = true). -# This ensures correct version even when built from root workspace context via path dependencies. -borsh = { version = "0.10.4", default-features = false } +solana-instructions-sysvar.workspace = true +borsh = { version = "=1.5.7", default-features = false } solana-ibc-constants = { path = "../solana-ibc-constants" } solana-ibc-proto = { path = "../solana-ibc-proto" } solana-ibc-macros = { path = "../solana-ibc-macros" } @@ -28,6 +27,7 @@ idl-build = ["anchor-lang/idl-build"] [dev-dependencies] bincode.workspace = true solana-sdk.workspace = true +solana-sdk-ids.workspace = true [lib] crate-type = ["cdylib", "lib"] diff --git a/programs/solana/packages/solana-ibc-types/src/cpi.rs b/programs/solana/packages/solana-ibc-types/src/cpi.rs index e01cb00d9..70b1a479d 100644 --- a/programs/solana/packages/solana-ibc-types/src/cpi.rs +++ b/programs/solana/packages/solana-ibc-types/src/cpi.rs @@ -1,12 +1,10 @@ use anchor_lang::{ error_code, prelude::{AccountInfo, Pubkey}, - solana_program::{ - instruction::{get_stack_height, TRANSACTION_LEVEL_STACK_HEIGHT}, - sysvar::instructions::get_instruction_relative, - }, + solana_program::instruction::{get_stack_height, TRANSACTION_LEVEL_STACK_HEIGHT}, Key, }; +use solana_instructions_sysvar::{get_instruction_relative, ID}; // # How `get_instruction_relative(0, ...)` works // @@ -98,7 +96,7 @@ pub fn reject_direct_calls() -> core::result::Result<(), CpiValidationError> { fn validate_instruction_sysvar( instruction_sysvar: &AccountInfo<'_>, ) -> core::result::Result<(), CpiValidationError> { - if instruction_sysvar.key() != anchor_lang::solana_program::sysvar::instructions::ID { + if instruction_sysvar.key() != ID { return Err(CpiValidationError::InvalidSysvar); } Ok(()) @@ -185,7 +183,7 @@ pub fn reject_cpi( #[cfg(test)] mod tests { use super::*; - use anchor_lang::solana_program::sysvar::instructions::ID as INSTRUCTIONS_SYSVAR_ID; + use solana_instructions_sysvar::ID as INSTRUCTIONS_SYSVAR_ID; use solana_sdk::sysvar::instructions::{ construct_instructions_data, BorrowedAccountMeta, BorrowedInstruction, }; @@ -211,7 +209,7 @@ mod tests { data: &'a mut [u8], owner: &'a Pubkey, ) -> AccountInfo<'a> { - AccountInfo::new(key, false, false, lamports, data, owner, false, 0) + AccountInfo::new(key, false, false, lamports, data, owner, false) } #[test] @@ -221,7 +219,7 @@ mod tests { let mut data = create_instructions_sysvar_data(&authorized_program); let mut lamports = 1_000_000u64; - let sysvar_owner = anchor_lang::solana_program::sysvar::ID; + let sysvar_owner = solana_sdk_ids::sysvar::ID; let account_info = create_test_account_info( &INSTRUCTIONS_SYSVAR_ID, @@ -243,7 +241,7 @@ mod tests { let mut data = create_instructions_sysvar_data(&unauthorized_caller); let mut lamports = 1_000_000u64; - let sysvar_owner = anchor_lang::solana_program::sysvar::ID; + let sysvar_owner = solana_sdk_ids::sysvar::ID; let account_info = create_test_account_info( &INSTRUCTIONS_SYSVAR_ID, @@ -267,7 +265,7 @@ mod tests { let mut data = create_instructions_sysvar_data(&self_program_id); let mut lamports = 1_000_000u64; - let sysvar_owner = anchor_lang::solana_program::sysvar::ID; + let sysvar_owner = solana_sdk_ids::sysvar::ID; let account_info = create_test_account_info( &INSTRUCTIONS_SYSVAR_ID, @@ -291,7 +289,7 @@ mod tests { let mut data = create_instructions_sysvar_data(&self_program_id); let mut lamports = 1_000_000u64; - let sysvar_owner = anchor_lang::solana_program::sysvar::ID; + let sysvar_owner = solana_sdk_ids::sysvar::ID; let account_info = create_test_account_info( &INSTRUCTIONS_SYSVAR_ID, @@ -317,7 +315,7 @@ mod tests { let mut data = create_instructions_sysvar_data(&whitelisted_caller); let mut lamports = 1_000_000u64; - let sysvar_owner = anchor_lang::solana_program::sysvar::ID; + let sysvar_owner = solana_sdk_ids::sysvar::ID; let account_info = create_test_account_info( &INSTRUCTIONS_SYSVAR_ID, @@ -343,7 +341,7 @@ mod tests { let mut data = create_instructions_sysvar_data(&unauthorized_caller); let mut lamports = 1_000_000u64; - let sysvar_owner = anchor_lang::solana_program::sysvar::ID; + let sysvar_owner = solana_sdk_ids::sysvar::ID; let account_info = create_test_account_info( &INSTRUCTIONS_SYSVAR_ID, @@ -370,7 +368,7 @@ mod tests { let mut data = create_instructions_sysvar_data(&self_program_id); let mut lamports = 1_000_000u64; - let sysvar_owner = anchor_lang::solana_program::sysvar::ID; + let sysvar_owner = solana_sdk_ids::sysvar::ID; let account_info = create_test_account_info( &INSTRUCTIONS_SYSVAR_ID, @@ -391,7 +389,7 @@ mod tests { let mut data = create_instructions_sysvar_data(&cpi_caller); let mut lamports = 1_000_000u64; - let sysvar_owner = anchor_lang::solana_program::sysvar::ID; + let sysvar_owner = solana_sdk_ids::sysvar::ID; let account_info = create_test_account_info( &INSTRUCTIONS_SYSVAR_ID, diff --git a/programs/solana/packages/solana-ibc-types/src/ibc_app.rs b/programs/solana/packages/solana-ibc-types/src/ibc_app.rs index 1da39ded9..83c6e7dce 100644 --- a/programs/solana/packages/solana-ibc-types/src/ibc_app.rs +++ b/programs/solana/packages/solana-ibc-types/src/ibc_app.rs @@ -160,7 +160,7 @@ pub fn on_recv_packet<'info>( // calling set_return_data(), which prepends a 4-byte LE length prefix // for Vec. We must deserialize to recover the raw ack bytes. match get_return_data() { - Some((program_id, data)) if program_id == *ctx.program.key => { + Some((program_id, data)) if program_id == ctx.program_id => { let ack = borsh::BorshDeserialize::try_from_slice(&data) .map_err(|_| error!(IbcAppError::InvalidAppResponse))?; Ok(ack) @@ -228,13 +228,12 @@ where })); let instruction = anchor_lang::solana_program::instruction::Instruction { - program_id: *ctx.program.key, + program_id: ctx.program_id, accounts: account_metas, data, }; let mut account_infos = ctx.accounts.to_account_infos(); - account_infos.push(ctx.program.clone()); account_infos.extend(ctx.remaining_accounts.iter().cloned()); anchor_lang::solana_program::program::invoke(&instruction, &account_infos)?; diff --git a/programs/solana/packages/solana-ibc-types/src/ics24.rs b/programs/solana/packages/solana-ibc-types/src/ics24.rs index a9d2542d2..b506dd509 100644 --- a/programs/solana/packages/solana-ibc-types/src/ics24.rs +++ b/programs/solana/packages/solana-ibc-types/src/ics24.rs @@ -131,9 +131,7 @@ pub fn packet_acknowledgement_commitment_bytes32(acks: &[Vec]) -> Ics24Resul /// # Errors /// Returns `Ics24Error::PacketSerializationError` if the packet cannot be serialized. pub fn packet_receipt_commitment_bytes32(packet: &Packet) -> Ics24Result<[u8; 32]> { - let packet_bytes = packet - .try_to_vec() - .map_err(|_| Ics24Error::PacketSerializationError)?; + let packet_bytes = borsh::to_vec(packet).map_err(|_| Ics24Error::PacketSerializationError)?; Ok(keccak256(&packet_bytes).to_bytes()) } diff --git a/programs/solana/programs/access-manager/Cargo.toml b/programs/solana/programs/access-manager/Cargo.toml index 5b1e4f563..42f34650b 100644 --- a/programs/solana/programs/access-manager/Cargo.toml +++ b/programs/solana/programs/access-manager/Cargo.toml @@ -24,6 +24,7 @@ idl-build = ["anchor-lang/idl-build"] [dependencies] anchor-lang.workspace = true +solana-instructions-sysvar.workspace = true solana-ibc-types.workspace = true @@ -31,6 +32,7 @@ solana-ibc-types.workspace = true bincode.workspace = true mollusk-svm.workspace = true solana-sdk = { workspace = true, features = ["full"] } +solana-sdk-ids.workspace = true solana-program-test.workspace = true tokio = { version = "1", features = ["full"] } diff --git a/programs/solana/programs/access-manager/src/helpers/cpi.rs b/programs/solana/programs/access-manager/src/helpers/cpi.rs index 7af9f2a0d..e04d40bf5 100644 --- a/programs/solana/programs/access-manager/src/helpers/cpi.rs +++ b/programs/solana/programs/access-manager/src/helpers/cpi.rs @@ -53,13 +53,12 @@ pub fn accept_upgrade_authority_transfer<'info>( let account_metas = ctx.accounts.to_account_metas(None); let instruction = anchor_lang::solana_program::instruction::Instruction { - program_id: *ctx.program.key, + program_id: ctx.program_id, accounts: account_metas, data: ix_data, }; - let mut account_infos = ctx.accounts.to_account_infos(); - account_infos.push(ctx.program.clone()); + let account_infos = ctx.accounts.to_account_infos(); anchor_lang::solana_program::program::invoke_signed( &instruction, diff --git a/programs/solana/programs/access-manager/src/instructions/claim_upgrade_authority.rs b/programs/solana/programs/access-manager/src/instructions/claim_upgrade_authority.rs index 247e52587..fa3585853 100644 --- a/programs/solana/programs/access-manager/src/instructions/claim_upgrade_authority.rs +++ b/programs/solana/programs/access-manager/src/instructions/claim_upgrade_authority.rs @@ -25,7 +25,7 @@ pub struct ClaimUpgradeAuthority<'info> { seeds = [AccessManager::UPGRADE_AUTHORITY_SEED, target_program.as_ref()], bump )] - pub new_upgrade_authority: AccountInfo<'info>, + pub new_upgrade_authority: UncheckedAccount<'info>, /// The source access manager's state PDA. /// CHECK: Validated via seeds constraint against `source_access_manager_program` @@ -35,7 +35,7 @@ pub struct ClaimUpgradeAuthority<'info> { bump, seeds::program = source_access_manager_program.key() )] - pub source_access_manager_state: AccountInfo<'info>, + pub source_access_manager_state: UncheckedAccount<'info>, /// The target program's data account (BPF Loader Upgradeable PDA). /// CHECK: Validated via seeds constraint against BPF Loader Upgradeable @@ -45,7 +45,7 @@ pub struct ClaimUpgradeAuthority<'info> { bump, seeds::program = bpf_loader_upgradeable::ID )] - pub target_program_data: AccountInfo<'info>, + pub target_program_data: UncheckedAccount<'info>, /// The source access manager's upgrade authority PDA for the target program. /// CHECK: Validated via seeds constraint against `source_access_manager_program` @@ -54,16 +54,16 @@ pub struct ClaimUpgradeAuthority<'info> { bump, seeds::program = source_access_manager_program.key() )] - pub source_upgrade_authority: AccountInfo<'info>, + pub source_upgrade_authority: UncheckedAccount<'info>, /// The source access manager program (CPI target). /// CHECK: Must be executable #[account(executable)] - pub source_access_manager_program: AccountInfo<'info>, + pub source_access_manager_program: UncheckedAccount<'info>, /// CHECK: Must be BPF Loader Upgradeable program ID #[account(address = bpf_loader_upgradeable::ID)] - pub bpf_loader_upgradeable: AccountInfo<'info>, + pub bpf_loader_upgradeable: UncheckedAccount<'info>, /// Access manager state PDA used to verify the caller holds the admin role. #[account(seeds = [AccessManager::SEED], bump)] @@ -73,8 +73,8 @@ pub struct ClaimUpgradeAuthority<'info> { pub admin: Signer<'info>, /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn claim_upgrade_authority( @@ -102,7 +102,7 @@ pub fn claim_upgrade_authority( &bump, ][..]]; let cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.source_access_manager_program.to_account_info(), + ctx.accounts.source_access_manager_program.key(), cpi_accounts, signer_seeds, ); @@ -122,12 +122,11 @@ mod integration_tests { use crate::state::AccessManager; use crate::test_utils::*; use crate::types::{PendingAuthorityTransfer, RoleData}; - use anchor_lang::prelude::bpf_loader_upgradeable; + use anchor_lang::solana_program::bpf_loader_upgradeable::{self, UpgradeableLoaderState}; use anchor_lang::{AnchorSerialize, Discriminator, InstructionData, Space}; use solana_ibc_types::roles; use solana_sdk::{ account::Account, - bpf_loader_upgradeable::UpgradeableLoaderState, instruction::{AccountMeta, Instruction}, pubkey::Pubkey, signature::Keypair, @@ -179,7 +178,8 @@ mod integration_tests { }; let mut our_am_data = vec![0u8; 8 + AccessManager::INIT_SPACE]; our_am_data[0..8].copy_from_slice(AccessManager::DISCRIMINATOR); - our_am.serialize(&mut &mut our_am_data[8..]).unwrap(); + let mut writer = &mut our_am_data[8..]; + our_am.serialize(&mut writer).unwrap(); pt.add_account( our_am_pda, Account { @@ -215,7 +215,7 @@ mod integration_tests { source_upgrade_authority, Account { lamports: 1_000_000, - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, ..Default::default() }, ); @@ -233,7 +233,8 @@ mod integration_tests { }; let mut am_data = vec![0u8; 8 + AccessManager::INIT_SPACE]; am_data[0..8].copy_from_slice(AccessManager::DISCRIMINATOR); - source_am.serialize(&mut &mut am_data[8..]).unwrap(); + let mut writer = &mut am_data[8..]; + source_am.serialize(&mut writer).unwrap(); pt.add_account( source_am_pda, Account { @@ -252,7 +253,7 @@ mod integration_tests { new_upgrade_authority, Account { lamports: 1_000_000, - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, ..Default::default() }, ); diff --git a/programs/solana/programs/access-manager/src/instructions/grant_role.rs b/programs/solana/programs/access-manager/src/instructions/grant_role.rs index 435ab06a4..137e2be44 100644 --- a/programs/solana/programs/access-manager/src/instructions/grant_role.rs +++ b/programs/solana/programs/access-manager/src/instructions/grant_role.rs @@ -22,8 +22,8 @@ pub struct GrantRole<'info> { /// Instructions sysvar for CPI validation /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn grant_role(ctx: Context, role_id: u64, account: Pubkey) -> Result<()> { diff --git a/programs/solana/programs/access-manager/src/instructions/initialize.rs b/programs/solana/programs/access-manager/src/instructions/initialize.rs index a05c8810c..180aee315 100644 --- a/programs/solana/programs/access-manager/src/instructions/initialize.rs +++ b/programs/solana/programs/access-manager/src/instructions/initialize.rs @@ -27,8 +27,8 @@ pub struct Initialize<'info> { /// Instructions sysvar for CPI validation /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, /// BPF Loader Upgradeable `ProgramData` account for this program. #[account( @@ -67,8 +67,9 @@ mod tests { use mollusk_svm::Mollusk; use solana_sdk::account::Account; use solana_sdk::instruction::{AccountMeta, Instruction}; + use solana_sdk::native_loader; use solana_sdk::pubkey::Pubkey; - use solana_sdk::{native_loader, system_program}; + use solana_sdk_ids::system_program; #[test] fn test_initialize_happy_path() { @@ -675,9 +676,9 @@ mod tests { #[cfg(test)] mod integration_tests { use crate::test_utils::*; + use anchor_lang::solana_program::bpf_loader_upgradeable::{self, UpgradeableLoaderState}; use anchor_lang::InstructionData; use solana_sdk::{ - bpf_loader_upgradeable::{self, UpgradeableLoaderState}, instruction::{AccountMeta, Instruction}, pubkey::Pubkey, signature::Keypair, @@ -729,7 +730,7 @@ mod integration_tests { accounts: vec![ AccountMeta::new(access_manager_pda, false), AccountMeta::new(payer, true), - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), AccountMeta::new_readonly(solana_sdk::sysvar::instructions::ID, false), AccountMeta::new_readonly(program_data_pda, false), AccountMeta::new_readonly(authority, true), diff --git a/programs/solana/programs/access-manager/src/instructions/renounce_role.rs b/programs/solana/programs/access-manager/src/instructions/renounce_role.rs index 27830e6e3..d9cd23bf7 100644 --- a/programs/solana/programs/access-manager/src/instructions/renounce_role.rs +++ b/programs/solana/programs/access-manager/src/instructions/renounce_role.rs @@ -21,8 +21,8 @@ pub struct RenounceRole<'info> { /// Instructions sysvar for CPI validation /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn renounce_role(ctx: Context, role_id: u64) -> Result<()> { diff --git a/programs/solana/programs/access-manager/src/instructions/revoke_role.rs b/programs/solana/programs/access-manager/src/instructions/revoke_role.rs index 1681d1b8a..f2835134e 100644 --- a/programs/solana/programs/access-manager/src/instructions/revoke_role.rs +++ b/programs/solana/programs/access-manager/src/instructions/revoke_role.rs @@ -22,8 +22,8 @@ pub struct RevokeRole<'info> { /// Instructions sysvar for CPI validation /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn revoke_role(ctx: Context, role_id: u64, account: Pubkey) -> Result<()> { diff --git a/programs/solana/programs/access-manager/src/instructions/set_whitelisted_programs.rs b/programs/solana/programs/access-manager/src/instructions/set_whitelisted_programs.rs index 605a644d1..95ceed91c 100644 --- a/programs/solana/programs/access-manager/src/instructions/set_whitelisted_programs.rs +++ b/programs/solana/programs/access-manager/src/instructions/set_whitelisted_programs.rs @@ -20,8 +20,8 @@ pub struct SetWhitelistedPrograms<'info> { /// Instructions sysvar for CPI validation. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn set_whitelisted_programs( diff --git a/programs/solana/programs/access-manager/src/instructions/transfer_upgrade_authority.rs b/programs/solana/programs/access-manager/src/instructions/transfer_upgrade_authority.rs index 73dd1529f..2bfdee1e6 100644 --- a/programs/solana/programs/access-manager/src/instructions/transfer_upgrade_authority.rs +++ b/programs/solana/programs/access-manager/src/instructions/transfer_upgrade_authority.rs @@ -29,8 +29,8 @@ pub struct ProposeUpgradeAuthorityTransfer<'info> { pub admin: Signer<'info>, /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn propose_upgrade_authority_transfer( @@ -117,7 +117,7 @@ pub struct AcceptUpgradeAuthorityTransfer<'info> { bump, seeds::program = bpf_loader_upgradeable::ID )] - pub program_data: AccountInfo<'info>, + pub program_data: UncheckedAccount<'info>, /// `AccessManager`'s PDA that acts as the current upgrade authority. /// CHECK: Validated via seeds constraint @@ -125,14 +125,14 @@ pub struct AcceptUpgradeAuthorityTransfer<'info> { seeds = [AccessManager::UPGRADE_AUTHORITY_SEED, target_program.as_ref()], bump )] - pub upgrade_authority: AccountInfo<'info>, + pub upgrade_authority: UncheckedAccount<'info>, /// The proposed new upgrade authority. Must match the pending transfer. pub new_authority: Signer<'info>, /// CHECK: Must be BPF Loader Upgradeable program ID #[account(address = bpf_loader_upgradeable::ID)] - pub bpf_loader_upgradeable: AccountInfo<'info>, + pub bpf_loader_upgradeable: UncheckedAccount<'info>, } pub fn accept_upgrade_authority_transfer( @@ -212,8 +212,8 @@ pub struct CancelUpgradeAuthorityTransfer<'info> { pub admin: Signer<'info>, /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn cancel_upgrade_authority_transfer( diff --git a/programs/solana/programs/access-manager/src/instructions/upgrade_program.rs b/programs/solana/programs/access-manager/src/instructions/upgrade_program.rs index ba1a0fb78..b06c4c28e 100644 --- a/programs/solana/programs/access-manager/src/instructions/upgrade_program.rs +++ b/programs/solana/programs/access-manager/src/instructions/upgrade_program.rs @@ -25,7 +25,7 @@ pub struct UpgradeProgram<'info> { owner = bpf_loader_upgradeable::ID, constraint = program.key() == target_program @ AccessManagerError::ProgramMismatch )] - pub program: AccountInfo<'info>, + pub program: UncheckedAccount<'info>, /// The target program's data account (BPF Loader Upgradeable PDA). /// CHECK: Validated via BPF Loader seeds derivation from program account @@ -35,7 +35,7 @@ pub struct UpgradeProgram<'info> { bump, seeds::program = bpf_loader_upgradeable::ID )] - pub program_data: AccountInfo<'info>, + pub program_data: UncheckedAccount<'info>, /// Buffer account containing the new program bytecode. /// CHECK: Must be a BPF Loader buffer containing the new bytecode @@ -43,7 +43,7 @@ pub struct UpgradeProgram<'info> { mut, owner = bpf_loader_upgradeable::ID )] - pub buffer: AccountInfo<'info>, + pub buffer: UncheckedAccount<'info>, /// `AccessManager`'s PDA that acts as the upgrade authority for the target program. /// CHECK: Validated via seeds constraint @@ -52,23 +52,23 @@ pub struct UpgradeProgram<'info> { seeds = [AccessManager::UPGRADE_AUTHORITY_SEED, target_program.as_ref()], bump )] - pub upgrade_authority: AccountInfo<'info>, + pub upgrade_authority: UncheckedAccount<'info>, /// Account to receive refunded rent from the old buffer. /// CHECK: Can be any account to receive refunded rent #[account(mut)] - pub spill: AccountInfo<'info>, + pub spill: UncheckedAccount<'info>, /// The admin signer authorizing the upgrade. pub authority: Signer<'info>, /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, /// CHECK: Must be BPF Loader Upgradeable program ID #[account(address = bpf_loader_upgradeable::ID)] - pub bpf_loader_upgradeable: AccountInfo<'info>, + pub bpf_loader_upgradeable: UncheckedAccount<'info>, /// Rent sysvar required by BPF Loader Upgradeable. pub rent: Sysvar<'info, Rent>, @@ -232,7 +232,7 @@ mod tests { spill, Account { lamports: 1_000_000, - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, ..Default::default() }, ), @@ -511,11 +511,10 @@ mod tests { mod integration_tests { use crate::state::AccessManager; use crate::test_utils::*; - use anchor_lang::prelude::bpf_loader_upgradeable; + use anchor_lang::solana_program::bpf_loader_upgradeable::{self, UpgradeableLoaderState}; use anchor_lang::InstructionData; use solana_sdk::{ account::Account, - bpf_loader_upgradeable::UpgradeableLoaderState, instruction::{AccountMeta, Instruction}, pubkey::Pubkey, signature::Keypair, @@ -605,7 +604,7 @@ mod integration_tests { upgrade_authority_pda, Account { lamports: 1_000_000, - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, ..Default::default() }, ); diff --git a/programs/solana/programs/access-manager/src/test_utils.rs b/programs/solana/programs/access-manager/src/test_utils.rs index ff7df3bb5..d769b7598 100644 --- a/programs/solana/programs/access-manager/src/test_utils.rs +++ b/programs/solana/programs/access-manager/src/test_utils.rs @@ -7,8 +7,8 @@ use solana_sdk::{ account::Account, instruction::{AccountMeta, Instruction}, pubkey::Pubkey, - system_program, }; +use solana_sdk_ids::system_program; pub fn serialize_access_manager(access_manager: &AccessManager) -> Vec { let mut data = AccessManager::DISCRIMINATOR.to_vec(); @@ -31,7 +31,8 @@ pub fn create_initialized_access_manager(admin: Pubkey) -> (Pubkey, Account) { // Use INIT_SPACE to ensure account has enough space for max roles let mut data = vec![0u8; 8 + AccessManager::INIT_SPACE]; data[0..8].copy_from_slice(AccessManager::DISCRIMINATOR); - access_manager.serialize(&mut &mut data[8..]).unwrap(); + let mut writer = &mut data[8..]; + access_manager.serialize(&mut writer).unwrap(); ( access_manager_pda, @@ -80,7 +81,8 @@ pub fn create_access_manager_with_role( // Use INIT_SPACE to ensure account has enough space for max roles let mut data = vec![0u8; 8 + AccessManager::INIT_SPACE]; data[0..8].copy_from_slice(AccessManager::DISCRIMINATOR); - access_manager.serialize(&mut &mut data[8..]).unwrap(); + let mut writer = &mut data[8..]; + access_manager.serialize(&mut writer).unwrap(); ( access_manager_pda, @@ -166,7 +168,7 @@ pub fn create_instructions_sysvar_account() -> Account { Account { lamports: 1_000_000, data: ixs_data, - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, } @@ -201,7 +203,7 @@ pub fn create_fake_instructions_sysvar_account(caller_program_id: Pubkey) -> (Pu Account { lamports: 1_000_000, data: ixs_data, - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, }, @@ -262,7 +264,7 @@ pub fn create_cpi_instructions_sysvar_account(caller_program_id: Pubkey) -> Acco Account { lamports: 1_000_000, data: ixs_data, - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, } @@ -329,7 +331,7 @@ pub fn create_instructions_sysvar_account_with_caller( Account { lamports: 1_000_000, data: ixs_data, - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, }, @@ -381,7 +383,8 @@ pub fn setup_program_test_with_whitelist( }; let mut am_data = vec![0u8; 8 + AccessManager::INIT_SPACE]; am_data[0..8].copy_from_slice(AccessManager::DISCRIMINATOR); - am.serialize(&mut &mut am_data[8..]).unwrap(); + let mut writer = &mut am_data[8..]; + am.serialize(&mut writer).unwrap(); pt.add_account( access_manager_pda, @@ -495,7 +498,7 @@ pub fn create_rent_sysvar_account() -> (Pubkey, Account) { Account { lamports: 1_000_000, data: vec![0; 17], // Rent sysvar is 17 bytes - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, }, @@ -509,7 +512,7 @@ pub fn create_clock_sysvar_account() -> (Pubkey, Account) { Account { lamports: 1_000_000, data: vec![0; 40], // Clock sysvar is 40 bytes - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, }, @@ -524,7 +527,7 @@ pub fn create_program_data_account( program_id: &Pubkey, authority: Option, ) -> (Pubkey, Account) { - use solana_sdk::bpf_loader_upgradeable::{self, UpgradeableLoaderState}; + use anchor_lang::solana_program::bpf_loader_upgradeable::{self, UpgradeableLoaderState}; let (program_data_pda, _) = Pubkey::find_program_address(&[program_id.as_ref()], &bpf_loader_upgradeable::ID); @@ -565,7 +568,8 @@ pub fn create_access_manager_with_transfers( }; let mut data = vec![0u8; 8 + AccessManager::INIT_SPACE]; data[0..8].copy_from_slice(AccessManager::DISCRIMINATOR); - am.serialize(&mut &mut data[8..]).unwrap(); + let mut writer = &mut data[8..]; + am.serialize(&mut writer).unwrap(); ( pda, Account { @@ -586,7 +590,7 @@ pub fn add_target_program_accounts( pt: &mut solana_program_test::ProgramTest, target_program: &Pubkey, ) { - use solana_sdk::bpf_loader_upgradeable::{self, UpgradeableLoaderState}; + use anchor_lang::solana_program::bpf_loader_upgradeable::{self, UpgradeableLoaderState}; let (upgrade_authority_pda, _) = AccessManager::upgrade_authority_pda(target_program, &crate::ID); @@ -641,8 +645,8 @@ pub fn build_propose_ix( } pub fn build_accept_ix(target_program: Pubkey, new_authority: Pubkey) -> Instruction { + use anchor_lang::solana_program::bpf_loader_upgradeable; use anchor_lang::InstructionData; - use solana_sdk::bpf_loader_upgradeable; let (access_manager_pda, _) = Pubkey::find_program_address(&[AccessManager::SEED], &crate::ID); let (program_data, _) = @@ -684,7 +688,7 @@ pub async fn get_program_data_authority( banks_client: &solana_program_test::BanksClient, target_program: Pubkey, ) -> Option { - use solana_sdk::bpf_loader_upgradeable::{self, UpgradeableLoaderState}; + use anchor_lang::solana_program::bpf_loader_upgradeable::{self, UpgradeableLoaderState}; let (program_data_pda, _) = Pubkey::find_program_address(&[target_program.as_ref()], &bpf_loader_upgradeable::ID); diff --git a/programs/solana/programs/attestation/Cargo.toml b/programs/solana/programs/attestation/Cargo.toml index 1d8143bdd..705d72a17 100644 --- a/programs/solana/programs/attestation/Cargo.toml +++ b/programs/solana/programs/attestation/Cargo.toml @@ -30,6 +30,7 @@ access-manager = { workspace = true, features = ["cpi"] } borsh = { workspace = true } ics25-handler = { workspace = true } solana-ibc-types = { workspace = true } +solana-instructions-sysvar.workspace = true solana-keccak-hasher = { workspace = true } solana-secp256k1-recover = { workspace = true } alloy-sol-types = { workspace = true } @@ -40,6 +41,7 @@ serde = { workspace = true, features = ["derive"] } mollusk-svm = { workspace = true } mollusk-svm-bencher = { workspace = true } solana-sdk = { workspace = true, features = ["full"] } +solana-sdk-ids = { workspace = true } solana-program-test = { workspace = true } tokio = { version = "1", features = ["full"] } hex = { workspace = true } diff --git a/programs/solana/programs/attestation/src/crypto.rs b/programs/solana/programs/attestation/src/crypto.rs index 9e522dcf0..a1fb230f7 100644 --- a/programs/solana/programs/attestation/src/crypto.rs +++ b/programs/solana/programs/attestation/src/crypto.rs @@ -127,7 +127,7 @@ pub fn recover_eth_address( } fn pubkey_to_eth_address(pubkey: &[u8; SECP256K1_PUBLIC_KEY_LENGTH]) -> [u8; ETH_ADDRESS_LEN] { - let solana_keccak_hasher::Hash(hash) = solana_keccak_hasher::hash(pubkey); + let hash = solana_keccak_hasher::hash(pubkey).to_bytes(); hash[hash.len() - ETH_ADDRESS_LEN..].try_into().unwrap() } diff --git a/programs/solana/programs/attestation/src/instructions/access_manager_transfer.rs b/programs/solana/programs/attestation/src/instructions/access_manager_transfer.rs index d94a97832..9cb54e96e 100644 --- a/programs/solana/programs/attestation/src/instructions/access_manager_transfer.rs +++ b/programs/solana/programs/attestation/src/instructions/access_manager_transfer.rs @@ -17,15 +17,15 @@ pub struct ProposeAccessManagerTransfer<'info> { bump, seeds::program = app_state.am_state.access_manager )] - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// Admin signer authorized to propose the transfer. pub admin: Signer<'info>, /// Instructions sysvar used by the access manager to inspect the transaction. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn propose_access_manager_transfer( @@ -62,15 +62,15 @@ pub struct AcceptAccessManagerTransfer<'info> { bump, seeds::program = app_state.am_state.pending_access_manager.unwrap() )] - pub new_am_state: AccountInfo<'info>, + pub new_am_state: UncheckedAccount<'info>, /// Admin signer authorized on the **new** access manager. pub admin: Signer<'info>, /// Instructions sysvar used by the access manager to inspect the transaction. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn accept_access_manager_transfer(ctx: Context) -> Result<()> { @@ -97,15 +97,15 @@ pub struct CancelAccessManagerTransfer<'info> { bump, seeds::program = app_state.am_state.access_manager )] - pub am_state: AccountInfo<'info>, + pub am_state: UncheckedAccount<'info>, /// Admin signer authorized to cancel the transfer. pub admin: Signer<'info>, /// Instructions sysvar used by the access manager to inspect the transaction. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn cancel_access_manager_transfer(ctx: Context) -> Result<()> { diff --git a/programs/solana/programs/attestation/src/instructions/initialize.rs b/programs/solana/programs/attestation/src/instructions/initialize.rs index 454e6a82a..4aeb29dc0 100644 --- a/programs/solana/programs/attestation/src/instructions/initialize.rs +++ b/programs/solana/programs/attestation/src/instructions/initialize.rs @@ -104,7 +104,7 @@ mod tests { use mollusk_svm::Mollusk; use solana_sdk::account::Account; use solana_sdk::pubkey::Pubkey; - use solana_sdk::system_program; + use solana_sdk_ids::system_program; struct TestAccounts { payer: Pubkey, diff --git a/programs/solana/programs/attestation/src/instructions/update_client.rs b/programs/solana/programs/attestation/src/instructions/update_client.rs index e6c44a323..c966c2aad 100644 --- a/programs/solana/programs/attestation/src/instructions/update_client.rs +++ b/programs/solana/programs/attestation/src/instructions/update_client.rs @@ -44,12 +44,12 @@ pub struct UpdateClient<'info> { bump, seeds::program = app_state.am_state.access_manager )] - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// Instructions sysvar for CPI and role validation. /// CHECK: Instructions sysvar for role verification - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, /// The relayer submitting the attestation proof (must have relayer role). #[account(mut)] @@ -66,7 +66,7 @@ pub struct UpdateClientParams { } pub fn update_client<'info>( - ctx: Context<'_, '_, 'info, 'info, UpdateClient<'info>>, + ctx: Context<'info, UpdateClient<'info>>, new_height: u64, params: UpdateClientParams, ) -> Result<()> { @@ -143,12 +143,11 @@ mod tests { use crate::ETH_ADDRESS_LEN; use anchor_lang::solana_program::instruction::{AccountMeta, Instruction}; use anchor_lang::InstructionData; - use borsh::BorshSerialize; use mollusk_svm::result::Check; use mollusk_svm::Mollusk; use solana_sdk::account::Account; use solana_sdk::pubkey::Pubkey; - use solana_sdk::system_program; + use solana_sdk_ids::system_program; const HEIGHT: u64 = 100; const NEW_HEIGHT: u64 = 200; @@ -289,11 +288,10 @@ mod tests { .map(|a| a.sign(&attestation_data, crate::crypto::AttestationType::State)) .collect(); UpdateClientParams { - proof: MembershipProof { + proof: borsh::to_vec(&MembershipProof { attestation_data, signatures, - } - .try_to_vec() + }) .unwrap(), } } @@ -303,11 +301,10 @@ mod tests { signatures: Vec>, ) -> UpdateClientParams { UpdateClientParams { - proof: MembershipProof { + proof: borsh::to_vec(&MembershipProof { attestation_data, signatures, - } - .try_to_vec() + }) .unwrap(), } } @@ -326,7 +323,7 @@ mod tests { #[rstest::rstest] #[case::invalid_proof(vec![0xFF; 100], None)] #[case::attestation_data_too_short( - MembershipProof { attestation_data: vec![0u8; 64], signatures: vec![vec![0u8; 65]] }.try_to_vec().unwrap(), + borsh::to_vec(&MembershipProof { attestation_data: vec![0u8; 64], signatures: vec![vec![0u8; 65]] }).unwrap(), Some(ErrorCode::InvalidSignature) )] fn test_update_client_rejects_bad_proof( diff --git a/programs/solana/programs/attestation/src/instructions/verify_membership.rs b/programs/solana/programs/attestation/src/instructions/verify_membership.rs index 606f552c7..39d46b2b8 100644 --- a/programs/solana/programs/attestation/src/instructions/verify_membership.rs +++ b/programs/solana/programs/attestation/src/instructions/verify_membership.rs @@ -6,7 +6,7 @@ use crate::verification::verify_attestation; use alloy_sol_types::SolValue; use anchor_lang::prelude::*; use ics25_handler::MembershipMsg; -use solana_keccak_hasher::{hash as keccak256, Hash}; +use solana_keccak_hasher::hash as keccak256; /// Verifies that a commitment exists at the given path and height using attestor signatures. #[derive(Accounts)] @@ -67,7 +67,7 @@ pub fn verify_membership(ctx: Context, msg: MembershipMsg) -> require!(!attestation.packets.is_empty(), ErrorCode::EmptyAttestation); - let Hash(path_hash) = keccak256(&msg.path[0]); + let path_hash = keccak256(&msg.path[0]).to_bytes(); let packet = attestation .packets @@ -105,7 +105,6 @@ mod tests { use crate::ETH_ADDRESS_LEN; use anchor_lang::solana_program::instruction::{AccountMeta, Instruction}; use anchor_lang::InstructionData; - use borsh::BorshSerialize; use mollusk_svm::result::Check; use mollusk_svm::Mollusk; use solana_sdk::account::Account; @@ -219,7 +218,7 @@ mod tests { }; MembershipMsg { height: HEIGHT, - proof: proof.try_to_vec().unwrap(), + proof: borsh::to_vec(&proof).unwrap(), path: vec![verify_path.to_vec()], value: verify_value, } @@ -265,7 +264,7 @@ mod tests { #[case::very_long_path(HEIGHT, vec![], vec![vec![0xAB; 1000]], vec![1; 32], Some(ErrorCode::InvalidProof))] #[case::attestation_data_too_short( HEIGHT, - MembershipProof { attestation_data: vec![0u8; 64], signatures: vec![vec![0u8; 65]] }.try_to_vec().unwrap(), + borsh::to_vec(&MembershipProof { attestation_data: vec![0u8; 64], signatures: vec![vec![0u8; 65]] }).unwrap(), vec![b"test/path".to_vec()], vec![1; 32], Some(ErrorCode::HeightMismatch) @@ -314,7 +313,7 @@ mod tests { }; let msg = MembershipMsg { height: HEIGHT, - proof: proof.try_to_vec().unwrap(), + proof: borsh::to_vec(&proof).unwrap(), path: vec![b"test/path".to_vec()], value: vec![1; 32], }; @@ -334,7 +333,7 @@ mod tests { }; let msg = MembershipMsg { height: HEIGHT, - proof: proof.try_to_vec().unwrap(), + proof: borsh::to_vec(&proof).unwrap(), path: vec![b"test/path".to_vec()], value: vec![1; 32], }; @@ -348,7 +347,7 @@ mod tests { let test_accounts = setup_test_accounts(HEIGHT, client_state, DEFAULT_TIMESTAMP); let path = b"test/path"; - let Hash(path_hash) = solana_keccak_hasher::hash(path); + let path_hash = solana_keccak_hasher::hash(path).to_bytes(); let attestation_data = crate::test_helpers::fixtures::encode_packet_attestation( HEIGHT, &[(path_hash, [2u8; 32])], @@ -359,7 +358,7 @@ mod tests { }; let msg = MembershipMsg { height: HEIGHT, - proof: proof.try_to_vec().unwrap(), + proof: borsh::to_vec(&proof).unwrap(), path: vec![path.to_vec()], value: vec![1; 31], }; @@ -380,7 +379,7 @@ mod tests { }; let msg = MembershipMsg { height: HEIGHT, - proof: proof.try_to_vec().unwrap(), + proof: borsh::to_vec(&proof).unwrap(), path: vec![b"test/path".to_vec()], value: vec![1; 32], }; @@ -391,7 +390,7 @@ mod tests { fn test_verify_membership_invalid_signature_length() { let test_accounts = setup_default_test_accounts(HEIGHT); let path = b"test/path"; - let Hash(path_hash) = solana_keccak_hasher::hash(path); + let path_hash = solana_keccak_hasher::hash(path).to_bytes(); let attestation_data = crate::test_helpers::fixtures::encode_packet_attestation( HEIGHT, &[(path_hash, [2u8; 32])], @@ -402,7 +401,7 @@ mod tests { }; let msg = MembershipMsg { height: HEIGHT, - proof: proof.try_to_vec().unwrap(), + proof: borsh::to_vec(&proof).unwrap(), path: vec![path.to_vec()], value: vec![2; 32], }; @@ -419,7 +418,7 @@ mod tests { let test_accounts = setup_test_accounts(HEIGHT, client_state, DEFAULT_TIMESTAMP); let path = b"test/path"; - let Hash(path_hash) = solana_keccak_hasher::hash(path); + let path_hash = solana_keccak_hasher::hash(path).to_bytes(); let attestation_data = crate::test_helpers::fixtures::encode_packet_attestation( HEIGHT, &[(path_hash, [2u8; 32])], @@ -430,7 +429,7 @@ mod tests { }; let msg = MembershipMsg { height: HEIGHT, - proof: proof.try_to_vec().unwrap(), + proof: borsh::to_vec(&proof).unwrap(), path: vec![path.to_vec()], value: vec![2; 32], }; @@ -443,7 +442,7 @@ mod tests { let test_accounts = setup_attestor_accounts(vec![attestor.eth_address], 2); let path = b"test/path"; - let Hash(path_hash) = solana_keccak_hasher::hash(path); + let path_hash = solana_keccak_hasher::hash(path).to_bytes(); let attestation_data = crate::test_helpers::fixtures::encode_packet_attestation( HEIGHT, &[(path_hash, [2u8; 32])], @@ -456,7 +455,7 @@ mod tests { }; let msg = MembershipMsg { height: HEIGHT, - proof: proof.try_to_vec().unwrap(), + proof: borsh::to_vec(&proof).unwrap(), path: vec![path.to_vec()], value: vec![2; 32], }; @@ -481,7 +480,7 @@ mod tests { let test_accounts = setup_attestor_accounts(vec![attestor.eth_address], 1); let path = b"ibc/commitments/channel-0/sequence/1"; - let Hash(path_hash) = solana_keccak_hasher::hash(path); + let path_hash = solana_keccak_hasher::hash(path).to_bytes(); let commitment = [0xAB; 32]; let msg = build_signed_msg( @@ -500,7 +499,7 @@ mod tests { let test_accounts = setup_attestor_accounts(vec![attestor.eth_address], 1); let attested_path = b"ibc/commitments/channel-0/sequence/1"; - let Hash(attested_path_hash) = solana_keccak_hasher::hash(attested_path); + let attested_path_hash = solana_keccak_hasher::hash(attested_path).to_bytes(); let commitment = [0xAB; 32]; let different_path = b"ibc/commitments/channel-0/sequence/999"; @@ -520,7 +519,7 @@ mod tests { let test_accounts = setup_attestor_accounts(vec![attestor.eth_address], 1); let path = b"ibc/commitments/channel-0/sequence/1"; - let Hash(path_hash) = solana_keccak_hasher::hash(path); + let path_hash = solana_keccak_hasher::hash(path).to_bytes(); let attested_commitment = [0xAB; 32]; let wrong_commitment = [0xCD; 32]; @@ -540,7 +539,7 @@ mod tests { let test_accounts = setup_attestor_accounts(vec![attestor.eth_address], 1); let path = b"ibc/commitments/channel-0/sequence/1"; - let Hash(path_hash) = solana_keccak_hasher::hash(path); + let path_hash = solana_keccak_hasher::hash(path).to_bytes(); let zero_commitment = [0u8; 32]; let msg = build_signed_msg( @@ -562,7 +561,7 @@ mod tests { let test_accounts = setup_attestor_accounts(addresses, 2); let path = b"ibc/commitments/channel-0/sequence/1"; - let Hash(path_hash) = solana_keccak_hasher::hash(path); + let path_hash = solana_keccak_hasher::hash(path).to_bytes(); let commitment = [0xAB; 32]; // Sign with 2 out of 3 attestors (meets quorum) @@ -585,9 +584,9 @@ mod tests { let path2 = b"ibc/commitments/channel-0/sequence/2"; let path3 = b"ibc/commitments/channel-0/sequence/3"; - let Hash(path1_hash) = solana_keccak_hasher::hash(path1); - let Hash(path2_hash) = solana_keccak_hasher::hash(path2); - let Hash(path3_hash) = solana_keccak_hasher::hash(path3); + let path1_hash = solana_keccak_hasher::hash(path1).to_bytes(); + let path2_hash = solana_keccak_hasher::hash(path2).to_bytes(); + let path3_hash = solana_keccak_hasher::hash(path3).to_bytes(); let commitment1 = [0x11; 32]; let commitment2 = [0x22; 32]; @@ -614,7 +613,7 @@ mod tests { let test_accounts = setup_attestor_accounts(vec![trusted_attestor.eth_address], 1); let path = b"ibc/commitments/channel-0/sequence/1"; - let Hash(path_hash) = solana_keccak_hasher::hash(path); + let path_hash = solana_keccak_hasher::hash(path).to_bytes(); let commitment = [0xAB; 32]; let msg = build_signed_msg( @@ -633,7 +632,7 @@ mod tests { let test_accounts = setup_attestor_accounts(vec![attestor.eth_address], 1); let path = b"ibc/commitments/channel-0/sequence/1"; - let Hash(path_hash) = solana_keccak_hasher::hash(path); + let path_hash = solana_keccak_hasher::hash(path).to_bytes(); let commitment = [0xAB; 32]; let msg = build_signed_msg( @@ -653,7 +652,7 @@ mod tests { let test_accounts = setup_attestor_accounts(addresses, 3); let path = b"ibc/commitments/channel-0/sequence/1"; - let Hash(path_hash) = solana_keccak_hasher::hash(path); + let path_hash = solana_keccak_hasher::hash(path).to_bytes(); let commitment = [0xAB; 32]; let attestor_refs: Vec<_> = attestors.iter().collect(); @@ -674,7 +673,7 @@ mod tests { let test_accounts = setup_attestor_accounts(vec![trusted_attestor.eth_address], 2); let path = b"ibc/commitments/channel-0/sequence/1"; - let Hash(path_hash) = solana_keccak_hasher::hash(path); + let path_hash = solana_keccak_hasher::hash(path).to_bytes(); let commitment = [0xAB; 32]; let msg = build_signed_msg( @@ -693,7 +692,7 @@ mod tests { let test_accounts = setup_attestor_accounts(vec![attestor.eth_address], 1); let actual_path = b"ibc/commitments/channel-0/sequence/1"; - let Hash(path_hash) = solana_keccak_hasher::hash(actual_path); + let path_hash = solana_keccak_hasher::hash(actual_path).to_bytes(); let commitment = [0xAB; 32]; // Empty path[0] won't match the actual path hash diff --git a/programs/solana/programs/attestation/src/instructions/verify_non_membership.rs b/programs/solana/programs/attestation/src/instructions/verify_non_membership.rs index fe06d1cc2..4b3c3f1c3 100644 --- a/programs/solana/programs/attestation/src/instructions/verify_non_membership.rs +++ b/programs/solana/programs/attestation/src/instructions/verify_non_membership.rs @@ -7,7 +7,7 @@ use alloy_sol_types::SolValue; use anchor_lang::prelude::*; use anchor_lang::solana_program::program::set_return_data; use ics25_handler::NonMembershipMsg; -use solana_keccak_hasher::{hash as keccak256, Hash}; +use solana_keccak_hasher::hash as keccak256; /// Verifies that no commitment exists at the given path and height. Returns the consensus /// timestamp via return data. @@ -71,7 +71,7 @@ pub fn verify_non_membership( require!(!attestation.packets.is_empty(), ErrorCode::EmptyAttestation); - let Hash(path_hash) = keccak256(&msg.path[0]); + let path_hash = keccak256(&msg.path[0]).to_bytes(); let packet = attestation .packets @@ -103,7 +103,6 @@ mod tests { use crate::ETH_ADDRESS_LEN; use anchor_lang::solana_program::instruction::{AccountMeta, Instruction}; use anchor_lang::InstructionData; - use borsh::BorshSerialize; use mollusk_svm::result::Check; use mollusk_svm::Mollusk; use solana_sdk::account::Account; @@ -216,7 +215,7 @@ mod tests { }; NonMembershipMsg { height: HEIGHT, - proof: proof.try_to_vec().unwrap(), + proof: borsh::to_vec(&proof).unwrap(), path: vec![verify_path.to_vec()], } } @@ -251,7 +250,7 @@ mod tests { #[rstest::rstest] #[case::invalid_proof(vec![0xFF; 100], None)] #[case::attestation_data_too_short( - MembershipProof { attestation_data: vec![0u8; 64], signatures: vec![vec![0u8; 65]] }.try_to_vec().unwrap(), + borsh::to_vec(&MembershipProof { attestation_data: vec![0u8; 64], signatures: vec![vec![0u8; 65]] }).unwrap(), Some(ErrorCode::HeightMismatch) )] fn test_verify_non_membership_rejects_bad_input( @@ -291,7 +290,7 @@ mod tests { }; let msg = NonMembershipMsg { height: HEIGHT, - proof: proof.try_to_vec().unwrap(), + proof: borsh::to_vec(&proof).unwrap(), path: vec![b"test/path".to_vec()], }; expect_error(&test_accounts, msg, ErrorCode::HeightMismatch); @@ -310,7 +309,7 @@ mod tests { }; let msg = NonMembershipMsg { height: HEIGHT, - proof: proof.try_to_vec().unwrap(), + proof: borsh::to_vec(&proof).unwrap(), path: vec![b"test/path".to_vec()], }; expect_error(&test_accounts, msg, ErrorCode::EmptySignatures); @@ -327,7 +326,7 @@ mod tests { }; let msg = NonMembershipMsg { height: HEIGHT, - proof: proof.try_to_vec().unwrap(), + proof: borsh::to_vec(&proof).unwrap(), path: vec![b"test/path".to_vec()], }; expect_error(&test_accounts, msg, ErrorCode::InvalidSignature); @@ -346,7 +345,7 @@ mod tests { }; let msg = NonMembershipMsg { height: HEIGHT, - proof: proof.try_to_vec().unwrap(), + proof: borsh::to_vec(&proof).unwrap(), path: vec![b"test/path".to_vec()], }; expect_error(&test_accounts, msg, ErrorCode::ThresholdNotMet); @@ -368,7 +367,7 @@ mod tests { }; let msg = NonMembershipMsg { height: HEIGHT, - proof: proof.try_to_vec().unwrap(), + proof: borsh::to_vec(&proof).unwrap(), path: vec![b"test/path".to_vec()], }; expect_error(&test_accounts, msg, ErrorCode::DuplicateSigner); @@ -378,7 +377,7 @@ mod tests { fn test_verify_non_membership_invalid_signature_length() { let test_accounts = setup_default_test_accounts(HEIGHT); let path = b"test/path"; - let Hash(path_hash) = solana_keccak_hasher::hash(path); + let path_hash = solana_keccak_hasher::hash(path).to_bytes(); let attestation_data = crate::test_helpers::fixtures::encode_packet_attestation( HEIGHT, &[(path_hash, [0u8; 32])], @@ -389,7 +388,7 @@ mod tests { }; let msg = NonMembershipMsg { height: HEIGHT, - proof: proof.try_to_vec().unwrap(), + proof: borsh::to_vec(&proof).unwrap(), path: vec![path.to_vec()], }; expect_error(&test_accounts, msg, ErrorCode::InvalidSignature); @@ -412,7 +411,7 @@ mod tests { let test_accounts = setup_attestor_accounts(vec![attestor.eth_address], 1); let path = b"ibc/commitments/channel-0/sequence/1"; - let Hash(path_hash) = solana_keccak_hasher::hash(path); + let path_hash = solana_keccak_hasher::hash(path).to_bytes(); let zero_commitment = [0u8; 32]; let msg = build_signed_msg(&[&attestor], HEIGHT, &[(path_hash, zero_commitment)], path); @@ -425,7 +424,7 @@ mod tests { let test_accounts = setup_attestor_accounts(vec![attestor.eth_address], 1); let path = b"ibc/commitments/channel-0/sequence/1"; - let Hash(path_hash) = solana_keccak_hasher::hash(path); + let path_hash = solana_keccak_hasher::hash(path).to_bytes(); let non_zero_commitment = [0xAB; 32]; let msg = build_signed_msg( @@ -446,7 +445,7 @@ mod tests { let test_accounts = setup_attestor_accounts(addresses, 2); let path = b"ibc/commitments/channel-0/sequence/1"; - let Hash(path_hash) = solana_keccak_hasher::hash(path); + let path_hash = solana_keccak_hasher::hash(path).to_bytes(); let zero_commitment = [0u8; 32]; // Sign with 2 out of 3 attestors @@ -466,7 +465,7 @@ mod tests { let test_accounts = setup_attestor_accounts(vec![trusted_attestor.eth_address], 1); let path = b"ibc/commitments/channel-0/sequence/1"; - let Hash(path_hash) = solana_keccak_hasher::hash(path); + let path_hash = solana_keccak_hasher::hash(path).to_bytes(); let zero_commitment = [0u8; 32]; let msg = build_signed_msg( @@ -484,7 +483,7 @@ mod tests { let test_accounts = setup_attestor_accounts(vec![attestor.eth_address], 1); let attested_path = b"ibc/commitments/channel-0/sequence/1"; - let Hash(attested_path_hash) = solana_keccak_hasher::hash(attested_path); + let attested_path_hash = solana_keccak_hasher::hash(attested_path).to_bytes(); let different_path = b"ibc/commitments/channel-0/sequence/999"; let msg = build_signed_msg( @@ -502,7 +501,7 @@ mod tests { let test_accounts = setup_attestor_accounts(vec![attestor.eth_address], 1); let path = b"ibc/commitments/channel-0/sequence/1"; - let Hash(path_hash) = solana_keccak_hasher::hash(path); + let path_hash = solana_keccak_hasher::hash(path).to_bytes(); let zero_commitment = [0u8; 32]; let msg = build_signed_msg( @@ -521,7 +520,7 @@ mod tests { let test_accounts = setup_attestor_accounts(addresses, 3); let path = b"ibc/commitments/channel-0/sequence/1"; - let Hash(path_hash) = solana_keccak_hasher::hash(path); + let path_hash = solana_keccak_hasher::hash(path).to_bytes(); let zero_commitment = [0u8; 32]; let attestor_refs: Vec<_> = attestors.iter().collect(); @@ -541,7 +540,7 @@ mod tests { let test_accounts = setup_attestor_accounts(vec![trusted_attestor.eth_address], 2); let path = b"ibc/commitments/channel-0/sequence/1"; - let Hash(path_hash) = solana_keccak_hasher::hash(path); + let path_hash = solana_keccak_hasher::hash(path).to_bytes(); let zero_commitment = [0u8; 32]; let msg = build_signed_msg( @@ -569,7 +568,7 @@ mod tests { let test_accounts = setup_test_accounts(HEIGHT, client_state, timestamp); let path = b"ibc/commitments/channel-0/sequence/1"; - let Hash(path_hash) = solana_keccak_hasher::hash(path); + let path_hash = solana_keccak_hasher::hash(path).to_bytes(); let zero_commitment = [0u8; 32]; let msg = build_signed_msg(&[&attestor], HEIGHT, &[(path_hash, zero_commitment)], path); diff --git a/programs/solana/programs/attestation/src/lib.rs b/programs/solana/programs/attestation/src/lib.rs index 3e7e2b91b..a239ca14a 100644 --- a/programs/solana/programs/attestation/src/lib.rs +++ b/programs/solana/programs/attestation/src/lib.rs @@ -68,7 +68,7 @@ pub mod attestation { } pub fn update_client<'info>( - ctx: Context<'_, '_, 'info, 'info, UpdateClient<'info>>, + ctx: Context<'info, UpdateClient<'info>>, new_height: u64, params: UpdateClientParams, ) -> Result<()> { diff --git a/programs/solana/programs/attestation/src/test_helpers.rs b/programs/solana/programs/attestation/src/test_helpers.rs index f2461d461..e4803a9b6 100644 --- a/programs/solana/programs/attestation/src/test_helpers.rs +++ b/programs/solana/programs/attestation/src/test_helpers.rs @@ -8,8 +8,9 @@ pub mod accounts { use access_manager::AccessManagerState; use anchor_lang::AccountSerialize; use solana_sdk::account::Account; + use solana_sdk::native_loader; use solana_sdk::pubkey::Pubkey; - use solana_sdk::{native_loader, system_program}; + use solana_sdk_ids::system_program; pub fn create_client_state_account(client_state: &ClientState) -> Account { let mut data = vec![]; @@ -45,7 +46,8 @@ pub mod accounts { _reserved: [0; 256], }; let mut data = vec![0u8; 8 + AppState::INIT_SPACE]; - app_state.try_serialize(&mut &mut data[..]).unwrap(); + let mut writer = &mut data[..]; + app_state.try_serialize(&mut writer).unwrap(); Account { lamports: 1_000_000, data, @@ -109,7 +111,7 @@ pub mod accounts { Account { lamports: 1_000_000, data: ixs_data, - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, }, @@ -121,7 +123,7 @@ pub mod accounts { program_id: &Pubkey, authority: Option, ) -> (Pubkey, Account) { - use solana_sdk::bpf_loader_upgradeable::{self, UpgradeableLoaderState}; + use anchor_lang::solana_program::bpf_loader_upgradeable::{self, UpgradeableLoaderState}; let (program_data_pda, _) = Pubkey::find_program_address(&[program_id.as_ref()], &bpf_loader_upgradeable::ID); @@ -302,7 +304,8 @@ pub fn setup_program_test_with_whitelist( _reserved: [0; 256], }; let mut app_data = vec![0u8; 8 + crate::types::AppState::INIT_SPACE]; - app_state.try_serialize(&mut &mut app_data[..]).unwrap(); + let mut writer = &mut app_data[..]; + app_state.try_serialize(&mut writer).unwrap(); pt.add_account( app_state_pda, diff --git a/programs/solana/programs/ics07-tendermint/Cargo.toml b/programs/solana/programs/ics07-tendermint/Cargo.toml index 755f5a9ec..ba7c0ca9a 100644 --- a/programs/solana/programs/ics07-tendermint/Cargo.toml +++ b/programs/solana/programs/ics07-tendermint/Cargo.toml @@ -32,6 +32,7 @@ ics25-handler.workspace = true solana-ibc-types.workspace = true solana-ibc-borsh-header = { workspace = true, features = ["light-client"] } solana-ibc-constants.workspace = true +solana-instructions-sysvar.workspace = true solana-sdk-ids.workspace = true solana-sha256-hasher.workspace = true @@ -53,6 +54,7 @@ mollusk-svm.workspace = true mollusk-svm-bencher.workspace = true solana-program-test.workspace = true solana-sdk = { workspace = true, features = ["full"] } +solana-compute-budget-interface.workspace = true serde.workspace = true serde_json.workspace = true hex.workspace = true diff --git a/programs/solana/programs/ics07-tendermint/src/instructions/access_manager_transfer.rs b/programs/solana/programs/ics07-tendermint/src/instructions/access_manager_transfer.rs index da2f06548..2be2ea284 100644 --- a/programs/solana/programs/ics07-tendermint/src/instructions/access_manager_transfer.rs +++ b/programs/solana/programs/ics07-tendermint/src/instructions/access_manager_transfer.rs @@ -17,15 +17,15 @@ pub struct ProposeAccessManagerTransfer<'info> { bump, seeds::program = app_state.am_state.access_manager )] - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// Admin signer authorized to propose the transfer. pub admin: Signer<'info>, /// Instructions sysvar used by the access manager to inspect the transaction. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn propose_access_manager_transfer( @@ -62,15 +62,15 @@ pub struct AcceptAccessManagerTransfer<'info> { bump, seeds::program = app_state.am_state.pending_access_manager.unwrap() )] - pub new_am_state: AccountInfo<'info>, + pub new_am_state: UncheckedAccount<'info>, /// Admin signer authorized on the **new** access manager. pub admin: Signer<'info>, /// Instructions sysvar used by the access manager to inspect the transaction. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn accept_access_manager_transfer(ctx: Context) -> Result<()> { @@ -97,15 +97,15 @@ pub struct CancelAccessManagerTransfer<'info> { bump, seeds::program = app_state.am_state.access_manager )] - pub am_state: AccountInfo<'info>, + pub am_state: UncheckedAccount<'info>, /// Admin signer authorized to cancel the transfer. pub admin: Signer<'info>, /// Instructions sysvar used by the access manager to inspect the transaction. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn cancel_access_manager_transfer(ctx: Context) -> Result<()> { @@ -136,7 +136,7 @@ mod tests { SolanaAccount { lamports: 1_000_000_000, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, } @@ -155,7 +155,8 @@ mod tests { }; let mut data = vec![0u8; 8 + AppState::INIT_SPACE]; - app_state.try_serialize(&mut &mut data[..]).unwrap(); + let mut writer = &mut data[..]; + app_state.try_serialize(&mut writer).unwrap(); SolanaAccount { lamports: 10_000_000, @@ -180,7 +181,8 @@ mod tests { }; let mut data = vec![0u8; 8 + 10000]; - access_manager.try_serialize(&mut &mut data[..]).unwrap(); + let mut writer = &mut data[..]; + access_manager.try_serialize(&mut writer).unwrap(); SolanaAccount { lamports: 10_000_000, @@ -215,7 +217,7 @@ mod tests { SolanaAccount { lamports: 1_000_000, data: ixs_data, - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, }, diff --git a/programs/solana/programs/ics07-tendermint/src/instructions/assemble_and_submit_misbehaviour.rs b/programs/solana/programs/ics07-tendermint/src/instructions/assemble_and_submit_misbehaviour.rs index 4a5de774d..97b2e2f63 100644 --- a/programs/solana/programs/ics07-tendermint/src/instructions/assemble_and_submit_misbehaviour.rs +++ b/programs/solana/programs/ics07-tendermint/src/instructions/assemble_and_submit_misbehaviour.rs @@ -36,7 +36,7 @@ pub struct AssembleAndSubmitMisbehaviour<'info> { bump, seeds::program = app_state.am_state.access_manager )] - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// First trusted consensus state referenced by the misbehaviour evidence. #[account( @@ -58,13 +58,13 @@ pub struct AssembleAndSubmitMisbehaviour<'info> { /// Instructions sysvar used by the access manager to inspect the transaction. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, // Remaining accounts are the chunk accounts in order, followed by signature verification accounts. } pub fn assemble_and_submit_misbehaviour<'info>( - mut ctx: Context<'_, '_, 'info, 'info, AssembleAndSubmitMisbehaviour<'info>>, + mut ctx: Context<'info, AssembleAndSubmitMisbehaviour<'info>>, chunk_count: u8, _trusted_height_1: u64, _trusted_height_2: u64, @@ -152,7 +152,7 @@ fn validate_and_load_chunk( } fn process_misbehaviour<'info>( - ctx: &mut Context<'_, '_, 'info, 'info, AssembleAndSubmitMisbehaviour<'info>>, + ctx: &mut Context<'info, AssembleAndSubmitMisbehaviour<'info>>, misbehaviour_bytes: Vec, signature_verification_accounts: &'info [AccountInfo<'info>], ) -> Result<()> { @@ -176,7 +176,7 @@ fn process_misbehaviour<'info>( let current_time = crate::secs_to_nanos(Clock::get()?.unix_timestamp); - let output = tendermint_light_client_misbehaviour::check_for_misbehaviour( + let output = tendermint_light_client_misbehaviour::check_for_misbehaviour_solana( &tm_client_state, &misbehaviour, trusted_consensus_state_1, diff --git a/programs/solana/programs/ics07-tendermint/src/instructions/assemble_and_submit_misbehaviour/tests.rs b/programs/solana/programs/ics07-tendermint/src/instructions/assemble_and_submit_misbehaviour/tests.rs index 3297f37bd..b72e528d0 100644 --- a/programs/solana/programs/ics07-tendermint/src/instructions/assemble_and_submit_misbehaviour/tests.rs +++ b/programs/solana/programs/ics07-tendermint/src/instructions/assemble_and_submit_misbehaviour/tests.rs @@ -3,10 +3,10 @@ use crate::state::{ConsensusStateStore, MisbehaviourChunk}; use crate::test_helpers::PROGRAM_BINARY_PATH; use crate::types::{AppState, ClientState, ConsensusState, IbcHeight}; use access_manager::AccessManagerState; +use anchor_lang::prelude::Clock; use anchor_lang::solana_program::{ instruction::{AccountMeta, Instruction}, pubkey::Pubkey, - sysvar::clock::Clock, }; use anchor_lang::AccountSerialize; use anchor_lang::InstructionData; @@ -114,7 +114,7 @@ fn setup_test_accounts(config: TestSetupConfig) -> TestAccounts { Account { lamports: 10_000_000_000, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }, @@ -208,7 +208,7 @@ fn setup_test_accounts(config: TestSetupConfig) -> TestAccounts { Account { lamports: 0, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }, @@ -219,7 +219,7 @@ fn setup_test_accounts(config: TestSetupConfig) -> TestAccounts { Account { lamports: 0, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }, @@ -248,7 +248,7 @@ fn setup_test_accounts(config: TestSetupConfig) -> TestAccounts { // Add instructions sysvar for CPI validation accounts.push(( - anchor_lang::solana_program::sysvar::instructions::ID, + solana_instructions_sysvar::ID, crate::test_helpers::create_instructions_sysvar_account(), )); @@ -325,7 +325,7 @@ fn create_assemble_instruction(test_accounts: &TestAccounts) -> Instruction { AccountMeta::new_readonly(test_accounts.trusted_consensus_state_1_pda, false), AccountMeta::new_readonly(test_accounts.trusted_consensus_state_2_pda, false), AccountMeta::new(test_accounts.submitter, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; for chunk_pda in &test_accounts.chunk_pdas { diff --git a/programs/solana/programs/ics07-tendermint/src/instructions/assemble_and_update_client.rs b/programs/solana/programs/ics07-tendermint/src/instructions/assemble_and_update_client.rs index e9afba3bd..812e834c8 100644 --- a/programs/solana/programs/ics07-tendermint/src/instructions/assemble_and_update_client.rs +++ b/programs/solana/programs/ics07-tendermint/src/instructions/assemble_and_update_client.rs @@ -37,7 +37,7 @@ pub struct AssembleAndUpdateClient<'info> { bump, seeds::program = app_state.am_state.access_manager )] - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// Consensus state the header declares as its trust anchor; validated against PDA seeds. #[account( @@ -65,8 +65,8 @@ pub struct AssembleAndUpdateClient<'info> { /// Instructions sysvar used by the access manager to inspect the transaction. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, // Remaining accounts are the chunk accounts in order, followed by signature verification accounts. // They will be validated and closed in the instruction handler. } @@ -77,7 +77,7 @@ impl AssembleAndUpdateClient<'_> { } pub fn assemble_and_update_client<'info>( - mut ctx: Context<'_, '_, 'info, 'info, AssembleAndUpdateClient<'info>>, + mut ctx: Context<'info, AssembleAndUpdateClient<'info>>, target_height: u64, chunk_count: u8, trusted_height: u64, @@ -108,7 +108,7 @@ pub fn assemble_and_update_client<'info>( )?; // Return the UpdateResult as bytes for callers to verify - set_return_data(&result.try_to_vec()?); + set_return_data(&borsh::to_vec(&result)?); Ok(result) } @@ -153,7 +153,7 @@ fn assemble_chunks( } fn process_header_update<'info>( - ctx: &mut Context<'_, '_, 'info, 'info, AssembleAndUpdateClient<'info>>, + ctx: &mut Context<'info, AssembleAndUpdateClient<'info>>, header_bytes: Vec, chunk_count: usize, target_height: u64, @@ -223,7 +223,7 @@ fn verify_and_update_header<'info>( let current_time = crate::secs_to_nanos(Clock::get()?.unix_timestamp); - let output = tendermint_light_client_update_client::update_client( + let output = tendermint_light_client_update_client::update_client_solana( &update_client_state, &trusted_ibc_state, header, diff --git a/programs/solana/programs/ics07-tendermint/src/instructions/assemble_and_update_client/tests.rs b/programs/solana/programs/ics07-tendermint/src/instructions/assemble_and_update_client/tests.rs index 883d77d65..97aaae2f8 100644 --- a/programs/solana/programs/ics07-tendermint/src/instructions/assemble_and_update_client/tests.rs +++ b/programs/solana/programs/ics07-tendermint/src/instructions/assemble_and_update_client/tests.rs @@ -16,8 +16,8 @@ use solana_sdk::account::Account; use solana_sdk::clock::Clock; use solana_sdk::instruction::{AccountMeta, Instruction}; use solana_sdk::pubkey::Pubkey; -use solana_sdk::system_program; use solana_sdk::sysvar; +use solana_sdk_ids::system_program; fn setup_mollusk() -> Mollusk { let mut mollusk = Mollusk::new(&crate::ID, PROGRAM_BINARY_PATH); @@ -159,7 +159,7 @@ fn create_assemble_instruction(params: AssembleInstructionParams) -> Instruction AccountMeta::new(params.new_consensus_state_pda, false), AccountMeta::new(params.submitter, true), AccountMeta::new_readonly(system_program::ID, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; // Add chunk accounts @@ -304,7 +304,7 @@ fn test_successful_assembly_and_update() { // Add instructions sysvar for CPI validation accounts.push(( - anchor_lang::solana_program::sysvar::instructions::ID, + solana_instructions_sysvar::ID, crate::test_helpers::create_instructions_sysvar_account(), )); @@ -443,7 +443,7 @@ fn test_assembly_with_corrupted_chunk() { // Add instructions sysvar for CPI validation accounts.push(( - anchor_lang::solana_program::sysvar::instructions::ID, + solana_instructions_sysvar::ID, crate::test_helpers::create_instructions_sysvar_account(), )); @@ -549,7 +549,7 @@ fn test_assembly_wrong_submitter() { // Add instructions sysvar for CPI validation accounts.push(( - anchor_lang::solana_program::sysvar::instructions::ID, + solana_instructions_sysvar::ID, crate::test_helpers::create_instructions_sysvar_account(), )); @@ -657,7 +657,7 @@ fn test_assembly_chunks_in_wrong_order() { // Add instructions sysvar for CPI validation accounts.push(( - anchor_lang::solana_program::sysvar::instructions::ID, + solana_instructions_sysvar::ID, crate::test_helpers::create_instructions_sysvar_account(), )); @@ -773,7 +773,7 @@ fn test_rent_reclaim_after_assembly() { // Add instructions sysvar for CPI validation accounts.push(( - anchor_lang::solana_program::sysvar::instructions::ID, + solana_instructions_sysvar::ID, crate::test_helpers::create_instructions_sysvar_account(), )); @@ -910,7 +910,7 @@ fn test_assemble_and_update_client_happy_path() { // Add instructions sysvar for CPI validation accounts.push(( - anchor_lang::solana_program::sysvar::instructions::ID, + solana_instructions_sysvar::ID, crate::test_helpers::create_instructions_sysvar_account(), )); @@ -1086,7 +1086,7 @@ fn test_assemble_with_frozen_client() { // Add instructions sysvar for CPI validation accounts.push(( - anchor_lang::solana_program::sysvar::instructions::ID, + solana_instructions_sysvar::ID, crate::test_helpers::create_instructions_sysvar_account(), )); @@ -1235,7 +1235,7 @@ fn test_assemble_with_existing_consensus_state() { // Add instructions sysvar for CPI validation accounts.push(( - anchor_lang::solana_program::sysvar::instructions::ID, + solana_instructions_sysvar::ID, crate::test_helpers::create_instructions_sysvar_account(), )); @@ -1378,7 +1378,7 @@ fn test_assemble_with_invalid_header_after_assembly() { // Add instructions sysvar for CPI validation accounts.push(( - anchor_lang::solana_program::sysvar::instructions::ID, + solana_instructions_sysvar::ID, crate::test_helpers::create_instructions_sysvar_account(), )); @@ -1504,7 +1504,7 @@ fn test_assemble_updates_latest_height() { // Add instructions sysvar for CPI validation accounts.push(( - anchor_lang::solana_program::sysvar::instructions::ID, + solana_instructions_sysvar::ID, crate::test_helpers::create_instructions_sysvar_account(), )); @@ -1656,7 +1656,7 @@ fn test_assemble_and_update_with_invalid_signature() { Account { lamports: 0, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }, @@ -1666,13 +1666,13 @@ fn test_assemble_and_update_with_invalid_signature() { Account { lamports: 1_000_000_000, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }, ), ( - solana_sdk::system_program::ID, + solana_sdk_ids::system_program::ID, Account { lamports: 1, data: vec![], @@ -1694,8 +1694,8 @@ fn test_assemble_and_update_with_invalid_signature() { AccountMeta::new_readonly(trusted_consensus_pda, false), AccountMeta::new(new_consensus_pda, false), AccountMeta::new(submitter, true), - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), ]; // Add chunk accounts to instruction @@ -1737,7 +1737,7 @@ fn test_assemble_and_update_with_invalid_signature() { // Add instructions sysvar for CPI validation accounts.push(( - anchor_lang::solana_program::sysvar::instructions::ID, + solana_instructions_sysvar::ID, crate::test_helpers::create_instructions_sysvar_account(), )); @@ -1832,7 +1832,7 @@ fn test_assemble_wrong_client_state_pda() { )); accounts.push(( - anchor_lang::solana_program::sysvar::instructions::ID, + solana_instructions_sysvar::ID, crate::test_helpers::create_instructions_sysvar_account(), )); @@ -1927,7 +1927,7 @@ fn test_assemble_wrong_new_consensus_state_pda() { )); accounts.push(( - anchor_lang::solana_program::sysvar::instructions::ID, + solana_instructions_sysvar::ID, crate::test_helpers::create_instructions_sysvar_account(), )); @@ -2040,7 +2040,7 @@ fn test_assemble_target_height_mismatch() { ]; accounts.push(( - anchor_lang::solana_program::sysvar::instructions::ID, + solana_instructions_sysvar::ID, crate::test_helpers::create_instructions_sysvar_account(), )); diff --git a/programs/solana/programs/ics07-tendermint/src/instructions/initialize.rs b/programs/solana/programs/ics07-tendermint/src/instructions/initialize.rs index f80963acb..69eca1d21 100644 --- a/programs/solana/programs/ics07-tendermint/src/instructions/initialize.rs +++ b/programs/solana/programs/ics07-tendermint/src/instructions/initialize.rs @@ -117,8 +117,9 @@ mod tests { use mollusk_svm::Mollusk; use solana_sdk::account::Account; use solana_sdk::instruction::{AccountMeta, Instruction}; + use solana_sdk::native_loader; use solana_sdk::pubkey::Pubkey; - use solana_sdk::{native_loader, system_program}; + use solana_sdk_ids::system_program; struct TestAccounts { payer: Pubkey, diff --git a/programs/solana/programs/ics07-tendermint/src/instructions/pre_verify_signatures.rs b/programs/solana/programs/ics07-tendermint/src/instructions/pre_verify_signatures.rs index 98085554b..1751c1216 100644 --- a/programs/solana/programs/ics07-tendermint/src/instructions/pre_verify_signatures.rs +++ b/programs/solana/programs/ics07-tendermint/src/instructions/pre_verify_signatures.rs @@ -1,7 +1,7 @@ use crate::types::AppState; use anchor_lang::prelude::*; -use anchor_lang::solana_program::sysvar::instructions as ix_sysvar; use solana_ibc_types::ics07::SignatureData; +use solana_instructions_sysvar as ix_sysvar; use solana_sdk_ids::ed25519_program; /// Verifies an Ed25519 signature by introspecting a preceding `Ed25519Program` instruction @@ -11,8 +11,8 @@ use solana_sdk_ids::ed25519_program; pub struct PreVerifySignature<'info> { /// Instructions sysvar used to load and introspect the preceding Ed25519 verify instruction. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, /// PDA that stores the Ed25519 verification outcome, keyed by the signature hash. #[account( @@ -41,7 +41,7 @@ pub struct PreVerifySignature<'info> { bump, seeds::program = app_state.am_state.access_manager )] - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// Relayer that signs the transaction and pays for the verification PDA creation. #[account(mut)] @@ -51,7 +51,7 @@ pub struct PreVerifySignature<'info> { } pub fn pre_verify_signature<'info>( - ctx: Context<'_, '_, '_, 'info, PreVerifySignature<'info>>, + ctx: Context<'info, PreVerifySignature<'info>>, signature: SignatureData, ) -> Result<()> { access_manager::require_role( @@ -218,7 +218,7 @@ mod integration_tests { AccountMeta::new_readonly(app_state_pda, false), AccountMeta::new_readonly(access_manager_pda, false), AccountMeta::new(submitter, true), - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), ], data: crate::instruction::PreVerifySignature { signature }.data(), } diff --git a/programs/solana/programs/ics07-tendermint/src/instructions/upload_header_chunk.rs b/programs/solana/programs/ics07-tendermint/src/instructions/upload_header_chunk.rs index 8ab377a2d..c2d28b059 100644 --- a/programs/solana/programs/ics07-tendermint/src/instructions/upload_header_chunk.rs +++ b/programs/solana/programs/ics07-tendermint/src/instructions/upload_header_chunk.rs @@ -46,7 +46,7 @@ pub struct UploadHeaderChunk<'info> { bump, seeds::program = app_state.am_state.access_manager )] - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// Relayer that signs the transaction and pays for chunk account creation. #[account(mut)] @@ -54,8 +54,8 @@ pub struct UploadHeaderChunk<'info> { /// Instructions sysvar used by the access manager to inspect the transaction. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, /// Required by Anchor for PDA creation via the System Program. pub system_program: Program<'info, System>, @@ -177,7 +177,7 @@ mod integration_tests { AccountMeta::new_readonly(access_manager_pda, false), AccountMeta::new(submitter, true), AccountMeta::new_readonly(solana_sdk::sysvar::instructions::ID, false), - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), ], data: crate::instruction::UploadHeaderChunk { params }.data(), } diff --git a/programs/solana/programs/ics07-tendermint/src/instructions/upload_header_chunk/tests.rs b/programs/solana/programs/ics07-tendermint/src/instructions/upload_header_chunk/tests.rs index 588a01914..fc2f13088 100644 --- a/programs/solana/programs/ics07-tendermint/src/instructions/upload_header_chunk/tests.rs +++ b/programs/solana/programs/ics07-tendermint/src/instructions/upload_header_chunk/tests.rs @@ -142,10 +142,7 @@ fn setup_test_accounts( accounts.push((app_state_pda, app_state_account)); accounts.push((access_manager_pda, access_manager_account)); - accounts.push(( - anchor_lang::solana_program::sysvar::instructions::ID, - instructions_sysvar_account, - )); + accounts.push((solana_instructions_sysvar::ID, instructions_sysvar_account)); TestAccounts { submitter, @@ -183,7 +180,7 @@ fn create_upload_instruction( AccountMeta::new_readonly(test_accounts.app_state_pda, false), AccountMeta::new_readonly(test_accounts.access_manager_pda, false), AccountMeta::new(test_accounts.submitter, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), AccountMeta::new_readonly(system_program::ID, false), ], data: instruction_data.data(), diff --git a/programs/solana/programs/ics07-tendermint/src/instructions/upload_misbehaviour_chunk.rs b/programs/solana/programs/ics07-tendermint/src/instructions/upload_misbehaviour_chunk.rs index 780171be8..60cbedc90 100644 --- a/programs/solana/programs/ics07-tendermint/src/instructions/upload_misbehaviour_chunk.rs +++ b/programs/solana/programs/ics07-tendermint/src/instructions/upload_misbehaviour_chunk.rs @@ -45,7 +45,7 @@ pub struct UploadMisbehaviourChunk<'info> { bump, seeds::program = app_state.am_state.access_manager )] - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// Relayer that signs the transaction and pays for chunk account creation. #[account(mut)] @@ -53,8 +53,8 @@ pub struct UploadMisbehaviourChunk<'info> { /// Instructions sysvar used by the access manager to inspect the transaction. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, /// Required by Anchor for PDA creation via the System Program. pub system_program: Program<'info, System>, @@ -169,7 +169,7 @@ mod integration_tests { AccountMeta::new_readonly(access_manager_pda, false), AccountMeta::new(submitter, true), AccountMeta::new_readonly(solana_sdk::sysvar::instructions::ID, false), - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), ], data: crate::instruction::UploadMisbehaviourChunk { params }.data(), } diff --git a/programs/solana/programs/ics07-tendermint/src/instructions/upload_misbehaviour_chunk/tests.rs b/programs/solana/programs/ics07-tendermint/src/instructions/upload_misbehaviour_chunk/tests.rs index 2fc04abd5..e821f1efc 100644 --- a/programs/solana/programs/ics07-tendermint/src/instructions/upload_misbehaviour_chunk/tests.rs +++ b/programs/solana/programs/ics07-tendermint/src/instructions/upload_misbehaviour_chunk/tests.rs @@ -124,10 +124,7 @@ fn setup_test_accounts( accounts.push((app_state_pda, app_state_account)); accounts.push((access_manager_pda, access_manager_account)); - accounts.push(( - anchor_lang::solana_program::sysvar::instructions::ID, - instructions_sysvar_account, - )); + accounts.push((solana_instructions_sysvar::ID, instructions_sysvar_account)); TestAccounts { submitter, @@ -153,7 +150,7 @@ fn create_upload_instruction( AccountMeta::new_readonly(test_accounts.app_state_pda, false), AccountMeta::new_readonly(test_accounts.access_manager_pda, false), AccountMeta::new(test_accounts.submitter, true), - AccountMeta::new_readonly(anchor_lang::solana_program::sysvar::instructions::ID, false), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), AccountMeta::new_readonly(system_program::ID, false), ], data: instruction_data.data(), diff --git a/programs/solana/programs/ics07-tendermint/src/instructions/verify_membership.rs b/programs/solana/programs/ics07-tendermint/src/instructions/verify_membership.rs index 4fbca3f37..0dc733fea 100644 --- a/programs/solana/programs/ics07-tendermint/src/instructions/verify_membership.rs +++ b/programs/solana/programs/ics07-tendermint/src/instructions/verify_membership.rs @@ -334,7 +334,7 @@ mod tests { Account { lamports: 0, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }, diff --git a/programs/solana/programs/ics07-tendermint/src/instructions/verify_non_membership.rs b/programs/solana/programs/ics07-tendermint/src/instructions/verify_non_membership.rs index 3a7b8cfce..48ff92bed 100644 --- a/programs/solana/programs/ics07-tendermint/src/instructions/verify_non_membership.rs +++ b/programs/solana/programs/ics07-tendermint/src/instructions/verify_non_membership.rs @@ -340,7 +340,7 @@ mod tests { Account { lamports: 0, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }, diff --git a/programs/solana/programs/ics07-tendermint/src/lib.rs b/programs/solana/programs/ics07-tendermint/src/lib.rs index bedf517dc..8207f0921 100644 --- a/programs/solana/programs/ics07-tendermint/src/lib.rs +++ b/programs/solana/programs/ics07-tendermint/src/lib.rs @@ -91,7 +91,7 @@ pub mod ics07_tendermint { /// Assemble chunks and update the client /// Automatically cleans up all chunks after successful update pub fn assemble_and_update_client<'info>( - ctx: Context<'_, '_, 'info, 'info, AssembleAndUpdateClient<'info>>, + ctx: Context<'info, AssembleAndUpdateClient<'info>>, target_height: u64, chunk_count: u8, trusted_height: u64, @@ -122,7 +122,7 @@ pub mod ics07_tendermint { /// Assemble chunks and submit misbehaviour /// Automatically freezes the client and cleans up all chunks pub fn assemble_and_submit_misbehaviour<'info>( - ctx: Context<'_, '_, 'info, 'info, AssembleAndSubmitMisbehaviour<'info>>, + ctx: Context<'info, AssembleAndSubmitMisbehaviour<'info>>, chunk_count: u8, trusted_height_1: u64, trusted_height_2: u64, @@ -144,7 +144,7 @@ pub mod ics07_tendermint { } pub fn pre_verify_signature<'info>( - ctx: Context<'_, '_, '_, 'info, PreVerifySignature<'info>>, + ctx: Context<'info, PreVerifySignature<'info>>, signature: solana_ibc_types::ics07::SignatureData, ) -> Result<()> { instructions::pre_verify_signatures::pre_verify_signature(ctx, signature) diff --git a/programs/solana/programs/ics07-tendermint/src/test_helpers.rs b/programs/solana/programs/ics07-tendermint/src/test_helpers.rs index e1c26815a..0d38660b9 100644 --- a/programs/solana/programs/ics07-tendermint/src/test_helpers.rs +++ b/programs/solana/programs/ics07-tendermint/src/test_helpers.rs @@ -144,7 +144,6 @@ pub mod fixtures { /// Convert Protobuf header bytes to Borsh format (like the relayer does) /// Fixtures contain Protobuf-encoded headers, but our program expects Borsh pub fn protobuf_to_borsh_header(protobuf_bytes: &[u8]) -> Vec { - use borsh::BorshSerialize; use ibc_client_tendermint::types::Header; use ibc_proto::ibc::lightclients::tendermint::v1::Header as RawHeader; use ibc_proto::Protobuf; @@ -156,9 +155,7 @@ pub mod fixtures { // Convert to BorshHeader and serialize (exactly like the relayer does) let borsh_header = header_to_borsh(header); - borsh_header - .try_to_vec() - .expect("Failed to encode header to Borsh") + borsh::to_vec(&borsh_header).expect("Failed to encode header to Borsh") } /// Extract header timestamp from update client message @@ -193,7 +190,6 @@ pub mod fixtures { /// Corrupt the header signature in the client message bytes pub fn corrupt_header_signature(client_message_hex: &str) -> Vec { - use borsh::BorshSerialize; use ibc_client_tendermint::types::Header; use ibc_proto::ibc::lightclients::tendermint::v1::Header as RawHeader; use ibc_proto::Protobuf; @@ -224,9 +220,7 @@ pub mod fixtures { let header =
>::decode_vec(&buf) .expect("Failed to decode corrupted protobuf header"); let borsh_header = header_to_borsh(header); - borsh_header - .try_to_vec() - .expect("Failed to encode corrupted header to Borsh") + borsh::to_vec(&borsh_header).expect("Failed to encode corrupted header to Borsh") } /// Create client message bytes with wrong trusted height @@ -234,7 +228,6 @@ pub mod fixtures { client_message_hex: &str, wrong_height: u64, ) -> Vec { - use borsh::BorshSerialize; use ibc_client_tendermint::types::Header; use ibc_proto::ibc::lightclients::tendermint::v1::Header as RawHeader; use ibc_proto::Protobuf; @@ -259,9 +252,7 @@ pub mod fixtures { let header =
>::decode_vec(&buf) .expect("Failed to decode modified protobuf header"); let borsh_header = header_to_borsh(header); - borsh_header - .try_to_vec() - .expect("Failed to encode modified header to Borsh") + borsh::to_vec(&borsh_header).expect("Failed to encode modified header to Borsh") } // Generic test helper functions @@ -598,7 +589,7 @@ pub mod chunk_test_utils { use solana_sdk::account::Account; use solana_sdk::keccak; use solana_sdk::pubkey::Pubkey; - use solana_sdk::system_program; + use solana_sdk_ids::system_program; pub struct ChunkTestData { pub chunk_data: Vec, @@ -607,7 +598,7 @@ pub mod chunk_test_utils { pub fn create_test_chunk_data(index: u8, size: usize) -> ChunkTestData { let chunk_data = vec![index + 1; size]; - let chunk_hash = keccak::hash(&chunk_data).0; + let chunk_hash = keccak::hash(&chunk_data).to_bytes(); ChunkTestData { chunk_data, chunk_hash, @@ -756,7 +747,7 @@ pub mod chunk_test_utils { full_header.extend(&chunk_data); } - let header_commitment = keccak::hash(&full_header).0; + let header_commitment = keccak::hash(&full_header).to_bytes(); (all_chunks, header_commitment) } @@ -805,7 +796,8 @@ pub fn setup_program_test_with_whitelist( _reserved: [0; 256], }; let mut app_data = vec![0u8; 8 + crate::types::AppState::INIT_SPACE]; - app_state.try_serialize(&mut &mut app_data[..]).unwrap(); + let mut writer = &mut app_data[..]; + app_state.try_serialize(&mut writer).unwrap(); pt.add_account( app_state_pda, @@ -872,7 +864,8 @@ pub fn setup_program_test_with_relayer( _reserved: [0; 256], }; let mut app_data = vec![0u8; 8 + crate::types::AppState::INIT_SPACE]; - app_state.try_serialize(&mut &mut app_data[..]).unwrap(); + let mut writer = &mut app_data[..]; + app_state.try_serialize(&mut writer).unwrap(); pt.add_account( app_state_pda, @@ -922,7 +915,7 @@ pub fn setup_program_test_with_relayer( solana_sdk::account::Account { lamports: 10_000_000_000, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }, @@ -940,7 +933,7 @@ pub fn fund_account( solana_sdk::account::Account { lamports: 10_000_000_000, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }, @@ -1093,7 +1086,7 @@ pub fn create_program_data_account( program_id: &solana_sdk::pubkey::Pubkey, authority: Option, ) -> (solana_sdk::pubkey::Pubkey, solana_sdk::account::Account) { - use solana_sdk::bpf_loader_upgradeable::{self, UpgradeableLoaderState}; + use anchor_lang::solana_program::bpf_loader_upgradeable::{self, UpgradeableLoaderState}; let (program_data_pda, _) = solana_sdk::pubkey::Pubkey::find_program_address( &[program_id.as_ref()], @@ -1144,7 +1137,7 @@ pub fn create_instructions_sysvar_account() -> solana_sdk::account::Account { solana_sdk::account::Account { lamports: 1_000_000, data: ixs_data, - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, } diff --git a/programs/solana/programs/ics07-tendermint/tests/pre_verify_signatures_tests.rs b/programs/solana/programs/ics07-tendermint/tests/pre_verify_signatures_tests.rs index d01042258..2c8f07f9e 100644 --- a/programs/solana/programs/ics07-tendermint/tests/pre_verify_signatures_tests.rs +++ b/programs/solana/programs/ics07-tendermint/tests/pre_verify_signatures_tests.rs @@ -7,12 +7,12 @@ use ed25519_dalek::{Signer, SigningKey}; use ics07_tendermint::state::SignatureVerification; use rstest::{fixture, rstest}; use sha2::{Digest, Sha256}; +use solana_compute_budget_interface::ComputeBudgetInstruction; use solana_ibc_types::ics07::SignatureData; use solana_program_test::{BanksClient, ProgramTest, ProgramTestBanksClientExt}; use solana_sdk::{ - compute_budget::ComputeBudgetInstruction, hash::Hash, instruction::Instruction, pubkey::Pubkey, - signature::Keypair, signer::Signer as SolSigner, sysvar::instructions as ix_sysvar, - transaction::Transaction, + hash::Hash, instruction::Instruction, pubkey::Pubkey, signature::Keypair, + signer::Signer as SolSigner, sysvar::instructions as ix_sysvar, transaction::Transaction, }; const PROGRAM_BINARY_PATH: &str = "../../target/deploy/ics07_tendermint"; @@ -120,7 +120,7 @@ async fn ctx() -> TestContext { solana_sdk::account::Account { lamports: 10_000_000_000, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }, @@ -214,7 +214,7 @@ fn create_pre_verify_instruction( app_state: app_state_pda, access_manager: access_manager_pda, submitter, - system_program: solana_sdk::system_program::ID, + system_program: solana_sdk_ids::system_program::ID, }; let ix_data = ics07_tendermint::instruction::PreVerifySignature { diff --git a/programs/solana/programs/ics26-router/Cargo.toml b/programs/solana/programs/ics26-router/Cargo.toml index efd549541..0ac0e42ea 100644 --- a/programs/solana/programs/ics26-router/Cargo.toml +++ b/programs/solana/programs/ics26-router/Cargo.toml @@ -25,6 +25,7 @@ idl-build = ["anchor-lang/idl-build", "solana-ibc-types/idl-build"] anchor-lang = { workspace = true, features = ["init-if-needed"] } solana-ibc-types.workspace = true solana-ibc-constants.workspace = true +solana-instructions-sysvar.workspace = true ics25-handler.workspace = true access-manager = { workspace = true, features = ["cpi"] } solana-sha256-hasher.workspace = true @@ -34,6 +35,7 @@ access-manager = { workspace = true, features = ["test-utils"] } mollusk-svm.workspace = true mollusk-svm-bencher.workspace = true solana-sdk = { workspace = true, features = ["full"] } +solana-sdk-ids.workspace = true solana-program-test.workspace = true tokio = { version = "1", features = ["full"] } bincode.workspace = true diff --git a/programs/solana/programs/ics26-router/src/instructions/access_manager_transfer.rs b/programs/solana/programs/ics26-router/src/instructions/access_manager_transfer.rs index 67c30923b..aa70305f6 100644 --- a/programs/solana/programs/ics26-router/src/instructions/access_manager_transfer.rs +++ b/programs/solana/programs/ics26-router/src/instructions/access_manager_transfer.rs @@ -17,15 +17,15 @@ pub struct ProposeAccessManagerTransfer<'info> { bump, seeds::program = router_state.am_state.access_manager )] - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// Admin signer authorized to propose the transfer. pub admin: Signer<'info>, /// Instructions sysvar used by the access manager to inspect the transaction. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn propose_access_manager_transfer( @@ -62,15 +62,15 @@ pub struct AcceptAccessManagerTransfer<'info> { bump, seeds::program = router_state.am_state.pending_access_manager.unwrap() )] - pub new_am_state: AccountInfo<'info>, + pub new_am_state: UncheckedAccount<'info>, /// Admin signer authorized on the **new** access manager. pub admin: Signer<'info>, /// Instructions sysvar used by the access manager to inspect the transaction. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn accept_access_manager_transfer(ctx: Context) -> Result<()> { @@ -97,15 +97,15 @@ pub struct CancelAccessManagerTransfer<'info> { bump, seeds::program = router_state.am_state.access_manager )] - pub am_state: AccountInfo<'info>, + pub am_state: UncheckedAccount<'info>, /// Admin signer authorized to cancel the transfer. pub admin: Signer<'info>, /// Instructions sysvar used by the access manager to inspect the transaction. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn cancel_access_manager_transfer(ctx: Context) -> Result<()> { diff --git a/programs/solana/programs/ics26-router/src/instructions/ack_packet.rs b/programs/solana/programs/ics26-router/src/instructions/ack_packet.rs index 6d1f3ff8b..81b4db5bc 100644 --- a/programs/solana/programs/ics26-router/src/instructions/ack_packet.rs +++ b/programs/solana/programs/ics26-router/src/instructions/ack_packet.rs @@ -37,7 +37,7 @@ pub struct AckPacket<'info> { bump, seeds::program = router_state.am_state.access_manager, )] - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// PDA mapping the source port to its registered IBC application. #[account( @@ -61,12 +61,12 @@ pub struct AckPacket<'info> { /// IBC application program to notify via CPI. /// CHECK: IBC app program, validated against `IBCApp` account #[account(address = ibc_app.app_program_id @ RouterError::IbcAppNotFound)] - pub ibc_app_program: AccountInfo<'info>, + pub ibc_app_program: UncheckedAccount<'info>, /// Mutable state account of the IBC application (passed into the CPI). /// CHECK: Ownership validated against IBC app program #[account(mut, owner = ibc_app.app_program_id @ RouterError::InvalidAccountOwner)] - pub ibc_app_state: AccountInfo<'info>, + pub ibc_app_state: UncheckedAccount<'info>, /// Relayer submitting the acknowledgement; must hold the `RELAYER_ROLE`. /// Receives rent from the closed `packet_commitment` account. @@ -78,8 +78,8 @@ pub struct AckPacket<'info> { /// Instructions sysvar used for CPI detection. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, /// Client PDA for the source client; must be active. #[account( @@ -92,23 +92,20 @@ pub struct AckPacket<'info> { /// Light client program used to verify the acknowledgement proof. /// CHECK: Validated against client registry #[account(address = client.client_program_id @ RouterError::InvalidLightClientProgram)] - pub light_client_program: AccountInfo<'info>, + pub light_client_program: UncheckedAccount<'info>, /// Client state account owned by the light client program. /// CHECK: Ownership validated against light client program #[account(owner = light_client_program.key() @ RouterError::InvalidAccountOwner)] - pub client_state: AccountInfo<'info>, + pub client_state: UncheckedAccount<'info>, /// Consensus state account owned by the light client program. /// CHECK: Ownership validated against light client program #[account(owner = light_client_program.key() @ RouterError::InvalidAccountOwner)] - pub consensus_state: AccountInfo<'info>, + pub consensus_state: UncheckedAccount<'info>, } -pub fn ack_packet<'info>( - ctx: Context<'_, '_, '_, 'info, AckPacket<'info>>, - msg: MsgAckPacket, -) -> Result<()> { +pub fn ack_packet<'info>(ctx: Context<'info, AckPacket<'info>>, msg: MsgAckPacket) -> Result<()> { access_manager::require_role( &ctx.accounts.access_manager, solana_ibc_types::roles::RELAYER_ROLE, @@ -192,10 +189,10 @@ pub fn ack_packet<'info>( ); let cpi_ctx = CpiContext::new( - ctx.accounts.ibc_app_program.clone(), + ctx.accounts.ibc_app_program.key(), OnAcknowledgementPacket { - app_state: ctx.accounts.ibc_app_state.clone(), - instructions_sysvar: ctx.accounts.instructions_sysvar.clone(), + app_state: ctx.accounts.ibc_app_state.to_account_info(), + instructions_sysvar: ctx.accounts.instructions_sysvar.to_account_info(), payer: ctx.accounts.relayer.to_account_info(), system_program: ctx.accounts.system_program.to_account_info(), }, @@ -235,7 +232,7 @@ mod tests { use solana_sdk::instruction::{AccountMeta, Instruction}; use solana_sdk::program_error::ProgramError; use solana_sdk::pubkey::Pubkey; - use solana_sdk::system_program; + use solana_sdk_ids::system_program; struct AckPacketTestContext { instruction: Instruction, diff --git a/programs/solana/programs/ics26-router/src/instructions/add_ibc_app.rs b/programs/solana/programs/ics26-router/src/instructions/add_ibc_app.rs index d6977c2a8..0e31861a1 100644 --- a/programs/solana/programs/ics26-router/src/instructions/add_ibc_app.rs +++ b/programs/solana/programs/ics26-router/src/instructions/add_ibc_app.rs @@ -22,7 +22,7 @@ pub struct AddIbcApp<'info> { bump, seeds::program = router_state.am_state.access_manager )] - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// PDA mapping `port_id` to its IBC application program. #[account( @@ -51,8 +51,8 @@ pub struct AddIbcApp<'info> { /// Instructions sysvar used for CPI detection. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn add_ibc_app(ctx: Context, port_id: String) -> Result<()> { @@ -94,7 +94,7 @@ mod tests { use solana_sdk::instruction::{AccountMeta, Instruction}; use solana_sdk::program_error::ProgramError; use solana_sdk::pubkey::Pubkey; - use solana_sdk::system_program; + use solana_sdk_ids::system_program; #[test] fn test_add_ibc_app_happy_path() { @@ -511,7 +511,7 @@ mod integration_tests { AccountMeta::new_readonly(access_manager::ID, false), AccountMeta::new(payer, true), AccountMeta::new_readonly(authority, true), - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), AccountMeta::new_readonly(solana_sdk::sysvar::instructions::ID, false), ], data: crate::instruction::AddIbcApp { diff --git a/programs/solana/programs/ics26-router/src/instructions/cleanup_chunks.rs b/programs/solana/programs/ics26-router/src/instructions/cleanup_chunks.rs index a7b09828c..5429436a6 100644 --- a/programs/solana/programs/ics26-router/src/instructions/cleanup_chunks.rs +++ b/programs/solana/programs/ics26-router/src/instructions/cleanup_chunks.rs @@ -23,7 +23,7 @@ pub struct CleanupChunks<'info> { bump, seeds::program = router_state.am_state.access_manager, )] - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// Relayer reclaiming rent; must hold the `RELAYER_ROLE`. /// Receives lamports from closed chunk accounts. @@ -32,12 +32,12 @@ pub struct CleanupChunks<'info> { /// Instructions sysvar used for CPI detection. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn cleanup_chunks<'info>( - ctx: Context<'_, '_, '_, 'info, CleanupChunks<'info>>, + ctx: Context<'info, CleanupChunks<'info>>, msg: MsgCleanupChunks, ) -> Result<()> { access_manager::require_role( @@ -159,7 +159,7 @@ mod tests { use solana_sdk::instruction::{AccountMeta, Instruction}; use solana_sdk::program_error::ProgramError; use solana_sdk::pubkey::Pubkey; - use solana_sdk::system_program; + use solana_sdk_ids::system_program; struct CleanupTestContext { instruction: Instruction, @@ -443,7 +443,7 @@ mod integration_tests { solana_sdk::account::Account { lamports: 10_000_000_000, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }, diff --git a/programs/solana/programs/ics26-router/src/instructions/client.rs b/programs/solana/programs/ics26-router/src/instructions/client.rs index 5063b8ced..765fbb64f 100644 --- a/programs/solana/programs/ics26-router/src/instructions/client.rs +++ b/programs/solana/programs/ics26-router/src/instructions/client.rs @@ -29,7 +29,7 @@ pub struct AddClient<'info> { bump, seeds::program = router_state.am_state.access_manager )] - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// PDA mapping `client_id` to its light client program and counterparty info. #[account( @@ -43,15 +43,15 @@ pub struct AddClient<'info> { /// Light client program to associate with this client. /// CHECK: Unchecked; the caller decides which light client to associate - pub light_client_program: AccountInfo<'info>, + pub light_client_program: UncheckedAccount<'info>, /// Solana system program used for account creation. pub system_program: Program<'info, System>, /// Instructions sysvar used for CPI detection. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } /// Updates an existing client's program ID, counterparty info or active status. @@ -77,7 +77,7 @@ pub struct MigrateClient<'info> { bump, seeds::program = router_state.am_state.access_manager )] - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// Mutable client PDA whose fields will be updated. #[account( @@ -89,8 +89,8 @@ pub struct MigrateClient<'info> { /// Instructions sysvar used for CPI detection. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } /// Parameters for migrating a client @@ -203,7 +203,7 @@ mod tests { use solana_sdk::instruction::{AccountMeta, Instruction}; use solana_sdk::program_error::ProgramError; use solana_sdk::pubkey::Pubkey; - use solana_sdk::system_program; + use solana_sdk_ids::system_program; /// Helper struct for test configuration struct AddClientTestConfig<'a> { @@ -997,7 +997,7 @@ mod integration_tests { AccountMeta::new_readonly(access_manager_pda, false), AccountMeta::new(client_pda, false), AccountMeta::new_readonly(Pubkey::new_unique(), false), - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), AccountMeta::new_readonly(solana_sdk::sysvar::instructions::ID, false), ], data: crate::instruction::AddClient { @@ -1069,7 +1069,7 @@ mod integration_tests { solana_sdk::account::Account { lamports: 10_000_000_000, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, } diff --git a/programs/solana/programs/ics26-router/src/instructions/initialize.rs b/programs/solana/programs/ics26-router/src/instructions/initialize.rs index 835607040..7f81d15a2 100644 --- a/programs/solana/programs/ics26-router/src/instructions/initialize.rs +++ b/programs/solana/programs/ics26-router/src/instructions/initialize.rs @@ -62,9 +62,10 @@ mod tests { use mollusk_svm::Mollusk; use solana_sdk::account::Account; use solana_sdk::instruction::{AccountMeta, Instruction}; + use solana_sdk::native_loader; use solana_sdk::program_error::ProgramError; use solana_sdk::pubkey::Pubkey; - use solana_sdk::{native_loader, system_program}; + use solana_sdk_ids::system_program; const ANCHOR_ERROR_OFFSET: u32 = 6000; diff --git a/programs/solana/programs/ics26-router/src/instructions/pause.rs b/programs/solana/programs/ics26-router/src/instructions/pause.rs index 2b3a97287..43dcf3e87 100644 --- a/programs/solana/programs/ics26-router/src/instructions/pause.rs +++ b/programs/solana/programs/ics26-router/src/instructions/pause.rs @@ -23,15 +23,15 @@ pub struct Pause<'info> { bump, seeds::program = router_state.am_state.access_manager, )] - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// Signer authorized to pause the router. pub pauser: Signer<'info>, /// Instructions sysvar used for CPI detection. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn pause(ctx: Context) -> Result<()> { diff --git a/programs/solana/programs/ics26-router/src/instructions/recv_packet.rs b/programs/solana/programs/ics26-router/src/instructions/recv_packet.rs index 851e874c7..a7cb4c6e2 100644 --- a/programs/solana/programs/ics26-router/src/instructions/recv_packet.rs +++ b/programs/solana/programs/ics26-router/src/instructions/recv_packet.rs @@ -29,7 +29,7 @@ pub struct RecvPacket<'info> { bump, constraint = !router_state.paused @ RouterError::RouterPaused, )] - pub router_state: Account<'info, RouterState>, + pub router_state: Box>, /// Global access control state used for relayer role verification. /// CHECK: Validated by seeds constraint using stored `access_manager` program ID @@ -38,14 +38,14 @@ pub struct RecvPacket<'info> { bump, seeds::program = router_state.am_state.access_manager, )] - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// PDA mapping the destination port to its registered IBC application. #[account( seeds = [IBCApp::SEED, msg.packet.payloads[0].dest_port.as_bytes()], bump )] - pub ibc_app: Account<'info, IBCApp>, + pub ibc_app: Box>, /// Stores the packet receipt commitment; created on first receive. #[account( @@ -78,12 +78,12 @@ pub struct RecvPacket<'info> { /// IBC application program to deliver the packet to via CPI. /// CHECK: IBC app program, validated against `IBCApp` account #[account(address = ibc_app.app_program_id @ RouterError::IbcAppNotFound)] - pub ibc_app_program: AccountInfo<'info>, + pub ibc_app_program: UncheckedAccount<'info>, /// Mutable state account of the IBC application (passed into the CPI). /// CHECK: Ownership validated against IBC app program #[account(mut, owner = ibc_app.app_program_id @ RouterError::InvalidAccountOwner)] - pub ibc_app_state: AccountInfo<'info>, + pub ibc_app_state: UncheckedAccount<'info>, /// Relayer submitting the packet; must hold the `RELAYER_ROLE` and pays rent. #[account(mut)] @@ -94,8 +94,8 @@ pub struct RecvPacket<'info> { /// Instructions sysvar used for CPI detection. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, /// Client PDA for the destination client; must be active. #[account( @@ -103,26 +103,26 @@ pub struct RecvPacket<'info> { bump, constraint = client.active @ RouterError::ClientNotActive, )] - pub client: Account<'info, Client>, + pub client: Box>, /// Light client program used to verify the membership proof. /// CHECK: Validated against client registry #[account(address = client.client_program_id @ RouterError::InvalidLightClientProgram)] - pub light_client_program: AccountInfo<'info>, + pub light_client_program: UncheckedAccount<'info>, /// Client state account owned by the light client program. /// CHECK: Ownership validated against light client program #[account(owner = light_client_program.key() @ RouterError::InvalidAccountOwner)] - pub client_state: AccountInfo<'info>, + pub client_state: UncheckedAccount<'info>, /// Consensus state account owned by the light client program. /// CHECK: Ownership validated against light client program #[account(owner = light_client_program.key() @ RouterError::InvalidAccountOwner)] - pub consensus_state: AccountInfo<'info>, + pub consensus_state: UncheckedAccount<'info>, } pub fn recv_packet<'info>( - ctx: Context<'_, '_, '_, 'info, RecvPacket<'info>>, + ctx: Context<'info, RecvPacket<'info>>, msg: MsgRecvPacket, ) -> Result<()> { access_manager::require_role( @@ -222,10 +222,10 @@ pub fn recv_packet<'info>( ); let cpi_ctx = CpiContext::new( - ctx.accounts.ibc_app_program.clone(), + ctx.accounts.ibc_app_program.key(), OnRecvPacket { - app_state: ctx.accounts.ibc_app_state.clone(), - instructions_sysvar: ctx.accounts.instructions_sysvar.clone(), + app_state: ctx.accounts.ibc_app_state.to_account_info(), + instructions_sysvar: ctx.accounts.instructions_sysvar.to_account_info(), payer: ctx.accounts.relayer.to_account_info(), system_program: ctx.accounts.system_program.to_account_info(), }, @@ -299,10 +299,12 @@ mod tests { use mollusk_svm::result::Check; use mollusk_svm::Mollusk; use solana_ibc_types::{roles, Delivery, MsgPacket, MsgPayload, MsgProof, Payload}; + use solana_sdk::clock::Clock; use solana_sdk::instruction::{AccountMeta, Instruction}; use solana_sdk::program_error::ProgramError; use solana_sdk::pubkey::Pubkey; - use solana_sdk::{clock::Clock, system_program}; + use solana_sdk::sysvar::SysvarSerialize as _; + use solana_sdk_ids::system_program; #[test] fn test_recv_packet_unauthorized_sender() { @@ -1281,7 +1283,7 @@ mod tests { solana_sdk::account::Account { lamports: 1, data: clock_data, - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, }, diff --git a/programs/solana/programs/ics26-router/src/instructions/send_packet.rs b/programs/solana/programs/ics26-router/src/instructions/send_packet.rs index 97605d259..41e6190f5 100644 --- a/programs/solana/programs/ics26-router/src/instructions/send_packet.rs +++ b/programs/solana/programs/ics26-router/src/instructions/send_packet.rs @@ -68,17 +68,17 @@ pub struct SendPacket<'info> { /// Light client program used to query client status before sending. /// CHECK: Validated against client registry. #[account(address = client.client_program_id @ RouterError::InvalidLightClientProgram)] - pub light_client_program: AccountInfo<'info>, + pub light_client_program: UncheckedAccount<'info>, /// Client state account owned by the light client program. /// CHECK: Ownership validated against light client program. #[account(owner = light_client_program.key() @ RouterError::InvalidAccountOwner)] - pub client_state: AccountInfo<'info>, + pub client_state: UncheckedAccount<'info>, /// Consensus state account owned by the light client program (for expiry check). /// CHECK: Ownership validated against light client program. #[account(owner = light_client_program.key() @ RouterError::InvalidAccountOwner)] - pub consensus_state: AccountInfo<'info>, + pub consensus_state: UncheckedAccount<'info>, } pub fn send_packet(ctx: Context, msg: MsgSendPacket) -> Result { @@ -146,8 +146,9 @@ mod tests { use solana_sdk::pubkey::Pubkey; use solana_sdk::signature::Keypair; use solana_sdk::signer::Signer; - use solana_sdk::system_program; + use solana_sdk::sysvar::SysvarSerialize as _; use solana_sdk::transaction::Transaction; + use solana_sdk_ids::system_program; const TEST_PORT: &str = "transfer"; const TEST_CLIENT_ID: &str = "test-client"; @@ -311,7 +312,7 @@ mod tests { solana_sdk::account::Account { lamports: 1, data: clock_data, - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, }, @@ -961,7 +962,7 @@ mod tests { solana_sdk::account::Account { lamports: 1, data: clock_data, - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, }, @@ -1285,7 +1286,7 @@ mod tests { solana_sdk::account::Account { lamports: 1, data: clock_data, - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, }, @@ -1678,7 +1679,7 @@ mod tests { solana_sdk::account::Account { lamports: 1, data: clock_data, - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, }, @@ -1831,7 +1832,7 @@ mod tests { solana_sdk::account::Account { lamports: 1, data: clock_data, - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, }, diff --git a/programs/solana/programs/ics26-router/src/instructions/timeout_packet.rs b/programs/solana/programs/ics26-router/src/instructions/timeout_packet.rs index 563e56a5f..c7704a73f 100644 --- a/programs/solana/programs/ics26-router/src/instructions/timeout_packet.rs +++ b/programs/solana/programs/ics26-router/src/instructions/timeout_packet.rs @@ -35,7 +35,7 @@ pub struct TimeoutPacket<'info> { bump, seeds::program = router_state.am_state.access_manager, )] - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// PDA mapping the source port to its registered IBC application. #[account( @@ -59,12 +59,12 @@ pub struct TimeoutPacket<'info> { /// IBC application program to notify via CPI. /// CHECK: IBC app program, validated against `IBCApp` account #[account(address = ibc_app.app_program_id @ RouterError::IbcAppNotFound)] - pub ibc_app_program: AccountInfo<'info>, + pub ibc_app_program: UncheckedAccount<'info>, /// Mutable state account of the IBC application (passed into the CPI). /// CHECK: Ownership validated against IBC app program #[account(mut, owner = ibc_app.app_program_id @ RouterError::InvalidAccountOwner)] - pub ibc_app_state: AccountInfo<'info>, + pub ibc_app_state: UncheckedAccount<'info>, /// Relayer submitting the timeout; must hold the `RELAYER_ROLE`. /// Receives rent from the closed `packet_commitment` account. @@ -76,8 +76,8 @@ pub struct TimeoutPacket<'info> { /// Instructions sysvar used for CPI detection. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, /// Client PDA for the source client; must be active. #[account( @@ -90,21 +90,21 @@ pub struct TimeoutPacket<'info> { /// Light client program used to verify the non-membership proof. /// CHECK: Validated against client registry #[account(address = client.client_program_id @ RouterError::InvalidLightClientProgram)] - pub light_client_program: AccountInfo<'info>, + pub light_client_program: UncheckedAccount<'info>, /// Client state account owned by the light client program. /// CHECK: Ownership validated against light client program #[account(owner = light_client_program.key() @ RouterError::InvalidAccountOwner)] - pub client_state: AccountInfo<'info>, + pub client_state: UncheckedAccount<'info>, /// Consensus state account owned by the light client program. /// CHECK: Ownership validated against light client program #[account(owner = light_client_program.key() @ RouterError::InvalidAccountOwner)] - pub consensus_state: AccountInfo<'info>, + pub consensus_state: UncheckedAccount<'info>, } pub fn timeout_packet<'info>( - ctx: Context<'_, '_, '_, 'info, TimeoutPacket<'info>>, + ctx: Context<'info, TimeoutPacket<'info>>, msg: MsgTimeoutPacket, ) -> Result<()> { access_manager::require_role( @@ -189,10 +189,10 @@ pub fn timeout_packet<'info>( ); let cpi_ctx = CpiContext::new( - ctx.accounts.ibc_app_program.clone(), + ctx.accounts.ibc_app_program.key(), OnTimeoutPacket { - app_state: ctx.accounts.ibc_app_state.clone(), - instructions_sysvar: ctx.accounts.instructions_sysvar.clone(), + app_state: ctx.accounts.ibc_app_state.to_account_info(), + instructions_sysvar: ctx.accounts.instructions_sysvar.to_account_info(), payer: ctx.accounts.relayer.to_account_info(), system_program: ctx.accounts.system_program.to_account_info(), }, @@ -230,7 +230,7 @@ mod tests { use solana_sdk::instruction::{AccountMeta, Instruction}; use solana_sdk::program_error::ProgramError; use solana_sdk::pubkey::Pubkey; - use solana_sdk::system_program; + use solana_sdk_ids::system_program; struct TimeoutPacketTestContext { instruction: Instruction, diff --git a/programs/solana/programs/ics26-router/src/instructions/unpause.rs b/programs/solana/programs/ics26-router/src/instructions/unpause.rs index e5713c4e6..828405679 100644 --- a/programs/solana/programs/ics26-router/src/instructions/unpause.rs +++ b/programs/solana/programs/ics26-router/src/instructions/unpause.rs @@ -23,15 +23,15 @@ pub struct Unpause<'info> { bump, seeds::program = router_state.am_state.access_manager, )] - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// Signer authorized to unpause the router. pub unpauser: Signer<'info>, /// Instructions sysvar used for CPI detection. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn unpause(ctx: Context) -> Result<()> { diff --git a/programs/solana/programs/ics26-router/src/instructions/upload_payload_chunk.rs b/programs/solana/programs/ics26-router/src/instructions/upload_payload_chunk.rs index 05adccff6..1099880d1 100644 --- a/programs/solana/programs/ics26-router/src/instructions/upload_payload_chunk.rs +++ b/programs/solana/programs/ics26-router/src/instructions/upload_payload_chunk.rs @@ -22,7 +22,7 @@ pub struct UploadPayloadChunk<'info> { bump, seeds::program = router_state.am_state.access_manager, )] - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// Temporary storage for one payload chunk, keyed by relayer, client, /// sequence, payload index and chunk index. @@ -51,8 +51,8 @@ pub struct UploadPayloadChunk<'info> { /// Instructions sysvar used for CPI detection. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn upload_payload_chunk(ctx: Context, msg: MsgUploadChunk) -> Result<()> { @@ -91,7 +91,7 @@ mod tests { use solana_sdk::instruction::{AccountMeta, Instruction}; use solana_sdk::program_error::ProgramError; use solana_sdk::pubkey::Pubkey; - use solana_sdk::system_program; + use solana_sdk_ids::system_program; struct UploadPayloadChunkTestContext { instruction: Instruction, diff --git a/programs/solana/programs/ics26-router/src/instructions/upload_proof_chunk.rs b/programs/solana/programs/ics26-router/src/instructions/upload_proof_chunk.rs index 576760f43..9a902a3b3 100644 --- a/programs/solana/programs/ics26-router/src/instructions/upload_proof_chunk.rs +++ b/programs/solana/programs/ics26-router/src/instructions/upload_proof_chunk.rs @@ -22,7 +22,7 @@ pub struct UploadProofChunk<'info> { bump, seeds::program = router_state.am_state.access_manager, )] - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// Temporary storage for one proof chunk, keyed by relayer, client, /// sequence and chunk index. @@ -50,8 +50,8 @@ pub struct UploadProofChunk<'info> { /// Instructions sysvar used for CPI detection. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn upload_proof_chunk(ctx: Context, msg: MsgUploadChunk) -> Result<()> { @@ -89,7 +89,7 @@ mod tests { use solana_sdk::instruction::{AccountMeta, Instruction}; use solana_sdk::program_error::ProgramError; use solana_sdk::pubkey::Pubkey; - use solana_sdk::system_program; + use solana_sdk_ids::system_program; struct UploadProofChunkTestContext { instruction: Instruction, diff --git a/programs/solana/programs/ics26-router/src/lib.rs b/programs/solana/programs/ics26-router/src/lib.rs index 154d9425e..fb501cff4 100644 --- a/programs/solana/programs/ics26-router/src/lib.rs +++ b/programs/solana/programs/ics26-router/src/lib.rs @@ -38,21 +38,21 @@ pub mod ics26_router { } pub fn recv_packet<'info>( - ctx: Context<'_, '_, '_, 'info, RecvPacket<'info>>, + ctx: Context<'info, RecvPacket<'info>>, msg: MsgRecvPacket, ) -> Result<()> { instructions::recv_packet(ctx, msg) } pub fn ack_packet<'info>( - ctx: Context<'_, '_, '_, 'info, AckPacket<'info>>, + ctx: Context<'info, AckPacket<'info>>, msg: MsgAckPacket, ) -> Result<()> { instructions::ack_packet(ctx, msg) } pub fn timeout_packet<'info>( - ctx: Context<'_, '_, '_, 'info, TimeoutPacket<'info>>, + ctx: Context<'info, TimeoutPacket<'info>>, msg: MsgTimeoutPacket, ) -> Result<()> { instructions::timeout_packet(ctx, msg) @@ -86,7 +86,7 @@ pub mod ics26_router { } pub fn cleanup_chunks<'info>( - ctx: Context<'_, '_, '_, 'info, CleanupChunks<'info>>, + ctx: Context<'info, CleanupChunks<'info>>, msg: MsgCleanupChunks, ) -> Result<()> { instructions::cleanup_chunks(ctx, msg) diff --git a/programs/solana/programs/ics26-router/src/test_utils.rs b/programs/solana/programs/ics26-router/src/test_utils.rs index cad862e2e..ac0c254e9 100644 --- a/programs/solana/programs/ics26-router/src/test_utils.rs +++ b/programs/solana/programs/ics26-router/src/test_utils.rs @@ -4,7 +4,7 @@ use anchor_lang::{AccountSerialize, AnchorSerialize, Discriminator, Space}; use solana_ibc_types::roles; use solana_ibc_types::{ics24, Payload}; use solana_sdk::pubkey::Pubkey; -use solana_sdk::sysvar::Sysvar; +use solana_sdk::sysvar::SysvarSerialize as _; pub const ANCHOR_ERROR_OFFSET: u32 = 6000; @@ -60,7 +60,8 @@ pub fn setup_router_state() -> (Pubkey, Vec) { _reserved: [0; 256], }; let mut data = vec![0u8; 8 + RouterState::INIT_SPACE]; - router_state.try_serialize(&mut &mut data[..]).unwrap(); + let mut writer = &mut data[..]; + router_state.try_serialize(&mut writer).unwrap(); (router_state_pda, data) } @@ -73,7 +74,8 @@ pub fn setup_paused_router_state() -> (Pubkey, Vec) { _reserved: [0; 256], }; let mut data = vec![0u8; 8 + RouterState::INIT_SPACE]; - router_state.try_serialize(&mut &mut data[..]).unwrap(); + let mut writer = &mut data[..]; + router_state.try_serialize(&mut writer).unwrap(); (router_state_pda, data) } @@ -236,7 +238,7 @@ pub fn create_clock_account() -> (Pubkey, solana_sdk::account::Account) { solana_sdk::account::Account { lamports: 1, data: vec![1u8; solana_sdk::clock::Clock::size_of()], - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, }, @@ -251,7 +253,7 @@ pub fn create_clock_account_with_data( solana_sdk::account::Account { lamports: 1, data: clock_data, - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, }, @@ -296,7 +298,7 @@ pub fn create_instructions_sysvar_account_with_caller( solana_sdk::account::Account { lamports: 1_000_000, data: ixs_data, - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, }, @@ -334,7 +336,7 @@ pub fn create_fake_instructions_sysvar_account( solana_sdk::account::Account { lamports: 1_000_000, data: ixs_data, - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, }, @@ -368,7 +370,7 @@ pub fn create_system_account(pubkey: Pubkey) -> (Pubkey, solana_sdk::account::Ac solana_sdk::account::Account { lamports: 10_000_000_000, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }, @@ -397,7 +399,7 @@ pub fn create_system_account_with_lamports( solana_sdk::account::Account { lamports, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }, @@ -432,7 +434,7 @@ pub fn create_uninitialized_commitment_account( solana_sdk::account::Account { lamports: 0, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }, @@ -448,7 +450,7 @@ pub fn create_uninitialized_account( solana_sdk::account::Account { lamports, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }, @@ -506,20 +508,11 @@ pub fn setup_mollusk_with_mock_programs() -> mollusk_svm::Mollusk { use mollusk_svm::Mollusk; let mut mollusk = Mollusk::new(&crate::ID, get_router_program_path()); - mollusk.add_program( - &MOCK_LIGHT_CLIENT_ID, - get_mock_client_program_path(), - &solana_sdk::bpf_loader_upgradeable::ID, - ); - mollusk.add_program( - &MOCK_IBC_APP_PROGRAM_ID, - get_mock_ibc_app_program_path(), - &solana_sdk::bpf_loader_upgradeable::ID, - ); + mollusk.add_program(&MOCK_LIGHT_CLIENT_ID, get_mock_client_program_path()); + mollusk.add_program(&MOCK_IBC_APP_PROGRAM_ID, get_mock_ibc_app_program_path()); mollusk.add_program( &access_manager::ID, access_manager::get_access_manager_program_path(), - &solana_sdk::bpf_loader_upgradeable::ID, ); mollusk } @@ -531,15 +524,10 @@ pub fn setup_mollusk_with_light_client() -> mollusk_svm::Mollusk { use mollusk_svm::Mollusk; let mut mollusk = Mollusk::new(&crate::ID, get_router_program_path()); - mollusk.add_program( - &MOCK_LIGHT_CLIENT_ID, - get_mock_client_program_path(), - &solana_sdk::bpf_loader_upgradeable::ID, - ); + mollusk.add_program(&MOCK_LIGHT_CLIENT_ID, get_mock_client_program_path()); mollusk.add_program( &access_manager::ID, access_manager::get_access_manager_program_path(), - &solana_sdk::bpf_loader_upgradeable::ID, ); mollusk } @@ -572,7 +560,7 @@ pub fn create_bpf_program_account(pubkey: Pubkey) -> (Pubkey, solana_sdk::accoun solana_sdk::account::Account { lamports: 0, data: vec![], - owner: solana_sdk::bpf_loader_upgradeable::ID, + owner: anchor_lang::solana_program::bpf_loader_upgradeable::ID, executable: true, rent_epoch: 0, }, @@ -765,7 +753,7 @@ pub fn create_signer_account() -> solana_sdk::account::Account { solana_sdk::account::Account { lamports: 1_000_000_000, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, } @@ -784,7 +772,6 @@ pub fn setup_mollusk() -> mollusk_svm::Mollusk { mollusk.add_program( &access_manager::ID, access_manager::get_access_manager_program_path(), - &solana_sdk::bpf_loader_upgradeable::ID, ); mollusk } @@ -866,7 +853,7 @@ pub fn create_cpi_instructions_sysvar_account( solana_sdk::account::Account { lamports: 1_000_000, data: ixs_data, - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, } @@ -877,7 +864,7 @@ pub fn create_program_data_account( program_id: &Pubkey, authority: Option, ) -> (Pubkey, solana_sdk::account::Account) { - use solana_sdk::bpf_loader_upgradeable::{self, UpgradeableLoaderState}; + use anchor_lang::solana_program::bpf_loader_upgradeable::{self, UpgradeableLoaderState}; let (program_data_pda, _) = Pubkey::find_program_address(&[program_id.as_ref()], &bpf_loader_upgradeable::ID); @@ -975,9 +962,8 @@ pub fn setup_program_test_with_roles_and_whitelist( _reserved: [0; 256], }; let mut router_data = vec![0u8; 8 + RouterState::INIT_SPACE]; - router_state - .try_serialize(&mut &mut router_data[..]) - .unwrap(); + let mut writer = &mut router_data[..]; + router_state.try_serialize(&mut writer).unwrap(); pt.add_account( router_state_pda, diff --git a/programs/solana/programs/ics26-router/src/utils/chunking.rs b/programs/solana/programs/ics26-router/src/utils/chunking.rs index 140bbde22..4cdafc671 100644 --- a/programs/solana/programs/ics26-router/src/utils/chunking.rs +++ b/programs/solana/programs/ics26-router/src/utils/chunking.rs @@ -520,7 +520,6 @@ mod tests { &mut data, &crate::ID, false, - 0, ); let params = ReconstructPacketParams { @@ -577,7 +576,6 @@ mod tests { &mut data, &crate::ID, false, - 0, ); let params = ReconstructPacketParams { @@ -618,7 +616,6 @@ mod tests { &mut data, &crate::ID, false, - 0, ); let params = ReconstructPacketParams { @@ -645,7 +642,7 @@ mod tests { data: &'a mut [u8], owner: &'a Pubkey, ) -> AccountInfo<'a> { - AccountInfo::new(key, false, false, lamports, data, owner, false, 0) + AccountInfo::new(key, false, false, lamports, data, owner, false) } #[test] diff --git a/programs/solana/programs/ics27-gmp/Cargo.toml b/programs/solana/programs/ics27-gmp/Cargo.toml index aa032469a..918ada4b7 100644 --- a/programs/solana/programs/ics27-gmp/Cargo.toml +++ b/programs/solana/programs/ics27-gmp/Cargo.toml @@ -26,6 +26,7 @@ anchor-lang = { workspace = true, features = ["init-if-needed"] } solana-ibc-types.workspace = true solana-ibc-proto.workspace = true solana-ibc-macros.workspace = true +solana-instructions-sysvar.workspace = true ics26-router = { workspace = true, features = ["cpi"] } access-manager = { workspace = true, features = ["cpi"] } alloy-sol-types.workspace = true @@ -35,6 +36,8 @@ alloy-sol-types.workspace = true mollusk-svm.workspace = true mollusk-svm-bencher.workspace = true solana-sdk = { workspace = true, features = ["full"] } +solana-sdk-ids.workspace = true +solana-system-interface.workspace = true solana-program-test.workspace = true bincode.workspace = true test-gmp-app = { workspace = true, features = ["cpi"] } diff --git a/programs/solana/programs/ics27-gmp/src/abi.rs b/programs/solana/programs/ics27-gmp/src/abi.rs index 3ed9db90a..3db901893 100644 --- a/programs/solana/programs/ics27-gmp/src/abi.rs +++ b/programs/solana/programs/ics27-gmp/src/abi.rs @@ -22,11 +22,12 @@ impl TryFrom for RawGmpSolanaPayload { type Error = GMPError; fn try_from(abi: GmpSolanaPayloadAbi) -> std::result::Result { - let chunks = abi.packedAccounts.chunks_exact(PACKED_ACCOUNT_SIZE); - if !chunks.remainder().is_empty() { + let (chunks, remainder) = abi.packedAccounts.as_chunks::(); + if !remainder.is_empty() { return Err(GMPError::InvalidAbiEncoding); } let accounts = chunks + .iter() .map(|chunk| { Ok(RawSolanaAccountMeta { pubkey: chunk[..32].to_vec(), diff --git a/programs/solana/programs/ics27-gmp/src/instructions/access_manager_transfer.rs b/programs/solana/programs/ics27-gmp/src/instructions/access_manager_transfer.rs index 9024f8b53..56b753579 100644 --- a/programs/solana/programs/ics27-gmp/src/instructions/access_manager_transfer.rs +++ b/programs/solana/programs/ics27-gmp/src/instructions/access_manager_transfer.rs @@ -17,15 +17,15 @@ pub struct ProposeAccessManagerTransfer<'info> { bump, seeds::program = app_state.am_state.access_manager )] - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// Admin signer authorized to propose the transfer. pub admin: Signer<'info>, /// Instructions sysvar used by the access manager to inspect the transaction. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn propose_access_manager_transfer( @@ -62,15 +62,15 @@ pub struct AcceptAccessManagerTransfer<'info> { bump, seeds::program = app_state.am_state.pending_access_manager.unwrap() )] - pub new_am_state: AccountInfo<'info>, + pub new_am_state: UncheckedAccount<'info>, /// Admin signer authorized on the **new** access manager. pub admin: Signer<'info>, /// Instructions sysvar used by the access manager to inspect the transaction. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn accept_access_manager_transfer(ctx: Context) -> Result<()> { @@ -97,15 +97,15 @@ pub struct CancelAccessManagerTransfer<'info> { bump, seeds::program = app_state.am_state.access_manager )] - pub am_state: AccountInfo<'info>, + pub am_state: UncheckedAccount<'info>, /// Admin signer authorized to cancel the transfer. pub admin: Signer<'info>, /// Instructions sysvar used by the access manager to inspect the transaction. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn cancel_access_manager_transfer(ctx: Context) -> Result<()> { diff --git a/programs/solana/programs/ics27-gmp/src/instructions/admin.rs b/programs/solana/programs/ics27-gmp/src/instructions/admin.rs index a26ba1a6f..6e8436e29 100644 --- a/programs/solana/programs/ics27-gmp/src/instructions/admin.rs +++ b/programs/solana/programs/ics27-gmp/src/instructions/admin.rs @@ -20,15 +20,15 @@ pub struct PauseApp<'info> { bump, seeds::program = app_state.am_state.access_manager )] - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// Signer whose `PAUSER_ROLE` membership is verified by the access manager. pub authority: Signer<'info>, /// Instructions sysvar used to detect and reject unauthorized CPI callers. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn pause_app(ctx: Context) -> Result<()> { @@ -73,15 +73,15 @@ pub struct UnpauseApp<'info> { bump, seeds::program = app_state.am_state.access_manager )] - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// Signer whose `UNPAUSER_ROLE` membership is verified by the access manager. pub authority: Signer<'info>, /// Instructions sysvar used to detect and reject unauthorized CPI callers. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn unpause_app(ctx: Context) -> Result<()> { @@ -126,8 +126,8 @@ mod tests { account::Account as SolanaAccount, instruction::{AccountMeta, Instruction}, pubkey::Pubkey, - system_program, }; + use solana_sdk_ids::system_program; #[test] fn test_initialize_success() { diff --git a/programs/solana/programs/ics27-gmp/src/instructions/initialize.rs b/programs/solana/programs/ics27-gmp/src/instructions/initialize.rs index 9749d3d27..8b4fbe215 100644 --- a/programs/solana/programs/ics27-gmp/src/instructions/initialize.rs +++ b/programs/solana/programs/ics27-gmp/src/instructions/initialize.rs @@ -82,7 +82,7 @@ mod tests { use solana_sdk::instruction::{AccountMeta, Instruction}; use solana_sdk::program_error::ProgramError; use solana_sdk::pubkey::Pubkey; - use solana_sdk::system_program; + use solana_sdk_ids::system_program; fn create_initialize_instruction( app_state: Pubkey, diff --git a/programs/solana/programs/ics27-gmp/src/instructions/on_ack_packet.rs b/programs/solana/programs/ics27-gmp/src/instructions/on_ack_packet.rs index b991a2e56..0c7a6db00 100644 --- a/programs/solana/programs/ics27-gmp/src/instructions/on_ack_packet.rs +++ b/programs/solana/programs/ics27-gmp/src/instructions/on_ack_packet.rs @@ -19,8 +19,8 @@ pub struct OnAckPacket<'info> { /// Instructions sysvar used to verify the CPI caller is the authorized router. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instruction_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instruction_sysvar: UncheckedAccount<'info>, /// Fee payer that funds the `result_account` creation. #[account(mut)] @@ -144,7 +144,7 @@ mod tests { AccountMeta::new_readonly(app_state_pda, false), AccountMeta::new_readonly(solana_sdk::sysvar::instructions::ID, false), AccountMeta::new(payer, true), - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), AccountMeta::new(result_account_pda, false), ], data: instruction_data.data(), @@ -215,7 +215,7 @@ mod tests { AccountMeta::new_readonly(wrong_app_state_pda, false), // Wrong PDA! AccountMeta::new_readonly(solana_sdk::sysvar::instructions::ID, false), AccountMeta::new(payer, true), - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), AccountMeta::new(result_pda, false), ], data: instruction_data.data(), @@ -365,7 +365,7 @@ mod tests { AccountMeta::new_readonly(app_state_pda, false), AccountMeta::new_readonly(solana_sdk::sysvar::instructions::ID, false), AccountMeta::new(payer, true), - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), AccountMeta::new(result_pda, false), ], data: instruction_data.data(), @@ -431,7 +431,7 @@ mod tests { AccountMeta::new_readonly(app_state_pda, false), AccountMeta::new_readonly(solana_sdk::sysvar::instructions::ID, false), AccountMeta::new(payer, true), - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), AccountMeta::new(result_pda, false), ], data: instruction_data.data(), @@ -511,7 +511,7 @@ mod tests { AccountMeta::new_readonly(app_state_pda, false), AccountMeta::new_readonly(solana_sdk::sysvar::instructions::ID, false), AccountMeta::new(payer, true), - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), AccountMeta::new(result_pda, false), ], data: instruction_data.data(), @@ -628,7 +628,7 @@ mod tests { AccountMeta::new_readonly(app_state_pda, false), AccountMeta::new_readonly(solana_sdk::sysvar::instructions::ID, false), AccountMeta::new(payer, true), - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), AccountMeta::new(result_pda, false), ], data: instruction_data.data(), @@ -705,12 +705,9 @@ mod integration_tests { program_id: crate::ID, accounts: vec![ AccountMeta::new_readonly(app_state_pda, false), - AccountMeta::new_readonly( - anchor_lang::solana_program::sysvar::instructions::ID, - false, - ), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), AccountMeta::new(payer, true), - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), AccountMeta::new(result_pda, false), ], data: ix_data.data(), diff --git a/programs/solana/programs/ics27-gmp/src/instructions/on_recv_packet.rs b/programs/solana/programs/ics27-gmp/src/instructions/on_recv_packet.rs index 0fe43e28b..9f040a1d9 100644 --- a/programs/solana/programs/ics27-gmp/src/instructions/on_recv_packet.rs +++ b/programs/solana/programs/ics27-gmp/src/instructions/on_recv_packet.rs @@ -47,8 +47,8 @@ pub struct OnRecvPacket<'info> { /// Instructions sysvar used to verify the CPI caller is the authorized router. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instruction_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instruction_sysvar: UncheckedAccount<'info>, /// Relayer-provided fee payer. Required for router interface compatibility. /// NOT forwarded to the target CPI — target programs use the GMP PDA @@ -61,7 +61,7 @@ pub struct OnRecvPacket<'info> { } pub fn on_recv_packet<'info>( - ctx: Context<'_, '_, 'info, 'info, OnRecvPacket<'info>>, + ctx: Context<'info, OnRecvPacket<'info>>, msg: solana_ibc_types::OnRecvPacketMsg, ) -> Result> { // Verify this function is called via CPI from the authorized router @@ -204,6 +204,7 @@ mod tests { use crate::proto::{RawGmpPacketData, RawGmpSolanaPayload, RawSolanaAccountMeta}; use crate::state::GMPAppState; use crate::test_utils::*; + use anchor_lang::solana_program::bpf_loader_upgradeable; use anchor_lang::InstructionData; use mollusk_svm::result::Check; use mollusk_svm::Mollusk; @@ -211,13 +212,12 @@ mod tests { use solana_ibc_proto::ProstMessage; use solana_ibc_types::{GMPAccount, GmpPacketData}; use solana_sdk::account::Account; - use solana_sdk::bpf_loader_upgradeable; use solana_sdk::program_error::ProgramError; use solana_sdk::{ instruction::{AccountMeta, Instruction as SolanaInstructionSDK}, pubkey::Pubkey, - system_program, }; + use solana_sdk_ids::system_program; use test_gmp_app::ID as COUNTER_APP_ID; /// Helper function to create a `GMPAccount` from test data @@ -869,11 +869,7 @@ mod tests { fn create_counter_cpi_mollusk() -> Mollusk { let mut mollusk = Mollusk::new(&crate::ID, crate::get_gmp_program_path()); - mollusk.add_program( - &COUNTER_APP_ID, - "../../target/deploy/test_gmp_app", - &bpf_loader_upgradeable::ID, - ); + mollusk.add_program(&COUNTER_APP_ID, "../../target/deploy/test_gmp_app"); mollusk } @@ -1243,7 +1239,7 @@ mod tests { // The GMP payload embeds this as the CPI the target program will execute. let stolen_lamports: u64 = 1_000_000_000; // 1 SOL let transfer_ix = - solana_sdk::system_instruction::transfer(&ctx.payer, &attacker, stolen_lamports); + solana_system_interface::instruction::transfer(&ctx.payer, &attacker, stolen_lamports); // The malicious payload: relayer is marked `is_signer: true`. // Because the relayer signs the outer transaction, Solana's account @@ -1458,12 +1454,7 @@ mod tests { let mut mollusk = Mollusk::new(&crate::ID, crate::get_gmp_program_path()); // Add the counter app program so CPI will work - // Use BPF loader upgradeable for Anchor programs - mollusk.add_program( - &COUNTER_APP_ID, - "../../target/deploy/test_gmp_app", - &bpf_loader_upgradeable::ID, - ); + mollusk.add_program(&COUNTER_APP_ID, "../../target/deploy/test_gmp_app"); let router_program = ics26_router::ID; let payer = Pubkey::new_unique(); @@ -1703,18 +1694,14 @@ mod tests { /// so pre-funding is harmless — the PDA works as a signer regardless of its /// lamport balance. /// - /// The test chains two instructions via `process_instruction_chain`: + /// The test processes two instructions while carrying account state forward: /// 1. Adversary transfer → GMP PDA (real system program transfer) /// 2. `on_recv_packet` using the now-funded PDA as CPI signer #[allow(clippy::doc_markdown)] #[test] fn test_on_recv_packet_prefunded_gmp_pda_not_blocked() { let mut mollusk = Mollusk::new(&crate::ID, crate::get_gmp_program_path()); - mollusk.add_program( - &COUNTER_APP_ID, - "../../target/deploy/test_gmp_app", - &bpf_loader_upgradeable::ID, - ); + mollusk.add_program(&COUNTER_APP_ID, "../../target/deploy/test_gmp_app"); let router_program = ics26_router::ID; let payer = Pubkey::new_unique(); @@ -1740,7 +1727,7 @@ mod tests { // Step 1: adversary pre-funds the GMP PDA via system transfer let adversary_lamports: u64 = 50_000_000; - let prefund_ix = solana_sdk::system_instruction::transfer( + let prefund_ix = solana_system_interface::instruction::transfer( &adversary, &gmp_account_pda, adversary_lamports, @@ -1886,9 +1873,12 @@ mod tests { create_system_program_account(), ]; - // Chain: adversary transfer → on_recv_packet - // The transfer funds the GMP PDA; on_recv_packet uses it as a signer. - let result = mollusk.process_instruction_chain(&[prefund_ix, recv_ix], &accounts); + // Carry the funded PDA into a separate simulated router invocation. Mollusk + // assigns chain elements increasing top-level instruction indexes, while the + // mocked router instructions sysvar contains a single caller instruction. + let prefund_result = mollusk.process_instruction(&prefund_ix, &accounts); + assert!(!prefund_result.program_result.is_err()); + let result = mollusk.process_instruction(&recv_ix, &prefund_result.resulting_accounts); assert!( !result.program_result.is_err(), @@ -1923,11 +1913,7 @@ mod tests { let mut mollusk = Mollusk::new(&crate::ID, crate::get_gmp_program_path()); // Add the counter app program so CPI will be attempted - mollusk.add_program( - &COUNTER_APP_ID, - "../../target/deploy/test_gmp_app", - &bpf_loader_upgradeable::ID, - ); + mollusk.add_program(&COUNTER_APP_ID, "../../target/deploy/test_gmp_app"); let payer = Pubkey::new_unique(); let (app_state_pda, app_state_bump) = @@ -2260,12 +2246,9 @@ mod integration_tests { program_id: crate::ID, accounts: vec![ AccountMeta::new(app_state_pda, false), - AccountMeta::new_readonly( - anchor_lang::solana_program::sysvar::instructions::ID, - false, - ), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), AccountMeta::new(payer, true), - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), ], data: ix_data.data(), } diff --git a/programs/solana/programs/ics27-gmp/src/instructions/on_timeout_packet.rs b/programs/solana/programs/ics27-gmp/src/instructions/on_timeout_packet.rs index bb6de7ea8..2df57289d 100644 --- a/programs/solana/programs/ics27-gmp/src/instructions/on_timeout_packet.rs +++ b/programs/solana/programs/ics27-gmp/src/instructions/on_timeout_packet.rs @@ -19,8 +19,8 @@ pub struct OnTimeoutPacket<'info> { /// Instructions sysvar used to verify the CPI caller is the authorized router. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instruction_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instruction_sysvar: UncheckedAccount<'info>, /// Fee payer that funds the `result_account` creation. #[account(mut)] @@ -143,7 +143,7 @@ mod tests { AccountMeta::new_readonly(app_state_pda, false), AccountMeta::new_readonly(solana_sdk::sysvar::instructions::ID, false), AccountMeta::new(payer, true), - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), AccountMeta::new(result_account_pda, false), ], data: instruction_data.data(), @@ -217,7 +217,7 @@ mod tests { AccountMeta::new_readonly(wrong_app_state_pda, false), // Wrong PDA! AccountMeta::new_readonly(solana_sdk::sysvar::instructions::ID, false), AccountMeta::new(payer, true), - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), AccountMeta::new(result_pda, false), ], data: instruction_data.data(), @@ -366,7 +366,7 @@ mod tests { AccountMeta::new_readonly(app_state_pda, false), AccountMeta::new_readonly(solana_sdk::sysvar::instructions::ID, false), AccountMeta::new(payer, true), - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), AccountMeta::new(result_pda, false), ], data: instruction_data.data(), @@ -430,7 +430,7 @@ mod tests { AccountMeta::new_readonly(app_state_pda, false), AccountMeta::new_readonly(solana_sdk::sysvar::instructions::ID, false), AccountMeta::new(payer, true), - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), AccountMeta::new(result_pda, false), ], data: instruction_data.data(), @@ -501,7 +501,7 @@ mod tests { AccountMeta::new_readonly(app_state_pda, false), AccountMeta::new_readonly(solana_sdk::sysvar::instructions::ID, false), AccountMeta::new(payer, true), - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), AccountMeta::new(result_pda, false), ], data: instruction_data.data(), @@ -617,7 +617,7 @@ mod tests { AccountMeta::new_readonly(app_state_pda, false), AccountMeta::new_readonly(solana_sdk::sysvar::instructions::ID, false), AccountMeta::new(payer, true), - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), AccountMeta::new(result_pda, false), ], data: instruction_data.data(), @@ -693,12 +693,9 @@ mod integration_tests { program_id: crate::ID, accounts: vec![ AccountMeta::new_readonly(app_state_pda, false), - AccountMeta::new_readonly( - anchor_lang::solana_program::sysvar::instructions::ID, - false, - ), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), AccountMeta::new(payer, true), - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), AccountMeta::new(result_pda, false), ], data: ix_data.data(), diff --git a/programs/solana/programs/ics27-gmp/src/instructions/send_call.rs b/programs/solana/programs/ics27-gmp/src/instructions/send_call.rs index e8cd40f84..dcacd426f 100644 --- a/programs/solana/programs/ics27-gmp/src/instructions/send_call.rs +++ b/programs/solana/programs/ics27-gmp/src/instructions/send_call.rs @@ -53,7 +53,7 @@ pub struct SendCall<'info> { bump, seeds::program = router_program )] - pub packet_commitment: AccountInfo<'info>, + pub packet_commitment: UncheckedAccount<'info>, /// Port-to-program mapping that authorizes this GMP program for the GMP port. #[account( @@ -74,21 +74,21 @@ pub struct SendCall<'info> { /// Light client program used by the router to check client status. /// CHECK: Validated against client registry. #[account(address = client.client_program_id @ GMPError::InvalidLightClientProgram)] - pub light_client_program: AccountInfo<'info>, + pub light_client_program: UncheckedAccount<'info>, /// Light client's state account, forwarded to the router for status verification. /// CHECK: Ownership validated against light client program. #[account(owner = light_client_program.key() @ GMPError::InvalidAccountOwner)] - pub client_state: AccountInfo<'info>, + pub client_state: UncheckedAccount<'info>, /// Instructions sysvar used to reject CPI callers (direct-call-only enforcement). /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instruction_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instruction_sysvar: UncheckedAccount<'info>, /// Consensus state account, forwarded to the router for client expiry check. /// CHECK: Forwarded to router CPI; validated by the light client program. - pub consensus_state: AccountInfo<'info>, + pub consensus_state: UncheckedAccount<'info>, /// Solana system program used for account allocation. pub system_program: Program<'info, System>, @@ -228,8 +228,8 @@ mod tests { use solana_sdk::{ instruction::{AccountMeta, Instruction}, pubkey::Pubkey, - system_program, }; + use solana_sdk_ids::system_program; struct TestContext { mollusk: Mollusk, @@ -734,12 +734,9 @@ mod integration_tests { AccountMeta::new_readonly(client, false), AccountMeta::new_readonly(TEST_LIGHT_CLIENT_ID, false), // light_client_program AccountMeta::new_readonly(TEST_CLIENT_STATE_ID, false), // client_state - AccountMeta::new_readonly( - anchor_lang::solana_program::sysvar::instructions::ID, - false, - ), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), AccountMeta::new_readonly(Pubkey::new_unique(), false), // consensus_state - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), ], data: ix_data.data(), } diff --git a/programs/solana/programs/ics27-gmp/src/instructions/send_call_cpi.rs b/programs/solana/programs/ics27-gmp/src/instructions/send_call_cpi.rs index 812848744..f79dfb8ed 100644 --- a/programs/solana/programs/ics27-gmp/src/instructions/send_call_cpi.rs +++ b/programs/solana/programs/ics27-gmp/src/instructions/send_call_cpi.rs @@ -3,8 +3,8 @@ use crate::errors::GMPError; use crate::instructions::send_call::send_call_inner; use crate::state::{GMPAppState, SendCallMsg}; use anchor_lang::prelude::*; -use anchor_lang::solana_program::sysvar::instructions as sysvar_instructions; use ics26_router::state::{Client, IBCApp, RouterState}; +use solana_instructions_sysvar as sysvar_instructions; /// Sends a GMP call packet via CPI from another program. Rejects direct calls /// and nested CPI. @@ -51,7 +51,7 @@ pub struct SendCallCpi<'info> { bump, seeds::program = router_program )] - pub packet_commitment: AccountInfo<'info>, + pub packet_commitment: UncheckedAccount<'info>, /// Port-to-program mapping that authorizes this GMP program for the GMP port. #[account( @@ -72,21 +72,21 @@ pub struct SendCallCpi<'info> { /// Light client program used by the router to check client status. /// CHECK: Validated against client registry. #[account(address = client.client_program_id @ GMPError::InvalidLightClientProgram)] - pub light_client_program: AccountInfo<'info>, + pub light_client_program: UncheckedAccount<'info>, /// Light client's state account, forwarded to the router for status verification. /// CHECK: Ownership validated against light client program. #[account(owner = light_client_program.key() @ GMPError::InvalidAccountOwner)] - pub client_state: AccountInfo<'info>, + pub client_state: UncheckedAccount<'info>, /// Instructions sysvar used to enforce single-level CPI and extract the caller program ID. /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instruction_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instruction_sysvar: UncheckedAccount<'info>, /// Consensus state account, forwarded to the router for client expiry check. /// CHECK: Forwarded to router CPI; validated by the light client program. - pub consensus_state: AccountInfo<'info>, + pub consensus_state: UncheckedAccount<'info>, /// Solana system program used for account allocation. pub system_program: Program<'info, System>, @@ -130,8 +130,8 @@ mod tests { use solana_sdk::{ instruction::{AccountMeta, Instruction}, pubkey::Pubkey, - system_program, }; + use solana_sdk_ids::system_program; struct TestContext { mollusk: Mollusk, @@ -531,12 +531,9 @@ mod integration_tests { AccountMeta::new_readonly(client, false), AccountMeta::new_readonly(TEST_LIGHT_CLIENT_ID, false), // light_client_program AccountMeta::new_readonly(TEST_CLIENT_STATE_ID, false), // client_state - AccountMeta::new_readonly( - anchor_lang::solana_program::sysvar::instructions::ID, - false, - ), + AccountMeta::new_readonly(solana_instructions_sysvar::ID, false), AccountMeta::new_readonly(Pubkey::new_unique(), false), // consensus_state - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), ], data: ix_data.data(), } diff --git a/programs/solana/programs/ics27-gmp/src/lib.rs b/programs/solana/programs/ics27-gmp/src/lib.rs index 807c34f28..45a94f6cd 100644 --- a/programs/solana/programs/ics27-gmp/src/lib.rs +++ b/programs/solana/programs/ics27-gmp/src/lib.rs @@ -53,7 +53,7 @@ pub mod ics27_gmp { /// IBC packet receive handler (called by router via CPI) pub fn on_recv_packet<'info>( - ctx: Context<'_, '_, 'info, 'info, OnRecvPacket<'info>>, + ctx: Context<'info, OnRecvPacket<'info>>, msg: solana_ibc_types::OnRecvPacketMsg, ) -> Result> { instructions::on_recv_packet(ctx, msg) @@ -61,7 +61,7 @@ pub mod ics27_gmp { /// IBC acknowledgement handler (called by router via CPI) pub fn on_acknowledgement_packet<'info>( - ctx: Context<'_, '_, 'info, 'info, OnAckPacket<'info>>, + ctx: Context<'info, OnAckPacket<'info>>, msg: solana_ibc_types::OnAcknowledgementPacketMsg, ) -> Result<()> { instructions::on_acknowledgement_packet(ctx, msg) @@ -69,7 +69,7 @@ pub mod ics27_gmp { /// IBC timeout handler (called by router via CPI) pub fn on_timeout_packet<'info>( - ctx: Context<'_, '_, 'info, 'info, OnTimeoutPacket<'info>>, + ctx: Context<'info, OnTimeoutPacket<'info>>, msg: solana_ibc_types::OnTimeoutPacketMsg, ) -> Result<()> { instructions::on_timeout_packet(ctx, msg) diff --git a/programs/solana/programs/ics27-gmp/src/router_cpi.rs b/programs/solana/programs/ics27-gmp/src/router_cpi.rs index 2b04aa1e5..0cb902a95 100644 --- a/programs/solana/programs/ics27-gmp/src/router_cpi.rs +++ b/programs/solana/programs/ics27-gmp/src/router_cpi.rs @@ -36,7 +36,7 @@ pub fn send_packet_cpi<'a>( let bump_slice = [bump]; let signer_seeds: &[&[u8]] = &[GMPAppState::SEED, &bump_slice]; let seeds = [signer_seeds]; - let cpi_ctx = CpiContext::new_with_signer(router_program.clone(), cpi_accounts, &seeds); + let cpi_ctx = CpiContext::new_with_signer(router_program.key(), cpi_accounts, &seeds); let sequence = ics26_router::cpi::send_packet(cpi_ctx, msg)?; Ok(sequence.get()) } diff --git a/programs/solana/programs/ics27-gmp/src/test_utils.rs b/programs/solana/programs/ics27-gmp/src/test_utils.rs index 187543324..3816d8b33 100644 --- a/programs/solana/programs/ics27-gmp/src/test_utils.rs +++ b/programs/solana/programs/ics27-gmp/src/test_utils.rs @@ -11,8 +11,8 @@ use solana_sdk::{ instruction::{AccountMeta, Instruction}, pubkey::Pubkey, signer::Signer, - system_program, }; +use solana_sdk_ids::system_program; // Anchor error code offset (all Anchor errors start from 6000) pub const ANCHOR_ERROR_OFFSET: u32 = 6000; @@ -37,7 +37,8 @@ pub fn create_gmp_app_state_account( }; let mut data = vec![0u8; 8 + GMPAppState::INIT_SPACE]; - app_state.try_serialize(&mut &mut data[..]).unwrap(); + let mut writer = &mut data[..]; + app_state.try_serialize(&mut writer).unwrap(); ( pubkey, @@ -149,7 +150,7 @@ pub fn create_program_data_account( program_id: &Pubkey, authority: Option, ) -> (Pubkey, SolanaAccount) { - use solana_sdk::bpf_loader_upgradeable::{self, UpgradeableLoaderState}; + use anchor_lang::solana_program::bpf_loader_upgradeable::{self, UpgradeableLoaderState}; let (program_data_pda, _) = Pubkey::find_program_address(&[program_id.as_ref()], &bpf_loader_upgradeable::ID); @@ -236,7 +237,7 @@ pub fn create_instructions_sysvar_account_with_caller( SolanaAccount { lamports: 1_000_000, data: ixs_data, - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, }, @@ -274,7 +275,7 @@ pub fn create_fake_instructions_sysvar_account( SolanaAccount { lamports: 1_000_000, data: ixs_data, - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, }, @@ -519,7 +520,7 @@ pub fn create_cpi_instructions_sysvar_account(caller_program_id: Pubkey) -> Sola SolanaAccount { lamports: 1_000_000, data: ixs_data, - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, } @@ -696,7 +697,8 @@ pub fn setup_program_test_with_access_manager( _reserved: [0; 256], }; let mut data = vec![0u8; 8 + crate::state::GMPAppState::INIT_SPACE]; - app_state.try_serialize(&mut &mut data[..]).unwrap(); + let mut writer = &mut data[..]; + app_state.try_serialize(&mut writer).unwrap(); pt.add_account( app_state_pda, @@ -854,7 +856,8 @@ pub fn setup_program_test_with_router_proxy() -> solana_program_test::ProgramTes _reserved: [0; 256], }; let mut data = vec![0u8; 8 + crate::state::GMPAppState::INIT_SPACE]; - app_state.try_serialize(&mut &mut data[..]).unwrap(); + let mut writer = &mut data[..]; + app_state.try_serialize(&mut writer).unwrap(); pt.add_account( app_state_pda, diff --git a/programs/solana/programs/ift/Cargo.toml b/programs/solana/programs/ift/Cargo.toml index 90a44ae7e..62245ebb1 100644 --- a/programs/solana/programs/ift/Cargo.toml +++ b/programs/solana/programs/ift/Cargo.toml @@ -27,6 +27,7 @@ anchor-spl.workspace = true solana-ibc-types.workspace = true solana-ibc-gmp-types.workspace = true solana-ibc-proto.workspace = true +solana-instructions-sysvar.workspace = true ics26-router = { workspace = true, features = ["cpi"] } ics27-gmp = { workspace = true, features = ["cpi"] } bech32 = { workspace = true } @@ -42,6 +43,8 @@ mollusk-svm.workspace = true mollusk-svm-bencher.workspace = true mollusk-svm-programs-token.workspace = true solana-sdk.workspace = true +solana-sdk-ids.workspace = true +solana-system-interface.workspace = true bincode.workspace = true sha2.workspace = true rstest.workspace = true diff --git a/programs/solana/programs/ift/src/gmp_cpi.rs b/programs/solana/programs/ift/src/gmp_cpi.rs index 037d0592d..81f62783b 100644 --- a/programs/solana/programs/ift/src/gmp_cpi.rs +++ b/programs/solana/programs/ift/src/gmp_cpi.rs @@ -68,7 +68,7 @@ impl From for ics27_gmp::state::SendCallMsg { /// The calling program's ID is automatically extracted by GMP from the /// instruction sysvar and used as the sender. pub fn send_gmp_call(accounts: SendGmpCallAccounts, msg: SendGmpCallMsg) -> Result { - let gmp_program = accounts.gmp_program.clone(); + let gmp_program = accounts.gmp_program.key(); let cpi_ctx = CpiContext::new(gmp_program, accounts.into()); let sequence = ics27_gmp::cpi::send_call_cpi(cpi_ctx, msg.into()) .map_err(|_| error!(crate::errors::IFTError::GmpCallFailed))?; diff --git a/programs/solana/programs/ift/src/helpers.rs b/programs/solana/programs/ift/src/helpers.rs index 66ab7842b..fcb12b680 100644 --- a/programs/solana/programs/ift/src/helpers.rs +++ b/programs/solana/programs/ift/src/helpers.rs @@ -40,8 +40,7 @@ pub fn mint_to_account<'info>( to: token_account.to_account_info(), authority: mint_authority.to_account_info(), }; - let mint_ctx = - CpiContext::new_with_signer(token_program.to_account_info(), mint_accounts, signer_seeds); + let mint_ctx = CpiContext::new_with_signer(token_program.key(), mint_accounts, signer_seeds); token_interface::mint_to(mint_ctx, amount)?; mint.reload()?; diff --git a/programs/solana/programs/ift/src/instructions/admin.rs b/programs/solana/programs/ift/src/instructions/admin.rs index 3406c5855..03f42cb52 100644 --- a/programs/solana/programs/ift/src/instructions/admin.rs +++ b/programs/solana/programs/ift/src/instructions/admin.rs @@ -31,8 +31,8 @@ pub struct ProposeAdmin<'info> { pub admin: Signer<'info>, /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } /// Propose a new admin. The proposed admin must call `accept_admin` to finalize. @@ -81,8 +81,8 @@ pub struct AcceptAdmin<'info> { pub pending_admin: Signer<'info>, /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } /// Accept a pending admin proposal. Must be called by the proposed admin. @@ -120,8 +120,8 @@ pub struct CancelAdminProposal<'info> { pub admin: Signer<'info>, /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } /// Cancel a pending admin proposal. Must be called by the current admin. @@ -178,11 +178,11 @@ pub struct RevokeMintAuthority<'info> { seeds = [MINT_AUTHORITY_SEED, mint.key().as_ref()], bump = app_mint_state.mint_authority_bump )] - pub mint_authority: AccountInfo<'info>, + pub mint_authority: UncheckedAccount<'info>, /// New mint authority to receive ownership /// CHECK: Can be any pubkey chosen by admin - pub new_mint_authority: AccountInfo<'info>, + pub new_mint_authority: UncheckedAccount<'info>, /// Admin signer (receives rent from closed `app_mint_state`) #[account( @@ -195,8 +195,8 @@ pub struct RevokeMintAuthority<'info> { pub token_program: Interface<'info, TokenInterface>, /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } /// Revoke mint authority and transfer it to the specified new authority. @@ -215,7 +215,7 @@ pub fn revoke_mint_authority(ctx: Context) -> Result<()> { anchor_spl::token_interface::set_authority( CpiContext::new_with_signer( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), anchor_spl::token_interface::SetAuthority { current_authority: ctx.accounts.mint_authority.to_account_info(), account_or_mint: ctx.accounts.mint.to_account_info(), @@ -269,7 +269,7 @@ pub struct AdminMint<'info> { seeds = [MINT_AUTHORITY_SEED, mint.key().as_ref()], bump = app_mint_state.mint_authority_bump )] - pub mint_authority: AccountInfo<'info>, + pub mint_authority: UncheckedAccount<'info>, /// Receiver's token account (will be created if needed) #[account( @@ -285,7 +285,7 @@ pub struct AdminMint<'info> { #[account( constraint = receiver_owner.key() == msg.receiver @ IFTError::InvalidReceiver )] - pub receiver_owner: AccountInfo<'info>, + pub receiver_owner: UncheckedAccount<'info>, /// Admin signer #[account( @@ -305,8 +305,8 @@ pub struct AdminMint<'info> { pub system_program: Program<'info, System>, /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } /// Mint tokens to any account (admin only). Respects rate limits and pause state. diff --git a/programs/solana/programs/ift/src/instructions/create_and_initialize_spl_token.rs b/programs/solana/programs/ift/src/instructions/create_and_initialize_spl_token.rs index 88e56c850..cd7557616 100644 --- a/programs/solana/programs/ift/src/instructions/create_and_initialize_spl_token.rs +++ b/programs/solana/programs/ift/src/instructions/create_and_initialize_spl_token.rs @@ -1,9 +1,6 @@ use anchor_lang::prelude::*; use anchor_lang::solana_program::{program::invoke, system_instruction}; -use anchor_spl::token_2022_extensions::{ - metadata_pointer_initialize, token_metadata_initialize, MetadataPointerInitialize, - TokenMetadataInitialize, -}; +use anchor_spl::token_2022_extensions::{metadata_pointer_initialize, MetadataPointerInitialize}; use anchor_spl::token_interface::spl_token_2022::extension::ExtensionType; use anchor_spl::token_interface::TokenInterface; use solana_ibc_types::reject_cpi; @@ -44,7 +41,7 @@ pub struct CreateAndInitializeSplToken<'info> { seeds = [MINT_AUTHORITY_SEED, mint.key().as_ref()], bump )] - pub mint_authority: AccountInfo<'info>, + pub mint_authority: UncheckedAccount<'info>, /// Admin authority #[account( @@ -62,8 +59,8 @@ pub struct CreateAndInitializeSplToken<'info> { pub system_program: Program<'info, System>, /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } const TOKEN_2022_PROGRAM_ID: Pubkey = anchor_spl::token_interface::spl_token_2022::ID; @@ -187,10 +184,8 @@ fn create_token_2022_mint( additional_metadata: vec![], }; - // Allocate space for base mint + fixed extensions only. Token 2022's - // `InitializeMint2` validates that account size matches exactly. - // The variable-length metadata is written later by `token_metadata_initialize`, - // which reallocates the account internally. + // Allocate space for base mint + fixed extensions only. `InitializeMint2` + // requires an exact fixed-extension size; metadata grows it afterward. let extension_space = ExtensionType::try_calculate_account_len::(&[ ExtensionType::MetadataPointer, ])?; @@ -215,7 +210,7 @@ fn create_token_2022_mint( // Initialize MetadataPointer (must be done before InitializeMint2) metadata_pointer_initialize( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), MetadataPointerInitialize { token_program_id: ctx.accounts.token_program.to_account_info(), mint: ctx.accounts.mint.to_account_info(), @@ -250,21 +245,24 @@ fn create_token_2022_mint( ]; let signer_seeds = &[&seeds[..]]; - token_metadata_initialize( - CpiContext::new_with_signer( - ctx.accounts.token_program.to_account_info(), - TokenMetadataInitialize { - program_id: ctx.accounts.token_program.to_account_info(), - metadata: ctx.accounts.mint.to_account_info(), - update_authority: ctx.accounts.mint_authority.to_account_info(), - mint_authority: ctx.accounts.mint_authority.to_account_info(), - mint: ctx.accounts.mint.to_account_info(), - }, - signer_seeds, - ), - name.to_string(), - symbol.to_string(), - uri.to_string(), + let ix = + anchor_spl::token_2022_extensions::spl_token_metadata_interface::instruction::initialize( + &TOKEN_2022_PROGRAM_ID, + mint_key, + mint_authority_key, + mint_key, + mint_authority_key, + name.to_string(), + symbol.to_string(), + uri.to_string(), + ); + anchor_lang::solana_program::program::invoke_signed( + &ix, + &[ + ctx.accounts.mint.to_account_info(), + ctx.accounts.mint_authority.to_account_info(), + ], + signer_seeds, )?; Ok(()) @@ -322,6 +320,7 @@ mod tests { }, state::Mint as Token2022Mint, }; + use mollusk_svm::Mollusk; use solana_sdk::{ instruction::{AccountMeta, Instruction}, program_pack::Pack, @@ -337,7 +336,7 @@ mod tests { solana_sdk::account::Account { lamports: 0, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, } @@ -412,7 +411,7 @@ mod tests { let app_mint_state_account = solana_sdk::account::Account { lamports: Rent::default().minimum_balance(8 + IFTAppMintState::INIT_SPACE), data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }; @@ -473,7 +472,7 @@ mod tests { let app_mint_state_account = solana_sdk::account::Account { lamports: Rent::default().minimum_balance(8 + IFTAppMintState::INIT_SPACE), data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }; @@ -481,7 +480,7 @@ mod tests { let mint_authority_account = solana_sdk::account::Account { lamports: 0, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }; @@ -553,7 +552,7 @@ mod tests { let app_mint_state_account = solana_sdk::account::Account { lamports: Rent::default().minimum_balance(8 + IFTAppMintState::INIT_SPACE), data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }; @@ -628,7 +627,7 @@ mod tests { let app_mint_state_account = solana_sdk::account::Account { lamports: Rent::default().minimum_balance(8 + IFTAppMintState::INIT_SPACE), data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }; @@ -696,7 +695,7 @@ mod tests { let app_mint_state_account = solana_sdk::account::Account { lamports: Rent::default().minimum_balance(8 + IFTAppMintState::INIT_SPACE), data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }; @@ -761,7 +760,7 @@ mod tests { let app_mint_state_account = solana_sdk::account::Account { lamports: Rent::default().minimum_balance(8 + IFTAppMintState::INIT_SPACE), data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }; @@ -998,12 +997,23 @@ mod tests { solana_sdk::account::Account { lamports, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, } } + fn process_prefund_then_create( + mollusk: &Mollusk, + prefund_ix: &Instruction, + create_ix: &Instruction, + accounts: &[(Pubkey, solana_sdk::account::Account)], + ) -> mollusk_svm::result::InstructionResult { + let prefund_result = mollusk.process_instruction(prefund_ix, accounts); + assert!(!prefund_result.program_result.is_err()); + mollusk.process_instruction(create_ix, &prefund_result.resulting_accounts) + } + #[test] fn test_prefunded_spl_token_mint_succeeds() { let mollusk = setup_mollusk_with_token(); @@ -1016,7 +1026,7 @@ mod tests { let prefund_amount: u64 = 500_000; let prefund_ix = - solana_sdk::system_instruction::transfer(&adversary, &mint_key, prefund_amount); + solana_system_interface::instruction::transfer(&adversary, &mint_key, prefund_amount); let mut accounts = setup.accounts; accounts.push(( @@ -1024,7 +1034,8 @@ mod tests { adversary_account(prefund_amount.saturating_add(1_000_000)), )); - let result = mollusk.process_instruction_chain(&[prefund_ix, setup.instruction], &accounts); + let result = + process_prefund_then_create(&mollusk, &prefund_ix, &setup.instruction, &accounts); assert!( !result.program_result.is_err(), "Partially pre-funded SPL Token mint must not block creation: {:?}", @@ -1056,7 +1067,7 @@ mod tests { let prefund_amount: u64 = 500_000; let prefund_ix = - solana_sdk::system_instruction::transfer(&adversary, &mint_key, prefund_amount); + solana_system_interface::instruction::transfer(&adversary, &mint_key, prefund_amount); let mut accounts = setup.accounts; accounts.push(( @@ -1064,7 +1075,8 @@ mod tests { adversary_account(prefund_amount.saturating_add(1_000_000)), )); - let result = mollusk.process_instruction_chain(&[prefund_ix, setup.instruction], &accounts); + let result = + process_prefund_then_create(&mollusk, &prefund_ix, &setup.instruction, &accounts); assert!( !result.program_result.is_err(), "Partially pre-funded Token 2022 mint must not block creation: {:?}", @@ -1131,7 +1143,7 @@ mod tests { let adversary = Pubkey::new_unique(); let prefund_ix = - solana_sdk::system_instruction::transfer(&adversary, &mint_key, exact_rent); + solana_system_interface::instruction::transfer(&adversary, &mint_key, exact_rent); let mut accounts = setup.accounts; accounts.push(( @@ -1139,7 +1151,8 @@ mod tests { adversary_account(exact_rent.saturating_add(1_000_000)), )); - let result = mollusk.process_instruction_chain(&[prefund_ix, setup.instruction], &accounts); + let result = + process_prefund_then_create(&mollusk, &prefund_ix, &setup.instruction, &accounts); assert!( !result.program_result.is_err(), "Exactly pre-funded Token 2022 mint must not block creation: {:?}", @@ -1181,7 +1194,7 @@ mod tests { let adversary = Pubkey::new_unique(); let prefund_ix = - solana_sdk::system_instruction::transfer(&adversary, &mint_key, overfund_amount); + solana_system_interface::instruction::transfer(&adversary, &mint_key, overfund_amount); let mut accounts = setup.accounts; accounts.push(( @@ -1189,7 +1202,8 @@ mod tests { adversary_account(overfund_amount.saturating_add(1_000_000)), )); - let result = mollusk.process_instruction_chain(&[prefund_ix, setup.instruction], &accounts); + let result = + process_prefund_then_create(&mollusk, &prefund_ix, &setup.instruction, &accounts); assert!( !result.program_result.is_err(), "Over-funded Token 2022 mint must not block creation: {:?}", @@ -1220,7 +1234,7 @@ mod tests { let adversary = Pubkey::new_unique(); let prefund_ix = - solana_sdk::system_instruction::transfer(&adversary, &mint_key, exact_rent); + solana_system_interface::instruction::transfer(&adversary, &mint_key, exact_rent); let mut accounts = setup.accounts; accounts.push(( @@ -1228,7 +1242,8 @@ mod tests { adversary_account(exact_rent.saturating_add(1_000_000)), )); - let result = mollusk.process_instruction_chain(&[prefund_ix, setup.instruction], &accounts); + let result = + process_prefund_then_create(&mollusk, &prefund_ix, &setup.instruction, &accounts); assert!( !result.program_result.is_err(), "Exactly pre-funded SPL Token mint must not block creation: {:?}", @@ -1256,7 +1271,7 @@ mod tests { let adversary = Pubkey::new_unique(); let prefund_ix = - solana_sdk::system_instruction::transfer(&adversary, &mint_key, overfund_amount); + solana_system_interface::instruction::transfer(&adversary, &mint_key, overfund_amount); let mut accounts = setup.accounts; accounts.push(( @@ -1264,7 +1279,8 @@ mod tests { adversary_account(overfund_amount.saturating_add(1_000_000)), )); - let result = mollusk.process_instruction_chain(&[prefund_ix, setup.instruction], &accounts); + let result = + process_prefund_then_create(&mollusk, &prefund_ix, &setup.instruction, &accounts); assert!( !result.program_result.is_err(), "Over-funded SPL Token mint must not block creation: {:?}", diff --git a/programs/solana/programs/ift/src/instructions/finalize_transfer.rs b/programs/solana/programs/ift/src/instructions/finalize_transfer.rs index 9894f19c5..a82625f01 100644 --- a/programs/solana/programs/ift/src/instructions/finalize_transfer.rs +++ b/programs/solana/programs/ift/src/instructions/finalize_transfer.rs @@ -33,7 +33,7 @@ pub struct FinalizeTransfer<'info> { bump = app_state.bump, constraint = !app_state.paused @ IFTError::AppPaused )] - pub app_state: Account<'info, IFTAppState>, + pub app_state: Box>, /// Per-mint IFT app state (mut for rate limit updates) #[account( @@ -41,7 +41,7 @@ pub struct FinalizeTransfer<'info> { seeds = [IFT_APP_MINT_STATE_SEED, mint.key().as_ref()], bump = app_mint_state.bump )] - pub app_mint_state: Account<'info, IFTAppMintState>, + pub app_mint_state: Box>, /// Pending transfer to process #[account( @@ -58,7 +58,7 @@ pub struct FinalizeTransfer<'info> { constraint = pending_transfer.client_id == client_id @ IFTError::GmpResultClientMismatch, constraint = pending_transfer.sequence == sequence @ IFTError::GmpResultSequenceMismatch, )] - pub pending_transfer: Account<'info, PendingTransfer>, + pub pending_transfer: Box>, /// GMP result account - proves the ack/timeout happened /// This is a cross-program account owned by the GMP program @@ -67,7 +67,7 @@ pub struct FinalizeTransfer<'info> { seeds::program = ics27_gmp::ID, bump, )] - pub gmp_result: Account<'info, ics27_gmp::state::GMPCallResultAccount>, + pub gmp_result: Box>, /// SPL Token mint #[account(mut, address = app_mint_state.mint)] @@ -79,7 +79,7 @@ pub struct FinalizeTransfer<'info> { seeds = [MINT_AUTHORITY_SEED, mint.key().as_ref()], bump = app_mint_state.mint_authority_bump )] - pub mint_authority: AccountInfo<'info>, + pub mint_authority: UncheckedAccount<'info>, /// Original sender's token account for refunds. /// @@ -109,8 +109,8 @@ pub struct FinalizeTransfer<'info> { pub system_program: Program<'info, System>, /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } /// Finalize a pending transfer based on GMP result @@ -234,7 +234,7 @@ mod tests { solana_sdk::account::Account { lamports: 0, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, } diff --git a/programs/solana/programs/ift/src/instructions/ift_mint.rs b/programs/solana/programs/ift/src/instructions/ift_mint.rs index b5c2471fd..39cc0b7dc 100644 --- a/programs/solana/programs/ift/src/instructions/ift_mint.rs +++ b/programs/solana/programs/ift/src/instructions/ift_mint.rs @@ -20,7 +20,7 @@ pub struct IFTMint<'info> { bump = app_state.bump, constraint = !app_state.paused @ IFTError::AppPaused, )] - pub app_state: Account<'info, IFTAppState>, + pub app_state: Box>, /// Per-mint IFT app state (mut, for rate limits) #[account( @@ -28,7 +28,7 @@ pub struct IFTMint<'info> { seeds = [IFT_APP_MINT_STATE_SEED, mint.key().as_ref()], bump = app_mint_state.bump )] - pub app_mint_state: Account<'info, IFTAppMintState>, + pub app_mint_state: Box>, /// IFT bridge - provides counterparty info for GMP account validation. /// Seeds use self-referencing `ift_bridge.client_id` (Anchor deserializes before checking seeds). @@ -38,7 +38,7 @@ pub struct IFTMint<'info> { constraint = ift_bridge.mint == app_mint_state.mint @ IFTError::InvalidBridge, constraint = ift_bridge.active @ IFTError::BridgeNotActive )] - pub ift_bridge: Account<'info, IFTBridge>, + pub ift_bridge: Box>, /// SPL Token mint #[account( @@ -55,7 +55,7 @@ pub struct IFTMint<'info> { // The bump is needed for PDA signing during the mint CPI call. bump = app_mint_state.mint_authority_bump )] - pub mint_authority: AccountInfo<'info>, + pub mint_authority: UncheckedAccount<'info>, /// Receiver's token account (will be created if needed) #[account( @@ -72,7 +72,7 @@ pub struct IFTMint<'info> { #[account( constraint = receiver_owner.key() == msg.receiver @ IFTError::InvalidReceiver )] - pub receiver_owner: AccountInfo<'info>, + pub receiver_owner: UncheckedAccount<'info>, /// GMP account PDA - validated to match counterparty bridge pub gmp_account: Signer<'info>, diff --git a/programs/solana/programs/ift/src/instructions/ift_transfer.rs b/programs/solana/programs/ift/src/instructions/ift_transfer.rs index dc348eb69..d737e3208 100644 --- a/programs/solana/programs/ift/src/instructions/ift_transfer.rs +++ b/programs/solana/programs/ift/src/instructions/ift_transfer.rs @@ -23,14 +23,14 @@ pub struct IFTTransfer<'info> { bump = app_state.bump, constraint = !app_state.paused @ IFTError::AppPaused, )] - pub app_state: Account<'info, IFTAppState>, + pub app_state: Box>, /// Per-mint IFT app state (read-only, for mint and bridge references) #[account( seeds = [IFT_APP_MINT_STATE_SEED, app_mint_state.mint.as_ref()], bump = app_mint_state.bump, )] - pub app_mint_state: Account<'info, IFTAppMintState>, + pub app_mint_state: Box>, /// IFT bridge for the destination. /// Boxed to reduce stack frame size and avoid BPF stack overflow. @@ -81,7 +81,7 @@ pub struct IFTTransfer<'info> { bump, seeds::program = gmp_program.key() )] - pub gmp_app_state: AccountInfo<'info>, + pub gmp_app_state: UncheckedAccount<'info>, /// Router program pub router_program: Program<'info, ics26_router::program::Ics26Router>, @@ -89,7 +89,7 @@ pub struct IFTTransfer<'info> { /// Router state account /// CHECK: Router program validates this #[account()] - pub router_state: AccountInfo<'info>, + pub router_state: UncheckedAccount<'info>, /// Packet commitment account; initialized by the router via GMP CPI. /// CHECK: PDA seeds verified against the router program. @@ -103,30 +103,30 @@ pub struct IFTTransfer<'info> { bump, seeds::program = router_program )] - pub packet_commitment: AccountInfo<'info>, + pub packet_commitment: UncheckedAccount<'info>, /// GMP's IBC app registration account — required by the router for authorization. /// CHECK: Router program validates this #[account()] - pub gmp_ibc_app: AccountInfo<'info>, + pub gmp_ibc_app: UncheckedAccount<'info>, /// IBC client account /// CHECK: Router program validates this #[account()] - pub ibc_client: AccountInfo<'info>, + pub ibc_client: UncheckedAccount<'info>, /// CHECK: Light client program, forwarded through GMP to router - pub light_client_program: AccountInfo<'info>, + pub light_client_program: UncheckedAccount<'info>, /// CHECK: Client state for light client status check - pub light_client_state: AccountInfo<'info>, + pub light_client_state: UncheckedAccount<'info>, /// Instructions sysvar for CPI caller detection by GMP /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instruction_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instruction_sysvar: UncheckedAccount<'info>, /// CHECK: Consensus state account, forwarded through GMP to router for expiry check - pub consensus_state: AccountInfo<'info>, + pub consensus_state: UncheckedAccount<'info>, #[account( init, @@ -140,7 +140,7 @@ pub struct IFTTransfer<'info> { ], bump, )] - pub pending_transfer: Account<'info, PendingTransfer>, + pub pending_transfer: Box>, } pub fn ift_transfer(ctx: Context, msg: IFTTransferMsg) -> Result { @@ -174,7 +174,7 @@ pub fn ift_transfer(ctx: Context, msg: IFTTransferMsg) -> Result, msg: IFTTransferMsg) -> Result { seeds = [MINT_AUTHORITY_SEED, mint.key().as_ref()], bump )] - pub mint_authority: AccountInfo<'info>, + pub mint_authority: UncheckedAccount<'info>, /// Current mint authority that must sign to transfer ownership to the IFT PDA #[account( @@ -61,7 +61,7 @@ pub fn initialize_existing_token(ctx: Context) -> Resul account_or_mint: ctx.accounts.mint.to_account_info(), current_authority: ctx.accounts.current_authority.to_account_info(), }; - let cpi_ctx = CpiContext::new(ctx.accounts.token_program.to_account_info(), cpi_accounts); + let cpi_ctx = CpiContext::new(ctx.accounts.token_program.key(), cpi_accounts); set_authority( cpi_ctx, AuthorityType::MintTokens, @@ -169,7 +169,7 @@ mod tests { AccountMeta::new_readonly(ctx.current_authority, true), AccountMeta::new(ctx.payer, true), AccountMeta::new_readonly(anchor_spl::token::ID, false), - AccountMeta::new_readonly(solana_sdk::system_program::ID, false), + AccountMeta::new_readonly(solana_sdk_ids::system_program::ID, false), ], data: crate::instruction::InitializeExistingToken {}.data(), } @@ -196,7 +196,7 @@ mod tests { solana_sdk::account::Account { lamports: 0, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }, @@ -240,7 +240,7 @@ mod tests { solana_sdk::account::Account { lamports: 0, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }, @@ -292,7 +292,7 @@ mod tests { solana_sdk::account::Account { lamports: 0, data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }, @@ -331,7 +331,7 @@ mod tests { let app_mint_state_account = solana_sdk::account::Account { lamports: Rent::default().minimum_balance(8 + IFTAppMintState::INIT_SPACE), data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }; diff --git a/programs/solana/programs/ift/src/instructions/register_ift_bridge.rs b/programs/solana/programs/ift/src/instructions/register_ift_bridge.rs index 7ea033164..82114ea40 100644 --- a/programs/solana/programs/ift/src/instructions/register_ift_bridge.rs +++ b/programs/solana/programs/ift/src/instructions/register_ift_bridge.rs @@ -47,8 +47,8 @@ pub struct RegisterIFTBridge<'info> { pub system_program: Program<'info, System>, /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn register_ift_bridge( @@ -136,7 +136,7 @@ mod tests { let bridge_account = solana_sdk::account::Account { lamports: Rent::default().minimum_balance(8 + IFTBridge::INIT_SPACE), data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }; @@ -219,7 +219,7 @@ mod tests { let bridge_account = solana_sdk::account::Account { lamports: Rent::default().minimum_balance(8 + IFTBridge::INIT_SPACE), data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }; @@ -471,7 +471,7 @@ mod tests { let bridge_account = solana_sdk::account::Account { lamports: Rent::default().minimum_balance(8 + IFTBridge::INIT_SPACE), data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }; @@ -559,7 +559,7 @@ mod tests { let bridge_account = solana_sdk::account::Account { lamports: Rent::default().minimum_balance(8 + IFTBridge::INIT_SPACE), data: vec![], - owner: solana_sdk::system_program::ID, + owner: solana_sdk_ids::system_program::ID, executable: false, rent_epoch: 0, }; diff --git a/programs/solana/programs/ift/src/instructions/remove_ift_bridge.rs b/programs/solana/programs/ift/src/instructions/remove_ift_bridge.rs index d755160d1..81f4d1bdd 100644 --- a/programs/solana/programs/ift/src/instructions/remove_ift_bridge.rs +++ b/programs/solana/programs/ift/src/instructions/remove_ift_bridge.rs @@ -47,8 +47,8 @@ pub struct RemoveIFTBridge<'info> { pub system_program: Program<'info, System>, /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn remove_ift_bridge(ctx: Context, client_id: String) -> Result<()> { diff --git a/programs/solana/programs/ift/src/instructions/set_mint_rate_limit.rs b/programs/solana/programs/ift/src/instructions/set_mint_rate_limit.rs index 50091a715..6b454e6a0 100644 --- a/programs/solana/programs/ift/src/instructions/set_mint_rate_limit.rs +++ b/programs/solana/programs/ift/src/instructions/set_mint_rate_limit.rs @@ -31,8 +31,8 @@ pub struct SetMintRateLimit<'info> { pub admin: Signer<'info>, /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn set_mint_rate_limit(ctx: Context, msg: SetMintRateLimitMsg) -> Result<()> { diff --git a/programs/solana/programs/ift/src/instructions/set_paused.rs b/programs/solana/programs/ift/src/instructions/set_paused.rs index 626b269a6..d62cba6b9 100644 --- a/programs/solana/programs/ift/src/instructions/set_paused.rs +++ b/programs/solana/programs/ift/src/instructions/set_paused.rs @@ -24,8 +24,8 @@ pub struct SetPaused<'info> { pub admin: Signer<'info>, /// CHECK: Address constraint verifies this is the instructions sysvar - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instructions_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn set_paused(ctx: Context, msg: SetPausedMsg) -> Result<()> { diff --git a/programs/solana/programs/ift/src/test_utils.rs b/programs/solana/programs/ift/src/test_utils.rs index 069b13230..32dc29b35 100644 --- a/programs/solana/programs/ift/src/test_utils.rs +++ b/programs/solana/programs/ift/src/test_utils.rs @@ -4,7 +4,8 @@ use anchor_lang::prelude::*; use mollusk_svm::Mollusk; -use solana_sdk::{account::Account as SolanaAccount, pubkey::Pubkey, system_program}; +use solana_sdk::{account::Account as SolanaAccount, pubkey::Pubkey}; +use solana_sdk_ids::system_program; use crate::constants::*; use crate::state::{ @@ -92,7 +93,8 @@ pub fn create_ift_app_state_account_full( let mut data = vec![0u8; 8 + IFTAppState::INIT_SPACE]; data[0..8].copy_from_slice(IFTAppState::DISCRIMINATOR); - app_state.serialize(&mut &mut data[8..]).unwrap(); + let mut writer = &mut data[8..]; + app_state.serialize(&mut writer).unwrap(); SolanaAccount { lamports: 1_000_000, @@ -270,7 +272,7 @@ pub fn create_clock_sysvar_account(unix_timestamp: i64) -> (Pubkey, SolanaAccoun SolanaAccount { lamports: 1, data: bincode::serialize(&clock).expect("Failed to serialize Clock sysvar"), - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, }, @@ -282,7 +284,7 @@ pub fn create_program_data_account( program_id: &Pubkey, authority: Option, ) -> (Pubkey, SolanaAccount) { - use solana_sdk::bpf_loader_upgradeable::{self, UpgradeableLoaderState}; + use anchor_lang::solana_program::bpf_loader_upgradeable::{self, UpgradeableLoaderState}; let (program_data_pda, _) = Pubkey::find_program_address(&[program_id.as_ref()], &bpf_loader_upgradeable::ID); @@ -480,7 +482,7 @@ pub fn create_instructions_sysvar_account() -> (Pubkey, SolanaAccount) { SolanaAccount { lamports: 1_000_000, data: ixs_data, - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, }, @@ -515,7 +517,7 @@ pub fn create_cpi_instructions_sysvar_account( SolanaAccount { lamports: 1_000_000, data: ixs_data, - owner: solana_sdk::sysvar::ID, + owner: solana_sdk_ids::sysvar::ID, executable: false, rent_epoch: 0, }, diff --git a/programs/solana/programs/mock-ibc-app/src/lib.rs b/programs/solana/programs/mock-ibc-app/src/lib.rs index 09040d95b..f5f9d14a1 100644 --- a/programs/solana/programs/mock-ibc-app/src/lib.rs +++ b/programs/solana/programs/mock-ibc-app/src/lib.rs @@ -47,10 +47,10 @@ pub mod mock_ibc_app { #[instruction(msg: OnRecvPacketMsg)] pub struct OnRecvPacket<'info> { /// CHECK: Mock app doesn't validate or use this account - pub app_state: AccountInfo<'info>, + pub app_state: UncheckedAccount<'info>, /// CHECK: Mock app doesn't validate the router - pub router_program: AccountInfo<'info>, + pub router_program: UncheckedAccount<'info>, } /// Accounts for mock `on_acknowledgement_packet` (no validation, always succeeds). @@ -58,10 +58,10 @@ pub struct OnRecvPacket<'info> { #[instruction(_msg: OnAcknowledgementPacketMsg)] pub struct OnAcknowledgementPacket<'info> { /// CHECK: Mock app doesn't validate or use this account - pub app_state: AccountInfo<'info>, + pub app_state: UncheckedAccount<'info>, /// CHECK: Mock app doesn't validate the router - pub router_program: AccountInfo<'info>, + pub router_program: UncheckedAccount<'info>, } /// Accounts for mock `on_timeout_packet` (no validation, always succeeds). @@ -69,8 +69,8 @@ pub struct OnAcknowledgementPacket<'info> { #[instruction(_msg: OnTimeoutPacketMsg)] pub struct OnTimeoutPacket<'info> { /// CHECK: Mock app doesn't validate or use this account - pub app_state: AccountInfo<'info>, + pub app_state: UncheckedAccount<'info>, /// CHECK: Mock app doesn't validate the router - pub router_program: AccountInfo<'info>, + pub router_program: UncheckedAccount<'info>, } diff --git a/programs/solana/programs/mock-light-client/src/lib.rs b/programs/solana/programs/mock-light-client/src/lib.rs index 3b5bbb0e2..5cec7c562 100644 --- a/programs/solana/programs/mock-light-client/src/lib.rs +++ b/programs/solana/programs/mock-light-client/src/lib.rs @@ -80,7 +80,7 @@ pub struct Initialize<'info> { seeds = [b"client", chain_id.as_bytes()], bump )] - pub client_state: AccountInfo<'info>, + pub client_state: UncheckedAccount<'info>, /// CHECK: Mock consensus state - account will be created but not used #[account( init, @@ -89,7 +89,7 @@ pub struct Initialize<'info> { seeds = [b"consensus_state", client_state.key().as_ref(), &latest_height.to_le_bytes()], bump )] - pub consensus_state_store: AccountInfo<'info>, + pub consensus_state_store: UncheckedAccount<'info>, /// Fee payer for PDA creation. #[account(mut)] pub payer: Signer<'info>, @@ -101,9 +101,9 @@ pub struct Initialize<'info> { #[instruction(_msg: MembershipMsg)] pub struct VerifyMembership<'info> { /// CHECK: Mock client state - not actually used - pub client_state: AccountInfo<'info>, + pub client_state: UncheckedAccount<'info>, /// CHECK: Mock consensus state - not actually used - pub consensus_state: AccountInfo<'info>, + pub consensus_state: UncheckedAccount<'info>, } /// Accounts for mock non-membership verification (always succeeds). @@ -111,18 +111,18 @@ pub struct VerifyMembership<'info> { #[instruction(_msg: NonMembershipMsg)] pub struct VerifyNonMembership<'info> { /// CHECK: Mock client state - not actually used - pub client_state: AccountInfo<'info>, + pub client_state: UncheckedAccount<'info>, /// CHECK: Mock consensus state - not actually used - pub consensus_state: AccountInfo<'info>, + pub consensus_state: UncheckedAccount<'info>, } /// Accounts for mock client status check (always returns `Active`). #[derive(Accounts)] pub struct ClientStatusCheck<'info> { /// CHECK: Mock client state - not actually used - pub client_state: AccountInfo<'info>, + pub client_state: UncheckedAccount<'info>, /// CHECK: Mock consensus state - not actually used - pub consensus_state: AccountInfo<'info>, + pub consensus_state: UncheckedAccount<'info>, } /// Accounts for mock client update (always returns `Update`). @@ -130,15 +130,15 @@ pub struct ClientStatusCheck<'info> { #[instruction(_msg: UpdateClientMsg)] pub struct UpdateClient<'info> { /// CHECK: Mock client state - not actually used - pub client_state: AccountInfo<'info>, + pub client_state: UncheckedAccount<'info>, /// CHECK: Mock trusted consensus state - not actually used - pub trusted_consensus_state: AccountInfo<'info>, + pub trusted_consensus_state: UncheckedAccount<'info>, /// CHECK: Mock new consensus state - not actually used - pub new_consensus_state: AccountInfo<'info>, + pub new_consensus_state: UncheckedAccount<'info>, /// CHECK: Mock payer - not actually used - pub payer: AccountInfo<'info>, + pub payer: UncheckedAccount<'info>, /// CHECK: Mock system program - not actually used - pub system_program: AccountInfo<'info>, + pub system_program: UncheckedAccount<'info>, } #[error_code] diff --git a/programs/solana/programs/test-access-manager/Cargo.toml b/programs/solana/programs/test-access-manager/Cargo.toml index 3207ebc53..2d0cdb678 100644 --- a/programs/solana/programs/test-access-manager/Cargo.toml +++ b/programs/solana/programs/test-access-manager/Cargo.toml @@ -24,11 +24,13 @@ idl-build = ["anchor-lang/idl-build"] [dependencies] anchor-lang.workspace = true solana-ibc-types.workspace = true +solana-instructions-sysvar.workspace = true [dev-dependencies] bincode.workspace = true mollusk-svm.workspace = true solana-sdk = { workspace = true, features = ["full"] } +solana-sdk-ids.workspace = true solana-program-test.workspace = true tokio = { version = "1", features = ["full"] } access-manager = { workspace = true, features = ["no-entrypoint"] } diff --git a/programs/solana/programs/test-cpi-proxy/src/lib.rs b/programs/solana/programs/test-cpi-proxy/src/lib.rs index e497ec943..9039c5840 100644 --- a/programs/solana/programs/test-cpi-proxy/src/lib.rs +++ b/programs/solana/programs/test-cpi-proxy/src/lib.rs @@ -36,7 +36,7 @@ pub mod test_cpi_proxy { /// This program intentionally does NOT validate anything - it's designed /// to test that OTHER programs properly validate their CPI callers. pub fn proxy_cpi<'info>( - ctx: Context<'_, '_, '_, 'info, ProxyCpi<'info>>, + ctx: Context<'info, ProxyCpi<'info>>, instruction_data: Vec, account_metas: Vec, ) -> Result<()> { @@ -83,7 +83,7 @@ pub struct ProxyCpi<'info> { /// unconstrained beyond executable check, as this is a test utility program /// designed to proxy arbitrary CPI calls for security testing. #[account(executable)] - pub target_program: AccountInfo<'info>, + pub target_program: UncheckedAccount<'info>, /// Payer/signer for this transaction pub payer: Signer<'info>, diff --git a/programs/solana/programs/test-cpi-target/Cargo.toml b/programs/solana/programs/test-cpi-target/Cargo.toml index 24c13f260..342723ec3 100644 --- a/programs/solana/programs/test-cpi-target/Cargo.toml +++ b/programs/solana/programs/test-cpi-target/Cargo.toml @@ -31,6 +31,7 @@ test-cpi-proxy = { path = "../test-cpi-proxy", features = ["cpi"] } rstest.workspace = true solana-program-test.workspace = true solana-sdk = { workspace = true, features = ["full"] } +solana-sdk-ids.workspace = true tokio = { version = "1", features = ["full"] } [lints] diff --git a/programs/solana/programs/test-cpi-target/src/instructions/check_direct_or_whitelisted.rs b/programs/solana/programs/test-cpi-target/src/instructions/check_direct_or_whitelisted.rs index b6adb4eeb..ec7ac71b8 100644 --- a/programs/solana/programs/test-cpi-target/src/instructions/check_direct_or_whitelisted.rs +++ b/programs/solana/programs/test-cpi-target/src/instructions/check_direct_or_whitelisted.rs @@ -6,7 +6,7 @@ use solana_ibc_types::cpi::require_direct_call_or_whitelisted_caller; #[instruction(whitelisted_programs: Vec)] pub struct CheckDirectOrWhitelisted<'info> { /// CHECK: Validated inside the CPI validation functions - pub instruction_sysvar: AccountInfo<'info>, + pub instruction_sysvar: UncheckedAccount<'info>, } pub fn check_direct_or_whitelisted( diff --git a/programs/solana/programs/test-cpi-target/src/instructions/check_is_cpi.rs b/programs/solana/programs/test-cpi-target/src/instructions/check_is_cpi.rs index d0ff7cf86..b092a9cc5 100644 --- a/programs/solana/programs/test-cpi-target/src/instructions/check_is_cpi.rs +++ b/programs/solana/programs/test-cpi-target/src/instructions/check_is_cpi.rs @@ -63,7 +63,7 @@ mod integration_tests { let accounts = crate::accounts::CheckIsCpi { result: result_pda, payer, - system_program: solana_sdk::system_program::ID, + system_program: solana_sdk_ids::system_program::ID, }; Instruction { program_id: crate::ID, diff --git a/programs/solana/programs/test-cpi-target/src/instructions/check_reject_cpi.rs b/programs/solana/programs/test-cpi-target/src/instructions/check_reject_cpi.rs index d59074ba3..d7a1a1c5a 100644 --- a/programs/solana/programs/test-cpi-target/src/instructions/check_reject_cpi.rs +++ b/programs/solana/programs/test-cpi-target/src/instructions/check_reject_cpi.rs @@ -5,7 +5,7 @@ use solana_ibc_types::cpi::reject_cpi; #[derive(Accounts)] pub struct CheckRejectCpi<'info> { /// CHECK: Validated inside the CPI validation functions - pub instruction_sysvar: AccountInfo<'info>, + pub instruction_sysvar: UncheckedAccount<'info>, } pub fn check_reject_cpi(ctx: Context) -> Result<()> { diff --git a/programs/solana/programs/test-cpi-target/src/instructions/check_require_admin.rs b/programs/solana/programs/test-cpi-target/src/instructions/check_require_admin.rs index 219cc39ca..22d0a4308 100644 --- a/programs/solana/programs/test-cpi-target/src/instructions/check_require_admin.rs +++ b/programs/solana/programs/test-cpi-target/src/instructions/check_require_admin.rs @@ -4,11 +4,11 @@ use anchor_lang::prelude::*; #[derive(Accounts)] pub struct CheckRequireAdmin<'info> { /// CHECK: Passed to `access_manager::require_admin` for deserialization - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// Must hold the admin role in the access-manager. pub signer: Signer<'info>, /// CHECK: Validated inside the helper - pub instructions_sysvar: AccountInfo<'info>, + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn check_require_admin(ctx: Context) -> Result<()> { diff --git a/programs/solana/programs/test-cpi-target/src/instructions/check_require_role.rs b/programs/solana/programs/test-cpi-target/src/instructions/check_require_role.rs index e6df039de..b7ce93931 100644 --- a/programs/solana/programs/test-cpi-target/src/instructions/check_require_role.rs +++ b/programs/solana/programs/test-cpi-target/src/instructions/check_require_role.rs @@ -5,11 +5,11 @@ use anchor_lang::prelude::*; #[instruction(role_id: u64)] pub struct CheckRequireRole<'info> { /// CHECK: Passed to `access_manager::require_role` for deserialization - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// Must hold the requested role in the access-manager. pub signer: Signer<'info>, /// CHECK: Validated inside the helper - pub instructions_sysvar: AccountInfo<'info>, + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn check_require_role(ctx: Context, role_id: u64) -> Result<()> { diff --git a/programs/solana/programs/test-cpi-target/src/instructions/check_require_role_with_whitelist.rs b/programs/solana/programs/test-cpi-target/src/instructions/check_require_role_with_whitelist.rs index 0d5132de0..38d7988e2 100644 --- a/programs/solana/programs/test-cpi-target/src/instructions/check_require_role_with_whitelist.rs +++ b/programs/solana/programs/test-cpi-target/src/instructions/check_require_role_with_whitelist.rs @@ -5,11 +5,11 @@ use anchor_lang::prelude::*; #[instruction(role_id: u64)] pub struct CheckRequireRoleWithWhitelist<'info> { /// CHECK: Passed to `access_manager::require_role_with_whitelist` for deserialization - pub access_manager: AccountInfo<'info>, + pub access_manager: UncheckedAccount<'info>, /// Must hold the requested role in the access-manager. pub signer: Signer<'info>, /// CHECK: Validated inside the helper - pub instructions_sysvar: AccountInfo<'info>, + pub instructions_sysvar: UncheckedAccount<'info>, } pub fn check_require_role_with_whitelist( diff --git a/programs/solana/programs/test-cpi-target/src/instructions/check_validate_cpi_caller.rs b/programs/solana/programs/test-cpi-target/src/instructions/check_validate_cpi_caller.rs index ddcd70020..09648addf 100644 --- a/programs/solana/programs/test-cpi-target/src/instructions/check_validate_cpi_caller.rs +++ b/programs/solana/programs/test-cpi-target/src/instructions/check_validate_cpi_caller.rs @@ -6,7 +6,7 @@ use solana_ibc_types::cpi::validate_cpi_caller; #[instruction(authorized_program: Pubkey)] pub struct CheckValidateCpiCaller<'info> { /// CHECK: Validated inside the CPI validation functions - pub instruction_sysvar: AccountInfo<'info>, + pub instruction_sysvar: UncheckedAccount<'info>, } pub fn check_validate_cpi_caller( diff --git a/programs/solana/programs/test-cpi-target/src/instructions/proxy_cpi.rs b/programs/solana/programs/test-cpi-target/src/instructions/proxy_cpi.rs index b14040804..c9340168b 100644 --- a/programs/solana/programs/test-cpi-target/src/instructions/proxy_cpi.rs +++ b/programs/solana/programs/test-cpi-target/src/instructions/proxy_cpi.rs @@ -16,14 +16,14 @@ pub struct CpiAccountMeta { pub struct ProxyCpi<'info> { /// CHECK: The target program to CPI into #[account(executable)] - pub target_program: AccountInfo<'info>, + pub target_program: UncheckedAccount<'info>, /// Transaction fee payer and signer. pub payer: Signer<'info>, } pub fn proxy_cpi<'info>( - ctx: Context<'_, '_, '_, 'info, ProxyCpi<'info>>, + ctx: Context<'info, ProxyCpi<'info>>, instruction_data: Vec, account_metas: Vec, ) -> Result<()> { diff --git a/programs/solana/programs/test-cpi-target/src/lib.rs b/programs/solana/programs/test-cpi-target/src/lib.rs index e6e1adb73..71055eb86 100644 --- a/programs/solana/programs/test-cpi-target/src/lib.rs +++ b/programs/solana/programs/test-cpi-target/src/lib.rs @@ -74,7 +74,7 @@ pub mod test_cpi_target { } pub fn proxy_cpi<'info>( - ctx: Context<'_, '_, '_, 'info, ProxyCpi<'info>>, + ctx: Context<'info, ProxyCpi<'info>>, instruction_data: Vec, account_metas: Vec, ) -> Result<()> { diff --git a/programs/solana/programs/test-cpi-target/src/test_utils.rs b/programs/solana/programs/test-cpi-target/src/test_utils.rs index 62da9b2df..0808d5503 100644 --- a/programs/solana/programs/test-cpi-target/src/test_utils.rs +++ b/programs/solana/programs/test-cpi-target/src/test_utils.rs @@ -199,7 +199,8 @@ pub fn add_access_manager_account( let mut data = vec![0u8; 8 + AccessManager::INIT_SPACE]; data[0..8].copy_from_slice(AccessManager::DISCRIMINATOR); - am.serialize(&mut &mut data[8..]).unwrap(); + let mut writer = &mut data[8..]; + am.serialize(&mut writer).unwrap(); pt.add_account( pubkey, diff --git a/programs/solana/programs/test-gmp-app/Cargo.toml b/programs/solana/programs/test-gmp-app/Cargo.toml index d6a69994e..2b805986b 100644 --- a/programs/solana/programs/test-gmp-app/Cargo.toml +++ b/programs/solana/programs/test-gmp-app/Cargo.toml @@ -29,6 +29,7 @@ anchor-lang = { workspace = true, features = ["init-if-needed"] } mollusk-svm.workspace = true mollusk-svm-bencher.workspace = true solana-sdk.workspace = true +solana-sdk-ids.workspace = true bincode.workspace = true [lints] diff --git a/programs/solana/programs/test-gmp-app/tests/counter_tests.rs b/programs/solana/programs/test-gmp-app/tests/counter_tests.rs index 9ad5dc12d..12c4df71b 100644 --- a/programs/solana/programs/test-gmp-app/tests/counter_tests.rs +++ b/programs/solana/programs/test-gmp-app/tests/counter_tests.rs @@ -7,8 +7,8 @@ use solana_sdk::{ native_loader, program_error::ProgramError, pubkey::Pubkey, - system_program, }; +use solana_sdk_ids::system_program; use test_gmp_app::{state::*, ID}; const fn get_test_gmp_app_program_path() -> &'static str { diff --git a/programs/solana/programs/test-ibc-app/Cargo.toml b/programs/solana/programs/test-ibc-app/Cargo.toml index 42252baf0..3efe5ea7e 100644 --- a/programs/solana/programs/test-ibc-app/Cargo.toml +++ b/programs/solana/programs/test-ibc-app/Cargo.toml @@ -26,6 +26,7 @@ default = [] anchor-lang = { workspace = true, features = ["init-if-needed"] } solana-ibc-types.workspace = true solana-ibc-macros.workspace = true +solana-instructions-sysvar.workspace = true ics26-router = { workspace = true, features = ["cpi"] } prost = { workspace = true } ibc-proto = { workspace = true } diff --git a/programs/solana/programs/test-ibc-app/src/instructions/on_acknowledgement_packet.rs b/programs/solana/programs/test-ibc-app/src/instructions/on_acknowledgement_packet.rs index 3f54ea4f0..aafea5237 100644 --- a/programs/solana/programs/test-ibc-app/src/instructions/on_acknowledgement_packet.rs +++ b/programs/solana/programs/test-ibc-app/src/instructions/on_acknowledgement_packet.rs @@ -17,8 +17,8 @@ pub struct OnAcknowledgementPacket<'info> { /// Instructions sysvar for CPI validation /// CHECK: Validated via address constraint - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instruction_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instruction_sysvar: UncheckedAccount<'info>, /// Payer for account creation if needed #[account(mut)] diff --git a/programs/solana/programs/test-ibc-app/src/instructions/on_recv_packet.rs b/programs/solana/programs/test-ibc-app/src/instructions/on_recv_packet.rs index a3237eff8..4917c8629 100644 --- a/programs/solana/programs/test-ibc-app/src/instructions/on_recv_packet.rs +++ b/programs/solana/programs/test-ibc-app/src/instructions/on_recv_packet.rs @@ -20,8 +20,8 @@ pub struct OnRecvPacket<'info> { /// Instructions sysvar for CPI validation /// CHECK: Validated via address constraint - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instruction_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instruction_sysvar: UncheckedAccount<'info>, /// Payer for account creation if needed #[account(mut)] diff --git a/programs/solana/programs/test-ibc-app/src/instructions/on_timeout_packet.rs b/programs/solana/programs/test-ibc-app/src/instructions/on_timeout_packet.rs index dbeb47328..de35b7d7d 100644 --- a/programs/solana/programs/test-ibc-app/src/instructions/on_timeout_packet.rs +++ b/programs/solana/programs/test-ibc-app/src/instructions/on_timeout_packet.rs @@ -19,8 +19,8 @@ pub struct OnTimeoutPacket<'info> { /// Instructions sysvar for CPI validation /// CHECK: Validated via address constraint - #[account(address = anchor_lang::solana_program::sysvar::instructions::ID)] - pub instruction_sysvar: AccountInfo<'info>, + #[account(address = solana_instructions_sysvar::ID)] + pub instruction_sysvar: UncheckedAccount<'info>, /// Payer for account creation if needed #[account(mut)] diff --git a/programs/solana/programs/test-ibc-app/src/instructions/send_packet.rs b/programs/solana/programs/test-ibc-app/src/instructions/send_packet.rs index baac197fe..c7e1803b8 100644 --- a/programs/solana/programs/test-ibc-app/src/instructions/send_packet.rs +++ b/programs/solana/programs/test-ibc-app/src/instructions/send_packet.rs @@ -64,7 +64,7 @@ pub struct SendPacket<'info> { /// Will be created by the router /// CHECK: PDA will be validated by router program #[account(mut)] - pub packet_commitment: AccountInfo<'info>, + pub packet_commitment: UncheckedAccount<'info>, /// Client registration entry for the source client. #[account( @@ -75,13 +75,13 @@ pub struct SendPacket<'info> { pub client: Account<'info, Client>, /// CHECK: Light client program, forwarded to router for status check - pub light_client_program: AccountInfo<'info>, + pub light_client_program: UncheckedAccount<'info>, /// CHECK: Client state account, forwarded to router for status check - pub client_state: AccountInfo<'info>, + pub client_state: UncheckedAccount<'info>, /// CHECK: Consensus state account, forwarded to router for expiry check - pub consensus_state: AccountInfo<'info>, + pub consensus_state: UncheckedAccount<'info>, /// ICS26 router program for CPI. pub router_program: Program<'info, Ics26Router>, @@ -89,6 +89,42 @@ pub struct SendPacket<'info> { pub system_program: Program<'info, System>, } +#[allow(clippy::too_many_arguments)] +pub(crate) fn send_packet_cpi<'info>( + router_program: &AccountInfo<'info>, + router_state: &AccountInfo<'info>, + ibc_app: &AccountInfo<'info>, + packet_commitment: &AccountInfo<'info>, + app_state: &AccountInfo<'info>, + app_state_bump: u8, + payer: &AccountInfo<'info>, + system_program: &AccountInfo<'info>, + client: &AccountInfo<'info>, + light_client_program: &AccountInfo<'info>, + client_state: &AccountInfo<'info>, + consensus_state: &AccountInfo<'info>, + msg: MsgSendPacket, +) -> Result { + let cpi_accounts = RouterSendPacket { + router_state: router_state.clone(), + ibc_app: ibc_app.clone(), + packet_commitment: packet_commitment.clone(), + app_signer: app_state.clone(), + payer: payer.clone(), + system_program: system_program.clone(), + client: client.clone(), + light_client_program: light_client_program.clone(), + client_state: client_state.clone(), + consensus_state: consensus_state.clone(), + }; + + let bump_seed = [app_state_bump]; + let signer_seeds: &[&[u8]] = &[IBCAppState::SEED, &bump_seed]; + let seeds = [signer_seeds]; + let cpi_ctx = CpiContext::new_with_signer(router_program.key(), cpi_accounts, &seeds); + Ok(router_cpi::send_packet(cpi_ctx, msg)?.get()) +} + pub fn send_packet(ctx: Context, msg: SendPacketMsg) -> Result<()> { // Get clock directly via syscall let clock = Clock::get()?; @@ -116,30 +152,21 @@ pub fn send_packet(ctx: Context, msg: SendPacketMsg) -> Result<()> { payload, }; - let cpi_accounts = RouterSendPacket { - router_state: ctx.accounts.router_state.to_account_info(), - ibc_app: ctx.accounts.ibc_app.to_account_info(), - packet_commitment: ctx.accounts.packet_commitment.to_account_info(), - app_signer: ctx.accounts.app_state.to_account_info(), - payer: ctx.accounts.user.to_account_info(), - system_program: ctx.accounts.system_program.to_account_info(), - client: ctx.accounts.client.to_account_info(), - light_client_program: ctx.accounts.light_client_program.to_account_info(), - client_state: ctx.accounts.client_state.to_account_info(), - consensus_state: ctx.accounts.consensus_state.to_account_info(), - }; - - // Sign the app_state PDA to prove this app is the immediate caller - let bump = ctx.bumps.app_state; - let signer_seeds: &[&[u8]] = &[IBCAppState::SEED, &[bump]]; - let seeds = [signer_seeds]; - let cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.router_program.to_account_info(), - cpi_accounts, - &seeds, - ); - let sequence_result = router_cpi::send_packet(cpi_ctx, router_msg)?; - let sequence = sequence_result.get(); + let sequence = send_packet_cpi( + &ctx.accounts.router_program.to_account_info(), + &ctx.accounts.router_state.to_account_info(), + &ctx.accounts.ibc_app.to_account_info(), + &ctx.accounts.packet_commitment.to_account_info(), + &ctx.accounts.app_state.to_account_info(), + ctx.bumps.app_state, + &ctx.accounts.user.to_account_info(), + &ctx.accounts.system_program.to_account_info(), + &ctx.accounts.client.to_account_info(), + &ctx.accounts.light_client_program.to_account_info(), + &ctx.accounts.client_state.to_account_info(), + &ctx.accounts.consensus_state.to_account_info(), + router_msg, + )?; // Update app state - track packets sent let app_state = &mut ctx.accounts.app_state; diff --git a/programs/solana/programs/test-ibc-app/src/instructions/send_transfer.rs b/programs/solana/programs/test-ibc-app/src/instructions/send_transfer.rs index f0dad8938..3feb6e0c5 100644 --- a/programs/solana/programs/test-ibc-app/src/instructions/send_transfer.rs +++ b/programs/solana/programs/test-ibc-app/src/instructions/send_transfer.rs @@ -1,15 +1,13 @@ use crate::{errors::TestIbcAppError, state::*}; use anchor_lang::prelude::*; use ibc_proto::ibc::applications::transfer::v2::FungibleTokenPacketData; -use ics26_router::cpi as router_cpi; use ics26_router::program::Ics26Router; -use ics26_router::{ - cpi::accounts::SendPacket as RouterSendPacket, - state::{Client, IBCApp, MsgSendPacket, RouterState}, -}; +use ics26_router::state::{Client, IBCApp, MsgSendPacket, RouterState}; use prost::Message; use solana_ibc_types::Payload; +use super::send_packet::send_packet_cpi; + /// Message for sending a transfer via IBC #[derive(AnchorSerialize, AnchorDeserialize, Clone, Debug)] pub struct SendTransferMsg { @@ -54,7 +52,7 @@ pub struct SendTransfer<'info> { seeds = [TestIbcAppState::ESCROW_SEED, msg.source_client.as_bytes()], bump )] - pub escrow_account: AccountInfo<'info>, + pub escrow_account: UncheckedAccount<'info>, /// Optional escrow state to track transfers (created if needed) #[account( @@ -85,7 +83,7 @@ pub struct SendTransfer<'info> { /// Will be created by the router /// CHECK: PDA will be validated by router program #[account(mut)] - pub packet_commitment: AccountInfo<'info>, + pub packet_commitment: UncheckedAccount<'info>, /// Client registration entry for the source client. #[account( @@ -96,13 +94,13 @@ pub struct SendTransfer<'info> { pub client: Account<'info, Client>, /// CHECK: Light client program, forwarded to router for status check - pub light_client_program: AccountInfo<'info>, + pub light_client_program: UncheckedAccount<'info>, /// CHECK: Client state account, forwarded to router for status check - pub client_state: AccountInfo<'info>, + pub client_state: UncheckedAccount<'info>, /// CHECK: Consensus state account, forwarded to router for expiry check - pub consensus_state: AccountInfo<'info>, + pub consensus_state: UncheckedAccount<'info>, /// ICS26 router program for CPI. pub router_program: Program<'info, Ics26Router>, @@ -205,30 +203,21 @@ pub fn send_transfer(ctx: Context, msg: SendTransferMsg) -> Result payload, }; - let cpi_accounts = RouterSendPacket { - router_state: ctx.accounts.router_state.to_account_info(), - ibc_app: ctx.accounts.ibc_app.to_account_info(), - packet_commitment: ctx.accounts.packet_commitment.to_account_info(), - app_signer: ctx.accounts.app_state.to_account_info(), - payer: ctx.accounts.user.to_account_info(), - system_program: ctx.accounts.system_program.to_account_info(), - client: ctx.accounts.client.to_account_info(), - light_client_program: ctx.accounts.light_client_program.to_account_info(), - client_state: ctx.accounts.client_state.to_account_info(), - consensus_state: ctx.accounts.consensus_state.to_account_info(), - }; - - // Sign the app_state PDA to prove this app is the immediate caller - let bump = ctx.bumps.app_state; - let signer_seeds: &[&[u8]] = &[IBCAppState::SEED, &[bump]]; - let seeds = [signer_seeds]; - let cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.router_program.to_account_info(), - cpi_accounts, - &seeds, - ); - let sequence_result = router_cpi::send_packet(cpi_ctx, router_msg)?; - let sequence = sequence_result.get(); + let sequence = send_packet_cpi( + &ctx.accounts.router_program.to_account_info(), + &ctx.accounts.router_state.to_account_info(), + &ctx.accounts.ibc_app.to_account_info(), + &ctx.accounts.packet_commitment.to_account_info(), + &ctx.accounts.app_state.to_account_info(), + ctx.bumps.app_state, + &ctx.accounts.user.to_account_info(), + &ctx.accounts.system_program.to_account_info(), + &ctx.accounts.client.to_account_info(), + &ctx.accounts.light_client_program.to_account_info(), + &ctx.accounts.client_state.to_account_info(), + &ctx.accounts.consensus_state.to_account_info(), + router_msg, + )?; // Update app state - track packets sent let app_state = &mut ctx.accounts.app_state;