From 7de6d14db5edf24dd05299437c981b432485565b Mon Sep 17 00:00:00 2001 From: tilo-14 Date: Fri, 19 Dec 2025 14:01:58 +0000 Subject: [PATCH 1/2] refactor: migrate to V2 APIs and published crates - Remove local path dependencies, use only published crates from crates.io - Switch from V1 to V2 state trees (batched Merkle trees) - Update processor to use CTokenAccount2 and transfer2 instruction - Update test to use V2 compress pattern with CTokenAccount2::compress_spl - Change version field from 2 to 3 for V2 compatibility - Add proper authority handling in packed accounts> --- Cargo.lock | 3911 ++++++++++++++++++++++------------- program/Cargo.toml | 23 +- program/src/instruction.rs | 131 +- program/src/processor.rs | 245 ++- program/tests/functional.rs | 178 +- 5 files changed, 2828 insertions(+), 1660 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a63eda6..0c41eba 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,44 +2,46 @@ # 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 = "account-compression" -version = "1.2.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0133fd66fc7bc5f78e566ce55e507f4b66a63ae18a719de86628c1986c80bca8" dependencies = [ "aligned-sized", "anchor-lang", "bytemuck", - "light-account-checks", + "light-account-checks 0.3.0", "light-batched-merkle-tree", "light-bounded-vec", - "light-compressed-account", - "light-concurrent-merkle-tree", + "light-compressed-account 0.3.0", + "light-concurrent-merkle-tree 2.1.0", "light-hash-set", - "light-hasher", - "light-indexed-merkle-tree", - "light-merkle-tree-metadata", - "light-zero-copy", + "light-hasher 3.1.0", + "light-indexed-merkle-tree 2.1.0", + "light-merkle-tree-metadata 0.3.0", + "light-zero-copy 0.2.0", "num-bigint 0.4.6", "solana-sdk", "solana-security-txt", "zerocopy", ] -[[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" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aead" @@ -79,30 +81,41 @@ dependencies = [ [[package]] name = "agave-feature-set" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "973a83d0d66d1f04647d1146a07736864f0742300b56bf2a5aadf5ce7b22fe47" +checksum = "d52a2c365c0245cbb8959de725fc2b44c754b673fdf34c9a7f9d4a25c35a7bf1" dependencies = [ - "ahash", + "ahash 0.8.12", "solana-epoch-schedule", - "solana-feature-set-interface", "solana-hash", "solana-pubkey", "solana-sha256-hasher", + "solana-svm-feature-set", +] + +[[package]] +name = "agave-io-uring" +version = "2.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a10b918a355bc78764aceb688dbbb6af72425f62be9dbfb7beb00b6d3803a0bd" +dependencies = [ + "io-uring", + "libc", + "log", + "slab", + "smallvec", ] [[package]] name = "agave-precompiles" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "591ddfc881b44f1eb740b5f6b64c953ba46b003cf0cd49d56268bc70594f655d" +checksum = "d60d73657792af7f2464e9181d13c3979e94bb09841d9ffa014eef4ef0492b77" dependencies = [ "agave-feature-set", "bincode", - "bytemuck", "digest 0.10.7", "ed25519-dalek", - "lazy_static", "libsecp256k1", "openssl", "sha3", @@ -117,21 +130,20 @@ dependencies = [ [[package]] name = "agave-reserved-account-keys" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "498ae700a5abcfe54d26333c3c1e58c729150d30166940e1f38eafbfe595237e" +checksum = "8289c8a8a2ef5aa10ce49a070f360f4e035ee3410b8d8f3580fb39d8cf042581" dependencies = [ "agave-feature-set", - "lazy_static", "solana-pubkey", "solana-sdk-ids", ] [[package]] name = "agave-transaction-view" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe519820242ff25cf40fbd44b7c3ee585674de332a1f43fc2a0923975194c472" +checksum = "a12e8f8ca0615dc3684c63f3aceacea30be8c60986cd41a1e795878ea17df2a4" dependencies = [ "solana-hash", "solana-message", @@ -143,6 +155,17 @@ dependencies = [ "solana-svm-transaction", ] +[[package]] +name = "ahash" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" +dependencies = [ + "getrandom 0.2.16", + "once_cell", + "version_check", +] + [[package]] name = "ahash" version = "0.8.12" @@ -150,7 +173,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", - "getrandom 0.3.3", + "getrandom 0.3.4", "once_cell", "version_check", "zerocopy", @@ -158,9 +181,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] @@ -168,11 +191,12 @@ dependencies = [ [[package]] name = "aligned-sized" version = "1.1.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48a526ec4434d531d488af59fe866f36b310fe8906691c75dffa664450a3800a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -363,12 +387,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c08cb5d762c0694f74bd02c9a5b04ea53cefc496e2c27b3234acffca5cd076b" dependencies = [ "anchor-lang", - "spl-associated-token-account", + "spl-associated-token-account 6.0.0", "spl-pod", "spl-token 7.0.0", "spl-token-2022 6.0.0", - "spl-token-group-interface", - "spl-token-metadata-interface", + "spl-token-group-interface 0.5.0", + "spl-token-metadata-interface 0.6.0", ] [[package]] @@ -390,12 +414,6 @@ dependencies = [ "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" @@ -405,11 +423,20 @@ 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 = "anyhow" -version = "1.0.98" +version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" [[package]] name = "aquamarine" @@ -422,7 +449,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -470,14 +497,14 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" dependencies = [ - "ahash", + "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", + "hashbrown 0.15.2", "itertools 0.13.0", "num-bigint 0.4.6", "num-integer", @@ -542,7 +569,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -568,7 +595,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -590,13 +617,13 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" dependencies = [ - "ahash", + "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", + "hashbrown 0.15.2", ] [[package]] @@ -643,7 +670,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -743,38 +770,37 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.23" +version = "0.4.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b37fc50485c4f3f736a4fb14199f6d5f5ba008d7f28fe710306c92780f004c07" +checksum = "98ec5f6c2f8bc326c994cb9e241cc257ddaba9afa8555a43cffbb5dd86efaa37" dependencies = [ - "brotli", - "flate2", + "compression-codecs", + "compression-core", "futures-core", - "memchr", "pin-project-lite", "tokio", ] [[package]] name = "async-lock" -version = "3.4.0" +version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" +checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" dependencies = [ - "event-listener 5.4.0", + "event-listener 5.4.1", "event-listener-strategy", "pin-project-lite", ] [[package]] name = "async-trait" -version = "0.1.88" +version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -796,24 +822,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "backtrace" -version = "0.3.75" +version = "1.5.0" 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", -] +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "base64" @@ -839,18 +850,6 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" -[[package]] -name = "bb8" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89aabfae550a5c44b43ab941844ffcd2e993cb6900b342debf59e9ea74acdb8" -dependencies = [ - "async-trait", - "futures-util", - "parking_lot", - "tokio", -] - [[package]] name = "bincode" version = "1.3.3" @@ -868,11 +867,11 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.1" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -940,11 +939,11 @@ dependencies = [ [[package]] name = "borsh" -version = "1.5.7" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" +checksum = "d1da5ab77c1437701eeff7c88d968729e7766172279eab0676857b3d63af7a6f" dependencies = [ - "borsh-derive 1.5.7", + "borsh-derive 1.6.0", "cfg_aliases", ] @@ -963,15 +962,15 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.5.7" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3" +checksum = "0686c856aa6aac0c4498f936d7d6a02df690f614c03e4d906d1018062b5c5e2c" dependencies = [ "once_cell", - "proc-macro-crate 3.3.0", + "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -998,9 +997,9 @@ dependencies = [ [[package]] name = "brotli" -version = "8.0.1" +version = "8.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9991eea70ea4f293524138648e41ee89b0b2b12ddef3b255effa43c8056e0e0d" +checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -1028,9 +1027,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.17.0" +version = "3.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" +checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" [[package]] name = "bv" @@ -1042,24 +1041,30 @@ dependencies = [ "serde", ] +[[package]] +name = "bytecount" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" + [[package]] name = "bytemuck" -version = "1.23.0" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c" +checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.9.3" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ecc273b49b3205b83d648f0690daa588925572cc5063745bfe547fe7ec8e1a1" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -1070,9 +1075,12 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" +dependencies = [ + "serde", +] [[package]] name = "bzip2" @@ -1096,12 +1104,11 @@ dependencies = [ [[package]] name = "caps" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190baaad529bcfbde9e1a19022c42781bdb6ff9de25721abdb8fd98c0807730b" +checksum = "fd1ddba47aba30b6a889298ad0109c3b8dcb0e8fc993b459daa7067d46f865e0" dependencies = [ "libc", - "thiserror 1.0.69", ] [[package]] @@ -1111,15 +1118,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a98356df42a2eb1bd8f1793ae4ee4de48e384dd974ce5eac8eee802edb7492be" dependencies = [ "serde", - "toml 0.8.22", + "toml 0.8.23", ] [[package]] name = "cc" -version = "1.2.25" +version = "1.2.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0fc897dc1e865cc67c0e05a836d9d3f1df3cbe442aa4a9473b18e12624a4951" +checksum = "90583009037521a116abf44494efecd645ba48b6622457080f080b85544e2215" dependencies = [ + "find-msvc-tools", "jobserver", "libc", "shlex", @@ -1133,9 +1141,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" @@ -1151,16 +1159,15 @@ checksum = "45565fc9416b9896014f5732ac776f810ee53a66730c17e4020c3ec064a8f88f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] name = "chrono" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ - "android-tzdata", "iana-time-zone", "js-sys", "num-traits", @@ -1211,6 +1218,24 @@ dependencies = [ "memchr", ] +[[package]] +name = "compression-codecs" +version = "0.4.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0f7ac3e5b97fdce45e8922fb05cae2c37f7bbd63d30dd94821dacfd8f3f2bf2" +dependencies = [ + "brotli", + "compression-core", + "flate2", + "memchr", +] + +[[package]] +name = "compression-core" +version = "0.4.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75984efb6ed102a0d42db99afb6c1948f0380d1d91808d5529916e6c08b49d8d" + [[package]] name = "concurrent-queue" version = "2.5.0" @@ -1296,9 +1321,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.4.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ "cfg-if", ] @@ -1339,15 +1364,15 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", "rand_core 0.6.4", @@ -1412,14 +1437,14 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] name = "darling" -version = "0.20.11" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ "darling_core", "darling_macro", @@ -1427,27 +1452,27 @@ dependencies = [ [[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", "proc-macro2", "quote", "strsim", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] name = "darling_macro" -version = "0.20.11" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -1464,20 +1489,6 @@ dependencies = [ "rayon", ] -[[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 = "data-encoding" version = "2.9.0" @@ -1500,12 +1511,12 @@ dependencies = [ [[package]] name = "deranged" -version = "0.4.0" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" dependencies = [ "powerfmt", - "serde", + "serde_core", ] [[package]] @@ -1568,7 +1579,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -1591,7 +1602,7 @@ checksum = "a6cbae11b3de8fce2a456e8ea3dada226b35fe791f0dc1d360c0941f0bb681f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -1600,6 +1611,12 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" +[[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" @@ -1659,10 +1676,10 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" dependencies = [ - "enum-ordinalize 4.3.0", + "enum-ordinalize 4.3.2", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -1697,13 +1714,13 @@ dependencies = [ [[package]] name = "enum-iterator-derive" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ab991c1362ac86c61ab6f556cff143daa22e5a15e4e189df818b2fd19fe65b" +checksum = "685adfa4d6f3d765a26bc5dbc936577de9abf756c1feeb3089b01dd395034842" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -1716,27 +1733,27 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] name = "enum-ordinalize" -version = "4.3.0" +version = "4.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea0dcfa4e54eeb516fe454635a95753ddd39acda650ce703031c6973e315dd5" +checksum = "4a1091a7bb1f8f2c4b28f1fe2cef4980ca2d410a3d727d67ecc3178c9b0800f0" dependencies = [ "enum-ordinalize-derive", ] [[package]] name = "enum-ordinalize-derive" -version = "4.3.1" +version = "4.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" +checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -1760,12 +1777,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.12" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -1776,9 +1793,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "5.4.0" +version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" +checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" dependencies = [ "concurrent-queue", "parking", @@ -1791,28 +1808,22 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" dependencies = [ - "event-listener 5.4.0", + "event-listener 5.4.1", "pin-project-lite", ] [[package]] name = "fastbloom" -version = "0.9.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27cea6e7f512d43b098939ff4d5a5d6fe3db07971e1d05176fe26c642d33f5b8" +checksum = "18c1ddb9231d8554c2d6bdf4cfaabf0c59251658c68b6c95cd52dd0c513a912a" dependencies = [ - "getrandom 0.3.3", - "rand 0.9.1", + "getrandom 0.3.4", + "libm", + "rand 0.9.2", "siphasher 1.0.1", - "wide", ] -[[package]] -name = "fastmurmur3" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d7e9bc68be4cdabbb8938140b01a8b5bc1191937f2c7e7ecc2fcebbe2d749df" - [[package]] name = "fastrand" version = "2.3.0" @@ -1833,14 +1844,29 @@ checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "filetime" -version = "0.2.25" +version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" dependencies = [ "cfg-if", "libc", "libredox", - "windows-sys 0.59.0", + "windows-sys 0.60.2", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" + +[[package]] +name = "five8" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75b8549488b4715defcb0d8a8a1c1c76a80661b5fa106b4ca0e7fce59d7d875" +dependencies = [ + "five8_core", ] [[package]] @@ -1860,9 +1886,9 @@ checksum = "2551bf44bc5f776c15044b9b94153a00198be06743e262afaaa61f11ac7523a5" [[package]] name = "flate2" -version = "1.1.1" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" +checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" dependencies = [ "crc32fast", "miniz_oxide", @@ -1883,6 +1909,12 @@ 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" @@ -1898,48 +1930,11 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" -[[package]] -name = "forester-utils" -version = "1.2.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" -dependencies = [ - "account-compression", - "anchor-lang", - "async-trait", - "bb8", - "futures", - "governor 0.8.1", - "light-account-checks", - "light-batched-merkle-tree", - "light-client", - "light-compressed-account", - "light-concurrent-merkle-tree", - "light-hash-set", - "light-hasher", - "light-indexed-array", - "light-indexed-merkle-tree", - "light-merkle-tree-metadata", - "light-prover-client", - "light-registry", - "light-sdk", - "light-sparse-merkle-tree", - "num-bigint 0.4.6", - "num-traits", - "rand 0.8.5", - "reqwest 0.12.19", - "serde", - "serde_json", - "solana-sdk", - "thiserror 2.0.12", - "tokio", - "tracing", -] - [[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", ] @@ -2012,7 +2007,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -2093,30 +2088,24 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi 0.11.1+wasi-snapshot-preview1", "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "js-sys", "libc", "r-efi", - "wasi 0.14.2+wasi-0.2.4", + "wasip2", "wasm-bindgen", ] -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - [[package]] name = "governor" version = "0.6.3" @@ -2124,7 +2113,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" dependencies = [ "cfg-if", - "dashmap 5.5.3", + "dashmap", "futures", "futures-timer", "no-std-compat", @@ -2137,34 +2126,11 @@ dependencies = [ "spinning_top", ] -[[package]] -name = "governor" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be93b4ec2e4710b04d9264c0c7350cdd62a8c20e5e4ac732552ebb8f0debe8eb" -dependencies = [ - "cfg-if", - "dashmap 6.1.0", - "futures-sink", - "futures-timer", - "futures-util", - "getrandom 0.3.3", - "no-std-compat", - "nonzero_ext", - "parking_lot", - "portable-atomic", - "quanta", - "rand 0.9.1", - "smallvec", - "spinning_top", - "web-time", -] - [[package]] name = "groth16-solana" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88b742ab45083ea752bcece9bb0a1f8b9bdff52013a5f6b4dce77ac2b59f34c" +checksum = "3a6d1ffb18dbf5cfc60b11bd7da88474c672870247c1e5b498619bcb6ba3d8f5" dependencies = [ "ark-bn254 0.5.0", "ark-ec 0.5.0", @@ -2177,9 +2143,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.26" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" dependencies = [ "bytes", "fnv", @@ -2187,37 +2153,37 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.9.0", + "indexmap 2.12.1", "slab", "tokio", - "tokio-util 0.7.15", + "tokio-util 0.7.17", "tracing", ] [[package]] name = "h2" -version = "0.4.10" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9421a676d1b147b16b82c9225157dc629087ef8ec4d5e2960f9437a90dac0a5" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" dependencies = [ "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "http 1.3.1", - "indexmap 2.9.0", + "http 1.4.0", + "indexmap 2.12.1", "slab", "tokio", - "tokio-util 0.7.15", + "tokio-util 0.7.17", "tracing", ] [[package]] name = "hash32" -version = "0.2.1" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" dependencies = [ "byteorder", ] @@ -2227,6 +2193,9 @@ name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.8", +] [[package]] name = "hashbrown" @@ -2234,7 +2203,7 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash", + "ahash 0.8.12", ] [[package]] @@ -2245,13 +2214,21 @@ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" [[package]] name = "hashbrown" -version = "0.15.3" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ "allocator-api2", + "equivalent", + "foldhash", ] +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" + [[package]] name = "heck" version = "0.3.3" @@ -2267,6 +2244,12 @@ 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" @@ -2278,9 +2261,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f154ce46856750ed433c8649605bf7ed2de3bc35fd9d2a9f30cddd873c80cb08" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" [[package]] name = "hex" @@ -2337,12 +2320,11 @@ dependencies = [ [[package]] name = "http" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" dependencies = [ "bytes", - "fnv", "itoa", ] @@ -2364,7 +2346,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.3.1", + "http 1.4.0", ] [[package]] @@ -2375,7 +2357,7 @@ checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", "futures-core", - "http 1.3.1", + "http 1.4.0", "http-body 1.0.1", "pin-project-lite", ] @@ -2394,9 +2376,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f" +checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" [[package]] name = "hyper" @@ -2408,14 +2390,14 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.3.26", + "h2 0.3.27", "http 0.2.12", "http-body 0.4.6", "httparse", "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.5.10", "tokio", "tower-service", "tracing", @@ -2424,19 +2406,21 @@ dependencies = [ [[package]] name = "hyper" -version = "1.6.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" +checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" dependencies = [ + "atomic-waker", "bytes", "futures-channel", - "futures-util", - "h2 0.4.10", - "http 1.3.1", + "futures-core", + "h2 0.4.12", + "http 1.4.0", "http-body 1.0.1", "httparse", "itoa", "pin-project-lite", + "pin-utils", "smallvec", "tokio", "want", @@ -2458,18 +2442,19 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.6" +version = "0.27.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03a01595e11bdcec50946522c32dde3fc6914743000a68b93000965f2f02406d" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ - "http 1.3.1", - "hyper 1.6.0", + "http 1.4.0", + "hyper 1.8.1", "hyper-util", - "rustls 0.23.27", + "rustls 0.23.35", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.2", + "tokio-rustls 0.26.4", "tower-service", + "webpki-roots 1.0.4", ] [[package]] @@ -2493,7 +2478,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.6.0", + "hyper 1.8.1", "hyper-util", "native-tls", "tokio", @@ -2503,23 +2488,23 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.13" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c293b6b3d21eca78250dc7dbebd6b9210ec5530e038cbfe0661b5c47ab06e8" +checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f" dependencies = [ "base64 0.22.1", "bytes", "futures-channel", "futures-core", "futures-util", - "http 1.3.1", + "http 1.4.0", "http-body 1.0.1", - "hyper 1.6.0", + "hyper 1.8.1", "ipnet", "libc", "percent-encoding", "pin-project-lite", - "socket2", + "socket2 0.6.1", "system-configuration 0.6.1", "tokio", "tower-service", @@ -2529,9 +2514,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.63" +version = "0.1.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" +checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -2553,9 +2538,9 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" dependencies = [ "displaydoc", "potential_utf", @@ -2566,9 +2551,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" dependencies = [ "displaydoc", "litemap", @@ -2579,11 +2564,10 @@ dependencies = [ [[package]] name = "icu_normalizer" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" dependencies = [ - "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", @@ -2594,42 +2578,38 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" [[package]] name = "icu_properties" -version = "2.0.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" 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" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" +checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" [[package]] name = "icu_provider" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" dependencies = [ "displaydoc", "icu_locale_core", - "stable_deref_trait", - "tinystr", "writeable", "yoke", "zerofrom", @@ -2645,9 +2625,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", @@ -2699,12 +2679,6 @@ dependencies = [ "quote", ] -[[package]] -name = "index_list" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f05caee923b644542e92a659bfceb868a4053fb7d4230ef2141931e8b01e91a" - [[package]] name = "indexmap" version = "1.9.3" @@ -2718,13 +2692,14 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.9.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" dependencies = [ "equivalent", - "hashbrown 0.15.3", + "hashbrown 0.16.1", "serde", + "serde_core", ] [[package]] @@ -2749,6 +2724,17 @@ dependencies = [ "generic-array", ] +[[package]] +name = "io-uring" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdd7bddefd0a8833b88a4b68f90dae22c7450d11b354198baee3874fd811b344" +dependencies = [ + "bitflags 2.10.0", + "cfg-if", + "libc", +] + [[package]] name = "ipnet" version = "2.11.0" @@ -2757,9 +2743,9 @@ checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "iri-string" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397" dependencies = [ "memchr", "serde", @@ -2792,6 +2778,15 @@ 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" @@ -2822,19 +2817,19 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "libc", ] [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" dependencies = [ "once_cell", "wasm-bindgen", @@ -2855,6 +2850,16 @@ dependencies = [ "serde_json", ] +[[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" @@ -2872,19 +2877,25 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.172" +version = "0.2.178" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" + +[[package]] +name = "libm" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" +checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libredox" -version = "0.1.3" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +checksum = "df15f6eac291ed1cf25865b1ee60399f57e7c227e7f51bdbd4c5270396a9ed50" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "libc", - "redox_syscall", + "redox_syscall 0.6.0", ] [[package]] @@ -2937,57 +2948,83 @@ dependencies = [ [[package]] name = "light-account-checks" -version = "0.2.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3fd000a2b8e0cc9d0b7b7712964870df51f2114f1693b9d8f0414f6f3ec16bd" dependencies = [ "solana-account-info", "solana-program-error", "solana-pubkey", "solana-sysvar", - "thiserror 2.0.12", + "thiserror 2.0.17", +] + +[[package]] +name = "light-account-checks" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0785da22cd4a7667583141ca56c790a5c8afa2b22ad2a08204d78881035524e8" +dependencies = [ + "solana-account-info", + "solana-msg", + "solana-program-error", + "solana-pubkey", + "solana-sysvar", + "thiserror 2.0.17", +] + +[[package]] +name = "light-array-map" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "859dc5b406a8bf0b114f686e6f2e36d0e939bad6f579492a520d309b52fde1f8" +dependencies = [ + "tinyvec", ] [[package]] name = "light-batched-merkle-tree" -version = "0.2.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81c7e179246468b09bf5c6882ef33043e178ff90eb6eab0c1c4c3623ef84b154" dependencies = [ "aligned-sized", "borsh 0.10.4", - "light-account-checks", + "light-account-checks 0.3.0", "light-bloom-filter", - "light-compressed-account", - "light-hasher", + "light-compressed-account 0.3.0", + "light-hasher 3.1.0", "light-macros", - "light-merkle-tree-metadata", + "light-merkle-tree-metadata 0.3.0", "light-verifier", - "light-zero-copy", + "light-zero-copy 0.2.0", "solana-account-info", "solana-msg", "solana-program-error", "solana-pubkey", "solana-sysvar", - "thiserror 2.0.12", + "thiserror 2.0.17", "zerocopy", ] [[package]] name = "light-bloom-filter" -version = "0.2.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44abcb5554e1c15cefa9ac17e4ceda6f5afb039db25ab1fd777f012356d0f964" dependencies = [ "bitvec", - "fastmurmur3", "num-bigint 0.4.6", + "solana-nostd-keccak", "solana-program-error", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] name = "light-bounded-vec" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233a69f003522990dadcf923b436094ffcb55326a2c3cef7f67acdbcb6e5b039" +checksum = "58cfa375d028164719e3ffef93d2e5c27855cc8a5bb5bf257b868d17c12a3e66" dependencies = [ "bytemuck", "memoffset", @@ -2997,34 +3034,39 @@ dependencies = [ [[package]] name = "light-client" -version = "0.9.1" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c65a2574dca16e7983d8ca0f40cb2969bf24de288dc187bb827beae64008f8ad" dependencies = [ "async-trait", "base64 0.13.1", "borsh 0.10.4", "bs58", "lazy_static", - "light-compressed-account", - "light-concurrent-merkle-tree", - "light-hasher", - "light-indexed-merkle-tree", - "light-merkle-tree-metadata", + "light-compressed-account 0.7.0", + "light-concurrent-merkle-tree 5.0.0", + "light-ctoken-sdk", + "light-event", + "light-hasher 5.0.0", + "light-indexed-merkle-tree 5.0.0", + "light-merkle-tree-metadata 0.7.0", "light-prover-client", "light-sdk", + "litesvm", "num-bigint 0.4.6", - "num-traits", - "photon-api", + "photon-api 0.53.0", + "rand 0.8.5", "solana-account", "solana-account-decoder-client-types", + "solana-address-lookup-table-interface", "solana-banks-client", "solana-clock", "solana-commitment-config", "solana-compute-budget-interface", - "solana-epoch-info", "solana-hash", "solana-instruction", "solana-keypair", + "solana-message", "solana-program-error", "solana-pubkey", "solana-rpc-client", @@ -3033,25 +3075,49 @@ dependencies = [ "solana-transaction", "solana-transaction-error", "solana-transaction-status-client-types", - "thiserror 2.0.12", + "thiserror 2.0.17", "tokio", "tracing", ] [[package]] name = "light-compressed-account" -version = "0.2.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f15113babaca9efb592631ec1e7e78c1c83413818a6e1e4248b7df53d88fe65" dependencies = [ "anchor-lang", "borsh 0.10.4", "bytemuck", - "light-hasher", + "light-hasher 3.1.0", "light-macros", - "light-zero-copy", + "light-zero-copy 0.2.0", "solana-program-error", "solana-pubkey", - "thiserror 2.0.12", + "thiserror 2.0.17", + "zerocopy", +] + +[[package]] +name = "light-compressed-account" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "058df2733fa6a3e4bda6f162a6c5d41f10fc8c6f6ddb992af1de76b60214e4a6" +dependencies = [ + "anchor-lang", + "borsh 0.10.4", + "bytemuck", + "light-hasher 5.0.0", + "light-macros", + "light-poseidon 0.3.0", + "light-program-profiler", + "light-zero-copy 0.5.0", + "pinocchio", + "solana-msg", + "solana-program-error", + "solana-pubkey", + "thiserror 2.0.17", + "tinyvec", "zerocopy", ] @@ -3061,32 +3127,32 @@ version = "0.1.0" dependencies = [ "borsh 0.10.4", "light-client", - "light-compressed-account", + "light-compressed-account 0.7.0", "light-compressed-token", - "light-compressed-token-client", - "light-compressed-token-sdk", + "light-ctoken-interface", + "light-ctoken-sdk", "light-program-test", - "light-sdk", "solana-program", "solana-program-test", "solana-sdk", "spl-token 5.0.2", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] name = "light-compressed-token" -version = "1.2.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e9ea8f8e9fb7c69ed05ee7899361de7b9ea2dbd08252348871a4a631aabe451" dependencies = [ "account-compression", "anchor-lang", "anchor-spl", - "light-compressed-account", - "light-hasher", + "light-compressed-account 0.3.0", + "light-hasher 3.1.0", "light-heap", "light-system-program-anchor", - "light-zero-copy", + "light-zero-copy 0.2.0", "solana-sdk", "solana-security-txt", "spl-token 7.0.0", @@ -3095,73 +3161,180 @@ dependencies = [ ] [[package]] -name = "light-compressed-token-client" -version = "0.1.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +name = "light-compressible" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3648e2cd17ed29c72fefd95c099c9673a289e7ce1fd9b76f7f16cc1e5ddaf97" dependencies = [ - "account-compression", + "aligned-sized", "anchor-lang", - "anchor-spl", "borsh 0.10.4", - "light-compressed-account", - "light-compressed-token", - "light-system-program-anchor", - "num-bigint 0.4.6", - "num-traits", + "bytemuck", + "light-account-checks 0.6.0", + "light-compressed-account 0.7.0", + "light-hasher 5.0.0", + "light-macros", + "light-program-profiler", + "light-zero-copy 0.5.0", + "pinocchio", + "pinocchio-pubkey", + "solana-msg", + "solana-program-error", + "solana-pubkey", + "solana-sysvar", + "thiserror 2.0.17", + "zerocopy", +] + +[[package]] +name = "light-compressible-client" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d57f59c916e82fcf262e408e659472ea5a07d7ac492277a4f422f115823282" +dependencies = [ + "anchor-lang", + "borsh 0.10.4", + "light-client", + "light-sdk", "solana-account", - "solana-hash", "solana-instruction", - "solana-program", "solana-pubkey", - "solana-sdk", - "solana-signature", - "solana-transaction", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] -name = "light-compressed-token-sdk" -version = "0.1.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +name = "light-concurrent-merkle-tree" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f878301620df78ba7e7758c5fd720f28040f5c157375f88d310f15ddb1746" dependencies = [ - "anchor-lang", "borsh 0.10.4", - "light-compressed-account", - "light-heap", - "num-bigint 0.4.6", - "solana-program", - "solana-sdk", + "light-bounded-vec", + "light-hasher 3.1.0", + "memoffset", + "solana-program-error", + "thiserror 2.0.17", ] [[package]] name = "light-concurrent-merkle-tree" -version = "2.0.1" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db96f47253a0907aaa46dac15cecb27b5510130e48da0b36690dcd2e99a6d558" dependencies = [ "borsh 0.10.4", "light-bounded-vec", - "light-hasher", + "light-hasher 5.0.0", "memoffset", "solana-program-error", - "thiserror 2.0.12", + "thiserror 2.0.17", +] + +[[package]] +name = "light-ctoken-interface" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b692874fd2d7439225b664375b839c3e8b1538829558f85910bfd853cd91e4df" +dependencies = [ + "aligned-sized", + "anchor-lang", + "borsh 0.10.4", + "bytemuck", + "light-array-map", + "light-compressed-account 0.7.0", + "light-compressible", + "light-hasher 5.0.0", + "light-macros", + "light-program-profiler", + "light-zero-copy 0.5.0", + "pinocchio", + "pinocchio-pubkey", + "solana-account-info", + "solana-pubkey", + "spl-pod", + "spl-token-2022 7.0.0", + "thiserror 2.0.17", + "tinyvec", + "zerocopy", +] + +[[package]] +name = "light-ctoken-sdk" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eda77f9130dfbbb5800988f41a87bb74b8f59854ab62629565e5b818b0352a6f" +dependencies = [ + "anchor-lang", + "arrayvec", + "borsh 0.10.4", + "light-account-checks 0.6.0", + "light-compressed-account 0.7.0", + "light-compressible", + "light-ctoken-interface", + "light-ctoken-types", + "light-macros", + "light-program-profiler", + "light-sdk", + "light-sdk-types", + "light-zero-copy 0.5.0", + "solana-account-info", + "solana-cpi", + "solana-instruction", + "solana-msg", + "solana-program-error", + "solana-pubkey", + "spl-pod", + "spl-token-2022 7.0.0", + "thiserror 2.0.17", +] + +[[package]] +name = "light-ctoken-types" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d7facfbde56b67693061f12572792ff142e0eef4d20f7153ceb5401934f1aac" +dependencies = [ + "anchor-lang", + "borsh 0.10.4", + "light-account-checks 0.6.0", + "light-compressed-account 0.7.0", + "light-macros", + "light-sdk-types", + "solana-msg", + "thiserror 2.0.17", +] + +[[package]] +name = "light-event" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9032317e17599cfdefac76b8f44563b535afc6401ca1539a752937ea2dd5b63" +dependencies = [ + "borsh 0.10.4", + "light-compressed-account 0.7.0", + "light-hasher 5.0.0", + "light-zero-copy 0.5.0", + "thiserror 2.0.17", ] [[package]] name = "light-hash-set" -version = "2.0.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3893319277415f3ffbe9cfa3d1838d0d437b5539a69040fc0f161f29fb495673" dependencies = [ - "light-hasher", + "light-hasher 3.1.0", "num-bigint 0.4.6", "num-traits", "solana-program-error", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] name = "light-hasher" -version = "3.0.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6445937ea244bebae0558e2aaec375791895d08c785b87cc45b62cd80d69139" dependencies = [ "ark-bn254 0.5.0", "ark-ff 0.5.0", @@ -3171,15 +3344,35 @@ dependencies = [ "num-bigint 0.4.6", "sha2 0.10.9", "sha3", + "solana-nostd-keccak", "solana-program-error", "solana-pubkey", - "thiserror 2.0.12", + "thiserror 2.0.17", +] + +[[package]] +name = "light-hasher" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c822662e6e109bac0e132a43fd52a4ef684811245a794e048cf9cda001e934c8" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ff 0.5.0", + "borsh 0.10.4", + "light-poseidon 0.3.0", + "num-bigint 0.4.6", + "sha2 0.10.9", + "sha3", + "solana-program-error", + "thiserror 2.0.17", + "tinyvec", ] [[package]] name = "light-heap" -version = "1.1.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d28744e8876667e9ec8124c6b0fae425972a987648bd5e8de720dbe1323d5fe" dependencies = [ "anchor-lang", ] @@ -3187,66 +3380,130 @@ dependencies = [ [[package]] name = "light-indexed-array" version = "0.1.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc786d8df68ef64493fea04914a7a7745f8122f2efbae043cd4ba4eaffa9e6db" +dependencies = [ + "light-hasher 3.1.0", + "num-bigint 0.4.6", + "num-traits", + "thiserror 2.0.17", +] + +[[package]] +name = "light-indexed-array" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f14f984030d86b6f07bd8f5ae04e2c40fcd0c3bdfcc7a291fff1ed59c9e6554" dependencies = [ - "light-hasher", + "light-hasher 5.0.0", "num-bigint 0.4.6", "num-traits", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] name = "light-indexed-merkle-tree" -version = "2.0.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f38362948ad7b8ae1fd1626d38743bed5a15563336fb5d4148b9162186c8e55" dependencies = [ "light-bounded-vec", - "light-concurrent-merkle-tree", - "light-hasher", - "light-merkle-tree-reference", + "light-concurrent-merkle-tree 2.1.0", + "light-hasher 3.1.0", + "light-merkle-tree-reference 2.0.0", "num-bigint 0.4.6", "num-traits", "solana-program-error", - "thiserror 2.0.12", + "thiserror 2.0.17", +] + +[[package]] +name = "light-indexed-merkle-tree" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0824755289075f28de2820fc7d4ec4e6b9e99d404e033c07338b91cce8c71fb8" +dependencies = [ + "light-bounded-vec", + "light-concurrent-merkle-tree 5.0.0", + "light-hasher 5.0.0", + "light-merkle-tree-reference 4.0.0", + "num-bigint 0.4.6", + "num-traits", + "solana-program-error", + "thiserror 2.0.17", ] [[package]] name = "light-macros" -version = "2.0.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "179ac51cadc1d0ca047b4d6265a7cc245ca3affc16a20a2749585aa6464d39c2" dependencies = [ "bs58", "proc-macro2", "quote", - "syn 2.0.101", + "solana-pubkey", + "syn 2.0.111", ] [[package]] name = "light-merkle-tree-metadata" -version = "0.2.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "544048fa95ea95fc1e952a2b9b1d6f09340c8decaffd1ad239fe1f6eb905ae76" +dependencies = [ + "anchor-lang", + "borsh 0.10.4", + "bytemuck", + "light-compressed-account 0.3.0", + "solana-msg", + "solana-program-error", + "solana-sysvar", + "thiserror 2.0.17", + "zerocopy", +] + +[[package]] +name = "light-merkle-tree-metadata" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9780fcd23afe4220857b0d71ef4823afd142ddc50469a8759423f19d81a33437" dependencies = [ "anchor-lang", "borsh 0.10.4", "bytemuck", - "light-compressed-account", + "light-compressed-account 0.7.0", "solana-msg", "solana-program-error", "solana-sysvar", - "thiserror 2.0.12", + "thiserror 2.0.17", "zerocopy", ] [[package]] name = "light-merkle-tree-reference" version = "2.0.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1650701feac958261b2c3ab4da361ad8548985ee3ee496a17e76db44d2d3c9e3" dependencies = [ - "light-hasher", - "light-indexed-array", + "light-hasher 3.1.0", + "light-indexed-array 0.1.0", "num-bigint 0.4.6", "num-traits", - "thiserror 2.0.12", + "thiserror 2.0.17", +] + +[[package]] +name = "light-merkle-tree-reference" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8d480f62ca32b38a6231bbc5310d693f91d6b5bdcc18bb13c2d9aab7a1c90e8" +dependencies = [ + "light-hasher 5.0.0", + "light-indexed-array 0.3.0", + "num-bigint 0.4.6", + "num-traits", + "thiserror 2.0.17", ] [[package]] @@ -3273,55 +3530,89 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "light-profiler-macro" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a8be18fe4de58a6f754caa74a3fbc6d8a758a26f1f3c24d5b0f5b55df5f5408" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "light-program-profiler" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1d345871581aebd8825868a3f08410290aa1cdddcb189ca7f7e588f61d79fcf" +dependencies = [ + "light-profiler-macro", +] + [[package]] name = "light-program-test" -version = "0.1.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5587287e981f066159a27e6b1a668badba833825aee4d0d2618e3bdd90848df" dependencies = [ - "account-compression", "anchor-lang", "async-trait", + "base64 0.22.1", "borsh 0.10.4", - "forester-utils", - "light-batched-merkle-tree", + "bs58", + "bytemuck", + "chrono", "light-client", - "light-compressed-account", - "light-compressed-token", - "light-concurrent-merkle-tree", - "light-hasher", - "light-indexed-array", - "light-indexed-merkle-tree", - "light-merkle-tree-metadata", - "light-merkle-tree-reference", + "light-compressed-account 0.7.0", + "light-compressible-client", + "light-ctoken-sdk", + "light-event", + "light-hasher 5.0.0", + "light-indexed-array 0.3.0", + "light-indexed-merkle-tree 5.0.0", + "light-merkle-tree-metadata 0.7.0", + "light-merkle-tree-reference 4.0.0", "light-prover-client", - "light-registry", "light-sdk", + "light-sdk-types", + "light-zero-copy 0.5.0", + "litesvm", "log", "num-bigint 0.4.6", "num-traits", - "photon-api", - "reqwest 0.12.19", + "photon-api 0.52.0", + "rand 0.8.5", + "reqwest 0.12.26", + "serde", + "serde_json", + "solana-account", "solana-banks-client", + "solana-compute-budget", "solana-instruction", - "solana-program-test", "solana-pubkey", "solana-rpc-client-api", "solana-sdk", "solana-transaction", + "solana-transaction-status", "solana-transaction-status-client-types", + "spl-token-2022 7.0.0", + "tabled", "tokio", ] [[package]] name = "light-prover-client" -version = "1.3.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75d8c9b8b6e9d445b9ef27467da592ee231e614282c3c0bd2f30f567eb904845" dependencies = [ "ark-bn254 0.5.0", "ark-serialize 0.5.0", "ark-std 0.5.0", - "light-hasher", - "light-indexed-array", + "light-compressed-account 0.7.0", + "light-hasher 5.0.0", + "light-indexed-array 0.3.0", "light-sparse-merkle-tree", "num-bigint 0.4.6", "num-traits", @@ -3329,136 +3620,241 @@ dependencies = [ "serde", "serde_json", "solana-bn254", - "thiserror 2.0.12", + "thiserror 2.0.17", "tokio", "tracing", ] -[[package]] -name = "light-registry" -version = "1.2.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" -dependencies = [ - "account-compression", - "aligned-sized", - "anchor-lang", - "light-batched-merkle-tree", - "light-merkle-tree-metadata", - "light-system-program-anchor", - "solana-sdk", - "solana-security-txt", -] - [[package]] name = "light-sdk" -version = "0.12.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58d6105c9ca358c0c484d83cae451eb5f12c869e82bd0a70dc1fb79a11051c5e" dependencies = [ "anchor-lang", + "bincode", "borsh 0.10.4", - "light-account-checks", - "light-compressed-account", - "light-hasher", + "light-account-checks 0.6.0", + "light-compressed-account 0.7.0", + "light-compressible", + "light-hasher 5.0.0", "light-macros", "light-sdk-macros", - "light-verifier", + "light-sdk-types", + "light-zero-copy 0.5.0", "num-bigint 0.4.6", "solana-account-info", + "solana-clock", "solana-cpi", "solana-instruction", + "solana-loader-v3-interface", "solana-msg", "solana-program-error", "solana-pubkey", - "thiserror 2.0.12", + "solana-system-interface", + "solana-sysvar", + "thiserror 2.0.17", ] [[package]] name = "light-sdk-macros" -version = "0.6.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d1574d5e077c0bf4cec6ab82fcd323265b45d0aa4f0493c01d726e8b8863f9" dependencies = [ - "ark-bn254 0.5.0", - "light-hasher", - "light-poseidon 0.3.0", + "light-hasher 5.0.0", + "light-sdk-types", "proc-macro2", "quote", - "syn 2.0.101", + "solana-pubkey", + "syn 2.0.111", +] + +[[package]] +name = "light-sdk-types" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d11611baf72ac9f728eb17857b01cc9a80919ff34631965c69be69b8d31c28e" +dependencies = [ + "anchor-lang", + "borsh 0.10.4", + "light-account-checks 0.6.0", + "light-compressed-account 0.7.0", + "light-hasher 5.0.0", + "light-macros", + "solana-msg", + "thiserror 2.0.17", ] [[package]] name = "light-sparse-merkle-tree" -version = "0.1.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4251e79b6c63f4946572dcfd7623680ad0f9e0efe1a761a944733333c5645063" dependencies = [ - "light-hasher", - "light-indexed-array", + "light-hasher 5.0.0", + "light-indexed-array 0.3.0", "num-bigint 0.4.6", "num-traits", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] name = "light-system-program-anchor" -version = "1.2.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1214b57abe1d89139f7ca632b66d4a8fc0e89945e781291a5cb12eb16de49cf3" dependencies = [ "account-compression", "aligned-sized", "anchor-lang", - "light-compressed-account", - "light-zero-copy", + "light-compressed-account 0.3.0", + "light-zero-copy 0.2.0", "zerocopy", ] [[package]] name = "light-verifier" -version = "2.0.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85fdf317ec3cfcd3a8e6556a5b5e7fbcc207a40264700f9a5271876838f26f58" dependencies = [ "groth16-solana", - "light-compressed-account", - "solana-msg", - "solana-program-error", - "thiserror 2.0.12", + "light-compressed-account 0.3.0", + "thiserror 2.0.17", ] [[package]] name = "light-zero-copy" version = "0.2.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a34d759f65547a6540db7047f38f4cb2c3f01658deca95a1dd06f26b578de947" dependencies = [ "solana-program-error", - "thiserror 2.0.12", + "thiserror 2.0.17", "zerocopy", ] +[[package]] +name = "light-zero-copy" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8862f463792fd60ae8f5dc418150c16213e302e19d54fba0694cf8515be5ff" +dependencies = [ + "light-zero-copy-derive", + "zerocopy", +] + +[[package]] +name = "light-zero-copy-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8af086d52100b3cab1f2993b146adc7a69fa6aaa878ae4c19514c77c50304379" +dependencies = [ + "lazy_static", + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "linux-raw-sys" -version = "0.9.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "litemap" -version = "0.8.0" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" + +[[package]] +name = "litesvm" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +checksum = "23bca37ac374948b348e29c74b324dc36f18bbbd1ccf80e2046d967521cbd143" +dependencies = [ + "agave-feature-set", + "agave-precompiles", + "agave-reserved-account-keys", + "ansi_term", + "bincode", + "indexmap 2.12.1", + "itertools 0.14.0", + "log", + "solana-account", + "solana-address-lookup-table-interface", + "solana-bpf-loader-program", + "solana-builtins", + "solana-clock", + "solana-compute-budget", + "solana-compute-budget-instruction", + "solana-epoch-rewards", + "solana-epoch-schedule", + "solana-fee", + "solana-fee-structure", + "solana-hash", + "solana-instruction", + "solana-instructions-sysvar", + "solana-keypair", + "solana-last-restart-slot", + "solana-loader-v3-interface", + "solana-loader-v4-interface", + "solana-log-collector", + "solana-message", + "solana-native-token 3.0.0", + "solana-nonce", + "solana-nonce-account", + "solana-precompile-error", + "solana-program-error", + "solana-program-runtime", + "solana-pubkey", + "solana-rent", + "solana-sdk-ids", + "solana-sha256-hasher", + "solana-signature", + "solana-signer", + "solana-slot-hashes", + "solana-slot-history", + "solana-stake-interface", + "solana-svm-callback", + "solana-svm-transaction", + "solana-system-interface", + "solana-system-program", + "solana-sysvar", + "solana-sysvar-id", + "solana-timings", + "solana-transaction", + "solana-transaction-context", + "solana-transaction-error", + "solana-vote-program", + "thiserror 2.0.17", +] [[package]] name = "lock_api" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" dependencies = [ - "autocfg", "scopeguard", ] [[package]] name = "log" -version = "0.4.27" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" + +[[package]] +name = "lru" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" +dependencies = [ + "hashbrown 0.12.3", +] [[package]] name = "lru-slab" @@ -3487,9 +3883,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.4" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] name = "memmap2" @@ -3500,6 +3896,15 @@ dependencies = [ "libc", ] +[[package]] +name = "memmap2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "744133e4a0e0a658e1374cf3bf8e415c4052a15a111acd372764c55b4177d490" +dependencies = [ + "libc", +] + [[package]] name = "memoffset" version = "0.9.1" @@ -3545,22 +3950,23 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", + "simd-adler32", ] [[package]] name = "mio" -version = "1.0.4" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.59.0", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.61.2", ] [[package]] @@ -3630,11 +4036,11 @@ dependencies = [ [[package]] name = "nix" -version = "0.29.0" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" +checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "cfg-if", "cfg_aliases", "libc", @@ -3729,7 +4135,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -3779,29 +4185,30 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" dependencies = [ - "hermit-abi 0.5.1", + "hermit-abi 0.5.2", "libc", ] [[package]] name = "num_enum" -version = "0.7.3" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" dependencies = [ "num_enum_derive", + "rustversion", ] [[package]] name = "num_enum_derive" -version = "0.7.3" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" dependencies = [ - "proc-macro-crate 3.3.0", + "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -3810,15 +4217,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" -[[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" @@ -3842,11 +4240,11 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.73" +version = "0.10.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" +checksum = "08838db121398ad17ab8531ce9de97b244589089e290a384c900cb9ff7434328" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "cfg-if", "foreign-types", "libc", @@ -3863,7 +4261,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -3874,18 +4272,18 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-src" -version = "300.5.0+3.5.0" +version = "300.5.4+3.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8ce546f549326b0e6052b649198487d91320875da901e7bd11a06d1ee3f9c2f" +checksum = "a507b3792995dae9b0df8a1c1e3771e8418b7c2d9f0baeba32e6fe8b06c7cb72" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.109" +version = "0.9.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" +checksum = "82cab2d520aa75e3c58898289429321eb788c3106963d0dc886ec7a5f4adc321" dependencies = [ "cc", "libc", @@ -3913,6 +4311,17 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "papergrid" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6978128c8b51d8f4080631ceb2302ab51e32cc6e8615f735ee2f83fd269ae3f1" +dependencies = [ + "bytecount", + "fnv", + "unicode-width", +] + [[package]] name = "parking" version = "2.2.1" @@ -3921,9 +4330,9 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" dependencies = [ "lock_api", "parking_lot_core", @@ -3931,15 +4340,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.11" +version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.5.18", "smallvec", - "windows-targets 0.52.6", + "windows-link", ] [[package]] @@ -3968,9 +4377,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" @@ -3983,10 +4392,26 @@ dependencies = [ [[package]] name = "photon-api" -version = "0.50.0" -source = "git+https://github.com/lightprotocol/light-protocol?rev=128b191ba#128b191baa2005ecd98c9f7b0b5e49fa13f61236" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "503b549aede7d9f35752046b9a32d8dfc1c7acec3c304a012c8b3134d5b98e37" dependencies = [ - "reqwest 0.12.19", + "reqwest 0.12.26", + "serde", + "serde_derive", + "serde_json", + "serde_with", + "url", + "uuid", +] + +[[package]] +name = "photon-api" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5286d477f39ef56635e3175cd22030233c76f1ced2d6dec632d105c54cc94543" +dependencies = [ + "reqwest 0.12.26", "serde", "serde_derive", "serde_json", @@ -4012,7 +4437,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -4025,7 +4450,24 @@ checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" name = "pin-utils" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pinocchio" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b971851087bc3699b001954ad02389d50c41405ece3548cbcafc88b3e20017a" + +[[package]] +name = "pinocchio-pubkey" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb0225638cadcbebae8932cb7f49cb5da7c15c21beb19f048f05a5ca7d93f065" +dependencies = [ + "five8_const", + "pinocchio", + "sha2-const-stable", +] [[package]] name = "pkg-config" @@ -4047,15 +4489,15 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "potential_utf" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" dependencies = [ "zerovec", ] @@ -4116,11 +4558,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" +checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" dependencies = [ - "toml_edit", + "toml_edit 0.23.10+spec-1.0.0", ] [[package]] @@ -4142,13 +4584,14 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", + "syn 2.0.111", ] [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" dependencies = [ "unicode-ident", ] @@ -4170,29 +4613,29 @@ checksum = "9e2e25ee72f5b24d773cae88422baddefff7714f97aab68d96fe2b6fc4a28fb2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] name = "quanta" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bd1fe6824cea6538803de3ff1bc0cf3949024db3d43c9643024bfb33a807c0e" +checksum = "f3ab5a9d756f0d97bdc89019bd2e4ea098cf9cde50ee7564dde6b81ccc8f06c7" dependencies = [ "crossbeam-utils", "libc", "once_cell", "raw-cpuid", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi 0.11.1+wasi-snapshot-preview1", "web-sys", "winapi", ] [[package]] name = "quinn" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" dependencies = [ "bytes", "cfg_aliases", @@ -4200,9 +4643,9 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash", - "rustls 0.23.27", - "socket2", - "thiserror 2.0.12", + "rustls 0.23.35", + "socket2 0.6.1", + "thiserror 2.0.17", "tokio", "tracing", "web-time", @@ -4210,22 +4653,22 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.12" +version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" dependencies = [ "bytes", "fastbloom", - "getrandom 0.3.3", + "getrandom 0.3.4", "lru-slab", - "rand 0.9.1", + "rand 0.9.2", "ring", "rustc-hash", - "rustls 0.23.27", + "rustls 0.23.35", "rustls-pki-types", "rustls-platform-verifier", "slab", - "thiserror 2.0.12", + "thiserror 2.0.17", "tinyvec", "tracing", "web-time", @@ -4233,32 +4676,32 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.12" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee4e529991f949c5e25755532370b8af5d114acae52326361d68d47af64aa842" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2", + "socket2 0.6.1", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "quote" -version = "1.0.40" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" dependencies = [ "proc-macro2", ] [[package]] name = "r-efi" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "radium" @@ -4292,9 +4735,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.3", @@ -4354,7 +4797,7 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", ] [[package]] @@ -4377,18 +4820,18 @@ dependencies = [ [[package]] name = "raw-cpuid" -version = "11.5.0" +version = "11.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" +checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", ] [[package]] name = "rayon" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" dependencies = [ "either", "rayon-core", @@ -4396,9 +4839,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -4406,18 +4849,47 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.12" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.10.0", +] + +[[package]] +name = "redox_syscall" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec96166dafa0886eb81fe1c0a388bece180fbef2135f97c1e2cf8302e74b43b5" +dependencies = [ + "bitflags 2.10.0", +] + +[[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 = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ - "bitflags 2.9.1", + "proc-macro2", + "quote", + "syn 2.0.111", ] [[package]] name = "regex" -version = "1.11.1" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" dependencies = [ "aho-corasick", "memchr", @@ -4427,9 +4899,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" dependencies = [ "aho-corasick", "memchr", @@ -4438,9 +4910,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "reqwest" @@ -4448,13 +4920,12 @@ version = "0.11.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" dependencies = [ - "async-compression", "base64 0.21.7", "bytes", "encoding_rs", "futures-core", "futures-util", - "h2 0.3.26", + "h2 0.3.27", "http 0.2.12", "http-body 0.4.6", "hyper 0.14.32", @@ -4464,7 +4935,6 @@ dependencies = [ "js-sys", "log", "mime", - "mime_guess", "native-tls", "once_cell", "percent-encoding", @@ -4479,7 +4949,6 @@ dependencies = [ "tokio", "tokio-native-tls", "tokio-rustls 0.24.1", - "tokio-util 0.7.15", "tower-service", "url", "wasm-bindgen", @@ -4491,32 +4960,33 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.19" +version = "0.12.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2f8e5513d63f2e5b386eb5106dc67eaf3f84e95258e210489136b8b92ad6119" +checksum = "3b4c14b2d9afca6a60277086b0cc6a6ae0b568f6f7916c943a8cdc79f8be240f" dependencies = [ "base64 0.22.1", "bytes", "encoding_rs", + "futures-channel", "futures-core", "futures-util", - "h2 0.4.10", - "http 1.3.1", + "h2 0.4.12", + "http 1.4.0", "http-body 1.0.1", "http-body-util", - "hyper 1.6.0", - "hyper-rustls 0.27.6", + "hyper 1.8.1", + "hyper-rustls 0.27.7", "hyper-tls 0.6.0", "hyper-util", - "ipnet", "js-sys", "log", "mime", "mime_guess", "native-tls", - "once_cell", "percent-encoding", "pin-project-lite", + "quinn", + "rustls 0.23.35", "rustls-pki-types", "serde", "serde_json", @@ -4524,6 +4994,7 @@ dependencies = [ "sync_wrapper 1.0.2", "tokio", "tokio-native-tls", + "tokio-rustls 0.26.4", "tower", "tower-http", "tower-service", @@ -4531,21 +5002,22 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", + "webpki-roots 1.0.4", ] [[package]] name = "reqwest-middleware" -version = "0.2.5" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a735987236a8e238bf0296c7e351b999c188ccc11477f311b82b55c93984216" +checksum = "57f17d28a6e6acfe1733fe24bcd30774d13bffa4b8a22535b4c8c98423088d4e" dependencies = [ "anyhow", "async-trait", - "http 0.2.12", - "reqwest 0.11.27", + "http 1.4.0", + "reqwest 0.12.26", "serde", - "task-local-extensions", "thiserror 1.0.69", + "tower-service", ] [[package]] @@ -4564,9 +5036,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.24" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] name = "rustc-hash" @@ -4594,15 +5066,15 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.7" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -4619,28 +5091,28 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.27" +version = "0.23.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "730944ca083c1c233a75c09f199e973ca499344a2b7ba9e755c457e86fb4a321" +checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f" dependencies = [ "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.103.3", + "rustls-webpki 0.103.8", "subtle", "zeroize", ] [[package]] name = "rustls-native-certs" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" +checksum = "9980d917ebb0c0536119ba501e90834767bffc3d60641457fd84a1f3fd337923" dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.2.0", + "security-framework 3.5.1", ] [[package]] @@ -4654,9 +5126,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.12.0" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +checksum = "21e6f2ab2928ca4291b86736a8bd920a277a399bba1589409d72154ff87c1282" dependencies = [ "web-time", "zeroize", @@ -4664,23 +5136,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 0.10.1", "core-foundation-sys", "jni", "log", "once_cell", - "rustls 0.23.27", + "rustls 0.23.35", "rustls-native-certs", "rustls-platform-verifier-android", - "rustls-webpki 0.103.3", - "security-framework 3.2.0", + "rustls-webpki 0.103.8", + "security-framework 3.5.1", "security-framework-sys", - "webpki-root-certs 0.26.11", - "windows-sys 0.59.0", + "webpki-root-certs", + "windows-sys 0.61.2", ] [[package]] @@ -4701,9 +5173,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.3" +version = "0.103.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" +checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" dependencies = [ "ring", "rustls-pki-types", @@ -4712,9 +5184,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" @@ -4722,15 +5194,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" @@ -4742,11 +5205,35 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", +] + +[[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.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9558e172d4e8533736ba97870c4b2cd63f84b382a3d6eb063da41b91cce17289" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", ] [[package]] @@ -4771,7 +5258,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -4780,11 +5267,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.2.0" +version = "3.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" +checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "core-foundation 0.10.1", "core-foundation-sys", "libc", @@ -4793,9 +5280,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.14.0" +version = "2.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" dependencies = [ "core-foundation-sys", "libc", @@ -4803,9 +5290,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" [[package]] name = "seqlock" @@ -4818,10 +5305,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", ] @@ -4836,41 +5324,52 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.17" +version = "0.11.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96" +checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" dependencies = [ "serde", + "serde_core", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ "itoa", "memchr", "ryu", "serde", + "serde_core", ] [[package]] name = "serde_spanned" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" dependencies = [ "serde", ] @@ -4889,17 +5388,18 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.12.0" +version = "3.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" +checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.9.0", - "serde", - "serde_derive", + "indexmap 2.12.1", + "schemars 0.9.0", + "schemars 1.1.0", + "serde_core", "serde_json", "serde_with_macros", "time", @@ -4907,14 +5407,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.12.0" +version = "3.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" +checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -4952,6 +5452,12 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "sha2-const-stable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f179d4e11094a893b82fff208f74d448a7512f99f5a0acbd5c679b705f83ed9" + [[package]] name = "sha3" version = "0.10.8" @@ -4989,9 +5495,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.5" +version = "1.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" +checksum = "7664a098b8e616bdfcc2dc0e9ac44eb231eedf41db4e9fe95d8d32ec728dedad" dependencies = [ "libc", ] @@ -5002,6 +5508,12 @@ version = "1.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +[[package]] +name = "simd-adler32" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" + [[package]] name = "siphasher" version = "0.3.11" @@ -5026,18 +5538,15 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.9" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "smallvec" -version = "1.15.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "socket2" @@ -5049,6 +5558,16 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "socket2" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + [[package]] name = "solana-account" version = "2.2.1" @@ -5067,11 +5586,54 @@ dependencies = [ "solana-sysvar", ] +[[package]] +name = "solana-account-decoder" +version = "2.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba71c97fa4d85ce4a1e0e79044ad0406c419382be598c800202903a7688ce71a" +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 8.0.0", + "spl-token-2022 8.0.1", + "spl-token-group-interface 0.6.0", + "spl-token-metadata-interface 0.7.0", + "thiserror 2.0.17", + "zstd", +] + [[package]] name = "solana-account-decoder-client-types" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c5d7d0f1581d98a869f2569122ded67e0735f3780d787b3e7653bdcd1708a2" +checksum = "5519e8343325b707f17fbed54fcefb325131b692506d0af9e08a539d15e4f8cf" dependencies = [ "base64 0.22.1", "bs58", @@ -5085,9 +5647,9 @@ dependencies = [ [[package]] name = "solana-account-info" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c17d606a298a205fae325489fbed88ee6dc4463c111672172327e741c8905d" +checksum = "c8f5152a288ef1912300fc6efa6c2d1f9bb55d9398eb6c72326360b8063987da" dependencies = [ "bincode", "serde", @@ -5098,11 +5660,12 @@ dependencies = [ [[package]] name = "solana-accounts-db" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611e285c3d1c7ea383498a7a55d462a475614af9e3201fa9bf78a18b9f49ad67" +checksum = "dbbe35141711500d113dfc7aa79eb250c4458f04e759a67ba4bffc3e6cddc402" dependencies = [ - "ahash", + "agave-io-uring", + "ahash 0.8.12", "bincode", "blake3", "bv", @@ -5110,14 +5673,13 @@ dependencies = [ "bytemuck_derive", "bzip2", "crossbeam-channel", - "dashmap 5.5.3", - "index_list", - "indexmap 2.9.0", + "dashmap", + "indexmap 2.12.1", + "io-uring", "itertools 0.12.1", - "lazy_static", "log", "lz4", - "memmap2", + "memmap2 0.9.9", "modular-bitfield", "num_cpus", "num_enum", @@ -5126,24 +5688,39 @@ dependencies = [ "seqlock", "serde", "serde_derive", + "slab", "smallvec", + "solana-account", + "solana-address-lookup-table-interface", "solana-bucket-map", "solana-clock", + "solana-epoch-schedule", + "solana-fee-calculator", + "solana-genesis-config", "solana-hash", - "solana-inline-spl", "solana-lattice-hash", "solana-measure", + "solana-message", "solana-metrics", "solana-nohash-hasher", "solana-pubkey", "solana-rayon-threadlimit", - "solana-sdk", + "solana-rent-collector", + "solana-reward-info", + "solana-sha256-hasher", + "solana-slot-hashes", "solana-svm-transaction", + "solana-system-interface", + "solana-sysvar", + "solana-time-utils", + "solana-transaction", "solana-transaction-context", + "solana-transaction-error", + "spl-generic-token", "static_assertions", "tar", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] @@ -5163,31 +5740,6 @@ dependencies = [ "solana-slot-hashes", ] -[[package]] -name = "solana-address-lookup-table-program" -version = "2.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20ba90bbe1e9a7354763520ae5fa5f610712250a65891cf54d490b1fcc486244" -dependencies = [ - "agave-feature-set", - "bincode", - "bytemuck", - "log", - "num-derive", - "num-traits", - "solana-address-lookup-table-interface", - "solana-bincode", - "solana-clock", - "solana-instruction", - "solana-log-collector", - "solana-packet", - "solana-program-runtime", - "solana-pubkey", - "solana-system-interface", - "solana-transaction-context", - "thiserror 2.0.12", -] - [[package]] name = "solana-atomic-u64" version = "2.2.1" @@ -5199,52 +5751,78 @@ dependencies = [ [[package]] name = "solana-banks-client" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f32510172470e5d3c2c4fbb125024fe715bb903a368df0085a1098f3b693bd" +checksum = "68548570c38a021c724b5aa0112f45a54bdf7ff1b041a042848e034a95a96994" dependencies = [ - "borsh 1.5.7", + "borsh 1.6.0", "futures", + "solana-account", "solana-banks-interface", - "solana-program", - "solana-sdk", + "solana-clock", + "solana-commitment-config", + "solana-hash", + "solana-message", + "solana-program-pack", + "solana-pubkey", + "solana-rent", + "solana-signature", + "solana-sysvar", + "solana-transaction", "solana-transaction-context", + "solana-transaction-error", "tarpc", - "thiserror 2.0.12", + "thiserror 2.0.17", "tokio", "tokio-serde", ] [[package]] name = "solana-banks-interface" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d07549f0e8d1dbe90117f1595ed77539e3766d3203b3b5c47f999a80c3c754e" +checksum = "a6d90edc435bf488ef7abed4dcb1f94fa1970102cbabb25688f58417fd948286" dependencies = [ "serde", "serde_derive", - "solana-sdk", + "solana-account", + "solana-clock", + "solana-commitment-config", + "solana-hash", + "solana-message", + "solana-pubkey", + "solana-signature", + "solana-transaction", "solana-transaction-context", + "solana-transaction-error", "tarpc", ] [[package]] name = "solana-banks-server" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb80a4350984a3c140b99d444e2b92ee8decac88a8def73cd0ca02e655eb3463" +checksum = "36080e4a97afe47f8b56356a0cabc3b1dadfb09efb4ea8c44d79d19a4e7d6534" dependencies = [ "agave-feature-set", "bincode", "crossbeam-channel", "futures", + "solana-account", "solana-banks-interface", "solana-client", + "solana-clock", + "solana-commitment-config", + "solana-hash", + "solana-message", + "solana-pubkey", "solana-runtime", "solana-runtime-transaction", - "solana-sdk", "solana-send-transaction-service", + "solana-signature", "solana-svm", + "solana-transaction", + "solana-transaction-error", "tarpc", "tokio", "tokio-serde", @@ -5296,7 +5874,7 @@ dependencies = [ "ark-serialize 0.4.2", "bytemuck", "solana-define-syscall", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] @@ -5306,19 +5884,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "718333bcd0a1a7aed6655aa66bef8d7fb047944922b2d3a18f49cbc13e73d004" dependencies = [ "borsh 0.10.4", - "borsh 1.5.7", + "borsh 1.6.0", ] [[package]] name = "solana-bpf-loader-program" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1732daafbfb0b265998fb55ec223680b95a241eea9209c76427a55491bf4903" +checksum = "b5aec57dcd80d0f6879956cad28854a6eebaed6b346ce56908ea01a9f36ab259" dependencies = [ - "agave-feature-set", - "agave-precompiles", "bincode", "libsecp256k1", + "num-traits", "qualifier_attr", "scopeguard", "solana-account", @@ -5328,7 +5905,6 @@ dependencies = [ "solana-blake3-hasher", "solana-bn254", "solana-clock", - "solana-compute-budget", "solana-cpi", "solana-curve25519", "solana-hash", @@ -5341,7 +5917,6 @@ dependencies = [ "solana-packet", "solana-poseidon", "solana-program-entrypoint", - "solana-program-memory", "solana-program-runtime", "solana-pubkey", "solana-sbpf", @@ -5349,26 +5924,26 @@ dependencies = [ "solana-secp256k1-recover", "solana-sha256-hasher", "solana-stable-layout", + "solana-svm-feature-set", "solana-system-interface", "solana-sysvar", "solana-sysvar-id", "solana-timings", "solana-transaction-context", "solana-type-overrides", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] name = "solana-bucket-map" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063cbccec587c959c8381b6f334588b512e31d44afe993020f5e2999572f8dcd" +checksum = "e067a30c43dc66f300584034ce1526da882d3100d45a10613a4e554b3e1e3937" dependencies = [ "bv", "bytemuck", "bytemuck_derive", - "log", - "memmap2", + "memmap2 0.9.9", "modular-bitfield", "num_enum", "rand 0.8.5", @@ -5380,15 +5955,14 @@ dependencies = [ [[package]] name = "solana-builtins" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31cf8956aa23f0837856697c26f74aa76397c8536bce886837d8cf59c06e140a" +checksum = "6d61a31b63b52b0d268cbcd56c76f50314867d7f8e07a0f2c62ee7c9886e07b2" dependencies = [ "agave-feature-set", - "solana-address-lookup-table-program", "solana-bpf-loader-program", "solana-compute-budget-program", - "solana-config-program", + "solana-hash", "solana-loader-v4-program", "solana-program-runtime", "solana-pubkey", @@ -5402,19 +5976,15 @@ dependencies = [ [[package]] name = "solana-builtins-default-costs" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b17a9aaf602cc61c84932675690fa61d711b5a4879789b74a3162ffcbd255177" +checksum = "2ca69a299a6c969b18ea381a02b40c9e4dda04b2af0d15a007c1184c82163bbb" dependencies = [ "agave-feature-set", - "ahash", - "lazy_static", + "ahash 0.8.12", "log", - "qualifier_attr", - "solana-address-lookup-table-program", "solana-bpf-loader-program", "solana-compute-budget-program", - "solana-config-program", "solana-loader-v4-program", "solana-pubkey", "solana-sdk-ids", @@ -5425,16 +5995,16 @@ dependencies = [ [[package]] name = "solana-client" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32a6ae5a74f13425eb0f8503b9a2c0bf59581e98deeee2d0555dfe6f05502c9" +checksum = "cc55d1f263e0be4127daf33378d313ea0977f9ffd3fba50fa544ca26722fc695" dependencies = [ "async-trait", "bincode", - "dashmap 5.5.3", + "dashmap", "futures", "futures-util", - "indexmap 2.9.0", + "indexmap 2.12.1", "indicatif", "log", "quinn", @@ -5465,7 +6035,7 @@ dependencies = [ "solana-transaction", "solana-transaction-error", "solana-udp-client", - "thiserror 2.0.12", + "thiserror 2.0.17", "tokio", ] @@ -5492,9 +6062,9 @@ dependencies = [ [[package]] name = "solana-clock" -version = "2.2.1" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c2177a1b9fe8326004f1151a5acd124420b737811080b1035df31349e4d892" +checksum = "1bb482ab70fced82ad3d7d3d87be33d466a3498eb8aa856434ff3c0dfc2e2e31" dependencies = [ "serde", "serde_derive", @@ -5526,19 +6096,19 @@ dependencies = [ [[package]] name = "solana-compute-budget" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7da7ab5302549d9c6bf399c69a7072abeca78d252d9b7a146be34bf6f8b51e6" +checksum = "9f4fc63bc2276a1618ca0bfc609da7448534ecb43a1cb387cdf9eaa2dc7bc272" dependencies = [ "solana-fee-structure", - "solana-program-entrypoint", + "solana-program-runtime", ] [[package]] name = "solana-compute-budget-instruction" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73d8b8697c1cd4e183999162a7c1cb7d7f5674f9e802f97d5d2e439bd7f683f0" +checksum = "503d94430f6d3c5ac1e1fa6a342c1c714d5b03c800999e7b6cf235298f0b5341" dependencies = [ "agave-feature-set", "log", @@ -5552,16 +6122,16 @@ dependencies = [ "solana-sdk-ids", "solana-svm-transaction", "solana-transaction-error", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] name = "solana-compute-budget-interface" -version = "2.2.1" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a5df17b195d312b66dccdde9beec6709766d8230cb4718c4c08854f780d0309" +checksum = "8432d2c4c22d0499aa06d62e4f7e333f81777b3d7c96050ae9e5cb71a8c3aee4" dependencies = [ - "borsh 1.5.7", + "borsh 1.6.0", "serde", "serde_derive", "solana-instruction", @@ -5570,71 +6140,57 @@ dependencies = [ [[package]] name = "solana-compute-budget-program" -version = "2.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf5179f59ab76e2441cfc10e185185326dd4f9389c7acb140b286128f8721c26" -dependencies = [ - "qualifier_attr", - "solana-program-runtime", -] - -[[package]] -name = "solana-config-program" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4072ff53d982deb87be1c15136b0aa9ead472f15eaefdd23d8174d49371e0112" +checksum = "072b02beed1862c6b7b7a8a699379594c4470a9371c711856a0a3c266dcf57e5" dependencies = [ - "bincode", - "chrono", - "serde", - "serde_derive", - "solana-account", - "solana-bincode", - "solana-instruction", - "solana-log-collector", - "solana-packet", "solana-program-runtime", - "solana-pubkey", - "solana-sdk-ids", - "solana-short-vec", - "solana-stake-interface", - "solana-system-interface", - "solana-transaction-context", +] + +[[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.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240bc217ca05f3e1d1d88f1cfda14b785a02288a630419e4a0ecd6b4fa5094b7" +checksum = "45c1cff5ebb26aefff52f1a8e476de70ec1683f8cc6e4a8c86b615842d91f436" dependencies = [ "async-trait", "bincode", "crossbeam-channel", "futures-util", - "indexmap 2.9.0", + "indexmap 2.12.1", "log", "rand 0.8.5", "rayon", "solana-keypair", "solana-measure", "solana-metrics", - "solana-net-utils", "solana-time-utils", "solana-transaction-error", - "thiserror 2.0.12", + "thiserror 2.0.17", "tokio", ] [[package]] name = "solana-cost-model" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb844530eafa481dc45f434e1684b09fcb594b3a72896caa969ef53df1ed653" +checksum = "b24b35813c678ed40ca91f989a3c9e1780e6aef0139e15731785bca1189443c3" dependencies = [ "agave-feature-set", - "ahash", - "lazy_static", + "ahash 0.8.12", "log", "solana-bincode", "solana-borsh", @@ -5671,16 +6227,16 @@ dependencies = [ [[package]] name = "solana-curve25519" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0cf33066cc9a741ff4cc4d171a4a816ea06f9826516b7360d997179a1b3244f" +checksum = "eae4261b9a8613d10e77ac831a8fa60b6fa52b9b103df46d641deff9f9812a23" dependencies = [ "bytemuck", "bytemuck_derive", "curve25519-dalek 4.1.3", "solana-define-syscall", "subtle", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] @@ -5694,9 +6250,9 @@ dependencies = [ [[package]] name = "solana-define-syscall" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf784bb2cb3e02cac9801813c30187344228d2ae952534902108f6150573a33d" +checksum = "2ae3e2abcf541c8122eafe9a625d4d194b4023c20adde1e251f94e056bb1aee2" [[package]] name = "solana-derivation-path" @@ -5711,9 +6267,9 @@ dependencies = [ [[package]] name = "solana-ed25519-program" -version = "2.2.2" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d0fc717048fdbe5d2ee7d673d73e6a30a094002f4a29ca7630ac01b6bddec04" +checksum = "a1feafa1691ea3ae588f99056f4bdd1293212c7ece28243d7da257c443e84753" dependencies = [ "bytemuck", "bytemuck_derive", @@ -5790,14 +6346,14 @@ dependencies = [ "solana-pubkey", "solana-sdk-ids", "solana-system-interface", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] name = "solana-feature-gate-interface" -version = "2.2.1" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f9c7fbf3e58b64a667c5f35e90af580538a95daea7001ff7806c0662d301bdf" +checksum = "43f5c5382b449e8e4e3016fb05e418c53d57782d8b5c30aa372fc265654b956d" dependencies = [ "bincode", "serde", @@ -5818,7 +6374,7 @@ version = "2.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93b93971e289d6425f88e6e3cb6668c4b05df78b3c518c249be55ced8efd6b6d" dependencies = [ - "ahash", + "ahash 0.8.12", "lazy_static", "solana-epoch-schedule", "solana-hash", @@ -5826,21 +6382,11 @@ dependencies = [ "solana-sha256-hasher", ] -[[package]] -name = "solana-feature-set-interface" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02007757246e40f10aa936dae4fa27efbf8dbd6a59575a12ccc802c1aea6e708" -dependencies = [ - "ahash", - "solana-pubkey", -] - [[package]] name = "solana-fee" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c2ee19fe65b4564b0bf7436f5a609871ddc8fc32b8507c648e46b670052819" +checksum = "16beda37597046b1edd1cea6fa7caaed033c091f99ec783fe59c82828bc2adb8" dependencies = [ "agave-feature-set", "solana-fee-structure", @@ -5860,25 +6406,25 @@ dependencies = [ [[package]] name = "solana-fee-structure" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f45f94a88efdb512805563181dfa1c85c60a21b6e6d602bf24a2ea88f9399d6e" +checksum = "33adf673581c38e810bf618f745bf31b683a0a4a4377682e6aaac5d9a058dd4e" dependencies = [ "serde", "serde_derive", "solana-message", - "solana-native-token", + "solana-native-token 2.3.0", ] [[package]] name = "solana-genesis-config" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "968dabd2b92d57131473eddbd475339da530e14f54397386abf303de3a2595a2" +checksum = "b3725085d47b96d37fef07a29d78d2787fc89a0b9004c66eed7753d1e554989f" dependencies = [ "bincode", "chrono", - "memmap2", + "memmap2 0.5.10", "serde", "serde_derive", "solana-account", @@ -5890,7 +6436,6 @@ dependencies = [ "solana-inflation", "solana-keypair", "solana-logger", - "solana-native-token", "solana-poh-config", "solana-pubkey", "solana-rent", @@ -5913,14 +6458,14 @@ dependencies = [ [[package]] name = "solana-hash" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf7bcb14392900fe02e4e34e90234fbf0c673d4e327888410ba99fa2ba0f4e99" +checksum = "b5b96e9f0300fa287b545613f007dfe20043d7812bee255f418c1eb649c93b63" dependencies = [ - "borsh 1.5.7", - "bs58", + "borsh 1.6.0", "bytemuck", "bytemuck_derive", + "five8", "js-sys", "serde", "serde_derive", @@ -5939,29 +6484,20 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "solana-inline-spl" -version = "2.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaac98c150932bba4bfbef5b52fae9ef445f767d66ded2f1398382149bc94f69" -dependencies = [ - "bytemuck", - "solana-pubkey", -] - [[package]] name = "solana-instruction" -version = "2.2.1" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce496a475e5062ba5de97215ab39d9c358f9c9df4bb7f3a45a1f1a8bd9065ed" +checksum = "bab5682934bd1f65f8d2c16f21cb532526fcc1a09f796e2cacdb091eee5774ad" dependencies = [ "bincode", - "borsh 1.5.7", + "borsh 1.6.0", "getrandom 0.2.16", "js-sys", "num-traits", "serde", "serde_derive", + "serde_json", "solana-define-syscall", "solana-pubkey", "wasm-bindgen", @@ -5969,11 +6505,11 @@ dependencies = [ [[package]] name = "solana-instructions-sysvar" -version = "2.2.1" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "427f2d0d6dc0bb49f16cef5e7f975180d2e80aab9bdd3b2af68e2d029ec63f43" +checksum = "e0e85a6fad5c2d0c4f5b91d34b8ca47118fc593af706e523cdbedf846a954f57" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "solana-account-info", "solana-instruction", "solana-program-error", @@ -5998,13 +6534,13 @@ dependencies = [ [[package]] name = "solana-keypair" -version = "2.2.1" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dbb7042c2e0c561afa07242b2099d55c57bd1b1da3b6476932197d84e15e3e4" +checksum = "bd3f04aa1a05c535e93e121a95f66e7dcccf57e007282e8255535d24bf1e98bb" dependencies = [ - "bs58", "ed25519-dalek", "ed25519-dalek-bip32", + "five8", "rand 0.7.3", "solana-derivation-path", "solana-pubkey", @@ -6030,9 +6566,9 @@ dependencies = [ [[package]] name = "solana-lattice-hash" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45cf3899226bc7b729b13d7f65e34120eb5bc9b83b1d2aadfdcbd84473db9030" +checksum = "1c6effe24897d8e02484ad87272634028d096f0e061b66b298f8df5031ff7fc0" dependencies = [ "base64 0.22.1", "blake3", @@ -6056,9 +6592,9 @@ dependencies = [ [[package]] name = "solana-loader-v3-interface" -version = "3.0.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4be76cfa9afd84ca2f35ebc09f0da0f0092935ccdac0595d98447f259538c2" +checksum = "6f7162a05b8b0773156b443bccd674ea78bb9aa406325b467ea78c06c99a63a2" dependencies = [ "serde", "serde_bytes", @@ -6086,16 +6622,15 @@ dependencies = [ [[package]] name = "solana-loader-v4-program" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae52276c26e48d494affc7730c2c1e837ae794519e48ab6b22ed3ccf4751f32" +checksum = "a6ab01855d851fa2fb6034b0d48de33d77d5c5f5fb4b0353d8e4a934cc03d48a" dependencies = [ "log", "qualifier_attr", "solana-account", "solana-bincode", "solana-bpf-loader-program", - "solana-compute-budget", "solana-instruction", "solana-loader-v3-interface", "solana-loader-v4-interface", @@ -6112,9 +6647,9 @@ dependencies = [ [[package]] name = "solana-log-collector" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45d5713845622a6059a172ea390c2a7f7eb50355cfb0cfa18a38a18ecb39c2f1" +checksum = "9d945b1cf5bf7cbd6f5b78795beda7376370c827640df43bb2a1c17b492dc106" dependencies = [ "log", ] @@ -6134,15 +6669,15 @@ dependencies = [ [[package]] name = "solana-measure" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9566e754d9b9bcdee7b4aae38e425d47abf8e4f00057208868cb3ab9bee7feae" +checksum = "11dcd67cd2ae6065e494b64e861e0498d046d95a61cbbf1ae3d58be1ea0f42ed" [[package]] name = "solana-message" -version = "2.2.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "268486ba8a294ed22a4d7c1ec05f540c3dbe71cfa7c6c54b6d4d13668d895678" +checksum = "1796aabce376ff74bf89b78d268fa5e683d7d7a96a0a4e4813ec34de49d5314b" dependencies = [ "bincode", "blake3", @@ -6163,20 +6698,18 @@ dependencies = [ [[package]] name = "solana-metrics" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02311660a407de41df2d5ef4e4118dac7b51cfe81a52362314ea51b091ee4150" +checksum = "0375159d8460f423d39e5103dcff6e07796a5ec1850ee1fcfacfd2482a8f34b5" dependencies = [ "crossbeam-channel", "gethostname", - "lazy_static", "log", - "reqwest 0.11.27", - "solana-clock", + "reqwest 0.12.26", "solana-cluster-type", "solana-sha256-hasher", "solana-time-utils", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] @@ -6190,27 +6723,32 @@ dependencies = [ [[package]] name = "solana-native-token" -version = "2.2.1" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61515b880c36974053dd499c0510066783f0cc6ac17def0c7ef2a244874cf4a9" + +[[package]] +name = "solana-native-token" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e9de00960197412e4be3902a6cd35e60817c511137aca6c34c66cd5d4017ec" +checksum = "ae8dd4c280dca9d046139eb5b7a5ac9ad10403fbd64964c7d7571214950d758f" [[package]] name = "solana-net-utils" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c27f0e0bbb972456ed255f81135378ecff3a380252ced7274fa965461ab99977" +checksum = "d7a9e831d0f09bd92135d48c5bc79071bb59c0537b9459f1b4dec17ecc0558fa" dependencies = [ "anyhow", "bincode", "bytes", - "crossbeam-channel", "itertools 0.12.1", "log", "nix", "rand 0.8.5", "serde", "serde_derive", - "socket2", + "socket2 0.5.10", "solana-serde", "tokio", "url", @@ -6248,6 +6786,15 @@ dependencies = [ "solana-sdk-ids", ] +[[package]] +name = "solana-nostd-keccak" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8ced70920435b1baa58f76e6f84bbc1110ddd1d6161ec76b6d731ae8431e9c4" +dependencies = [ + "sha3", +] + [[package]] name = "solana-offchain-message" version = "2.2.1" @@ -6271,7 +6818,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "004f2d2daf407b3ec1a1ca5ec34b3ccdfd6866dd2d3c7d0715004a96e4b6d127" dependencies = [ "bincode", - "bitflags 2.9.1", + "bitflags 2.10.0", "cfg_eval", "serde", "serde_derive", @@ -6280,18 +6827,18 @@ dependencies = [ [[package]] name = "solana-perf" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97222a3fda48570754ce114e43ca56af34741098c357cb8d3cb6695751e60330" +checksum = "37192c0be5c222ca49dbc5667288c5a8bb14837051dd98e541ee4dad160a5da9" dependencies = [ - "ahash", + "ahash 0.8.12", "bincode", "bv", + "bytes", "caps", "curve25519-dalek 4.1.3", "dlopen2", "fnv", - "lazy_static", "libc", "log", "nix", @@ -6322,21 +6869,21 @@ dependencies = [ [[package]] name = "solana-poseidon" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a31fc6ac2590217b63ecab02f23df0d5a38ecaa3e69d7194f57a0f30645e9d9" +checksum = "cbac4eb90016eeb1d37fa36e592d3a64421510c49666f81020736611c319faff" dependencies = [ "ark-bn254 0.4.0", "light-poseidon 0.2.0", "solana-define-syscall", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] name = "solana-precompile-error" -version = "2.2.1" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ff64daa2933c22982b323d88d0cdf693201ef56ac381ae16737fd5f579e07d6" +checksum = "4d87b2c1f5de77dfe2b175ee8dd318d196aaca4d0f66f02842f80c852811f9f8" dependencies = [ "num-traits", "solana-decode-error", @@ -6372,14 +6919,14 @@ dependencies = [ [[package]] name = "solana-program" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "586469467e93ceb79048f8d8e3a619bf61d05396ee7de95cb40280301a589d05" +checksum = "98eca145bd3545e2fbb07166e895370576e47a00a7d824e325390d33bf467210" dependencies = [ "bincode", "blake3", "borsh 0.10.4", - "borsh 1.5.7", + "borsh 1.6.0", "bs58", "bytemuck", "console_error_panic_hook", @@ -6421,7 +6968,7 @@ dependencies = [ "solana-loader-v4-interface", "solana-message", "solana-msg", - "solana-native-token", + "solana-native-token 2.3.0", "solana-nonce", "solana-program-entrypoint", "solana-program-error", @@ -6446,15 +6993,15 @@ dependencies = [ "solana-sysvar", "solana-sysvar-id", "solana-vote-interface", - "thiserror 2.0.12", + "thiserror 2.0.17", "wasm-bindgen", ] [[package]] name = "solana-program-entrypoint" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "473ffe73c68d93e9f2aa726ad2985fe52760052709aaab188100a42c618060ec" +checksum = "32ce041b1a0ed275290a5008ee1a4a6c48f5054c8a3d78d313c08958a06aedbd" dependencies = [ "solana-account-info", "solana-msg", @@ -6468,7 +7015,7 @@ version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ee2e0217d642e2ea4bee237f37bd61bb02aec60da3647c48ff88f6556ade775" dependencies = [ - "borsh 1.5.7", + "borsh 1.6.0", "num-traits", "serde", "serde_derive", @@ -6480,11 +7027,10 @@ dependencies = [ [[package]] name = "solana-program-memory" -version = "2.2.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b0268f6c89825fb634a34bd0c3b8fdaeaecfc3728be1d622a8ee6dd577b60d4" +checksum = "3a5426090c6f3fd6cfdc10685322fede9ca8e5af43cd6a59e98bfe4e91671712" dependencies = [ - "num-traits", "solana-define-syscall", ] @@ -6505,12 +7051,10 @@ dependencies = [ [[package]] name = "solana-program-runtime" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbbde7b061921dcff2bf8e0f1af120fa94f2fb0e3a1c2ec1e7900432bb72cbcd" +checksum = "5653001e07b657c9de6f0417cf9add1cf4325903732c480d415655e10cc86704" dependencies = [ - "agave-feature-set", - "agave-precompiles", "base64 0.22.1", "bincode", "enum-iterator", @@ -6521,34 +7065,38 @@ dependencies = [ "serde", "solana-account", "solana-clock", - "solana-compute-budget", "solana-epoch-rewards", "solana-epoch-schedule", + "solana-fee-structure", "solana-hash", "solana-instruction", "solana-last-restart-slot", "solana-log-collector", "solana-measure", "solana-metrics", + "solana-program-entrypoint", "solana-pubkey", "solana-rent", "solana-sbpf", "solana-sdk-ids", "solana-slot-hashes", "solana-stable-layout", + "solana-svm-callback", + "solana-svm-feature-set", + "solana-system-interface", "solana-sysvar", "solana-sysvar-id", "solana-timings", "solana-transaction-context", "solana-type-overrides", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] name = "solana-program-test" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd21a4746c9cda16b24158d9a9b15252adbea192e06be2c2b6c66ba39435c339" +checksum = "e3cff7a296c11ff2f02ff391eb4b5c641d09c8eed8a7a674d235b2ccb575b9ca" dependencies = [ "agave-feature-set", "assert_matches", @@ -6559,41 +7107,66 @@ dependencies = [ "crossbeam-channel", "log", "serde", + "solana-account", + "solana-account-info", "solana-accounts-db", "solana-banks-client", "solana-banks-interface", "solana-banks-server", - "solana-bpf-loader-program", + "solana-clock", + "solana-commitment-config", "solana-compute-budget", - "solana-inline-spl", + "solana-epoch-rewards", + "solana-epoch-schedule", + "solana-fee-calculator", + "solana-genesis-config", + "solana-hash", "solana-instruction", + "solana-keypair", + "solana-loader-v3-interface", "solana-log-collector", "solana-logger", + "solana-message", + "solana-msg", + "solana-native-token 2.3.0", + "solana-poh-config", + "solana-program-entrypoint", + "solana-program-error", "solana-program-runtime", + "solana-pubkey", + "solana-rent", "solana-runtime", "solana-sbpf", - "solana-sdk", "solana-sdk-ids", + "solana-signer", + "solana-stable-layout", + "solana-stake-interface", "solana-svm", + "solana-system-interface", + "solana-sysvar", + "solana-sysvar-id", "solana-timings", + "solana-transaction", "solana-transaction-context", + "solana-transaction-error", "solana-vote-program", - "thiserror 2.0.12", + "spl-generic-token", + "thiserror 2.0.17", "tokio", ] [[package]] name = "solana-pubkey" -version = "2.2.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40db1ff5a0f8aea2c158d78ab5f2cf897848964251d1df42fef78efd3c85b863" +checksum = "9b62adb9c3261a052ca1f999398c388f1daf558a1b492f60a6d9e64857db4ff1" dependencies = [ "borsh 0.10.4", - "borsh 1.5.7", - "bs58", + "borsh 1.6.0", "bytemuck", "bytemuck_derive", "curve25519-dalek 4.1.3", + "five8", "five8_const", "getrandom 0.2.16", "js-sys", @@ -6611,14 +7184,14 @@ dependencies = [ [[package]] name = "solana-pubsub-client" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9633402b60b93f903d37c940a8ce0c1afc790b5a8678aaa8304f9099adf108b" +checksum = "d18a7476e1d2e8df5093816afd8fffee94fbb6e442d9be8e6bd3e85f88ce8d5c" dependencies = [ "crossbeam-channel", "futures-util", + "http 0.2.12", "log", - "reqwest 0.11.27", "semver", "serde", "serde_derive", @@ -6626,9 +7199,9 @@ dependencies = [ "solana-account-decoder-client-types", "solana-clock", "solana-pubkey", - "solana-rpc-client-api", + "solana-rpc-client-types", "solana-signature", - "thiserror 2.0.12", + "thiserror 2.0.17", "tokio", "tokio-stream", "tokio-tungstenite", @@ -6638,19 +7211,18 @@ dependencies = [ [[package]] name = "solana-quic-client" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "826ec34b8d4181f0c46efaa84c6b7992a459ca129f21506656d79a1e62633d4b" +checksum = "44feb5f4a97494459c435aa56de810500cc24e22d0afc632990a8e54a07c05a4" dependencies = [ "async-lock", "async-trait", "futures", "itertools 0.12.1", - "lazy_static", "log", "quinn", "quinn-proto", - "rustls 0.23.27", + "rustls 0.23.35", "solana-connection-cache", "solana-keypair", "solana-measure", @@ -6663,26 +7235,25 @@ dependencies = [ "solana-streamer", "solana-tls-utils", "solana-transaction-error", - "thiserror 2.0.12", + "thiserror 2.0.17", "tokio", ] [[package]] name = "solana-quic-definitions" -version = "2.2.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e606feac5110eb5d8afaa43ccaeea3ec49ccec36773387930b5ba545e745aea2" +checksum = "fbf0d4d5b049eb1d0c35f7b18f305a27c8986fc5c0c9b383e97adaa35334379e" dependencies = [ "solana-keypair", ] [[package]] name = "solana-rayon-threadlimit" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "423c912a1a68455fe4ed5175cf94eb8965e061cd257973c9a5659e2bf4ea8371" +checksum = "02cc2a4cae3ef7bb6346b35a60756d2622c297d5fa204f96731db9194c0dc75b" dependencies = [ - "lazy_static", "num_cpus", ] @@ -6701,9 +7272,9 @@ dependencies = [ [[package]] name = "solana-rent-collector" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c1e19f5d5108b0d824244425e43bc78bbb9476e2199e979b0230c9f632d3bf4" +checksum = "127e6dfa51e8c8ae3aa646d8b2672bc4ac901972a338a9e1cd249e030564fb9d" dependencies = [ "serde", "serde_derive", @@ -6750,17 +7321,18 @@ dependencies = [ [[package]] name = "solana-rpc-client" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3313bc969e1a8681f19a74181d301e5f91e5cc5a60975fb42e793caa9768f22e" +checksum = "b8d3161ac0918178e674c1f7f1bfac40de3e7ed0383bd65747d63113c156eaeb" dependencies = [ "async-trait", "base64 0.22.1", "bincode", "bs58", + "futures", "indicatif", "log", - "reqwest 0.11.27", + "reqwest 0.12.26", "reqwest-middleware", "semver", "serde", @@ -6783,45 +7355,37 @@ dependencies = [ "solana-transaction-error", "solana-transaction-status-client-types", "solana-version", + "solana-vote-interface", "tokio", ] [[package]] name = "solana-rpc-client-api" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dc3276b526100d0f55a7d1db2366781acdc75ce9fe4a9d1bc9c85a885a503f8" +checksum = "2dbc138685c79d88a766a8fd825057a74ea7a21e1dd7f8de275ada899540fff7" dependencies = [ "anyhow", - "base64 0.22.1", - "bs58", "jsonrpc-core", - "reqwest 0.11.27", + "reqwest 0.12.26", "reqwest-middleware", - "semver", "serde", "serde_derive", "serde_json", - "solana-account", "solana-account-decoder-client-types", "solana-clock", - "solana-commitment-config", - "solana-fee-calculator", - "solana-inflation", - "solana-inline-spl", - "solana-pubkey", + "solana-rpc-client-types", "solana-signer", "solana-transaction-error", "solana-transaction-status-client-types", - "solana-version", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] name = "solana-rpc-client-nonce-utils" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "294874298fb4e52729bb0229e0cdda326d4393b7122b92823aa46e99960cb920" +checksum = "87f0ee41b9894ff36adebe546a110b899b0d0294b07845d8acdc73822e6af4b0" dependencies = [ "solana-account", "solana-commitment-config", @@ -6831,21 +7395,48 @@ dependencies = [ "solana-pubkey", "solana-rpc-client", "solana-sdk-ids", - "thiserror 2.0.12", + "thiserror 2.0.17", +] + +[[package]] +name = "solana-rpc-client-types" +version = "2.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea428a81729255d895ea47fba9b30fd4dacbfe571a080448121bd0592751676" +dependencies = [ + "base64 0.22.1", + "bs58", + "semver", + "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.17", ] [[package]] name = "solana-runtime" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be703a6c2a363663c642407ea6d474109c21760502c9c26e60c88e0665c3e859" +checksum = "1a3f83d5af95937504ec3447415b13ca5f1326cad3c3f790f2c66ee2153f0919" dependencies = [ "agave-feature-set", "agave-precompiles", "agave-reserved-account-keys", - "ahash", + "ahash 0.8.12", "aquamarine", "arrayref", + "assert_matches", "base64 0.22.1", "bincode", "blake3", @@ -6853,18 +7444,16 @@ dependencies = [ "bytemuck", "bzip2", "crossbeam-channel", - "dashmap 5.5.3", + "dashmap", "dir-diff", "flate2", "fnv", "im", - "index_list", "itertools 0.12.1", - "lazy_static", "libc", "log", "lz4", - "memmap2", + "memmap2 0.9.9", "mockall", "modular-bitfield", "num-derive", @@ -6880,54 +7469,103 @@ dependencies = [ "serde_derive", "serde_json", "serde_with", + "solana-account", + "solana-account-info", "solana-accounts-db", + "solana-address-lookup-table-interface", "solana-bpf-loader-program", "solana-bucket-map", "solana-builtins", + "solana-client-traits", + "solana-clock", + "solana-commitment-config", "solana-compute-budget", "solana-compute-budget-instruction", - "solana-config-program", + "solana-compute-budget-interface", "solana-cost-model", + "solana-cpi", + "solana-ed25519-program", + "solana-epoch-info", + "solana-epoch-rewards-hasher", + "solana-epoch-schedule", + "solana-feature-gate-interface", "solana-fee", - "solana-inline-spl", + "solana-fee-calculator", + "solana-fee-structure", + "solana-genesis-config", + "solana-hard-forks", + "solana-hash", + "solana-inflation", + "solana-instruction", + "solana-keypair", "solana-lattice-hash", + "solana-loader-v3-interface", + "solana-loader-v4-interface", "solana-measure", + "solana-message", "solana-metrics", + "solana-native-token 2.3.0", "solana-nohash-hasher", + "solana-nonce", "solana-nonce-account", + "solana-packet", "solana-perf", - "solana-program", + "solana-poh-config", + "solana-precompile-error", "solana-program-runtime", "solana-pubkey", "solana-rayon-threadlimit", + "solana-rent", + "solana-rent-collector", + "solana-rent-debits", + "solana-reward-info", "solana-runtime-transaction", - "solana-sdk", + "solana-sdk-ids", + "solana-secp256k1-program", + "solana-seed-derivable", + "solana-serde", + "solana-sha256-hasher", + "solana-signature", + "solana-signer", + "solana-slot-hashes", + "solana-slot-history", + "solana-stake-interface", "solana-stake-program", "solana-svm", + "solana-svm-callback", "solana-svm-rent-collector", "solana-svm-transaction", + "solana-system-interface", + "solana-system-transaction", + "solana-sysvar", + "solana-sysvar-id", + "solana-time-utils", "solana-timings", + "solana-transaction", "solana-transaction-context", + "solana-transaction-error", "solana-transaction-status-client-types", "solana-unified-scheduler-logic", "solana-version", "solana-vote", + "solana-vote-interface", "solana-vote-program", + "spl-generic-token", "static_assertions", "strum", "strum_macros", "symlink", "tar", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.17", "zstd", ] [[package]] name = "solana-runtime-transaction" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5c1f6b65bcf3498b2c20e062a18de978ebf9ef773be823bc42329b2ec6ef7da" +checksum = "ca52090550885453ac7a26a0fd7d6ffe057dd1d52c350cde17887b004a0ddcd0" dependencies = [ "agave-transaction-view", "log", @@ -6941,7 +7579,7 @@ dependencies = [ "solana-svm-transaction", "solana-transaction", "solana-transaction-error", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] @@ -6952,9 +7590,9 @@ checksum = "61f1bc1357b8188d9c4a3af3fc55276e56987265eb7ad073ae6f8180ee54cecf" [[package]] name = "solana-sbpf" -version = "0.10.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a3ce7a0f4d6830124ceb2c263c36d1ee39444ec70146eb49b939e557e72b96" +checksum = "474a2d95dc819898ded08d24f29642d02189d3e1497bbb442a92a3997b7eb55f" dependencies = [ "byteorder", "combine 3.8.1", @@ -6963,15 +7601,15 @@ dependencies = [ "log", "rand 0.8.5", "rustc-demangle", - "thiserror 1.0.69", + "thiserror 2.0.17", "winapi", ] [[package]] name = "solana-sdk" -version = "2.2.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8af90d2ce445440e0548fa4a5f96fe8b265c22041a68c942012ffadd029667d" +checksum = "8cc0e4a7635b902791c44b6581bfb82f3ada32c5bc0929a64f39fe4bb384c86a" dependencies = [ "bincode", "bs58", @@ -6998,7 +7636,7 @@ dependencies = [ "solana-instruction", "solana-keypair", "solana-message", - "solana-native-token", + "solana-native-token 2.3.0", "solana-nonce-account", "solana-offchain-message", "solana-packet", @@ -7034,7 +7672,7 @@ dependencies = [ "solana-transaction-context", "solana-transaction-error", "solana-validator-exit", - "thiserror 2.0.12", + "thiserror 2.0.17", "wasm-bindgen", ] @@ -7056,14 +7694,14 @@ dependencies = [ "bs58", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] name = "solana-secp256k1-program" -version = "2.2.1" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0a1caa972414cc78122c32bdae65ac5fe89df7db598585a5cde19d16a20280a" +checksum = "f19833e4bc21558fe9ec61f239553abe7d05224347b57d65c2218aeeb82d6149" dependencies = [ "bincode", "digest 0.10.7", @@ -7075,6 +7713,7 @@ dependencies = [ "solana-instruction", "solana-precompile-error", "solana-sdk-ids", + "solana-signature", ] [[package]] @@ -7083,17 +7722,17 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baa3120b6cdaa270f39444f5093a90a7b03d296d362878f7a6991d6de3bbe496" dependencies = [ - "borsh 1.5.7", + "borsh 1.6.0", "libsecp256k1", "solana-define-syscall", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] name = "solana-secp256r1-program" -version = "2.2.2" +version = "2.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cda2aa1bbaceda14763c4f142a00b486f2f262cfd901bd0410649ad0404d5f7" +checksum = "ce0ae46da3071a900f02d367d99b2f3058fe2e90c5062ac50c4f20cfedad8f0f" dependencies = [ "bytemuck", "openssl", @@ -7105,9 +7744,12 @@ dependencies = [ [[package]] name = "solana-security-txt" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "468aa43b7edb1f9b7b7b686d5c3aeb6630dc1708e86e31343499dd5c4d775183" +checksum = "156bb61a96c605fa124e052d630dba2f6fb57e08c7d15b757e1e958b3ed7b3fe" +dependencies = [ + "hashbrown 0.15.2", +] [[package]] name = "solana-seed-derivable" @@ -7131,21 +7773,30 @@ dependencies = [ [[package]] name = "solana-send-transaction-service" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37a2a9dab16a9f7d11e06ee6f34ed7ce27923ae480c806513324b5620c73f09e" +checksum = "f838b10e5b35e68987de6b2dfec19a3ba9d48509f26110c3d738125e07d2e915" dependencies = [ + "async-trait", "crossbeam-channel", "itertools 0.12.1", "log", "solana-client", + "solana-clock", "solana-connection-cache", + "solana-hash", + "solana-keypair", "solana-measure", "solana-metrics", + "solana-nonce-account", + "solana-pubkey", + "solana-quic-definitions", "solana-runtime", - "solana-sdk", - "solana-tpu-client", + "solana-signature", + "solana-time-utils", + "solana-tpu-client-next", "tokio", + "tokio-util 0.7.17", ] [[package]] @@ -7159,9 +7810,9 @@ dependencies = [ [[package]] name = "solana-serde-varint" -version = "2.2.1" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc07d00200d82e6def2f7f7a45738e3406b17fe54a18adcf0defa16a97ccadb" +checksum = "2a7e155eba458ecfb0107b98236088c3764a09ddf0201ec29e52a0be40857113" dependencies = [ "serde", ] @@ -7179,9 +7830,9 @@ dependencies = [ [[package]] name = "solana-sha256-hasher" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0037386961c0d633421f53560ad7c80675c0447cba4d1bb66d60974dd486c7ea" +checksum = "5aa3feb32c28765f6aa1ce8f3feac30936f16c5c3f7eb73d63a5b8f6f8ecdc44" dependencies = [ "sha2 0.10.9", "solana-define-syscall", @@ -7210,12 +7861,12 @@ dependencies = [ [[package]] name = "solana-signature" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47d251c8f3dc015f320b4161daac7f108156c837428e5a8cc61136d25beb11d6" +checksum = "64c8ec8e657aecfc187522fc67495142c12f35e55ddeca8698edbb738b8dbd8c" dependencies = [ - "bs58", "ed25519-dalek", + "five8", "rand 0.8.5", "serde", "serde-big-array", @@ -7277,7 +7928,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5269e89fde216b4d7e1d1739cf5303f8398a1ff372a81232abbee80e554a838c" dependencies = [ "borsh 0.10.4", - "borsh 1.5.7", + "borsh 1.6.0", "num-traits", "serde", "serde_derive", @@ -7293,9 +7944,9 @@ dependencies = [ [[package]] name = "solana-stake-program" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "625c4872588e2a61166b6ece633be5de388dcc170294d717649e8963fae9468c" +checksum = "500e9b9d11573f12de91e94f9c4459882cd5ffc692776af49b610d6fcc0b167f" dependencies = [ "agave-feature-set", "bincode", @@ -7303,11 +7954,11 @@ dependencies = [ "solana-account", "solana-bincode", "solana-clock", - "solana-config-program", + "solana-config-program-client", "solana-genesis-config", "solana-instruction", "solana-log-collector", - "solana-native-token", + "solana-native-token 2.3.0", "solana-packet", "solana-program-runtime", "solana-pubkey", @@ -7322,19 +7973,19 @@ dependencies = [ [[package]] name = "solana-streamer" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1eaf5b216717d1d551716f3190878d028c689dabac40c8889767cead7e447481" +checksum = "5643516e5206b89dd4bdf67c39815606d835a51a13260e43349abdb92d241b1d" dependencies = [ "async-channel", "bytes", "crossbeam-channel", - "dashmap 5.5.3", + "dashmap", "futures", "futures-util", - "governor 0.6.3", + "governor", "histogram", - "indexmap 2.9.0", + "indexmap 2.12.1", "itertools 0.12.1", "libc", "log", @@ -7344,9 +7995,9 @@ dependencies = [ "quinn", "quinn-proto", "rand 0.8.5", - "rustls 0.23.27", + "rustls 0.23.35", "smallvec", - "socket2", + "socket2 0.5.10", "solana-keypair", "solana-measure", "solana-metrics", @@ -7361,72 +8012,97 @@ dependencies = [ "solana-tls-utils", "solana-transaction-error", "solana-transaction-metrics-tracker", - "thiserror 2.0.12", + "thiserror 2.0.17", "tokio", - "tokio-util 0.7.15", + "tokio-util 0.7.17", "x509-parser", ] [[package]] name = "solana-svm" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "095be71c750f85287f37366e1975236b08dff2e02ec482473c975868d67fc542" +checksum = "006180b920e8d8c1dab4f6a0fda248b5b97d912eda4c872534d178bc31231bec" dependencies = [ - "agave-feature-set", - "agave-precompiles", - "ahash", - "itertools 0.12.1", + "ahash 0.8.12", "log", "percentage", "serde", "serde_derive", "solana-account", - "solana-bpf-loader-program", "solana-clock", - "solana-compute-budget", - "solana-compute-budget-instruction", "solana-fee-structure", "solana-hash", "solana-instruction", "solana-instructions-sysvar", + "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", + "solana-program-entrypoint", + "solana-program-pack", "solana-program-runtime", "solana-pubkey", "solana-rent", + "solana-rent-collector", "solana-rent-debits", - "solana-sdk", "solana-sdk-ids", + "solana-svm-callback", + "solana-svm-feature-set", "solana-svm-rent-collector", "solana-svm-transaction", + "solana-system-interface", + "solana-sysvar-id", "solana-timings", "solana-transaction-context", "solana-transaction-error", "solana-type-overrides", - "thiserror 2.0.12", + "spl-generic-token", + "thiserror 2.0.17", +] + +[[package]] +name = "solana-svm-callback" +version = "2.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cef9f7d5cfb5d375081a6c8ad712a6f0e055a15890081f845acf55d8254a7a2" +dependencies = [ + "solana-account", + "solana-precompile-error", + "solana-pubkey", ] +[[package]] +name = "solana-svm-feature-set" +version = "2.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f24b836eb4d74ec255217bdbe0f24f64a07adeac31aca61f334f91cd4a3b1d5" + [[package]] name = "solana-svm-rent-collector" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee563c1edcf5551b8b5acd86eb9383939a1d9591693c33e74a006dab4baaeb44" +checksum = "030200d7f3ce4879f9d8c980ceb9e1d5e9a302866db035776496069b20c427b4" dependencies = [ - "solana-sdk", + "solana-account", + "solana-clock", + "solana-pubkey", + "solana-rent", + "solana-rent-collector", + "solana-sdk-ids", "solana-transaction-context", + "solana-transaction-error", ] [[package]] name = "solana-svm-transaction" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "221865f7355d5b0827c2d46dd53996361f6cf0c21919b965caa4ba6a1feb6b3a" +checksum = "ab717b9539375ebb088872c6c87d1d8832d19f30f154ecc530154d23f60a6f0c" dependencies = [ "solana-hash", "solana-message", @@ -7454,9 +8130,9 @@ dependencies = [ [[package]] name = "solana-system-program" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efb0185e546f18f26451d274e018e5c4fd699c9765fbd69cbcbdb3475a6cb5bd" +checksum = "23ca36cef39aea7761be58d4108a56a2e27042fb1e913355fdb142a05fc7eab7" dependencies = [ "bincode", "log", @@ -7464,6 +8140,7 @@ dependencies = [ "serde_derive", "solana-account", "solana-bincode", + "solana-fee-calculator", "solana-instruction", "solana-log-collector", "solana-nonce", @@ -7495,9 +8172,9 @@ dependencies = [ [[package]] name = "solana-sysvar" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf6b44740d7f0c9f375d045c165bc0aab4a90658f92d6835aeb0649afaeaff9a" +checksum = "b8c3595f95069f3d90f275bb9bd235a1973c4d059028b0a7f81baca2703815db" dependencies = [ "base64 0.22.1", "bincode", @@ -7542,9 +8219,9 @@ dependencies = [ [[package]] name = "solana-thin-client" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "255bda447fbff4526b6b19b16b3652281ec2b7c4952d019b369a5f4a9dba4e5c" +checksum = "6c1025715a113e0e2e379b30a6bfe4455770dc0759dabf93f7dbd16646d5acbe" dependencies = [ "bincode", "log", @@ -7577,9 +8254,9 @@ checksum = "6af261afb0e8c39252a04d026e3ea9c405342b08c871a2ad8aa5448e068c784c" [[package]] name = "solana-timings" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d08862987485af7e3864b0ab9d4febeccaa34f1e982f08af9fa0460782d10773" +checksum = "7c49b842dfc53c1bf9007eaa6730296dea93b4fce73f457ce1080af43375c0d6" dependencies = [ "eager", "enum-iterator", @@ -7588,11 +8265,11 @@ dependencies = [ [[package]] name = "solana-tls-utils" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6f227b3813b6c26c8ed38910b90a0b641baedb2ad075ea51ccfbff1992ee394" +checksum = "14494aa87a75a883d1abcfee00f1278a28ecc594a2f030084879eb40570728f6" dependencies = [ - "rustls 0.23.27", + "rustls 0.23.35", "solana-keypair", "solana-pubkey", "solana-signer", @@ -7601,14 +8278,14 @@ dependencies = [ [[package]] name = "solana-tpu-client" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc74ecb664add683a18bb9f484a30ca8c9d71f3addcd3a771eaaaaec12125fd" +checksum = "17895ce70fd1dd93add3fbac87d599954ded93c63fa1c66f702d278d96a6da14" dependencies = [ "async-trait", "bincode", "futures-util", - "indexmap 2.9.0", + "indexmap 2.12.1", "indicatif", "log", "rayon", @@ -7616,7 +8293,7 @@ dependencies = [ "solana-clock", "solana-commitment-config", "solana-connection-cache", - "solana-epoch-info", + "solana-epoch-schedule", "solana-measure", "solana-message", "solana-net-utils", @@ -7629,15 +8306,42 @@ dependencies = [ "solana-signer", "solana-transaction", "solana-transaction-error", - "thiserror 2.0.12", + "thiserror 2.0.17", + "tokio", +] + +[[package]] +name = "solana-tpu-client-next" +version = "2.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418739a37f0c1806c4e273d7705103e53c74b423fc13044a99d9f7884524ae02" +dependencies = [ + "async-trait", + "log", + "lru", + "quinn", + "rustls 0.23.35", + "solana-clock", + "solana-connection-cache", + "solana-keypair", + "solana-measure", + "solana-metrics", + "solana-quic-definitions", + "solana-rpc-client", + "solana-streamer", + "solana-time-utils", + "solana-tls-utils", + "solana-tpu-client", + "thiserror 2.0.17", "tokio", + "tokio-util 0.7.17", ] [[package]] name = "solana-transaction" -version = "2.2.2" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abec848d081beb15a324c633cd0e0ab33033318063230389895cae503ec9b544" +checksum = "80657d6088f721148f5d889c828ca60c7daeedac9a8679f9ec215e0c42bcbf41" dependencies = [ "bincode", "serde", @@ -7662,18 +8366,19 @@ dependencies = [ [[package]] name = "solana-transaction-context" -version = "2.2.1" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5022de04cbba05377f68bf848c8c1322ead733f88a657bf792bb40f3257b8218" +checksum = "54a312304361987a85b2ef2293920558e6612876a639dd1309daf6d0d59ef2fe" dependencies = [ "bincode", "serde", "serde_derive", "solana-account", "solana-instruction", + "solana-instructions-sysvar", "solana-pubkey", "solana-rent", - "solana-signature", + "solana-sdk-ids", ] [[package]] @@ -7690,13 +8395,12 @@ dependencies = [ [[package]] name = "solana-transaction-metrics-tracker" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4c03abfcb923aaf71c228e81b54a804aa224a48577477d8e1096c3a1429d21b" +checksum = "03fc4e1b6252dc724f5ee69db6229feb43070b7318651580d2174da8baefb993" dependencies = [ "base64 0.22.1", "bincode", - "lazy_static", "log", "rand 0.8.5", "solana-packet", @@ -7705,11 +8409,55 @@ dependencies = [ "solana-signature", ] +[[package]] +name = "solana-transaction-status" +version = "2.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135f92f4192cc68900c665becf97fc0a6500ae5a67ff347bf2cbc20ecfefa821" +dependencies = [ + "Inflector", + "agave-reserved-account-keys", + "base64 0.22.1", + "bincode", + "borsh 1.6.0", + "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 7.0.0", + "spl-memo", + "spl-token 8.0.0", + "spl-token-2022 8.0.1", + "spl-token-group-interface 0.6.0", + "spl-token-metadata-interface 0.7.0", + "thiserror 2.0.17", +] + [[package]] name = "solana-transaction-status-client-types" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4aaef59e8a54fc3a2dabfd85c32e35493c5e228f9d1efbcdcdc3c0819dddf7fd" +checksum = "51f1d7c2387c35850848212244d2b225847666cb52d3bd59a5c409d2c300303d" dependencies = [ "base64 0.22.1", "bincode", @@ -7725,24 +8473,23 @@ dependencies = [ "solana-transaction", "solana-transaction-context", "solana-transaction-error", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] name = "solana-type-overrides" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72735ae2d80d5556400b8fbb552688b3ac1413cd6c29e85db83d24ffe825a7f9" +checksum = "41d80c44761eb398a157d809a04840865c347e1831ae3859b6100c0ee457bc1a" dependencies = [ - "lazy_static", "rand 0.8.5", ] [[package]] name = "solana-udp-client" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d3e085a6adf81d51f678624934ffe266bd45a1c105849992b1af933c80bbf19" +checksum = "2dd36227dd3035ac09a89d4239551d2e3d7d9b177b61ccc7c6d393c3974d0efa" dependencies = [ "async-trait", "solana-connection-cache", @@ -7750,21 +8497,22 @@ dependencies = [ "solana-net-utils", "solana-streamer", "solana-transaction-error", - "thiserror 2.0.12", + "thiserror 2.0.17", "tokio", ] [[package]] name = "solana-unified-scheduler-logic" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccc4e998f9185355afcd5119c8b3715f00ac836460faedceac6a73840fc2621d" +checksum = "ca8d0560b66257004b5a3497b2b8a09486035a742b888ed4eca0efa9211c932a" dependencies = [ "assert_matches", "solana-pubkey", "solana-runtime-transaction", "solana-transaction", "static_assertions", + "unwrap_none", ] [[package]] @@ -7775,11 +8523,12 @@ checksum = "7bbf6d7a3c0b28dd5335c52c0e9eae49d0ae489a8f324917faf0ded65a812c1d" [[package]] name = "solana-version" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a58e01912dc3d5ff4391fe49476461b3b9ebc4215f3713d2fe3ffcfeda7f8e2" +checksum = "3324d46c7f7b7f5d34bf7dc71a2883bdc072c7b28ca81d0b2167ecec4cf8da9f" dependencies = [ "agave-feature-set", + "rand 0.8.5", "semver", "serde", "serde_derive", @@ -7789,9 +8538,9 @@ dependencies = [ [[package]] name = "solana-vote" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f696980f793a5d7019d9da049bb9f18f109fcc14d9f7db568064f0ed5158273" +checksum = "67f9f6132f699605e11df62631ae4861b21cb2d99f0fca1b852d277c982107f9" dependencies = [ "itertools 0.12.1", "log", @@ -7802,21 +8551,24 @@ dependencies = [ "solana-clock", "solana-hash", "solana-instruction", + "solana-keypair", "solana-packet", "solana-pubkey", "solana-sdk-ids", + "solana-serialize-utils", "solana-signature", + "solana-signer", "solana-svm-transaction", "solana-transaction", "solana-vote-interface", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] name = "solana-vote-interface" -version = "2.2.3" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b630547b7f12ee742e1c5069951fedba0fe5cbd4786f6342a779384e2b11f71" +checksum = "b80d57478d6599d30acc31cc5ae7f93ec2361a06aefe8ea79bc81739a08af4c3" dependencies = [ "bincode", "num-derive", @@ -7838,9 +8590,9 @@ dependencies = [ [[package]] name = "solana-vote-program" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27cb01906f935beee9d64a6a7881a583b55c8ffe4f767b9b19b687a68cd7cf47" +checksum = "908d0e72c8b83e48762eb3e8c9114497cf4b1d66e506e360c46aba9308e71299" dependencies = [ "agave-feature-set", "bincode", @@ -7856,6 +8608,7 @@ dependencies = [ "solana-hash", "solana-instruction", "solana-keypair", + "solana-metrics", "solana-packet", "solana-program-runtime", "solana-pubkey", @@ -7866,15 +8619,16 @@ dependencies = [ "solana-transaction", "solana-transaction-context", "solana-vote-interface", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] name = "solana-zk-elgamal-proof-program" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d352601fa721288f0a3a2b48c930aa6badb83c95cab47b5b14015a2915f04995" +checksum = "70cea14481d8efede6b115a2581f27bc7c6fdfba0752c20398456c3ac1245fc4" dependencies = [ + "agave-feature-set", "bytemuck", "num-derive", "num-traits", @@ -7887,9 +8641,9 @@ dependencies = [ [[package]] name = "solana-zk-sdk" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35a153bff0be31a58dacd7f40bc37fc80f5bb7cb3f38fb62e7a2777a8b48de25" +checksum = "97b9fc6ec37d16d0dccff708ed1dd6ea9ba61796700c3bb7c3b401973f10f63b" dependencies = [ "aes-gcm-siv", "base64 0.22.1", @@ -7899,7 +8653,6 @@ dependencies = [ "curve25519-dalek 4.1.3", "itertools 0.12.1", "js-sys", - "lazy_static", "merlin", "num-derive", "num-traits", @@ -7917,16 +8670,16 @@ dependencies = [ "solana-signature", "solana-signer", "subtle", - "thiserror 2.0.12", + "thiserror 2.0.17", "wasm-bindgen", "zeroize", ] [[package]] name = "solana-zk-token-proof-program" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4086b331151047f6be5c71210e6690f3a4de222ccf43c90ec715ea60e860189" +checksum = "579752ad6ea2a671995f13c763bf28288c3c895cb857a518cc4ebab93c9a8dde" dependencies = [ "agave-feature-set", "bytemuck", @@ -7941,9 +8694,9 @@ dependencies = [ [[package]] name = "solana-zk-token-sdk" -version = "2.2.7" +version = "2.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06d91b7c7651e776b848b67b6b58f032566be4cd554e6f6283bdf415e3a70b61" +checksum = "5055e5df94abd5badf4f947681c893375bdb6f8f543c05d2a7ab9647a6a9d205" dependencies = [ "aes-gcm-siv", "base64 0.22.1", @@ -7952,7 +8705,6 @@ dependencies = [ "bytemuck_derive", "curve25519-dalek 4.1.3", "itertools 0.12.1", - "lazy_static", "merlin", "num-derive", "num-traits", @@ -7971,7 +8723,7 @@ dependencies = [ "solana-signature", "solana-signer", "subtle", - "thiserror 2.0.12", + "thiserror 2.0.17", "zeroize", ] @@ -7990,7 +8742,7 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76fee7d65013667032d499adc3c895e286197a35a0d3a4643c80e7fd3e9969e3" dependencies = [ - "borsh 1.5.7", + "borsh 1.6.0", "num-derive", "num-traits", "solana-program", @@ -8000,6 +8752,22 @@ dependencies = [ "thiserror 1.0.69", ] +[[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.6.0", + "num-derive", + "num-traits", + "solana-program", + "spl-associated-token-account-client", + "spl-token 8.0.0", + "spl-token-2022 8.0.1", + "thiserror 2.0.17", +] + [[package]] name = "spl-associated-token-account-client" version = "2.0.0" @@ -8030,19 +8798,19 @@ checksum = "d9e8418ea6269dcfb01c712f0444d2c75542c04448b480e87de59d2865edc750" dependencies = [ "quote", "spl-discriminator-syn", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] name = "spl-discriminator-syn" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c1f05593b7ca9eac7caca309720f2eafb96355e037e6d373b909a80fe7b69b9" +checksum = "5d1dbc82ab91422345b6df40a79e2b78c7bce1ebb366da323572dd60b7076b67" dependencies = [ "proc-macro2", "quote", "sha2 0.10.9", - "syn 2.0.101", + "syn 2.0.111", "thiserror 1.0.69", ] @@ -8056,7 +8824,40 @@ dependencies = [ "solana-program", "solana-zk-sdk", "spl-pod", - "spl-token-confidential-transfer-proof-extraction", + "spl-token-confidential-transfer-proof-extraction 0.2.1", +] + +[[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 0.3.0", +] + +[[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]] @@ -8079,7 +8880,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d994afaf86b779104b4a95ba9ca75b8ced3fdb17ee934e38cb69e72afbe17799" dependencies = [ - "borsh 1.5.7", + "borsh 1.6.0", "bytemuck", "bytemuck_derive", "num-derive", @@ -8090,7 +8891,7 @@ dependencies = [ "solana-program-option", "solana-pubkey", "solana-zk-sdk", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] @@ -8102,10 +8903,25 @@ dependencies = [ "num-derive", "num-traits", "solana-program", - "spl-program-error-derive", + "spl-program-error-derive 0.4.1", "thiserror 1.0.69", ] +[[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 0.5.0", + "thiserror 2.0.17", +] + [[package]] name = "spl-program-error-derive" version = "0.4.1" @@ -8115,7 +8931,19 @@ dependencies = [ "proc-macro2", "quote", "sha2 0.10.9", - "syn 2.0.101", + "syn 2.0.111", +] + +[[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.111", ] [[package]] @@ -8135,11 +8963,33 @@ dependencies = [ "solana-pubkey", "spl-discriminator", "spl-pod", - "spl-program-error", - "spl-type-length-value", + "spl-program-error 0.6.0", + "spl-type-length-value 0.7.0", "thiserror 1.0.69", ] +[[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 0.7.0", + "spl-type-length-value 0.8.0", + "thiserror 2.0.17", +] + [[package]] name = "spl-token" version = "5.0.2" @@ -8170,6 +9020,34 @@ dependencies = [ "thiserror 1.0.69", ] +[[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", + "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.17", +] + [[package]] name = "spl-token-2022" version = "6.0.0" @@ -8184,17 +9062,17 @@ dependencies = [ "solana-program", "solana-security-txt", "solana-zk-sdk", - "spl-elgamal-registry", + "spl-elgamal-registry 0.1.1", "spl-memo", "spl-pod", "spl-token 7.0.0", - "spl-token-confidential-transfer-ciphertext-arithmetic", - "spl-token-confidential-transfer-proof-extraction", + "spl-token-confidential-transfer-ciphertext-arithmetic 0.2.1", + "spl-token-confidential-transfer-proof-extraction 0.2.1", "spl-token-confidential-transfer-proof-generation 0.2.0", - "spl-token-group-interface", - "spl-token-metadata-interface", - "spl-transfer-hook-interface", - "spl-type-length-value", + "spl-token-group-interface 0.5.0", + "spl-token-metadata-interface 0.6.0", + "spl-transfer-hook-interface 0.9.0", + "spl-type-length-value 0.7.0", "thiserror 1.0.69", ] @@ -8212,44 +9090,120 @@ dependencies = [ "solana-program", "solana-security-txt", "solana-zk-sdk", - "spl-elgamal-registry", + "spl-elgamal-registry 0.1.1", "spl-memo", "spl-pod", "spl-token 7.0.0", - "spl-token-confidential-transfer-ciphertext-arithmetic", - "spl-token-confidential-transfer-proof-extraction", + "spl-token-confidential-transfer-ciphertext-arithmetic 0.2.1", + "spl-token-confidential-transfer-proof-extraction 0.2.1", "spl-token-confidential-transfer-proof-generation 0.3.0", - "spl-token-group-interface", - "spl-token-metadata-interface", - "spl-transfer-hook-interface", - "spl-type-length-value", - "thiserror 2.0.12", + "spl-token-group-interface 0.5.0", + "spl-token-metadata-interface 0.6.0", + "spl-transfer-hook-interface 0.9.0", + "spl-type-length-value 0.7.0", + "thiserror 2.0.17", +] + +[[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", + "solana-account-info", + "solana-clock", + "solana-cpi", + "solana-decode-error", + "solana-instruction", + "solana-msg", + "solana-native-token 2.3.0", + "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 0.2.0", + "spl-memo", + "spl-pod", + "spl-token 8.0.0", + "spl-token-confidential-transfer-ciphertext-arithmetic 0.3.1", + "spl-token-confidential-transfer-proof-extraction 0.3.0", + "spl-token-confidential-transfer-proof-generation 0.4.1", + "spl-token-group-interface 0.6.0", + "spl-token-metadata-interface 0.7.0", + "spl-transfer-hook-interface 0.10.0", + "spl-type-length-value 0.8.0", + "thiserror 2.0.17", +] + +[[package]] +name = "spl-token-confidential-transfer-ciphertext-arithmetic" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "170378693c5516090f6d37ae9bad2b9b6125069be68d9acd4865bbe9fc8499fd" +dependencies = [ + "base64 0.22.1", + "bytemuck", + "solana-curve25519", + "solana-zk-sdk", +] + +[[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-ciphertext-arithmetic" +name = "spl-token-confidential-transfer-proof-extraction" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "170378693c5516090f6d37ae9bad2b9b6125069be68d9acd4865bbe9fc8499fd" +checksum = "eff2d6a445a147c9d6dd77b8301b1e116c8299601794b558eafa409b342faf96" dependencies = [ - "base64 0.22.1", "bytemuck", "solana-curve25519", + "solana-program", "solana-zk-sdk", + "spl-pod", + "thiserror 2.0.17", ] [[package]] name = "spl-token-confidential-transfer-proof-extraction" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eff2d6a445a147c9d6dd77b8301b1e116c8299601794b558eafa409b342faf96" +checksum = "fe2629860ff04c17bafa9ba4bed8850a404ecac81074113e1f840dbd0ebb7bd6" dependencies = [ "bytemuck", + "solana-account-info", "solana-curve25519", - "solana-program", + "solana-instruction", + "solana-instructions-sysvar", + "solana-msg", + "solana-program-error", + "solana-pubkey", + "solana-sdk-ids", "solana-zk-sdk", "spl-pod", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] @@ -8271,7 +9225,18 @@ checksum = "0e3597628b0d2fe94e7900fd17cdb4cfbb31ee35c66f82809d27d86e44b2848b" dependencies = [ "curve25519-dalek 4.1.3", "solana-zk-sdk", - "thiserror 2.0.12", + "thiserror 2.0.17", +] + +[[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.17", ] [[package]] @@ -8293,13 +9258,32 @@ dependencies = [ "thiserror 1.0.69", ] +[[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.17", +] + [[package]] name = "spl-token-metadata-interface" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfb9c89dbc877abd735f05547dcf9e6e12c00c11d6d74d8817506cab4c99fdbb" dependencies = [ - "borsh 1.5.7", + "borsh 1.6.0", "num-derive", "num-traits", "solana-borsh", @@ -8310,10 +9294,31 @@ dependencies = [ "solana-pubkey", "spl-discriminator", "spl-pod", - "spl-type-length-value", + "spl-type-length-value 0.7.0", "thiserror 1.0.69", ] +[[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.6.0", + "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 0.8.0", + "thiserror 2.0.17", +] + [[package]] name = "spl-transfer-hook-interface" version = "0.9.0" @@ -8333,12 +9338,37 @@ dependencies = [ "solana-pubkey", "spl-discriminator", "spl-pod", - "spl-program-error", - "spl-tlv-account-resolution", - "spl-type-length-value", + "spl-program-error 0.6.0", + "spl-tlv-account-resolution 0.9.0", + "spl-type-length-value 0.7.0", "thiserror 1.0.69", ] +[[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 0.7.0", + "spl-tlv-account-resolution 0.10.0", + "spl-type-length-value 0.8.0", + "thiserror 2.0.17", +] + [[package]] name = "spl-type-length-value" version = "0.7.0" @@ -8357,11 +9387,29 @@ dependencies = [ "thiserror 1.0.69", ] +[[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.17", +] + [[package]] name = "stable_deref_trait" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "static_assertions" @@ -8422,9 +9470,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.101" +version = "2.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" +checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" dependencies = [ "proc-macro2", "quote", @@ -8466,7 +9514,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -8486,7 +9534,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "core-foundation 0.9.4", "system-configuration-sys 0.6.0", ] @@ -8511,6 +9559,30 @@ dependencies = [ "libc", ] +[[package]] +name = "tabled" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e39a2ee1fbcd360805a771e1b300f78cc88fec7b8d3e2f71cd37bbf23e725c7d" +dependencies = [ + "papergrid", + "tabled_derive", + "testing_table", +] + +[[package]] +name = "tabled_derive" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea5d1b13ca6cff1f9231ffd62f15eefd72543dab5e468735f1a456728a02846" +dependencies = [ + "heck 0.5.0", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "tap" version = "1.0.1" @@ -8563,26 +9635,17 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "task-local-extensions" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba323866e5d033818e3240feeb9f7db2c4296674e4d9e16b97b7bf8f490434e8" -dependencies = [ - "pin-utils", -] - [[package]] name = "tempfile" -version = "3.20.0" +version = "3.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" dependencies = [ "fastrand", - "getrandom 0.3.3", + "getrandom 0.3.4", "once_cell", "rustix", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -8600,6 +9663,15 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683" +[[package]] +name = "testing_table" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f8daae29995a24f65619e19d8d31dea5b389f3d853d8bf297bbf607cd0014cc" +dependencies = [ + "unicode-width", +] + [[package]] name = "thiserror" version = "1.0.69" @@ -8611,11 +9683,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl 2.0.17", ] [[package]] @@ -8626,35 +9698,34 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] name = "thread_local" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ "cfg-if", - "once_cell", ] [[package]] name = "time" -version = "0.3.41" +version = "0.3.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" +checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" dependencies = [ "deranged", "itoa", @@ -8667,15 +9738,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" [[package]] name = "time-macros" -version = "0.2.22" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" +checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" dependencies = [ "num-conv", "time-core", @@ -8683,9 +9754,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" dependencies = [ "displaydoc", "zerovec", @@ -8693,9 +9764,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" dependencies = [ "tinyvec_macros", ] @@ -8708,31 +9779,30 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.45.1" +version = "1.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" +checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" dependencies = [ - "backtrace", "bytes", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.6.1", "tokio-macros", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -8757,11 +9827,11 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.2" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ - "rustls 0.23.27", + "rustls 0.23.35", "tokio", ] @@ -8824,9 +9894,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.15" +version = "0.7.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" +checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" dependencies = [ "bytes", "futures-core", @@ -8846,44 +9916,74 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", "serde_spanned", - "toml_datetime", - "toml_edit", + "toml_datetime 0.6.11", + "toml_edit 0.22.27", ] [[package]] name = "toml_datetime" -version = "0.6.9" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.7.5+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +dependencies = [ + "serde_core", +] + [[package]] name = "toml_edit" -version = "0.22.26" +version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.12.1", "serde", "serde_spanned", - "toml_datetime", + "toml_datetime 0.6.11", "toml_write", "winnow", ] +[[package]] +name = "toml_edit" +version = "0.23.10+spec-1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" +dependencies = [ + "indexmap 2.12.1", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.0.6+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" +dependencies = [ + "winnow", +] + [[package]] name = "toml_write" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" [[package]] name = "tower" @@ -8902,17 +10002,22 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.6" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" dependencies = [ - "bitflags 2.9.1", + "async-compression", + "bitflags 2.10.0", "bytes", + "futures-core", "futures-util", - "http 1.3.1", + "http 1.4.0", "http-body 1.0.1", + "http-body-util", "iri-string", "pin-project-lite", + "tokio", + "tokio-util 0.7.17", "tower", "tower-layer", "tower-service", @@ -8932,9 +10037,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ "log", "pin-project-lite", @@ -8944,20 +10049,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.28" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] name = "tracing-core" -version = "0.1.33" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", "valuable", @@ -8978,9 +10083,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.19" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" dependencies = [ "sharded-slab", "thread_local", @@ -9016,9 +10121,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "unicase" @@ -9028,9 +10133,9 @@ checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] name = "unicode-segmentation" @@ -9040,9 +10145,9 @@ checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.2.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" [[package]] name = "unicode-xid" @@ -9075,6 +10180,12 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" +[[package]] +name = "unwrap_none" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "461d0c5956fcc728ecc03a3a961e4adc9a7975d86f6f8371389a289517c02ca9" + [[package]] name = "uriparse" version = "0.6.4" @@ -9087,13 +10198,14 @@ dependencies = [ [[package]] name = "url" -version = "2.5.4" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", "percent-encoding", + "serde", ] [[package]] @@ -9110,13 +10222,13 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" -version = "1.17.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" +checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "js-sys", - "serde", + "serde_core", "wasm-bindgen", ] @@ -9171,50 +10283,37 @@ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] -name = "wasi" -version = "0.14.2+wasi-0.2.4" +name = "wasip2" +version = "1.0.1+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ - "wit-bindgen-rt", + "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" 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.101", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.50" +version = "0.4.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" dependencies = [ "cfg-if", "js-sys", @@ -9225,9 +10324,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -9235,31 +10334,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" dependencies = [ + "bumpalo", "proc-macro2", "quote", - "syn 2.0.101", - "wasm-bindgen-backend", + "syn 2.0.111", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" dependencies = [ "unicode-ident", ] [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" dependencies = [ "js-sys", "wasm-bindgen", @@ -9277,18 +10376,9 @@ dependencies = [ [[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.0", -] - -[[package]] -name = "webpki-root-certs" -version = "1.0.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01a83f7e1a9f8712695c03eabe9ed3fbca0feff0152f33f12593e5a6303cb1a4" +checksum = "ee3e3b5f5e80bc89f30ce8d0343bf4e5f12341c51f3e26cbeecbc7c85443e85b" dependencies = [ "rustls-pki-types", ] @@ -9309,13 +10399,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] -name = "wide" -version = "0.7.32" +name = "webpki-roots" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41b5576b9a81633f3e8df296ce0063042a73507636cbe956c61133dd7034ab22" +checksum = "b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e" dependencies = [ - "bytemuck", - "safe_arch", + "rustls-pki-types", ] [[package]] @@ -9336,11 +10425,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -9351,79 +10440,70 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-core" -version = "0.61.2" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ "windows-implement", "windows-interface", "windows-link", "windows-result", - "windows-strings 0.4.2", + "windows-strings", ] [[package]] name = "windows-implement" -version = "0.60.0" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] name = "windows-interface" -version = "0.59.1" +version = "0.59.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] name = "windows-link" -version = "0.1.1" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] name = "windows-registry" -version = "0.4.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" +checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" dependencies = [ + "windows-link", "windows-result", - "windows-strings 0.3.1", - "windows-targets 0.53.0", + "windows-strings", ] [[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.3.1" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ "windows-link", ] [[package]] name = "windows-strings" -version = "0.4.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ "windows-link", ] @@ -9464,6 +10544,24 @@ 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", +] + [[package]] name = "windows-targets" version = "0.42.2" @@ -9512,18 +10610,19 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.0" +version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" 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", + "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]] @@ -9546,9 +10645,9 @@ checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" [[package]] name = "windows_aarch64_msvc" @@ -9570,9 +10669,9 @@ checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_aarch64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" [[package]] name = "windows_i686_gnu" @@ -9594,9 +10693,9 @@ checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" [[package]] name = "windows_i686_gnullvm" @@ -9606,9 +10705,9 @@ checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" [[package]] name = "windows_i686_msvc" @@ -9630,9 +10729,9 @@ checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_i686_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" [[package]] name = "windows_x86_64_gnu" @@ -9654,9 +10753,9 @@ checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" [[package]] name = "windows_x86_64_gnullvm" @@ -9678,9 +10777,9 @@ checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" [[package]] name = "windows_x86_64_msvc" @@ -9702,15 +10801,15 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "windows_x86_64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winnow" -version = "0.7.10" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" +checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" dependencies = [ "memchr", ] @@ -9726,19 +10825,16 @@ dependencies = [ ] [[package]] -name = "wit-bindgen-rt" -version = "0.39.0" +name = "wit-bindgen" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" -dependencies = [ - "bitflags 2.9.1", -] +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "writeable" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" [[package]] name = "wyz" @@ -9769,9 +10865,9 @@ dependencies = [ [[package]] name = "xattr" -version = "1.5.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d65cbf2f12c15564212d48f4e3dfb87923d25d611f2aed18f4cb23f0413d89e" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" dependencies = [ "libc", "rustix", @@ -9779,11 +10875,10 @@ dependencies = [ [[package]] name = "yoke" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" dependencies = [ - "serde", "stable_deref_trait", "yoke-derive", "zerofrom", @@ -9791,34 +10886,34 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", "synstructure 0.13.2", ] [[package]] name = "zerocopy" -version = "0.8.25" +version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" +checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.25" +version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" +checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -9838,15 +10933,15 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", "synstructure 0.13.2", ] [[package]] name = "zeroize" -version = "1.8.1" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" dependencies = [ "zeroize_derive", ] @@ -9859,14 +10954,14 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] name = "zerotrie" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" dependencies = [ "displaydoc", "yoke", @@ -9875,9 +10970,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.2" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" dependencies = [ "yoke", "zerofrom", @@ -9886,13 +10981,13 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.111", ] [[package]] @@ -9915,9 +11010,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.15+zstd.1.5.7" +version = "2.0.16+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" +checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" dependencies = [ "cc", "pkg-config", diff --git a/program/Cargo.toml b/program/Cargo.toml index 17d7274..1e31169 100644 --- a/program/Cargo.toml +++ b/program/Cargo.toml @@ -15,22 +15,21 @@ cpi = [] default = ["cpi"] [dependencies] -solana-program = "2.2.1" -light-compressed-account = { git = "https://github.com/lightprotocol/light-protocol", rev = "128b191ba", features = ["anchor"] } -light-compressed-token-sdk = { git = "https://github.com/lightprotocol/light-protocol", rev = "128b191ba", features = ["anchor"] } +solana-program = "2.2" +light-compressed-account = { version = "0.7.0", features = ["anchor"] } +light-ctoken-sdk = { version = "0.2.1", features = ["anchor"] } +light-ctoken-interface = { version = "0.1.1", features = ["anchor"] } thiserror = "2.0.11" borsh = "0.10.0" [dev-dependencies] -solana-sdk = "2.2.1" -light-compressed-token = { git = "https://github.com/lightprotocol/light-protocol", rev = "128b191ba" } -light-compressed-token-client = { git = "https://github.com/lightprotocol/light-protocol", rev = "128b191ba" } -light-program-test = { git = "https://github.com/lightprotocol/light-protocol", rev = "128b191ba", features = ["v2"] } -solana-program-test = "2.2.1" -light-client = { git = "https://github.com/lightprotocol/light-protocol", rev = "128b191ba", features = ["v2"] } - -spl-token = "5.0.0" -light-sdk = { git = "https://github.com/lightprotocol/light-protocol", rev = "128b191ba" } +solana-sdk = "2.2" +light-compressed-token = { version = "2.0.0", features = ["no-entrypoint"] } +light-program-test = { version = "0.17.1", features = ["v2"] } +solana-program-test = "2.2" +light-client = { version = "0.17.2", features = ["v2"] } + +spl-token = { version = "5.0.0", features = ["no-entrypoint"] } [lib] crate-type = ["cdylib", "lib"] diff --git a/program/src/instruction.rs b/program/src/instruction.rs index df0cda2..5151019 100644 --- a/program/src/instruction.rs +++ b/program/src/instruction.rs @@ -1,6 +1,6 @@ use borsh::{BorshDeserialize, BorshSerialize}; use light_compressed_account::compressed_account::PackedMerkleContext; -use light_compressed_account::instruction_data::compressed_proof::CompressedProof; +use light_ctoken_sdk::ValidityProof; use solana_program::pubkey::Pubkey; #[cfg(not(target_os = "solana"))] @@ -9,104 +9,114 @@ use solana_program::instruction::{AccountMeta, Instruction}; #[derive(BorshSerialize, BorshDeserialize, Debug, Clone)] pub enum ClaimProgramInstruction { Claim { - proof: Option, - root_index: u16, + validity_proof: ValidityProof, merkle_context: PackedMerkleContext, + root_index: u16, amount: u64, - lamports: Option, mint: Pubkey, unlock_slot: u64, bump_seed: u8, + // Indices into packed_accounts (accounts[10..]) + owner_index: u8, + mint_index: u8, + destination_index: u8, + pool_account_index: u8, + pool_index: u8, + pool_bump: u8, }, } +/// Accounts for the claim instruction. +/// +/// Account layout: +/// 0. `[signer]` Claimant +/// 1. `[signer]` Fee payer +/// 2. `[]` Associated airdrop PDA (authority for compressed tokens) +/// 3. `[]` CToken program +/// 4. `[]` CToken CPI authority PDA +/// 5. `[]` Light system program +/// 6. `[]` Registered program PDA +/// 7. `[]` Account compression authority +/// 8. `[]` Account compression program +/// 9. `[]` System program +/// 10+: Packed accounts (merkle tree, queue, mint, owner, destination, pool, etc.) #[cfg(not(target_os = "solana"))] #[derive(Debug)] pub struct ClaimAccounts { pub claimant: Pubkey, pub fee_payer: Pubkey, pub associated_airdrop_pda: Pubkey, + pub ctoken_program: Pubkey, pub ctoken_cpi_authority_pda: Pubkey, pub light_system_program: Pubkey, pub registered_program_pda: Pubkey, - pub noop_program: Pubkey, pub account_compression_authority: Pubkey, pub account_compression_program: Pubkey, - pub ctoken_program: Pubkey, - pub token_pool_pda: Pubkey, - pub decompress_destination: Pubkey, - pub token_program: Pubkey, pub system_program: Pubkey, - pub state_tree: Pubkey, - pub queue: Pubkey, + /// Packed accounts: merkle tree, queue, mint, owner, destination SPL account, token pool + pub packed_accounts: Vec<(Pubkey, bool, bool)>, // (pubkey, is_signer, is_writable) } /// Build a claim instruction in the client. -/// -/// Accounts expected by this instruction: -/// -/// 0. `[signer]` Claimant -/// 1. `[signer]` Fee payer -/// 2. `[]` Associated airdrop PDA -/// 3. `[]` CToken CPI authority PDA -/// 4. `[]` Light system program -/// 5. `[]` Registered program PDA -/// 6. `[]` Noop program -/// 7. `[]` Account compression authority -/// 8. `[]` Account compression program -/// 9. `[]` CToken program -/// 10. `[]` Token pool PDA -/// 11. `[writable]` Decompress destination -/// 12. `[]` Token program -/// 13. `[]` System program -/// 14. `[writable]` State tree -/// 15. `[writable]` Queue #[cfg(not(target_os = "solana"))] #[allow(clippy::too_many_arguments)] pub fn build_claim_and_decompress_instruction( accounts: &ClaimAccounts, - proof: Option, - root_index: u16, + validity_proof: ValidityProof, merkle_context: PackedMerkleContext, + root_index: u16, amount: u64, - lamports: Option, mint: Pubkey, unlock_slot: u64, bump_seed: u8, + owner_index: u8, + mint_index: u8, + destination_index: u8, + pool_account_index: u8, + pool_index: u8, + pool_bump: u8, ) -> Instruction { - let accounts = vec![ + let mut account_metas = vec![ AccountMeta::new(accounts.claimant, true), AccountMeta::new(accounts.fee_payer, true), AccountMeta::new_readonly(accounts.associated_airdrop_pda, false), + AccountMeta::new_readonly(accounts.ctoken_program, false), AccountMeta::new_readonly(accounts.ctoken_cpi_authority_pda, false), AccountMeta::new_readonly(accounts.light_system_program, false), AccountMeta::new_readonly(accounts.registered_program_pda, false), - AccountMeta::new_readonly(accounts.noop_program, false), AccountMeta::new_readonly(accounts.account_compression_authority, false), AccountMeta::new_readonly(accounts.account_compression_program, false), - AccountMeta::new_readonly(accounts.ctoken_program, false), - AccountMeta::new(accounts.token_pool_pda, false), - AccountMeta::new(accounts.decompress_destination, false), - AccountMeta::new_readonly(accounts.token_program, false), AccountMeta::new_readonly(accounts.system_program, false), - AccountMeta::new(accounts.state_tree, false), - AccountMeta::new(accounts.queue, false), ]; + // Add packed accounts + for (pubkey, is_signer, is_writable) in &accounts.packed_accounts { + if *is_writable { + account_metas.push(AccountMeta::new(*pubkey, *is_signer)); + } else { + account_metas.push(AccountMeta::new_readonly(*pubkey, *is_signer)); + } + } + let instruction_data = ClaimProgramInstruction::Claim { - proof, - root_index, + validity_proof, merkle_context, + root_index, amount, - lamports, mint, unlock_slot, bump_seed, + owner_index, + mint_index, + destination_index, + pool_account_index, + pool_index, + pool_bump, }; Instruction { program_id: crate::id(), - accounts, + accounts: account_metas, data: borsh::to_vec(&instruction_data).unwrap(), } } @@ -121,41 +131,48 @@ mod tests { claimant: Pubkey::new_unique(), fee_payer: Pubkey::new_unique(), associated_airdrop_pda: Pubkey::new_unique(), + ctoken_program: Pubkey::new_unique(), ctoken_cpi_authority_pda: Pubkey::new_unique(), light_system_program: Pubkey::new_unique(), registered_program_pda: Pubkey::new_unique(), - noop_program: Pubkey::new_unique(), account_compression_authority: Pubkey::new_unique(), account_compression_program: Pubkey::new_unique(), - ctoken_program: Pubkey::new_unique(), - token_pool_pda: Pubkey::new_unique(), - decompress_destination: Pubkey::new_unique(), - token_program: Pubkey::new_unique(), system_program: Pubkey::new_unique(), - state_tree: Pubkey::new_unique(), - queue: Pubkey::new_unique(), + packed_accounts: vec![ + (Pubkey::new_unique(), false, true), // merkle tree + (Pubkey::new_unique(), false, true), // queue + (Pubkey::new_unique(), false, false), // mint + (Pubkey::new_unique(), false, false), // owner (airdrop PDA) + (Pubkey::new_unique(), false, true), // destination SPL account + (Pubkey::new_unique(), false, true), // token pool + ], }; let mint = Pubkey::new_unique(); let root_index = 42; let merkle_context = PackedMerkleContext::default(); let amount = 1000; - let lamports = Some(1000); let unlock_slot = 12345; let bump_seed = 1; let instruction = build_claim_and_decompress_instruction( &accounts, - None, - root_index, + ValidityProof::new(None), merkle_context, + root_index, amount, - lamports, mint, unlock_slot, bump_seed, + 3, // owner_index + 2, // mint_index + 4, // destination_index + 5, // pool_account_index + 0, // pool_index + 255, // pool_bump ); + // 10 fixed accounts + 6 packed accounts = 16 assert_eq!(instruction.accounts.len(), 16); assert_eq!(instruction.accounts[0].pubkey, accounts.claimant); assert!(instruction.accounts[0].is_signer); @@ -169,7 +186,6 @@ mod tests { match deserialized { ClaimProgramInstruction::Claim { amount: _amount, - lamports: _lamports, mint: _mint, root_index: _root_index, merkle_context: _merkle_context, @@ -178,7 +194,6 @@ mod tests { .. } => { assert_eq!(amount, _amount); - assert_eq!(lamports, _lamports); assert_eq!(mint, _mint); assert_eq!(root_index, _root_index); assert_eq!(merkle_context, _merkle_context); diff --git a/program/src/processor.rs b/program/src/processor.rs index 1194028..1f27692 100644 --- a/program/src/processor.rs +++ b/program/src/processor.rs @@ -1,18 +1,28 @@ use crate::{error::ClaimError, instruction::ClaimProgramInstruction}; use borsh::BorshDeserialize; -use light_compressed_account::{ - compressed_account::PackedMerkleContext, instruction_data::compressed_proof::CompressedProof, -}; -use light_compressed_token_sdk::{ - cpi::{ - self, account_info::get_compressed_token_account_info, - accounts::CompressedTokenDecompressCpiAccounts, +use light_compressed_account::compressed_account::PackedMerkleContext; +use light_ctoken_interface::instructions::transfer2::MultiInputTokenDataWithContext; +use light_ctoken_sdk::{ + compressed_token::{ + transfer2::{ + create_transfer2_instruction, Transfer2AccountsMetaConfig, Transfer2Config, + Transfer2Inputs, + }, + CTokenAccount2, }, - state::InputTokenDataWithContext, + ValidityProof, }; use solana_program::{ - account_info::AccountInfo, clock::Clock, entrypoint::ProgramResult, msg, - program::invoke_signed, program_error::ProgramError, pubkey, pubkey::Pubkey, sysvar::Sysvar, + account_info::AccountInfo, + clock::Clock, + entrypoint::ProgramResult, + instruction::AccountMeta, + msg, + program::invoke_signed, + program_error::ProgramError, + pubkey, + pubkey::Pubkey, + sysvar::Sysvar, }; const CTOKEN_PROGRAM_ID: Pubkey = pubkey!("cTokenmWW8bLPjZEBAUgYy3zKxQZW6VKi7bqNFEVv3m"); @@ -26,25 +36,36 @@ pub fn process_instruction( .map_err(|_| ProgramError::InvalidInstructionData)?; match instruction { ClaimProgramInstruction::Claim { - proof, - root_index, + validity_proof, merkle_context, + root_index, amount, - lamports, mint, unlock_slot, bump_seed, + // Indices into packed_accounts + owner_index, + mint_index, + destination_index, + pool_account_index, + pool_index, + pool_bump, } => process_claim( program_id, accounts, - proof, - root_index, + validity_proof, merkle_context, + root_index, amount, - lamports, mint, unlock_slot, bump_seed, + owner_index, + mint_index, + destination_index, + pool_account_index, + pool_index, + pool_bump, ), } } @@ -53,60 +74,57 @@ pub fn process_instruction( fn process_claim( program_id: &Pubkey, accounts: &[AccountInfo], - proof: Option, - root_index: u16, + validity_proof: ValidityProof, merkle_context: PackedMerkleContext, + root_index: u16, amount: u64, - lamports: Option, mint: Pubkey, unlock_slot: u64, bump_seed: u8, + owner_index: u8, + mint_index: u8, + destination_index: u8, + pool_account_index: u8, + pool_index: u8, + pool_bump: u8, ) -> ProgramResult { + // Account layout: + // 0: claimant (signer) + // 1: fee_payer (signer) + // 2: associated_airdrop_pda (authority for the compressed tokens) + // 3: ctoken_program + // 4: ctoken_cpi_authority_pda + // 5: light_system_program + // 6: registered_program_pda + // 7: account_compression_authority + // 8: account_compression_program + // 9: system_program + // 10+: packed_accounts (merkle tree, queue, mint, owner, destination, pool, etc.) + let claimant_info = &accounts[0]; let fee_payer_info = &accounts[1]; let associated_airdrop_pda_info = &accounts[2]; - let ctoken_cpi_authority_pda_info = &accounts[3]; - let light_system_program_info = &accounts[4]; - let registered_program_pda_info = &accounts[5]; - let noop_program_info = &accounts[6]; - let account_compression_authority_info = &accounts[7]; - let account_compression_program_info = &accounts[8]; - let ctoken_program_info = &accounts[9]; - let token_pool_pda_info = &accounts[10]; - let decompress_destination_info = &accounts[11]; - let token_program_info = &accounts[12]; - let system_program_info = &accounts[13]; - let state_tree_info = &accounts[14]; - let queue_info = &accounts[15]; - - if accounts.len() != 16 { - msg!("Expected 16 accounts, got {}", accounts.len()); - return Err(ProgramError::NotEnoughAccountKeys); - } + let ctoken_program_info = &accounts[3]; - // CHECK: + // CHECK: claimant must be signer if !claimant_info.is_signer { msg!("Claimant must be a signer"); - claimant_info.key.log(); return Err(ProgramError::MissingRequiredSignature); } - // CHECK: + + // CHECK: fee_payer must be signer if !fee_payer_info.is_signer { msg!("Fee payer must be a signer"); - fee_payer_info.key.log(); return Err(ProgramError::MissingRequiredSignature); } - // CHECK: + + // CHECK: ctoken program ID if ctoken_program_info.key != &CTOKEN_PROGRAM_ID { - msg!("Invalid compressed token program.",); - ctoken_program_info.key.log(); + msg!("Invalid compressed token program"); return Err(ProgramError::InvalidArgument); } - let ctoken_account = - get_compressed_token_account_info(merkle_context, root_index, amount, lamports); - - // CHECK: + // CHECK: unlock slot let current_slot = Clock::get()?.slot; if current_slot < unlock_slot { msg!( @@ -117,89 +135,70 @@ fn process_claim( return Err(ClaimError::TokensLocked.into()); } - let light_cpi_accounts = CompressedTokenDecompressCpiAccounts { - fee_payer: fee_payer_info.clone(), - authority: associated_airdrop_pda_info.clone(), - cpi_authority_pda: ctoken_cpi_authority_pda_info.clone(), - light_system_program: light_system_program_info.clone(), - registered_program_pda: registered_program_pda_info.clone(), - noop_program: noop_program_info.clone(), - account_compression_authority: account_compression_authority_info.clone(), - account_compression_program: account_compression_program_info.clone(), - self_program: ctoken_program_info.clone(), - token_pool_pda: token_pool_pda_info.clone(), - decompress_destination: decompress_destination_info.clone(), - token_program: token_program_info.clone(), - system_program: system_program_info.clone(), - state_merkle_tree: state_tree_info.clone(), - queue: queue_info.clone(), - }; - check_pda_and_decompress_token( - program_id, - light_cpi_accounts, - ctoken_account, - &proof, - claimant_info.clone(), - mint, - unlock_slot, - bump_seed, - ) -} - -#[allow(clippy::too_many_arguments)] -fn check_pda_and_decompress_token( - claim_program: &Pubkey, - light_cpi_accounts: CompressedTokenDecompressCpiAccounts, - compressed_token_account: InputTokenDataWithContext, - proof: &Option, - claimant: AccountInfo<'_>, - mint: Pubkey, - slot: u64, - bump_seed: u8, -) -> ProgramResult { - let claimant_bytes = claimant.key.to_bytes(); - let slot_bytes = slot.to_le_bytes(); + // Verify the PDA + let claimant_bytes = claimant_info.key.to_bytes(); let mint_bytes = mint.to_bytes(); - + let slot_bytes = unlock_slot.to_le_bytes(); let seeds = &[ &claimant_bytes[..32], &mint_bytes[..32], &slot_bytes[..8], &[bump_seed], ]; + check_claim_pda(seeds, program_id, associated_airdrop_pda_info.key)?; + + // Build MultiInputTokenDataWithContext from instruction parameters + let input_token_data = MultiInputTokenDataWithContext { + owner: owner_index, + amount, + has_delegate: false, + delegate: 0, + mint: mint_index, + version: 3, // V2 for batched Merkle trees + merkle_context, + root_index, + }; + + // Create CTokenAccount2 and set up SPL decompression + let mut token_account = CTokenAccount2::new(vec![input_token_data]) + .map_err(|_| ProgramError::InvalidAccountData)?; + + token_account + .decompress_spl(amount, destination_index, pool_account_index, pool_index, pool_bump) + .map_err(|_| ProgramError::InvalidAccountData)?; + + // Build packed account metas from accounts[10..] + // Force owner account to be signer for invoke_signed to work + let packed_accounts = &accounts[10..]; + let packed_account_metas: Vec = packed_accounts + .iter() + .enumerate() + .map(|(i, info)| AccountMeta { + pubkey: *info.key, + is_signer: info.is_signer || i == owner_index as usize, + is_writable: info.is_writable, + }) + .collect(); + + // Build the transfer2 instruction + let meta_config = Transfer2AccountsMetaConfig::new(*fee_payer_info.key, packed_account_metas); + let transfer_config = Transfer2Config::default().filter_zero_amount_outputs(); + + let inputs = Transfer2Inputs { + meta_config, + token_accounts: vec![token_account], + transfer_config, + validity_proof, + ..Default::default() + }; + + let instruction = + create_transfer2_instruction(inputs).map_err(|_| ProgramError::InvalidInstructionData)?; + + // Invoke with PDA signer + let signers_seeds: &[&[&[u8]]] = &[seeds]; + invoke_signed(&instruction, accounts, signers_seeds)?; - check_claim_pda(seeds, claim_program, light_cpi_accounts.authority.key)?; - - let instruction = cpi::instruction::decompress( - &mint, - vec![compressed_token_account], - proof, - &light_cpi_accounts, - None, - )?; - - let signers_seeds: &[&[&[u8]]] = &[&seeds[..]]; - invoke_signed( - &instruction, - &[ - light_cpi_accounts.fee_payer, - light_cpi_accounts.authority, - light_cpi_accounts.cpi_authority_pda, - light_cpi_accounts.light_system_program, - light_cpi_accounts.registered_program_pda, - light_cpi_accounts.noop_program, - light_cpi_accounts.account_compression_authority, - light_cpi_accounts.account_compression_program, - light_cpi_accounts.self_program, - light_cpi_accounts.token_pool_pda, - light_cpi_accounts.decompress_destination, - light_cpi_accounts.token_program, - light_cpi_accounts.system_program, - light_cpi_accounts.state_merkle_tree, - light_cpi_accounts.queue, - ][..], - signers_seeds, - )?; Ok(()) } diff --git a/program/tests/functional.rs b/program/tests/functional.rs index 93d69ed..fc15264 100644 --- a/program/tests/functional.rs +++ b/program/tests/functional.rs @@ -1,17 +1,20 @@ #![cfg(feature = "test-sbf")] use light_client::indexer::GetCompressedTokenAccountsByOwnerOrDelegateOptions; +use light_client::rpc::Rpc; use light_compressed_account::compressed_account::PackedMerkleContext; -use light_compressed_account::constants::ACCOUNT_COMPRESSION_PROGRAM_ID; use light_compressed_claim::instruction::{build_claim_and_decompress_instruction, ClaimAccounts}; use light_compressed_token::mint_sdk::create_create_token_pool_instruction; -use light_compressed_token_client::instructions::compress; -use light_compressed_token_client::{get_token_pool_pda, LIGHT_SYSTEM_PROGRAM_ID}; -use light_program_test::accounts::test_accounts::NOOP_PROGRAM_ID; -use light_program_test::program_test::TestRpc; -use light_program_test::{ - program_test::LightProgramTest, Indexer, ProgramTestConfig, RpcConnection, +use light_ctoken_sdk::compressed_token::{ + transfer2::{ + create_transfer2_instruction, Transfer2AccountsMetaConfig, Transfer2Config, Transfer2Inputs, + }, + CTokenAccount2, }; +use light_ctoken_sdk::ValidityProof; +use solana_sdk::instruction::AccountMeta; +use light_program_test::program_test::{LightProgramTest, TestRpc}; +use light_program_test::{Indexer, ProgramTestConfig}; use solana_program_test::tokio; use solana_sdk::pubkey::Pubkey; use solana_sdk::signature::{Keypair, Signer}; @@ -21,6 +24,18 @@ use spl_token::{ state::{Account, Mint}, }; +const CTOKEN_PROGRAM_ID: Pubkey = solana_sdk::pubkey!("cTokenmWW8bLPjZEBAUgYy3zKxQZW6VKi7bqNFEVv3m"); +const LIGHT_SYSTEM_PROGRAM_ID: Pubkey = + solana_sdk::pubkey!("SySTEM1eSU2p4BGQfQpimFEWWSC1XDFeun3Nqzz3rT7"); +const ACCOUNT_COMPRESSION_PROGRAM_ID: Pubkey = + solana_sdk::pubkey!("compr6CUsB5m2jS4Y3831ztGSTnDpnKJTKS95d64XVq"); +const POOL_SEED: &[u8] = b"pool"; + +/// Find token pool PDA with bump +fn find_token_pool_pda_with_bump(mint: &Pubkey) -> (Pubkey, u8) { + Pubkey::find_program_address(&[POOL_SEED, mint.as_ref()], &CTOKEN_PROGRAM_ID) +} + #[tokio::test] async fn test_claim_and_decompress() { let config = ProgramTestConfig::new( @@ -31,8 +46,8 @@ async fn test_claim_and_decompress() { )]), ); let mut rpc = LightProgramTest::new(config).await.unwrap(); - let state_tree = rpc.test_accounts.v1_state_trees[0].merkle_tree; - let queue = rpc.test_accounts.v1_state_trees[0].nullifier_queue; + let state_tree = rpc.test_accounts.v2_state_trees[0].merkle_tree; + let queue = rpc.test_accounts.v2_state_trees[0].output_queue; let (mint, token_account, owner) = setup_spl_token_account(&mut rpc).await; setup_token_pool(&mut rpc, &mint).await; @@ -45,18 +60,55 @@ async fn test_claim_and_decompress() { let (claimant_pda, bump_seed) = find_claimant_pda(claimant.pubkey(), mint.pubkey(), unlock_slot); - let compress_ix = compress( - payer.pubkey(), - owner.pubkey(), - token_account.pubkey(), - mint.pubkey(), - amount, - claimant_pda, - state_tree, - ) - .unwrap(); + // Get pool PDA with bump for compress + let (token_pool_pda_compress, pool_bump_compress) = find_token_pool_pda_with_bump(&mint.pubkey()); + + // Build packed accounts for V2 compress instruction + // Indices: 0=tree, 1=queue, 2=mint, 3=recipient, 4=source, 5=pool, 6=spl_token, 7=authority + let compress_packed_accounts = vec![ + AccountMeta::new(state_tree, false), // 0: merkle tree + AccountMeta::new(queue, false), // 1: output queue + AccountMeta::new_readonly(mint.pubkey(), false), // 2: mint + AccountMeta::new_readonly(claimant_pda, false), // 3: recipient (owner of compressed tokens) + AccountMeta::new(token_account.pubkey(), false), // 4: source SPL token account + AccountMeta::new(token_pool_pda_compress, false), // 5: token pool + AccountMeta::new_readonly(spl_token::id(), false), // 6: SPL token program + AccountMeta::new_readonly(owner.pubkey(), true), // 7: authority (signer) + ]; + + // Create CTokenAccount2 with compress_spl for V2 compress + let mut ctoken_account = CTokenAccount2::new_empty( + 3, // owner_index (claimant_pda - recipient of compressed tokens) + 2, // mint_index + ); + ctoken_account + .compress_spl( + amount, + 4, // source_or_recipient_index (SPL token account) + 7, // authority index (owner signs) + 5, // pool_account_index + 0, // pool_index + pool_bump_compress, // bump + ) + .unwrap(); + + // Build meta config + let meta_config = Transfer2AccountsMetaConfig::new(payer.pubkey(), compress_packed_accounts); + let transfer_config = Transfer2Config::new(); + + let inputs = Transfer2Inputs { + token_accounts: vec![ctoken_account], + validity_proof: ValidityProof::default(), // No proof needed for pure compress + transfer_config, + meta_config, + in_lamports: None, + out_lamports: None, + output_queue: 1, // queue is at index 1 in packed_accounts + }; + + let compress_ix = create_transfer2_instruction(inputs).unwrap(); - // we compress 2 tokens to the timelocked recipient PDA. + // Compress 2 tokens to the timelocked recipient PDA rpc.create_and_send_transaction(&[compress_ix], &payer.pubkey(), &[&payer, &owner]) .await .unwrap(); @@ -82,12 +134,26 @@ async fn test_claim_and_decompress() { .await .unwrap(); - // TODO: provide helper. - let token_pool_pda = get_token_pool_pda(&mint.pubkey()); + // Get pool PDA with bump + let (token_pool_pda, pool_bump) = find_token_pool_pda_with_bump(&mint.pubkey()); + + // Build packed accounts in the correct order + // Indices: 0=tree, 1=queue, 2=mint, 3=owner, 4=destination, 5=pool, 6=spl_token + let packed_accounts = vec![ + (state_tree, false, true), // 0: merkle tree + (queue, false, true), // 1: nullifier queue + (mint.pubkey(), false, false), // 2: mint + (claimant_pda, false, false), // 3: owner (airdrop PDA) + (token_account.pubkey(), false, true), // 4: destination SPL account + (token_pool_pda, false, true), // 5: token pool + (spl_token::id(), false, false), // 6: SPL token program + ]; + let accounts = ClaimAccounts { claimant: claimant.pubkey(), fee_payer: payer.pubkey(), associated_airdrop_pda: claimant_pda, + ctoken_program: CTOKEN_PROGRAM_ID, ctoken_cpi_authority_pda: Pubkey::from_str_const( "GXtd2izAiMJPwMEjfgTRH3d7k9mjn4Jq3JrWFv9gySYy", ), @@ -95,20 +161,14 @@ async fn test_claim_and_decompress() { registered_program_pda: Pubkey::from_str_const( "35hkDgaAKwMCaxRz2ocSZ6NaUrtKkyNqU6c4RV3tYJRh", ), - noop_program: NOOP_PROGRAM_ID, account_compression_authority: Pubkey::find_program_address( &[b"cpi_authority"], &LIGHT_SYSTEM_PROGRAM_ID, ) .0, account_compression_program: ACCOUNT_COMPRESSION_PROGRAM_ID, - ctoken_program: Pubkey::from_str_const("cTokenmWW8bLPjZEBAUgYy3zKxQZW6VKi7bqNFEVv3m"), - token_pool_pda, - decompress_destination: token_account.pubkey(), - token_program: spl_token::ID, system_program: solana_sdk::system_program::ID, - state_tree, - queue, + packed_accounts, }; let packed_merkle_context = PackedMerkleContext { @@ -118,30 +178,34 @@ async fn test_claim_and_decompress() { prove_by_index: compressed_token_account.account.prove_by_index, }; + // Build the claim instruction with new API + let validity_proof: ValidityProof = proof.value.proof.clone().into(); + let root_index = proof.value.get_root_indices()[0].unwrap(); + let instruction = build_claim_and_decompress_instruction( &accounts, - proof.value.proof.clone().into(), - proof.value.get_root_indices()[0].unwrap(), + validity_proof.clone(), packed_merkle_context, + root_index, amount, - None, mint.pubkey(), unlock_slot, bump_seed, + 3, // owner_index + 2, // mint_index + 4, // destination_index + 5, // pool_account_index + 0, // pool_index + pool_bump, ); let instruction_clone = instruction.clone(); // SPL token account should be without the compressed tokens. - let account_info = rpc - .context - .banks_client - .get_account(token_account.pubkey()) - .await - .unwrap(); + let account_info = rpc.get_account(token_account.pubkey()).await.unwrap(); let account_data = Account::unpack(&account_info.unwrap().data).unwrap(); assert_eq!(account_data.amount, 10 - amount); - // not yet unlocked. + // Not yet unlocked - should fail. rpc.warp_to_slot(999).unwrap(); let result = rpc .create_and_send_transaction(&[instruction], &payer.pubkey(), &[&payer, &claimant]) @@ -151,18 +215,13 @@ async fn test_claim_and_decompress() { "TransactionError: Error processing Instruction 0: custom program error: 0x1" ); - // now unlocked. + // Now unlocked - should succeed. rpc.warp_to_slot(1000).unwrap(); rpc.create_and_send_transaction(&[instruction_clone], &payer.pubkey(), &[&payer, &claimant]) .await .unwrap(); - let account_info = rpc - .context - .banks_client - .get_account(token_account.pubkey()) - .await - .unwrap(); + let account_info = rpc.get_account(token_account.pubkey()).await.unwrap(); let account_data = Account::unpack(&account_info.unwrap().data).unwrap(); assert_eq!(account_data.amount, 10); } @@ -194,8 +253,12 @@ pub async fn setup_spl_token_account(rpc: &mut LightProgramTest) -> (Keypair, Ke let mint_account = Keypair::new(); let owner = payer.insecure_clone(); let token_program = &id(); - let rent = rpc.context.banks_client.get_rent().await.unwrap(); - let mint_rent = rent.minimum_balance(Mint::LEN); + + // Get rent using the Rpc trait method + let mint_rent = rpc + .get_minimum_balance_for_rent_exemption(Mint::LEN) + .await + .unwrap(); let token_mint_a_account_ix = solana_program::system_instruction::create_account( &payer.pubkey(), @@ -224,7 +287,10 @@ pub async fn setup_spl_token_account(rpc: &mut LightProgramTest) -> (Keypair, Ke .unwrap(); // Create account that can hold the newly minted tokens - let account_rent = rent.minimum_balance(Account::LEN); + let account_rent = rpc + .get_minimum_balance_for_rent_exemption(Account::LEN) + .await + .unwrap(); let token_account = Keypair::new(); let new_token_account_ix = system_instruction::create_account( &payer.pubkey(), @@ -253,12 +319,12 @@ pub async fn setup_spl_token_account(rpc: &mut LightProgramTest) -> (Keypair, Ke // Mint tokens into newly created account let mint_amount: u64 = 10; let mint_to_ix = instruction::mint_to( - &token_program, + token_program, &mint_account.pubkey(), &token_account.pubkey(), &owner.pubkey(), &[], - mint_amount.clone(), + mint_amount, ) .unwrap(); @@ -267,19 +333,13 @@ pub async fn setup_spl_token_account(rpc: &mut LightProgramTest) -> (Keypair, Ke .unwrap(); let token_account_info = rpc - .context - .banks_client - .get_account(token_account.pubkey().clone()) + .get_account(token_account.pubkey()) .await .unwrap() .expect("could not fetch account information"); let account_data = Account::unpack(&token_account_info.data).unwrap(); - assert_eq!( - account_data.amount, - mint_amount.clone(), - "not correct amount" - ); + assert_eq!(account_data.amount, mint_amount, "not correct amount"); assert_eq!(account_data.mint, mint_account.pubkey(), "not correct mint"); assert_eq!( account_data.owner, From f65045d0f82b776c83a5e8a5f084de89809db545 Mon Sep 17 00:00:00 2001 From: tilo-14 Date: Fri, 19 Dec 2025 14:10:01 +0000 Subject: [PATCH 2/2] fix: set prove_by_index=true for V2 batched tree accounts For V2 batched Merkle trees, accounts in the output queue should have prove_by_index=true so they are verified by index lookup rather than ZK proof. The local test indexer doesn't set this correctly, so we force it since we know the account was just compressed to the queue. > --- program/tests/functional.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/program/tests/functional.rs b/program/tests/functional.rs index fc15264..e261a01 100644 --- a/program/tests/functional.rs +++ b/program/tests/functional.rs @@ -171,16 +171,22 @@ async fn test_claim_and_decompress() { packed_accounts, }; + // For V2 batched trees, accounts in the output queue should have prove_by_index = true + // The local test indexer may not set this correctly, so we force it based on + // the account being newly compressed (leaf_index 0 in output queue) + let prove_by_index = true; // Account is in output queue, proven by index not by ZK proof + let packed_merkle_context = PackedMerkleContext { merkle_tree_pubkey_index: 0, queue_pubkey_index: 1, leaf_index: compressed_token_account.account.leaf_index, - prove_by_index: compressed_token_account.account.prove_by_index, + prove_by_index, }; // Build the claim instruction with new API let validity_proof: ValidityProof = proof.value.proof.clone().into(); - let root_index = proof.value.get_root_indices()[0].unwrap(); + // For V2 batched trees, root_index may be None when prove_by_index is true + let root_index = proof.value.get_root_indices()[0].unwrap_or(0); let instruction = build_claim_and_decompress_instruction( &accounts,